- 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;
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;
87
88#ifndef __cplusplus
89typedef int CalIndex;
90#endif
91
92#endif
93
94
95
96typedef void *CalUserData;
97
98//****************************************************************************//
99// Substitute for the C++ 'bool' type //
100//****************************************************************************//
101
102#undef True
103#undef False
104
105enum Boolean
106{
107 False = 0,
108 True = 1
109};
110
111//****************************************************************************//
112// "C" wrapper functions declaration //
113//****************************************************************************//
114
115#ifdef __cplusplus
116extern "C"
117{
118#endif
119
120//****************************************************************************//
121// CalAnimation wrapper functions declaration //
122//****************************************************************************//
123
124 CAL3D_WRAPPER_API enum CalAnimationType
125 {
126 ANIMATION_TYPE_NONE = 0,
127 ANIMATION_TYPE_CYCLE,
128 ANIMATION_TYPE_POSE,
129 ANIMATION_TYPE_ACTION
130 };
131
132 CAL3D_WRAPPER_API enum CalAnimationState
133 {
134 ANIMATION_STATE_NONE = 0,
135 ANIMATION_STATE_SYNC,
136 ANIMATION_STATE_ASYNC,
137 ANIMATION_STATE_IN,
138 ANIMATION_STATE_STEADY,
139 ANIMATION_STATE_OUT
140 };
141
142 CAL3D_WRAPPER_API void CalAnimation_Delete(struct CalAnimation *self);
143 CAL3D_WRAPPER_API struct CalCoreAnimation *CalAnimation_GetCoreAnimation(struct CalAnimation *self);
144 CAL3D_WRAPPER_API enum CalAnimationState CalAnimation_GetState(struct CalAnimation *self);
145 CAL3D_WRAPPER_API float CalAnimation_GetTime(struct CalAnimation *self);
146 CAL3D_WRAPPER_API enum CalAnimationType CalAnimation_GetType(struct CalAnimation *self);
147 CAL3D_WRAPPER_API float CalAnimation_GetWeight(struct CalAnimation *self);
148
149//****************************************************************************//
150// CalAnimationAction wrapper functions declaration //
151//****************************************************************************//
152
153 CAL3D_WRAPPER_API void CalAnimationAction_Delete(struct CalAnimationAction *self);
154 CAL3D_WRAPPER_API enum Boolean CalAnimationAction_Execute(struct CalAnimationAction *self, float delayIn, float delayOut);
155 CAL3D_WRAPPER_API struct CalAnimationAction *CalAnimationAction_New(struct CalCoreAnimation *pCoreAnimation);
156 CAL3D_WRAPPER_API enum Boolean CalAnimationAction_Update(struct CalAnimationAction *self, float deltaTime);
157 CAL3D_WRAPPER_API void CalCoreAnimation_Scale(struct CalCoreAnimation *self, float factor);
158
159//****************************************************************************//
160// CalAnimationCycle wrapper functions declaration //
161//****************************************************************************//
162
163 CAL3D_WRAPPER_API enum Boolean CalAnimationCycle_Blend(struct CalAnimationCycle *self, float weight, float delay);
164 CAL3D_WRAPPER_API void CalAnimationCycle_Delete(struct CalAnimationCycle *self);
165 CAL3D_WRAPPER_API struct CalAnimationCycle *CalAnimationCycle_New(struct CalCoreAnimation *pCoreAnimation);
166 CAL3D_WRAPPER_API void CalAnimationCycle_SetAsync(struct CalAnimationCycle *self, float time, float duration);
167 CAL3D_WRAPPER_API enum Boolean CalAnimationCycle_Update(struct CalAnimationCycle *self, float deltaTime);
168
169//****************************************************************************//
170// CalBone wrapper functions declaration //
171//****************************************************************************//
172
173 CAL3D_WRAPPER_API void CalBone_BlendState(struct CalBone *self, float weight, struct CalVector *pTranslation, struct CalQuaternion *pRotation);
174 CAL3D_WRAPPER_API void CalBone_CalculateState(struct CalBone *self);
175 CAL3D_WRAPPER_API void CalBone_ClearState(struct CalBone *self);
176 CAL3D_WRAPPER_API void CalBone_Delete(struct CalBone *self);
177 CAL3D_WRAPPER_API struct CalCoreBone *CalBone_GetCoreBone(struct CalBone *self);
178 CAL3D_WRAPPER_API struct CalQuaternion *CalBone_GetRotation(struct CalBone *self);
179 CAL3D_WRAPPER_API struct CalQuaternion *CalBone_GetRotationAbsolute(struct CalBone *self);
180 CAL3D_WRAPPER_API struct CalQuaternion *CalBone_GetRotationBoneSpace(struct CalBone *self);
181 CAL3D_WRAPPER_API struct CalVector *CalBone_GetTranslation(struct CalBone *self);
182 CAL3D_WRAPPER_API struct CalVector *CalBone_GetTranslationAbsolute(struct CalBone *self);
183 CAL3D_WRAPPER_API struct CalVector *CalBone_GetTranslationBoneSpace(struct CalBone *self);
184 CAL3D_WRAPPER_API void CalBone_LockState(struct CalBone *self);
185 CAL3D_WRAPPER_API struct CalBone *CalBone_New(struct CalCoreBone* coreBone);
186 CAL3D_WRAPPER_API void CalBone_SetSkeleton(struct CalBone *self, struct CalSkeleton *pSkeleton);
187 CAL3D_WRAPPER_API void CalBone_SetTranslation(struct CalBone *self, struct CalVector *pTranslation);
188 CAL3D_WRAPPER_API void CalBone_SetRotation(struct CalBone *self, struct CalQuaternion *pRotation);
189 CAL3D_WRAPPER_API void CalBone_SetCoreState(struct CalBone *self);
190 CAL3D_WRAPPER_API void CalBone_SetCoreStateRecursive(struct CalBone *self);
191
192
193//****************************************************************************//
194// CalCoreAnimation wrapper functions declaration //
195//****************************************************************************//
196
197 CAL3D_WRAPPER_API struct CalCoreAnimation *CalCoreAnimation_New();
198 CAL3D_WRAPPER_API void CalCoreAnimation_Delete(struct CalCoreAnimation* self);
199
200 CAL3D_WRAPPER_API float CalCoreAnimation_GetDuration(struct CalCoreAnimation *self);
201 CAL3D_WRAPPER_API void CalCoreAnimation_SetDuration(struct CalCoreAnimation *self, float duration);
202 CAL3D_WRAPPER_API void CalCoreAnimation_Scale(struct CalCoreAnimation *self, float factor);
203
204//****************************************************************************//
205// CalCoreMorphAnimation wrapper functions declaration //
206//****************************************************************************//
207
208 CAL3D_WRAPPER_API struct CalCoreMorphAnimation *CalCoreMorphAnimation_New();
209 CAL3D_WRAPPER_API void CalCoreMorphAnimation_Delete(struct CalCoreMorphAnimation* self);
210 CAL3D_WRAPPER_API enum Boolean CalCoreMorphAnimation_AddMorphTarget(struct CalCoreMorphAnimation* self, int meshID, int morphID);
211
212//****************************************************************************//
213// CalCoreBone wrapper functions declaration //
214//****************************************************************************//
215
216 CAL3D_WRAPPER_API enum Boolean CalCoreBone_AddChildId(struct CalCoreBone *self, int childId);
217 CAL3D_WRAPPER_API void CalCoreBone_CalculateState(struct CalCoreBone *self);
218 CAL3D_WRAPPER_API void CalCoreBone_Delete(struct CalCoreBone *self);
219// CAL3D_WRAPPER_API std::list<int>& CalCoreBone_GetListChildId(struct CalCoreBone *self);
220 CAL3D_WRAPPER_API char *CalCoreBone_GetName(struct CalCoreBone *self);
221 CAL3D_WRAPPER_API int CalCoreBone_GetParentId(struct CalCoreBone *self);
222 CAL3D_WRAPPER_API struct CalQuaternion *CalCoreBone_GetRotation(struct CalCoreBone *self);
223 CAL3D_WRAPPER_API struct CalQuaternion *CalCoreBone_GetRotationAbsolute(struct CalCoreBone *self);
224 CAL3D_WRAPPER_API struct CalQuaternion *CalCoreBone_GetRotationBoneSpace(struct CalCoreBone *self);
225 CAL3D_WRAPPER_API struct CalVector *CalCoreBone_GetTranslation(struct CalCoreBone *self);
226 CAL3D_WRAPPER_API struct CalVector *CalCoreBone_GetTranslationAbsolute(struct CalCoreBone *self);
227 CAL3D_WRAPPER_API struct CalVector *CalCoreBone_GetTranslationBoneSpace(struct CalCoreBone *self);
228 CAL3D_WRAPPER_API CalUserData CalCoreBone_GetUserData(struct CalCoreBone *self);
229 CAL3D_WRAPPER_API struct CalCoreBone *CalCoreBone_New(const char* name);
230 CAL3D_WRAPPER_API void CalCoreBone_SetCoreSkeleton(struct CalCoreBone *self, struct CalCoreSkeleton *pCoreSkeleton);
231 CAL3D_WRAPPER_API void CalCoreBone_SetParentId(struct CalCoreBone *self, int parentId);
232 CAL3D_WRAPPER_API void CalCoreBone_SetRotation(struct CalCoreBone *self, struct CalQuaternion *pRotation);
233 CAL3D_WRAPPER_API void CalCoreBone_SetRotationBoneSpace(struct CalCoreBone *self, struct CalQuaternion *pRotation);
234 CAL3D_WRAPPER_API void CalCoreBone_SetTranslation(struct CalCoreBone *self, struct CalVector *pTranslation);
235 CAL3D_WRAPPER_API void CalCoreBone_SetTranslationBoneSpace(struct CalCoreBone *self, struct CalVector *pTranslation);
236 CAL3D_WRAPPER_API void CalCoreBone_SetUserData(struct CalCoreBone *self, CalUserData userData);
237
238//****************************************************************************//
239// CalCoreMaterial wrapper functions declaration //
240//****************************************************************************//
241
242 CAL3D_WRAPPER_API struct CalCoreMaterial *CalCoreMaterial_New();
243 CAL3D_WRAPPER_API void CalCoreMaterial_Delete(struct CalCoreMaterial *self);
244
245// CAL3D_WRAPPER_API CalCoreMaterial::Color *CalCoreMaterial_GetAmbientColor(struct CalCoreMaterial *self);
246// CAL3D_WRAPPER_API CalCoreMaterial::Color *CalCoreMaterial_GetDiffuseColor(struct CalCoreMaterial *self);
247 CAL3D_WRAPPER_API int CalCoreMaterial_GetMapCount(struct CalCoreMaterial *self);
248 CAL3D_WRAPPER_API char *CalCoreMaterial_GetMapFilename(struct CalCoreMaterial *self, int mapId);
249 CAL3D_WRAPPER_API CalUserData CalCoreMaterial_GetMapUserData(struct CalCoreMaterial *self, int mapId);
250 CAL3D_WRAPPER_API float CalCoreMaterial_GetShininess(struct CalCoreMaterial *self);
251// CAL3D_WRAPPER_API CalCoreMaterial::Color *CalCoreMaterial_GetSpecularColor(struct CalCoreMaterial *self);
252 CAL3D_WRAPPER_API CalUserData CalCoreMaterial_GetUserData(struct CalCoreMaterial *self);
253// CAL3D_WRAPPER_API std::vector<Map>& CalCoreMaterial_GetVectorMap(struct CalCoreMaterial *self);
254 CAL3D_WRAPPER_API enum Boolean CalCoreMaterial_Reserve(struct CalCoreMaterial *self, int mapCount);
255// CAL3D_WRAPPER_API void CalCoreMaterial_SetAmbientColor(struct CalCoreMaterial *self, struct CalCoreMaterial::Color *pAmbientColor);
256// CAL3D_WRAPPER_API void CalCoreMaterial_SetDiffuseColor(struct CalCoreMaterial *self, struct CalCoreMaterial::Color *pDiffuseColor);
257// CAL3D_WRAPPER_API enum Boolean CalCoreMaterial_SetMap(struct CalCoreMaterial *self, int mapId, struct CalCoreMaterial::Map *pMap);
258 CAL3D_WRAPPER_API enum Boolean CalCoreMaterial_SetMapUserData(struct CalCoreMaterial *self, int mapId, CalUserData userData);
259 CAL3D_WRAPPER_API void CalCoreMaterial_SetShininess(struct CalCoreMaterial *self, float shininess);
260// CAL3D_WRAPPER_API void CalCoreMaterial_SetSpecularColor(struct CalCoreMaterial *self, struct CalCoreMaterial::Color *pSpecularColor);
261 CAL3D_WRAPPER_API void CalCoreMaterial_SetUserData(struct CalCoreMaterial *self, CalUserData userData);
262
263//****************************************************************************//
264// CalCoreMesh wrapper functions declaration //
265//****************************************************************************//
266
267 CAL3D_WRAPPER_API struct CalCoreMesh *CalCoreMesh_New();
268 CAL3D_WRAPPER_API void CalCoreMesh_Delete(struct CalCoreMesh *self);
269
270 CAL3D_WRAPPER_API int CalCoreMesh_AddCoreSubmesh(struct CalCoreMesh *self, struct CalCoreSubmesh *pCoreSubmesh);
271 CAL3D_WRAPPER_API struct CalCoreSubmesh *CalCoreMesh_GetCoreSubmesh(struct CalCoreMesh *self, int id);
272 CAL3D_WRAPPER_API int CalCoreMesh_GetCoreSubmeshCount(struct CalCoreMesh *self);
273// CAL3D_WRAPPER_API std::vector<CalCoreSubmesh *>& CalCoreMesh_GetVectorCoreSubmesh(struct CalCoreMesh *self);
274 CAL3D_WRAPPER_API void CalCoreMesh_Scale(struct CalCoreMesh *self,float factor);
275 CAL3D_WRAPPER_API int CalCoreMesh_AddAsMorphTarget(struct CalCoreMesh *self, struct CalCoreMesh *target);
276
277//****************************************************************************//
278// CalCoreModel wrapper functions declaration //
279//****************************************************************************//
280
281 CAL3D_WRAPPER_API int CalCoreModel_AddCoreAnimation(struct CalCoreModel *self, struct CalCoreAnimation *pCoreAnimation);
282 CAL3D_WRAPPER_API int CalCoreModel_AddCoreMorphAnimation(struct CalCoreModel *self, struct CalCoreMorphAnimation *pCoreAnimation);
283 CAL3D_WRAPPER_API int CalCoreModel_AddCoreMaterial(struct CalCoreModel *self, struct CalCoreMaterial *pCoreMaterial);
284 CAL3D_WRAPPER_API int CalCoreModel_AddCoreMesh(struct CalCoreModel *self, struct CalCoreMesh *pCoreMesh);
285 CAL3D_WRAPPER_API enum Boolean CalCoreModel_CreateCoreMaterialThread(struct CalCoreModel *self, int coreMaterialThreadId);
286 CAL3D_WRAPPER_API void CalCoreModel_Delete(struct CalCoreModel *self);
287 CAL3D_WRAPPER_API struct CalCoreAnimation *CalCoreModel_GetCoreAnimation(struct CalCoreModel *self, int coreAnimationId);
288 CAL3D_WRAPPER_API int CalCoreModel_GetCoreAnimationCount(struct CalCoreModel *self);
289 CAL3D_WRAPPER_API struct CalCoreMaterial *CalCoreModel_GetCoreMaterial(struct CalCoreModel *self, int coreMaterialId);
290 CAL3D_WRAPPER_API int CalCoreModel_GetCoreMaterialCount(struct CalCoreModel *self);
291 CAL3D_WRAPPER_API int CalCoreModel_GetCoreMaterialId(struct CalCoreModel *self, int coreMaterialThreadId, int coreMaterialSetId);
292 CAL3D_WRAPPER_API struct CalCoreMesh *CalCoreModel_GetCoreMesh(struct CalCoreModel *self, int coreMeshId);
293 CAL3D_WRAPPER_API int CalCoreModel_GetCoreMeshCount(struct CalCoreModel *self);
294 CAL3D_WRAPPER_API struct CalCoreSkeleton *CalCoreModel_GetCoreSkeleton(struct CalCoreModel *self);
295 CAL3D_WRAPPER_API CalUserData CalCoreModel_GetUserData(struct CalCoreModel *self);
296 CAL3D_WRAPPER_API int CalCoreModel_GetCoreMorphAnimationCount(struct CalCoreModel *self);
297 CAL3D_WRAPPER_API int CalCoreModel_LoadCoreAnimation(struct CalCoreModel *self, char *strFilename);
298 CAL3D_WRAPPER_API int CalCoreModel_LoadCoreMaterial(struct CalCoreModel *self, char *strFilename);
299 CAL3D_WRAPPER_API int CalCoreModel_LoadCoreMesh(struct CalCoreModel *self, char *strFilename);
300 CAL3D_WRAPPER_API enum Boolean CalCoreModel_LoadCoreSkeleton(struct CalCoreModel *self, char *strFilename);
301 CAL3D_WRAPPER_API struct CalCoreModel *CalCoreModel_New(const char* name);
302 CAL3D_WRAPPER_API enum Boolean CalCoreModel_SaveCoreAnimation(struct CalCoreModel *self, char *strFilename, int coreAnimtionId);
303 CAL3D_WRAPPER_API enum Boolean CalCoreModel_SaveCoreMaterial(struct CalCoreModel *self, char *strFilename, int coreMaterialId);
304 CAL3D_WRAPPER_API enum Boolean CalCoreModel_SaveCoreMesh(struct CalCoreModel *self, char *strFilename, int coreMeshId);
305 CAL3D_WRAPPER_API enum Boolean CalCoreModel_SaveCoreSkeleton(struct CalCoreModel *self, char *strFilename);
306 CAL3D_WRAPPER_API enum Boolean CalCoreModel_SetCoreMaterialId(struct CalCoreModel *self, int coreMaterialThreadId, int coreMaterialSetId, int coreMaterialId);
307 CAL3D_WRAPPER_API void CalCoreModel_SetCoreSkeleton(struct CalCoreModel *self, struct CalCoreSkeleton *pCoreSkeleton);
308 CAL3D_WRAPPER_API void CalCoreModel_SetUserData(struct CalCoreModel *self, CalUserData userData);
309
310//****************************************************************************//
311// CalCoreSkeleton wrapper functions declaration //
312//****************************************************************************//
313
314 CAL3D_WRAPPER_API struct CalCoreSkeleton *CalCoreSkeleton_New();
315 CAL3D_WRAPPER_API void CalCoreSkeleton_Delete(struct CalCoreSkeleton* self);
316
317 CAL3D_WRAPPER_API int CalCoreSkeleton_AddCoreBone(struct CalCoreSkeleton *self, struct CalCoreBone *pCoreBone);
318 CAL3D_WRAPPER_API void CalCoreSkeleton_CalculateState(struct CalCoreSkeleton *self);
319// CAL3D_WRAPPER_API void CalCoreSkeleton_Delete(struct CalCoreSkeleton *self);
320 CAL3D_WRAPPER_API struct CalCoreBone *CalCoreSkeleton_GetCoreBone(struct CalCoreSkeleton *self, int coreBoneId);
321 CAL3D_WRAPPER_API int CalCoreSkeleton_GetCoreBoneId(struct CalCoreSkeleton *self, char *strName);
322// CAL3D_WRAPPER_API std::list<int>& CalCoreSkeleton_GetListRootCoreBoneId(struct CalCoreSkeleton *self);
323// CAL3D_WRAPPER_API std::vector<CalCoreBone *>& CalCoreSkeleton_GetVectorCoreBone(struct CalCoreSkeleton *self);
324 CAL3D_WRAPPER_API void CalCoreSkeleton_Scale(struct CalCoreSkeleton *self,float factor);
325 CAL3D_WRAPPER_API void CalSkeleton_GetBoneBoundingBox(struct CalSkeleton *self, float *min, float *max);
326 CAL3D_WRAPPER_API void CalSkeleton_CalculateBoundingBoxes(struct CalSkeleton *self);
327
328//****************************************************************************//
329// CalCoreSubmesh wrapper functions declaration //
330//****************************************************************************//
331
332 CAL3D_WRAPPER_API void CalCoreSubmesh_Delete(struct CalCoreSubmesh *self);
333 CAL3D_WRAPPER_API int CalCoreSubmesh_GetCoreMaterialThreadId(struct CalCoreSubmesh *self);
334 CAL3D_WRAPPER_API int CalCoreSubmesh_GetFaceCount(struct CalCoreSubmesh *self);
335 CAL3D_WRAPPER_API int CalCoreSubmesh_GetLodCount(struct CalCoreSubmesh *self);
336 CAL3D_WRAPPER_API int CalCoreSubmesh_GetSpringCount(struct CalCoreSubmesh *self);
337// CAL3D_WRAPPER_API std::vector<CalCoreSubmesh::Face>& CalCoreSubmesh_GetVectorFace(struct CalCoreSubmesh *self);
338// CAL3D_WRAPPER_API std::vector<CalCoreSubmesh::PhysicalProperty>& CalCoreSubmesh_GetVectorPhysicalProperty(struct CalCoreSubmesh *self);
339// CAL3D_WRAPPER_API std::vector<CalCoreSubmesh::Spring>& CalCoreSubmesh_GetVectorSpring(struct CalCoreSubmesh *self);
340// CAL3D_WRAPPER_API std::vector<std::vector<CalCoreSubmesh::TextureCoordinate> >& CalCoreSubmesh_GetVectorVectorTextureCoordinate(struct CalCoreSubmesh *self);
341// CAL3D_WRAPPER_API std::vector<CalCoreSubmesh::Vertex>& CalCoreSubmesh_GetVectorVertex(struct CalCoreSubmesh *self);
342 CAL3D_WRAPPER_API int CalCoreSubmesh_GetVertexCount(struct CalCoreSubmesh *self);
343 CAL3D_WRAPPER_API struct CalCoreSubmesh *CalCoreSubmesh_New();
344 CAL3D_WRAPPER_API enum Boolean CalCoreSubmesh_Reserve(struct CalCoreSubmesh *self, int vertexCount, int textureCoordinateCount, int faceCount, int springCount);
345 CAL3D_WRAPPER_API void CalCoreSubmesh_SetCoreMaterialThreadId(struct CalCoreSubmesh *self, int coreMaterialThreadId);
346// CAL3D_WRAPPER_API enum Boolean CalCoreSubmesh_SetFace(struct CalCoreSubmesh *self, int faceId, struct CalCoreSubmesh::Face *pFace);
347 CAL3D_WRAPPER_API void CalCoreSubmesh_SetLodCount(struct CalCoreSubmesh *self, int lodCount);
348// CAL3D_WRAPPER_API enum Boolean CalCoreSubmesh_SetPhysicalProperty(struct CalCoreSubmesh *self, int vertexId, struct CalCoreSubmesh::PhysicalProperty *pPhysicalProperty);
349// CAL3D_WRAPPER_API enum Boolean CalCoreSubmesh_SetSpring(struct CalCoreSubmesh *self, int springId, struct CalCoreSubmesh::Spring *pSpring);
350// CAL3D_WRAPPER_API enum Boolean CalCoreSubmesh_SetTextureCoordinate(struct CalCoreSubmesh *self, int vertexId, int textureCoordinateId, struct CalCoreSubmesh::TextureCoordinate *pTextureCoordinate);
351// CAL3D_WRAPPER_API enum Boolean CalCoreSubmesh_SetVertex(struct CalCoreSubmesh *self, int vertexId, struct CalCoreSubmesh::Vertex *pVertex);
352CAL3D_WRAPPER_API enum Boolean CalCoreSubmesh_IsTangentsEnabled(struct CalCoreSubmesh *self, int mapId);
353CAL3D_WRAPPER_API enum Boolean CalCoreSubmesh_EnableTangents(struct CalCoreSubmesh *self, int mapId, enum Boolean enabled);
354
355//****************************************************************************//
356// CalError wrapper functions declaration //
357//****************************************************************************//
358
359 CAL3D_WRAPPER_API enum CalErrorCode
360 {
361 ERROR_CODE_OK = 0,
362 ERROR_CODE_INTERNAL,
363 ERROR_CODE_INVALID_HANDLE,
364 ERROR_CODE_MEMORY_ALLOCATION_FAILED,
365 ERROR_CODE_FILE_NOT_FOUND,
366 ERROR_CODE_INVALID_FILE_FORMAT,
367 ERROR_CODE_FILE_PARSER_FAILED,
368 ERROR_CODE_INDEX_BUILD_FAILED,
369 ERROR_CODE_NO_PARSER_DOCUMENT,
370 ERROR_CODE_INVALID_ANIMATION_DURATION,
371 ERROR_CODE_BONE_NOT_FOUND,
372 ERROR_CODE_INVALID_ATTRIBUTE_VALUE,
373 ERROR_CODE_INVALID_KEYFRAME_COUNT,
374 ERROR_CODE_INVALID_ANIMATION_TYPE,
375 ERROR_CODE_FILE_CREATION_FAILED,
376 ERROR_CODE_FILE_WRITING_FAILED,
377 ERROR_CODE_INCOMPATIBLE_FILE_VERSION,
378 ERROR_CODE_NO_MESH_IN_MODEL,
379 ERROR_CODE_MAX_ERROR_CODE
380 };
381
382 CAL3D_WRAPPER_API enum CalErrorCode CalError_GetLastErrorCode();
383 CAL3D_WRAPPER_API char *CalError_GetLastErrorDescription();
384 CAL3D_WRAPPER_API char *CalError_GetLastErrorFile();
385 CAL3D_WRAPPER_API int CalError_GetLastErrorLine();
386 CAL3D_WRAPPER_API char *CalError_GetLastErrorText();
387 CAL3D_WRAPPER_API void CalError_PrintLastError();
388// CAL3D_WRAPPER_API void CalError_SetLastError(enum CalErrorCode code, char *strFile, int line, char *strText);
389
390//****************************************************************************//
391// CalLoader wrapper functions declaration //
392//****************************************************************************//
393
394 CAL3D_WRAPPER_API struct CalLoader *CalLoader_New();
395 CAL3D_WRAPPER_API void CalLoader_Delete(struct CalLoader *self);
396 CAL3D_WRAPPER_API struct CalCoreAnimation *CalLoader_LoadCoreAnimation(struct CalLoader *self, char *strFilename);
397 CAL3D_WRAPPER_API struct CalCoreMaterial *CalLoader_LoadCoreMaterial(struct CalLoader *self, char *strFilename);
398 CAL3D_WRAPPER_API struct CalCoreMesh *CalLoader_LoadCoreMesh(struct CalLoader *self, char *strFilename);
399 CAL3D_WRAPPER_API struct CalCoreSkeleton *CalLoader_LoadCoreSkeleton(struct CalLoader *self, char *strFilename);
400
401//****************************************************************************//
402// CalMesh wrapper functions declaration //
403//****************************************************************************//
404
405 CAL3D_WRAPPER_API void CalMesh_Delete(struct CalMesh *self);
406 CAL3D_WRAPPER_API struct CalCoreMesh *CalMesh_GetCoreMesh(struct CalMesh *self);
407 CAL3D_WRAPPER_API struct CalSubmesh *CalMesh_GetSubmesh(struct CalMesh *self, int id);
408 CAL3D_WRAPPER_API int CalMesh_GetSubmeshCount(struct CalMesh *self);
409// CAL3D_WRAPPER_API std::vector<CalSubmesh *>& CalMesh_GetVectorSubmesh(struct CalMesh *self);
410 CAL3D_WRAPPER_API struct CalMesh *CalMesh_New(struct CalCoreMesh *pCoreMesh);
411 CAL3D_WRAPPER_API void CalMesh_SetLodLevel(struct CalMesh *self, float lodLevel);
412 CAL3D_WRAPPER_API void CalMesh_SetMaterialSet(struct CalMesh *self, int setId);
413 CAL3D_WRAPPER_API void CalMesh_SetModel(struct CalMesh *self, struct CalModel *pModel);
414
415//****************************************************************************//
416// CalMixer wrapper functions declaration //
417//****************************************************************************//
418
419 CAL3D_WRAPPER_API enum Boolean CalMixer_BlendCycle(struct CalMixer *self, int id, float weight, float delay);
420 CAL3D_WRAPPER_API enum Boolean CalMixer_ClearCycle(struct CalMixer *self, int id, float delay);
421 CAL3D_WRAPPER_API void CalMixer_Delete(struct CalMixer *self);
422 CAL3D_WRAPPER_API enum Boolean CalMixer_ExecuteAction(struct CalMixer *self, int id, float delayIn, float delayOut, enum Boolean autoLock);
423 CAL3D_WRAPPER_API struct CalMixer *CalMixer_New(struct CalModel *pModel);
424 CAL3D_WRAPPER_API void CalMixer_UpdateAnimation(struct CalMixer *self, float deltaTime);
425 CAL3D_WRAPPER_API void CalMixer_UpdateSkeleton(struct CalMixer *self);
426 CAL3D_WRAPPER_API void CalMixer_RemoveAction(struct CalMixer *self,int id);
427
428//****************************************************************************//
429// CalMorphTargetMixer wrapper functions declaration //
430//****************************************************************************//
431
432 CAL3D_WRAPPER_API enum Boolean CalMorphTargetMixer_Blend(struct CalMorphTargetMixer *self, int id, float weight, float delay);
433 CAL3D_WRAPPER_API enum Boolean CalMorphTargetMixer_Clear(struct CalMorphTargetMixer *self, int id, float delay);
434 CAL3D_WRAPPER_API void CalMorphTargetMixer_Delete(struct CalMorphTargetMixer *self);
435 CAL3D_WRAPPER_API struct CalMorphTargetMixer *CalMorphTargetMixer_New(struct CalModel *pModel);
436 CAL3D_WRAPPER_API void CalMorphTargetMixer_Update(struct CalMorphTargetMixer *self, float deltaTime);
437 CAL3D_WRAPPER_API int CalMorphTargetMixer_GetMorphTargetCount(struct CalMorphTargetMixer *self);
438
439//****************************************************************************//
440// CalModel wrapper functions declaration //
441//****************************************************************************//
442
443 CAL3D_WRAPPER_API enum Boolean CalModel_AttachMesh(struct CalModel *self, int coreMeshId);
444 CAL3D_WRAPPER_API void CalModel_Delete(struct CalModel *self);
445 CAL3D_WRAPPER_API enum Boolean CalModel_DetachMesh(struct CalModel *self, int coreMeshId);
446 CAL3D_WRAPPER_API struct CalCoreModel *CalModel_GetCoreModel(struct CalModel *self);
447 CAL3D_WRAPPER_API struct CalMesh *CalModel_GetMesh(struct CalModel *self, int coreMeshId);
448 CAL3D_WRAPPER_API struct CalMixer *CalModel_GetMixer(struct CalModel *self);
449 CAL3D_WRAPPER_API struct CalMorphTargetMixer *CalModel_GetMorphTargetMixer(struct CalModel *self);
450 CAL3D_WRAPPER_API struct CalPhysique *CalModel_GetPhysique(struct CalModel *self);
451 CAL3D_WRAPPER_API struct CalRenderer *CalModel_GetRenderer(struct CalModel *self);
452 CAL3D_WRAPPER_API struct CalSkeleton *CalModel_GetSkeleton(struct CalModel *self);
453 CAL3D_WRAPPER_API struct CalSpringSystem *CalModel_GetSpringSystem(struct CalModel *self);
454 CAL3D_WRAPPER_API CalUserData CalModel_GetUserData(struct CalModel *self);
455// CAL3D_WRAPPER_API std::vector<CalMesh *>& CalModel_GetVectorMesh(struct CalModel *self);
456 CAL3D_WRAPPER_API struct CalModel *CalModel_New(struct CalCoreModel* pCoreModel);
457 CAL3D_WRAPPER_API void CalModel_SetLodLevel(struct CalModel *self, float lodLevel);
458 CAL3D_WRAPPER_API void CalModel_SetMaterialSet(struct CalModel *self, int setId);
459 CAL3D_WRAPPER_API void CalModel_SetUserData(struct CalModel *self, CalUserData userData);
460 CAL3D_WRAPPER_API void CalModel_Update(struct CalModel *self, float deltaTime);
461
462//****************************************************************************//
463// CalPhysique wrapper functions declaration //
464//****************************************************************************//
465
466 CAL3D_WRAPPER_API int CalPhysique_CalculateNormals(struct CalPhysique *self, struct CalSubmesh *pSubmesh, float *pNormalBuffer);
467 CAL3D_WRAPPER_API int CalPhysique_CalculateVertices(struct CalPhysique *self, struct CalSubmesh *pSubmesh, float *pVertexBuffer);
468 CAL3D_WRAPPER_API int CalPhysique_CalculateVerticesAndNormals(struct CalPhysique *self, struct CalSubmesh *pSubmesh, float *pVertexBuffer);
469 CAL3D_WRAPPER_API int CalPhysique_CalculateVerticesNormalsAndTexCoords(struct CalPhysique *self, struct CalSubmesh *pSubmesh, float *pVertexBuffer, int NumTexCoords);
470 CAL3D_WRAPPER_API int CalPhysique_CalculateTangentSpaces(struct CalPhysique *self, struct CalSubmesh *pSubmesh, int mapId, float *pTangentSpaceBuffer);
471 CAL3D_WRAPPER_API void CalPhysique_Delete(struct CalPhysique *self);
472 CAL3D_WRAPPER_API struct CalPhysique *CalPhysique_New(struct CalModel* pModel);
473 CAL3D_WRAPPER_API void CalPhysique_Update(struct CalPhysique *self);
474
475//****************************************************************************//
476// CalPlatform wrapper functions declaration //
477//****************************************************************************//
478
479//****************************************************************************//
480// CalQuaternion wrapper functions declaration //
481//****************************************************************************//
482
483 CAL3D_WRAPPER_API void CalQuaternion_Blend(struct CalQuaternion *self, float d, struct CalQuaternion *pQ);
484 CAL3D_WRAPPER_API void CalQuaternion_Clear(struct CalQuaternion *self);
485 CAL3D_WRAPPER_API void CalQuaternion_Conjugate(struct CalQuaternion *self);
486 CAL3D_WRAPPER_API void CalQuaternion_Delete(struct CalQuaternion *self);
487 CAL3D_WRAPPER_API void CalQuaternion_Equal(struct CalQuaternion *self, struct CalQuaternion *pQ);
488 CAL3D_WRAPPER_API float *CalQuaternion_Get(struct CalQuaternion *self);
489 CAL3D_WRAPPER_API void CalQuaternion_Multiply(struct CalQuaternion *self, struct CalQuaternion *pQ);
490 CAL3D_WRAPPER_API void CalQuaternion_MultiplyVector(struct CalQuaternion *self, struct CalVector *pV);
491 CAL3D_WRAPPER_API struct CalQuaternion *CalQuaternion_New();
492 CAL3D_WRAPPER_API void CalQuaternion_Op_Multiply(struct CalQuaternion *pResult, struct CalQuaternion *pQ, struct CalQuaternion *pR);
493 CAL3D_WRAPPER_API void CalQuaternion_Set(struct CalQuaternion *self, float qx, float qy, float qz, float qw);
494
495//****************************************************************************//
496// CalRenderer wrapper functions declaration //
497//****************************************************************************//
498
499 CAL3D_WRAPPER_API enum Boolean CalRenderer_BeginRendering(struct CalRenderer *self);
500 CAL3D_WRAPPER_API void CalRenderer_Delete(struct CalRenderer *self);
501 CAL3D_WRAPPER_API void CalRenderer_EndRendering(struct CalRenderer *self);
502 CAL3D_WRAPPER_API void CalRenderer_GetAmbientColor(struct CalRenderer *self, unsigned char *pColorBuffer);
503 CAL3D_WRAPPER_API void CalRenderer_GetDiffuseColor(struct CalRenderer *self, unsigned char *pColorBuffer);
504 CAL3D_WRAPPER_API int CalRenderer_GetFaceCount(struct CalRenderer *self);
505 CAL3D_WRAPPER_API int CalRenderer_GetFaces(struct CalRenderer *self, CalIndex *pFaceBuffer);
506 CAL3D_WRAPPER_API int CalRenderer_GetMapCount(struct CalRenderer *self);
507 CAL3D_WRAPPER_API CalUserData CalRenderer_GetMapUserData(struct CalRenderer *self, int mapId);
508 CAL3D_WRAPPER_API int CalRenderer_GetMeshCount(struct CalRenderer *self);
509 CAL3D_WRAPPER_API int CalRenderer_GetNormals(struct CalRenderer *self, float *pNormalBuffer);
510 CAL3D_WRAPPER_API float CalRenderer_GetShininess(struct CalRenderer *self);
511 CAL3D_WRAPPER_API void CalRenderer_GetSpecularColor(struct CalRenderer *self, unsigned char *pColorBuffer);
512 CAL3D_WRAPPER_API int CalRenderer_GetSubmeshCount(struct CalRenderer *self, int meshId);
513 CAL3D_WRAPPER_API int CalRenderer_GetTextureCoordinates(struct CalRenderer *self, int mapId, float *pTextureCoordinateBuffer);
514 CAL3D_WRAPPER_API int CalRenderer_GetVertexCount(struct CalRenderer *self);
515 CAL3D_WRAPPER_API int CalRenderer_GetVertices(struct CalRenderer *self, float *pVertexBuffer);
516 CAL3D_WRAPPER_API int CalRenderer_GetVerticesAndNormals(struct CalRenderer *self, float *pVertexBuffer);
517 CAL3D_WRAPPER_API int CalRenderer_GetVerticesNormalsAndTexCoords(struct CalRenderer *self, float *pVertexBuffer, int NumTexCoords);
518 CAL3D_WRAPPER_API int CalRenderer_GetTangentSpaces(struct CalRenderer *self, int mapId, float *pTangentSpaceBuffer);
519 CAL3D_WRAPPER_API enum Boolean CalRenderer_IsTangentsEnabled(struct CalRenderer *self, int mapId);
520 CAL3D_WRAPPER_API struct CalRenderer *CalRenderer_New(struct CalModel* pModel);
521 CAL3D_WRAPPER_API enum Boolean CalRenderer_SelectMeshSubmesh(struct CalRenderer *self, int meshId, int submeshId);
522
523//****************************************************************************//
524// CalSaver wrapper functions declaration //
525//****************************************************************************//
526
527 CAL3D_WRAPPER_API void CalSaver_Delete(struct CalSaver *self);
528 CAL3D_WRAPPER_API struct CalSaver *CalSaver_New();
529 CAL3D_WRAPPER_API enum Boolean CalSaver_SaveCoreAnimation(struct CalSaver *self, char *strFilename, struct CalCoreAnimation *pCoreAnimation);
530 CAL3D_WRAPPER_API enum Boolean CalSaver_SaveCoreMaterial(struct CalSaver *self, char *strFilename, struct CalCoreMaterial *pCoreMaterial);
531 CAL3D_WRAPPER_API enum Boolean CalSaver_SaveCoreMesh(struct CalSaver *self, char *strFilename, struct CalCoreMesh *pCoreMesh);
532 CAL3D_WRAPPER_API enum Boolean CalSaver_SaveCoreSkeleton(struct CalSaver *self, char *strFilename, struct CalCoreSkeleton *pCoreSkeleton);
533
534//****************************************************************************//
535// CalSkeleton wrapper functions declaration //
536//****************************************************************************//
537
538 CAL3D_WRAPPER_API void CalSkeleton_CalculateState(struct CalSkeleton *self);
539 CAL3D_WRAPPER_API void CalSkeleton_ClearState(struct CalSkeleton *self);
540 CAL3D_WRAPPER_API void CalSkeleton_Delete(struct CalSkeleton *self);
541 CAL3D_WRAPPER_API struct CalBone *CalSkeleton_GetBone(struct CalSkeleton *self, int boneId);
542 CAL3D_WRAPPER_API struct CalCoreSkeleton *CalSkeleton_GetCoreSkeleton(struct CalSkeleton *self);
543// CAL3D_WRAPPER_API std::vector<CalBone *>& CalSkeleton_GetVectorBone(struct CalSkeleton *self);
544 CAL3D_WRAPPER_API void CalSkeleton_LockState(struct CalSkeleton *self);
545 CAL3D_WRAPPER_API struct CalSkeleton *CalSkeleton_New(struct CalCoreSkeleton* pCoreSkeleton);
546
547 // DEBUG-CODE
548 CAL3D_WRAPPER_API int CalSkeleton_GetBonePoints(struct CalSkeleton *self, float *pPoints);
549 CAL3D_WRAPPER_API int CalSkeleton_GetBonePointsStatic(struct CalSkeleton *self, float *pPoints);
550 CAL3D_WRAPPER_API int CalSkeleton_GetBoneLines(struct CalSkeleton *self, float *pLines);
551 CAL3D_WRAPPER_API int CalSkeleton_GetBoneLinesStatic(struct CalSkeleton *self, float *pLines);
552
553//****************************************************************************//
554// CalSpringSystem wrapper functions declaration //
555//****************************************************************************//
556
557 CAL3D_WRAPPER_API void CalSpringSystem_CalculateForces(struct CalSpringSystem *self, struct CalSubmesh *pSubmesh, float deltaTime);
558 CAL3D_WRAPPER_API void CalSpringSystem_CalculateVertices(struct CalSpringSystem *self, struct CalSubmesh *pSubmesh, float deltaTime);
559 CAL3D_WRAPPER_API void CalSpringSystem_Delete(struct CalSpringSystem *self);
560 CAL3D_WRAPPER_API struct CalSpringSystem *CalSpringSystem_New(struct CalModel *pModel);
561 CAL3D_WRAPPER_API void CalSpringSystem_Update(struct CalSpringSystem *self, float deltaTime);
562
563//****************************************************************************//
564// CalSubmesh wrapper functions declaration //
565//****************************************************************************//
566
567 CAL3D_WRAPPER_API void CalSubmesh_Delete(struct CalSubmesh *self);
568 CAL3D_WRAPPER_API struct CalCoreSubmesh *CalSubmesh_GetCoreSubmesh(struct CalSubmesh *self);
569 CAL3D_WRAPPER_API int CalSubmesh_GetCoreMaterialId(struct CalSubmesh *self);
570 CAL3D_WRAPPER_API int CalSubmesh_GetFaceCount(struct CalSubmesh *self);
571 CAL3D_WRAPPER_API int CalSubmesh_GetFaces(struct CalSubmesh *self, CalIndex *pFaceBuffer);
572
573// CAL3D_WRAPPER_API std::vector<CalVector>& CalSubmesh_GetVectorNormal(struct CalSubmesh *self);
574// CAL3D_WRAPPER_API std::vector<CalSubmesh::PhysicalProperty>& CalSubmesh_GetVectorPhysicalProperty(struct CalSubmesh *self);
575// CAL3D_WRAPPER_API std::vector<CalVector>& CalSubmesh_GetVectorVertex(struct CalSubmesh *self);
576 CAL3D_WRAPPER_API int CalSubmesh_GetVertexCount(struct CalSubmesh *self);
577 CAL3D_WRAPPER_API enum Boolean CalSubmesh_HasInternalData(struct CalSubmesh *self);
578 CAL3D_WRAPPER_API struct CalSubmesh *CalSubmesh_New(struct CalCoreSubmesh* coreSubmesh);
579 CAL3D_WRAPPER_API void CalSubmesh_SetCoreMaterialId(struct CalSubmesh *self, int coreMaterialId);
580 CAL3D_WRAPPER_API void CalSubmesh_SetLodLevel(struct CalSubmesh *self, float lodLevel);
581
582//****************************************************************************//
583// CalVector wrapper functions declaration //
584//****************************************************************************//
585
586 CAL3D_WRAPPER_API void CalVector_Add(struct CalVector *self, struct CalVector *pV);
587 CAL3D_WRAPPER_API void CalVector_Blend(struct CalVector *self, float d, struct CalVector *pV);
588 CAL3D_WRAPPER_API void CalVector_Clear(struct CalVector *self);
589 CAL3D_WRAPPER_API void CalVector_Delete(struct CalVector *self);
590 CAL3D_WRAPPER_API void CalVector_Equal(struct CalVector *self, struct CalVector *pV);
591 CAL3D_WRAPPER_API void CalVector_InverseScale(struct CalVector *self, float d);
592 CAL3D_WRAPPER_API float *CalVector_Get(struct CalVector *self);
593 CAL3D_WRAPPER_API float CalVector_Length(struct CalVector *self);
594 CAL3D_WRAPPER_API struct CalVector *CalVector_New();
595 CAL3D_WRAPPER_API float CalVector_Normalize(struct CalVector *self);
596 CAL3D_WRAPPER_API void CalVector_Op_Add(struct CalVector *pResult, struct CalVector *pV, struct CalVector *pU);
597 CAL3D_WRAPPER_API void CalVector_Op_Subtract(struct CalVector *pResult, struct CalVector *pV, struct CalVector *pU);
598 CAL3D_WRAPPER_API void CalVector_CalVector_Op_Scale(struct CalVector *pResult, struct CalVector *pV, float d);
599 CAL3D_WRAPPER_API void CalVector_CalVector_Op_InverseScale(struct CalVector *pResult, struct CalVector *pV, float d);
600 CAL3D_WRAPPER_API float CalVector_Op_Scalar(struct CalVector *pV, struct CalVector *pU);
601 CAL3D_WRAPPER_API void CalVector_Op_Cross(struct CalVector *pResult, struct CalVector *pV, struct CalVector *pU);
602 CAL3D_WRAPPER_API void CalVector_Scale(struct CalVector *self, float d);
603 CAL3D_WRAPPER_API void CalVector_Set(struct CalVector *self, float vx, float vy, float vz);
604 CAL3D_WRAPPER_API void CalVector_Subtract(struct CalVector *self, struct CalVector *pV);
605 CAL3D_WRAPPER_API void CalVector_Transform(struct CalVector *self, struct CalQuaternion *pQ);
606
607#ifdef __cplusplus
608}
609#endif
610
611#endif
612
613//****************************************************************************//
Definition animation_action.h:23
Definition animation_cycle.h:23
Definition animation.h:22
Definition bone.h:29
Definition coreanimation.h:23
Definition corebone.h:26
The core keyframe class.
Definition corekeyframe.h:32
Definition corematerial.h:21
Definition coremesh.h:24
Definition coremodel.h:26
Definition coremorphanimation.h:17
Definition coreskeleton.h:24
Definition coresubmesh.h:23
Definition coretrack.h:39
The loader class.
Definition loader.h:53
The matrix class.
Definition matrix.h:35
Definition mesh.h:24
Definition mixer.h:153
Definition model.h:31
Definition morphtargetmixer.h:22
Definition physique.h:23
The platform class.
Definition platform.h:102
The quaternion class.
Definition quaternion.h:36
Definition renderer.h:23
The saver class.
Definition saver.h:44
Definition skeleton.h:21
The spring system class.
Definition springsystem.h:37
Definition submesh.h:23
The vector class.
Definition vector.h:37

Generated by The Cal3D Team with Doxygen 1.12.0