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