32 #include "XmlStackedHandler.h" 40 class QXmlStreamWriter;
54 class ShapeDisplayProperties;
55 class XmlStackedHandlerReader;
87 explicit Shape(QString shapeFileName,
QObject *parent = 0);
98 ControlPoint::SurfacePointSource::Source surfacePointSource();
99 ControlPoint::RadiusSource::Source radiusSource();
101 ShapeType shapeType();
106 const geos::geom::MultiPolygon *
footprint()
const;
107 void setId(QString
id);
124 void save(QXmlStreamWriter &stream,
const Project *project,
FileName newProjectRoot)
const;
133 void initMemberData();
140 void initQuickFootprint();
152 virtual bool startElement(
const QString &namespaceURI,
const QString &localName,
153 const QString &qName,
const QXmlAttributes &atts);
154 virtual bool characters(
const QString &ch);
155 virtual bool endElement(
const QString &namespaceURI,
const QString &localName,
156 const QString &qName);
163 QString m_characters;
179 ControlPoint::SurfacePointSource::Source m_surfacePointSource;
180 ControlPoint::RadiusSource::Source m_radiusSource;
181 ShapeType m_shapeType;
213 double m_aspectRatio;
215 Angle m_emissionAngle;
216 Angle m_incidenceAngle;
217 double m_lineResolution;
219 Angle m_northAzimuth;
221 double m_sampleResolution;
224 QString m_targetName;
225 QString m_projectionName;
232 double m_pixelResolution;
PvlObject toPvl() const
Convert this Shape to PVL.
double resolution() const
Get the resolution of this shape, as calculated and attached by camstats.
The main project for ipce.
void closeCube()
Cleans up the Cube *.
File name manipulation and expansion.
Angle incidenceAngle() const
Get the incidence angle of this shape, as calculated and attached by camstats.
QString m_spacecraftName
Spacecraft name associated with this Shape.
Angle northAzimuth() const
Get the north azimuth 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.
This class is designed to encapsulate the concept of a Latitude.
Q_DECLARE_METATYPE(Isis::Cube *)
This allows Cube *'s to be stored in a QVariant.
Distance localRadius() const
Get the local radius of this shape, as calculated and attached by camstats.
ShapeDisplayProperties * displayProperties()
Get the display (GUI) properties (information) associated with this shape.
geos::geom::MultiPolygon * createFootprint(QMutex *cameraMutex)
Calculate a footprint for an Shape using the camera or projection information.
This is the GUI communication mechanism for shape objects.
~Shape()
Clean up this shape.
Unless noted otherwise, the portions of Isis written by the USGS are public domain.
double sampleResolution() const
Get the sample resolution of this shape, as calculated and attached by camstats.
Distance measurement, usually in meters.
XmlHandler(Shape *shape, FileName shapeFolder)
Create an XML Handler (reader) that can populate the Shape class data.
QString m_instrumentId
Instrument id associated with this Shape.
This class is designed to encapsulate the concept of a Longitude.
bool initFootprint(QMutex *cameraMutex)
Calculate a footprint for this shape.
virtual bool startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &atts)
Handle an XML start element.
void save(QXmlStreamWriter &stream, const Project *project, FileName newProjectRoot) const
Output format:
QUuid * m_id
A unique ID for this Shape (useful for others to reference this Shape when saving to disk)...
Cube * cube()
Get the Cube * associated with this display property.
Angle emissionAngle() const
Get the emission angle of this shape, as calculated and attached by camstats.
double lineResolution() const
Get the line resolution of this shape, as calculated and attached by camstats.
QString serialNumber()
Get the serial number.
QString m_serialNumber
This will always be simply the filename and is created on construction.
void updateFileName(Project *)
Change the on-disk file name for this cube to be where the shape ought to be in the given project...
XML Handler that parses XMLs in a stack-oriented way.
Shape(QString shapeFileName, QObject *parent=0)
Create an Shape from a cube file on disk.
ShapeDisplayProperties * m_displayProperties
The GUI information for how this Shape ought to be displayed.
Cube * m_cube
The cube associated with this Shape.
geos::geom::MultiPolygon * footprint()
Get the footprint of this shape (if available).
QString id() const
Get a unique, identifying string associated with this shape.
QString fileName() const
Get the file name of the cube that this shape represents.
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.
Defines an angle and provides unit conversions.
Unless noted otherwise, the portions of Isis written by the USGS are public domain.
void deleteFromDisk()
Delete the shape data from disk.
This represents a shape in a project-based GUI interface.
QString m_fileName
The on-disk file name of the cube associated with this Shape.
Namespace for ISIS/Bullet specific routines.
geos::geom::MultiPolygon * m_footprint
A 0-360 ocentric lon,lat degrees footprint of this Shape.
double aspectRatio() const
Get the aspect ratio 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.
Contains Pvl Groups and Pvl Objects.
Manage a stack of content handlers for reading XML files.
SpiceInt * m_bodyCode
The NaifBodyCode value, if it exists in the labels.
bool isFootprintable() const
Test to see if it's possible to create a footprint from this shape.
Unless noted otherwise, the portions of Isis written by the USGS are public domain.
IO Handler for Isis Cubes.