28 #ifndef _SceneNode_H__
29 #define _SceneNode_H__
40 struct VisibleObjectsBoundsInfo;
80 void updateFromParentImpl(
void)
const;
83 Node* createChildImpl(
void);
89 void setParent(
Node* parent);
94 virtual void setInSceneGraph(
bool inGraph);
131 virtual unsigned short numAttachedObjects(
void)
const;
137 virtual MovableObject* getAttachedObject(
unsigned short index);
158 virtual void detachAllObjects(
void);
184 virtual void _update(
bool updateChildren,
bool parentHasChanged);
188 virtual void _updateBounds(
void);
210 bool includeChildren =
true,
bool displayNodes =
false,
bool onlyShadowCasters =
false);
229 virtual ObjectIterator getAttachedObjectIterator(
void);
240 virtual ConstObjectIterator getAttachedObjectIterator(
void)
const;
259 virtual void removeAndDestroyChild(
const String& name);
271 virtual void removeAndDestroyChild(
unsigned short index);
279 virtual void removeAndDestroyAllChildren(
void);
285 virtual void showBoundingBox(
bool bShow);
292 virtual void hideBoundingBox(
bool bHide);
296 virtual void _addBoundingBoxToQueue(
RenderQueue* queue);
305 virtual bool getShowBoundingBox()
const;
344 virtual void findLights(
LightList& destList,
Real radius,
uint32 lightMask = 0xFFFFFFFF)
const;
364 virtual void yaw(
const Radian& angle, TransformSpace relativeTo = TS_LOCAL);
376 TransformSpace relativeTo = TS_LOCAL,
389 virtual void setDirection(
const Vector3& vec, TransformSpace relativeTo = TS_LOCAL,
397 virtual void lookAt(
const Vector3& targetPoint, TransformSpace relativeTo,
417 virtual void setAutoTracking(
bool enabled,
SceneNode* target = 0,
427 void _autoTrack(
void);
429 SceneNode* getParentSceneNode(
void)
const;
438 virtual void setVisible(
bool visible,
bool cascade =
true);
446 virtual void flipVisibility(
bool cascade =
true);
457 virtual void setDebugDisplayEnabled(
bool enabled,
bool cascade =
true);
460 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.