SO3Engine
src
SO3Animation
SO3NodeAnimation.cpp
Go to the documentation of this file.
1
/*
2
-----------------------------------------------------------------------------
3
This source file is part of OpenSpace3D
4
For the latest info, see http://www.openspace3d.com
5
6
Copyright (c) 2012 I-maginer
7
8
This program is free software; you can redistribute it and/or modify it under
9
the terms of the GNU Lesser General Public License as published by the Free Software
10
Foundation; either version 2 of the License, or (at your option) any later
11
version.
12
13
This program is distributed in the hope that it will be useful, but WITHOUT
14
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15
FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
16
17
You should have received a copy of the GNU Lesser General Public License along with
18
this program; if not, write to the Free Software Foundation, Inc., 59 Temple
19
Place - Suite 330, Boston, MA 02111-1307, USA, or go to
20
http://www.gnu.org/copyleft/lesser.txt
21
22
-----------------------------------------------------------------------------
23
*/
24
31
#include "
SO3Animation/SO3NodeAnimation.h
"
32
#include "
SO3Animation/SO3NodeAnimationTrack.h
"
33
#include "
SO3SceneGraph/SO3NodeScol.h
"
34
#include "
SO3SceneGraph/SO3Scene.h
"
35
36
namespace
SO3
37
{
38
39
// No handles on Ogre::NodeAnimation!
40
SNodeAnimation::SNodeAnimation(
SScene
* scene,
const
std::string& animationName,
SNode
* node,
const
unsigned
short
&
id
,
const
float
& animationLength) :
SAnim
(scene, animationName, node, id,
SAnim
::SO3_SCENENODE_ANIM)
41
{
42
ogreAnimation
=
mScene
->
GetOgreScenePointer
()->createAnimation(
name
, animationLength);
43
ogreAnimationState =
mScene
->
GetOgreScenePointer
()->createAnimationState(
name
);
44
}
45
46
SNodeAnimation::SNodeAnimation() :
SAnim
(0,
""
, 0, 0, SO3_UNKNOWN_ANIM)
47
{
48
// Forbiden (private)
49
}
50
51
SNodeAnimation::~SNodeAnimation
()
52
{
53
if
(
mScene
->
GetOgreScenePointer
()->hasAnimationState(
name
))
54
mScene
->
GetOgreScenePointer
()->destroyAnimationState(
name
);
55
ogreAnimationState = 0;
56
if
(
mScene
->
GetOgreScenePointer
()->hasAnimation(
name
))
57
mScene
->
GetOgreScenePointer
()->destroyAnimation(
name
);
58
}
59
60
SAnimTrack
*
SNodeAnimation::CreateAnimationTrackImpl
(
const
std::string& newAnimationTrackName)
61
{
62
return
new
SNodeAnimationTrack
(newAnimationTrackName,
this
,
ogreAnimation
->getNumNodeTracks());
63
}
64
65
Ogre::AnimationState*
SNodeAnimation::_GetOgreAnimationState
()
66
{
67
return
ogreAnimationState;
68
}
69
70
}
SO3NodeAnimation.h
SO3NodeAnimationTrack.h
SO3NodeScol.h
SO3Scene.h
SO3::SAnim
Definition
SO3Anim.h:42
SO3::SAnim::ogreAnimation
Ogre::Animation * ogreAnimation
Definition
SO3Anim.h:65
SO3::SAnim::mScene
SScene * mScene
Definition
SO3Anim.h:67
SO3::SAnimTrack
Definition
SO3AnimTrack.h:42
SO3::SData::name
std::string name
Definition
SO3DataScol.h:44
SO3::SNodeAnimation::~SNodeAnimation
~SNodeAnimation()
Definition
SO3NodeAnimation.cpp:51
SO3::SNodeAnimation::CreateAnimationTrackImpl
virtual SAnimTrack * CreateAnimationTrackImpl(const std::string &newAnimationTrackName)
Definition
SO3NodeAnimation.cpp:60
SO3::SNodeAnimation::_GetOgreAnimationState
virtual Ogre::AnimationState * _GetOgreAnimationState()
Definition
SO3NodeAnimation.cpp:65
SO3::SNodeAnimationTrack
Definition
SO3NodeAnimationTrack.h:34
SO3::SNode
Definition
SO3NodeScol.h:43
SO3::SScene
Definition
SO3Scene.h:125
SO3::SScene::GetOgreScenePointer
Ogre::SceneManager * GetOgreScenePointer()
Definition
SO3Scene.cpp:449
SO3
Definition
SO3DataScol.h:38
Generated by
1.9.8