# -*- indent-tabs-mode: t -*- # Soya 3D # Copyright (C) 2004 Jean-Baptiste LAMY -- jiba@tuxfamily.org # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA cdef extern from "cal3d_wrapper.h": ctypedef void *CalUserData cdef enum: ANIMATION_TYPE_NONE = 0 ANIMATION_TYPE_CYCLE ANIMATION_TYPE_POSE ANIMATION_TYPE_ACTION cdef enum: ANIMATION_STATE_NONE = 0 ANIMATION_STATE_SYNC ANIMATION_STATE_ASYNC ANIMATION_STATE_IN ANIMATION_STATE_STEADY ANIMATION_STATE_OUT cdef struct CalAnimation: int _dummy cdef struct CalAnimationAction: int _dummy cdef struct CalAnimationCycle: int _dummy cdef struct CalBone: int _dummy cdef struct CalCoreAnimation: int _dummy cdef struct CalCoreBone: int _dummy cdef struct CalCoreKeyframe: int _dummy cdef struct CalCoreMaterial: int _dummy cdef struct CalCoreMesh: int _dummy cdef struct CalCoreModel: int _dummy cdef struct CalCoreSkeleton: int _dummy cdef struct CalCoreSubmesh: int _dummy cdef struct CalCoreTrack: int _dummy cdef struct CalLoader: int _dummy cdef struct CalMatrix: int _dummy cdef struct CalMesh: int _dummy cdef struct CalMixer: int _dummy cdef struct CalModel: int _dummy cdef struct CalPhysique: int _dummy cdef struct CalPlatform: int _dummy cdef struct CalQuaternion: int _dummy cdef struct CalRenderer: int _dummy cdef struct CalSaver: int _dummy cdef struct CalSkeleton: int _dummy cdef struct CalSpringSystem: int _dummy cdef struct CalSubmesh: int _dummy cdef struct CalVector: int _dummy cdef int CalAnimation_Create(CalAnimation *self, CalCoreAnimation *pCoreAnimation) cdef void CalAnimation_Delete(CalAnimation *self) cdef void CalAnimation_Destroy(CalAnimation *self) cdef CalCoreAnimation *CalAnimation_GetCoreAnimation(CalAnimation *self) cdef int CalAnimation_GetState(CalAnimation *self) cdef float CalAnimation_GetTime(CalAnimation *self) cdef int CalAnimation_GetType(CalAnimation *self) cdef float CalAnimation_GetWeight(CalAnimation *self) cdef int CalAnimationAction_Create(CalAnimationAction *self, CalCoreAnimation *pCoreAnimation) cdef void CalAnimationAction_Delete(CalAnimationAction *self) cdef void CalAnimationAction_Destroy(CalAnimationAction *self) cdef int CalAnimationAction_Execute(CalAnimationAction *self, float delayIn, float delayOut) cdef CalAnimationAction *CalAnimationAction_New() cdef int CalAnimationAction_Update(CalAnimationAction *self, float deltaTime) cdef int CalAnimationCycle_Blend(CalAnimationCycle *self, float weight, float delay) cdef int CalAnimationCycle_Create(CalAnimationCycle *self, CalCoreAnimation *pCoreAnimation) cdef void CalAnimationCycle_Delete(CalAnimationCycle *self) cdef void CalAnimationCycle_Destroy(CalAnimationCycle *self) cdef CalAnimationCycle *CalAnimationCycle_New() cdef void CalAnimationCycle_SetAsync(CalAnimationCycle *self, float time, float duration) cdef int CalAnimationCycle_Update(CalAnimationCycle *self, float deltaTime) cdef void CalBone_BlendState(CalBone *self, float weight, CalVector *pTranslation, CalQuaternion *pRotation) cdef void CalBone_CalculateState(CalBone *self) cdef void CalBone_ClearState(CalBone *self) cdef int CalBone_Create(CalBone *self, CalCoreBone *pCoreBone) cdef void CalBone_Delete(CalBone *self) cdef void CalBone_Destroy(CalBone *self) cdef CalCoreBone *CalBone_GetCoreBone(CalBone *self) cdef CalQuaternion *CalBone_GetRotation(CalBone *self) cdef CalQuaternion *CalBone_GetRotationAbsolute(CalBone *self) cdef CalQuaternion *CalBone_GetRotationBoneSpace(CalBone *self) cdef CalVector *CalBone_GetTranslation(CalBone *self) cdef CalVector *CalBone_GetTranslationAbsolute(CalBone *self) cdef CalVector *CalBone_GetTranslationBoneSpace(CalBone *self) cdef void CalBone_LockState(CalBone *self) cdef CalBone *CalBone_New() cdef void CalBone_SetSkeleton(CalBone *self, CalSkeleton *pSkeleton) cdef void CalBone_SetTranslation(CalBone *self, CalVector *pTranslation) cdef void CalBone_SetRotation(CalBone *self, CalQuaternion *pRotation) cdef void CalBone_SetCoreState(CalBone *self) cdef void CalBone_SetCoreStateRecursive(CalBone *self) cdef int CalCoreAnimation_AddCoreTrack(CalCoreAnimation *self, CalCoreTrack *pCoreTrack) cdef int CalCoreAnimation_Create(CalCoreAnimation *self) cdef void CalCoreAnimation_Delete(CalCoreAnimation *self) cdef void CalCoreAnimation_Destroy(CalCoreAnimation *self) cdef CalCoreTrack *CalCoreAnimation_GetCoreTrack(CalCoreAnimation *self, int coreBoneId) cdef float CalCoreAnimation_GetDuration(CalCoreAnimation *self) cdef CalCoreAnimation *CalCoreAnimation_New() cdef void CalCoreAnimation_SetDuration(CalCoreAnimation *self, float duration) cdef int CalCoreBone_AddChildId(CalCoreBone *self, int childId) cdef void CalCoreBone_CalculateState(CalCoreBone *self) cdef int CalCoreBone_Create(CalCoreBone *self, char *strName) cdef void CalCoreBone_Delete(CalCoreBone *self) cdef void CalCoreBone_Destroy(CalCoreBone *self) cdef char *CalCoreBone_GetName(CalCoreBone *self) cdef int CalCoreBone_GetParentId(CalCoreBone *self) cdef CalQuaternion *CalCoreBone_GetRotation(CalCoreBone *self) cdef CalQuaternion *CalCoreBone_GetRotationAbsolute(CalCoreBone *self) cdef CalQuaternion *CalCoreBone_GetRotationBoneSpace(CalCoreBone *self) cdef CalVector *CalCoreBone_GetTranslation(CalCoreBone *self) cdef CalVector *CalCoreBone_GetTranslationAbsolute(CalCoreBone *self) cdef CalVector *CalCoreBone_GetTranslationBoneSpace(CalCoreBone *self) cdef CalUserData CalCoreBone_GetUserData(CalCoreBone *self) cdef CalCoreBone *CalCoreBone_New() cdef void CalCoreBone_SetCoreSkeleton(CalCoreBone *self, CalCoreSkeleton *pCoreSkeleton) cdef void CalCoreBone_SetParentId(CalCoreBone *self, int parentId) cdef void CalCoreBone_SetRotation(CalCoreBone *self, CalQuaternion *pRotation) cdef void CalCoreBone_SetRotationBoneSpace(CalCoreBone *self, CalQuaternion *pRotation) cdef void CalCoreBone_SetTranslation(CalCoreBone *self, CalVector *pTranslation) cdef void CalCoreBone_SetTranslationBoneSpace(CalCoreBone *self, CalVector *pTranslation) cdef void CalCoreBone_SetUserData(CalCoreBone *self, CalUserData userData) cdef int CalCoreKeyframe_Create(CalCoreKeyframe *self) cdef void CalCoreKeyframe_Delete(CalCoreKeyframe *self) cdef void CalCoreKeyframe_Destroy(CalCoreKeyframe *self) cdef CalQuaternion *CalCoreKeyframe_GetRotation(CalCoreKeyframe *self) cdef float CalCoreKeyframe_GetTime(CalCoreKeyframe *self) cdef CalVector *CalCoreKeyframe_GetTranslation(CalCoreKeyframe *self) cdef CalCoreKeyframe *CalCoreKeyframe_New() cdef void CalCoreKeyframe_SetRotation(CalCoreKeyframe *self, CalQuaternion *pRotation) cdef void CalCoreKeyframe_SetTime(CalCoreKeyframe *self, float time) cdef void CalCoreKeyframe_SetTranslation(CalCoreKeyframe *self, CalVector *pTranslation) cdef int CalCoreMaterial_Create(CalCoreMaterial *self) cdef void CalCoreMaterial_Delete(CalCoreMaterial *self) cdef void CalCoreMaterial_Destroy(CalCoreMaterial *self) cdef int CalCoreMaterial_GetMapCount(CalCoreMaterial *self) cdef char *CalCoreMaterial_GetMapFilename(CalCoreMaterial *self, int mapId) cdef CalUserData CalCoreMaterial_GetMapUserData(CalCoreMaterial *self, int mapId) cdef float CalCoreMaterial_GetShininess(CalCoreMaterial *self) cdef CalUserData CalCoreMaterial_GetUserData(CalCoreMaterial *self) cdef CalCoreMaterial *CalCoreMaterial_New() cdef int CalCoreMaterial_Reserve(CalCoreMaterial *self, int mapCount) cdef int CalCoreMaterial_SetMapUserData(CalCoreMaterial *self, int mapId, CalUserData userData) cdef void CalCoreMaterial_SetShininess(CalCoreMaterial *self, float shininess) cdef void CalCoreMaterial_SetUserData(CalCoreMaterial *self, CalUserData userData) cdef int CalCoreMesh_AddCoreSubmesh(CalCoreMesh *self, CalCoreSubmesh *pCoreSubmesh) cdef int CalCoreMesh_Create(CalCoreMesh *self) cdef void CalCoreMesh_Delete(CalCoreMesh *self) cdef void CalCoreMesh_Destroy(CalCoreMesh *self) cdef CalCoreSubmesh *CalCoreMesh_GetCoreSubmesh(CalCoreMesh *self, int id) cdef int CalCoreMesh_GetCoreSubmeshCount(CalCoreMesh *self) cdef CalCoreMesh *CalCoreMesh_New() cdef int CalCoreModel_AddCoreAnimation(CalCoreModel *self, CalCoreAnimation *pCoreAnimation) cdef int CalCoreModel_AddCoreMaterial(CalCoreModel *self, CalCoreMaterial *pCoreMaterial) cdef int CalCoreModel_AddCoreMesh(CalCoreModel *self, CalCoreMesh *pCoreMesh) cdef int CalCoreModel_Create(CalCoreModel *self, char *strName) cdef int CalCoreModel_CreateCoreMaterialThread(CalCoreModel *self, int coreMaterialThreadId) cdef void CalCoreModel_Delete(CalCoreModel *self) cdef void CalCoreModel_Destroy(CalCoreModel *self) cdef CalCoreAnimation *CalCoreModel_GetCoreAnimation(CalCoreModel *self, int coreAnimationId) cdef int CalCoreModel_GetCoreAnimationCount(CalCoreModel *self) cdef CalCoreMaterial *CalCoreModel_GetCoreMaterial(CalCoreModel *self, int coreMaterialId) cdef int CalCoreModel_GetCoreMaterialCount(CalCoreModel *self) cdef int CalCoreModel_GetCoreMaterialId(CalCoreModel *self, int coreMaterialThreadId, int coreMaterialSetId) cdef CalCoreMesh *CalCoreModel_GetCoreMesh(CalCoreModel *self, int coreMeshId) cdef int CalCoreModel_GetCoreMeshCount(CalCoreModel *self) cdef CalCoreSkeleton *CalCoreModel_GetCoreSkeleton(CalCoreModel *self) cdef CalUserData CalCoreModel_GetUserData(CalCoreModel *self) cdef int CalCoreModel_LoadCoreAnimation(CalCoreModel *self, char *strFilename) cdef int CalCoreModel_LoadCoreMaterial(CalCoreModel *self, char *strFilename) cdef int CalCoreModel_LoadCoreMesh(CalCoreModel *self, char *strFilename) cdef int CalCoreModel_LoadCoreSkeleton(CalCoreModel *self, char *strFilename) cdef CalCoreModel *CalCoreModel_New() cdef int CalCoreModel_SaveCoreAnimation(CalCoreModel *self, char *strFilename, int coreAnimtionId) cdef int CalCoreModel_SaveCoreMaterial(CalCoreModel *self, char *strFilename, int coreMaterialId) cdef int CalCoreModel_SaveCoreMesh(CalCoreModel *self, char *strFilename, int coreMeshId) cdef int CalCoreModel_SaveCoreSkeleton(CalCoreModel *self, char *strFilename) cdef int CalCoreModel_SetCoreMaterialId(CalCoreModel *self, int coreMaterialThreadId, int coreMaterialSetId, int coreMaterialId) cdef void CalCoreModel_SetCoreSkeleton(CalCoreModel *self, CalCoreSkeleton *pCoreSkeleton) cdef void CalCoreModel_SetUserData(CalCoreModel *self, CalUserData userData) cdef int CalCoreSkeleton_AddCoreBone(CalCoreSkeleton *self, CalCoreBone *pCoreBone) cdef void CalCoreSkeleton_CalculateState(CalCoreSkeleton *self) cdef int CalCoreSkeleton_Create(CalCoreSkeleton *self) cdef void CalCoreSkeleton_Delete(CalCoreSkeleton *self) cdef void CalCoreSkeleton_Destroy(CalCoreSkeleton *self) cdef CalCoreBone *CalCoreSkeleton_GetCoreBone(CalCoreSkeleton *self, int coreBoneId) cdef int CalCoreSkeleton_GetCoreBoneId(CalCoreSkeleton *self, char *strName) cdef CalCoreSkeleton *CalCoreSkeleton_New() cdef int CalCoreSubmesh_Create(CalCoreSubmesh *self) cdef void CalCoreSubmesh_Delete(CalCoreSubmesh *self) cdef void CalCoreSubmesh_Destroy(CalCoreSubmesh *self) cdef int CalCoreSubmesh_GetCoreMaterialThreadId(CalCoreSubmesh *self) cdef int CalCoreSubmesh_GetFaceCount(CalCoreSubmesh *self) cdef int CalCoreSubmesh_GetLodCount(CalCoreSubmesh *self) cdef int CalCoreSubmesh_GetSpringCount(CalCoreSubmesh *self) cdef int CalCoreSubmesh_GetVertexCount(CalCoreSubmesh *self) cdef CalCoreSubmesh *CalCoreSubmesh_New() cdef int CalCoreSubmesh_Reserve(CalCoreSubmesh *self, int vertexCount, int textureCoordinateCount, int faceCount, int springCount) cdef void CalCoreSubmesh_SetCoreMaterialThreadId(CalCoreSubmesh *self, int coreMaterialThreadId) cdef void CalCoreSubmesh_SetLodCount(CalCoreSubmesh *self, int lodCount) cdef int CalCoreSubmesh_IsTangentsEnabled(CalCoreSubmesh *self, int mapId) cdef int CalCoreSubmesh_EnableTangents(CalCoreSubmesh *self, int mapId, int enabled) cdef int CalCoreTrack_AddCoreKeyframe(CalCoreTrack *self, CalCoreKeyframe *pCoreKeyframe) cdef int CalCoreTrack_Create(CalCoreTrack *self) cdef void CalCoreTrack_Delete(CalCoreTrack *self) cdef void CalCoreTrack_Destroy(CalCoreTrack *self) cdef int CalCoreTrack_GetCoreBoneId(CalCoreTrack *self) cdef int CalCoreTrack_GetState(CalCoreTrack *self, float time, CalVector *pTranslation, CalQuaternion *pRotation) cdef CalCoreTrack *CalCoreTrack_New() cdef int CalCoreTrack_SetCoreBoneId(CalCoreTrack *self, int coreBoneId) cdef int CalError_GetLastErrorCode() cdef char *CalError_GetLastErrorDescription() cdef char *CalError_GetLastErrorFile() cdef int CalError_GetLastErrorLine() cdef char *CalError_GetLastErrorText() cdef void CalError_PrintLastError() cdef void CalLoader_Delete(CalLoader *self) cdef CalCoreAnimation *CalLoader_LoadCoreAnimation(CalLoader *self, char *strFilename) cdef CalCoreMaterial *CalLoader_LoadCoreMaterial(CalLoader *self, char *strFilename) cdef CalCoreMesh *CalLoader_LoadCoreMesh(CalLoader *self, char *strFilename) cdef CalCoreSkeleton *CalLoader_LoadCoreSkeleton(CalLoader *self, char *strFilename) cdef CalLoader *CalLoader_New() cdef int CalMesh_Create(CalMesh *self, CalCoreMesh *pCoreMesh) cdef void CalMesh_Delete(CalMesh *self) cdef void CalMesh_Destroy(CalMesh *self) cdef CalCoreMesh *CalMesh_GetCoreMesh(CalMesh *self) cdef CalSubmesh *CalMesh_GetSubmesh(CalMesh *self, int id) cdef int CalMesh_GetSubmeshCount(CalMesh *self) cdef CalMesh *CalMesh_New() cdef void CalMesh_SetLodLevel(CalMesh *self, float lodLevel) cdef void CalMesh_SetMaterialSet(CalMesh *self, int setId) cdef void CalMesh_SetModel(CalMesh *self, CalModel *pModel) cdef int CalMixer_BlendCycle(CalMixer *self, int id, float weight, float delay) cdef int CalMixer_ClearCycle(CalMixer *self, int id, float delay) cdef int CalMixer_Create(CalMixer *self, CalModel *pModel) cdef void CalMixer_Delete(CalMixer *self) cdef void CalMixer_Destroy(CalMixer *self) cdef int CalMixer_ExecuteAction(CalMixer *self, int id, float delayIn, float delayOut) cdef CalMixer *CalMixer_New() cdef void CalMixer_UpdateAnimation(CalMixer *self, float deltaTime) cdef void CalMixer_UpdateSkeleton(CalMixer *self) cdef int CalModel_AttachMesh(CalModel *self, int coreMeshId) cdef int CalModel_Create(CalModel *self, CalCoreModel *pCoreModel) cdef void CalModel_Delete(CalModel *self) cdef void CalModel_Destroy(CalModel *self) cdef int CalModel_DetachMesh(CalModel *self, int coreMeshId) cdef CalCoreModel *CalModel_GetCoreModel(CalModel *self) cdef CalMesh *CalModel_GetMesh(CalModel *self, int coreMeshId) cdef CalMixer *CalModel_GetMixer(CalModel *self) cdef CalPhysique *CalModel_GetPhysique(CalModel *self) cdef CalRenderer *CalModel_GetRenderer(CalModel *self) cdef CalSkeleton *CalModel_GetSkeleton(CalModel *self) cdef CalSpringSystem *CalModel_GetSpringSystem(CalModel *self) cdef CalUserData CalModel_GetUserData(CalModel *self) cdef CalModel *CalModel_New() cdef void CalModel_SetLodLevel(CalModel *self, float lodLevel) cdef void CalModel_SetMaterialSet(CalModel *self, int setId) cdef void CalModel_SetUserData(CalModel *self, CalUserData userData) cdef void CalModel_Update(CalModel *self, float deltaTime) cdef int CalPhysique_CalculateNormals(CalPhysique *self, CalSubmesh *pSubmesh, float *pNormalBuffer) cdef int CalPhysique_CalculateVertices(CalPhysique *self, CalSubmesh *pSubmesh, float *pVertexBuffer) cdef int CalPhysique_CalculateVerticesAndNormals(CalPhysique *self, CalSubmesh *pSubmesh, float *pVertexBuffer) cdef int CalPhysique_CalculateVerticesNormalsAndTexCoords(CalPhysique *self, CalSubmesh *pSubmesh, float *pVertexBuffer, int NumTexCoords) cdef int CalPhysique_CalculateTangentSpaces(CalPhysique *self, CalSubmesh *pSubmesh, int mapId, float *pTangentSpaceBuffer) cdef int CalPhysique_Create(CalPhysique *self, CalModel *pModel) cdef void CalPhysique_Delete(CalPhysique *self) cdef void CalPhysique_Destroy(CalPhysique *self) cdef CalPhysique *CalPhysique_New() cdef void CalPhysique_Update(CalPhysique *self) cdef void CalQuaternion_Blend(CalQuaternion *self, float d, CalQuaternion *pQ) cdef void CalQuaternion_Clear(CalQuaternion *self) cdef void CalQuaternion_Conjugate(CalQuaternion *self) cdef void CalQuaternion_Delete(CalQuaternion *self) cdef void CalQuaternion_Equal(CalQuaternion *self, CalQuaternion *pQ) cdef float *CalQuaternion_Get(CalQuaternion *self) cdef void CalQuaternion_Multiply(CalQuaternion *self, CalQuaternion *pQ) cdef void CalQuaternion_MultiplyVector(CalQuaternion *self, CalVector *pV) cdef CalQuaternion *CalQuaternion_New() cdef void CalQuaternion_Op_Multiply(CalQuaternion *pResult, CalQuaternion *pQ, CalQuaternion *pR) cdef void CalQuaternion_Set(CalQuaternion *self, float qx, float qy, float qz, float qw) cdef int CalRenderer_BeginRendering(CalRenderer *self) cdef int CalRenderer_Create(CalRenderer *self, CalModel *pModel) cdef void CalRenderer_Delete(CalRenderer *self) cdef void CalRenderer_Destroy(CalRenderer *self) cdef void CalRenderer_EndRendering(CalRenderer *self) cdef void CalRenderer_GetAmbientColor(CalRenderer *self, unsigned char *pColorBuffer) cdef void CalRenderer_GetDiffuseColor(CalRenderer *self, unsigned char *pColorBuffer) cdef int CalRenderer_GetFaceCount(CalRenderer *self) cdef int CalRenderer_GetFaces(CalRenderer *self, int *pFaceBuffer) cdef int CalRenderer_GetMapCount(CalRenderer *self) cdef CalUserData CalRenderer_GetMapUserData(CalRenderer *self, int mapId) cdef int CalRenderer_GetMeshCount(CalRenderer *self) cdef int CalRenderer_GetNormals(CalRenderer *self, float *pNormalBuffer) cdef float CalRenderer_GetShininess(CalRenderer *self) cdef void CalRenderer_GetSpecularColor(CalRenderer *self, unsigned char *pColorBuffer) cdef int CalRenderer_GetSubmeshCount(CalRenderer *self, int meshId) cdef int CalRenderer_GetTextureCoordinates(CalRenderer *self, int mapId, float *pTextureCoordinateBuffer) cdef int CalRenderer_GetVertexCount(CalRenderer *self) cdef int CalRenderer_GetVertices(CalRenderer *self, float *pVertexBuffer) cdef int CalRenderer_GetVerticesAndNormals(CalRenderer *self, float *pVertexBuffer) cdef int CalRenderer_GetVerticesNormalsAndTexCoords(CalRenderer *self, float *pVertexBuffer, int NumTexCoords) cdef int CalRenderer_GetTangentSpaces(CalRenderer *self, int mapId, float *pTangentSpaceBuffer) cdef int CalRenderer_IsTangentsEnabled(CalRenderer *self, int mapId) cdef CalRenderer *CalRenderer_New() cdef int CalRenderer_SelectMeshSubmesh(CalRenderer *self, int meshId, int submeshId) cdef void CalSaver_Delete(CalSaver *self) cdef CalSaver *CalSaver_New() cdef int CalSaver_SaveCoreAnimation(CalSaver *self, char *strFilename, CalCoreAnimation *pCoreAnimation) cdef int CalSaver_SaveCoreMaterial(CalSaver *self, char *strFilename, CalCoreMaterial *pCoreMaterial) cdef int CalSaver_SaveCoreMesh(CalSaver *self, char *strFilename, CalCoreMesh *pCoreMesh) cdef int CalSaver_SaveCoreSkeleton(CalSaver *self, char *strFilename, CalCoreSkeleton *pCoreSkeleton) cdef void CalSkeleton_CalculateState(CalSkeleton *self) cdef void CalSkeleton_ClearState(CalSkeleton *self) cdef int CalSkeleton_Create(CalSkeleton *self, CalCoreSkeleton *pCoreSkeleton) cdef void CalSkeleton_Delete(CalSkeleton *self) cdef void CalSkeleton_Destroy(CalSkeleton *self) cdef CalBone *CalSkeleton_GetBone(CalSkeleton *self, int boneId) cdef CalCoreSkeleton *CalSkeleton_GetCoreSkeleton(CalSkeleton *self) cdef void CalSkeleton_LockState(CalSkeleton *self) cdef CalSkeleton *CalSkeleton_New() cdef int CalSkeleton_GetBonePoints(CalSkeleton *self, float *pPoints) cdef int CalSkeleton_GetBonePointsStatic(CalSkeleton *self, float *pPoints) cdef int CalSkeleton_GetBoneLines(CalSkeleton *self, float *pLines) cdef int CalSkeleton_GetBoneLinesStatic(CalSkeleton *self, float *pLines) cdef void CalSpringSystem_CalculateForces(CalSpringSystem *self, CalSubmesh *pSubmesh, float deltaTime) cdef void CalSpringSystem_CalculateVertices(CalSpringSystem *self, CalSubmesh *pSubmesh, float deltaTime) cdef int CalSpringSystem_Create(CalSpringSystem *self, CalModel *pModel) cdef void CalSpringSystem_Delete(CalSpringSystem *self) cdef void CalSpringSystem_Destroy(CalSpringSystem *self) cdef CalSpringSystem *CalSpringSystem_New() cdef void CalSpringSystem_Update(CalSpringSystem *self, float deltaTime) cdef int CalSubmesh_Create(CalSubmesh *self, CalCoreSubmesh *pCoreSubmesh) cdef void CalSubmesh_Delete(CalSubmesh *self) cdef void CalSubmesh_Destroy(CalSubmesh *self) cdef CalCoreSubmesh *CalSubmesh_GetCoreSubmesh(CalSubmesh *self) cdef int CalSubmesh_GetCoreMaterialId(CalSubmesh *self) cdef int CalSubmesh_GetFaceCount(CalSubmesh *self) cdef int CalSubmesh_GetFaces(CalSubmesh *self, int *pFaceBuffer) cdef int CalSubmesh_GetVertexCount(CalSubmesh *self) cdef int CalSubmesh_HasInternalData(CalSubmesh *self) cdef CalSubmesh *CalSubmesh_New() cdef void CalSubmesh_SetCoreMaterialId(CalSubmesh *self, int coreMaterialId) cdef void CalSubmesh_SetLodLevel(CalSubmesh *self, float lodLevel) cdef void CalVector_Add(CalVector *self, CalVector *pV) cdef void CalVector_Blend(CalVector *self, float d, CalVector *pV) cdef void CalVector_Clear(CalVector *self) cdef void CalVector_Delete(CalVector *self) cdef void CalVector_Equal(CalVector *self, CalVector *pV) cdef void CalVector_InverseScale(CalVector *self, float d) cdef float *CalVector_Get(CalVector *self) cdef float CalVector_Length(CalVector *self) cdef CalVector *CalVector_New() cdef float CalVector_Normalize(CalVector *self) cdef void CalVector_Op_Add(CalVector *pResult, CalVector *pV, CalVector *pU) cdef void CalVector_Op_Subtract(CalVector *pResult, CalVector *pV, CalVector *pU) cdef void CalVector_CalVector_Op_Scale(CalVector *pResult, CalVector *pV, float d) cdef void CalVector_CalVector_Op_InverseScale(CalVector *pResult, CalVector *pV, float d) cdef float CalVector_Op_Scalar(CalVector *pV, CalVector *pU) cdef void CalVector_Op_Cross(CalVector *pResult, CalVector *pV, CalVector *pU) cdef void CalVector_Scale(CalVector *self, float d) cdef void CalVector_Set(CalVector *self, float vx, float vy, float vz) cdef void CalVector_Subtract(CalVector *self, CalVector *pV) cdef void CalVector_Transform(CalVector *self, CalQuaternion *pQ) cimport soya cdef class _Cal3dBody(soya.CoordSyst) cdef class _AnimatedModel(soya._Model)