diff options
author | David Walter Seikel | 2013-01-13 17:24:39 +1000 |
---|---|---|
committer | David Walter Seikel | 2013-01-13 17:24:39 +1000 |
commit | 393b5cd1dc438872af89d334ef6e5fcc59f27d47 (patch) | |
tree | 6a14521219942a08a1b95cb2f5a923a9edd60f63 /libraries/irrlicht-1.8/include/ISceneNodeAnimatorFactory.h | |
parent | Add a note about rasters suggested start up code. (diff) | |
download | SledjHamr-393b5cd1dc438872af89d334ef6e5fcc59f27d47.zip SledjHamr-393b5cd1dc438872af89d334ef6e5fcc59f27d47.tar.gz SledjHamr-393b5cd1dc438872af89d334ef6e5fcc59f27d47.tar.bz2 SledjHamr-393b5cd1dc438872af89d334ef6e5fcc59f27d47.tar.xz |
Added Irrlicht 1.8, but without all the Windows binaries.
Diffstat (limited to '')
-rw-r--r-- | libraries/irrlicht-1.8/include/ISceneNodeAnimatorFactory.h | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/libraries/irrlicht-1.8/include/ISceneNodeAnimatorFactory.h b/libraries/irrlicht-1.8/include/ISceneNodeAnimatorFactory.h new file mode 100644 index 0000000..c3f5b3c --- /dev/null +++ b/libraries/irrlicht-1.8/include/ISceneNodeAnimatorFactory.h | |||
@@ -0,0 +1,69 @@ | |||
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_FACTORY_H_INCLUDED__ | ||
6 | #define __I_SCENE_NODE_ANIMATOR_FACTORY_H_INCLUDED__ | ||
7 | |||
8 | #include "IReferenceCounted.h" | ||
9 | #include "ESceneNodeAnimatorTypes.h" | ||
10 | |||
11 | namespace irr | ||
12 | { | ||
13 | namespace scene | ||
14 | { | ||
15 | class ISceneNode; | ||
16 | class ISceneNodeAnimator; | ||
17 | |||
18 | //! Interface for dynamic creation of scene node animators | ||
19 | /** To be able to add custom scene node animators to Irrlicht and to make it possible for the | ||
20 | scene manager to save and load those external animators, simply implement this | ||
21 | interface and register it in you scene manager via ISceneManager::registerSceneNodeAnimatorFactory. | ||
22 | Note: When implementing your own scene node factory, don't call ISceneNodeManager::grab() to | ||
23 | increase the reference counter of the scene node manager. This is not necessary because the | ||
24 | scene node manager will grab() the factory anyway, and otherwise cyclic references will | ||
25 | be created and the scene manager and all its nodes won't get deallocated. | ||
26 | */ | ||
27 | class ISceneNodeAnimatorFactory : public virtual IReferenceCounted | ||
28 | { | ||
29 | public: | ||
30 | |||
31 | //! creates a scene node animator based on its type id | ||
32 | /** \param type: Type of the scene node animator to add. | ||
33 | \param target: Target scene node of the new animator. | ||
34 | \return Returns pointer to the new scene node animator or null if not successful. You need to | ||
35 | drop this pointer after calling this, see IReferenceCounted::drop() for details. */ | ||
36 | virtual ISceneNodeAnimator* createSceneNodeAnimator(ESCENE_NODE_ANIMATOR_TYPE type, ISceneNode* target) = 0; | ||
37 | |||
38 | //! creates a scene node animator based on its type name | ||
39 | /** \param typeName: Type of the scene node animator to add. | ||
40 | \param target: Target scene node of the new animator. | ||
41 | \return Returns pointer to the new scene node animator or null if not successful. You need to | ||
42 | drop this pointer after calling this, see IReferenceCounted::drop() for details. */ | ||
43 | virtual ISceneNodeAnimator* createSceneNodeAnimator(const c8* typeName, ISceneNode* target) = 0; | ||
44 | |||
45 | //! returns amount of scene node animator types this factory is able to create | ||
46 | virtual u32 getCreatableSceneNodeAnimatorTypeCount() const = 0; | ||
47 | |||
48 | //! returns type of a createable scene node animator type | ||
49 | /** \param idx: Index of scene node animator type in this factory. Must be a value between 0 and | ||
50 | getCreatableSceneNodeTypeCount() */ | ||
51 | virtual ESCENE_NODE_ANIMATOR_TYPE getCreateableSceneNodeAnimatorType(u32 idx) const = 0; | ||
52 | |||
53 | //! returns type name of a createable scene node animator type | ||
54 | /** \param idx: Index of scene node animator type in this factory. Must be a value between 0 and | ||
55 | getCreatableSceneNodeAnimatorTypeCount() */ | ||
56 | virtual const c8* getCreateableSceneNodeAnimatorTypeName(u32 idx) const = 0; | ||
57 | |||
58 | //! returns type name of a createable scene node animator type | ||
59 | /** \param type: Type of scene node animator. | ||
60 | \return: Returns name of scene node animator type if this factory can create the type, otherwise 0. */ | ||
61 | virtual const c8* getCreateableSceneNodeAnimatorTypeName(ESCENE_NODE_ANIMATOR_TYPE type) const = 0; | ||
62 | }; | ||
63 | |||
64 | |||
65 | } // end namespace scene | ||
66 | } // end namespace irr | ||
67 | |||
68 | #endif | ||
69 | |||