From 726a8ec635c4f2afc91f4906d328030e3d20d9e1 Mon Sep 17 00:00:00 2001 From: hyzboy Date: Fri, 30 Aug 2024 01:29:20 +0800 Subject: [PATCH] use circle instead of Square in Gizmo3DMove --- example/Gizmo/Gizmo.h | 1 + example/Gizmo/Gizmo3DMove.cpp | 24 ++++++++++++------------ example/Gizmo/GizmoResource.cpp | 11 +++++++++++ 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/example/Gizmo/Gizmo.h b/example/Gizmo/Gizmo.h index fab5108b..7917d28c 100644 --- a/example/Gizmo/Gizmo.h +++ b/example/Gizmo/Gizmo.h @@ -21,6 +21,7 @@ enum class GizmoColor:uint enum class GizmoShape:uint { Square=0, //方块 + Circle, //圆 Cube, //立方体 Sphere, //球 Cone, //圆锥 diff --git a/example/Gizmo/Gizmo3DMove.cpp b/example/Gizmo/Gizmo3DMove.cpp index ea3faf0b..6b9429a0 100644 --- a/example/Gizmo/Gizmo3DMove.cpp +++ b/example/Gizmo/Gizmo3DMove.cpp @@ -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]); } } diff --git a/example/Gizmo/GizmoResource.cpp b/example/Gizmo/GizmoResource.cpp index 734fe518..5e2bdb28 100644 --- a/example/Gizmo/GizmoResource.cpp +++ b/example/Gizmo/GizmoResource.cpp @@ -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;