boundarytree_1.h

00001 #ifndef BOUNDARYTREE_1_H
00002 #define BOUNDARYTREE_1_H
00003 #include "afltypes.h"
00004 #include "boundary.h"
00005 #include "boundary_1.h"
00006 
00007 #include <iostream>
00008 #include <list>
00009 
00010 namespace afl
00011 {
00015     class BoundaryTree_1 : public Boundary
00016     {
00020         public:
00033             BoundaryTree_1( const Field* field );
00034 
00045             virtual troolean locate( const Point& p ) const;
00046             
00058             virtual data_t intersect( const Point& p, const Point& v ) const;
00059 
00070             virtual void addSegment( const Point& from, const Point& to );
00071 
00082             virtual void addSegment( const Field* field );
00083 
00092              virtual void toXML( std::ostream& doc, 
00093                      const std::string& componentsDir, 
00094                      const std::string& baseURI ) const;
00095 
00099              virtual Boundary* clone(  );
00100             
00107             virtual Point getBoundingBoxMin(  ) const;
00108 
00109 
00116             virtual Point getBoundingBoxMax(  ) const;
00117 
00124             virtual bool hasNoSegments(  ) const;
00125 
00132             virtual Point findNearest( const Point& p ) const;
00133 
00140             virtual Value getNormal( const Point& p ) const;
00141             
00145         private:
00152              std::list<Boundary_1> _segments;
00153 
00157         }; //class BoundaryTree_1
00158 
00159 } // namespace afl
00160 
00161 #endif //BOUNDARYTREE_1_H
00162 

Generated on Fri Dec 22 07:17:50 2006 for afl by  doxygen 1.4.6