//============================================================================ // sphrtree.hpp //============================================================================ #ifndef _SPHERETREE_ #define _SPHERETREE_ #include "common.hpp" #include "bvtree.hpp" class SPHEREtree : public BVtree { private: // TREE OPERATIONS void BuildHierarchy(); int Subdivide(); void FindTightFit(); int FindSplitAxis(Vect3d SplitPt); public: // NODE (BV) OPERATIONS int OverlapPlane(Plane P) const { return(0); }; // NOT YET IMPLEMENTED int OverlapVF(ViewFrustum* VF) const; int EdgeIntersect(Vect3d Start, Vect3d End) const { return(0); }; int RayIntersect(Vect3d Start, Vect3d Dir, float& InT, float& OutT) const { return(0); }; Vect3d Center; float Radius; SPHEREtree() : BVtree() {}; SPHEREtree(PtSetObjList* OL, int minobjs=10) : BVtree(minobjs) { printf("copying PtSetObjList. . ."); CopyPtSetObjList(OL); printf("DONE!\n"); printf("building SPHEREtree. . ."); BuildHierarchy(); printf("DONE!\n"); printf("freeing objects, extracting IDs. . ."); PtSetObjListToIDs(); printf("DONE!\n"); }; }; #endif