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
TargetBody.h
Go to the documentation of this file.
1#ifndef TargetBody_h
2#define TargetBody_h
3
9
10/* SPDX-License-Identifier: CC0-1.0 */
11
12#include <vector>
13
14#include <QList>
15#include <QObject>
16#include <QSharedPointer>
17#include <QString>
18
19#include <SpiceUsr.h>
20#include <SpiceZfc.h>
21#include <SpiceZmc.h>
22
23#include "Angle.h"
24#include "Distance.h"
25#include "Target.h"
26
27
28class QUuid;
29class QXmlStreamWriter;
30
31namespace Isis {
32 //class Distance;
33 class FileName;
34 class Project; // TODO: does xml stuff need project???
35 class PvlObject;
37
61 class TargetBody : public QObject {
62
63 Q_OBJECT
64
65 public:
66 TargetBody(Target *target, QObject *parent = 0);
68
69 bool operator==(const TargetBody &src) const;
70
73
74 QString id() const;
75 QString targetName();
76// void deleteFromDisk();
77
78 int frameType();
79
80 std::vector<Angle> poleRaCoefs();
81 std::vector<Angle> poleDecCoefs();
82 std::vector<Angle> pmCoefs();
83
84 std::vector<double> poleRaNutPrecCoefs();
85 std::vector<double> poleDecNutPrecCoefs();
86
87 std::vector<double> pmNutPrecCoefs();
88
89 std::vector<Angle> sysNutPrecConstants();
90 std::vector<Angle> sysNutPrecCoefs();
91
92 SpiceInt naifBodyCode() const;
93 SpiceInt naifPlanetSystemCode() const;
94 QString naifPlanetSystemName() const;
95 Distance radiusA() const;
96 Distance radiusB() const;
97 Distance radiusC() const;
98 Distance meanRadius() const;
99 Distance sigmaRadiusA() const;
100 Distance sigmaRadiusB() const;
101 Distance sigmaRadiusC() const;
103
104// void save(QXmlStreamWriter &stream, const Project *project, FileName newProjectRoot) const;
105// TODO: does xml stuff need project and newRoot???
106// void save(QXmlStreamWriter &stream, const Project *project) const;
107// TODO: does xml stuff need project???
108//
109// QDataStream &write(QDataStream &stream) const;
110// QDataStream &read(QDataStream &stream);
111
112 private:
113 TargetBody(const TargetBody &other); // NOTE: copy constructor & assignment operators
114 TargetBody &operator=(const TargetBody &rhs); // are private so compiler will generate error
115 // if trying to use them (because parent is
116 // QObject which uses Q_DISABLE_COPY macro
117 //testing
118 TargetQsp m_isisTarget;
119
124 QUuid *m_id;
125
129 QString m_targetName;
130
136 SpiceInt *m_bodyCode;
137
141 SpiceInt *m_systemCode;
142
146 QString m_systemName;
147
151 std::vector<Distance> m_radii;
152
156 std::vector<Distance> m_sigmaRadii;
157
161 TargetBodyDisplayProperties *m_displayProperties;
162
163 int m_frametype;
164
165 // The next three vectors will have length 3 (for a quadratic polynomial) if used.
166 std::vector<Angle> m_raPole;
167 std::vector<Angle> m_decPole;
168 std::vector<Angle> m_pm ;
169 //
170 // Currently multiples (terms with periods matching other terms but varying amplitudes)
171 // are handled as additional terms added to the end of the vector as Naif does (see
172 // comments in any of the standard Naif PCK.
173 std::vector<double> m_raNutPrec;
174 std::vector<double> m_decNutPrec;
175 std::vector<double> m_pmNutPrec;
176
177 // The periods of bodies in the same system are modeled with a linear equation
178 std::vector<Angle> m_sysNutPrec0;
179 std::vector<Angle> m_sysNutPrec1;
180 };
181
183};
184
186
187#endif // TargetBody_h
Q_DECLARE_METATYPE(Isis::TargetBodyQsp)
Distance measurement, usually in meters.
Definition Distance.h:34
The main project for ipce.
Definition Project.h:287
This is the GUI communication mechanism for target body objects.
Definition TargetBodyDisplayProperties.h:61
std::vector< Angle > pmCoefs()
Returns coefficients of a quadratic polynomial fitting pole pm.
Definition TargetBody.cpp:240
TargetBodyDisplayProperties * displayProperties()
Gets TargetBodyDisplayProperties.
Definition TargetBody.cpp:185
Distance radiusB() const
Returns "b" radius.
Definition TargetBody.cpp:347
TargetBody(Target *target, QObject *parent=0)
The first constructor for this class.
Definition TargetBody.cpp:22
SpiceInt naifBodyCode() const
This returns the NAIF body code of the target.
Definition TargetBody.cpp:295
Distance sigmaRadiusC() const
Returns the "c" radius sigma.
Definition TargetBody.cpp:377
std::vector< Angle > poleDecCoefs()
Returns coefficients of a quadratic polynomial fitting pole dec.
Definition TargetBody.cpp:231
std::vector< double > poleDecNutPrecCoefs()
TargetBody::poleDecNutPrecCoefs.
Definition TargetBody.cpp:258
std::vector< Angle > sysNutPrecCoefs()
Returns Linear terms of planetary system nut/prec periods.
Definition TargetBody.cpp:284
std::vector< double > pmNutPrecCoefs()
Returns coefficients of the prime meridian nut/prec terms.
Definition TargetBody.cpp:267
int frameType()
Returns the frame type.
Definition TargetBody.cpp:213
QString id() const
Get a unique, identifying string associated with this TargetBody object.
Definition TargetBody.cpp:415
Distance meanRadius() const
Returns the mean radius.
Definition TargetBody.cpp:387
bool operator==(const TargetBody &src) const
Compares two Target Body objects to see if they are equal.
Definition TargetBody.cpp:163
Distance sigmaRadiusB() const
Returns "b" radius sigma.
Definition TargetBody.cpp:357
std::vector< Angle > poleRaCoefs()
TargetBody::poleRaCoefs.
Definition TargetBody.cpp:222
~TargetBody()
The second constructor for this class.
Definition TargetBody.cpp:131
Distance sigmaMeanRadius() const
Returns the mean radius sigma.
Definition TargetBody.cpp:401
QString naifPlanetSystemName() const
This returns the body name of the target's planet system.
Definition TargetBody.cpp:317
std::vector< Angle > sysNutPrecConstants()
Returns constants of planetary system nut/prec periods.
Definition TargetBody.cpp:276
Distance radiusC() const
Returns the "c" radius.
Definition TargetBody.cpp:367
Distance radiusA() const
Returns "a" radius.
Definition TargetBody.cpp:327
std::vector< double > poleRaNutPrecCoefs()
Returns coefficients of pole right ascension nut/prec terms.
Definition TargetBody.cpp:249
Distance sigmaRadiusA() const
Returns "a" radius sigma.
Definition TargetBody.cpp:337
SpiceInt naifPlanetSystemCode() const
This returns the NAIF body code of the target's planet system.
Definition TargetBody.cpp:306
QString targetName()
Returns the value stored at TargetName in the original pvl label.
Definition TargetBody.cpp:204
This class is used to create and store valid Isis targets.
Definition Target.h:63
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:133
QSharedPointer< TargetBody > TargetBodyQsp
Defines A smart pointer to a TargetBody obj.
Definition TargetBody.h:182