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