2019-05-21 21:28:33 +08:00
|
|
|
|
#include<hgl/graph/SceneOrient.h>
|
|
|
|
|
namespace hgl
|
|
|
|
|
{
|
|
|
|
|
namespace graph
|
|
|
|
|
{
|
2024-07-31 00:11:04 +08:00
|
|
|
|
SceneOrient::SceneOrient(const SceneOrient &so)
|
|
|
|
|
{
|
2024-08-27 01:27:53 +08:00
|
|
|
|
scene_matrix=so.scene_matrix;
|
|
|
|
|
WorldPosition=so.WorldPosition;
|
2024-08-29 13:37:13 +08:00
|
|
|
|
|
|
|
|
|
scene_matrix.UpdateNewestData();
|
2024-07-31 00:11:04 +08:00
|
|
|
|
}
|
2019-05-21 21:28:33 +08:00
|
|
|
|
|
2024-08-25 04:03:57 +08:00
|
|
|
|
SceneOrient::SceneOrient(const Matrix4f &mat):SceneOrient()
|
2021-06-10 18:55:40 +08:00
|
|
|
|
{
|
2024-08-27 01:27:53 +08:00
|
|
|
|
scene_matrix.SetLocalMatrix(mat);
|
2024-08-29 13:37:13 +08:00
|
|
|
|
|
|
|
|
|
scene_matrix.UpdateNewestData();
|
2021-06-10 18:55:40 +08:00
|
|
|
|
|
2024-08-29 13:37:13 +08:00
|
|
|
|
WorldPosition=TransformPosition(GetLocalToWorldMatrix(),ZeroVector3f);
|
2019-05-21 21:28:33 +08:00
|
|
|
|
}
|
|
|
|
|
|
2024-08-27 01:27:53 +08:00
|
|
|
|
void SceneOrient::RefreshMatrix()
|
2019-05-21 21:28:33 +08:00
|
|
|
|
{
|
2024-08-27 01:27:53 +08:00
|
|
|
|
if (scene_matrix.IsNewestVersion())
|
|
|
|
|
{
|
|
|
|
|
//是最新版本,证明没有更新,那不用刷新了
|
|
|
|
|
return;
|
|
|
|
|
}
|
2024-08-25 04:03:57 +08:00
|
|
|
|
|
2024-08-29 13:37:13 +08:00
|
|
|
|
WorldPosition=TransformPosition(GetLocalToWorldMatrix(),ZeroVector3f);
|
2019-05-21 21:28:33 +08:00
|
|
|
|
}
|
|
|
|
|
}//namespace graph
|
|
|
|
|
}//namespace hgl
|