faogenlib.h

Go to the documentation of this file.
00001 
00002 
00003 
00004 #ifndef faogenlib_h
00005 #define faogenlib_h
00006 
00007 #define FAOGEN_API 
00008 
00010 namespace faogenlib
00011 {
00013         typedef unsigned int size_type;
00014 
00016         typedef int obj_handle;
00017 
00020         FAOGEN_API bool __stdcall initialize();
00021 
00024         FAOGEN_API void __stdcall shutdown();
00025 
00027         enum e_index_type
00028         {
00029                 INDEX_U16,      
00030                 INDEX_U32       
00031         };
00032 
00049         FAOGEN_API obj_handle __stdcall create_object_v( 
00050                 float const * vertices3f, size_type vertices_stride, 
00051                 size_type num_vertices, 
00052                 e_index_type index_type,
00053                 void const * triangle_indices, size_type num_indices );
00054 
00076         FAOGEN_API obj_handle __stdcall create_object_vn( 
00077                 float const * vertices3f, size_type vertices_stride, 
00078                 float const * normals3f, size_type normals_stride, 
00079                 size_type num_vertices, 
00080                 e_index_type index_type,
00081                 void const * triangle_indices, size_type num_indices );
00082 
00110         FAOGEN_API obj_handle __stdcall create_object_vnt( 
00111                 float const * vertices3f, size_type vertices_stride, 
00112                 float const * normals3f, size_type normals_stride, 
00113                 float const * texcoords2f, size_type texcoords_stride, 
00114                 size_type num_vertices, 
00115                 e_index_type index_type, 
00116                 void const * triangle_indices, size_type num_indices );
00117 
00151         FAOGEN_API obj_handle __stdcall create_object_vnta( 
00152                 float const * vertices3f, size_type vertices_stride, 
00153                 float const * normals3f, size_type normals_stride, 
00154                 float const * texcoords2f, size_type texcoords_stride, 
00155                 float const * atest_texcoords2f, size_type atest_texcoords_stride, 
00156                 size_type num_vertices, 
00157                 e_index_type index_type, 
00158                 void const * triangle_indices, size_type num_indices );
00159 
00168         FAOGEN_API void __stdcall set_object_alphamap( obj_handle object_id, 
00169                 size_type width, size_type height, size_type num_channels,
00170                 unsigned char const * pixels );
00171 
00176         FAOGEN_API void __stdcall set_object_matrix( obj_handle object_id, float const * matrix );
00177 
00202         FAOGEN_API bool __stdcall start_ao_gen_vert( obj_handle object_id, 
00203                 size_type depth_size, float zoffset, float overbright, 
00204                 size_type quality, bool cosine_mode, int hemisphere_mode, bool bent_n );
00205 
00234         FAOGEN_API bool __stdcall start_ao_gen_tex( obj_handle object_id,
00235                 size_type depth_size, float zoffset, float overbright, 
00236                 size_type quality, bool cosine_mode,
00237                 size_type width, size_type height, int hemisphere_mode, bool bent_n );
00238 
00241         inline size_type num_iterations( size_type quality )
00242         {
00243                 return quality*quality*10 + 2;
00244         }
00245 
00248         FAOGEN_API void __stdcall ao_vert_generate( size_type iterations );
00249 
00252         FAOGEN_API void __stdcall ao_tex_generate( size_type iterations );
00253 
00256         FAOGEN_API bool __stdcall results_ready();
00257 
00265         FAOGEN_API float const * __stdcall get_vert_results();
00266 
00278         FAOGEN_API float const * __stdcall get_tex_results( size_type edge_padding );
00279 
00283         FAOGEN_API void __stdcall destroy_object( obj_handle object_id );
00284 }
00285 
00286 #endif //faogenlib_h

Generated on Fri Aug 15 20:07:46 2008 for faogenlib by  doxygen 1.4.6-NO