5 #ifndef __I_SCENE_NODE_H_INCLUDED__ 6 #define __I_SCENE_NODE_H_INCLUDED__ 97 (*it)->OnRegisterSceneNode();
135 (*it)->OnAnimate(timeMs);
141 virtual void render() = 0;
199 for (
u32 i=0; i<8; ++i )
297 if (child && (child !=
this))
389 if ((*it) == animator)
729 Name =
in->getAttributeAsString(
"Name",
Name);
730 ID =
in->getAttributeAsInt(
"Id",
ID);
737 if (
in->existsAttribute(
"AutomaticCulling"))
739 s32 tmpState =
in->getAttributeAsEnumeration(
"AutomaticCulling",
795 for (; it != toCopyFrom->
Children.end(); ++it)
796 (*it)->clone(
this, newManager);
801 for (; ait != toCopyFrom->
Animators.end(); ++ait)
820 (*it)->setSceneManager(newManager);
GLenum GLenum GLenum GLenum GLenum scale
virtual void getTransformedBoundingBoxEdges(core::array< core::vector3d< f32 > > &edges) const
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 possibility 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 void deserializeAttributes(io::IAttributes *in, io::SAttributeReadWriteOptions *options=0) _IRR_OVERRIDE_
Reads attributes of the scene node.
virtual bool isVisible() const
Returns whether the node should be visible (if all of its parents are visible).
virtual void serializeAttributes(io::IAttributes *out, io::SAttributeReadWriteOptions *options=0) const _IRR_OVERRIDE_
Writes attributes of the scene node.
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.
GLenum GLenum GLuint texture
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.
struct holding data describing options
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.
GLuint const GLchar * name
virtual void addBool(const c8 *attributeName, bool value)=0
Adds an attribute as bool.
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)
Set a culling style or disable culling completely.
virtual void addVector3d(const c8 *attributeName, const core::vector3df &value)=0
Adds an attribute as 3d vector.
virtual ISceneManager * getSceneManager(void) const
Retrieve the scene manager for this node.
Very simple string class with some useful features.
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.
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.
void transformVect(vector3df &vect) const
Transforms the vector by this matrix.
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
virtual void updateAbsolutePosition()
Updates the absolute position based on the relative and the parents position.
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 getEdges(vector3d< T > *edges) const
Stores all 8 edges of the box into an array.
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 resources, 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.
Self reallocating template array (like stl vector) with additional features.
CMatrix4< T > & setTranslation(const vector3d< T > &translation)
Set the translation of the current matrix. Will erase any previous values.
#define _IRR_OVERRIDE_
Defines an override macro, to protect virtual functions from typos and other mismatches.
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 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.
virtual bool isEnabled() const
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.