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
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
00039
00040 typedef void(*crbn_stat_cb)( crbn_stat_t* stat );
00041
00042
00043
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
00089
00090
00091 bool crbnStatCallback( crbn_context_t* ctx, char* where, crbn_stat_cb cb );
00092
00093
00094
00095
00096
00097 bool crbnOption( crbn_context_t* ctx, char* where, paramlist& pl );
00098
00099
00100
00101
00102
00110 bool crbnFrameBegin( crbn_context_t* ctx, int32 frame );
00111
00117 bool crbnFrameEnd( crbn_context_t* ctx );
00118
00119
00120
00121
00122
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
00203
00204
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
00288
00289
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__