cdcEngineDXHR/cdcScene/SceneEntity.h

42 lines
909 B
C
Raw Permalink Normal View History

2022-05-22 20:59:25 +01:00
#pragma once
#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
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
BasicCullingVolume cullingVolume; // F0
2023-01-12 17:26:09 +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;
void Release() override;
~SceneEntity();
2022-05-22 20:59:25 +01:00
};
}