cal3d-0.1: c++/cal3d_c.h
/* 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