- 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
58struct CalAnimation;
61struct CalBone;
62struct CalCoreAnimation;
63struct CalCoreMorphAnimation;
64struct CalCoreBone;
65struct CalCoreKeyframe;
66struct CalCoreMaterial;
67struct CalCoreMesh;
68struct CalCoreModel;
69struct CalCoreSkeleton;
70struct CalCoreSubmesh;
71struct CalCoreTrack;
72struct CalLoader;
73struct CalMatrix;
74struct CalMesh;
75struct CalMixer;
77struct CalModel;
78struct CalPhysique;
79struct CalPlatform;
80struct CalQuaternion;
81struct CalRenderer;
82struct CalSaver;
83struct CalSkeleton;
84struct CalSpringSystem;
85struct CalSubmesh;
86struct CalVector;
88
89#ifndef __cplusplus
90typedef int CalIndex;
91#endif
92
93#endif
94
95
96
97typedef void *CalUserData;
98
99typedef 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
108enum CalBoolean
109{
110 False = 0,
111 True = 1
112};
113
114//****************************************************************************//
115// "C" wrapper functions declaration //
116//****************************************************************************//
117
118#ifdef __cplusplus
119extern "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);
393CAL3D_WRAPPER_API enum CalBoolean CalCoreSubmesh_IsTangentsEnabled(struct CalCoreSubmesh *self, int mapId);
394CAL3D_WRAPPER_API enum CalBoolean CalCoreSubmesh_EnableTangents(struct CalCoreSubmesh *self, int mapId, enum CalBoolean enabled);
395CAL3D_WRAPPER_API int CalCoreSubmesh_AddSubMorphTarget( CalCoreSubmesh *self, CalCoreSubMorphTargetDiffMap* inTarget );
396
397//****************************************************************************//
398// CalCoreSubMorphTargetDiffMap wrapper functions declaration //
399//****************************************************************************//
400CAL3D_WRAPPER_API CalCoreSubMorphTargetDiffMap* CalCoreSubMorphTargetDiffMap_New();
401CAL3D_WRAPPER_API CalCoreSubMorphTargetDiffMap* CalCoreSubMorphTargetDiffMap_Clone(
402 const CalCoreSubMorphTargetDiffMap* inOther );
403CAL3D_WRAPPER_API void CalCoreSubMorphTargetDiffMap_Delete( CalCoreSubMorphTargetDiffMap* inSelf );
404CAL3D_WRAPPER_API bool CalCoreSubMorphTargetDiffMap_Reserve( CalCoreSubMorphTargetDiffMap* inSelf,
405 int inNumDifferences );
406CAL3D_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 animation_action.h:23
Definition animation_cycle.h:23
Definition animation.h:22
Definition bone.h:29
Definition coreanimation.h:24
Definition corebone.h:35
The core keyframe class.
Definition corekeyframe.h:32
Definition corematerial.h:23
Definition coremesh.h:24
Definition coremodel.h:26
Definition coreskeleton.h:25
Definition coresubmorphtarget.h:104
Definition coresubmesh.h:32
Definition coretrack.h:27
The loader class.
Definition loader.h:68
The matrix class.
Definition matrix.h:35
Definition mesh.h:24
Definition mixer.h:196
Definition model.h:31
Definition morphtargetmixer.h:24
Definition physique.h:23
The platform class.
Definition platform.h:103
The quaternion class.
Definition quaternion.h:36
Definition renderer.h:23
Definition saver.h:59
Definition skeleton.h:21
The spring system class.
Definition springsystem.h:37
Definition submesh.h:30
The vector class.
Definition vector.h:37

Generated by The Cal3D Team with Doxygen 1.10.0