include/crbn/api.h

00001 
00002 #ifndef __crbn_hpp__
00003 #define __crbn_hpp__
00004 
00005 #include <crbn/basic/basic.h>
00006 #include <crbn/basic/paramlist.hpp>
00007 
00018 #define API_CALL extern "C"
00019 
00020 /*
00021  * The stat structure to use in callbacks.
00022  */
00023 typedef struct _crbn_stat_t {
00024   int32  line_width;
00025   int32  line_count;
00026   int32  line_current;
00027 
00028   int32  frame_current;
00029   uint32 frame_load_time;
00030   uint32 frame_rendering_time;
00031 
00032   uint32 global_load_time;
00033   uint32 global_rendering_time;
00034   uint32 global_time;
00035 } crbn_stat_t;
00036 
00037 /*
00038  * The paramater for crbnStatCallback
00039  */
00040 typedef void(*crbn_stat_cb)( crbn_stat_t* stat );
00041 
00042 /*
00043  * The obscure structure :))
00044  */
00045 typedef struct _crbn_context_t crbn_context_t;
00046 
00057 crbn_context_t* crbnBegin( char* name );
00058 
00065 bool crbnEnd( crbn_context_t* ctx );
00066 
00074 bool crbnStart( crbn_context_t* ctx, char* filename );
00075 
00085 bool crbnInclude( crbn_context_t* ctx, char* filename );
00086 
00087 /*********************************************************************
00088  * To set some callbacks in libcrbn.
00089  *********************************************************************/
00090 
00091 bool crbnStatCallback( crbn_context_t* ctx, char* where, crbn_stat_cb cb );
00092 
00093 /*********************************************************************
00094  * To set some option in libcrbn.
00095  *********************************************************************/
00096 
00097 bool crbnOption( crbn_context_t* ctx, char* where, paramlist& pl );
00098 
00099 /*********************************************************************
00100  * Frame block primitives
00101  *********************************************************************/
00102 
00110 bool crbnFrameBegin( crbn_context_t* ctx, int32 frame );
00111 
00117 bool crbnFrameEnd( crbn_context_t* ctx );
00118 
00119 /*********************************************************************
00120  * Scene Entities
00121  *
00122  * They have no effect inside a crbnFrameBegin/crbnFrameEnd block.
00123  *********************************************************************/
00124 
00133 bool crbnResolution( crbn_context_t* ctx, uint32 width, uint32 height, float pixelaspectratio );
00134 
00144 bool crbnCropWindow( crbn_context_t* ctx, float xmin, float ymin, float xmax, float ymax );
00145 
00154 bool crbnFrameInterval( crbn_context_t* ctx, int first, int last );
00155 
00163 bool crbnRenderer( crbn_context_t* ctx, char* renderer_type, paramlist& pl );
00164 
00172 bool crbnSampler( crbn_context_t* ctx, char* location, char* sampler_type, paramlist& pl );
00173 
00181 bool crbnObjectSet( crbn_context_t* ctx, char* objectset_type, paramlist& pl );
00182 
00190 bool crbnOutput( crbn_context_t* ctx, char* output_type, paramlist& pl );
00191 
00199 bool crbnOutFormat( crbn_context_t* ctx, char* prefix, int32 dnumber );
00200 
00201 /*********************************************************************
00202  * Frame Entities
00203  *
00204  * They have no effect outside a crbnFrameBegin/crbnFrameEnd block.
00205  *********************************************************************/
00206 
00214 bool crbnCamera( crbn_context_t* ctx, char* camera_type, paramlist& pl );
00215 
00224 bool crbnView( crbn_context_t* ctx,
00225                float xp, float yp, float zp,
00226                float xt, float yt, float zt,
00227                float xv, float yv, float zv );
00228 
00236 bool crbnObject( crbn_context_t* ctx, char* object_type, paramlist& pl );
00237 
00246 bool crbnDuplicate( crbn_context_t* ctx, char* name );
00247 
00255 bool crbnBoundingBox( crbn_context_t* ctx,
00256                       float a0, float a1, float a2,
00257                       float b0, float b1, float b2 );
00258 
00266 bool crbnMatter( crbn_context_t* ctx, char* matter_type, paramlist& pl );
00267 
00274 bool crbnRadiance( crbn_context_t* ctx, float intensity );
00275 
00284 bool crbnColor( crbn_context_t* ctx, float red, float green, float blue );
00285 
00286 /*********************************************************************
00287  * Matrices manipulation
00288  *
00289  * They have no effect outside a crbnFrameBegin/crbnFrameEnd block.
00290  *********************************************************************/
00291 
00297 bool crbnIdentity( crbn_context_t* ctx );
00298 
00308 bool crbnMatrixLoad( crbn_context_t* ctx,
00309                      float a00, float a01, float a02, float a03,
00310                      float a10, float a11, float a12, float a13,
00311                      float a20, float a21, float a22, float a23,
00312                      float a30, float a31, float a32, float a33 );
00313 
00324 bool crbnMatrixMul( crbn_context_t* ctx,
00325                     float a00, float a01, float a02, float a03,
00326                     float a10, float a11, float a12, float a13,
00327                     float a20, float a21, float a22, float a23,
00328                     float a30, float a31, float a32, float a33 );
00329 
00336 bool crbnTranslate( crbn_context_t* ctx,
00337                     float tx, float ty, float tz );
00338 
00345 bool crbnScale( crbn_context_t* ctx,
00346                 float sx, float sy, float sz );
00347 
00355 bool crbnRotate( crbn_context_t* ctx,
00356                  float angle, float x, float y, float z );
00357 
00358 #endif // __crbn_hpp__

Generated on Tue Nov 14 15:40:08 2006 for libcrbn by  doxygen 1.5.0