00001 /* $Id: FDH14Tree.h,v 1.2 2002/11/05 14:31:15 anonymous Exp $ */ 00002 00003 #ifndef __FDH_14_TREE_H 00004 #define __FDH_14_TREE_H 00005 00006 #include <esg/geometry/BVList.h> 00007 #include <esg/geometry/FDH14List.h> 00008 #include <esg/geometry/FDH14.h> 00009 #include <esg/spacesorting/FDHTree.h> 00010 #include <esg/spacesorting/BVH.h> 00011 #include <esg/spacesorting/FDH14DistRot.h> 00012 00013 namespace esg { 00014 00015 class OGSCENE_EXPORT FDH14Tree : public FDHTree { 00016 protected: 00017 FDH14::RotInfo * _pRotInfo; // Precomputed rotation informations used 00018 00019 protected: 00020 virtual Geometry* _create_bv (List<SceneGraphObject>&); 00021 virtual Geometry* _create_bv (Geometry&, Geometry&); 00022 virtual Geometry* _create_bv (SceneGraphObject&); 00023 virtual Geometry* _create_bv (const float*, unsigned /* unused */); 00024 00025 virtual DistRot* _create_dist_rot (BVH::Node*); 00026 virtual void _dr_init (const Matrix4*, const Matrix4*, BVH*); 00027 00028 virtual void _duplicate_attributes (const SDS&); 00029 00030 FDH14Tree () : FDHTree(FDH14::DIRS, FDH14::FDHMat) {} 00031 00032 public: 00033 FDH14Tree (unsigned, /* leaf limit */ 00034 unsigned, /* depth limit */ 00035 bool /* delay creation */, 00036 BVList::SplitStrategy); 00037 00038 virtual ~FDH14Tree () { if (_pRotInfo) delete _pRotInfo; } 00039 00040 virtual SDS* clone () const; 00041 }; 00042 00043 }; // namespace 00044 00045 #endif // __FDH_14_TREE_H