00001 #ifndef CDGEOMETRY_H
00002 #define CDGEOMETRY_H
00003 #include <SceneGraph/SGObject.h>
00004
00005 namespace Spr {;
00006
00007 class CDConvex;
00008 class CDMesh;
00009 class CDFace;
00010
00011
00012 enum CDGeometryID{
00013 GEOMETRY=0,
00014 MESH,
00015 CONVEX,
00016 WATER,
00017 NGEOMETRYID,
00018 };
00019
00020 class CDPhysicalMaterial;
00021
00022
00023
00024 class SPR_DLL CDGeometry:public SGObject{
00025 public:
00026 SGOBJECTDEFABST(CDGeometry);
00027
00028 virtual int GeometryID()=0;
00029
00030 virtual void CalcBBox(Vec3f& bbMin, Vec3f& bbMax){}
00031
00032 UTRef<CDPhysicalMaterial> pmaterial;
00033
00034 virtual bool AddChildObject(SGObject* o, SGScene* s);
00035
00036 virtual size_t NChildObjects(){ return pmaterial ? 1 : 0; }
00037
00038 virtual SGObject* ChildObject(size_t i);
00039 };
00040
00041 class SPR_DLL CDGeometries:public std::vector< UTRef<class CDGeometry> >{
00042 public:
00043 };
00044
00045 }
00046 #endif