Home | Namespaces | Hierarchy | Alphabetical List | Class list | Files | Namespace Members | Class members | File members

irr::scene::ISceneNodeAnimatorCollisionResponse Class Reference

Special scene node animator for doing automatic collision detection and response. More...

#include <ISceneNodeAnimatorCollisionResponse.h>

Inheritance diagram for irr::scene::ISceneNodeAnimatorCollisionResponse:

irr::scene::ISceneNodeAnimator irr::io::IAttributeExchangingObject irr::IReferenceCounted List of all members.

Public Member Functions

virtual core::vector3df getEllipsoidRadius () const =0
 Returns the radius of the ellipsoid for collision detection and response.
virtual core::vector3df getEllipsoidTranslation () const =0
 Get the translation of the ellipsoid for collision detection.
*virtual core::vector3df getGravity () const =0
virtual ITriangleSelectorgetWorld () const =0
 Get the current triangle selector containing all triangles for collision detection.
virtual bool isFalling () const =0
 Check if the attached scene node is falling.
virtual void setEllipsoidRadius (const core::vector3df &radius)=0
 Sets the radius of the ellipsoid for collision detection and response.
virtual void setEllipsoidTranslation (const core::vector3df &translation)=0
 Set translation of the collision ellipsoid.
virtual void setGravity (const core::vector3df &gravity)=0
 Sets the gravity of the environment.
virtual void setWorld (ITriangleSelector *newWorld)=0
 Sets a triangle selector holding all triangles of the world with which the scene node may collide.
virtual ~ISceneNodeAnimatorCollisionResponse ()
 Destructor.

Detailed Description

Special scene node animator for doing automatic collision detection and response.

This scene node animator can be attached to any scene node modifying it in that way, that it cannot move through walls of the world, is influenced by gravity and acceleration. This animator is useful for example for first person shooter games. Attach it for example to a first person shooter camera, and the camera will behave as the player control in a first person shooter game: The camera stops and slides at walls, walks up stairs, falls down if there is no floor under it, and so on.

Definition at line 24 of file ISceneNodeAnimatorCollisionResponse.h.


Constructor & Destructor Documentation

virtual irr::scene::ISceneNodeAnimatorCollisionResponse::~ISceneNodeAnimatorCollisionResponse  )  [inline, virtual]
 

Destructor.

Definition at line 29 of file ISceneNodeAnimatorCollisionResponse.h.


Member Function Documentation

virtual core::vector3df irr::scene::ISceneNodeAnimatorCollisionResponse::getEllipsoidRadius  )  const [pure virtual]
 

Returns the radius of the ellipsoid for collision detection and response.

Returns:
Radius of the ellipsoid.

virtual core::vector3df irr::scene::ISceneNodeAnimatorCollisionResponse::getEllipsoidTranslation  )  const [pure virtual]
 

Get the translation of the ellipsoid for collision detection.

See ISceneNodeAnimatorCollisionResponse::setEllipsoidTranslation() for more details.

Returns:
Translation of the ellipsoid relative to the position of the scene node.

* virtual core::vector3df irr::scene::ISceneNodeAnimatorCollisionResponse::getGravity  )  const [pure virtual]
 

Get current vector of gravity.

Returns:
Gravity vector.

virtual ITriangleSelector* irr::scene::ISceneNodeAnimatorCollisionResponse::getWorld  )  const [pure virtual]
 

Get the current triangle selector containing all triangles for collision detection.

virtual bool irr::scene::ISceneNodeAnimatorCollisionResponse::isFalling  )  const [pure virtual]
 

Check if the attached scene node is falling.

Falling means that there is no blocking wall from the scene node in the direction of the gravity. The implementation of this method is very fast, no collision detection is done when invoking it.

Returns:
True if the scene node is falling, false if not.

virtual void irr::scene::ISceneNodeAnimatorCollisionResponse::setEllipsoidRadius const core::vector3df radius  )  [pure virtual]
 

Sets the radius of the ellipsoid for collision detection and response.

If you have a scene node, and you are unsure about how big the radius should be, you could use the following code to determine it:

                core::aabbox<f32> box = yourSceneNode->getBoundingBox();
                core::vector3df radius = box.MaxEdge - box.getCenter();
Parameters:
radius,: New radius of the ellipsoid.

virtual void irr::scene::ISceneNodeAnimatorCollisionResponse::setEllipsoidTranslation const core::vector3df translation  )  [pure virtual]
 

Set translation of the collision ellipsoid.

By default, the ellipsoid for collision detection is created around the center of the scene node, which means that the ellipsoid surrounds it completely. If this is not what you want, you may specify a translation for the ellipsoid.

Parameters:
translation,: Translation of the ellipsoid relative to the position of the scene node.

virtual void irr::scene::ISceneNodeAnimatorCollisionResponse::setGravity const core::vector3df gravity  )  [pure virtual]
 

Sets the gravity of the environment.

A good example value would be core::vector3df(0,-100.0f,0) for letting gravity affect all object to fall down. For bigger gravity, make increase the length of the vector. You can disable gravity by setting it to core::vector3df(0,0,0);

Parameters:
gravity,: New gravity vector.

virtual void irr::scene::ISceneNodeAnimatorCollisionResponse::setWorld ITriangleSelector newWorld  )  [pure virtual]
 

Sets a triangle selector holding all triangles of the world with which the scene node may collide.

Parameters:
newWorld,: New triangle selector containing triangles to let the scene node collide with.


The documentation for this class was generated from the following file:
The Irrlicht Engine
The Irrlicht Engine Documentation © 2003-2008 by Nikolaus Gebhardt. Generated on Sun Jun 1 07:59:20 2008 by Doxygen (1.4.2)