4#ifndef _SCENEGRAPH_MODEL_H
5#define _SCENEGRAPH_MODEL_H
74 class BinaryConverter;
75 class MatrixTransform;
81 std::runtime_error(str.c_str()) {}
84 typedef std::vector<std::pair<std::string, RefCountedPtr<Graphics::Material>>>
MaterialContainer;
98 const std::string &
GetName()
const {
return m_name; }
104 void Render(
const std::vector<matrix4x4f> &trans,
const RenderData *rd = 0);
115 unsigned int GetNumMaterials()
const {
return static_cast<Uint32
>(m_materials.size()); }
132 unsigned int GetNumPatterns()
const {
return static_cast<Uint32
>(m_patterns.size()); }
134 unsigned int GetPattern()
const {
return m_curPatternIndex; }
135 void SetColors(
const std::vector<Color> &colors);
152 const std::vector<Animation *>
GetAnimations()
const {
return m_animations; }
188 static const unsigned int MAX_DECAL_MATERIALS = 4;
190 float m_boundingRadius;
199 std::vector<Animation *> m_animations;
200 uint64_t m_activeAnimations;
202 std::vector<Tag *> m_tags;
207 unsigned int m_curPatternIndex;
214 std::unique_ptr<Graphics::MeshObject> m_debugMesh;
215 std::unique_ptr<Graphics::Material> m_debugLineMat;
nlohmann::json Json
Definition: Json.h:8
Definition: DeleteEmitter.h:16
Definition: Material.h:148
Definition: Renderer.h:45
Definition: Texture.h:103
Definition: RefCounted.h:36
Definition: Animation.h:19
Definition: BaseLoader.h:17
Definition: BinaryConverter.h:44
Definition: ColorMap.h:18
void AddTag(std::string_view name, Group *parent, Tag *node)
Definition: Model.cpp:272
void Render(const matrix4x4f &trans, const RenderData *rd=0)
Definition: Model.cpp:116
void SetThrusterColor(const vector3f &dir, const Color &color)
Definition: Model.cpp:419
const std::string & GetName() const
Definition: Model.h:98
void FindTagsByStartOfName(std::string_view name, std::vector< Tag * > &outTags) const
Definition: Model.cpp:261
RefCountedPtr< CollMesh > GetCollisionMesh() const
Definition: Model.h:107
void UpdateAnimations()
Definition: Model.cpp:369
bool SupportsDecals()
Definition: Model.cpp:334
void SetLabel(const std::string &)
Definition: Model.cpp:313
void SetAnimationActive(uint32_t index, bool active)
Definition: Model.cpp:393
Graphics::Renderer * GetRenderer() const
Definition: Model.h:159
void ClearDecals()
Definition: Model.cpp:320
size_t GetNumTags() const
Definition: Model.h:119
Tag * GetTagByIndex(size_t index) const
Definition: Model.cpp:243
void SetThrust(const vector3f &linear, const vector3f &angular)
Definition: Model.cpp:408
void SetDecalTexture(Graphics::Texture *t, unsigned int index=0)
Definition: Model.cpp:306
void UpdateTagTransforms()
Definition: Model.cpp:282
void SetDrawClipRadius(float clipRadius)
Definition: Model.h:101
void LoadFromJson(const Json &jsonObj)
Definition: Model.cpp:485
friend class ModelBinarizer
Definition: Model.h:91
unsigned int GetPattern() const
Definition: Model.h:134
bool GetAnimationActive(uint32_t index) const
Definition: Model.cpp:402
Tag * FindTagByName(std::string_view name) const
Definition: Model.cpp:251
void SetPattern(unsigned int index)
Definition: Model.cpp:291
RefCountedPtr< CollMesh > CreateCollisionMesh()
Definition: Model.cpp:220
float GetDrawClipRadius() const
Definition: Model.h:100
DebugFlags
Definition: Model.h:174
@ DEBUG_GEOMBBOX
Definition: Model.h:181
@ DEBUG_COLLMESH
Definition: Model.h:177
@ DEBUG_NONE
Definition: Model.h:175
@ DEBUG_TAGS
Definition: Model.h:179
@ DEBUG_DOCKING
Definition: Model.h:180
@ DEBUG_WIREFRAME
Definition: Model.h:178
@ DEBUG_BBOX
Definition: Model.h:176
unsigned int GetNumMaterials() const
Definition: Model.h:115
RefCountedPtr< Graphics::Material > GetMaterialByIndex(const int) const
Definition: Model.cpp:238
void SaveToJson(Json &jsonObj) const
Definition: Model.cpp:467
void InitAnimations()
Definition: Model.cpp:363
Model * MakeInstance() const
Definition: Model.cpp:110
const PatternContainer & GetPatterns() const
Definition: Model.h:131
std::string GetNameForMaterial(Graphics::Material *) const
Definition: Model.cpp:512
bool SupportsPatterns()
Definition: Model.cpp:342
unsigned int GetNumPatterns() const
Definition: Model.h:132
RefCountedPtr< Group > GetRoot()
Definition: Model.h:110
void SetDebugFlags(Uint32 flags)
Definition: Model.cpp:630
void ClearDecal(unsigned int index=0)
Definition: Model.cpp:327
RefCountedPtr< Graphics::Material > GetMaterialByName(const std::string &name) const
Definition: Model.cpp:229
uint32_t FindAnimationIndex(Animation *) const
Definition: Model.cpp:384
const std::vector< Animation * > GetAnimations() const
Definition: Model.h:152
Animation * FindAnimation(const std::string &) const
Definition: Model.cpp:355
~Model()
Definition: Model.cpp:104
void SetCollisionMesh(RefCountedPtr< CollMesh > collMesh)
Definition: Model.h:108
void SetColors(const std::vector< Color > &colors)
Definition: Model.cpp:300
T * Get() const
Definition: SmartPtr.h:37
void Reset(T *p=0)
Definition: SmartPtr.h:25
Definition: CityOnPlanet.h:32
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