| Irrlicht 3D Engine |

ISceneNodeAnimator.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_H_INCLUDED__
    00006 #define __I_SCENE_NODE_ANIMATOR_H_INCLUDED__
    00007
    00008 #include "IReferenceCounted.h"
    00009 #include "vector3d.h"
    00010 #include "ESceneNodeAnimatorTypes.h"
    00011 #include "IAttributeExchangingObject.h"
    00012 #include "IEventReceiver.h"
    00013
    00014 namespace irr
    00015 {
    00016 namespace io
    00017 {
    00018     class IAttributes;
    00019 } // end namespace io
    00020 namespace scene
    00021 {
    00022     class ISceneNode;
    00023     class ISceneManager;
    00024
    00026
    00030     class ISceneNodeAnimator : public io::IAttributeExchangingObject, public IEventReceiver
    00031     {
    00032     public:
    00034
    00036         virtual void animateNode(ISceneNode* node, u32 timeMs) =0;
    00037
    00039
    00041         virtual ISceneNodeAnimator* createClone(ISceneNode* node,
    00042                 ISceneManager* newManager=0) =0;
    00043
    00045
    00047         virtual bool isEventReceiverEnabled() const
    00048         {
    00049             return false;
    00050         }
    00051
    00053         virtual bool OnEvent(const SEvent& event)
    00054         {
    00055             return false;
    00056         }
    00057
    00059         virtual ESCENE_NODE_ANIMATOR_TYPE getType() const
    00060         {
    00061             return ESNAT_UNKNOWN;
    00062         }
    00063
    00065
    00067         virtual bool hasFinished(void) const
    00068         {
    00069             return false;
    00070         }
    00071     };
    00072
    00073
    00074 } // end namespace scene
    00075 } // end namespace irr
    00076
    00077 #endif
    00078