4 #include "geos/io/WKBReader.h" 5 #include "geos/io/WKBWriter.h" 33 geos::geom::MultiPolygon &polygon) {
47 geos::io::WKBReader geosReader;
50 getline(inputStream, fileData);
52 QString serialNums = fileData.c_str();
53 foreach (QString serialNum, serialNums.split(
",")) {
58 getline(inputStream, fileData);
60 std::stringstream multiPolygon;
61 multiPolygon << fileData;
62 multiPolygon.seekg(0, std::ios::beg);
65 geosReader.readHEX(multiPolygon));
83 p_serialNumbers.clear();
96 if(p_polygon != NULL) {
113 if(p_polygon != NULL) {
122 void ImageOverlap::Write(std::ostream &outputStream) {
124 geos::io::WKBWriter geosWriter;
128 for(
unsigned int sn = 0; sn < p_serialNumbers.size(); sn++) {
133 serialNums += p_serialNumbers[sn];
138 outputStream << serialNums;
140 geosWriter.writeHEX(*p_polygon, outputStream);
152 for(
unsigned int s = 0; s < p_serialNumbers.size(); ++s) {
153 if(sn == p_serialNumbers[s]) {
154 QString msg =
"Duplicate SN added to [" +
155 QString::fromStdString(p_polygon->toString()) +
"]";
160 p_serialNumbers.push_back(sn);
172 return p_polygon->getArea();
181 for(
int thisSn = 0; thisSn < this->Size(); ++thisSn) {
182 for(
int otherSn = 0; otherSn < other.Size(); ++otherSn) {
183 if(p_serialNumbers[thisSn] == other.p_serialNumbers[otherSn]) {
202 for(
int thisSn = 0; thisSn < Size(); ++thisSn) {
203 if(p_serialNumbers[thisSn] == sn) {
virtual ~ImageOverlap()
Destroy this ImageOverlap object.
bool HasAnySameSerialNumber(ImageOverlap &other) const
This method will return true if any serial number from this ImageOverlap is also in the other ImageOv...
void Add(QString &sn)
This method will add a new serial number to the list of serial numbers alread associated with the ove...
bool HasSerialNumber(QString &sn) const
This method will return true if input serial number exists in the ImageOverlap.
virtual void SetPolygon(const geos::geom::MultiPolygon &polygon)
This method will replace the existing polygon that defines the overlap with a new one...
void Init()
Initialize this object to a known state.
This error is for when a programmer made an API call that was illegal.
#define _FILEINFO_
Macro for the filename and line number.
virtual double Area()
This method will return the area of the polygon.
ImageOverlap()
Construct an empty ImageOverlap object.
Namespace for ISIS/Bullet specific routines.
Individual overlap container.