raSystem  1.0 bata
raAnimation.cpp
Go to the documentation of this file.
1 #include "..\include\raMain.h"
2 
3 namespace System
4 {
5  raAnimation::raAnimation(raSmartPointer<raDirectX> dx) //: raRender(dx, 0, "raAnimation")
6  {
7  m_pAnimationHeader = new SDKANIMATION_FILE_HEADER();
8  m_NumSubscriptions = 0;
9  }
11  {
12  SAFE_DELETE(m_pAnimationHeader);
13  raFrameMap::iterator it;
14  for(it = m_FrameData.begin(); it != m_FrameData.end(); it++)
15  {
16  System::RAANIMATION_FRAME_DATA* pFrameData = it->second;
17  SAFE_DELETE_ARRAY(pFrameData->pMatrix);
18  SAFE_DELETE(pFrameData);
19  }
20  }
21 
23  {
24  m_FrameData.insert(raFrameMap::value_type(pFrameData->FrameName,
25  pFrameData));
26  }
27 
28  bool raAnimation::Update(float fTime, float fElapsedTime)
29  {
30  for(UINT i = 0; i < SubscribedObjects.size(); i++)
31  {
32  raNode* pRoot = SubscribedObjects[i];
33  pRoot->Update(m_FrameData, fTime, i);
34  }
35  return true;
36  }
37 
38  void raAnimation::UpdateFrameData(UINT iTick, UINT subScriptionNo)
39  {
40  raFrameMap::iterator it;
41  for(it = m_FrameData.begin(); it != m_FrameData.end(); it++)
42  {
43  RAANIMATION_FRAME_DATA* pFrameData = it->second;
44  pFrameData->SubscrobedObject[subScriptionNo]->
45  raRender::SetWorldMatrix(pFrameData->pMatrix[iTick]);
46  }
47  }
48 
50  {
51  raFrameMap::iterator it = m_FrameData.find(pObject->GetName());
52  if(it != m_FrameData.end())
53  {
54  it->second->SubscrobedObject.push_back(pObject);
55  }
56  }
58  : raNode(dx, strName, pParent) {} //Standardkonstruktor von Animated wird automat. aufgerufen
59 };
LPCSTR GetName()
Definition: raRender.h:19
std::vector< class raNode * > SubscrobedObject
Definition: raAnimation.h:19
#define SAFE_DELETE_ARRAY(p)
Definition: d3dxGlobal.h:25
void Subscribe(raNode *pObject)
Definition: raAnimation.cpp:49
void UpdateFrameData(UINT iTick, UINT subScriptionNo)
Definition: raAnimation.cpp:38
Definition: raNode.h:8
void AddFrameData(RAANIMATION_FRAME_DATA *pFrameData)
Definition: raAnimation.cpp:22
virtual bool Update(float fTime, float fElapsedTime)
Definition: raAnimation.cpp:28
~raAnimation(void)
Definition: raAnimation.cpp:10
raAnimatedNode(raSmartPointer< raDirectX > dx, LPCSTR strName="raAnimatedNode", raNode *pParent=NULL)
Definition: raAnimation.cpp:57
virtual bool Update(float fTime, float fElapsedTime)
Definition: raNode.cpp:156
raAnimation(raSmartPointer< raDirectX > dx)
Definition: raAnimation.cpp:5
virtual void SetWorldMatrix(const raMatrix &value)
Definition: raRender.cpp:13
#define SAFE_DELETE(p)
Definition: d3dxGlobal.h:26