simpleboundary_2.h

00001 #ifndef SIMPLEBOUNDARY_2_H
00002 #define SIMPLEBOUNDARY_2_H
00003 #include "afltypes.h"
00004 #include "boundary_2.h"
00005 
00006 #include <iostream>
00007 #include <list>
00008 
00009 namespace afl
00010 {
00015     class SimpleBoundary_2 : public Boundary_2
00016     {
00020         public:
00021 
00029             SimpleBoundary_2( const Point& from, const Point& to, bool colour );
00030 
00034             virtual ~SimpleBoundary_2(  );
00035 
00043             virtual troolean locate( const Point& p ) const;
00044             
00056             virtual data_t intersect( const Point& p, const Point& v ) const;
00057 
00068             virtual void addSegment( const Point& from, const Point& to );
00069 
00080             virtual void addSegment( const Field* field );
00081 
00088             virtual Point getStart(  ) const;
00089 
00096             virtual Point getEnd(  ) const;
00097 
00106              virtual void toXML( std::ostream& doc, 
00107                      const std::string& componentsDir, 
00108                      const std::string& baseURI ) const;
00109 
00116             virtual Point getBoundingBoxMin(  ) const;
00117 
00124             virtual Point getBoundingBoxMax(  ) const;
00125 
00129              virtual Boundary_2* clone(  );
00130 
00137             virtual Point findNearest( const Point& p ) const;
00138 
00145             virtual Value getNormal( const Point& p ) const; 
00146 
00150         protected:
00159             virtual int whereIs( const Point& p ) const;
00160 
00169             virtual bool intersectSegment( const Point& from, const Point& to ) const;
00170 
00174         private:
00178              data_t _left;
00179 
00183              data_t _top;
00184 
00188              data_t _right;
00189 
00193              data_t _bottom;
00194 
00195     }; //class SimpleBoundary_2
00196 
00197 } // namespace afl
00198 
00199 #endif //SIMPLEBOUNDARY_2_H
00200 

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