25 #include <geos/geom/GeometryFactory.h> 26 #include <geos/geom/MultiPolygon.h> 27 #include <geos/geom/CoordinateSequence.h> 63 class UniversalGroundMap;
66 static geos::geom::GeometryFactory globalFactory;
142 const geos::geom::MultiPolygon &lonLatPoly,
TProjection *proj);
145 const geos::geom::MultiPolygon &xYPoly,
TProjection *proj);
151 static geos::geom::MultiPolygon *
CopyMultiPolygon(
const geos::geom::MultiPolygon *mpolygon);
152 static geos::geom::MultiPolygon *
CopyMultiPolygon(
const geos::geom::MultiPolygon &mpolygon);
154 static geos::geom::MultiPolygon *
Despike(
const geos::geom::Geometry *geom);
155 static geos::geom::MultiPolygon *
Despike(
const geos::geom::MultiPolygon *multiPoly);
156 static geos::geom::LinearRing *
Despike(
const geos::geom::LineString *linearRing);
159 static geos::geom::MultiPolygon *
To180(geos::geom::MultiPolygon *poly360);
162 static QString
ToGML(
const geos::geom::MultiPolygon *mpolygon,
163 QString idString = QString(
"0"),
164 QString schema = QString(
""));
170 static double Thickness(
const geos::geom::MultiPolygon *mpolygon);
172 static geos::geom::Geometry *
Intersect(
const geos::geom::Geometry *geom1,
173 const geos::geom::Geometry *geom2);
174 static geos::geom::Geometry *
Difference(
const geos::geom::Geometry *geom1,
175 const geos::geom::Geometry *geom2);
177 static geos::geom::MultiPolygon *
MakeMultiPolygon(
const geos::geom::Geometry *geom);
181 static bool Equal(
const geos::geom::MultiPolygon *poly1,
182 const geos::geom::MultiPolygon *poly2);
183 static bool Equal(
const geos::geom::Polygon *poly1,
const geos::geom::Polygon *poly2);
184 static bool Equal(
const geos::geom::LineString *lineString1,
185 const geos::geom::LineString *lineString2);
186 static bool Equal(
const geos::geom::Coordinate &coord1,
const geos::geom::Coordinate &coord2);
187 static bool Equal(
const double d1,
const double d2);
189 static geos::geom::MultiPolygon *FixSeam(
const geos::geom::MultiPolygon *poly);
190 static geos::geom::MultiPolygon *FixSeam(
const geos::geom::Polygon *polyA,
191 const geos::geom::Polygon *polyB);
193 static geos::geom::Geometry *
ReducePrecision(
const geos::geom::Geometry *geom,
194 unsigned int precision);
195 static geos::geom::MultiPolygon *
ReducePrecision(
const geos::geom::MultiPolygon *poly,
196 unsigned int precision);
197 static geos::geom::Polygon *
ReducePrecision(
const geos::geom::Polygon *poly,
198 unsigned int precision);
199 static geos::geom::LinearRing *
ReducePrecision(
const geos::geom::LinearRing *ring,
200 unsigned int precision);
201 static geos::geom::Coordinate *
ReducePrecision(
const geos::geom::Coordinate *coord,
202 unsigned int precision);
205 static geos::geom::MultiPolygon *FixPolePolygon(
const geos::geom::MultiPolygon *polePolygon,
207 static geos::geom::MultiPolygon *
SplitPolygonOn360(
const geos::geom::Polygon *inPoly);
212 static bool IsSpiked(geos::geom::Coordinate first,
213 geos::geom::Coordinate middle, geos::geom::Coordinate last);
215 static bool TestSpiked(geos::geom::Coordinate first, geos::geom::Coordinate middle,
216 geos::geom::Coordinate last);
218 static geos::geom::Geometry *
FixGeometry(
const geos::geom::Geometry *geom);
219 static geos::geom::MultiPolygon *
FixGeometry(
const geos::geom::MultiPolygon *poly);
220 static geos::geom::Polygon *
FixGeometry(
const geos::geom::Polygon *poly);
221 static geos::geom::LinearRing *
FixGeometry(
const geos::geom::LinearRing *ring);
223 static geos::geom::Geometry *Operate(
const geos::geom::Geometry *geom1,
224 const geos::geom::Geometry *geom2,
unsigned int opcode);
228 geos::geom::MultiPolygon *p_polygons;
Base class for Map TProjections.
Namespace for ISIS/Bullet specific routines.