28#ifndef HPL_SUB_MESH_ENTITY_H
29#define HPL_SUB_MESH_ENTITY_H
31#include "common/array.h"
32#include "hpl1/engine/graphics/GraphicsTypes.h"
33#include "hpl1/engine/graphics/Renderable.h"
34#include "hpl1/engine/math/MathTypes.h"
35#include "hpl1/engine/math/MeshTypes.h"
36#include "hpl1/engine/scene/Entity3D.h"
37#include "hpl1/engine/scene/SectorVisibility.h"
38#include "hpl1/engine/system/SystemTypes.h"
39#include "common/stablemap.h"
40#include "common/multimap.h"
44class cMaterialManager;
75 void OnTransformUpdate(
iEntity3D *apEntity);
90 int GetSaveCreatePrio() {
return 0; }
109 void SetCastsShadows(
bool abX) { mbCastShadows = abX; }
110 bool IsShadowCaster() {
return mbCastShadows; }
118 eRenderableType GetRenderType() {
return eRenderableType_Normal; }
120 cSubMesh *GetSubMesh()
const {
return mpSubMesh; }
122 void SetLocalNode(cNode3D *apNode);
123 cNode3D *GetLocalNode();
125 tRenderContainerDataList *GetRenderContainerDataList();
128 tString GetEntityType() {
return "SubMesh"; }
129 bool IsVisible() {
return IsRendered(); }
130 void SetVisible(
bool abVisible) { SetRendered(abVisible); }
132 void UpdateLogic(
float afTimeStep);
134 cTriangleData &GetTriangle(
int alIndex);
135 int GetTriangleNum();
136 tTriangleDataVec *GetTriangleVecPtr();
138 iPhysicsBody *GetBody() {
return mpBody; }
139 void SetBody(iPhysicsBody *apBody) { mpBody = apBody; }
141 void SetUpdateBody(
bool abX);
142 bool GetUpdateBody();
144 void SetCustomMaterial(iMaterial *apMaterial,
bool abDestroyOldCustom =
true);
145 iMaterial *GetCustomMaterial() {
return mpMaterial; }
147 cSector *GetCurrentSector()
const;
172 bool mbGraphicsUpdated;
181typedef tSubMeshEntityMap::iterator tSubMeshEntityMapIt;
cAnimationState * * iterator
Definition: array.h:54
typename TreeT::BasicIterator iterator
Definition: stablemap.h:48
Definition: BoundingVolume.h:71
Definition: Camera3D.h:53
Definition: MaterialManager.h:41
Definition: MeshEntity.h:96
Definition: RenderList.h:145
Definition: SaveGame.h:183
Definition: SubMeshEntity.h:73
Definition: SubMeshEntity.h:95
virtual void LoadFromSaveData(iSaveData *apSaveData)
int GetMatrixUpdateCount()
virtual void SaveToSaveData(iSaveData *apSaveData)
virtual iSaveData * CreateSaveData()
virtual void SaveDataSetup(cSaveObjectHandler *apSaveObjectHandler, cGame *apGame)
Definition: Entity3D.h:81
Definition: Entity3D.h:44
Definition: Material.h:203
Definition: PhysicsBody.h:117
Definition: Renderable.h:70
Definition: SaveGame.h:111
Definition: SaveGame.h:130
Definition: VertexBuffer.h:90