36 #include "geos/geom/Coordinate.h" 37 #include "geos/geom/MultiPolygon.h" 38 #include "geos/geom/CoordinateSequence.h" 173 void Create(
Cube &cube,
int sinc = 1,
int linc = 1,
174 int ss = 1,
int sl = 1,
int ns = 0,
int nl = 0,
int band = 1,
175 bool increasePrecision =
false);
178 int ns = 0,
int nl = 0,
int band = 1);
186 p_emission = emission;
194 p_incidence = incidence;
217 p_subpixelAccuracy = div;
246 bool SetImage(
const double sample,
const double line);
248 geos::geom::Coordinate FindFirstPoint();
250 geos::geom::Coordinate FindNextPoint(geos::geom::Coordinate *currentPoint,
251 geos::geom::Coordinate lastPoint,
252 int recursionDepth = 0);
254 double DistanceSquared(
const geos::geom::Coordinate *p1,
const geos::geom::Coordinate *p2);
256 void MoveBackInsideImage(
double &sample,
double &line,
double sinc,
double linc);
257 bool InsideImage(
double sample,
double line);
259 void FixPolePoly(std::vector<geos::geom::Coordinate> *crossingPoints);
262 geos::geom::Coordinate FindBestPoint(geos::geom::Coordinate *currentPoint,
263 geos::geom::Coordinate newPoint,
264 geos::geom::Coordinate lastPoint);
265 geos::geom::Coordinate FixCornerSkip(geos::geom::Coordinate *currentPoint,
266 geos::geom::Coordinate newPoint);
268 void FindSubpixel(std::vector<geos::geom::Coordinate> & points);
270 void calcImageBorderCoordinates();
277 geos::geom::CoordinateSequence *p_pts;
279 geos::geom::MultiPolygon *p_polygons;
281 std::string p_polyStr;
285 geos::geom::Coordinate *m_leftCoord;
286 geos::geom::Coordinate *m_rightCoord;
287 geos::geom::Coordinate *m_topCoord;
288 geos::geom::Coordinate *m_botCoord;
302 int p_subpixelAccuracy;
double validSampleDim()
Retuns the maximum valid sample width of the cube set with either initCube() or Create() ...
Definition: ImagePolygon.cpp:529
ImagePolygon()
Constructs a Polygon object, setting the polygon name.
Definition: ImagePolygon.cpp:56
double validLineDim()
Retuns the maximum valid line width of the cube set with either initCube() or Create() ...
Definition: ImagePolygon.cpp:544
Universal Ground Map.
Definition: UniversalGroundMap.h:85
Buffer for containing a three dimensional section of an image.
Definition: Brick.h:61
Camera * initCube(Cube &cube, int ss=1, int sl=1, int ns=0, int nl=0, int band=1)
Create a Polygon from given cube.
Definition: ImagePolygon.cpp:114
int getSinc() const
Return the sample increment used the create this polygon.
Definition: ImagePolygon.h:229
void Create(Cube &cube, int sinc=1, int linc=1, int ss=1, int sl=1, int ns=0, int nl=0, int band=1, bool increasePrecision=false)
Create a Polygon from given cube.
Definition: ImagePolygon.cpp:210
Create cube polygons, read/write polygons to blobs.
Definition: ImagePolygon.h:167
void SubpixelAccuracy(int div)
The subpixel accuracy to use.
Definition: ImagePolygon.h:216
void Emission(double emission)
Set the maximum emission angle ( light refleted to camera )
Definition: ImagePolygon.h:185
void WriteInit()
Initializes for writing polygon to cube blob.
Definition: ImagePolygon.cpp:1355
void ReadData(std::istream &is)
Reads Multipolygon from cube blob.
Definition: ImagePolygon.cpp:1323
int getLinc() const
Return the line increment used the create this polygon.
Definition: ImagePolygon.h:234
void WriteData(std::fstream &os)
Writes polygon to cube blob.
Definition: ImagePolygon.cpp:1377
void EllipsoidLimb(bool ellip)
If a limb is detected, use un ellipsoid shape model if true.
Definition: ImagePolygon.h:203
Namespace for ISIS/Bullet specific routines.
Definition: Apollo.h:31
geos::geom::MultiPolygon * Polys()
Return a geos Multipolygon.
Definition: ImagePolygon.h:221
void Incidence(double incidence)
Set the maximum incidence angle ( light contacting the planet )
Definition: ImagePolygon.h:193
~ImagePolygon()
Destroys the Polygon object.
Definition: ImagePolygon.cpp:79
IO Handler for Isis Cubes.
Definition: Cube.h:170