Irrlicht 3D Engine
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 irr
11 {
12 namespace scene
13 {
14 
15  class ISceneNodeAnimatorCollisionResponse;
16 
18 
22  class ICollisionCallback : public virtual IReferenceCounted
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 core::vector3df& radius) = 0;
78 
80 
81  virtual core::vector3df getEllipsoidRadius() const = 0;
82 
84 
89  virtual void setGravity(const core::vector3df& gravity) = 0;
90 
93  virtual core::vector3df getGravity() const = 0;
94 
96 
98  virtual void jump(f32 jumpSpeed) = 0;
99 
101  virtual void setAnimateTarget ( bool enable ) = 0;
102  virtual bool getAnimateTarget () const = 0;
103 
105 
111  virtual void setEllipsoidTranslation(const core::vector3df &translation) = 0;
112 
114 
119  virtual core::vector3df 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 core::vector3df & getCollisionPoint() const = 0;
144 
146  virtual const core::triangle3df & getCollisionTriangle() const = 0;
147 
149 
153  virtual const core::vector3df & 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 } // end namespace scene
168 } // end namespace irr
169 
170 #endif
171 
Interface to return triangles with specific properties.
float f32
32 bit floating point variable.
Definition: irrTypes.h:104
Scene node interface.
Definition: ISceneNode.h:40
3d triangle template class for doing collision detection and other things.
Definition: triangle3d.h:20
Animates a scene node. Can animate position, rotation, material, and so on.
Everything in the Irrlicht Engine can be found in this namespace.
Definition: aabbox3d.h:12
Special scene node animator for doing automatic collision detection and response. ...
Base class of most objects of the Irrlicht Engine.
Callback interface for catching events of collisions.
virtual bool onCollision(const ISceneNodeAnimatorCollisionResponse &animator)=0
Will be called when a collision occurrs.