20 static const char* NUMBER_VERTICES_KW =
"number_vertices";
30 out <<
"P" << i <<
": " << poly[i] << std::endl;
32 out <<
"P" << (poly.
size()-1)
33 <<
": " << poly[poly.
size()-1] << std::endl;
37 out <<
"P0: " << poly[0] << std::endl;
56 theVertexList(points),
66 theVertexList(rhs.theVertexList),
67 theAttributeList(rhs.theAttributeList),
68 theHoleList(rhs.theHoleList),
69 theCurrentVertex(rhs.theCurrentVertex),
70 theOrderingType(rhs.theOrderingType)
89 std::vector<ossimString> splitArray = wmsBbox.
split(
",");
91 if(splitArray.size()>=4)
93 double minx = splitArray[0].trim().toDouble();
94 double miny = splitArray[1].trim().toDouble();
95 double maxx = splitArray[2].trim().toDouble();
96 double maxy = splitArray[3].trim().toDouble();
117 for(i = 0; i < upper; ++i)
162 double signMult = 1.0;
176 bool equalEndsFlag =
false;
179 equalEndsFlag =
true;
188 equalEndsFlag =
false;
204 diffPrev = diffPrev*(1.0/diffPrev.
length());
205 diffNext = diffNext*(1.0/diffNext.length());
209 ossimDpt diffNextNormal(-diffNext.y,
212 averageNormal = (diffPrevNormal + diffNextNormal);
213 averageNormal = averageNormal*(signMult*(1.0/averageNormal.
length()));
216 averageNormal*displacement;
217 newPolygon[i].latd(newPoint.
lat);
218 newPolygon[i].lond(newPoint.
lon);
220 newPolygon[i].datum(datum);
241 diffPrev = diffPrev*(1.0/diffPrev.
length());
242 diffNext = diffNext*(1.0/diffNext.length());
246 ossimDpt diffNextNormal(-diffNext.y,
249 averageNormal = (diffPrevNormal + diffNextNormal);
250 averageNormal = averageNormal*(signMult*(1.0/averageNormal.
length()));
253 averageNormal*displacement;
254 newPolygon[0].latd(newPoint.
lat);
255 newPolygon[0].lond(newPoint.
lon);
257 newPolygon[0].datum(datum);
303 double areaValue =
area();
308 else if(areaValue <= 0)
338 const char* prefix)
const 383 const char* number_vertices = kwl.
find(prefix, NUMBER_VERTICES_KW);
391 for(i = 0; i < vertexCount; ++i)
397 in>>lat>>lon>>height;
std::vector< ossimString > theAttributeList
ossimGpt computeCentroid() const
static const char * DATUM_KW
void stretchOut(ossimGeoPolygon &newPolygon, double displacement)
Represents serializable keyword/value map.
static ossimDatumFactoryRegistry * instance()
instance method
const char * find(const char *key) const
std::vector< ossimGeoPolygon > theHoleList
bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
static ossimString toString(bool aValue)
Numeric to string methods.
void split(std::vector< ossimString > &result, const ossimString &separatorList, bool skipBlankFields=false) const
Splits this string into a vector of strings (fields) using the delimiter list specified.
bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
static const char * TYPE_KW
void add(const char *prefix, const ossimKeywordlist &kwl, bool overwrite=true)
void resize(ossim_uint32 newSize)
bool addWmsBbox(const ossimString &wmsBbox)
std::ostream & operator<<(std::ostream &out, const ossimGeoPolygon &poly)
unsigned int ossim_uint32
virtual const ossimDatum * create(const ossimString &code) const
create method
ossimString trim(const ossimString &valueToTrim=ossimString(" \\)) const
this will strip lead and trailing character passed in.
bool vertex(int index, ossimGpt &v) const
std::vector< ossimGpt > theVertexList
void addPoint(const ossimGpt &pt)
void checkOrdering() const
ossim_uint32 size() const
long toLong() const
toLong's deprecated, please use the toInts...
bool nextVertex(ossimDpt &v) const
ossimVertexOrdering theOrderingType
ossim_int32 theCurrentVertex
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string's contents...
const ossimGeoPolygon & operator=(const std::vector< ossimGpt > &rhs)
std::basic_istringstream< char > istringstream
Class for char input memory streams.
std::basic_ostream< char > ostream
Base class for char output streams.