#include "Shape.h" #include "Material.h" #include "RenderState.h" #include "Geometry.h" #include "SceneEntity.h" #include "Transform3.h" #include "glInterface.h" namespace CHCDemoEngine { Shape::Shape(Geometry *geometry, Material *mat): mGeometry(geometry), mMaterial(mat) { mCenter = GetBoundingBox().Center(); } Shape::~Shape() {} void Shape::Render(RenderState *state, SceneEntity *ent) { if (mMaterial) mMaterial->Render(state, ent); mGeometry->Render(state); } void Shape::SetGeometry(Geometry *geom) { mGeometry = geom; } void Shape::SetMaterial(Material *mat) { mMaterial = mat; } AxisAlignedBox3 Shape::GetBoundingBox() const { return mGeometry->GetBoundingBox(); } Vector3 Shape::GetCenter() const { return mCenter; } }