|
Isis Developer Reference
|
Go to the documentation of this file.
22 #include "geos/geom/Coordinate.h"
23 #include "geos/geom/MultiPolygon.h"
24 #include "geos/geom/CoordinateSequence.h"
160 void Create(
Cube &cube,
int sinc = 1,
int linc = 1,
161 int ss = 1,
int sl = 1,
int ns = 0,
int nl = 0,
int band = 1,
162 bool increasePrecision =
false);
164 void Create(std::vector<std::vector<double>> polyCoordinates);
167 int ns = 0,
int nl = 0,
int band = 1);
175 p_emission = emission;
183 p_incidence = incidence;
206 p_subpixelAccuracy = div;
233 return p_pts->size();
241 bool SetImage(
const double sample,
const double line);
243 geos::geom::Coordinate FindFirstPoint();
245 geos::geom::Coordinate FindNextPoint(geos::geom::Coordinate *currentPoint,
246 geos::geom::Coordinate lastPoint,
247 int recursionDepth = 0);
249 double DistanceSquared(
const geos::geom::Coordinate *p1,
const geos::geom::Coordinate *p2);
251 void MoveBackInsideImage(
double &sample,
double &line,
double sinc,
double linc);
252 bool InsideImage(
double sample,
double line);
254 void FixPolePoly(std::vector<geos::geom::Coordinate> *crossingPoints);
257 geos::geom::Coordinate FindBestPoint(geos::geom::Coordinate *currentPoint,
258 geos::geom::Coordinate newPoint,
259 geos::geom::Coordinate lastPoint);
260 geos::geom::Coordinate FixCornerSkip(geos::geom::Coordinate *currentPoint,
261 geos::geom::Coordinate newPoint);
263 void FindSubpixel(std::vector<geos::geom::Coordinate> & points);
265 void calcImageBorderCoordinates();
272 geos::geom::CoordinateSequence *p_pts;
274 geos::geom::MultiPolygon *p_polygons;
276 std::string p_polyStr;
280 geos::geom::Coordinate *m_leftCoord;
281 geos::geom::Coordinate *m_rightCoord;
282 geos::geom::Coordinate *m_topCoord;
283 geos::geom::Coordinate *m_botCoord;
297 int p_subpixelAccuracy;
ImagePolygon()
Constructs a Polygon object, setting the polygon name.
Definition: ImagePolygon.cpp:40
void Incidence(double incidence)
Set the maximum incidence angle ( light contacting the planet )
Definition: ImagePolygon.h:182
void SetBasePosition(const int start_sample, const int start_line, const int start_band)
This method is used to set the base position of the shape buffer.
Definition: Brick.h:120
~ImagePolygon()
Destroys the Polygon object.
Definition: ImagePolygon.cpp:86
virtual QString fileName() const
Returns the opened cube's filename.
Definition: Cube.cpp:1563
Universal Ground Map.
Definition: UniversalGroundMap.h:69
double validSampleDim()
Retuns the maximum valid sample width of the cube set with either initCube() or Create()
Definition: ImagePolygon.cpp:555
void print() const
Prints a string representation of this exception to stderr.
Definition: IException.cpp:445
double UniversalLatitude() const
Returns the universal latitude of the camera model or projection.
Definition: UniversalGroundMap.cpp:247
double validLineDim()
Retuns the maximum valid line width of the cube set with either initCube() or Create()
Definition: ImagePolygon.cpp:570
int numVertices() const
Definition: ImagePolygon.h:232
void setData(const char *buffer, int nbytes)
Set the data stored in the BLOB.
Definition: Blob.cpp:382
void read(Blob &blob, const std::vector< PvlKeyword > keywords=std::vector< PvlKeyword >()) const
This method will read data from the specified Blob object.
Definition: Cube.cpp:807
virtual double Sample() const
Returns the current sample number.
Definition: Camera.cpp:2690
@ Unknown
A type of error that cannot be classified as any of the other error types.
Definition: IException.h:118
Blob toBlob() const
Serialize the ImagePolygon to a Blob.
Definition: ImagePolygon.cpp:1347
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:121
std::string polyStr() const
Return a geos Multipolygon.
Definition: ImagePolygon.h:215
bool IsNullPixel(const double d)
Returns if the input pixel is null.
Definition: SpecialPixel.h:235
Container for cube-like labels.
Definition: Pvl.h:119
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:217
static geos::geom::GeometryFactory::Ptr globalFactory
Definition: PolygonTools.h:51
Create cube polygons, read/write polygons to blobs.
Definition: ImagePolygon.h:153
Isis::Camera * Camera() const
Return the camera associated with the ground map (NULL implies none)
Definition: UniversalGroundMap.h:136
int getSinc() const
Return the sample increment used the create this polygon.
Definition: ImagePolygon.h:223
Buffer for containing a three dimensional section of an image.
Definition: Brick.h:45
void IgnoreElevationModel(bool ignore)
This allows you to ignore the cube elevation model and use the ellipse.
Definition: Sensor.cpp:60
void append(const IException &exceptionSource)
Appends the given exception (and its list of previous exceptions) to this exception's causational exc...
Definition: IException.cpp:409
virtual double WorldY() const
This returns the world Y coordinate provided SetGround, SetCoordinate, SetUniversalGround,...
Definition: Projection.cpp:544
void SubpixelAccuracy(int div)
The subpixel accuracy to use.
Definition: ImagePolygon.h:205
int lineCount() const
Definition: Cube.cpp:1734
#define _FILEINFO_
Macro for the filename and line number.
Definition: IException.h:24
char * getBuffer()
Get the internal data buff of the Blob.
Definition: Blob.cpp:546
void Emission(double emission)
Set the maximum emission angle ( light refleted to camera )
Definition: ImagePolygon.h:174
int sampleCount() const
Definition: Cube.cpp:1807
int getLinc() const
Return the line increment used the create this polygon.
Definition: ImagePolygon.h:228
virtual double WorldX() const
This returns the world X coordinate provided SetGround, SetCoordinate, SetUniversalGround,...
Definition: Projection.cpp:524
IO Handler for Isis Cubes.
Definition: Cube.h:167
Isis exception class.
Definition: IException.h:91
#define ASSERT(x)
Definition: IsisDebug.h:134
virtual double IncidenceAngle() const
Returns the incidence angle in degrees.
Definition: Sensor.cpp:335
const double Null
Value for an Isis Null pixel.
Definition: SpecialPixel.h:95
int Size() const
Accessor method that returns the number of bytes in the blob data.
Definition: Blob.cpp:142
void BasicMapping(Pvl &map)
Writes the basic mapping group to the specified Pvl.
Definition: Camera.cpp:1356
Isis::Projection * Projection() const
Return the projection associated with the ground map (NULL implies none)
Definition: UniversalGroundMap.h:131
Camera * camera()
Return a camera associated with the cube.
Definition: Cube.cpp:1451
@ Programmer
This error is for when a programmer made an API call that was illegal.
Definition: IException.h:146
Namespace for the standard library.
PixelType pixelType() const
Definition: Cube.cpp:1758
bool SetUniversalGround(double lat, double lon)
Returns whether the lat/lon position was set successfully in the camera model or projection.
Definition: UniversalGroundMap.cpp:102
bool SetImage(double sample, double line)
Returns whether the sample/line postion was set successfully in the camera model or projection.
Definition: UniversalGroundMap.cpp:233
void EllipsoidLimb(bool ellip)
If a limb is detected, use un ellipsoid shape model if true.
Definition: ImagePolygon.h:192
virtual double EmissionAngle() const
Returns the emission angle in degrees.
Definition: Sensor.cpp:324
virtual double Line() const
Returns the current line number.
Definition: Camera.cpp:2710
bool HasProjection()
Checks to see if the camera object has a projection.
Definition: Camera.cpp:2638
Projection * projection()
Definition: Cube.cpp:1794
geos::geom::MultiPolygon * Polys()
Return a geos Multipolygon.
Definition: ImagePolygon.h:210
double UniversalLongitude() const
Returns the universal longitude of the camera model or projection.
Definition: UniversalGroundMap.cpp:270
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16
@ User
A type of error that could only have occurred due to a mistake on the user's part (e....
Definition: IException.h:126
void SetBand(const int band)
Set the image band number.
Definition: UniversalGroundMap.cpp:72