| Irrlicht 3D Engine |

ISceneNodeAnimatorCollisionResponse.h
Go to the documentation of this file.

    00001 // Copyright (C) 2002-2012 Nikolaus Gebhardt
    00002 // This file is part of the "Irrlicht Engine".
    00003 // For conditions of distribution and use, see copyright notice in irrlicht.h
    00004
    00005 #ifndef __I_SCENE_NODE_ANIMATOR_COLLISION_RESPONSE_H_INCLUDED__
    00006 #define __I_SCENE_NODE_ANIMATOR_COLLISION_RESPONSE_H_INCLUDED__
    00007
    00008 #include "ISceneNode.h"
    00009
    00010 namespace irr
    00011 {
    00012 namespace scene
    00013 {
    00014
    00015     class ISceneNodeAnimatorCollisionResponse;
    00016
    00018
    00022     class ICollisionCallback : public virtual IReferenceCounted
    00023     {
    00024     public:
    00025
    00027
    00036         virtual bool onCollision(const ISceneNodeAnimatorCollisionResponse& animator) = 0;
    00037     };
    00038
    00040
    00053     class ISceneNodeAnimatorCollisionResponse : public ISceneNodeAnimator
    00054     {
    00055     public:
    00056
    00058         virtual ~ISceneNodeAnimatorCollisionResponse() {}
    00059
    00061
    00066         virtual bool isFalling() const = 0;
    00067
    00069
    00077         virtual void setEllipsoidRadius(const core::vector3df& radius) = 0;
    00078
    00080
    00081         virtual core::vector3df getEllipsoidRadius() const = 0;
    00082
    00084
    00089         virtual void setGravity(const core::vector3df& gravity) = 0;
    00090
    00093         virtual core::vector3df getGravity() const = 0;
    00094
    00096
    00098         virtual void jump(f32 jumpSpeed) = 0;
    00099
    00101         virtual void setAnimateTarget ( bool enable ) = 0;
    00102         virtual bool getAnimateTarget () const = 0;
    00103
    00105
    00111         virtual void setEllipsoidTranslation(const core::vector3df &translation) = 0;
    00112
    00114
    00119         virtual core::vector3df getEllipsoidTranslation() const = 0;
    00120
    00122
    00124         virtual void setWorld(ITriangleSelector* newWorld) = 0;
    00125
    00127         virtual ITriangleSelector* getWorld() const = 0;
    00128
    00130
    00133         virtual void setTargetNode(ISceneNode * node) = 0;
    00134
    00136
    00137         virtual ISceneNode* getTargetNode(void) const = 0;
    00138
    00140         virtual bool collisionOccurred() const = 0;
    00141
    00143         virtual const core::vector3df & getCollisionPoint() const = 0;
    00144
    00146         virtual const core::triangle3df & getCollisionTriangle() const = 0;
    00147
    00149
    00153         virtual const core::vector3df & getCollisionResultPosition(void) const = 0;
    00154
    00156         virtual ISceneNode* getCollisionNode(void) const = 0;
    00157
    00159
    00162         virtual void setCollisionCallback(ICollisionCallback* callback) = 0;
    00163
    00164     };
    00165
    00166
    00167 } // end namespace scene
    00168 } // end namespace irr
    00169
    00170 #endif
    00171