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();
bool mIsInSceneGraph
Is this node a current part of the scene graph?
virtual SceneNode * getAutoTrackTarget(void)
Get the auto tracking target for this node, if any.
virtual const Vector3 & getAutoTrackLocalDirection(void)
Get the auto tracking local direction for this node, if it is auto tracking.
MapIterator< ObjectMap > ObjectIterator
Abstract class defining a movable object in a scene.
static const Vector3 NEGATIVE_UNIT_Z
Implementation of a Quaternion, i.e.
Concrete IteratorWrapper for nonconst access to the underlying key-value container.
SceneManager * mCreator
SceneManager which created this node.
Concrete IteratorWrapper for const access to the underlying key-value container.
float Real
Software floating point type.
Vector3 mAutoTrackOffset
Tracking offset for fine tuning.
Class to manage the scene object rendering queue.
bool mYawFixed
Whether to yaw around a fixed axis.
Class representing a node in the scene graph.
HashMap< String, MovableObject * > ObjectMap
Vector3 mAutoTrackLocalDirection
Local 'normal' direction vector.
AxisAlignedBox mWorldAABB
World-Axis aligned bounding box, updated only through _update.
Standard 3-dimensional vector.
SceneManager * getCreator(void) const
Gets the creator of this scene node.
virtual const Vector3 & getAutoTrackOffset(void)
Get the auto tracking offset for this node, if the node is auto tracking.
Class representing a general-purpose node an articulated scene graph.
bool mShowBoundingBox
Flag that determines if the bounding box of the node should be displayed.
Structure collecting together information about the visible objects that have been discovered in a sc...
virtual void _notifyRootNode(void)
Notifies this SceneNode that it is the root scene node.
Vector3 mYawFixedAxis
Fixed axis to yaw around.
WireBoundingBox * mWireBoundingBox
Pointer to a Wire Bounding Box for this Node.
Allows the rendering of a wireframe bounding box.
A viewpoint from which the scene will be rendered.
static const Vector3 UNIT_Y
ConstMapIterator< ObjectMap > ConstObjectIterator
virtual bool isInSceneGraph(void) const
Determines whether this node is in the scene graph, i.e.
SceneNode * mAutoTrackTarget
Auto tracking target.
static const Quaternion IDENTITY
A 3D box aligned with the x/y/z axes.
Manages the organisation and rendering of a 'scene' i.e.
Wrapper class which indicates a given angle value is in Radians.
static const Vector3 ZERO