Commit c3d1a23d authored by Jesse Mapel's avatar Jesse Mapel
Browse files

Merged SensorInfoWidget class from IPCE to ISIS. Fixes #4065 #4007.

git-svn-id: http://subversion.wr.usgs.gov/repos/prog/isis3/trunk@6841 41f8697f-d340-4b68-9986-7bafba869bb8
parent 5bb1d40e
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
ifeq ($(ISISROOT), $(BLANK))
.SILENT:
error:
	echo "Please set ISISROOT";
else
	include $(ISISROOT)/make/isismake.objs
endif
 No newline at end of file
+175 −0
Original line number Diff line number Diff line
#include "SensorInfoWidget.h"
#include "ui_SensorInfoWidget.h"

#include <QPixmap>

#include "Camera.h"
#include "CameraDistortionMap.h"
#include "Directory.h"
#include "GuiCamera.h"
#include "GuiCameraDisplayProperties.h"

namespace Isis {

  /**
   * Constructor
   * 
   * @param camera The camera whose information is being displayed
   * @param directory unused
   * @param parent The parent widget
   */
  SensorInfoWidget::SensorInfoWidget(GuiCamera* camera, Directory *directory,
                                     QWidget *parent) : m_ui(new Ui::SensorInfoWidget) {
    m_ui->setupUi(this);

    m_camera = camera;

    // danger here
//    Camera *isisCamera = camera->camera();
    // danger here

    QString displayName = camera->displayProperties()->displayName();

//    CameraDistortionMap *distortionMap = isisCamera->DistortionMap();

    QPixmap image;
    if (displayName.contains("ISSNA")) {
      image.load(":cassini-iss-nac");
    }
    else if (displayName.contains("Metric")) {
      image.load(":apollo-metric-camera");
    }
    else if (displayName.contains("HiRISE")) {
      image.load(":hirise-camera");
    }

    m_ui->spacecraftlabel->setText(tr("Spacecraft: %1")
                                   .arg(m_camera->spacecraftNameLong()));

    setMinimumWidth(m_ui->tabWidget->minimumWidth()+20);

    m_ui->targetImage->setPixmap(image);

    setFrameStyle(QFrame::Panel | QFrame::Sunken);
    setLineWidth(2);

    m_ui->tabWidget->setCurrentIndex(0);

//    m_ui->poleRightAscensionLabel->setText(formatPoleRaString());
//    m_ui->poleDeclinationLabel->setText(formatPoleDecString());
//    m_ui->polePMOffsetLabel->setText(formatPmString());

//    m_ui->aRadiiLabel->setText(tr("%1").arg(m_target->radiusA().kilometers()));
//    m_ui->bRadiiLabel->setText(tr("%1").arg(m_target->radiusB().kilometers()));
//    m_ui->cRadiiLabel->setText(tr("%1").arg(m_target->radiusC().kilometers()));
//    m_ui->meanRadiiLabel->setText(tr("%1").arg(m_target->meanRadius().kilometers()));
  }


  /**
   * Destructor
   */
  SensorInfoWidget::~SensorInfoWidget() {
    delete m_ui;
  }


//  QString SensorInfoWidget::formatPoleRaString() {
//    std::vector<double> poleRaCoefs = m_target->poleRaCoefs();
//    std::vector<double> poleRaNutPrecCoefs = m_target->poleRaNutPrecCoefs();

//    const QChar degChar(0260);
//    QString poleRaString = "";
//    QString coefLetter = m_target->naifPlanetSystemName().at(0);

//    if (poleRaCoefs[1] < 0.0 )
//      poleRaString.append(tr("%1%3 - %2T").arg(poleRaCoefs[0]).arg(-poleRaCoefs[1]).arg(degChar));
//    else
//      poleRaString.append(tr("%1%3 + %2T").arg(poleRaCoefs[0]).arg(poleRaCoefs[1]).arg(degChar));

//    QString tmp;
//    int nCoefs = poleRaNutPrecCoefs.size();;
//    for (int i = 0; i < nCoefs; i++) {
//      if (poleRaNutPrecCoefs[i] < 0.0 ) {
//        tmp.append(tr(" - %1%2%3").arg(-poleRaNutPrecCoefs[i]).arg("sin %1").arg(coefLetter)
//                                  .arg(i+1));
//      }
//      else if (poleRaNutPrecCoefs[i] > 0.0 ) {
//        tmp.append(tr(" + %1%2%3").arg(poleRaNutPrecCoefs[i]).arg("sin %1").arg(coefLetter)
//                                  .arg(i+1));
//      }
//    }

//    poleRaString.append(tmp);

//    return poleRaString;
//  }


//  QString SensorInfoWidget::formatPoleDecString() {
//    std::vector<double> poleDecCoefs = m_target->poleDecCoefs();
//    std::vector<double> poleDecNutPrecCoefs = m_target->poleDecNutPrecCoefs();

//    const QChar degChar(0260);
//    QString poleDecString = "";
//    QString coefLetter = m_target->naifPlanetSystemName().at(0);

//    if (poleDecCoefs[1] < 0.0 )
//      poleDecString.append(tr("%1%3 - %2T").arg(poleDecCoefs[0]).arg(-poleDecCoefs[1])
//                                           .arg(degChar));
//    else
//      poleDecString.append(tr("%1%3 + %2T").arg(poleDecCoefs[0]).arg(poleDecCoefs[1]).arg(degChar));

//    QString tmp;
//    int nCoefs = poleDecNutPrecCoefs.size();;
//    for (int i = 0; i < nCoefs; i++) {
//      if (poleDecNutPrecCoefs[i] < 0.0 ) {
//        tmp.append(tr(" - %1%2%3").arg(-poleDecNutPrecCoefs[i]).arg("cos %1").arg(coefLetter)
//                                  .arg(i+1));
//      }
//      else if (poleDecNutPrecCoefs[i] > 0.0 ) {
//        tmp.append(tr(" + %1%2%3").arg(poleDecNutPrecCoefs[i]).arg("cos %1").arg(coefLetter)
//                                  .arg(i+1));
//      }
//    }

//    poleDecString.append(tmp);

//    return poleDecString;
//  }


//  QString SensorInfoWidget::formatPmString() {
//    std::vector<double> pmCoefs = m_target->pmCoefs();
//    std::vector<double> pmNutPrecCoefs = m_target->pmNutPrecCoefs();

//    const QChar degChar(0260);
//    QString pmString = "";
//    QString coefLetter = m_target->naifPlanetSystemName().at(0);

//    if (pmCoefs[1] < 0.0 )
//      pmString.append(tr("%1%3 - %2d").arg(pmCoefs[0]).arg(-pmCoefs[1]).arg(degChar));
//    else if (pmCoefs[1] > 0.0 )
//      pmString.append(tr("%1%3 + %2d").arg(pmCoefs[0]).arg(pmCoefs[1]).arg(degChar));

//    if (pmCoefs[2] < 0.0 )
//      pmString.append(tr(" - %2d^2").arg(-pmCoefs[2]));
//    else if (pmCoefs[2] > 0.0 )
//      pmString.append(tr(" + %2d^2").arg(pmCoefs[2]));


//    QString tmp;
//    for (int i = 0; i < pmNutPrecCoefs.size(); i++) {
//      if (pmNutPrecCoefs[i] < 0.0 ) {
//        tmp.append(tr(" - %1%2%3").arg(-pmNutPrecCoefs[i]).arg("sin %1").arg(coefLetter).arg(i+1));
//      }
//      else if (pmNutPrecCoefs[i] > 0.0 ) {
//        tmp.append(tr(" + %1%2%3").arg(pmNutPrecCoefs[i]).arg("sin %1").arg(coefLetter).arg(i+1));
//      }
//    }

//    pmString.append(tmp);

//    return pmString;
//  }
}
+45 −0
Original line number Diff line number Diff line
#ifndef SensorInfoWidget_H
#define SensorInfoWidget_H

#include <QFrame>
#include <QString>

namespace Ui {
  class SensorInfoWidget;
}

namespace Isis {
  class Directory;

  /**
   * @brief Widget for displaying information about a sensor
   *
   * @ingroup ControlNetworks
   *
   * @author 2015-07-10 Ken Edmundson
   *
   * @internal
   *   @history 2015-07-10 Ken Edmundson - Original version.
   */
  class GuiCamera;

  class SensorInfoWidget : public QFrame {
    Q_OBJECT

    public:
      explicit SensorInfoWidget(GuiCamera* camera, Directory *directory, QWidget *parent = 0);
      ~SensorInfoWidget();

    private:
      Ui::SensorInfoWidget *m_ui; //!< The widget ui

//      QString formatPoleRaString();
//      QString formatPoleDecString();
//      QString formatPmString();

      Directory *m_directory; //!< Unused
      GuiCamera *m_camera; //!< The sensor whose information is being displayed
  };
}

#endif // SensorInfoWidget_H
+563 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>SensorInfoWidget</class>
 <widget class="QFrame" name="SensorInfoWidget">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>420</width>
    <height>581</height>
   </rect>
  </property>
  <property name="sizePolicy">
   <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
    <horstretch>0</horstretch>
    <verstretch>0</verstretch>
   </sizepolicy>
  </property>
  <property name="minimumSize">
   <size>
    <width>420</width>
    <height>0</height>
   </size>
  </property>
  <property name="maximumSize">
   <size>
    <width>420</width>
    <height>16777215</height>
   </size>
  </property>
  <property name="windowTitle">
   <string>DockWidget</string>
  </property>
  <layout class="QVBoxLayout" name="verticalLayout">
   <item>
    <widget class="QLabel" name="targetImage">
     <property name="sizePolicy">
      <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
       <horstretch>0</horstretch>
       <verstretch>0</verstretch>
      </sizepolicy>
     </property>
     <property name="minimumSize">
      <size>
       <width>391</width>
       <height>181</height>
      </size>
     </property>
     <property name="maximumSize">
      <size>
       <width>391</width>
       <height>181</height>
      </size>
     </property>
     <property name="frameShape">
      <enum>QFrame::Panel</enum>
     </property>
     <property name="frameShadow">
      <enum>QFrame::Sunken</enum>
     </property>
     <property name="lineWidth">
      <number>2</number>
     </property>
     <property name="text">
      <string/>
     </property>
     <property name="scaledContents">
      <bool>true</bool>
     </property>
    </widget>
   </item>
   <item>
    <widget class="QLabel" name="spacecraftlabel">
     <property name="text">
      <string>Spacecraft</string>
     </property>
    </widget>
   </item>
   <item>
    <spacer name="verticalSpacer">
     <property name="orientation">
      <enum>Qt::Vertical</enum>
     </property>
     <property name="sizeType">
      <enum>QSizePolicy::Preferred</enum>
     </property>
     <property name="sizeHint" stdset="0">
      <size>
       <width>20</width>
       <height>37</height>
      </size>
     </property>
    </spacer>
   </item>
   <item>
    <widget class="QTabWidget" name="tabWidget">
     <property name="sizePolicy">
      <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
       <horstretch>0</horstretch>
       <verstretch>0</verstretch>
      </sizepolicy>
     </property>
     <property name="minimumSize">
      <size>
       <width>391</width>
       <height>231</height>
      </size>
     </property>
     <property name="maximumSize">
      <size>
       <width>391</width>
       <height>231</height>
      </size>
     </property>
     <property name="tabPosition">
      <enum>QTabWidget::South</enum>
     </property>
     <property name="currentIndex">
      <number>0</number>
     </property>
     <widget class="QWidget" name="tab">
      <attribute name="title">
       <string>Specifications</string>
      </attribute>
      <widget class="QWidget" name="layoutWidget">
       <property name="geometry">
        <rect>
         <x>10</x>
         <y>10</y>
         <width>524</width>
         <height>261</height>
        </rect>
       </property>
       <layout class="QGridLayout" name="gridLayout">
        <item row="0" column="0" colspan="2">
         <widget class="QLabel" name="label">
          <property name="font">
           <font>
            <pointsize>14</pointsize>
            <weight>75</weight>
            <bold>true</bold>
           </font>
          </property>
          <property name="text">
           <string>Right Ascension</string>
          </property>
         </widget>
        </item>
        <item row="0" column="2">
         <spacer name="horizontalSpacer">
          <property name="orientation">
           <enum>Qt::Horizontal</enum>
          </property>
          <property name="sizeHint" stdset="0">
           <size>
            <width>40</width>
            <height>20</height>
           </size>
          </property>
         </spacer>
        </item>
        <item row="3" column="0" colspan="3">
         <widget class="QLabel" name="poleDeclinationLabel">
          <property name="font">
           <font>
            <pointsize>10</pointsize>
           </font>
          </property>
          <property name="text">
           <string>Now is the time for all good men to come to the aid of their countrymen</string>
          </property>
          <property name="wordWrap">
           <bool>true</bool>
          </property>
         </widget>
        </item>
        <item row="2" column="0" colspan="2">
         <widget class="QLabel" name="label_2">
          <property name="font">
           <font>
            <pointsize>14</pointsize>
            <weight>75</weight>
            <bold>true</bold>
           </font>
          </property>
          <property name="text">
           <string>Declination</string>
          </property>
         </widget>
        </item>
        <item row="1" column="0" colspan="3">
         <widget class="QLabel" name="poleRightAscensionLabel">
          <property name="font">
           <font>
            <pointsize>10</pointsize>
           </font>
          </property>
          <property name="text">
           <string>Now is the time for all good men to come to the aid of their countrymen</string>
          </property>
          <property name="wordWrap">
           <bool>true</bool>
          </property>
         </widget>
        </item>
        <item row="2" column="2">
         <spacer name="horizontalSpacer_4">
          <property name="orientation">
           <enum>Qt::Horizontal</enum>
          </property>
          <property name="sizeHint" stdset="0">
           <size>
            <width>40</width>
            <height>20</height>
           </size>
          </property>
         </spacer>
        </item>
       </layout>
      </widget>
     </widget>
     <widget class="QWidget" name="tab_2">
      <attribute name="title">
       <string>Calibration</string>
      </attribute>
      <widget class="QWidget" name="layoutWidget_2">
       <property name="geometry">
        <rect>
         <x>10</x>
         <y>10</y>
         <width>351</width>
         <height>181</height>
        </rect>
       </property>
       <layout class="QGridLayout" name="gridLayout_2">
        <item row="1" column="0" colspan="3">
         <widget class="QLabel" name="polePMOffsetLabel">
          <property name="font">
           <font>
            <pointsize>10</pointsize>
           </font>
          </property>
          <property name="text">
           <string>Now is the time for all good men to come to the aid of their countrymen</string>
          </property>
          <property name="wordWrap">
           <bool>true</bool>
          </property>
         </widget>
        </item>
        <item row="0" column="0" colspan="2">
         <widget class="QLabel" name="label_6">
          <property name="font">
           <font>
            <pointsize>14</pointsize>
            <weight>75</weight>
            <bold>true</bold>
           </font>
          </property>
          <property name="text">
           <string>Prime Meridian (W)</string>
          </property>
         </widget>
        </item>
        <item row="0" column="2">
         <spacer name="horizontalSpacer_6">
          <property name="orientation">
           <enum>Qt::Horizontal</enum>
          </property>
          <property name="sizeHint" stdset="0">
           <size>
            <width>40</width>
            <height>20</height>
           </size>
          </property>
         </spacer>
        </item>
       </layout>
      </widget>
     </widget>
     <widget class="QWidget" name="tab_3">
      <attribute name="title">
       <string>What else?</string>
      </attribute>
      <widget class="QWidget" name="layoutWidget_3">
       <property name="geometry">
        <rect>
         <x>20</x>
         <y>20</y>
         <width>351</width>
         <height>161</height>
        </rect>
       </property>
       <layout class="QGridLayout" name="gridLayout_3">
        <item row="0" column="2">
         <spacer name="horizontalSpacer_11">
          <property name="orientation">
           <enum>Qt::Horizontal</enum>
          </property>
          <property name="sizeHint" stdset="0">
           <size>
            <width>40</width>
            <height>20</height>
           </size>
          </property>
         </spacer>
        </item>
        <item row="2" column="2">
         <widget class="QLabel" name="bRadiiLabel">
          <property name="font">
           <font>
            <pointsize>16</pointsize>
           </font>
          </property>
          <property name="text">
           <string>TextLabel</string>
          </property>
          <property name="alignment">
           <set>Qt::AlignCenter</set>
          </property>
         </widget>
        </item>
        <item row="4" column="2">
         <widget class="QLabel" name="meanRadiiLabel">
          <property name="font">
           <font>
            <pointsize>16</pointsize>
           </font>
          </property>
          <property name="text">
           <string>TextLabel</string>
          </property>
          <property name="alignment">
           <set>Qt::AlignCenter</set>
          </property>
         </widget>
        </item>
        <item row="3" column="2">
         <widget class="QLabel" name="cRadiiLabel">
          <property name="font">
           <font>
            <pointsize>16</pointsize>
           </font>
          </property>
          <property name="text">
           <string>TextLabel</string>
          </property>
          <property name="alignment">
           <set>Qt::AlignCenter</set>
          </property>
         </widget>
        </item>
        <item row="4" column="0">
         <widget class="QLabel" name="meanLabel">
          <property name="font">
           <font>
            <pointsize>16</pointsize>
            <weight>75</weight>
            <bold>true</bold>
           </font>
          </property>
          <property name="text">
           <string>mean</string>
          </property>
          <property name="alignment">
           <set>Qt::AlignCenter</set>
          </property>
         </widget>
        </item>
        <item row="1" column="2">
         <widget class="QLabel" name="aRadiiLabel">
          <property name="font">
           <font>
            <pointsize>16</pointsize>
           </font>
          </property>
          <property name="text">
           <string>TextLabel</string>
          </property>
          <property name="alignment">
           <set>Qt::AlignCenter</set>
          </property>
         </widget>
        </item>
        <item row="2" column="3">
         <widget class="QLabel" name="bRadiiUnitsLabel">
          <property name="font">
           <font>
            <pointsize>16</pointsize>
           </font>
          </property>
          <property name="text">
           <string>km</string>
          </property>
          <property name="alignment">
           <set>Qt::AlignCenter</set>
          </property>
         </widget>
        </item>
        <item row="4" column="3">
         <widget class="QLabel" name="meanRadiiUnitsLabel">
          <property name="font">
           <font>
            <pointsize>16</pointsize>
           </font>
          </property>
          <property name="text">
           <string>km</string>
          </property>
          <property name="alignment">
           <set>Qt::AlignCenter</set>
          </property>
         </widget>
        </item>
        <item row="3" column="3">
         <widget class="QLabel" name="cRadiiUnitsLabel">
          <property name="font">
           <font>
            <pointsize>16</pointsize>
           </font>
          </property>
          <property name="text">
           <string>km</string>
          </property>
          <property name="alignment">
           <set>Qt::AlignCenter</set>
          </property>
         </widget>
        </item>
        <item row="1" column="0">
         <widget class="QLabel" name="aLabel">
          <property name="font">
           <font>
            <pointsize>16</pointsize>
            <weight>75</weight>
            <bold>true</bold>
           </font>
          </property>
          <property name="text">
           <string>a</string>
          </property>
          <property name="alignment">
           <set>Qt::AlignCenter</set>
          </property>
         </widget>
        </item>
        <item row="3" column="0">
         <widget class="QLabel" name="cLabel">
          <property name="font">
           <font>
            <pointsize>16</pointsize>
            <weight>75</weight>
            <bold>true</bold>
           </font>
          </property>
          <property name="text">
           <string>c</string>
          </property>
          <property name="alignment">
           <set>Qt::AlignCenter</set>
          </property>
         </widget>
        </item>
        <item row="1" column="3">
         <widget class="QLabel" name="aRadiiUnitsLabel">
          <property name="font">
           <font>
            <pointsize>16</pointsize>
           </font>
          </property>
          <property name="text">
           <string>km</string>
          </property>
          <property name="alignment">
           <set>Qt::AlignCenter</set>
          </property>
         </widget>
        </item>
        <item row="2" column="0">
         <widget class="QLabel" name="bLabel">
          <property name="font">
           <font>
            <pointsize>16</pointsize>
            <weight>75</weight>
            <bold>true</bold>
           </font>
          </property>
          <property name="text">
           <string>b</string>
          </property>
          <property name="alignment">
           <set>Qt::AlignCenter</set>
          </property>
         </widget>
        </item>
        <item row="0" column="0" colspan="2">
         <widget class="QLabel" name="label_9">
          <property name="font">
           <font>
            <pointsize>16</pointsize>
            <weight>75</weight>
            <bold>true</bold>
           </font>
          </property>
          <property name="text">
           <string>Radii</string>
          </property>
         </widget>
        </item>
       </layout>
      </widget>
     </widget>
    </widget>
   </item>
   <item>
    <widget class="QLabel" name="label_10">
     <property name="text">
      <string>where</string>
     </property>
    </widget>
   </item>
   <item>
    <spacer name="verticalSpacer_2">
     <property name="orientation">
      <enum>Qt::Vertical</enum>
     </property>
     <property name="sizeHint" stdset="0">
      <size>
       <width>20</width>
       <height>37</height>
      </size>
     </property>
    </spacer>
   </item>
   <item>
    <widget class="QLabel" name="label_7">
     <property name="text">
      <string>T = interval in Julien centuries (of 36525 days) from the standard epoch.</string>
     </property>
     <property name="wordWrap">
      <bool>true</bool>
     </property>
    </widget>
   </item>
   <item>
    <widget class="QLabel" name="label_11">
     <property name="text">
      <string>d = interval in days from the standard epoch.</string>
     </property>
    </widget>
   </item>
   <item>
    <widget class="QLabel" name="label_12">
     <property name="text">
      <string>The standard epoch is JD 2451545.0, i.e. 2000 January 1 12 hours TDB.</string>
     </property>
    </widget>
   </item>
  </layout>
 </widget>
 <resources/>
 <connections/>
</ui>