Isis 3.0 Programmer Reference
Back | Home
TargetInfoWidget.cpp
1 #include "TargetInfoWidget.h"
2 #include "ui_TargetInfoWidget.h"
3 
4 #include <QPixmap>
5 
6 #include "Directory.h"
7 #include "SpiceRotation.h"
8 #include "TargetBody.h"
10 
11 namespace Isis {
12 
21  QWidget *parent) : m_ui(new Ui::TargetInfoWidget) {
22  m_ui->setupUi(this);
23 
24  m_target = target;
25 
26  QString name = m_target->displayProperties()->displayName();
27 
28 
29  // Ken TODO - set up map between target display names and icon/image names
30  QPixmap image;
31  if (name.compare("MOON") == 0) {
32  image.load(":moon-large");
33  setWindowIcon(QIcon(":moon"));
34  }
35  else if (name.compare("Enceladus") == 0) {
36  image.load(":enceladus-saturn");
37  setWindowIcon(QIcon(":enceladus"));
38  }
39  else if (name.compare("Europa") == 0) {
40  image.load(":europa-large");
41  setWindowIcon(QIcon(":europa"));
42  }
43  else if (name.compare("Mars") == 0) {
44  image.load(":mars-large");
45  setWindowIcon(QIcon(":mars"));
46  }
47  else if (name.compare("Titan") == 0) {
48  image.load(":titan-large");
49  setWindowIcon(QIcon(":titan"));
50  }
51 
52  m_ui->bodySystemlabel->setText(tr("System: %1").arg(m_target->naifPlanetSystemName()));
53 
54  setMinimumWidth(m_ui->tabWidget->minimumWidth()+20);
55 
56  m_ui->targetImage->setPixmap(image);
57 
58  setFrameStyle(QFrame::Panel | QFrame::Sunken);
59  setLineWidth(2);
60 
61  m_ui->tabWidget->setCurrentIndex(0);
62 
63  if (target->frameType() == Isis::SpiceRotation::BPC) {
64  m_ui->poleRightAscensionLabel->hide();
65  m_ui->poleDeclinationLabel->hide();
66  m_ui->polePMOffsetLabel->hide();
67  }
68  else {
69  m_ui->poleRightAscensionLabel->setText(formatPoleRaString());
70  m_ui->poleDeclinationLabel->setText(formatPoleDecString());
71  m_ui->polePMOffsetLabel->setText(formatPmString());
72  }
73 
74  m_ui->aRadiiLabel->setText(tr("%1").arg(m_target->radiusA().kilometers()));
75  m_ui->bRadiiLabel->setText(tr("%1").arg(m_target->radiusB().kilometers()));
76  m_ui->cRadiiLabel->setText(tr("%1").arg(m_target->radiusC().kilometers()));
77  m_ui->meanRadiiLabel->setText(tr("%1").arg(m_target->meanRadius().kilometers()));
78  }
79 
80 
85  delete m_ui;
86  }
87 
88 
95  std::vector<Angle> poleRaCoefs = m_target->poleRaCoefs();
96  std::vector<double> poleRaNutPrecCoefs = m_target->poleRaNutPrecCoefs();
97 
98  const QChar degChar(0260);
99  QString poleRaString = "";
100  QString coefLetter = m_target->naifPlanetSystemName().at(0);
101 
102  if (poleRaCoefs[1].degrees() < 0.0 ) {
103  poleRaString.append(tr("%1%3 - %2T").arg(poleRaCoefs[0].degrees()).arg(-poleRaCoefs[1]
104  .degrees()).arg(degChar));
105  }
106  else {
107  poleRaString.append(tr("%1%3 + %2T").arg(poleRaCoefs[0].degrees()).arg(poleRaCoefs[1]
108  .degrees()).arg(degChar));
109  }
110 
111  QString tmp;
112  int nCoefs = poleRaNutPrecCoefs.size();;
113  for (int i = 0; i < nCoefs; i++) {
114  if (poleRaNutPrecCoefs[i] < 0.0 ) {
115  tmp.append(tr(" - %1%2%3").arg(-poleRaNutPrecCoefs[i]).arg("sin %1").arg(coefLetter)
116  .arg(i+1));
117  }
118  else if (poleRaNutPrecCoefs[i] > 0.0 ) {
119  tmp.append(tr(" + %1%2%3").arg(poleRaNutPrecCoefs[i]).arg("sin %1").arg(coefLetter)
120  .arg(i+1));
121  }
122  }
123 
124  poleRaString.append(tmp);
125 
126  return poleRaString;
127  }
128 
129 
136  std::vector<Angle> poleDecCoefs = m_target->poleDecCoefs();
137  std::vector<double> poleDecNutPrecCoefs = m_target->poleDecNutPrecCoefs();
138 
139  const QChar degChar(0260);
140  QString poleDecString = "";
141  QString coefLetter = m_target->naifPlanetSystemName().at(0);
142 
143  if (poleDecCoefs[1].degrees() < 0.0 ) {
144  poleDecString.append(tr("%1%3 - %2T").arg(poleDecCoefs[0].degrees()).arg(-poleDecCoefs[1]
145  .degrees()).arg(degChar));
146  }
147  else {
148  poleDecString.append(tr("%1%3 + %2T").arg(poleDecCoefs[0].degrees()).arg(poleDecCoefs[1]
149  .degrees()).arg(degChar));
150  }
151 
152  QString tmp;
153  int nCoefs = poleDecNutPrecCoefs.size();;
154  for (int i = 0; i < nCoefs; i++) {
155  if (poleDecNutPrecCoefs[i] < 0.0 ) {
156  tmp.append(tr(" - %1%2%3").arg(-poleDecNutPrecCoefs[i]).arg("cos %1").arg(coefLetter)
157  .arg(i+1));
158  }
159  else if (poleDecNutPrecCoefs[i] > 0.0 ) {
160  tmp.append(tr(" + %1%2%3").arg(poleDecNutPrecCoefs[i]).arg("cos %1").arg(coefLetter)
161  .arg(i+1));
162  }
163  }
164 
165  poleDecString.append(tmp);
166 
167  return poleDecString;
168  }
169 
170 
177  std::vector<Angle> pmCoefs = m_target->pmCoefs();
178  std::vector<double> pmNutPrecCoefs = m_target->pmNutPrecCoefs();
179 
180  const QChar degChar(0260);
181  QString pmString = "";
182  QString coefLetter = m_target->naifPlanetSystemName().at(0);
183 
184  if (pmCoefs[1].degrees() < 0.0 ) {
185  pmString.append(tr("%1%3 - %2d").arg(pmCoefs[0].degrees()).arg(-pmCoefs[1].degrees())
186  .arg(degChar));
187  }
188  else if (pmCoefs[1].degrees() > 0.0 ) {
189  pmString.append(tr("%1%3 + %2d").arg(pmCoefs[0].degrees()).arg(pmCoefs[1].degrees())
190  .arg(degChar));
191  }
192 
193  if (pmCoefs[2].degrees() < 0.0 ) {
194  pmString.append(tr(" - %2d^2").arg(-pmCoefs[2].degrees()));
195  }
196  else if (pmCoefs[2].degrees() > 0.0 ) {
197  pmString.append(tr(" + %2d^2").arg(pmCoefs[2].degrees()));
198  }
199 
200 
201  QString tmp;
202  int nCoefs = pmNutPrecCoefs.size();;
203  for (int i = 0; i < nCoefs; i++) {
204  if (pmNutPrecCoefs[i] < 0.0 ) {
205  tmp.append(tr(" - %1%2%3").arg(-pmNutPrecCoefs[i]).arg("sin %1").arg(coefLetter).arg(i+1));
206  }
207  else if (pmNutPrecCoefs[i] > 0.0 ) {
208  tmp.append(tr(" + %1%2%3").arg(pmNutPrecCoefs[i]).arg("sin %1").arg(coefLetter).arg(i+1));
209  }
210  }
211 
212  pmString.append(tmp);
213 
214  return pmString;
215  }
216 }
QString naifPlanetSystemName() const
This returns the body name of the target&#39;s planet system.
Definition: TargetBody.cpp:334
Isis specific code for binary pck.
Distance meanRadius() const
Returns the mean radius.
Definition: TargetBody.cpp:404
TargetBody * m_target
The target whose information is being displayed.
Container class for TargetBody.
Definition: TargetBody.h:77
TargetInfoWidget(TargetBody *target, Directory *directory, QWidget *parent=0)
Constructor.
int frameType()
Returns the frame type.
Definition: TargetBody.cpp:230
std::vector< Angle > poleDecCoefs()
Returns coefficients of a quadratic polynomial fitting pole dec.
Definition: TargetBody.cpp:248
TargetBodyDisplayProperties * displayProperties()
Gets TargetBodyDisplayProperties.
Definition: TargetBody.cpp:197
std::vector< double > poleDecNutPrecCoefs()
TargetBody::poleDecNutPrecCoefs.
Definition: TargetBody.cpp:275
std::vector< double > poleRaNutPrecCoefs()
Returns coefficients of pole right ascension nut/prec terms.
Definition: TargetBody.cpp:266
~TargetInfoWidget()
Destructor.
QString formatPmString()
Make the polePMOffsetLabel text using information from the target.
QString displayName() const
Returns the display name.
QString formatPoleRaString()
Make the poleRightAscensionLabel text using information from the target.
Distance radiusB() const
Returns &quot;b&quot; radius.
Definition: TargetBody.cpp:364
std::vector< double > pmNutPrecCoefs()
Returns coefficients of the prime meridian nut/prec terms.
Definition: TargetBody.cpp:284
Widget for displaying information about a target.
QString formatPoleDecString()
Make the poleDeclinationLabel text using information from the target.
Ui::TargetInfoWidget * m_ui
The widget&#39;s ui.
std::vector< Angle > poleRaCoefs()
TargetBody::poleRaCoefs.
Definition: TargetBody.cpp:239
double kilometers() const
Get the distance in kilometers.
Definition: Distance.cpp:118
std::vector< Angle > pmCoefs()
Returns coefficients of a quadratic polynomial fitting pole pm.
Definition: TargetBody.cpp:257
Distance radiusC() const
Returns the &quot;c&quot; radius.
Definition: TargetBody.cpp:384
Distance radiusA() const
Returns &quot;a&quot; radius.
Definition: TargetBody.cpp:344

U.S. Department of the Interior | U.S. Geological Survey
ISIS | Privacy & Disclaimers | Astrogeology Research Program
To contact us, please post comments and questions on the ISIS Support Center
File Modified: 07/12/2023 23:30:39