2022-05-22 20:59:25 +01:00
|
|
|
#pragma once
|
2024-05-06 00:46:37 +01:00
|
|
|
#include "cdcScene.h"
|
2023-01-12 17:21:52 +00:00
|
|
|
#include "cdcMath/Math.h"
|
2024-10-07 23:10:03 +01:00
|
|
|
#include "cdcRender/Culling/BasicPrimitives.h"
|
2022-05-22 20:59:25 +01:00
|
|
|
|
|
|
|
namespace cdc {
|
|
|
|
|
2023-01-12 17:21:52 +00:00
|
|
|
class IDrawable;
|
2023-01-12 17:26:09 +00:00
|
|
|
class ISceneCellGroup;
|
2023-01-12 17:21:52 +00:00
|
|
|
class Scene;
|
2022-05-23 02:25:22 +01:00
|
|
|
class SceneCellGroup;
|
|
|
|
|
2022-05-22 20:59:25 +01:00
|
|
|
class SceneEntity : public ISceneEntity {
|
2023-01-12 17:21:52 +00:00
|
|
|
public:
|
|
|
|
Scene *scene; // 4
|
2023-03-07 00:10:40 +00:00
|
|
|
uint32_t entityIndex; // 8
|
2023-01-12 17:21:52 +00:00
|
|
|
Matrix matrix; // 20
|
2024-04-17 19:23:12 +01:00
|
|
|
bool enabled = true; // 64
|
2023-01-12 17:21:52 +00:00
|
|
|
IDrawable *drawable = nullptr; // 6C
|
2023-01-12 17:26:09 +00:00
|
|
|
SceneCellGroup *sceneCellGroup = nullptr; // 70
|
2023-03-24 00:39:00 +00:00
|
|
|
BasicCullingVolume cullingVolume; // F0
|
2023-01-12 17:26:09 +00:00
|
|
|
|
2023-03-24 00:39:00 +00:00
|
|
|
void QueryVolumeFromDrawable();
|
|
|
|
void TransformVolumeAndPivot();
|
2023-01-12 17:26:09 +00:00
|
|
|
void UpdateData(bool);
|
2023-01-12 17:21:52 +00:00
|
|
|
|
2022-05-23 02:25:22 +01:00
|
|
|
public:
|
2023-03-07 00:10:40 +00:00
|
|
|
SceneEntity(Scene *scene);
|
2023-01-12 17:21:52 +00:00
|
|
|
|
2022-05-22 20:59:25 +01:00
|
|
|
// 25 methods
|
2023-06-19 02:14:07 +01:00
|
|
|
void ApplyUpdateState(UpdateState*) override;
|
2023-01-12 17:21:52 +00:00
|
|
|
void setMatrix(Matrix&) override;
|
|
|
|
Matrix& getMatrix() override;
|
|
|
|
void setDrawable(IDrawable *) override;
|
|
|
|
IDrawable *getDrawable() override;
|
2023-01-12 17:26:09 +00:00
|
|
|
void setCellGroup(ISceneCellGroup *) override;
|
2024-05-21 23:08:01 +01:00
|
|
|
void Release() override;
|
|
|
|
~SceneEntity();
|
2022-05-22 20:59:25 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
}
|