boundarytree_3.h

00001 #ifndef BOUNDARYTREE_3_H
00002 #define BOUNDARYTREE_3_H
00003 #include "afltypes.h"
00004 #include "boundary.h"
00005 #include "boundary_3.h"
00006 
00007 #include <iostream>
00008 #include <list>
00009 
00010 namespace afl
00011 {
00016     class BoundaryTree_3 : public Boundary
00017     {
00021         public:
00025             BoundaryTree_3( const Field* field );
00026 
00030             virtual ~BoundaryTree_3(  );
00031 
00039             virtual troolean locate( const Point& p ) const;
00040             
00052             virtual data_t intersect( const Point& p, const Point& v ) const;
00053 
00064             virtual void addSegment( const Point& from, const Point& to );
00065 
00076             virtual void addSegment( const Field* field );
00077 
00084             virtual Point getBoundingBoxMin(  ) const;
00085 
00092             virtual Point getBoundingBoxMax(  ) const;
00093 
00102              virtual void toXML( std::ostream& doc, 
00103                      const std::string& componentsDir, 
00104                      const std::string& baseURI ) const;
00105 
00109              virtual Boundary* clone(  );
00110 
00117              virtual bool hasNoSegments(  ) const;
00118 
00125             virtual Point findNearest( const Point& p ) const;
00126 
00133             virtual Value getNormal( const Point& p ) const;
00134 
00135         protected:
00139              std::list<Boundary_3> _segments;
00140         }; //class BoundaryTree_3
00141 
00142 } // namespace afl
00143 
00144 #endif //BOUNDARYTREE_3_H
00145 

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