31 #include "XmlStackedHandler.h"
39 class QXmlStreamWriter;
53 class ShapeDisplayProperties;
54 class XmlStackedHandlerReader;
79 explicit Shape(QString shapeFileName,
QObject *parent = 0);
92 ShapeType shapeType();
98 const geos::geom::MultiPolygon *
footprint()
const;
99 void setId(QString
id);
116 void save(QXmlStreamWriter &stream,
const Project *project,
FileName newProjectRoot)
const;
125 void initMemberData();
132 void initQuickFootprint();
144 virtual bool startElement(
const QString &namespaceURI,
const QString &localName,
145 const QString &qName,
const QXmlAttributes &atts);
146 virtual bool characters(
const QString &ch);
147 virtual bool endElement(
const QString &namespaceURI,
const QString &localName,
148 const QString &qName);
155 QString m_characters;
172 ShapeType m_shapeType;
200 double m_aspectRatio;
202 Angle m_emissionAngle;
203 Angle m_incidenceAngle;
204 double m_lineResolution;
206 Angle m_northAzimuth;
208 double m_sampleResolution;
211 QString m_targetName;
212 QString m_projectionName;
219 double m_pixelResolution;
Distance localRadius() const
Get the local radius of this shape, as calculated and attached by camstats.
The main project for cnetsuite.
void closeCube()
Cleans up the Cube *.
Angle emissionAngle() const
Get the emission angle of this shape, as calculated and attached by camstats.
File name manipulation and expansion.
void save(QXmlStreamWriter &stream, const Project *project, FileName newProjectRoot) const
Output format:
QString m_spacecraftName
Spacecraft name associated with this Shape.
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.
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.
Distance measurement, usually in meters.
XmlHandler(Shape *shape, FileName shapeFolder)
Create an XML Handler (reader) that can populate the Shape class data.
Angle northAzimuth() const
Get the north azimuth of this shape, as calculated and attached by camstats.
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.
double sampleResolution() const
Get the sample resolution of this shape, as calculated and attached by camstats.
PvlObject toPvl() const
Convert this Shape to PVL.
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.
QString serialNumber()
Get the serial number.
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.
QString id() const
Get a unique, identifying string associated with this shape.
Cube * m_cube
The cube associated with this Shape.
geos::geom::MultiPolygon * footprint()
Get the footprint of this shape (if available).
void fromPvl(const PvlObject &pvl)
Read the shape settings from a Pvl.
double resolution() const
Get the resolution of this shape, as calculated and attached by camstats.
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.
bool isFootprintable() const
Test to see if it's possible to create a footprint from this shape.
double aspectRatio() const
Get the aspect ratio of this shape, as calculated and attached by camstats.
void deleteFromDisk()
Delete the shape data from disk.
This represents a shape in a project-based GUI interface.
Angle phaseAngle() const
Get the phase angle of this shape, as calculated and attached by camstats.
QString m_fileName
The on-disk file name of the cube associated with this Shape.
geos::geom::MultiPolygon * m_footprint
A 0-360 ocentric lon,lat degrees footprint of this Shape.
Contains Pvl Groups and Pvl Objects.
Angle incidenceAngle() const
Get the incidence angle of this shape, as calculated and attached by camstats.
his enables stack-based XML parsing of XML files.
QString fileName() const
Get the file name of the cube that this shape represents.
double lineResolution() const
Get the line resolution of this shape, as calculated and attached by camstats.
SpiceInt * m_bodyCode
The NaifBodyCode value, if it exists in the labels.
Unless noted otherwise, the portions of Isis written by the USGS are public domain.
IO Handler for Isis Cubes.