Official websites use .gov
A .gov website belongs to an official government organization in the United States.

Secure .gov websites use HTTPS
A lock ( ) or https:// means you’ve safely connected to the .gov website. Share sensitive information only on official, secure websites.

Isis Developer Reference
Target.h
Go to the documentation of this file.
1#ifndef Target_h
2#define Target_h
7
8/* SPDX-License-Identifier: CC0-1.0 */
9
10#include <QSharedPointer>
11
12#include <vector>
13
14#include <SpiceUsr.h>
15#include <SpiceZfc.h>
16#include <SpiceZmc.h>
17
18class QString;
19
20namespace Isis {
21 class Angle;
22 class Distance;
23 class Pvl;
24 class PvlGroup;
25 class ShapeModel;
26 class Spice;
27
65 class Target {
66
67 public:
68 // constructors
69 Target(Spice *spice, Pvl &label);
70 Target(Pvl &label);
71 Target();
72
74 ~Target();
75
76 void init();
77 bool isSky() const;
78 SpiceInt naifBodyCode() const;
79 SpiceInt naifPlanetSystemCode() const;
80 QString name() const;
81 QString systemName() const;
82 std::vector<Distance> radii() const;
83 void restoreShape();
84 void setShapeEllipsoid();
85 void setRadii(std::vector<Distance> radii);
86 void setName(QString name);
87 void setSpice(Spice *spice);
88
89 ShapeModel *shape() const;
90 Spice *spice() const;
91
92 int frameType();
93
94 std::vector<Angle> poleRaCoefs();
95 std::vector<Angle> poleDecCoefs();
96 std::vector<Angle> pmCoefs();
97
98 static SpiceInt lookupNaifBodyCode(QString name);
99 // Static conversion methods
100 static PvlGroup radiiGroup(QString target);
101 static PvlGroup radiiGroup(Pvl &cubeLab, const PvlGroup &mapGroup);
102
103 std::vector<double> poleRaNutPrecCoefs();
104 std::vector<double> poleDecNutPrecCoefs();
105
106 std::vector<double> pmNutPrecCoefs();
107
108 std::vector<Angle> sysNutPrecConstants();
109 std::vector<Angle> sysNutPrecCoefs();
110
111 private:
112 SpiceInt lookupNaifBodyCode(Pvl &lab) const;
113 static PvlGroup radiiGroup(int bodyFrameCode);
114 SpiceInt *m_bodyCode;
118 SpiceInt *m_systemCode;
120 QString *m_name;
121 QString *m_systemName;
122 std::vector<Distance> m_radii;
123 ShapeModel *m_originalShape;
124 ShapeModel *m_shape;
125 bool m_sky;
126
127 // TODO should this be an enum(ring, sky, or naifBody), created Naif body for sky, or ???
128 // TODO should the target body kernels go in here too bodyRotation and position??? I don't
129 // think so. They are SPICE kernels and belong in the Spice class (DAC). What do others
130 // think.
131 Spice *m_spice;
133 };
134
136}
137
138#endif
Defines an angle and provides unit conversions.
Definition Angle.h:45
Distance measurement, usually in meters.
Definition Distance.h:34
Define shapes and provide utilities for Isis targets.
Definition ShapeModel.h:65
Obtain SPICE information for a spacecraft.
Definition Spice.h:283
SpiceInt naifBodyCode() const
This returns the NAIF body code of the target.
Definition Target.cpp:528
~Target()
Destroys the Target.
Definition Target.cpp:193
void init()
Initialize member variables.
Definition Target.cpp:183
Target()
Constructs an empty Target object.
Definition Target.cpp:165
void setSpice(Spice *spice)
Set the Spice pointer for the Target.
Definition Target.cpp:678
void setRadii(std::vector< Distance > radii)
Sets the radii of the body.
Definition Target.cpp:646
Spice * spice() const
Return the spice object.
Definition Target.cpp:694
static PvlGroup radiiGroup(QString target)
Creates a Pvl Group with keywords TargetName, EquitorialRadius, and PolarRadius.
Definition Target.cpp:434
Target(Spice *spice, Pvl &label)
Constructs a Target object and loads target information.
Definition Target.cpp:38
std::vector< Angle > sysNutPrecCoefs()
Definition Target.cpp:608
std::vector< double > poleDecNutPrecCoefs()
Definition Target.cpp:593
void setShapeEllipsoid()
Set the shape to the ellipsoid and save the original shape.
Definition Target.cpp:634
std::vector< Angle > pmCoefs()
Definition Target.cpp:583
std::vector< Distance > radii() const
Returns the radii of the body in km.
Definition Target.cpp:563
ShapeModel * shape() const
Return the shape.
Definition Target.cpp:686
int frameType()
Definition Target.cpp:568
static SpiceInt lookupNaifBodyCode(QString name)
This returns the NAIF body code of the target indicated in the labels.
Definition Target.cpp:275
std::vector< double > pmNutPrecCoefs()
Definition Target.cpp:598
std::vector< Angle > poleDecCoefs()
Definition Target.cpp:578
std::vector< Angle > sysNutPrecConstants()
Definition Target.cpp:603
SpiceInt naifPlanetSystemCode() const
This returns the NAIF planet system body code of the target.
Definition Target.cpp:541
bool isSky() const
Return if our target is the sky.
Definition Target.cpp:221
QString name() const
Return target name.
Definition Target.cpp:547
std::vector< Angle > poleRaCoefs()
Definition Target.cpp:573
void restoreShape()
Restores the shape to the original after setShapeEllipsoid has overridden it.
Definition Target.cpp:616
QString systemName() const
Return planet system name.
Definition Target.cpp:553
std::vector< double > poleRaNutPrecCoefs()
Definition Target.cpp:588
void setName(QString name)
Set the name for the Target.
Definition Target.cpp:663
Definition JigsawWorkOrder.h:28
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16
QSharedPointer< Target > TargetQsp
Definition Target.h:135