- Cal3D 0.11 API Reference -

cal3d_wrapper.h
1 //****************************************************************************//
2 // cal3d_wrapper.h //
3 // Copyright (C) 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_CAL3D_WRAPPER_H
12 #define CAL_CAL3D_WRAPPER_H
13 
14 #ifdef __cplusplus
15 #include "cal3d/global.h"
16 #endif
17 
18 //****************************************************************************//
19 // Defines for Win32 and MingW32 //
20 //****************************************************************************//
21 
22 #ifdef _WIN32
23 
24 #ifdef __MINGW32__
25 
26 #define CAL3D_WRAPPER_API
27 
28 #else
29 
30 #pragma warning(disable : 4251)
31 #pragma warning(disable : 4786)
32 #pragma warning(disable : 4099)
33 
34 #ifdef CAL3D_WRAPPER_EXPORTS
35 #define CAL3D_WRAPPER_API __declspec(dllexport)
36 #else
37 #define CAL3D_WRAPPER_API __declspec(dllimport)
38 #endif
39 
40 #endif
41 
42 #else
43 
44 //****************************************************************************//
45 // Defines for Linux, Cygwin, FreeBSD Sun and Mips... //
46 //****************************************************************************//
47 
48 #define CAL3D_WRAPPER_API
49 
50 #endif
51 
52 //****************************************************************************//
53 // Forward declarations //
54 //****************************************************************************//
55 
56 #ifndef CAL3D_WRAPPER_EXPORTS
57 
58 struct CalAnimation;
59 struct CalAnimationAction;
60 struct CalAnimationCycle;
61 struct CalBone;
62 struct CalCoreAnimation;
63 struct CalCoreMorphAnimation;
64 struct CalCoreBone;
65 struct CalCoreKeyframe;
66 struct CalCoreMaterial;
67 struct CalCoreMesh;
68 struct CalCoreModel;
69 struct CalCoreSkeleton;
70 struct CalCoreSubmesh;
71 struct CalCoreTrack;
72 struct CalLoader;
73 struct CalMatrix;
74 struct CalMesh;
75 struct CalMixer;
76 struct CalMorphTargetMixer;
77 struct CalModel;
78 struct CalPhysique;
79 struct CalPlatform;
80 struct CalQuaternion;
81 struct CalRenderer;
82 struct CalSaver;
83 struct CalSkeleton;
84 struct CalSpringSystem;
85 struct CalSubmesh;
86 struct CalVector;
88 
89 #ifndef __cplusplus
90 typedef int CalIndex;
91 #endif
92 
93 #endif
94 
95 
96 
97 typedef void *CalUserData;
98 
99 typedef unsigned long CalColorValue; // r, g, b, a in hi to lo order
100 
101 //****************************************************************************//
102 // Substitute for the C++ 'bool' type //
103 //****************************************************************************//
104 
105 #undef True
106 #undef False
107 
108 enum CalBoolean
109 {
110  False = 0,
111  True = 1
112 };
113 
114 //****************************************************************************//
115 // "C" wrapper functions declaration //
116 //****************************************************************************//
117 
118 #ifdef __cplusplus
119 extern "C"
120 {
121 #endif
122 
123 //****************************************************************************//
124 // CalAnimation wrapper functions declaration //
125 //****************************************************************************//
126 
127  enum CalAnimationType
128  {
129  ANIMATION_TYPE_NONE = 0,
130  ANIMATION_TYPE_CYCLE,
131  ANIMATION_TYPE_POSE,
132  ANIMATION_TYPE_ACTION
133  };
134 
135  enum CalAnimationState
136  {
137  ANIMATION_STATE_NONE = 0,
138  ANIMATION_STATE_SYNC,
139  ANIMATION_STATE_ASYNC,
140  ANIMATION_STATE_IN,
141  ANIMATION_STATE_STEADY,
142  ANIMATION_STATE_OUT
143  };
144 
145  CAL3D_WRAPPER_API void CalAnimation_Delete(struct CalAnimation *self);
146  CAL3D_WRAPPER_API struct CalCoreAnimation *CalAnimation_GetCoreAnimation(struct CalAnimation *self);
147  CAL3D_WRAPPER_API enum CalAnimationState CalAnimation_GetState(struct CalAnimation *self);
148  CAL3D_WRAPPER_API float CalAnimation_GetTime(struct CalAnimation *self);
149  CAL3D_WRAPPER_API enum CalAnimationType CalAnimation_GetType(struct CalAnimation *self);
150  CAL3D_WRAPPER_API float CalAnimation_GetWeight(struct CalAnimation *self);
151 
152 //****************************************************************************//
153 // CalAnimationAction wrapper functions declaration //
154 //****************************************************************************//
155 
156  CAL3D_WRAPPER_API void CalAnimationAction_Delete(struct CalAnimationAction *self);
157  CAL3D_WRAPPER_API enum CalBoolean CalAnimationAction_Execute(struct CalAnimationAction *self, float delayIn, float delayOut);
158  CAL3D_WRAPPER_API struct CalAnimationAction *CalAnimationAction_New(struct CalCoreAnimation *pCoreAnimation);
159  CAL3D_WRAPPER_API enum CalBoolean CalAnimationAction_Update(struct CalAnimationAction *self, float deltaTime);
160 
161 //****************************************************************************//
162 // CalAnimationCycle wrapper functions declaration //
163 //****************************************************************************//
164 
165  CAL3D_WRAPPER_API enum CalBoolean CalAnimationCycle_Blend(struct CalAnimationCycle *self, float weight, float delay);
166  CAL3D_WRAPPER_API void CalAnimationCycle_Delete(struct CalAnimationCycle *self);
167  CAL3D_WRAPPER_API struct CalAnimationCycle *CalAnimationCycle_New(struct CalCoreAnimation *pCoreAnimation);
168  CAL3D_WRAPPER_API void CalAnimationCycle_SetAsync(struct CalAnimationCycle *self, float time, float duration);
169  CAL3D_WRAPPER_API enum CalBoolean CalAnimationCycle_Update(struct CalAnimationCycle *self, float deltaTime);
170 
171 //****************************************************************************//
172 // CalBone wrapper functions declaration //
173 //****************************************************************************//
174 
175  CAL3D_WRAPPER_API void CalBone_BlendState(struct CalBone *self, float weight, struct CalVector *pTranslation, struct CalQuaternion *pRotation);
176  CAL3D_WRAPPER_API void CalBone_CalculateState(struct CalBone *self);
177  CAL3D_WRAPPER_API void CalBone_ClearState(struct CalBone *self);
178  CAL3D_WRAPPER_API void CalBone_Delete(struct CalBone *self);
179  CAL3D_WRAPPER_API struct CalCoreBone *CalBone_GetCoreBone(struct CalBone *self);
180  CAL3D_WRAPPER_API struct CalQuaternion *CalBone_GetRotation(struct CalBone *self);
181  CAL3D_WRAPPER_API struct CalQuaternion *CalBone_GetRotationAbsolute(struct CalBone *self);
182  CAL3D_WRAPPER_API struct CalQuaternion *CalBone_GetRotationBoneSpace(struct CalBone *self);
183  CAL3D_WRAPPER_API struct CalVector *CalBone_GetTranslation(struct CalBone *self);
184  CAL3D_WRAPPER_API struct CalVector *CalBone_GetTranslationAbsolute(struct CalBone *self);
185  CAL3D_WRAPPER_API struct CalVector *CalBone_GetTranslationBoneSpace(struct CalBone *self);
186  CAL3D_WRAPPER_API void CalBone_LockState(struct CalBone *self);
187  CAL3D_WRAPPER_API struct CalBone *CalBone_New(struct CalCoreBone* coreBone);
188  CAL3D_WRAPPER_API void CalBone_SetSkeleton(struct CalBone *self, struct CalSkeleton *pSkeleton);
189  CAL3D_WRAPPER_API void CalBone_SetTranslation(struct CalBone *self, struct CalVector *pTranslation);
190  CAL3D_WRAPPER_API void CalBone_SetRotation(struct CalBone *self, struct CalQuaternion *pRotation);
191  CAL3D_WRAPPER_API void CalBone_SetCoreState(struct CalBone *self);
192  CAL3D_WRAPPER_API void CalBone_SetCoreStateRecursive(struct CalBone *self);
193  CAL3D_WRAPPER_API enum CalBoolean CalBone_GetBoundingBox( struct CalBone *self, struct CalCoreModel* model,
194  float* outEightPoints );
195 
196 
197 //****************************************************************************//
198 // CalCoreAnimation wrapper functions declaration //
199 //****************************************************************************//
200 
201  CAL3D_WRAPPER_API struct CalCoreAnimation *CalCoreAnimation_New();
202  CAL3D_WRAPPER_API void CalCoreAnimation_Delete(struct CalCoreAnimation* self);
203 
204  CAL3D_WRAPPER_API float CalCoreAnimation_GetDuration(struct CalCoreAnimation *self);
205  CAL3D_WRAPPER_API void CalCoreAnimation_SetDuration(struct CalCoreAnimation *self, float duration);
206  CAL3D_WRAPPER_API void CalCoreAnimation_Scale(struct CalCoreAnimation *self, float factor);
207 
208 //****************************************************************************//
209 // CalCoreMorphAnimation wrapper functions declaration //
210 //****************************************************************************//
211 
212  CAL3D_WRAPPER_API struct CalCoreMorphAnimation *CalCoreMorphAnimation_New();
213  CAL3D_WRAPPER_API void CalCoreMorphAnimation_Delete(struct CalCoreMorphAnimation* self);
214  CAL3D_WRAPPER_API enum CalBoolean CalCoreMorphAnimation_AddMorphTarget(struct CalCoreMorphAnimation* self, int meshID, int morphID);
215  CAL3D_WRAPPER_API const char* CalCoreMorphAnimation_GetName( const struct CalCoreMorphAnimation *self );
216  CAL3D_WRAPPER_API void CalCoreMorphAnimation_SetName(struct CalCoreMorphAnimation *self, const char* inName );
217 
218 //****************************************************************************//
219 // CalCoreBone wrapper functions declaration //
220 //****************************************************************************//
221 
222  CAL3D_WRAPPER_API enum CalBoolean CalCoreBone_AddChildId(struct CalCoreBone *self, int childId);
223  CAL3D_WRAPPER_API void CalCoreBone_CalculateState(struct CalCoreBone *self);
224  CAL3D_WRAPPER_API void CalCoreBone_Delete(struct CalCoreBone *self);
225 // CAL3D_WRAPPER_API std::list<int>& CalCoreBone_GetListChildId(struct CalCoreBone *self);
226  CAL3D_WRAPPER_API int CalCoreBone_GetChildCount( struct CalCoreBone *self );
227  CAL3D_WRAPPER_API int CalCoreBone_GetChildId( struct CalCoreBone *self, int childIndex );
228  CAL3D_WRAPPER_API const char *CalCoreBone_GetName(struct CalCoreBone *self);
229  CAL3D_WRAPPER_API void CalCoreBone_SetName(struct CalCoreBone *self, const char* name );
230  CAL3D_WRAPPER_API int CalCoreBone_GetParentId(struct CalCoreBone *self);
231  CAL3D_WRAPPER_API struct CalQuaternion *CalCoreBone_GetRotation(struct CalCoreBone *self);
232  CAL3D_WRAPPER_API struct CalQuaternion *CalCoreBone_GetRotationAbsolute(struct CalCoreBone *self);
233  CAL3D_WRAPPER_API struct CalQuaternion *CalCoreBone_GetRotationBoneSpace(struct CalCoreBone *self);
234  CAL3D_WRAPPER_API struct CalVector *CalCoreBone_GetTranslation(struct CalCoreBone *self);
235  CAL3D_WRAPPER_API struct CalVector *CalCoreBone_GetTranslationAbsolute(struct CalCoreBone *self);
236  CAL3D_WRAPPER_API struct CalVector *CalCoreBone_GetTranslationBoneSpace(struct CalCoreBone *self);
237  CAL3D_WRAPPER_API CalUserData CalCoreBone_GetUserData(struct CalCoreBone *self);
238  CAL3D_WRAPPER_API struct CalCoreBone *CalCoreBone_New(const char* name);
239  CAL3D_WRAPPER_API void CalCoreBone_SetCoreSkeleton(struct CalCoreBone *self, struct CalCoreSkeleton *pCoreSkeleton);
240  CAL3D_WRAPPER_API void CalCoreBone_SetParentId(struct CalCoreBone *self, int parentId);
241  CAL3D_WRAPPER_API void CalCoreBone_SetRotation(struct CalCoreBone *self, struct CalQuaternion *pRotation);
242  CAL3D_WRAPPER_API void CalCoreBone_SetRotationBoneSpace(struct CalCoreBone *self, struct CalQuaternion *pRotation);
243  CAL3D_WRAPPER_API void CalCoreBone_SetTranslation(struct CalCoreBone *self, struct CalVector *pTranslation);
244  CAL3D_WRAPPER_API void CalCoreBone_SetTranslationBoneSpace(struct CalCoreBone *self, struct CalVector *pTranslation);
245  CAL3D_WRAPPER_API void CalCoreBone_SetUserData(struct CalCoreBone *self, CalUserData userData);
246  CAL3D_WRAPPER_API enum CalBoolean CalCoreBone_GetBoundingBox( struct CalCoreBone *self, struct CalCoreModel* model,
247  float* outEightPoints );
248 //****************************************************************************//
249 // CalCoreMaterial wrapper functions declaration //
250 //****************************************************************************//
251 
252  CAL3D_WRAPPER_API struct CalCoreMaterial *CalCoreMaterial_New();
253  CAL3D_WRAPPER_API void CalCoreMaterial_Delete(struct CalCoreMaterial *self);
254 
255 // CAL3D_WRAPPER_API CalCoreMaterial::Color *CalCoreMaterial_GetAmbientColor(struct CalCoreMaterial *self);
256 // CAL3D_WRAPPER_API CalCoreMaterial::Color *CalCoreMaterial_GetDiffuseColor(struct CalCoreMaterial *self);
257  CAL3D_WRAPPER_API int CalCoreMaterial_GetMapCount(struct CalCoreMaterial *self);
258  CAL3D_WRAPPER_API const char *CalCoreMaterial_GetMapFilename(struct CalCoreMaterial *self, int mapId);
259  CAL3D_WRAPPER_API CalUserData CalCoreMaterial_GetMapUserData(struct CalCoreMaterial *self, int mapId);
260  CAL3D_WRAPPER_API float CalCoreMaterial_GetShininess(struct CalCoreMaterial *self);
261 // CAL3D_WRAPPER_API CalCoreMaterial::Color *CalCoreMaterial_GetSpecularColor(struct CalCoreMaterial *self);
262  CAL3D_WRAPPER_API CalUserData CalCoreMaterial_GetUserData(struct CalCoreMaterial *self);
263 // CAL3D_WRAPPER_API std::vector<Map>& CalCoreMaterial_GetVectorMap(struct CalCoreMaterial *self);
264  CAL3D_WRAPPER_API enum CalBoolean CalCoreMaterial_Reserve(struct CalCoreMaterial *self, int mapCount);
265 // CAL3D_WRAPPER_API void CalCoreMaterial_SetAmbientColor(struct CalCoreMaterial *self, struct CalCoreMaterial::Color *pAmbientColor);
266 // CAL3D_WRAPPER_API void CalCoreMaterial_SetDiffuseColor(struct CalCoreMaterial *self, struct CalCoreMaterial::Color *pDiffuseColor);
267 // CAL3D_WRAPPER_API enum CalBoolean CalCoreMaterial_SetMap(struct CalCoreMaterial *self, int mapId, struct CalCoreMaterial::Map *pMap);
268  CAL3D_WRAPPER_API enum CalBoolean CalCoreMaterial_SetMapUserData(struct CalCoreMaterial *self, int mapId, CalUserData userData);
269  CAL3D_WRAPPER_API void CalCoreMaterial_SetShininess(struct CalCoreMaterial *self, float shininess);
270 // CAL3D_WRAPPER_API void CalCoreMaterial_SetSpecularColor(struct CalCoreMaterial *self, struct CalCoreMaterial::Color *pSpecularColor);
271  CAL3D_WRAPPER_API void CalCoreMaterial_SetUserData(struct CalCoreMaterial *self, CalUserData userData);
272  CAL3D_WRAPPER_API const char* CalCoreMaterial_GetName(struct CalCoreMaterial *self);
273  CAL3D_WRAPPER_API void CalCoreMaterial_SetName(struct CalCoreMaterial *self, const char* inName);
274  CAL3D_WRAPPER_API CalColorValue CalCoreMaterial_GetAmbientColor(struct CalCoreMaterial *self);
275  CAL3D_WRAPPER_API CalColorValue CalCoreMaterial_GetDiffuseColor(struct CalCoreMaterial *self);
276  CAL3D_WRAPPER_API CalColorValue CalCoreMaterial_GetSpecularColor(struct CalCoreMaterial *self);
277  CAL3D_WRAPPER_API void CalCoreMaterial_SetAmbientColor(struct CalCoreMaterial *self, CalColorValue pAmbientColor);
278  CAL3D_WRAPPER_API void CalCoreMaterial_SetDiffuseColor(struct CalCoreMaterial *self, CalColorValue pDiffuseColor);
279  CAL3D_WRAPPER_API void CalCoreMaterial_SetSpecularColor(struct CalCoreMaterial *self, CalColorValue pSpecularColor);
280 
281 
282 //****************************************************************************//
283 // CalCoreMesh wrapper functions declaration //
284 //****************************************************************************//
285 
286  CAL3D_WRAPPER_API struct CalCoreMesh *CalCoreMesh_New();
287  CAL3D_WRAPPER_API void CalCoreMesh_Delete(struct CalCoreMesh *self);
288 
289  CAL3D_WRAPPER_API int CalCoreMesh_AddCoreSubmesh(struct CalCoreMesh *self, struct CalCoreSubmesh *pCoreSubmesh);
290  CAL3D_WRAPPER_API void CalCoreMesh_RemoveCoreSubmesh( struct CalCoreMesh *self, int coreSubmeshID );
291  CAL3D_WRAPPER_API struct CalCoreSubmesh *CalCoreMesh_GetCoreSubmesh(struct CalCoreMesh *self, int id);
292  CAL3D_WRAPPER_API int CalCoreMesh_GetCoreSubmeshCount(struct CalCoreMesh *self);
293 // CAL3D_WRAPPER_API std::vector<CalCoreSubmesh *>& CalCoreMesh_GetVectorCoreSubmesh(struct CalCoreMesh *self);
294  CAL3D_WRAPPER_API const char* CalCoreMesh_GetName(struct CalCoreMesh *self);
295  CAL3D_WRAPPER_API void CalCoreMesh_SetName(struct CalCoreMesh *self, const char* inName);
296  CAL3D_WRAPPER_API void CalCoreMesh_Scale(struct CalCoreMesh *self,float factor);
297  CAL3D_WRAPPER_API int CalCoreMesh_AddAsMorphTarget(struct CalCoreMesh *self, struct CalCoreMesh *target);
298 
299 //****************************************************************************//
300 // CalCoreModel wrapper functions declaration //
301 //****************************************************************************//
302 
303  CAL3D_WRAPPER_API int CalCoreModel_AddCoreAnimation(struct CalCoreModel *self, struct CalCoreAnimation *pCoreAnimation);
304  CAL3D_WRAPPER_API int CalCoreModel_AddCoreMorphAnimation(struct CalCoreModel *self, struct CalCoreMorphAnimation *pCoreAnimation);
305  CAL3D_WRAPPER_API int CalCoreModel_AddCoreMaterial(struct CalCoreModel *self, struct CalCoreMaterial *pCoreMaterial);
306  CAL3D_WRAPPER_API int CalCoreModel_AddCoreMesh(struct CalCoreModel *self, struct CalCoreMesh *pCoreMesh);
307  CAL3D_WRAPPER_API enum CalBoolean CalCoreModel_CreateCoreMaterialThread(struct CalCoreModel *self, int coreMaterialThreadId);
308  CAL3D_WRAPPER_API void CalCoreModel_Delete(struct CalCoreModel *self);
309  CAL3D_WRAPPER_API const char *CalCoreModel_GetName(struct CalCoreModel *self);
310  CAL3D_WRAPPER_API struct CalCoreAnimation *CalCoreModel_GetCoreAnimation(struct CalCoreModel *self, int coreAnimationId);
311  CAL3D_WRAPPER_API int CalCoreModel_GetCoreAnimationCount(struct CalCoreModel *self);
312  CAL3D_WRAPPER_API struct CalCoreMaterial *CalCoreModel_GetCoreMaterial(struct CalCoreModel *self, int coreMaterialId);
313  CAL3D_WRAPPER_API int CalCoreModel_GetCoreMaterialCount(struct CalCoreModel *self);
314  CAL3D_WRAPPER_API int CalCoreModel_GetCoreMaterialId(struct CalCoreModel *self, int coreMaterialThreadId, int coreMaterialSetId);
315  CAL3D_WRAPPER_API struct CalCoreMesh *CalCoreModel_GetCoreMesh(struct CalCoreModel *self, int coreMeshId);
316  CAL3D_WRAPPER_API int CalCoreModel_GetCoreMeshCount(struct CalCoreModel *self);
317  CAL3D_WRAPPER_API int CalCoreModel_GetCoreMeshId(struct CalCoreModel *self, const char* coreMeshName );
318  CAL3D_WRAPPER_API struct CalCoreSkeleton *CalCoreModel_GetCoreSkeleton(struct CalCoreModel *self);
319  CAL3D_WRAPPER_API CalUserData CalCoreModel_GetUserData(struct CalCoreModel *self);
320  CAL3D_WRAPPER_API int CalCoreModel_GetCoreMorphAnimationCount(struct CalCoreModel *self);
321  CAL3D_WRAPPER_API int CalCoreModel_LoadCoreAnimation(struct CalCoreModel *self, const char *strFilename);
322  CAL3D_WRAPPER_API int CalCoreModel_LoadCoreMaterial(struct CalCoreModel *self, const char *strFilename);
323  CAL3D_WRAPPER_API int CalCoreModel_LoadCoreMesh(struct CalCoreModel *self, const char *strFilename);
324  CAL3D_WRAPPER_API enum CalBoolean CalCoreModel_LoadCoreSkeleton(struct CalCoreModel *self, const char *strFilename);
325  CAL3D_WRAPPER_API int CalCoreModel_LoadCoreAnimationFromBuffer(struct CalCoreModel *self, const void* buffer);
326  CAL3D_WRAPPER_API int CalCoreModel_LoadCoreMaterialFromBuffer(struct CalCoreModel *self, const void* buffer);
327  CAL3D_WRAPPER_API int CalCoreModel_LoadCoreMeshFromBuffer(struct CalCoreModel *self, const void* buffer);
328  CAL3D_WRAPPER_API enum CalBoolean CalCoreModel_LoadCoreSkeletonFromBuffer(struct CalCoreModel *self, const void* buffer);
329  CAL3D_WRAPPER_API struct CalCoreModel *CalCoreModel_New(const char* name);
330  CAL3D_WRAPPER_API struct CalCoreModel *CalCoreModel_NewCopy( struct CalCoreModel* other );
331  CAL3D_WRAPPER_API enum CalBoolean CalCoreModel_SaveCoreAnimation(struct CalCoreModel *self, const char *strFilename, int coreAnimtionId);
332  CAL3D_WRAPPER_API enum CalBoolean CalCoreModel_SaveCoreMaterial(struct CalCoreModel *self, const char *strFilename, int coreMaterialId);
333  CAL3D_WRAPPER_API enum CalBoolean CalCoreModel_SaveCoreMesh(struct CalCoreModel *self, const char *strFilename, int coreMeshId);
334  CAL3D_WRAPPER_API enum CalBoolean CalCoreModel_SaveCoreSkeleton(struct CalCoreModel *self, const char *strFilename);
335  CAL3D_WRAPPER_API enum CalBoolean CalCoreModel_SetCoreMaterialId(struct CalCoreModel *self, int coreMaterialThreadId, int coreMaterialSetId, int coreMaterialId);
336  CAL3D_WRAPPER_API void CalCoreModel_SetCoreSkeleton(struct CalCoreModel *self, struct CalCoreSkeleton *pCoreSkeleton);
337  CAL3D_WRAPPER_API void CalCoreModel_SetUserData(struct CalCoreModel *self, CalUserData userData);
338  CAL3D_WRAPPER_API struct CalCoreMorphAnimation* CalCoreModel_GetCoreMorphAnimation( struct CalCoreModel *self, int morphAnimID );
339  CAL3D_WRAPPER_API void CalCoreModel_SetName(struct CalCoreModel *self, const char* inName);
340  CAL3D_WRAPPER_API void CalCoreModel_ReplaceCoreMesh(struct CalCoreModel *self, int coreMeshId, struct CalCoreMesh *pCoreMesh);
341  CAL3D_WRAPPER_API enum CalBoolean CalCoreModel_AddMeshName(struct CalCoreModel *self, const char* name, int coreMeshId );
342  CAL3D_WRAPPER_API void CalCoreModel_CloneCoreMaterials(struct CalCoreModel *self );
343 
344 //****************************************************************************//
345 // CalCoreSkeleton wrapper functions declaration //
346 //****************************************************************************//
347 
348  CAL3D_WRAPPER_API struct CalCoreSkeleton *CalCoreSkeleton_New();
349  CAL3D_WRAPPER_API void CalCoreSkeleton_Delete(struct CalCoreSkeleton* self);
350 
351  CAL3D_WRAPPER_API int CalCoreSkeleton_AddCoreBone(struct CalCoreSkeleton *self, struct CalCoreBone *pCoreBone);
352  CAL3D_WRAPPER_API void CalCoreSkeleton_CalculateState(struct CalCoreSkeleton *self);
353  CAL3D_WRAPPER_API struct CalCoreBone *CalCoreSkeleton_GetCoreBone(struct CalCoreSkeleton *self, int coreBoneId);
354  CAL3D_WRAPPER_API int CalCoreSkeleton_GetCoreBoneId(struct CalCoreSkeleton *self, const char *strName);
355  CAL3D_WRAPPER_API enum CalBoolean CalCoreSkeleton_MapCoreBoneName( struct CalCoreSkeleton *self, int coreBoneID, const char* name );
356  CAL3D_WRAPPER_API int CalCoreSkeleton_GetCoreBoneCount(struct CalCoreSkeleton *self);
357  CAL3D_WRAPPER_API int CalCoreSkeleton_GetRootCoreBoneCount(struct CalCoreSkeleton *self);
358  CAL3D_WRAPPER_API struct CalCoreBone *CalCoreSkeleton_GetRootCoreBone(struct CalCoreSkeleton *self, int rootBoneIndex);
359 // CAL3D_WRAPPER_API std::list<int>& CalCoreSkeleton_GetListRootCoreBoneId(struct CalCoreSkeleton *self);
360 // CAL3D_WRAPPER_API std::vector<CalCoreBone *>& CalCoreSkeleton_GetVectorCoreBone(struct CalCoreSkeleton *self);
361  CAL3D_WRAPPER_API void CalCoreSkeleton_CalculateBoundingBoxes( struct CalCoreModel* coreModel );
362  CAL3D_WRAPPER_API void CalCoreSkeleton_Scale(struct CalCoreSkeleton *self,float factor);
363 
364 //****************************************************************************//
365 // CalCoreSubmesh wrapper functions declaration //
366 //****************************************************************************//
367 
368  CAL3D_WRAPPER_API void CalCoreSubmesh_Delete(struct CalCoreSubmesh *self);
369  CAL3D_WRAPPER_API int CalCoreSubmesh_GetCoreMaterialThreadId(struct CalCoreSubmesh *self);
370  CAL3D_WRAPPER_API int CalCoreSubmesh_GetFaceCount(struct CalCoreSubmesh *self);
371  CAL3D_WRAPPER_API int CalCoreSubmesh_GetLodCount(struct CalCoreSubmesh *self);
372  CAL3D_WRAPPER_API int CalCoreSubmesh_GetSpringCount(struct CalCoreSubmesh *self);
373  CAL3D_WRAPPER_API const CalIndex* CalCoreSubmesh_GetFaces( struct CalCoreSubmesh *self );
374 // CAL3D_WRAPPER_API std::vector<CalCoreSubmesh::Face>& CalCoreSubmesh_GetVectorFace(struct CalCoreSubmesh *self);
375 // CAL3D_WRAPPER_API std::vector<CalCoreSubmesh::PhysicalProperty>& CalCoreSubmesh_GetVectorPhysicalProperty(struct CalCoreSubmesh *self);
376 // CAL3D_WRAPPER_API std::vector<CalCoreSubmesh::Spring>& CalCoreSubmesh_GetVectorSpring(struct CalCoreSubmesh *self);
377 // CAL3D_WRAPPER_API std::vector<std::vector<CalCoreSubmesh::TextureCoordinate> >& CalCoreSubmesh_GetVectorVectorTextureCoordinate(struct CalCoreSubmesh *self);
378 // CAL3D_WRAPPER_API std::vector<CalCoreSubmesh::Vertex>& CalCoreSubmesh_GetVectorVertex(struct CalCoreSubmesh *self);
379  CAL3D_WRAPPER_API int CalCoreSubmesh_GetVertexCount(struct CalCoreSubmesh *self);
380  CAL3D_WRAPPER_API int CalCoreSubmesh_GetVertexInfluenceCount( struct CalCoreSubmesh *self, int vertID );
381  CAL3D_WRAPPER_API int CalCoreSubmesh_GetVertexInfluence( struct CalCoreSubmesh *self, int vertID, int influenceID,
382  float* outWeight );
383  CAL3D_WRAPPER_API struct CalCoreSubmesh *CalCoreSubmesh_New();
384  CAL3D_WRAPPER_API void CalCoreSubmesh_GetVertex( struct CalCoreSubmesh* self, int vertID, float* outPosition, float* outNormal );
385  CAL3D_WRAPPER_API enum CalBoolean CalCoreSubmesh_Reserve(struct CalCoreSubmesh *self, int vertexCount, int textureCoordinateCount, int faceCount, int springCount);
386  CAL3D_WRAPPER_API void CalCoreSubmesh_SetCoreMaterialThreadId(struct CalCoreSubmesh *self, int coreMaterialThreadId);
387 // CAL3D_WRAPPER_API enum CalBoolean CalCoreSubmesh_SetFace(struct CalCoreSubmesh *self, int faceId, struct CalCoreSubmesh::Face *pFace);
388  CAL3D_WRAPPER_API void CalCoreSubmesh_SetLodCount(struct CalCoreSubmesh *self, int lodCount);
389 // CAL3D_WRAPPER_API enum CalBoolean CalCoreSubmesh_SetPhysicalProperty(struct CalCoreSubmesh *self, int vertexId, struct CalCoreSubmesh::PhysicalProperty *pPhysicalProperty);
390 // CAL3D_WRAPPER_API enum CalBoolean CalCoreSubmesh_SetSpring(struct CalCoreSubmesh *self, int springId, struct CalCoreSubmesh::Spring *pSpring);
391 // CAL3D_WRAPPER_API enum CalBoolean CalCoreSubmesh_SetTextureCoordinate(struct CalCoreSubmesh *self, int vertexId, int textureCoordinateId, struct CalCoreSubmesh::TextureCoordinate *pTextureCoordinate);
392 // CAL3D_WRAPPER_API enum CalBoolean CalCoreSubmesh_SetVertex(struct CalCoreSubmesh *self, int vertexId, struct CalCoreSubmesh::Vertex *pVertex);
393 CAL3D_WRAPPER_API enum CalBoolean CalCoreSubmesh_IsTangentsEnabled(struct CalCoreSubmesh *self, int mapId);
394 CAL3D_WRAPPER_API enum CalBoolean CalCoreSubmesh_EnableTangents(struct CalCoreSubmesh *self, int mapId, enum CalBoolean enabled);
395 CAL3D_WRAPPER_API int CalCoreSubmesh_AddSubMorphTarget( CalCoreSubmesh *self, CalCoreSubMorphTargetDiffMap* inTarget );
396 
397 //****************************************************************************//
398 // CalCoreSubMorphTargetDiffMap wrapper functions declaration //
399 //****************************************************************************//
400 CAL3D_WRAPPER_API CalCoreSubMorphTargetDiffMap* CalCoreSubMorphTargetDiffMap_New();
401 CAL3D_WRAPPER_API CalCoreSubMorphTargetDiffMap* CalCoreSubMorphTargetDiffMap_Clone(
402  const CalCoreSubMorphTargetDiffMap* inOther );
403 CAL3D_WRAPPER_API void CalCoreSubMorphTargetDiffMap_Delete( CalCoreSubMorphTargetDiffMap* inSelf );
404 CAL3D_WRAPPER_API bool CalCoreSubMorphTargetDiffMap_Reserve( CalCoreSubMorphTargetDiffMap* inSelf,
405  int inNumDifferences );
406 CAL3D_WRAPPER_API bool CalCoreSubMorphTargetDiffMap_AppendVertex( CalCoreSubMorphTargetDiffMap* inSelf,
407  int inVertexID, float* inPositionOffset, float* inNormalOffset );
408 
409 //****************************************************************************//
410 // CalError wrapper functions declaration //
411 //****************************************************************************//
412 
413  enum CalErrorCode
414  {
415  ERROR_CODE_OK = 0,
416  ERROR_CODE_INTERNAL,
417  ERROR_CODE_INVALID_HANDLE,
418  ERROR_CODE_MEMORY_ALLOCATION_FAILED,
419  ERROR_CODE_FILE_NOT_FOUND,
420  ERROR_CODE_INVALID_FILE_FORMAT,
421  ERROR_CODE_FILE_PARSER_FAILED,
422  ERROR_CODE_INDEX_BUILD_FAILED,
423  ERROR_CODE_NO_PARSER_DOCUMENT,
424  ERROR_CODE_INVALID_ANIMATION_DURATION,
425  ERROR_CODE_BONE_NOT_FOUND,
426  ERROR_CODE_INVALID_ATTRIBUTE_VALUE,
427  ERROR_CODE_INVALID_KEYFRAME_COUNT,
428  ERROR_CODE_INVALID_ANIMATION_TYPE,
429  ERROR_CODE_FILE_CREATION_FAILED,
430  ERROR_CODE_FILE_WRITING_FAILED,
431  ERROR_CODE_INCOMPATIBLE_FILE_VERSION,
432  ERROR_CODE_NO_MESH_IN_MODEL,
433  ERROR_CODE_MAX_ERROR_CODE
434  };
435 
436  CAL3D_WRAPPER_API enum CalErrorCode CalError_GetLastErrorCode();
437  CAL3D_WRAPPER_API const char *CalError_GetLastErrorDescription();
438  CAL3D_WRAPPER_API const char *CalError_GetLastErrorFile();
439  CAL3D_WRAPPER_API int CalError_GetLastErrorLine();
440  CAL3D_WRAPPER_API const char *CalError_GetLastErrorText();
441  CAL3D_WRAPPER_API void CalError_PrintLastError();
442 // CAL3D_WRAPPER_API void CalError_SetLastError(enum CalErrorCode code, char *strFile, int line, char *strText);
443 
444 //****************************************************************************//
445 // CalLoader wrapper functions declaration //
446 //****************************************************************************//
447 
448  CAL3D_WRAPPER_API struct CalLoader *CalLoader_New();
449  CAL3D_WRAPPER_API void CalLoader_Delete(struct CalLoader *self);
450  CAL3D_WRAPPER_API struct CalCoreAnimation *CalLoader_LoadCoreAnimation(struct CalLoader *self, const char *strFilename);
451  CAL3D_WRAPPER_API struct CalCoreMaterial *CalLoader_LoadCoreMaterial(struct CalLoader *self, const char *strFilename);
452  CAL3D_WRAPPER_API struct CalCoreMesh *CalLoader_LoadCoreMesh(struct CalLoader *self, const char *strFilename);
453  CAL3D_WRAPPER_API struct CalCoreSkeleton *CalLoader_LoadCoreSkeleton(struct CalLoader *self, const char *strFilename);
454  CAL3D_WRAPPER_API struct CalCoreMesh *CalLoader_LoadCoreMeshFromBuffer(const void *data);
455  enum CalLoaderFlags
456  {
457  CAL_LOADER_ROTATE_X_AXIS = 1,
458  CAL_LOADER_INVERT_V_COORD = 2
459  };
460  CAL3D_WRAPPER_API void CalLoader_SetLoadingMode( int flags );
461 
462 //****************************************************************************//
463 // CalMesh wrapper functions declaration //
464 //****************************************************************************//
465 
466  CAL3D_WRAPPER_API void CalMesh_Delete(struct CalMesh *self);
467  CAL3D_WRAPPER_API struct CalCoreMesh *CalMesh_GetCoreMesh(struct CalMesh *self);
468  CAL3D_WRAPPER_API struct CalSubmesh *CalMesh_GetSubmesh(struct CalMesh *self, int id);
469  CAL3D_WRAPPER_API int CalMesh_GetSubmeshCount(struct CalMesh *self);
470 // CAL3D_WRAPPER_API std::vector<CalSubmesh *>& CalMesh_GetVectorSubmesh(struct CalMesh *self);
471  CAL3D_WRAPPER_API struct CalMesh *CalMesh_New(struct CalCoreMesh *pCoreMesh);
472  CAL3D_WRAPPER_API void CalMesh_SetLodLevel(struct CalMesh *self, float lodLevel);
473  CAL3D_WRAPPER_API void CalMesh_SetMaterialSet(struct CalMesh *self, int setId);
474  CAL3D_WRAPPER_API void CalMesh_SetModel(struct CalMesh *self, struct CalModel *pModel);
475 
476 //****************************************************************************//
477 // CalMixer wrapper functions declaration //
478 //****************************************************************************//
479 
480  CAL3D_WRAPPER_API enum CalBoolean CalMixer_BlendCycle(struct CalMixer *self, int id, float weight, float delay);
481  CAL3D_WRAPPER_API enum CalBoolean CalMixer_ClearCycle(struct CalMixer *self, int id, float delay);
482  CAL3D_WRAPPER_API void CalMixer_Delete(struct CalMixer *self);
483  CAL3D_WRAPPER_API enum CalBoolean CalMixer_ExecuteAction(struct CalMixer *self, int id, float delayIn, float delayOut, enum CalBoolean autoLock);
484  CAL3D_WRAPPER_API struct CalMixer *CalMixer_New(struct CalModel *pModel);
485  CAL3D_WRAPPER_API void CalMixer_UpdateAnimation(struct CalMixer *self, float deltaTime);
486  CAL3D_WRAPPER_API void CalMixer_UpdateSkeleton(struct CalMixer *self);
487  CAL3D_WRAPPER_API void CalMixer_RemoveAction(struct CalMixer *self,int id);
488 
489 //****************************************************************************//
490 // CalMorphTargetMixer wrapper functions declaration //
491 //****************************************************************************//
492  CAL3D_WRAPPER_API enum CalBoolean CalMorphTargetMixer_Blend( struct CalMorphTargetMixer* self,
493  int morphAnimID, float weight, float delayIn, float delayOut, bool looping );
494  CAL3D_WRAPPER_API enum CalBoolean CalMorphTargetMixer_Clear(struct CalMorphTargetMixer *self, int id, float delay);
495  CAL3D_WRAPPER_API void CalMorphTargetMixer_Delete(struct CalMorphTargetMixer *self);
496  CAL3D_WRAPPER_API struct CalMorphTargetMixer *CalMorphTargetMixer_New(struct CalModel *pModel);
497  CAL3D_WRAPPER_API void CalMorphTargetMixer_Update( struct CalMorphTargetMixer* self, float deltaTime );
498  CAL3D_WRAPPER_API int CalMorphTargetMixer_GetMorphTargetCount( struct CalMorphTargetMixer* self );
499  CAL3D_WRAPPER_API enum CalBoolean CalMorphTargetMixer_Copy( struct CalMorphTargetMixer* self,
500  const struct CalMorphTargetMixer* toCopy );
501  CAL3D_WRAPPER_API float CalMorphTargetMixer_GetCurrentWeight( struct CalMorphTargetMixer* self, int morphAnimID );
502 
503 //****************************************************************************//
504 // CalModel wrapper functions declaration //
505 //****************************************************************************//
506 
507  CAL3D_WRAPPER_API enum CalBoolean CalModel_AttachMesh(struct CalModel *self, int coreMeshId);
508  CAL3D_WRAPPER_API void CalModel_Delete(struct CalModel *self);
509  CAL3D_WRAPPER_API enum CalBoolean CalModel_DetachMesh(struct CalModel *self, int coreMeshId);
510  CAL3D_WRAPPER_API struct CalCoreModel *CalModel_GetCoreModel(struct CalModel *self);
511  CAL3D_WRAPPER_API struct CalMesh *CalModel_GetMesh(struct CalModel *self, int coreMeshId);
512  CAL3D_WRAPPER_API const struct CalMesh *CalModel_GetMeshConst(const struct CalModel *self, int coreMeshId);
513  CAL3D_WRAPPER_API struct CalMixer *CalModel_GetMixer(struct CalModel *self);
514  CAL3D_WRAPPER_API struct CalMorphTargetMixer *CalModel_GetMorphTargetMixer(struct CalModel *self);
515  CAL3D_WRAPPER_API const struct CalMorphTargetMixer *CalModel_GetMorphTargetMixerConst(const struct CalModel *self);
516  CAL3D_WRAPPER_API struct CalPhysique *CalModel_GetPhysique(struct CalModel *self);
517  CAL3D_WRAPPER_API const struct CalPhysique *CalModel_GetPhysiqueConst(const struct CalModel *self);
518  CAL3D_WRAPPER_API void CalModel_SetPhysique(struct CalModel *self, struct CalPhysique *phys);
519  CAL3D_WRAPPER_API struct CalRenderer *CalModel_GetRenderer(struct CalModel *self);
520  CAL3D_WRAPPER_API struct CalSkeleton *CalModel_GetSkeleton(struct CalModel *self);
521  CAL3D_WRAPPER_API struct CalSpringSystem *CalModel_GetSpringSystem(struct CalModel *self);
522  CAL3D_WRAPPER_API const struct CalSpringSystem *CalModel_GetSpringSystemConst(const struct CalModel *self);
523  CAL3D_WRAPPER_API CalUserData CalModel_GetUserData(struct CalModel *self);
524  CAL3D_WRAPPER_API int CalModel_GetMeshCount(struct CalModel *self);
525  CAL3D_WRAPPER_API struct CalMesh *CalModel_GetMeshByMeshID(struct CalModel *self, int meshId);
526 // CAL3D_WRAPPER_API std::vector<CalMesh *>& CalModel_GetVectorMesh(struct CalModel *self);
527  CAL3D_WRAPPER_API struct CalModel *CalModel_New(struct CalCoreModel* pCoreModel);
528  CAL3D_WRAPPER_API void CalModel_SetLodLevel(struct CalModel *self, float lodLevel);
529  CAL3D_WRAPPER_API void CalModel_SetMaterialSet(struct CalModel *self, int setId);
530  CAL3D_WRAPPER_API void CalModel_SetUserData(struct CalModel *self, CalUserData userData);
531  CAL3D_WRAPPER_API void CalModel_Update(struct CalModel *self, float deltaTime);
532 
533 //****************************************************************************//
534 // CalPhysique wrapper functions declaration //
535 //****************************************************************************//
536 
537  CAL3D_WRAPPER_API int CalPhysique_CalculateNormals(struct CalPhysique *self, struct CalSubmesh *pSubmesh, float *pNormalBuffer);
538  CAL3D_WRAPPER_API int CalPhysique_CalculateVertices(struct CalPhysique *self, struct CalSubmesh *pSubmesh, float *pVertexBuffer);
539  CAL3D_WRAPPER_API int CalPhysique_CalculateVerticesAndNormals(struct CalPhysique *self, struct CalSubmesh *pSubmesh, float *pVertexBuffer);
540  CAL3D_WRAPPER_API int CalPhysique_CalculateVerticesNormalsAndTexCoords(struct CalPhysique *self, struct CalSubmesh *pSubmesh, float *pVertexBuffer, int NumTexCoords);
541  CAL3D_WRAPPER_API int CalPhysique_CalculateTangentSpaces(struct CalPhysique *self, struct CalSubmesh *pSubmesh, int mapId, float *pTangentSpaceBuffer);
542  CAL3D_WRAPPER_API void CalPhysique_Delete(struct CalPhysique *self);
543  CAL3D_WRAPPER_API struct CalPhysique *CalPhysique_New(struct CalModel* pModel);
544  CAL3D_WRAPPER_API void CalPhysique_Update(struct CalPhysique *self);
545  CAL3D_WRAPPER_API struct CalPhysique *CalPhysiqueDualQuat_New(struct CalModel* pModel);
546 
547 //****************************************************************************//
548 // CalPlatform wrapper functions declaration //
549 //****************************************************************************//
550 
551 //****************************************************************************//
552 // CalQuaternion wrapper functions declaration //
553 //****************************************************************************//
554 
555  CAL3D_WRAPPER_API void CalQuaternion_Blend(struct CalQuaternion *self, float d, const struct CalQuaternion *pQ);
556  CAL3D_WRAPPER_API void CalQuaternion_Clear(struct CalQuaternion *self);
557  CAL3D_WRAPPER_API void CalQuaternion_Conjugate(struct CalQuaternion *self);
558  CAL3D_WRAPPER_API void CalQuaternion_Invert(struct CalQuaternion *self);
559  CAL3D_WRAPPER_API void CalQuaternion_Delete(struct CalQuaternion *self);
560  CAL3D_WRAPPER_API void CalQuaternion_Equal(struct CalQuaternion *self, const struct CalQuaternion *pQ);
561  CAL3D_WRAPPER_API float *CalQuaternion_Get(struct CalQuaternion *self);
562  CAL3D_WRAPPER_API void CalQuaternion_Multiply(struct CalQuaternion *self, const struct CalQuaternion *pQ);
563  CAL3D_WRAPPER_API void CalQuaternion_MultiplyVector(struct CalQuaternion *self, const struct CalVector *pV);
564  CAL3D_WRAPPER_API struct CalQuaternion *CalQuaternion_New();
565  CAL3D_WRAPPER_API void CalQuaternion_Op_Multiply(struct CalQuaternion *pResult, const struct CalQuaternion *pQ, const struct CalQuaternion *pR);
566  CAL3D_WRAPPER_API void CalQuaternion_Set(struct CalQuaternion *self, float qx, float qy, float qz, float qw);
567 
568 //****************************************************************************//
569 // CalRenderer wrapper functions declaration //
570 //****************************************************************************//
571 
572  CAL3D_WRAPPER_API enum CalBoolean CalRenderer_BeginRendering(struct CalRenderer *self);
573  CAL3D_WRAPPER_API void CalRenderer_Delete(struct CalRenderer *self);
574  CAL3D_WRAPPER_API void CalRenderer_EndRendering(struct CalRenderer *self);
575  CAL3D_WRAPPER_API void CalRenderer_GetAmbientColor(struct CalRenderer *self, unsigned char *pColorBuffer);
576  CAL3D_WRAPPER_API void CalRenderer_GetDiffuseColor(struct CalRenderer *self, unsigned char *pColorBuffer);
577  CAL3D_WRAPPER_API int CalRenderer_GetFaceCount(struct CalRenderer *self);
578  CAL3D_WRAPPER_API int CalRenderer_GetFaces(struct CalRenderer *self, CalIndex *pFaceBuffer);
579  CAL3D_WRAPPER_API int CalRenderer_GetMapCount(struct CalRenderer *self);
580  CAL3D_WRAPPER_API CalUserData CalRenderer_GetMapUserData(struct CalRenderer *self, int mapId);
581  CAL3D_WRAPPER_API int CalRenderer_GetMeshCount(struct CalRenderer *self);
582  CAL3D_WRAPPER_API int CalRenderer_GetNormals(struct CalRenderer *self, float *pNormalBuffer);
583  CAL3D_WRAPPER_API float CalRenderer_GetShininess(struct CalRenderer *self);
584  CAL3D_WRAPPER_API void CalRenderer_GetSpecularColor(struct CalRenderer *self, unsigned char *pColorBuffer);
585  CAL3D_WRAPPER_API int CalRenderer_GetSubmeshCount(struct CalRenderer *self, int meshId);
586  CAL3D_WRAPPER_API int CalRenderer_GetTextureCoordinates(struct CalRenderer *self, int mapId, float *pTextureCoordinateBuffer);
587  CAL3D_WRAPPER_API int CalRenderer_GetVertexCount(struct CalRenderer *self);
588  CAL3D_WRAPPER_API int CalRenderer_GetVertices(struct CalRenderer *self, float *pVertexBuffer);
589  CAL3D_WRAPPER_API int CalRenderer_GetVerticesAndNormals(struct CalRenderer *self, float *pVertexBuffer);
590  CAL3D_WRAPPER_API int CalRenderer_GetVerticesNormalsAndTexCoords(struct CalRenderer *self, float *pVertexBuffer, int NumTexCoords);
591  CAL3D_WRAPPER_API int CalRenderer_GetTangentSpaces(struct CalRenderer *self, int mapId, float *pTangentSpaceBuffer);
592  CAL3D_WRAPPER_API enum CalBoolean CalRenderer_IsTangentsEnabled(struct CalRenderer *self, int mapId);
593  CAL3D_WRAPPER_API struct CalRenderer *CalRenderer_New(struct CalModel* pModel);
594  CAL3D_WRAPPER_API enum CalBoolean CalRenderer_SelectMeshSubmesh(struct CalRenderer *self, int meshId, int submeshId);
595 
596 //****************************************************************************//
597 // CalSaver wrapper functions declaration //
598 //****************************************************************************//
599 
600  CAL3D_WRAPPER_API void CalSaver_Delete(struct CalSaver *self);
601  CAL3D_WRAPPER_API struct CalSaver *CalSaver_New();
602  CAL3D_WRAPPER_API enum CalBoolean CalSaver_SaveCoreAnimation(struct CalSaver *self, const char *strFilename, struct CalCoreAnimation *pCoreAnimation);
603  CAL3D_WRAPPER_API enum CalBoolean CalSaver_SaveCoreMaterial(struct CalSaver *self, const char *strFilename, struct CalCoreMaterial *pCoreMaterial);
604  CAL3D_WRAPPER_API enum CalBoolean CalSaver_SaveCoreMesh(struct CalSaver *self, const char *strFilename, struct CalCoreMesh *pCoreMesh);
605  CAL3D_WRAPPER_API enum CalBoolean CalSaver_SaveCoreSkeleton(struct CalSaver *self, const char *strFilename, struct CalCoreSkeleton *pCoreSkeleton);
606 
607 //****************************************************************************//
608 // CalSkeleton wrapper functions declaration //
609 //****************************************************************************//
610 
611  CAL3D_WRAPPER_API void CalSkeleton_CalculateState(struct CalSkeleton *self);
612  CAL3D_WRAPPER_API void CalSkeleton_ClearState(struct CalSkeleton *self);
613  CAL3D_WRAPPER_API void CalSkeleton_Delete(struct CalSkeleton *self);
614  CAL3D_WRAPPER_API struct CalBone *CalSkeleton_GetBone(struct CalSkeleton *self, int boneId);
615  CAL3D_WRAPPER_API const struct CalBone *CalSkeleton_GetBoneConst(const struct CalSkeleton *self, int boneId);
616  CAL3D_WRAPPER_API int CalSkeleton_GetBoneCount(const struct CalSkeleton *self);
617  CAL3D_WRAPPER_API struct CalCoreSkeleton *CalSkeleton_GetCoreSkeleton(struct CalSkeleton *self);
618  CAL3D_WRAPPER_API const struct CalCoreSkeleton *CalSkeleton_GetCoreSkeletonConst(const struct CalSkeleton *self);
619 // CAL3D_WRAPPER_API std::vector<CalBone *>& CalSkeleton_GetVectorBone(struct CalSkeleton *self);
620  CAL3D_WRAPPER_API void CalSkeleton_LockState(struct CalSkeleton *self);
621  CAL3D_WRAPPER_API struct CalSkeleton *CalSkeleton_New(struct CalCoreSkeleton* pCoreSkeleton);
622  CAL3D_WRAPPER_API void CalSkeleton_GetBoneBoundingBox(struct CalSkeleton *self, float *min, float *max);
623  CAL3D_WRAPPER_API void CalSkeleton_CalculateBoundingBoxes(struct CalSkeleton *self);
624 
625  // DEBUG-CODE
626  CAL3D_WRAPPER_API int CalSkeleton_GetBonePoints(struct CalSkeleton *self, float *pPoints);
627  CAL3D_WRAPPER_API int CalSkeleton_GetBonePointsStatic(struct CalSkeleton *self, float *pPoints);
628  CAL3D_WRAPPER_API int CalSkeleton_GetBoneLines(struct CalSkeleton *self, float *pLines);
629  CAL3D_WRAPPER_API int CalSkeleton_GetBoneLinesStatic(struct CalSkeleton *self, float *pLines);
630 
631 //****************************************************************************//
632 // CalSpringSystem wrapper functions declaration //
633 //****************************************************************************//
634 
635  CAL3D_WRAPPER_API void CalSpringSystem_CalculateForces(struct CalSpringSystem *self, struct CalSubmesh *pSubmesh, float deltaTime);
636  CAL3D_WRAPPER_API void CalSpringSystem_CalculateVertices(struct CalSpringSystem *self, struct CalSubmesh *pSubmesh, float deltaTime);
637  CAL3D_WRAPPER_API void CalSpringSystem_Delete(struct CalSpringSystem *self);
638  CAL3D_WRAPPER_API struct CalSpringSystem *CalSpringSystem_New(struct CalModel *pModel);
639  CAL3D_WRAPPER_API void CalSpringSystem_Update(struct CalSpringSystem *self, float deltaTime);
640  CAL3D_WRAPPER_API const struct CalVector *CalSpringSystem_GetGravityVector(const struct CalSpringSystem *self);
641  CAL3D_WRAPPER_API const struct CalVector *CalSpringSystem_GetForceVector(const struct CalSpringSystem *self);
642  CAL3D_WRAPPER_API void CalSpringSystem_SetGravityVector(struct CalSpringSystem *self, struct CalVector* grav);
643  CAL3D_WRAPPER_API void CalSpringSystem_SetForceVector(struct CalSpringSystem *self, struct CalVector* force);
644  CAL3D_WRAPPER_API void CalSpringSystem_ResetPositions(struct CalSpringSystem *self);
645 
646 //****************************************************************************//
647 // CalSubmesh wrapper functions declaration //
648 //****************************************************************************//
649 
650  CAL3D_WRAPPER_API void CalSubmesh_Delete(struct CalSubmesh *self);
651  CAL3D_WRAPPER_API struct CalCoreSubmesh *CalSubmesh_GetCoreSubmesh(struct CalSubmesh *self);
652  CAL3D_WRAPPER_API int CalSubmesh_GetCoreMaterialId(struct CalSubmesh *self);
653  CAL3D_WRAPPER_API int CalSubmesh_GetFaceCount(struct CalSubmesh *self);
654  CAL3D_WRAPPER_API int CalSubmesh_GetFaces(struct CalSubmesh *self, CalIndex *pFaceBuffer);
655 
656 // CAL3D_WRAPPER_API std::vector<CalVector>& CalSubmesh_GetVectorNormal(struct CalSubmesh *self);
657 // CAL3D_WRAPPER_API std::vector<CalSubmesh::PhysicalProperty>& CalSubmesh_GetVectorPhysicalProperty(struct CalSubmesh *self);
658 // CAL3D_WRAPPER_API std::vector<CalVector>& CalSubmesh_GetVectorVertex(struct CalSubmesh *self);
659  CAL3D_WRAPPER_API int CalSubmesh_GetVertexCount(struct CalSubmesh *self);
660  CAL3D_WRAPPER_API enum CalBoolean CalSubmesh_HasInternalData(struct CalSubmesh *self);
661  CAL3D_WRAPPER_API struct CalSubmesh *CalSubmesh_New(struct CalCoreSubmesh* coreSubmesh);
662  CAL3D_WRAPPER_API void CalSubmesh_SetCoreMaterialId(struct CalSubmesh *self, int coreMaterialId);
663  CAL3D_WRAPPER_API void CalSubmesh_SetLodLevel(struct CalSubmesh *self, float lodLevel);
664 
665 //****************************************************************************//
666 // CalVector wrapper functions declaration //
667 //****************************************************************************//
668 
669  CAL3D_WRAPPER_API void CalVector_Add(struct CalVector *self, struct CalVector *pV);
670  CAL3D_WRAPPER_API void CalVector_Blend(struct CalVector *self, float d, struct CalVector *pV);
671  CAL3D_WRAPPER_API void CalVector_Clear(struct CalVector *self);
672  CAL3D_WRAPPER_API void CalVector_Delete(struct CalVector *self);
673  CAL3D_WRAPPER_API void CalVector_Equal(struct CalVector *self, struct CalVector *pV);
674  CAL3D_WRAPPER_API void CalVector_InverseScale(struct CalVector *self, float d);
675  CAL3D_WRAPPER_API float *CalVector_Get(struct CalVector *self);
676  CAL3D_WRAPPER_API float CalVector_Length(struct CalVector *self);
677  CAL3D_WRAPPER_API struct CalVector *CalVector_New();
678  CAL3D_WRAPPER_API float CalVector_Normalize(struct CalVector *self);
679  CAL3D_WRAPPER_API void CalVector_Op_Add(struct CalVector *pResult, struct CalVector *pV, struct CalVector *pU);
680  CAL3D_WRAPPER_API void CalVector_Op_Subtract(struct CalVector *pResult, struct CalVector *pV, struct CalVector *pU);
681  CAL3D_WRAPPER_API void CalVector_CalVector_Op_Scale(struct CalVector *pResult, struct CalVector *pV, float d);
682  CAL3D_WRAPPER_API void CalVector_CalVector_Op_InverseScale(struct CalVector *pResult, struct CalVector *pV, float d);
683  CAL3D_WRAPPER_API float CalVector_Op_Scalar(struct CalVector *pV, struct CalVector *pU);
684  CAL3D_WRAPPER_API void CalVector_Op_Cross(struct CalVector *pResult, struct CalVector *pV, struct CalVector *pU);
685  CAL3D_WRAPPER_API void CalVector_Scale(struct CalVector *self, float d);
686  CAL3D_WRAPPER_API void CalVector_Set(struct CalVector *self, float vx, float vy, float vz);
687  CAL3D_WRAPPER_API void CalVector_Subtract(struct CalVector *self, struct CalVector *pV);
688  CAL3D_WRAPPER_API void CalVector_Transform(struct CalVector *self, struct CalQuaternion *pQ);
689 
690 #ifdef __cplusplus
691 }
692 #endif
693 
694 #endif
695 
696 //****************************************************************************//
Definition: coremodel.h:25
Definition: mesh.h:23
Definition: mixer.h:195
Definition: animation_cycle.h:22
Definition: corematerial.h:22
Definition: coreanimation.h:23
Definition: submesh.h:29
Definition: corebone.h:34
Definition: coresubmorphtarget.h:103
Definition: physique.h:22
Definition: coreskeleton.h:24
Definition: morphtargetmixer.h:23
Definition: coremesh.h:23
The matrix class.
Definition: matrix.h:34
Definition: saver.h:58
Definition: animation_action.h:22
The vector class.
Definition: vector.h:36
Definition: coresubmesh.h:31
Definition: animation.h:21
The platform class.
Definition: platform.h:102
Definition: skeleton.h:20
The spring system class.
Definition: springsystem.h:36
Definition: renderer.h:22
Definition: bone.h:28
Definition: coretrack.h:26
The core keyframe class.
Definition: corekeyframe.h:31
Definition: model.h:30
The quaternion class.
Definition: quaternion.h:35
The loader class.
Definition: loader.h:67

Generated by The Cal3D Team with Doxygen 1.8.14