use circle instead of Square in Gizmo3DMove

This commit is contained in:
hyzboy 2024-08-30 01:29:20 +08:00
parent cf2efd69b9
commit 726a8ec635
3 changed files with 24 additions and 12 deletions

View File

@ -21,6 +21,7 @@ enum class GizmoColor:uint
enum class GizmoShape:uint enum class GizmoShape:uint
{ {
Square=0, //方块 Square=0, //方块
Circle, //圆
Cube, //立方体 Cube, //立方体
Sphere, //球 Sphere, //球
Cone, //圆锥 Cone, //圆锥

View File

@ -59,11 +59,11 @@ bool InitGizmoMoveStaticMesh()
GetGizmoRenderable(GizmoShape::Cone,GizmoColor::Blue), GetGizmoRenderable(GizmoShape::Cone,GizmoColor::Blue),
}; };
Renderable *plane[3]= Renderable *circle[3]=
{ {
GetGizmoRenderable(GizmoShape::Square,GizmoColor::Red), GetGizmoRenderable(GizmoShape::Circle,GizmoColor::Red),
GetGizmoRenderable(GizmoShape::Square,GizmoColor::Green), GetGizmoRenderable(GizmoShape::Circle,GizmoColor::Green),
GetGizmoRenderable(GizmoShape::Square,GizmoColor::Blue) GetGizmoRenderable(GizmoShape::Circle,GizmoColor::Blue)
}; };
if(!sphere) if(!sphere)
@ -77,7 +77,7 @@ bool InitGizmoMoveStaticMesh()
if(!cone[i]) if(!cone[i])
return(false); return(false);
if(!plane[i]) if(!circle[i])
return(false); return(false);
} }
@ -90,7 +90,7 @@ bool InitGizmoMoveStaticMesh()
Transform tm; Transform tm;
const Vector3f one_scale(1); const Vector3f one_scale(1);
const Vector3f plane_scale(2); const Vector3f circle_scale(2);
const Vector3f cylinder_scale(GIZMO_CYLINDER_RADIUS,GIZMO_CYLINDER_RADIUS,GIZMO_CYLINDER_HALF_LENGTH); const Vector3f cylinder_scale(GIZMO_CYLINDER_RADIUS,GIZMO_CYLINDER_RADIUS,GIZMO_CYLINDER_HALF_LENGTH);
{ {
@ -102,9 +102,9 @@ bool InitGizmoMoveStaticMesh()
tm.SetTranslation(0,0,GIZMO_CONE_OFFSET); tm.SetTranslation(0,0,GIZMO_CONE_OFFSET);
root_node->CreateSubNode(tm,cone[2]); //Z 向上圆锥 root_node->CreateSubNode(tm,cone[2]); //Z 向上圆锥
tm.SetScale(plane_scale); tm.SetScale(circle_scale);
tm.SetTranslation(GIZMO_TWO_AXIS_OFFSET,GIZMO_TWO_AXIS_OFFSET,0); tm.SetTranslation(GIZMO_TWO_AXIS_OFFSET,GIZMO_TWO_AXIS_OFFSET,0);
root_node->CreateSubNode(tm,plane[2]); root_node->CreateSubNode(tm,circle[2]);
} }
{ {
@ -117,9 +117,9 @@ bool InitGizmoMoveStaticMesh()
tm.SetTranslation(GIZMO_CONE_OFFSET,0,0); tm.SetTranslation(GIZMO_CONE_OFFSET,0,0);
root_node->CreateSubNode(tm,cone[0]); //X 向右圆锥 root_node->CreateSubNode(tm,cone[0]); //X 向右圆锥
tm.SetScale(plane_scale); tm.SetScale(circle_scale);
tm.SetTranslation(0,GIZMO_TWO_AXIS_OFFSET,GIZMO_TWO_AXIS_OFFSET); tm.SetTranslation(0,GIZMO_TWO_AXIS_OFFSET,GIZMO_TWO_AXIS_OFFSET);
root_node->CreateSubNode(tm,plane[0]); root_node->CreateSubNode(tm,circle[0]);
} }
{ {
@ -133,9 +133,9 @@ bool InitGizmoMoveStaticMesh()
tm.SetTranslation(0,GIZMO_CONE_OFFSET,0); tm.SetTranslation(0,GIZMO_CONE_OFFSET,0);
root_node->CreateSubNode(tm,cone[1]); //Y 向前圆锥 root_node->CreateSubNode(tm,cone[1]); //Y 向前圆锥
tm.SetScale(plane_scale); tm.SetScale(circle_scale);
tm.SetTranslation(GIZMO_TWO_AXIS_OFFSET,0,GIZMO_TWO_AXIS_OFFSET); tm.SetTranslation(GIZMO_TWO_AXIS_OFFSET,0,GIZMO_TWO_AXIS_OFFSET);
root_node->CreateSubNode(tm,plane[1]); root_node->CreateSubNode(tm,circle[1]);
} }
} }

View File

@ -193,6 +193,17 @@ namespace
InitGizmoRenderable(GizmoShape::Square,CreatePlaneSqaure(gizmo_triangle.prim_creater),gizmo_triangle.pipeline); InitGizmoRenderable(GizmoShape::Square,CreatePlaneSqaure(gizmo_triangle.prim_creater),gizmo_triangle.pipeline);
} }
{
CircleCreateInfo cci;
cci.center=Vector2f(0,0);
cci.radius=Vector2f(0.5,0.5);
cci.field_count=16;
cci.has_center=false;
InitGizmoRenderable(GizmoShape::Circle,CreateCircle3DByIndexTriangles(gizmo_triangle.prim_creater,&cci),gizmo_triangle.pipeline);
}
{ {
CubeCreateInfo cci; CubeCreateInfo cci;