boundary_3.h

00001 #ifndef BOUNDARY_3_H
00002 #define BOUNDARY_3_H
00003 #include "afltypes.h"
00004 #include "boundary.h"
00005 
00006 #include <iostream>
00007 #include <list>
00008 
00009 namespace afl
00010 {
00017     class Boundary_3 
00018     {
00022         public:
00029             Boundary_3( const Point& from, const Point& to, bool colour );
00030 
00036             Boundary_3( const Field* field, bool colour );
00037 
00042             Boundary_3( const Boundary_3& toCopy );
00043 
00047             virtual ~Boundary_3(  );
00048 
00056             virtual troolean locate( const Point& p ) const;
00057             
00069             virtual data_t intersect( const Point& p, const Point& v ) const;
00070 
00081             virtual void addSegment( const Point& from, const Point& to );
00082 
00093             virtual void addSegment( const Field* field );
00094 
00103              virtual void toXML( std::ostream& doc, 
00104                      const std::string& componentsDir, 
00105                      const std::string& baseURI ) const;
00106 
00110              virtual Boundary_3* clone(  );
00111 
00118             virtual Point findNearest( const Point& p ) const;
00119 
00126             virtual Value getNormal( const Point& p ) const;
00127 
00134             virtual Point getBoundingBoxMin(  ) const;
00135 
00142             virtual Point getBoundingBoxMax(  ) const;
00143 
00144         protected:
00145             friend class SimpleBoundary_3;
00146             friend class FieldBoundary_3;
00147             friend class BoundaryTree_3;
00148 
00152             Boundary_3(  );
00153 
00162             virtual int whereIs( const Point& p ) const;
00163 
00172             virtual bool intersectSegment( const Point& from, const Point& to ) const;
00173 
00177              bool _colour;
00178 
00182              std::list<Boundary_3> _segments;
00183                 
00187             Boundary_3* _impl;
00188             
00189         }; //class Boundary_3
00190 
00191 } // namespace afl
00192 
00193 #endif //BOUNDARY_3_H
00194 

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