aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/others/irrlicht-1.8.1/source/Irrlicht/CSceneNodeAnimatorDelete.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/others/irrlicht-1.8.1/source/Irrlicht/CSceneNodeAnimatorDelete.cpp')
-rw-r--r--src/others/irrlicht-1.8.1/source/Irrlicht/CSceneNodeAnimatorDelete.cpp51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/others/irrlicht-1.8.1/source/Irrlicht/CSceneNodeAnimatorDelete.cpp b/src/others/irrlicht-1.8.1/source/Irrlicht/CSceneNodeAnimatorDelete.cpp
new file mode 100644
index 0000000..2ef584d
--- /dev/null
+++ b/src/others/irrlicht-1.8.1/source/Irrlicht/CSceneNodeAnimatorDelete.cpp
@@ -0,0 +1,51 @@
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#include "CSceneNodeAnimatorDelete.h"
6#include "ISceneManager.h"
7
8namespace irr
9{
10namespace scene
11{
12
13
14//! constructor
15CSceneNodeAnimatorDelete::CSceneNodeAnimatorDelete(ISceneManager* manager, u32 time)
16: ISceneNodeAnimatorFinishing(time), SceneManager(manager)
17{
18 #ifdef _DEBUG
19 setDebugName("CSceneNodeAnimatorDelete");
20 #endif
21}
22
23
24//! animates a scene node
25void CSceneNodeAnimatorDelete::animateNode(ISceneNode* node, u32 timeMs)
26{
27 if (timeMs > FinishTime)
28 {
29 HasFinished = true;
30 if(node && SceneManager)
31 {
32 // don't delete if scene manager is attached to an editor
33 if (!SceneManager->getParameters()->getAttributeAsBool(IRR_SCENE_MANAGER_IS_EDITOR))
34 SceneManager->addToDeletionQueue(node);
35 }
36 }
37}
38
39
40ISceneNodeAnimator* CSceneNodeAnimatorDelete::createClone(ISceneNode* node, ISceneManager* newManager)
41{
42 CSceneNodeAnimatorDelete * newAnimator =
43 new CSceneNodeAnimatorDelete(SceneManager, FinishTime);
44
45 return newAnimator;
46}
47
48
49} // end namespace scene
50} // end namespace irr
51