17#include "ControlPoint.h"
29class QXmlStreamWriter;
43 class ShapeDisplayProperties;
75 explicit Shape(QString shapeFileName,
QObject *parent = 0);
85 ControlPoint::SurfacePointSource::Source surfacePointSource();
86 ControlPoint::RadiusSource::Source radiusSource();
88 ShapeType shapeType();
93 const geos::geom::MultiPolygon *
footprint()
const;
94 void setId(QString
id);
111 void save(QXmlStreamWriter &stream,
const Project *project,
FileName newProjectRoot)
const;
120 void initMemberData();
127 void initQuickFootprint();
142 ControlPoint::SurfacePointSource::Source m_surfacePointSource;
143 ControlPoint::RadiusSource::Source m_radiusSource;
144 ShapeType m_shapeType;
176 double m_aspectRatio;
178 Angle m_emissionAngle;
179 Angle m_incidenceAngle;
180 double m_lineResolution;
182 Angle m_northAzimuth;
184 double m_sampleResolution;
187 QString m_targetName;
188 QString m_projectionName;
195 double m_pixelResolution;
Defines an angle and provides unit conversions.
IO Handler for Isis Cubes.
Distance measurement, usually in meters.
File name manipulation and expansion.
This class is designed to encapsulate the concept of a Latitude.
This class is designed to encapsulate the concept of a Longitude.
The main project for ipce.
Contains Pvl Groups and Pvl Objects.
This is the GUI communication mechanism for shape objects.
This represents a shape in a project-based GUI interface.
~Shape()
Clean up this shape.
geos::geom::MultiPolygon * createFootprint(QMutex *cameraMutex)
Calculate a footprint for an Shape using the camera or projection information.
Shape(QString shapeFileName, QObject *parent=0)
Create an Shape from a cube file on disk.
void closeCube()
Cleans up the Cube *.
PvlObject toPvl() const
Convert this Shape to PVL.
bool isFootprintable() const
Test to see if it's possible to create a footprint from this shape.
SpiceInt * m_bodyCode
The NaifBodyCode value, if it exists in the labels.
Distance localRadius() const
Get the local radius of this shape, as calculated and attached by camstats.
Angle phaseAngle() const
Get the phase angle of this shape, as calculated and attached by camstats.
void updateFileName(Project *)
Change the on-disk file name for this cube to be where the shape ought to be in the given project.
double resolution() const
Get the resolution of this shape, as calculated and attached by camstats.
QString serialNumber()
Get the serial number.
QString m_spacecraftName
Spacecraft name associated with this Shape.
double sampleResolution() const
Get the sample resolution of this shape, as calculated and attached by camstats.
ShapeDisplayProperties * displayProperties()
Get the display (GUI) properties (information) associated with this shape.
double lineResolution() const
Get the line resolution of this shape, as calculated and attached by camstats.
void deleteFromDisk()
Delete the shape data from disk.
Angle emissionAngle() const
Get the emission angle of this shape, as calculated and attached by camstats.
QString id() const
Get a unique, identifying string associated with this shape.
void save(QXmlStreamWriter &stream, const Project *project, FileName newProjectRoot) const
Output format:
double aspectRatio() const
Get the aspect ratio of this shape, as calculated and attached by camstats.
QString fileName() const
Get the file name of the cube that this shape represents.
Cube * m_cube
The cube associated with this Shape.
geos::geom::MultiPolygon * m_footprint
A 0-360 ocentric lon,lat degrees footprint of this Shape.
Cube * cube()
Get the Cube * associated with this display property.
Angle incidenceAngle() const
Get the incidence angle of this shape, as calculated and attached by camstats.
void copyToNewProjectRoot(const Project *project, FileName newProjectRoot)
Copy the cub/ecub files associated with this shape into the new project.
QUuid * m_id
A unique ID for this Shape (useful for others to reference this Shape when saving to disk).
QString m_serialNumber
This will always be simply the filename and is created on construction.
QString m_instrumentId
Instrument id associated with this Shape.
bool initFootprint(QMutex *cameraMutex)
Calculate a footprint for this shape.
void fromPvl(const PvlObject &pvl)
Read the shape settings from a Pvl.
void setId(QString id)
Override the automatically generated ID with the given ID.
Angle northAzimuth() const
Get the north azimuth of this shape, as calculated and attached by camstats.
geos::geom::MultiPolygon * footprint()
Get the footprint of this shape (if available).
QString m_fileName
The on-disk file name of the cube associated with this Shape.
ShapeDisplayProperties * m_displayProperties
The GUI information for how this Shape ought to be displayed.
This is free and unencumbered software released into the public domain.