00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef __OCTTREECOMPONENT_H__
00017 #define __OCTTREECOMPONENT_H__
00018
00019
00020 #include "../../dependencies.h"
00021 #include "MeshComponent.h"
00022
00023
00024
00033 class OctTreeComponent : public MeshComponent
00034 {
00035 public:
00036
00037
00043 OctTreeComponent(Entity *parent, s32 minPolysPerNode = 256);
00050 OctTreeComponent(Entity *parent, const std::string &fileName, s32 minPolysPerNode = 256);
00058 OctTreeComponent(Entity *parent, IMesh *mesh, s32 minPolysPerNode = 256);
00066 OctTreeComponent(Entity *parent, IAnimatedMesh *mesh, s32 minPolysPerNode = 512);
00068 ~OctTreeComponent();
00069
00070
00073 void setMesh(const std::string &fileName);
00077 void setMesh(IMesh *mesh);
00078
00079
00082 void onMesh(void *p);
00083
00084
00087 static bool parseXML(IXMLReader *file, Entity *entity);
00088
00089 private:
00090
00091
00093 void init(s32 minPolysPerNode);
00094
00095
00096 ITriangleSelector *mOctTreeSelector;
00097 IMetaTriangleSelector *mLocalMetaSelector;
00098
00099 s32 mMinPolysPerNode;
00100 };
00101
00102 #endif