use TransformFaceToCamera in GizmoTest.cpp

This commit is contained in:
hyzboy 2024-08-31 15:55:58 +08:00
parent 5e8957b78b
commit efd9a447fb
2 changed files with 2 additions and 57 deletions

@ -1 +1 @@
Subproject commit 079becd267447676ced6678bd8406208d73169ee
Subproject commit ef1afa55da2ede0b7d0b6c8efb424e3e11c1c366

View File

@ -1,5 +1,6 @@
#include"VulkanAppFramework.h"
#include"Gizmo.h"
#include<hgl/graph/TransformFaceToCamera.h>
#include<hgl/graph/Ray.h>
using namespace hgl;
@ -7,59 +8,6 @@ using namespace hgl::graph;
const Vector3f GizmoPosition(0,0,0);
/**
*
*/
class TransformFaceToCamera:public TransformBase
{
CameraInfo *camera_info=nullptr;
Matrix4f last_view_matrix;
protected:
void MakeNewestData(Matrix4f &mat) override
{
if(camera_info)
mat=ToMatrix(CalculateFacingRotationQuat(WorldPosition,camera_info->view,WorldNormal));
else
mat=Identity4f;
}
public:
using TransformBase::TransformBase;
constexpr const size_t GetTypeHash()const override { return hgl::GetTypeHash<TransformFaceToCamera>(); }
TransformFaceToCamera(CameraInfo *ci):TransformBase()
{
camera_info=ci;
last_view_matrix=Identity4f;
}
TransformBase *CreateSelfCopy()const override
{
return(new TransformFaceToCamera(camera_info));
}
void SetCameraInfo(CameraInfo *ci) { camera_info=ci; }
bool Update() override
{
if(!camera_info)
return(false);
if(IsNearlyEqual(last_view_matrix,camera_info->view))
return(false);
last_view_matrix=camera_info->view;
UpdateVersion();
return(true);
}
};//class TransformFaceToCamera:public TransformBase
///**
//* 一种永远转向正面的变换节点
@ -152,9 +100,6 @@ private:
rotate_white_torus->GetTransform().AddTransform(rotate_white_torus_tfc);
//rotate_white_torus->SetCameraInfo(ci);
//rotate_white_torus->SetFaceToCamera(true);
root.AddSubNode(rotate_white_torus);
}