1#include "TargetInfoWidget.h"
2#include "ui_TargetInfoWidget.h"
8#include "SpiceRotation.h"
10#include "TargetBodyDisplayProperties.h"
32 if (name.compare(
"MOON") == 0) {
33 image.load(
FileName(
"$ISISROOT/appdata/images/targets/nasa_moon_large.png").expanded());
34 setWindowIcon(QIcon(
FileName(
"$ISISROOT/appdata/images/icons/weather-clear-night.png")
37 else if (name.compare(
"Enceladus") == 0) {
38 image.load(
FileName(
"$ISISROOT/appdata/images/targets/nasa_enceladus_saturn.png").expanded());
39 setWindowIcon(QIcon(
FileName(
"$ISISROOT/appdata/images/icons/nasa_enceladus.png").expanded()));
41 else if (name.compare(
"Europa") == 0) {
42 image.load(
FileName(
"$ISISROOT/appdata/images/targets/nasa_europa_large.png").expanded());
43 setWindowIcon(QIcon(
FileName(
"$ISISROOT/appdata/images/icons/nasa_europa.png").expanded()));
45 else if (name.compare(
"Mars") == 0) {
46 image.load(
FileName(
"$ISISROOT/appdata/images/targets/nasa_mars_large.png").expanded());
47 setWindowIcon(QIcon(
FileName(
"$ISISROOT/appdata/images/icons/nasa_mars.png").expanded()));
49 else if (name.compare(
"Titan") == 0) {
50 image.load(
FileName(
"$ISISROOT/appdata/images/targets/nasa_titan_large.png").expanded());
51 setWindowIcon(QIcon(
FileName(
"$ISISROOT/appdata/images/icons/nasa_titan.png").expanded()));
56 setMinimumWidth(
m_ui->tabWidget->minimumWidth()+20);
58 m_ui->targetImage->setPixmap(image);
60 setFrameStyle(QFrame::Panel | QFrame::Sunken);
63 m_ui->tabWidget->setCurrentIndex(0);
66 m_ui->poleRightAscensionLabel->hide();
67 m_ui->poleDeclinationLabel->hide();
68 m_ui->polePMOffsetLabel->hide();
98 QString poleRaString =
"";
106 const QChar degChar(0260);
109 if (poleRaCoefs[1].degrees() < 0.0 ) {
110 poleRaString.append(tr(
"%1%3 - %2T").arg(poleRaCoefs[0].degrees()).arg(-poleRaCoefs[1]
111 .degrees()).arg(degChar));
114 poleRaString.append(tr(
"%1%3 + %2T").arg(poleRaCoefs[0].degrees()).arg(poleRaCoefs[1]
115 .degrees()).arg(degChar));
119 int nCoefs = poleRaNutPrecCoefs.size();;
120 for (
int i = 0; i < nCoefs; i++) {
121 if (poleRaNutPrecCoefs[i] < 0.0 ) {
122 tmp.append(tr(
" - %1%2%3").arg(-poleRaNutPrecCoefs[i]).arg(
"sin %1").arg(coefLetter)
125 else if (poleRaNutPrecCoefs[i] > 0.0 ) {
126 tmp.append(tr(
" + %1%2%3").arg(poleRaNutPrecCoefs[i]).arg(
"sin %1").arg(coefLetter)
131 poleRaString.append(tmp);
153 QString poleDecString =
"";
161 const QChar degChar(0260);
165 if (poleDecCoefs[1].degrees() < 0.0 ) {
166 poleDecString.append(tr(
"%1%3 - %2T").arg(poleDecCoefs[0].degrees()).arg(-poleDecCoefs[1]
167 .degrees()).arg(degChar));
170 poleDecString.append(tr(
"%1%3 + %2T").arg(poleDecCoefs[0].degrees()).arg(poleDecCoefs[1]
171 .degrees()).arg(degChar));
175 int nCoefs = poleDecNutPrecCoefs.size();
177 for (
int i = 0; i < nCoefs; i++) {
178 if (poleDecNutPrecCoefs[i] < 0.0 ) {
179 tmp.append(tr(
" - %1%2%3").arg(-poleDecNutPrecCoefs[i]).arg(
"cos %1").arg(coefLetter)
182 else if (poleDecNutPrecCoefs[i] > 0.0 ) {
183 tmp.append(tr(
" + %1%2%3").arg(poleDecNutPrecCoefs[i]).arg(
"cos %1").arg(coefLetter)
188 poleDecString.append(tmp);
189 return poleDecString;
195 return poleDecString;
208 QString pmString =
"";
217 const QChar degChar(0260);
221 if (pmCoefs[1].degrees() < 0.0 ) {
222 pmString.append(tr(
"%1%3 - %2d").arg(pmCoefs[0].degrees()).arg(-pmCoefs[1].degrees())
225 else if (pmCoefs[1].degrees() > 0.0 ) {
226 pmString.append(tr(
"%1%3 + %2d").arg(pmCoefs[0].degrees()).arg(pmCoefs[1].degrees())
230 if (pmCoefs[2].degrees() < 0.0 ) {
231 pmString.append(tr(
" - %2d^2").arg(-pmCoefs[2].degrees()));
233 else if (pmCoefs[2].degrees() > 0.0 ) {
234 pmString.append(tr(
" + %2d^2").arg(pmCoefs[2].degrees()));
238 int nCoefs = pmNutPrecCoefs.size();
240 for (
int i = 0; i < nCoefs; i++) {
241 if (pmNutPrecCoefs[i] < 0.0 ) {
242 tmp.append(tr(
" - %1%2%3").arg(-pmNutPrecCoefs[i]).arg(
"sin %1").arg(coefLetter).arg(i+1));
244 else if (pmNutPrecCoefs[i] > 0.0 ) {
245 tmp.append(tr(
" + %1%2%3").arg(pmNutPrecCoefs[i]).arg(
"sin %1").arg(coefLetter).arg(i+1));
249 pmString.append(tmp);
270 font.setPointSize(9);
273 m_ui->label->setFont(font);
274 m_ui->label_6->setFont(font);
279 m_ui->label->setFont(font);
280 m_ui->label_6->setFont(font);
281 m_ui->label_2->clear();
284 msg1 =
"Target body parameters cannot be solved for the Moon.";
287 msg2 =
"Target body information\n"
288 "is not on the cube labels.\n"
289 "This has no impact on most\n"
290 "operations. However, to view\n"
291 "or bundle adjust the target body\n"
292 "parameters you will need to rerun\n"
295 m_ui->label->setText(
296 QApplication::translate(
"TargetInfoWidget",
297 msg2.toLatin1().data(), 0));
298 m_ui->label_6->setText(
299 QApplication::translate(
"TargetInfoWidget",
300 msg2.toLatin1().data(), 0));
QString displayName() const
Returns the display name.
double kilometers() const
Get the distance in kilometers.
File name manipulation and expansion.
@ UNKNOWN
Isis specific code for unknown frame type.
@ BPC
Isis specific code for binary pck.
Container class for TargetBody.
std::vector< Angle > pmCoefs()
Returns coefficients of a quadratic polynomial fitting pole pm.
TargetBodyDisplayProperties * displayProperties()
Gets TargetBodyDisplayProperties.
Distance radiusB() const
Returns "b" radius.
std::vector< Angle > poleDecCoefs()
Returns coefficients of a quadratic polynomial fitting pole dec.
std::vector< double > poleDecNutPrecCoefs()
TargetBody::poleDecNutPrecCoefs.
std::vector< double > pmNutPrecCoefs()
Returns coefficients of the prime meridian nut/prec terms.
int frameType()
Returns the frame type.
Distance meanRadius() const
Returns the mean radius.
std::vector< Angle > poleRaCoefs()
TargetBody::poleRaCoefs.
QString naifPlanetSystemName() const
This returns the body name of the target's planet system.
Distance radiusC() const
Returns the "c" radius.
Distance radiusA() const
Returns "a" radius.
std::vector< double > poleRaNutPrecCoefs()
Returns coefficients of pole right ascension nut/prec terms.
This is free and unencumbered software released into the public domain.