4 #ifndef _SCENEGRAPH_MODEL_H
5 #define _SCENEGRAPH_MODEL_H
81 class BinaryConverter;
82 class MatrixTransform;
87 std::runtime_error(str.c_str()) {}
90 typedef std::vector<std::pair<std::string, RefCountedPtr<Graphics::Material>>>
MaterialContainer;
105 const std::string &
GetName()
const {
return m_name; }
111 void Render(
const std::vector<matrix4x4f> &trans,
const RenderData *rd = 0);
122 unsigned int GetNumMaterials()
const {
return static_cast<Uint32
>(m_materials.size()); }
124 unsigned int GetNumTags()
const {
return static_cast<Uint32
>(m_tags.size()); }
127 typedef std::vector<MatrixTransform *>
TVecMT;
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; }
187 static const unsigned int MAX_DECAL_MATERIALS = 4;
189 float m_boundingRadius;
197 std::vector<Animation *> m_animations;
198 uint64_t m_activeAnimations;
203 unsigned int m_curPatternIndex;
210 void DrawCollisionMesh();
211 void DrawAxisIndicators(std::vector<Graphics::Drawables::Line3D> &lines);
212 void AddAxisIndicators(
const std::vector<MatrixTransform *> &mts, std::vector<Graphics::Drawables::Line3D> &lines);
215 std::vector<Graphics::Drawables::Line3D> m_tagPoints;
216 std::vector<Graphics::Drawables::Line3D> m_dockingPoints;
nlohmann::json Json
Definition: Json.h:8
Definition: DeleteEmitter.h:16
Definition: Material.h:81
Definition: RenderState.h:25
Definition: Renderer.h:39
Definition: Texture.h:106
Definition: Animation.h:19
Definition: BaseLoader.h:18
Definition: BinaryConverter.h:32
Definition: ColorMap.h:19
void Render(const matrix4x4f &trans, const RenderData *rd=0)
Definition: Model.cpp:107
void SetThrusterColor(const vector3f &dir, const Color &color)
Definition: Model.cpp:512
MatrixTransform * GetTagByIndex(unsigned int index) const
Definition: Model.cpp:352
void AddTag(const std::string &name, MatrixTransform *node)
Definition: Model.cpp:382
Model(Graphics::Renderer *r, const std::string &name)
Definition: Model.cpp:34
void UpdateAnimations()
Definition: Model.cpp:469
RefCountedPtr< CollMesh > GetCollisionMesh() const
Definition: Model.h:114
bool SupportsDecals()
Definition: Model.cpp:434
void SetLabel(const std::string &)
Definition: Model.cpp:413
void SetAnimationActive(uint32_t index, bool active)
Definition: Model.cpp:486
std::vector< MatrixTransform * > TVecMT
Definition: Model.h:127
void ClearDecals()
Definition: Model.cpp:420
const PatternContainer & GetPatterns() const
Definition: Model.h:131
const std::string & GetName() const
Definition: Model.h:105
void SetThrust(const vector3f &linear, const vector3f &angular)
Definition: Model.cpp:501
void SetDecalTexture(Graphics::Texture *t, unsigned int index=0)
Definition: Model.cpp:406
void SetDrawClipRadius(float clipRadius)
Definition: Model.h:108
void LoadFromJson(const Json &jsonObj)
Definition: Model.cpp:578
friend class ModelBinarizer
Definition: Model.h:98
unsigned int GetPattern() const
Definition: Model.h:134
bool GetAnimationActive(uint32_t index) const
Definition: Model.cpp:495
MatrixTransform * FindTagByName(const std::string &name) const
Definition: Model.cpp:358
void SetPattern(unsigned int index)
Definition: Model.cpp:391
RefCountedPtr< CollMesh > CreateCollisionMesh()
Definition: Model.cpp:329
float GetDrawClipRadius() const
Definition: Model.h:107
DebugFlags
Definition: Model.h:174
@ 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:122
RefCountedPtr< Graphics::Material > GetMaterialByIndex(const int) const
Definition: Model.cpp:347
void SaveToJson(Json &jsonObj) const
Definition: Model.cpp:560
void InitAnimations()
Definition: Model.cpp:463
Model * MakeInstance() const
Definition: Model.cpp:101
Graphics::Renderer * GetRenderer() const
Definition: Model.h:159
std::string GetNameForMaterial(Graphics::Material *) const
Definition: Model.cpp:605
bool SupportsPatterns()
Definition: Model.cpp:442
unsigned int GetNumPatterns() const
Definition: Model.h:132
RefCountedPtr< Group > GetRoot()
Definition: Model.h:117
void SetDebugFlags(Uint32 flags)
Definition: Model.cpp:652
void ClearDecal(unsigned int index=0)
Definition: Model.cpp:427
RefCountedPtr< Graphics::Material > GetMaterialByName(const std::string &name) const
Definition: Model.cpp:338
unsigned int GetNumTags() const
Definition: Model.h:124
uint32_t FindAnimationIndex(Animation *) const
Definition: Model.cpp:477
Animation * FindAnimation(const std::string &) const
Definition: Model.cpp:455
~Model()
Definition: Model.cpp:95
void SetCollisionMesh(RefCountedPtr< CollMesh > collMesh)
Definition: Model.h:115
void FindTagsByStartOfName(const std::string &name, TVecMT &outNameMTs) const
Definition: Model.cpp:369
const std::vector< Animation * > GetAnimations() const
Definition: Model.h:152
void SetColors(const std::vector< Color > &colors)
Definition: Model.cpp:400
T * Get() const
Definition: SmartPtr.h:37
void Reset(T *p=0)
Definition: SmartPtr.h:25
Definition: Background.h:13
Definition: CityOnPlanet.h:23
std::vector< MatrixTransform * > TagContainer
Definition: Model.h:92
std::vector< std::pair< std::string, RefCountedPtr< Graphics::Material > > > MaterialContainer
Definition: Model.h:90
std::vector< Pattern > PatternContainer
Definition: Pattern.h:34
std::vector< Animation * > AnimationContainer
Definition: Model.h:91
LoadingError(const std::string &str)
Definition: Model.h:86