libcrbn/geometry/gcreator.hpp

00001 
00002 #ifndef __geometry_creator_hpp__
00003 #define __geometry_creator_hpp__
00004 
00005 #include <vector>
00006 
00007 #include <crbn/basic/basic.h>
00008 #include <crbn/basic/paramlist.hpp>
00009 
00010 #include <crbn/geometry/geometry.hpp>
00011 
00012 #include <crbn/geometry/gmod.h>
00013 
00014 typedef struct _gmod_entry {
00015   void* handle;
00016   char* name;
00017   GMOD_CREATE_PL_FUNC create_pl;
00018   GMOD_CREATE_FP_FUNC create_fp;
00019 } gmod_entry;
00020 
00021 typedef struct _gc_entry {
00022   Geometry* geometry;
00023   char* module;
00024 } gc_entry;
00025 
00026 class gCreator
00027 {
00028  public:
00029   gCreator();
00030   ~gCreator();
00031 
00032   char* last_module_called() { return _last_module_called; }
00033 
00034   void clear();
00035 
00036   Geometry* create( char* object_type, paramlist& pl );
00037   Geometry* create( char* object_type, FILE* fp );
00038 
00039  private:
00040   char* _last_module_called;
00041   std::vector<gmod_entry*> _mod_list;
00042 };
00043 
00044 #endif // __geometry_creator_hpp__

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