28 #ifndef _SceneNode_H__
29 #define _SceneNode_H__
41 struct VisibleObjectsBoundsInfo;
81 void updateFromParentImpl(
void)
const;
84 Node* createChildImpl(
void);
90 void setParent(
Node* parent);
95 virtual void setInSceneGraph(
bool inGraph);
132 virtual unsigned short numAttachedObjects(
void)
const;
138 virtual MovableObject* getAttachedObject(
unsigned short index);
159 virtual void detachAllObjects(
void);
185 virtual void _update(
bool updateChildren,
bool parentHasChanged);
189 virtual void _updateBounds(
void);
211 bool includeChildren =
true,
bool displayNodes =
false,
bool onlyShadowCasters =
false);
230 virtual ObjectIterator getAttachedObjectIterator(
void);
241 virtual ConstObjectIterator getAttachedObjectIterator(
void)
const;
260 virtual void removeAndDestroyChild(
const String& name);
272 virtual void removeAndDestroyChild(
unsigned short index);
280 virtual void removeAndDestroyAllChildren(
void);
286 virtual void showBoundingBox(
bool bShow);
293 virtual void hideBoundingBox(
bool bHide);
297 virtual void _addBoundingBoxToQueue(
RenderQueue* queue);
306 virtual bool getShowBoundingBox()
const;
345 virtual void findLights(
LightList& destList,
Real radius,
uint32 lightMask = 0xFFFFFFFF)
const;
365 virtual void yaw(
const Radian& angle, TransformSpace relativeTo = TS_LOCAL);
377 TransformSpace relativeTo = TS_LOCAL,
390 virtual void setDirection(
const Vector3& vec, TransformSpace relativeTo = TS_LOCAL,
398 virtual void lookAt(
const Vector3& targetPoint, TransformSpace relativeTo,
418 virtual void setAutoTracking(
bool enabled,
SceneNode*
const target = 0,
428 void _autoTrack(
void);
430 SceneNode* getParentSceneNode(
void)
const;
439 virtual void setVisible(
bool visible,
bool cascade =
true);
447 virtual void flipVisibility(
bool cascade =
true);
458 virtual void setDebugDisplayEnabled(
bool enabled,
bool cascade =
true);
461 virtual DebugRenderable* getDebugRenderable();
A viewpoint from which the scene will be rendered.
virtual const Vector3 & getAutoTrackOffset(void)
Get the auto tracking offset for this node, if the node is auto tracking.
float Real
Software floating point type.
WireBoundingBox * mWireBoundingBox
Pointer to a Wire Bounding Box for this Node.
MapIterator< ObjectMap > ObjectIterator
Manages the organisation and rendering of a 'scene' i.e.
virtual bool isInSceneGraph(void) const
Determines whether this node is in the scene graph, i.e.
static const Vector3 ZERO
A 3D box aligned with the x/y/z axes.
Vector3 mAutoTrackLocalDirection
Local 'normal' direction vector.
Abstract class defining a movable object in a scene.
Class representing a node in the scene graph.
Implementation of a Quaternion, i.e.
Concrete IteratorWrapper for nonconst access to the underlying key-value container.
static const Quaternion IDENTITY
static const Vector3 NEGATIVE_UNIT_Z
bool mShowBoundingBox
Flag that determines if the bounding box of the node should be displayed.
virtual const Vector3 & getAutoTrackLocalDirection(void)
Get the auto tracking local direction for this node, if it is auto tracking.
Standard 3-dimensional vector.
Allows the rendering of a wireframe bounding box.
HashMap< String, MovableObject * > ObjectMap
SceneNode * mAutoTrackTarget
Auto tracking target.
virtual void _notifyRootNode(void)
Notifies this SceneNode that it is the root scene node.
AxisAlignedBox mWorldAABB
World-Axis aligned bounding box, updated only through _update.
ConstMapIterator< ObjectMap > ConstObjectIterator
Vector3 mAutoTrackOffset
Tracking offset for fine tuning.
bool mIsInSceneGraph
Is this node a current part of the scene graph?
Wrapper class which indicates a given angle value is in Radians.
virtual SceneNode * getAutoTrackTarget(void)
Get the auto tracking target for this node, if any.
Class to manage the scene object rendering queue.
Concrete IteratorWrapper for const access to the underlying key-value container.
static const Vector3 UNIT_Y
bool mYawFixed
Whether to yaw around a fixed axis.
SceneManager * mCreator
SceneManager which created this node.
Vector3 mYawFixedAxis
Fixed axis to yaw around.
Structure collecting together information about the visible objects that have been discovered in a sc...
Class representing a general-purpose node an articulated scene graph.
SceneManager * getCreator(void) const
Gets the creator of this scene node.