00001 #ifndef OCTREE_VISITOR_REMOVE_FACE_H 00002 #define OCTREE_VISITOR_REMOVE_FACE_H 00003 00004 #include "meshmorph.h" 00005 00006 #include "face.h" 00007 #include "Octree.h" 00008 #include <iostream> 00009 00010 using hxa7241_graphics::OctreeVisitor; 00011 using hxa7241_graphics::Vector3r; 00012 using hxa7241_graphics::OctreeCell; 00013 using hxa7241_graphics::OctreeData; 00014 using hxa7241_graphics::Array; 00015 using hxa7241_graphics::OctreeRoot; 00016 using hxa7241_graphics::dword; 00017 using hxa7241_graphics::OctreeBranch; 00018 00019 00020 class Octree_Visitor_Remove_Face 00021 : public OctreeVisitor<Face> 00022 { 00024 public: 00025 Octree_Visitor_Remove_Face(Face *,Vector3r,Vector3r,Vector3r,Vector3r); 00026 00027 virtual ~Octree_Visitor_Remove_Face(); 00028 00029 private: 00030 Octree_Visitor_Remove_Face( const Octree_Visitor_Remove_Face& ); 00031 Octree_Visitor_Remove_Face& operator=( const Octree_Visitor_Remove_Face& ); 00032 00033 00036 protected: 00037 virtual void visitRoot ( const OctreeCell* pRootCell, 00038 const OctreeData& octreeData ); 00039 virtual void visitBranch( const OctreeCell* subCells[8], 00040 const OctreeData& octreeData ); 00041 virtual void visitLeaf ( const Array<const Face*>& items, 00042 const OctreeData& octreeData ); 00043 00044 // any other commands ... 00045 00046 00048 // any queries ... 00049 00050 00052 private: 00053 Face * face; 00054 Vector3r * mylower; 00055 Vector3r * myupper; 00056 Vector3r * newlower; 00057 Vector3r * newupper; 00058 }; 00059 00060 #endif