From 8245d833090235fea754410501fe1a3e7ad1c75b Mon Sep 17 00:00:00 2001 From: hyzboy Date: Thu, 29 Aug 2024 13:07:02 +0800 Subject: [PATCH] TEST CORRECT....WHY? --- example/Gizmo/Gizmo3DMove.cpp | 4 +- example/Gizmo/Gizmo3DRotate.cpp | 2 +- example/Gizmo/GizmoTest.cpp | 116 ++++++++++++++++---------------- res | 2 +- 4 files changed, 63 insertions(+), 61 deletions(-) diff --git a/example/Gizmo/Gizmo3DMove.cpp b/example/Gizmo/Gizmo3DMove.cpp index a329bf5b..235b999b 100644 --- a/example/Gizmo/Gizmo3DMove.cpp +++ b/example/Gizmo/Gizmo3DMove.cpp @@ -82,7 +82,9 @@ bool InitGizmoMoveStaticMesh() } { - SceneNode *root_node=new SceneNode(scale(0.5f),sphere); + SceneNode *root_node=new SceneNode(); + + root_node->CreateSubNode(sphere); { Transform tm; diff --git a/example/Gizmo/Gizmo3DRotate.cpp b/example/Gizmo/Gizmo3DRotate.cpp index e58c90e4..6ed4d5f9 100644 --- a/example/Gizmo/Gizmo3DRotate.cpp +++ b/example/Gizmo/Gizmo3DRotate.cpp @@ -42,7 +42,7 @@ bool InitGizmoRotateStaticMesh() { Transform tm; - tm.SetScale(5.0f); + tm.SetScale(10.0f); root_node->CreateSubNode(tm,torus[0]); diff --git a/example/Gizmo/GizmoTest.cpp b/example/Gizmo/GizmoTest.cpp index 5f5ea8d3..cb650dc1 100644 --- a/example/Gizmo/GizmoTest.cpp +++ b/example/Gizmo/GizmoTest.cpp @@ -6,58 +6,58 @@ using namespace hgl; using namespace hgl::graph; const Vector3f GizmoPosition(0,0,0); - -/** -* 一种永远转向正面的场景节点 -*/ -class BillboardSceneNode:public SceneNode -{ - CameraInfo *camera_info=nullptr; - bool face_to_camera=false; - - ViewportInfo *viewport_info=nullptr; - float fixed_scale=1.0; - -public: - - using SceneNode::SceneNode; - virtual ~BillboardSceneNode()=default; - - virtual void SetCameraInfo (CameraInfo * ci ){camera_info =ci;} - virtual void SetViewportInfo(ViewportInfo * vi ){viewport_info =vi;} - - virtual void SetFaceToCamera(bool ftc ){face_to_camera=ftc;} - virtual void SetFixedScale (const float size){fixed_scale =size;} - - virtual bool RefreshTransform(const Transform &tf=IdentityTransform) override - { - if(!camera_info) - { - return SceneNode::RefreshTransform(tf); - } - - if(face_to_camera) - { - LocalTransform.SetRotation(CalculateFacingRotationQuat(GetWorldPosition(),camera_info->view,AxisVector::X)); - } - - if(viewport_info) - { - const float screen_height=viewport_info->GetViewportHeight(); - - const Vector4f pos=camera_info->Project(GetWorldPosition()); - - LocalTransform.SetScale(pos.w*fixed_scale/screen_height); - } - - return SceneNode::RefreshTransform(tf); - } -};//class BillboardSceneNode:public SceneNode +// +///** +//* 一种永远转向正面的场景节点 +//*/ +//class BillboardSceneNode:public SceneNode +//{ +// CameraInfo *camera_info=nullptr; +// bool face_to_camera=false; +// +// ViewportInfo *viewport_info=nullptr; +// float fixed_scale=1.0; +// +//public: +// +// using SceneNode::SceneNode; +// virtual ~BillboardSceneNode()=default; +// +// virtual void SetCameraInfo (CameraInfo * ci ){camera_info =ci;} +// virtual void SetViewportInfo(ViewportInfo * vi ){viewport_info =vi;} +// +// virtual void SetFaceToCamera(bool ftc ){face_to_camera=ftc;} +// virtual void SetFixedScale (const float size){fixed_scale =size;} +// +// virtual bool RefreshTransform(const Transform &tf=IdentityTransform) override +// { +// if(!camera_info) +// { +// return SceneNode::RefreshTransform(tf); +// } +// +// if(face_to_camera) +// { +// LocalTransform.SetRotation(CalculateFacingRotationQuat(GetWorldPosition(),camera_info->view,AxisVector::X)); +// } +// +// if(viewport_info) +// { +// const float screen_height=viewport_info->GetViewportHeight(); +// +// const Vector4f pos=camera_info->Project(GetWorldPosition()); +// +// LocalTransform.SetScale(pos.w*fixed_scale/screen_height); +// } +// +// return SceneNode::RefreshTransform(tf); +// } +//};//class BillboardSceneNode:public SceneNode class TestApp:public SceneAppFramework { SceneNode root; - BillboardSceneNode *rotate_white_torus=nullptr; + //BillboardSceneNode *rotate_white_torus=nullptr; StaticMesh *sm_move=nullptr; StaticMesh *sm_rotate=nullptr; @@ -89,20 +89,20 @@ private: root.CreateSubNode(sm_move->GetScene()); root.CreateSubNode(sm_rotate->GetScene()); - { - Transform tm; + //{ + // Transform tm; - tm.SetScale(7.5); + // tm.SetScale(7.5); - rotate_white_torus=new BillboardSceneNode(tm,face_torus); + // rotate_white_torus=new BillboardSceneNode(tm,face_torus); - rotate_white_torus->SetCameraInfo(ci); - rotate_white_torus->SetFaceToCamera(true); + // rotate_white_torus->SetCameraInfo(ci); + // rotate_white_torus->SetFaceToCamera(true); - root.AddSubNode(rotate_white_torus); - } + // root.AddSubNode(rotate_white_torus); + //} - root.RefreshTransform(); + root.RefreshMatrix(); render_list->SetCamera(ci); render_list->Expend(&root); } @@ -149,7 +149,7 @@ public: // root.SetLocalTransform(tm); //} - root.RefreshTransform(); + root.RefreshMatrix(); render_list->UpdateLocalToWorld(); SceneAppFramework::BuildCommandBuffer(index); diff --git a/res b/res index e1a36d78..475d8ad4 160000 --- a/res +++ b/res @@ -1 +1 @@ -Subproject commit e1a36d78f0eead5f6bb65493432c4690637b991d +Subproject commit 475d8ad43ceee084cd24f5d0bed59de9f6aa36fd