00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef GEOS_OP_TOPOLOGYVALIDATIONERROR_H
00022 #define GEOS_OP_TOPOLOGYVALIDATIONERROR_H
00023
00024 #include <geos/export.h>
00025 #include <string>
00026
00027 #include <geos/geom/Coordinate.h>
00028
00029
00030
00031
00032 namespace geos {
00033 namespace operation {
00034 namespace valid {
00035
00041 class GEOS_DLL TopologyValidationError {
00042 public:
00043
00044 enum errorEnum {
00045 eError,
00046 eRepeatedPoint,
00047 eHoleOutsideShell,
00048 eNestedHoles,
00049 eDisconnectedInterior,
00050 eSelfIntersection,
00051 eRingSelfIntersection,
00052 eNestedShells,
00053 eDuplicatedRings,
00054 eTooFewPoints,
00055 eInvalidCoordinate,
00056 eRingNotClosed
00057 };
00058
00059 TopologyValidationError(int newErrorType, const geom::Coordinate& newPt);
00060 TopologyValidationError(int newErrorType);
00061 geom::Coordinate& getCoordinate();
00062 std::string getMessage();
00063 int getErrorType();
00064 std::string toString();
00065
00066 private:
00067
00068 static const char* errMsg[];
00069 int errorType;
00070 geom::Coordinate pt;
00071 };
00072
00073
00074 }
00075 }
00076 }
00077
00078 #endif // GEOS_OP_TOPOLOGYVALIDATIONERROR_H
00079
00080
00081
00082
00083
00084
00085
00086