00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef GEOS_NODING_BASICSEGMENTSTRING_H
00021 #define GEOS_NODING_BASICSEGMENTSTRING_H
00022
00023 #include <geos/export.h>
00024 #include <geos/noding/SegmentString.h>
00025 #include <geos/geom/CoordinateSequence.h>
00026
00027 #include <geos/inline.h>
00028
00029 #include <vector>
00030
00031
00032 namespace geos {
00033 namespace algorithm {
00034
00035 }
00036 }
00037
00038 namespace geos {
00039 namespace noding {
00040
00051 class GEOS_DLL BasicSegmentString : public SegmentString {
00052
00053 public:
00054
00056
00061 BasicSegmentString(geom::CoordinateSequence *newPts,
00062 const void* newContext)
00063 :
00064 SegmentString(newContext),
00065 pts(newPts)
00066 {}
00067
00068 virtual ~BasicSegmentString()
00069 {}
00070
00072 virtual unsigned int size() const
00073 {
00074 return pts->size();
00075 }
00076
00078 virtual const geom::Coordinate& getCoordinate(unsigned int i) const;
00079
00081 virtual geom::CoordinateSequence* getCoordinates() const;
00082
00084 virtual bool isClosed() const;
00085
00087 virtual std::ostream& print(std::ostream& os) const;
00088
00096 int getSegmentOctant(unsigned int index) const;
00097
00098 private:
00099
00100 geom::CoordinateSequence *pts;
00101
00102 };
00103
00104 }
00105 }
00106
00107 #ifdef GEOS_INLINE
00108 # include "geos/noding/SegmentString.inl"
00109 #endif
00110
00111 #endif // ndef GEOS_NODING_BASICSEGMENTSTRING_H
00112