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
{
Square=0, //方块
Circle, //圆
Cube, //立方体
Sphere, //球
Cone, //圆锥

View File

@ -59,11 +59,11 @@ bool InitGizmoMoveStaticMesh()
GetGizmoRenderable(GizmoShape::Cone,GizmoColor::Blue),
};
Renderable *plane[3]=
Renderable *circle[3]=
{
GetGizmoRenderable(GizmoShape::Square,GizmoColor::Red),
GetGizmoRenderable(GizmoShape::Square,GizmoColor::Green),
GetGizmoRenderable(GizmoShape::Square,GizmoColor::Blue)
GetGizmoRenderable(GizmoShape::Circle,GizmoColor::Red),
GetGizmoRenderable(GizmoShape::Circle,GizmoColor::Green),
GetGizmoRenderable(GizmoShape::Circle,GizmoColor::Blue)
};
if(!sphere)
@ -77,7 +77,7 @@ bool InitGizmoMoveStaticMesh()
if(!cone[i])
return(false);
if(!plane[i])
if(!circle[i])
return(false);
}
@ -90,7 +90,7 @@ bool InitGizmoMoveStaticMesh()
Transform tm;
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);
{
@ -102,9 +102,9 @@ bool InitGizmoMoveStaticMesh()
tm.SetTranslation(0,0,GIZMO_CONE_OFFSET);
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);
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);
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);
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);
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);
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);
}
{
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;