8 #include "BoundingBox.h"
9 #include "VectorMath.h"
10 #include "Rendering.h"
15 #define NODE_NAME_MAXSIZE (100)
26 char m_szName [NODE_NAME_MAXSIZE];
32 std::vector <Node*> m_pChildNodes;
34 std::vector <Node*>* m_pNodeList;
55 float m_radiusSubtree;
61 void SetSkinMatrices ();
63 void CalculateShereSuperset(
Eegeo::v3& centre,
80 void AssignObjects (std::vector<Node*> &nodeList, std::vector<ModelMesh*> &meshList, std::vector<ModelMaterial*> &materialList);
83 void UpdateRecursive (
bool dirtyParent =
false);
85 void UpdateBB (
bool dirtyBB);
87 void UpdateBBRecursive (
bool dirtyParent =
false);
88 void UpdateSphereRecursive(
bool dirtyParent =
false);
96 void AddChild (
Node* pChildNode);
98 void SetParentNode (
Node* pParentNode);
99 Node* GetParentNode ();
101 u32 GetNumChildNodes () {
return static_cast<u32
>(m_pChildNodes.size()); }
102 Node* GetChildNode ( u32 index ) {
return m_pChildNodes[index]; }
113 void SetLocalMatrix (
const Eegeo::m44& localMatrix);
115 const Eegeo::m44& GetInvPoseMatrix () {
return m_invPoseMatrix; }
116 void SetInvPoseMatrix (
const Eegeo::m44& invPoseMatrix) { m_invPoseMatrix = invPoseMatrix; }
121 u32 GetNameHash () {
return m_nameHash; }
124 void SetVisible (
bool boOnOff);
126 void GetCentre (
Eegeo::v3& centre)
const { centre = m_centre; }
127 float GetRadius ()
const {
return m_radius; }
129 void GetMinExtent (
Eegeo::v3& extent)
const { extent = m_worldMin; }
130 void GetMaxExtent (
Eegeo::v3& extent)
const { extent = m_worldMax; }
131 void GetExtents (
Eegeo::v3& min,
Eegeo::v3& max)
const { GetMinExtent(min); GetMaxExtent(max); }
133 void GetCentreSubtree (
Eegeo::v3& centre)
const { centre = m_centreSubtree; }
134 float GetRadiusSubtree ()
const {
return m_radiusSubtree; }