00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __GZ_DB_PFB_H__
00023 #define __GZ_DB_PFB_H__
00024
00030 #include "gzNode.h"
00031 #include "gzGeometry.h"
00032
00033
00034 const gzString GZ_DB_INFO_TYPE_PERFORMER ="pfb";
00035
00036 class gzDbManager_pfb : public gzDbManager
00037 {
00038 public:
00039
00040 GZ_DB_EXPORT gzDbManager_pfb();
00041 GZ_DB_EXPORT virtual ~gzDbManager_pfb(){};
00042
00043 GZ_DB_EXPORT virtual gzNode * loadDB(gzSerializeAdapter *adapter);
00044
00045
00046
00047 GZ_DB_EXPORT virtual gzString getExtensions();
00048
00049 GZ_DB_EXPORT virtual gzULong getVersion(const gzString &extension);
00050
00051
00052 protected:
00053
00054
00055
00056 gzULong read_VLIST( gzULong length , gzULong list_number);
00057 gzULong read_NLIST( gzULong length , gzULong list_number);
00058 gzULong read_LLIST( gzULong length , gzULong list_number);
00059 gzULong read_CLIST( gzULong length , gzULong list_number);
00060 gzULong read_TLIST( gzULong length , gzULong list_number);
00061 gzULong read_ILIST( gzULong length , gzULong list_number);
00062
00063
00064 gzULong read_MTL( gzULong length , gzULong list_number);
00065 gzULong read_TEX( gzULong length , gzULong list_number);
00066 gzULong read_TENV( gzULong length , gzULong list_number);
00067 gzULong read_GSET( gzULong length , gzULong list_number);
00068 gzULong read_GSTATE(gzULong length , gzULong list_number);
00069 gzULong read_NODE( gzULong length , gzULong list_number);
00070 gzULong read_IMAGE( gzULong length , gzULong list_number);
00071
00072 gzULong read_Shared_List_Type( gzULong length, gzInt *size);
00073
00074
00075 gzVoid resolveChildren();
00076
00077 private:
00078
00079 gzDynamicArray< gzArray< gzVec3 > > m_list_VLIST;
00080 gzDynamicArray< gzArray< gzVec3 > > m_list_NLIST;
00081 gzDynamicArray< gzArray< gzVec4 > > m_list_CLIST;
00082 gzDynamicArray< gzArray< gzUShort > > m_list_ILIST;
00083 gzDynamicArray< gzArray< gzVec2 > > m_list_TLIST;
00084 gzDynamicArray< gzArray< gzULong > > m_list_LLIST;
00085
00086 gzDynamicArray< gzRefPointer< gzMaterial > > m_list_MTL;
00087 gzDynamicArray< gzRefPointer< gzTexEnv > > m_list_TENV;
00088 gzDynamicArray< gzRefPointer< gzTexture > > m_list_TEX;
00089 gzDynamicArray< gzRefPointer< gzGeometry > > m_list_GEOM;
00090 gzDynamicArray< gzRefPointer< gzNode > > m_list_NODES;
00091 gzDynamicArray< gzRefPointer< gzState > > m_list_STATES;
00092
00093 gzDynamicArray< gzRefPointer< gzRefData< gzArray<gzUByte> > > > m_list_IMAGES;
00094
00095 gzDynamicArray< gzArray<gzULong> > m_list_CHILD;
00096
00097 gzULong m_currentVersion;
00098
00099 gzBool m_useBigEnedian;
00100
00101 gzMutex m_locker;
00102
00103 gzSerializeAdapter * m_adapter;
00104
00105 };
00106
00107
00108
00109
00110 #endif