00001
00002
00003 #ifndef __FDH_TREE_H
00004 #define __FDH_TREE_H
00005
00006 #include <esg/Definitions.h>
00007 #include <esg/SceneGraphObject.h>
00008 #include <esg/spacesorting/BVH.h>
00009 #include <esg/geometry/FDH.h>
00010 #include <esg/geometry/BVList.h>
00011
00012 namespace esg {
00013
00014 class OGSCENE_EXPORT FDHTree : public BVH {
00015 protected:
00016 virtual bool _enlarge_bv (Geometry**, Geometry&);
00017 virtual Geometry* _create_bv (List<SceneGraphObject>&);
00018 virtual Geometry* _create_bv (Geometry&, Geometry&);
00019 virtual Geometry* _create_bv (SceneGraphObject&);
00020 virtual Geometry* _create_bv (const float*, unsigned);
00021 virtual BVList* _create_list ();
00022
00023
00024
00025
00026 virtual void _duplicate_attributes (const SDS&);
00027
00028 const unsigned _dirs;
00029 const float (*_fdhMat)[3];
00030
00031 FDHTree (unsigned d, const float (*m)[3]) : _dirs(d), _fdhMat(m) {}
00032
00033 public:
00034 FDHTree (unsigned,
00035 unsigned,
00036 const float(*)[3],
00037 const unsigned,
00038 bool,
00039 BVList::SplitStrategy
00040 );
00041
00042 virtual SDS* clone () const;
00043 };
00044
00045 };
00046
00047 #endif // __FDH_TREE_H