00001 #ifndef OCTREE_VISITOR_ADD_FACE_H 00002 #define OCTREE_VISITOR_ADD_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_Add_Face 00021 : public OctreeVisitor<Face> 00022 { 00023 // standard object services --------------------------------------------------- 00024 public: 00025 Octree_Visitor_Add_Face(Face * f,Vector3r low,Vector3r up,Vector3r newlow,Vector3r newup); 00026 00027 virtual ~Octree_Visitor_Add_Face(); 00028 00029 private: 00030 Octree_Visitor_Add_Face( const Octree_Visitor_Add_Face& ); 00031 Octree_Visitor_Add_Face& operator=( const Octree_Visitor_Add_Face& ); 00032 00033 00034 // commands ------------------------------------------------------------------- 00035 // octree visitor overrides 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 00047 // queries -------------------------------------------------------------------- 00048 // any queries ... 00049 00050 00051 // fields --------------------------------------------------------------------- 00052 private: 00053 Face * face; 00054 Vector3r * mylower; 00055 Vector3r * myupper; 00056 Vector3r * newlower; 00057 Vector3r * newupper; 00058 }; 00059 00060 #endif