From f9b6acb56cdb246378c8fd899d6908829dcdc89c Mon Sep 17 00:00:00 2001 From: hyzboy Date: Wed, 25 Jun 2025 00:09:37 +0800 Subject: [PATCH] =?UTF-8?q?SceneOrient=E5=A2=9E=E5=8A=A0GetSceneMatrix/Set?= =?UTF-8?q?SceneMatrix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- example/Gizmo/GizmoTest.cpp | 2 +- inc/hgl/graph/SceneOrient.h | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/example/Gizmo/GizmoTest.cpp b/example/Gizmo/GizmoTest.cpp index 10805646..07a711fe 100644 --- a/example/Gizmo/GizmoTest.cpp +++ b/example/Gizmo/GizmoTest.cpp @@ -76,7 +76,7 @@ private: { SceneNode *root=GetSceneRoot(); - root->Add(Duplication(sm_move)); + root->Add(sm_move->Duplication()); //root.Add(Duplication(sm_rotate->GetScene())); //root.CreateSubNode(sm_scale->GetScene()); } diff --git a/inc/hgl/graph/SceneOrient.h b/inc/hgl/graph/SceneOrient.h index 21425da3..efce7d3d 100644 --- a/inc/hgl/graph/SceneOrient.h +++ b/inc/hgl/graph/SceneOrient.h @@ -25,15 +25,19 @@ namespace hgl::graph scene_matrix.Clear(); } + void SetSceneMatrix(const SceneMatrix &sm){scene_matrix=sm;} ///<设置场景矩阵 + void SetLocalNormal(const Vector3f &nor) {scene_matrix.SetLocalNormal(nor);} ///<设置本地法线 void SetLocalMatrix (const Matrix4f &mat){scene_matrix.SetLocalMatrix(mat);} ///<设置本地矩阵 void SetParentMatrix(const Matrix4f &mat){scene_matrix.SetParentMatrix(mat);} ///<设置上级到世界空间变换矩阵 public: - const uint32 GetLocalToWorldMatrixVersion()const {return scene_matrix.GetNewestVersion();} ///<取得版本号 + const SceneMatrix & GetSceneMatrix ()const {return scene_matrix;} ///<取得场景矩阵 - const Vector3f & GetWorldPosition() const {return scene_matrix.GetWorldPosition();} ///<取得世界坐标 + const uint32 GetLocalToWorldMatrixVersion ()const {return scene_matrix.GetNewestVersion();} ///<取得版本号 + + const Vector3f & GetWorldPosition ()const {return scene_matrix.GetWorldPosition();} ///<取得世界坐标 const Matrix4f & GetLocalMatrix ()const {return scene_matrix.GetLocalMatrix();} ///<取得本地矩阵 TransformManager & GetTransform () {return scene_matrix.GetTransform();} ///<取得变换管理器