/* File: cal3d_c.h */ #ifndef CAL3D_C_H #define CAL3D_C_H #ifdef __cplusplus extern "C" { #endif /* ---------------------------------------------------------------------- All object types declared here ---------------------------------------------------------------------- */ typedef struct CoreModelS CoreModelS; typedef CoreModelS * CoreModelP; typedef struct MixerS MixerS; typedef MixerS * MixerP; typedef struct ModelS ModelS; typedef ModelS * ModelP; typedef struct RendererS RendererS; typedef RendererS * RendererP; /* ---------------------------------------------------------------------- /* Methods of class CalCoreModel (see coremodel.h in the Cal3D source code) ---------------------------------------------------------------------- */ CoreModelP newCoreModel (char * name); void deleteCoreModel (CoreModelP model); int loadCoreSkeleton (CoreModelP model, char * path); int loadCoreAnimation (CoreModelP model, char * path); int loadCoreMesh (CoreModelP model, char * path); int loadCoreMaterial(CoreModelP model, char * path); int createCoreMaterialThread(CoreModelP model, int matl_thread_id); int setCoreMaterialId(CoreModelP model, int matl_thread, int matl_set, int matl_id); /* ---------------------------------------------------------------------- Methods of class CalMixer (see mixer.h in the Cal3D source code) ---------------------------------------------------------------------- */ MixerP newMixer (ModelP model); void deleteMixer (MixerP mixer); int blendCycle(MixerP mixer, int id, float weight, float delay); int clearCycle (MixerP mixer, int id, float delay); int executeAction (MixerP mixer, int id, float delayIn, float delayOut, float weightTarget, int autoLock); /* ---------------------------------------------------------------------- Methods of class CalModel (see model.h in the Cal3D source code) ---------------------------------------------------------------------- */ ModelP newModel (CoreModelP coreModel); void deleteModel (ModelP model); int attachMesh (ModelP model, int coreMeshId); void setLodLevel (ModelP model, float lodLevel); void setMaterialSet (ModelP model, int setId); MixerP getMixer (ModelP model); void update (ModelP model, float deltaTime); /* seconds */ RendererP getRenderer (ModelP model); /* ---------------------------------------------------------------------- Methods of class CalRenderer (see renderer.h in the Cal3D source code) ---------------------------------------------------------------------- */ RendererP newRenderer (ModelP model); void deleteRenderer(RendererP renderer); int beginRendering (RendererP renderer); void endRendering (RendererP renderer); void getAmbientColor(RendererP renderer, unsigned char *pColorBuffer); void getDiffuseColor(RendererP renderer, unsigned char *pColorBuffer); void getSpecularColor(RendererP renderer, unsigned char *pColorBuffer); float getShininess (RendererP renderer); /* int getMapCount(RendererP renderer); Cal::UserData getMapUserData(RendererP renderer, int mapId); */ int getMeshCount(RendererP renderer); /* float getShininess(RendererP renderer); void getSpecularColor(RendererP renderer, unsigned char *pColorBuffer); */ int getSubmeshCount(RendererP renderer, int meshId); /* int getTextureCoordinates(RendererP renderer, int mapId, float *pTextureCoordinateBuffer, int stride); */ int getFaceCount(RendererP renderer); int getFaces(RendererP renderer, CalIndex *pFaceBuffer); int getVertexCount(RendererP renderer); /* C++ default stride = 0 */ int getVertices(RendererP renderer, float *pVertexBuffer, int stride); /* C++ default stride = 0 */ int getNormals(RendererP renderer, float *pNormalBuffer, int stride); /* int getTangentSpaces(RendererP renderer, int mapId, float *pTangentSpaceBuffer, int stride); int getVerticesAndNormals(RendererP renderer, float *pVertexBuffer, int stride); int getVerticesNormalsAndTexCoords(RendererP renderer, float *pVertexBuffer,int NumTexCoords); bool isTangentsEnabled(RendererP renderer, int mapId); */ /* int interpreted as bool */ int selectMeshSubmesh(RendererP renderer, int meshId, int submeshId); /* void setNormalization(RendererP renderer, bool normalize); */ /* -------------------------------------------------------------------- DEBUG AID -------------------------------------------------------------------- */ int calVectorSize (); void dumpVertices (RendererP renderer); #ifdef __cplusplus } #endif #endif