 |
Irrlicht 3D Engine
|
|
Go to the documentation of this file.
5 #ifndef __I_SCENE_NODE_H_INCLUDED__
6 #define __I_SCENE_NODE_H_INCLUDED__
97 (*it)->OnRegisterSceneNode();
132 (*it)->OnAnimate(timeMs);
138 virtual void render() = 0;
282 if (child && (child !=
this))
375 if ((*it) == animator)
779 for (; it != toCopyFrom->
Children.end(); ++it)
780 (*it)->clone(
this, newManager);
785 for (; ait != toCopyFrom->
Animators.end(); ++ait)
804 (*it)->setSceneManager(newManager);
void grab() const
Grabs the object. Increments the reference counter by one.
virtual void render()=0
Renders the node.
Doubly linked list template.
virtual const core::aabbox3d< f32 > & getBoundingBox() const =0
Get the axis aligned, not transformed bounding box of this node.
void setTexture(u32 i, ITexture *tex)
Sets the i-th texture.
bool isDebugObject() const
Returns if this scene node is a debug object.
virtual void addAnimator(ISceneNodeAnimator *animator)
Adds an animator which should animate this node.
virtual void setRotation(const core::vector3df &rotation)
Sets the rotation of the node relative to its parent.
ISceneManager * SceneManager
Pointer to the scene manager.
scene::ISceneNode * getParent() const
Returns the parent of this scene node.
E_MATERIAL_FLAG
Material flags.
virtual s32 getAttributeAsInt(const c8 *attributeName) const =0
void setMaterialType(video::E_MATERIAL_TYPE newType)
Sets the material type of all materials in this scene node to a new material type.
virtual void setDebugDataVisible(u32 state)
Sets if debug data like bounding boxes should be drawn.
core::list< ISceneNode * > ISceneNodeList
Typedef for list of scene nodes.
virtual bool removeChild(ISceneNode *child)
Removes a child from this scene node.
virtual bool isTrulyVisible() const
Check whether the node is truly visible, taking into accounts its parents' visibility.
virtual void deserializeAttributes(io::IAttributes *in, io::SAttributeReadWriteOptions *options=0)
Reads attributes of the scene node.
virtual void OnRegisterSceneNode()
This method is called just before the rendering process of the whole scene.
char c8
8 bit character variable.
virtual void setParent(ISceneNode *newParent)
Changes the parent of the scene node.
void setMaterialTexture(u32 textureLayer, video::ITexture *texture)
Sets the texture of the specified layer in all materials of this scene node to the new texture.
An object which is able to serialize and deserialize its attributes into an attributes object.
virtual void setID(s32 id)
Sets the id of the scene node.
virtual void OnAnimate(u32 timeMs)
OnAnimate() is called just before rendering the whole scene.
bool drop() const
Drops the object. Decrements the reference counter by one.
virtual void removeAll()
Removes all children of this scene node.
CMatrix4< T > & setRotationDegrees(const vector3d< T > &rotation)
Make a rotation matrix from Euler angles. The 4th row and column are unmodified.
struct holding data describing options
ESCENE_NODE_TYPE
An enumeration for all types of built-in scene nodes.
virtual ITriangleSelector * getTriangleSelector() const
Returns the triangle selector attached to this scene node.
Interface to return triangles with specific properties.
@ EDS_OFF
No Debug Data ( Default )
virtual void addBool(const c8 *attributeName, bool value)=0
Adds an attribute as bool.
virtual core::stringc getAttributeAsString(const c8 *attributeName)=0
Interface of a Video Driver dependent Texture.
virtual core::matrix4 getRelativeTransformation() const
Returns the relative transformation of the scene node.
virtual video::SMaterial & getMaterial(u32 num)
Returns the material based on the zero based index i.
core::vector3df RelativeScale
Relative scale of the scene node.
virtual void setPosition(const core::vector3df &newpos)
Sets the position of the node relative to its parent.
ISceneNode * Parent
Pointer to the parent.
virtual void setName(const core::stringc &name)
Sets the name of the node.
core::stringc Name
Name of the scene node.
core::vector3df RelativeTranslation
Relative translation of the scene node.
virtual const core::vector3df & getScale() const
Gets the scale of the scene node relative to its parent.
signed int s32
32 bit signed variable.
virtual const c8 * getName() const
Returns the name of the node.
core::list< ISceneNodeAnimator * > ISceneNodeAnimatorList
Typedef for list of scene node animators.
4x4 matrix. Mostly used as transformation matrix for 3d calculations.
virtual const core::vector3df & getRotation() const
Gets the rotation of the node relative to its parent.
vector3d< T > getTranslation() const
Gets the current translation.
const core::list< ISceneNode * > & getChildren() const
Returns a const reference to the list of all children.
virtual const core::aabbox3d< f32 > getTransformedBoundingBox() const
Get the axis aligned, transformed and animated absolute bounding box of this node.
core::vector3df RelativeRotation
Relative rotation of the scene node.
virtual u32 getMaterialCount() const
Get amount of materials used by this scene node.
@ ESNT_UNKNOWN
Unknown scene node.
virtual core::vector3df getAbsolutePosition() const
Gets the absolute position of the node in world coordinates.
ISceneNode(ISceneNode *parent, ISceneManager *mgr, s32 id=-1, const core::vector3df &position=core::vector3df(0, 0, 0), const core::vector3df &rotation=core::vector3df(0, 0, 0), const core::vector3df &scale=core::vector3df(1.0f, 1.0f, 1.0f))
Constructor.
void cloneMembers(ISceneNode *toCopyFrom, ISceneManager *newManager)
A clone function for the ISceneNode members.
u32 isDebugDataVisible() const
Returns if debug data like bounding boxes are drawn.
virtual void animateNode(ISceneNode *node, u32 timeMs)=0
Animates a scene node.
virtual ESCENE_NODE_TYPE getType() const
Returns type of the scene node.
E_MATERIAL_TYPE
Abstracted and easy to use fixed function/programmable pipeline material modes.
virtual bool getAttributeAsBool(const c8 *attributeName)=0
virtual const core::matrix4 & getAbsoluteTransformation() const
Get the absolute transformation of the node. Is recalculated every OnAnimate()-call.
virtual ISceneNode * clone(ISceneNode *newParent=0, ISceneManager *newManager=0)
Creates a clone of this scene node and its children.
virtual s32 getID() const
Get the id of the scene node.
virtual void removeAnimator(ISceneNodeAnimator *animator)
Removes an animator from this scene node.
E_MATERIAL_TYPE MaterialType
Type of the material. Specifies how everything is blended together.
virtual ~ISceneNode()
Destructor.
void setFlag(E_MATERIAL_FLAG flag, bool value)
Sets the Material flag to the given value.
const T * c_str() const
Returns character string.
ITriangleSelector * TriangleSelector
Pointer to the triangle selector.
void setSceneManager(ISceneManager *newManager)
core::matrix4 AbsoluteTransformation
Absolute transformation of the node.
u32 AutomaticCullingState
Automatic culling state.
virtual ISceneManager * getSceneManager(void) const
Retrieve the scene manager for this node.
virtual void removeAnimators()
Removes all animators from this scene node.
const u32 MATERIAL_MAX_TEXTURES
Maximum number of texture an SMaterial can have.
CMatrix4< T > & setTranslation(const vector3d< T > &translation)
Set the translation of the current matrix. Will erase any previous values.
virtual bool isVisible() const
Returns whether the node should be visible (if all of its parents are visible).
virtual void setName(const c8 *name)
Sets the name of the node.
const core::list< ISceneNodeAnimator * > & getAnimators() const
Get a list of all scene node animators.
CMatrix4< T > & setScale(const vector3d< T > &scale)
Set Scale.
virtual void setTriangleSelector(ITriangleSelector *selector)
Sets the triangle selector of the scene node.
Everything in the Irrlicht Engine can be found in this namespace.
virtual void serializeAttributes(io::IAttributes *out, io::SAttributeReadWriteOptions *options=0) const
Writes attributes of the scene node.
core::list< ISceneNodeAnimator * > Animators
List of all animator nodes.
virtual void setScale(const core::vector3df &scale)
Sets the relative scale of the scene node.
virtual void setVisible(bool isVisible)
Sets if the node should be visible or not.
virtual void addVector3d(const c8 *attributeName, core::vector3df value)=0
Adds an attribute as 3d vector.
unsigned int u32
32 bit unsigned variable.
Animates a scene node. Can animate position, rotation, material, and so on.
virtual ISceneNodeAnimator * createClone(ISceneNode *node, ISceneManager *newManager=0)=0
Creates a clone of this animator.
u32 getAutomaticCulling() const
Gets the automatic culling state.
The Scene Manager manages scene nodes, mesh recources, cameras and all the other stuff.
const c8 *const AutomaticCullingNames[]
Names for culling type.
virtual void addString(const c8 *attributeName, const c8 *value)=0
Adds an attribute as string.
core::list< ISceneNode * > Children
List of all children of this node.
u32 DebugDataVisible
Flag if debug data should be drawn, such as Bounding Boxes.
virtual void addInt(const c8 *attributeName, s32 value)=0
Adds an attribute as integer.
Struct for holding parameters for a material renderer.
void setIsDebugObject(bool debugObject)
Sets if this scene node is a debug object.
virtual const c8 * getAttributeAsEnumeration(const c8 *attributeName)=0
virtual const core::vector3df & getPosition() const
Gets the position of the node relative to its parent.
bool IsDebugObject
Is debug object?
virtual core::vector3df getAttributeAsVector3d(const c8 *attributeName)=0
Provides a generic interface for attributes and their values and the possiblity to serialize them.
IRRLICHT_API SMaterial IdentityMaterial
global const identity Material
#define _IRR_IMPLEMENT_MANAGED_MARSHALLING_BUGFIX
Defines a small statement to work around a microsoft compiler bug.
virtual void addChild(ISceneNode *child)
Adds a child to this scene node.
void setMaterialFlag(video::E_MATERIAL_FLAG flag, bool newvalue)
Sets all material flags at once to a new value.
bool IsVisible
Is the node visible?
void setAutomaticCulling(u32 state)
Enables or disables automatic culling based on the bounding box.
virtual void remove()
Removes this scene node from the scene.
void transformBoxEx(core::aabbox3d< f32 > &box) const
Transforms a axis aligned bounding box.
virtual void updateAbsolutePosition()
Updates the absolute position based on the relative and the parents position.