- 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
25class CAL3D_API CalCoreModel
26{
27public:
28 CalCoreModel(const std::string& name);
29 CalCoreModel(const CalCoreModel& inOther);
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
129private:
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//****************************************************************************//
The core animatedMorph class.
Definition coreanimatedmorph.h:37
Definition coreanimation.h:24
Definition corematerial.h:23
Definition coremesh.h:24
Definition coremodel.h:26
Definition coreskeleton.h:25

Generated by The Cal3D Team with Doxygen 1.10.0