53 PARTICLE_SYSTEM_TYPE_ID = 6,
54 DYNAMIC_CUBE_MAP_ID = 7,
55 DYNAMIC_REFLECTION_MAP_ID = 8,
56 RENDER_TO_TEXTURE_ID = 9,
57 LINE_ENTITY_TYPE_ID = 10,
58 VIRTUAL_POINTER_TYPE_ID = 11
82 SNode* autoTrackTargetNode;
83 Ogre::StaticGeometry* staticGeometry;
84 bool staticVisibility;
94 bool mPhysicsOverride;
101 SNode(
SScene* parent,
const std::string& nodeName,
const bool& isRootNode=
false);
113 Ogre::SceneNode* GetOgreSceneNodePointer();
117 Ogre::MovableObject* GetMovableObjectPointer();
121 bool GetSceneNodeIsMouseForeground();
125 void SetSceneNodeIsMouseForeground(
const bool& mForeground);
129 bool GetSceneNodeIsMouseClick();
133 void SetSceneNodeIsMouseClick(
const bool& mClickable);
137 int GetSceneNodeMouseFlags();
141 void SetSceneNodeMouseFlags(
const int&
flags);
145 bool GetSceneNodeHasBody();
149 SBody* GetSceneNodeBody();
153 void RestoreStaticGraph();
157 void SetAsStaticGeometry(
const bool& state);
161 bool GetAsStaticGeometry();
165 Ogre::StaticGeometry* GetStaticGeometry();
169 void SetFlags(
const int&
flags);
174 void SetPhysicsOverride(
bool state);
178 bool GetPhysicsOverride();
186 void UpdateNodeBody(
const bool& bScale);
190 void DisableAutoTarget();
198 void AttachToParent(
SNode* newParentNode);
202 void DetachFromParent();
206 SNode* GetParentSceneNode();
210 const SNodeMap GetChildrenNodes()
const;
214 virtual int GetNumChildren();
218 void DetachAllChildren();
223 virtual void SetCastShadows(
const bool& castShadows);
228 virtual bool GetCastShadows();
233 virtual void SetRenderingDistance(
const float& distance);
238 virtual float GetRenderingDistance();
243 virtual Ogre::Vector3 GetBoundingBoxSize(
const bool& childs =
false);
248 virtual Ogre::Vector3 GetBoundingBoxCenter(
const bool& childs =
false);
253 virtual Ogre::Vector3 GetWorldBoundingBoxSize(
const bool& childs =
false);
258 virtual Ogre::Vector3 GetWorldBoundingBoxCenter(
const bool& childs =
false);
262 virtual Ogre::Matrix4 GetTransformationMatrix();
267 virtual Ogre::Vector3 GetPosition();
272 virtual void SetPosition(
const Ogre::Vector3& pos);
277 virtual Ogre::Quaternion GetOrientation();
282 virtual void SetOrientation(
const Ogre::Quaternion& quat);
287 virtual void AddOrientation(
const Ogre::Quaternion& quat);
292 virtual Ogre::Vector3 GetScale();
297 virtual void SetScale(
const Ogre::Vector3& scale);
302 virtual Ogre::Vector3 GetGlobalPosition();
307 virtual void SetGlobalPosition(
const Ogre::Vector3& pos,
bool updateBody =
true);
312 virtual Ogre::Quaternion GetGlobalOrientation();
317 virtual void SetGlobalOrientation(
const Ogre::Quaternion& quat,
bool updateBody =
true);
322 virtual Ogre::Vector3 GetGlobalScale();
327 virtual void SetGlobalScale(
const Ogre::Vector3& scale,
bool updateBody =
true);
332 virtual void StoreInitialPRS();
337 virtual void ResetToInitialPRS();
342 void ResetToInitialPosition();
347 virtual void ResetToInitialOrientation();
352 void ResetToInitialScale();
357 virtual Ogre::Vector3 GetInitialPosition();
362 virtual Ogre::Quaternion GetInitialOrientation();
367 virtual Ogre::Vector3 GetInitialScale();
371 bool GetShowBoundingBox();
375 void SetShowBoundingBox(
const bool& showBounding);
379 void SetAutoTracking(
const bool& autoTrack,
SNode* targetNode=0,
const Ogre::Vector3& localDirectionVector=Ogre::Vector3::NEGATIVE_UNIT_Z,
const Ogre::Vector3& offset=Ogre::Vector3::ZERO);
383 SNode* GetAutoTrackingTarget();
399 virtual void Rotate(
const Ogre::Vector3& axis,
const float& radianAngle,
const SNode::NodeTransformSpace& relativeTo=SNode::SO3_LOCAL_TS);
407 void SetDirection(
const Ogre::Vector3& vec,
const SNode::NodeTransformSpace& relativeTo=SNode::SO3_LOCAL_TS,
const Ogre::Vector3& localDirectionVector = Ogre::Vector3::NEGATIVE_UNIT_Z);
411 Ogre::Vector3 GetDirection(
bool derived =
false, Ogre::Vector3 axis = Ogre::Vector3::NEGATIVE_UNIT_Z);
415 void LookAt(
const Ogre::Vector3& targetPoint,
const SNode::NodeTransformSpace& relativeTo,
const Ogre::Vector3& localDirectionVector = Ogre::Vector3::NEGATIVE_UNIT_Z);
423 void SetVisible(
const bool& visible,
const bool& cascade =
true);
429 SNodeAnimation* CreateNodeAnimation(
const std::string& animationName,
const float& animationLength);
436 void DeleteAnimation(
SAnim* existingAnimation);
440 size_t GetNumAnimations();
444 SAnim* GetAnimation(
const std::string& animationName);
448 SAnim* GetAnimation(
const unsigned short& animationIndex);
461 Ogre::Vector3 GetPositionFromNode(
SNode* nodeRef);
466 Ogre::Quaternion GetOrientationFromNode(
SNode* nodeRef);
471 Ogre::Vector3 GetScaleFromNode(
SNode* nodeRef);
475 virtual void SetInheritOrientation(
const bool& state);
479 virtual bool GetInheritOrientation();
483 virtual void ResetOrientation();
491 SBody* CreateBoxBody(
const Ogre::Vector3& boxsetting);
495 SBody* CreateBoxBody(
const Ogre::Vector3& boxsetting,
const Ogre::Vector3& offset,
const Ogre::Quaternion& quat);
499 SBody* CreateConeBody(
const Ogre::Real& radius,
const Ogre::Real& height);
503 SBody* CreateConeBody(
const Ogre::Real& radius,
const Ogre::Real& height,
const Ogre::Vector3& offset,
const Ogre::Quaternion& quat);
507 SBody* CreateEllipsoidBody(
const Ogre::Vector3& size);
511 SBody* CreateEllipsoidBody(
const Ogre::Vector3& size,
const Ogre::Vector3& offset,
const Ogre::Quaternion& quat);
515 SBody* CreateCapsuleBody(
const Ogre::Real& radius,
const Ogre::Real& height);
519 SBody* CreateCapsuleBody(
const Ogre::Real& radius,
const Ogre::Real& height,
const Ogre::Vector3& offset,
const Ogre::Quaternion& quat);
523 SBody* CreateCylinderBody(
const Ogre::Real& radius,
const Ogre::Real& height);
527 SBody* CreateCylinderBody(
const Ogre::Real& radius,
const Ogre::Real& height,
const Ogre::Vector3& offset,
const Ogre::Quaternion& quat);
531 SBody* CreateChamferCylinderBody(
const Ogre::Real& radius,
const Ogre::Real& height);
535 SBody* CreateChamferCylinderBody(
const Ogre::Real& radius,
const Ogre::Real& height,
const Ogre::Vector3& offset,
const Ogre::Quaternion& quat);
539 SBody* CreatePyramidBody(
const Ogre::Vector3& size);
543 SBody* CreatePyramidBody(
const Ogre::Vector3& size,
const Ogre::Vector3& offset,
const Ogre::Quaternion& quat);
547 SBody* CreateConvexHullBody(
const Ogre::Real& tolerance);
551 SBody* CreateConcaveHullBody(
const Ogre::Real& tolerance);
555 SBody* CreateTreeBody(
const bool& optimize);
563 void SetDirty(
bool state);
567 void UpdateNodeFromBody();
581 void AddAnimation(
SAnim* existingAnimation);
586 void RemoveAnimation(
SAnim* existingAnimation);
591 void RemoveAnimation(
const std::string& animationName);
596 Ogre::Vector3 GetSonsBoundingBox();
601 Ogre::Vector3 GetSonsWorldBoundingBox();
610 void AddChildNode(
SNode* newChild);
614 void RemoveChildNode(
SNode* existingChild);