00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef GEOS_NODING_ORIENTEDCOORDINATEARRAY_H
00021 #define GEOS_NODING_ORIENTEDCOORDINATEARRAY_H
00022
00023 #include <geos/export.h>
00024
00025
00026
00027
00028
00029
00030
00031 namespace geos {
00032 namespace geom {
00033 class CoordinateSequence;
00034 }
00035 namespace noding {
00036
00037 }
00038 }
00039
00040 namespace geos {
00041 namespace noding {
00042
00047 class GEOS_DLL OrientedCoordinateArray
00048 {
00049 public:
00050
00057 OrientedCoordinateArray(const geom::CoordinateSequence& pts)
00058 :
00059 pts(pts),
00060 orientationVar(orientation(pts))
00061 {
00062 }
00063
00075 int compareTo(const OrientedCoordinateArray& o1) const;
00076
00077
00078 private:
00079
00080 static int compareOriented(const geom::CoordinateSequence& pts1,
00081 bool orientation1,
00082 const geom::CoordinateSequence& pts2,
00083 bool orientation2);
00084
00085
00093 static bool orientation(const geom::CoordinateSequence& pts);
00094
00096 const geom::CoordinateSequence& pts;
00097
00098 bool orientationVar;
00099
00100
00101 OrientedCoordinateArray(const OrientedCoordinateArray& other);
00102 OrientedCoordinateArray& operator=(const OrientedCoordinateArray& rhs);
00103 };
00104
00105 }
00106 }
00107
00108
00109 #endif // GEOS_NODING_ORIENTEDCOORDINATEARRAY_H
00110