Saga3D API Documentation  1.0-RC4
ISceneNodeAnimatorCollisionResponse.h
Go to the documentation of this file.
1 // Copyright (C) 2002-2012 Nikolaus Gebhardt
2 // This file is part of the "Irrlicht Engine".
3 // For conditions of distribution and use, see copyright notice in irrlicht.h
4 
5 #ifndef __I_SCENE_NODE_ANIMATOR_COLLISION_RESPONSE_H_INCLUDED__
6 #define __I_SCENE_NODE_ANIMATOR_COLLISION_RESPONSE_H_INCLUDED__
7 
8 #include "ISceneNode.h"
9 
10 namespace saga
11 {
12 namespace scene
13 {
14 
15  class ISceneNodeAnimatorCollisionResponse;
16 
18 
23  {
24  public:
25 
27 
36  virtual bool onCollision(const ISceneNodeAnimatorCollisionResponse& animator) = 0;
37  };
38 
40 
54  {
55  public:
56 
59 
61 
66  virtual bool isFalling() const = 0;
67 
69 
77  virtual void setEllipsoidRadius(const glm::vec3& radius) = 0;
78 
80 
81  virtual glm::vec3 getEllipsoidRadius() const = 0;
82 
84 
89  virtual void setGravity(const glm::vec3& gravity) = 0;
90 
93  virtual glm::vec3 getGravity() const = 0;
94 
96 
98  virtual void jump(float jumpSpeed) = 0;
99 
101  virtual void setAnimateTarget (bool enable) = 0;
102  virtual bool getAnimateTarget () const = 0;
103 
105 
111  virtual void setEllipsoidTranslation(const glm::vec3 &translation) = 0;
112 
114 
119  virtual glm::vec3 getEllipsoidTranslation() const = 0;
120 
122 
124  virtual void setWorld(ITriangleSelector* newWorld) = 0;
125 
127  virtual ITriangleSelector* getWorld() const = 0;
128 
130 
133  virtual void setTargetNode(ISceneNode * node) = 0;
134 
136 
137  virtual ISceneNode* getTargetNode(void) const = 0;
138 
140  virtual bool collisionOccurred() const = 0;
141 
143  virtual const glm::vec3 & getCollisionPoint() const = 0;
144 
146  virtual const core::triangle3df & getCollisionTriangle() const = 0;
147 
149 
153  virtual const glm::vec3 & getCollisionResultPosition(void) const = 0;
154 
156  virtual ISceneNode* getCollisionNode(void) const = 0;
157 
159 
162  virtual void setCollisionCallback(ICollisionCallback* callback) = 0;
163 
164  };
165 
166 
167 } // namespace scene
168 } // namespace saga
169 
170 #endif
171 
saga::scene::ISceneNodeAnimator
Animates a scene node. Can animate position, rotation, material, and so on.
Definition: ISceneNodeAnimator.h:24
saga::scene::ISceneNodeAnimatorCollisionResponse::setGravity
virtual void setGravity(const glm::vec3 &gravity)=0
Sets the gravity of the environment.
saga::scene::ISceneNodeAnimatorCollisionResponse::getTargetNode
virtual ISceneNode * getTargetNode(void) const =0
Gets the single node that this animator is acting on.
saga::scene::ISceneNode
Type for list of scene node animators.
Definition: ISceneNode.h:41
saga::scene::ISceneNodeAnimatorCollisionResponse::getCollisionPoint
virtual const glm::vec3 & getCollisionPoint() const =0
Returns the last point of collision.
saga::scene::ISceneNodeAnimatorCollisionResponse::setTargetNode
virtual void setTargetNode(ISceneNode *node)=0
Set the single node that this animator will act on.
saga::scene::ISceneNodeAnimatorCollisionResponse::getAnimateTarget
virtual bool getAnimateTarget() const =0
saga::scene::ISceneNodeAnimatorCollisionResponse::setWorld
virtual void setWorld(ITriangleSelector *newWorld)=0
Sets a triangle selector holding all triangles of the world with which the scene node may collide.
saga::scene::ICollisionCallback::onCollision
virtual bool onCollision(const ISceneNodeAnimatorCollisionResponse &animator)=0
Will be called when a collision occurs.
saga::scene::ISceneNodeAnimatorCollisionResponse::collisionOccurred
virtual bool collisionOccurred() const =0
Returns true if a collision occurred during the last animateNode()
saga::scene::ISceneNodeAnimatorCollisionResponse::~ISceneNodeAnimatorCollisionResponse
virtual ~ISceneNodeAnimatorCollisionResponse()
Destructor.
Definition: ISceneNodeAnimatorCollisionResponse.h:58
ISceneNode.h
saga::scene::ISceneNodeAnimatorCollisionResponse
Special scene node animator for doing automatic collision detection and response.
Definition: ISceneNodeAnimatorCollisionResponse.h:53
saga::scene::ISceneNodeAnimatorCollisionResponse::setAnimateTarget
virtual void setAnimateTarget(bool enable)=0
Should the Target react on collision (default = true)
saga::scene::ISceneNodeAnimatorCollisionResponse::setEllipsoidRadius
virtual void setEllipsoidRadius(const glm::vec3 &radius)=0
Sets the radius of the ellipsoid for collision detection and response.
saga::scene::ISceneNodeAnimatorCollisionResponse::getCollisionResultPosition
virtual const glm::vec3 & getCollisionResultPosition(void) const =0
Returns the position that the target node will be moved to, unless the collision is consumed in a cal...
saga::scene::ISceneNodeAnimatorCollisionResponse::getCollisionTriangle
virtual const core::triangle3df & getCollisionTriangle() const =0
Returns the last triangle that caused a collision.
saga::scene::ISceneNodeAnimatorCollisionResponse::isFalling
virtual bool isFalling() const =0
Check if the attached scene node is falling.
saga::scene::ISceneNodeAnimatorCollisionResponse::getEllipsoidRadius
virtual glm::vec3 getEllipsoidRadius() const =0
Returns the radius of the ellipsoid for collision detection and response.
saga::scene::ISceneNodeAnimatorCollisionResponse::getGravity
virtual glm::vec3 getGravity() const =0
saga::scene::ICollisionCallback
Callback interface for catching events of collisions.
Definition: ISceneNodeAnimatorCollisionResponse.h:22
saga::scene::ISceneNodeAnimatorCollisionResponse::setEllipsoidTranslation
virtual void setEllipsoidTranslation(const glm::vec3 &translation)=0
Set translation of the collision ellipsoid.
saga::scene::ISceneNodeAnimatorCollisionResponse::getWorld
virtual ITriangleSelector * getWorld() const =0
Get the current triangle selector containing all triangles for collision detection.
saga::scene::ISceneNodeAnimatorCollisionResponse::getEllipsoidTranslation
virtual glm::vec3 getEllipsoidTranslation() const =0
Get the translation of the ellipsoid for collision detection.
saga::core::triangle3d
3d triangle template class for doing collision detection and other things.
Definition: triangle3d.h:19
saga::scene::ISceneNodeAnimatorCollisionResponse::setCollisionCallback
virtual void setCollisionCallback(ICollisionCallback *callback)=0
Sets a callback interface which will be called if a collision occurs.
saga::scene::ISceneNodeAnimatorCollisionResponse::getCollisionNode
virtual ISceneNode * getCollisionNode(void) const =0
Returns the node that was collided with.
saga::scene::ISceneNodeAnimatorCollisionResponse::jump
virtual void jump(float jumpSpeed)=0
'Jump' the animator, by adding a jump speed opposite to its gravity
saga
Definition: aabbox3d.h:11