4#ifndef _SCENEGRAPH_MODEL_H
5#define _SCENEGRAPH_MODEL_H
75 class BinaryConverter;
76 class MatrixTransform;
81 std::runtime_error(str.c_str()) {}
84 typedef std::vector<std::pair<std::string, RefCountedPtr<Graphics::Material>>>
MaterialContainer;
99 const std::string &
GetName()
const {
return m_name; }
105 void Render(
const std::vector<matrix4x4f> &trans,
const RenderData *rd = 0);
116 unsigned int GetNumMaterials()
const {
return static_cast<Uint32
>(m_materials.size()); }
118 unsigned int GetNumTags()
const {
return static_cast<Uint32
>(m_tags.size()); }
121 typedef std::vector<MatrixTransform *>
TVecMT;
126 unsigned int GetNumPatterns()
const {
return static_cast<Uint32
>(m_patterns.size()); }
128 unsigned int GetPattern()
const {
return m_curPatternIndex; }
129 void SetColors(
const std::vector<Color> &colors);
146 const std::vector<Animation *>
GetAnimations()
const {
return m_animations; }
182 static const unsigned int MAX_DECAL_MATERIALS = 4;
184 float m_boundingRadius;
192 std::vector<Animation *> m_animations;
193 uint64_t m_activeAnimations;
198 unsigned int m_curPatternIndex;
204 std::unique_ptr<Graphics::MeshObject> m_debugMesh;
205 std::unique_ptr<Graphics::Material> m_debugLineMat;
nlohmann::json Json
Definition Json.h:8
Definition DeleteEmitter.h:16
Definition Material.h:148
Definition RefCounted.h:36
Definition Animation.h:19
Definition BaseLoader.h:18
Definition BinaryConverter.h:43
void Render(const matrix4x4f &trans, const RenderData *rd=0)
Definition Model.cpp:112
void SetThrusterColor(const vector3f &dir, const Color &color)
Definition Model.cpp:399
const std::string & GetName() const
Definition Model.h:99
MatrixTransform * GetTagByIndex(unsigned int index) const
Definition Model.cpp:239
void AddTag(const std::string &name, MatrixTransform *node)
Definition Model.cpp:269
RefCountedPtr< CollMesh > GetCollisionMesh() const
Definition Model.h:108
void UpdateAnimations()
Definition Model.cpp:356
bool SupportsDecals()
Definition Model.cpp:321
void SetLabel(const std::string &)
Definition Model.cpp:300
void SetAnimationActive(uint32_t index, bool active)
Definition Model.cpp:373
Graphics::Renderer * GetRenderer() const
Definition Model.h:153
std::vector< MatrixTransform * > TVecMT
Definition Model.h:121
void ClearDecals()
Definition Model.cpp:307
void SetThrust(const vector3f &linear, const vector3f &angular)
Definition Model.cpp:388
void SetDecalTexture(Graphics::Texture *t, unsigned int index=0)
Definition Model.cpp:293
void SetDrawClipRadius(float clipRadius)
Definition Model.h:102
void LoadFromJson(const Json &jsonObj)
Definition Model.cpp:465
friend class ModelBinarizer
Definition Model.h:92
unsigned int GetPattern() const
Definition Model.h:128
bool GetAnimationActive(uint32_t index) const
Definition Model.cpp:382
MatrixTransform * FindTagByName(const std::string &name) const
Definition Model.cpp:245
void SetPattern(unsigned int index)
Definition Model.cpp:278
RefCountedPtr< CollMesh > CreateCollisionMesh()
Definition Model.cpp:216
float GetDrawClipRadius() const
Definition Model.h:101
DebugFlags
Definition Model.h:168
@ DEBUG_GEOMBBOX
Definition Model.h:175
@ DEBUG_COLLMESH
Definition Model.h:171
@ DEBUG_NONE
Definition Model.h:169
@ DEBUG_TAGS
Definition Model.h:173
@ DEBUG_DOCKING
Definition Model.h:174
@ DEBUG_WIREFRAME
Definition Model.h:172
@ DEBUG_BBOX
Definition Model.h:170
unsigned int GetNumMaterials() const
Definition Model.h:116
RefCountedPtr< Graphics::Material > GetMaterialByIndex(const int) const
Definition Model.cpp:234
void SaveToJson(Json &jsonObj) const
Definition Model.cpp:447
void InitAnimations()
Definition Model.cpp:350
Model * MakeInstance() const
Definition Model.cpp:106
const PatternContainer & GetPatterns() const
Definition Model.h:125
std::string GetNameForMaterial(Graphics::Material *) const
Definition Model.cpp:492
bool SupportsPatterns()
Definition Model.cpp:329
unsigned int GetNumPatterns() const
Definition Model.h:126
RefCountedPtr< Group > GetRoot()
Definition Model.h:111
void SetDebugFlags(Uint32 flags)
Definition Model.cpp:638
void ClearDecal(unsigned int index=0)
Definition Model.cpp:314
RefCountedPtr< Graphics::Material > GetMaterialByName(const std::string &name) const
Definition Model.cpp:225
unsigned int GetNumTags() const
Definition Model.h:118
uint32_t FindAnimationIndex(Animation *) const
Definition Model.cpp:364
const std::vector< Animation * > GetAnimations() const
Definition Model.h:146
Animation * FindAnimation(const std::string &) const
Definition Model.cpp:342
~Model()
Definition Model.cpp:100
void SetCollisionMesh(RefCountedPtr< CollMesh > collMesh)
Definition Model.h:109
void FindTagsByStartOfName(const std::string &name, TVecMT &outNameMTs) const
Definition Model.cpp:256
void SetColors(const std::vector< Color > &colors)
Definition Model.cpp:287
T * Get() const
Definition SmartPtr.h:37
void Reset(T *p=0)
Definition SmartPtr.h:25
Definition CityOnPlanet.h:31
std::vector< MatrixTransform * > TagContainer
Definition Model.h:86
std::vector< std::pair< std::string, RefCountedPtr< Graphics::Material > > > MaterialContainer
Definition Model.h:84
std::vector< Pattern > PatternContainer
Definition Pattern.h:34
std::vector< Animation * > AnimationContainer
Definition Model.h:85
LoadingError(const std::string &str)
Definition Model.h:80