- Cal3D 0.11 API Reference -

coremodel.h
1 //****************************************************************************//
2 // coremodel.h //
3 // Copyright (C) 2001, 2002 Bruno 'Beosil' Heidelberger //
4 //****************************************************************************//
5 // This library is free software; you can redistribute it and/or modify it //
6 // under the terms of the GNU Lesser General Public License as published by //
7 // the Free Software Foundation; either version 2.1 of the License, or (at //
8 // your option) any later version. //
9 //****************************************************************************//
10 
11 #ifndef CAL_COREMODEL_H
12 #define CAL_COREMODEL_H
13 
14 
15 #include "cal3d/coreanimation.h"
16 #include "cal3d/corematerial.h"
17 #include "cal3d/coremesh.h"
18 #include "cal3d/coreskeleton.h"
19 #include "cal3d/global.h"
20 
21 
23 
24 
25 class CAL3D_API CalCoreModel
26 {
27 public:
28  CalCoreModel(const std::string& name);
29  CalCoreModel(const CalCoreModel& inOther);
30  ~CalCoreModel();
31 
32  Cal::UserData getUserData();
33  const Cal::UserData getUserData() const;
34  void setUserData(Cal::UserData userData);
35  const std::string& getName() const;
36  void setName( const char* inName );
37 
38  void scale(float factor);
39 
40  // animations
41 
42  int getNumCoreAnimations() const;
43 
44  int addCoreAnimation(CalCoreAnimation *pCoreAnimation);
45  bool removeCoreAnimation( int id );
46  CalCoreAnimation *getCoreAnimation(int coreAnimationId);
47  const CalCoreAnimation *getCoreAnimation(int coreAnimationId) const;
48  bool removeCoreAnimatedMorph( int id );
49  int getCoreAnimationCount() const;
50  int loadCoreAnimation(const std::string& strFilename);
51  int loadCoreAnimation(void* buffer, const std::string& strAnimationName);
52  int loadCoreAnimation(const std::string& strFilename, const std::string& strAnimationName);
53  int loadCoreAnimation(void* buffer);
54  int unloadCoreAnimation(const std::string& name);
55  int unloadCoreAnimation(int coreAnimationId);
56  bool saveCoreAnimation(const std::string& strFilename, int coreAnimationId) const;
57  bool addAnimationName(const std::string& strAnimationName, int coreAnimationId);
58  int getCoreAnimationId(const std::string& strAnimationName) const;
59 
60  // morph animations
61  int addCoreAnimatedMorph(CalCoreAnimatedMorph *pCoreAnimatedMorph);
62  CalCoreAnimatedMorph *getCoreAnimatedMorph(int coreAnimatedMorphId);
63  const CalCoreAnimatedMorph *getCoreAnimatedMorph(int coreAnimatedMorphId) const;
64  int getCoreAnimatedMorphId(const std::string& strAnimatedMorphName) const;
65  int getNumCoreAnimatedMorphs() const;
66  int getCoreMorphAnimationCount() const;
67  int loadCoreAnimatedMorph(const std::string& strFilename);
68  int loadCoreAnimatedMorph(const std::string& strFilename, const std::string& strAnimatedMorphName);
69  int loadCoreAnimatedMorph(void* buffer, unsigned int bufferLength);
70  int loadCoreAnimatedMorph(void* buffer, unsigned int bufferLength, const std::string& strAnimatedMorphName);
71  int unloadCoreAnimatedMorph(const std::string& name);
72  int unloadCoreAnimatedMorph(int coreAnimatedMorphId);
73  bool saveCoreAnimatedMorph(const std::string& strFilename, int coreAnimatedMorphId) const;
74  bool addAnimatedMorphName(const std::string& strAnimatedMorphName, int coreAnimatedMorphId);
75 
76  // materials
77  int addCoreMaterial(CalCoreMaterial *pCoreMaterial);
78  void cloneCoreMaterials();
79  bool createInternal(const std::string& strName);
80  bool createWithName( char const * strName);
81  bool createCoreMaterialThread(int coreMaterialThreadId);
82  int getCoreAnimationMaxId();
83  CalCoreMaterial *getCoreMaterial(int coreMaterialId);
84  const CalCoreMaterial *getCoreMaterial(int coreMaterialId) const;
85  int getCoreMaterialCount() const;
86  int getCoreMaterialId(int coreMaterialThreadId, int coreMaterialSetId) const;
87  int loadCoreMaterial(const std::string& strFilename);
88  int loadCoreMaterial(void* buffer, const std::string& strMaterialName);
89  int loadCoreMaterial(const std::string& strFilename, const std::string& strMaterialName);
90  int loadCoreMaterial(void* buffer);
91  int unloadCoreMaterial(const std::string& name);
92  int unloadCoreMaterial(int coreMaterialId);
93  bool saveCoreMaterial(const std::string& strFilename, int coreMaterialId) const;
94  bool setCoreMaterialId(int coreMaterialThreadId, int coreMaterialSetId, int coreMaterialId);
95  bool addMaterialName(const std::string& strMaterialName, int coreMaterialId);
96  int getCoreMaterialId(const std::string& strMaterialName) const;
97 
98  // meshes
99  int addCoreMesh(CalCoreMesh *pCoreMesh);
100  void replaceCoreMesh( int coreMeshId, CalCoreMesh *pCoreMesh );
101  CalCoreMesh *getCoreMesh(int coreMeshId);
102  const CalCoreMesh *getCoreMesh(int coreMeshId) const;
103  int getCoreMeshCount() const;
104  int loadCoreMesh(const std::string& strFilename);
105  int loadCoreMesh(void* buffer, const std::string& strMeshName);
106  int loadCoreMesh(const std::string& strFilename, const std::string& strMeshName);
107  int loadCoreMesh(void* buffer);
108  int unloadCoreMesh(const std::string& name);
109  int unloadCoreMesh(int coreMeshId);
110  bool saveCoreMesh(const std::string& strFilename, int coreMeshId) const;
111  bool addMeshName(const std::string& strMeshName, int coreMeshId);
112  int getCoreMeshId(const std::string& strMeshName) const;
113 
114  // skeleton
115  CalCoreSkeleton *getCoreSkeleton();
116  const CalCoreSkeleton *getCoreSkeleton() const;
117  bool loadCoreSkeleton(const std::string& strFilename);
118  bool loadCoreSkeleton(void* buffer);
119  bool saveCoreSkeleton(const std::string& strFilename) const;
120  void setCoreSkeleton(CalCoreSkeleton *pCoreSkeleton);
121  void addBoneName(const std::string& strBoneName, int boneId);
122  int getBoneId(const std::string& strBoneName) const;
123  void setCoreMeshManagementOn( bool p ) { m_coreMeshManagement = p; }
124  bool getCoreMeshManagementOn() { return m_coreMeshManagement; }
125  void setCoreAnimationManagementOn( bool p ) { m_coreAnimationManagement = p; }
126  bool getCoreAnimationManagementOn() { return m_coreAnimationManagement; }
127 
128 // member variables
129 private:
130  std::string m_strName;
131  CalCoreSkeletonPtr m_pCoreSkeleton;
132  std::vector<CalCoreAnimationPtr> m_vectorCoreAnimation;
133  std::vector<CalCoreAnimatedMorph *> m_vectorCoreAnimatedMorph;
134 
135  std::vector<CalCoreMeshPtr> m_vectorCoreMesh;
136  std::vector<CalCoreMeshPtr> m_vectorMorphMesh;
137  std::vector<CalCoreMaterialPtr> m_vectorCoreMaterial;
138  std::map<int, std::map<int, int> > m_mapmapCoreMaterialThread;
139  Cal::UserData m_userData;
140  std::map<std::string, int> m_animationName;
141  std::map<std::string, int> m_animatedMorphName;
142  std::map<std::string, int> m_materialName;
143  std::map<std::string, int> m_meshName;
144  bool m_coreMeshManagement;
145  bool m_coreAnimationManagement;
146  unsigned int m_magic;
147 
148 };
149 
150 #endif
151 
152 //****************************************************************************//
Definition: coremodel.h:25
Definition: corematerial.h:22
Definition: coreanimation.h:23
Definition: coreskeleton.h:24
Definition: coremesh.h:23
The core animatedMorph class.
Definition: coreanimatedmorph.h:36

Generated by The Cal3D Team with Doxygen 1.8.14