Commit cbd71c57 authored by Jesse Mapel's avatar Jesse Mapel Committed by Makayla Shepherd
Browse files

Updated ControlPointV0003 to copy over log data

parent d7f77043
Loading
Loading
Loading
Loading
+5 −13
Original line number Diff line number Diff line
@@ -328,21 +328,13 @@ namespace Isis {


  /**
   * Access the protobuf control point data. If there is not internal point data then
   * default point data is returned. Note that default point data may be missing required
   * fields.
   * Access the protobuf control point data.
   *
   * @return @b const ControlNetFileProtoV0001_PBControlPoint& A constant reference to the internal
   *                                                           control point data. There is no
   *                                                           guarantee that the point data is
   *                                                           fully initialized.
   * @return @b QSharedPointer<ControlNetFileProtoV0001_PBControlPoint> A pointer to the internal
   *                                                                    point data.
   */
  const ControlNetFileProtoV0001_PBControlPoint &ControlPointV0002::pointData() {
      if (!m_pointData) {
        m_pointData.reset(new ControlNetFileProtoV0001_PBControlPoint);
      }

      return *m_pointData;
  QSharedPointer<ControlNetFileProtoV0001_PBControlPoint> ControlPointV0002::pointData() {
      return m_pointData;
  }


+1 −1
Original line number Diff line number Diff line
@@ -40,7 +40,7 @@ namespace Isis {
                        QSharedPointer<ControlNetLogDataProtoV0001_Point> logData);
      ControlPointV0002(ControlPointV0001 &oldPoint);

      const ControlNetFileProtoV0001_PBControlPoint &pointData();
      QSharedPointer<ControlNetFileProtoV0001_PBControlPoint> pointData();
      QSharedPointer<ControlNetLogDataProtoV0001_Point> logData();

    private:
+77 −57
Original line number Diff line number Diff line
@@ -262,59 +262,68 @@ namespace Isis {
   */
  ControlPointV0003::ControlPointV0003(ControlPointV0002 &oldPoint)
   : m_pointData(new ControlPointFileEntryV0002) {
    ControlNetFileProtoV0001_PBControlPoint oldPointData = oldPoint.pointData();
    QSharedPointer<ControlNetFileProtoV0001_PBControlPoint> oldPointData = oldPoint.pointData();
    if (!oldPointData) {
      QString msg = "Version 2 control point is missing point data.";
      throw IException(IException::User, msg, _FILEINFO_);
    }
    QSharedPointer<ControlNetLogDataProtoV0001_Point> oldLogData = oldPoint.logData();
    if (!oldLogData) {
      QString msg = "Version 2 control point is missing measure log data.";
      throw IException(IException::User, msg, _FILEINFO_);
    }

    // Copy over POD values
    if ( oldPointData.has_id() ) {
      m_pointData->set_id( oldPointData.id() );
    if ( oldPointData->has_id() ) {
      m_pointData->set_id( oldPointData->id() );
    }
    if ( oldPointData.has_choosername() ) {
      m_pointData->set_choosername( oldPointData.choosername() );
    if ( oldPointData->has_choosername() ) {
      m_pointData->set_choosername( oldPointData->choosername() );
    }
    if ( oldPointData.has_datetime() ) {
      m_pointData->set_datetime( oldPointData.datetime() );
    if ( oldPointData->has_datetime() ) {
      m_pointData->set_datetime( oldPointData->datetime() );
    }
    if ( oldPointData.has_apriorisurfpointsourcefile() ) {
      m_pointData->set_apriorisurfpointsourcefile( oldPointData.apriorisurfpointsourcefile() );
    if ( oldPointData->has_apriorisurfpointsourcefile() ) {
      m_pointData->set_apriorisurfpointsourcefile( oldPointData->apriorisurfpointsourcefile() );
    }
    if ( oldPointData.has_aprioriradiussourcefile() ) {
      m_pointData->set_aprioriradiussourcefile( oldPointData.aprioriradiussourcefile() );
    if ( oldPointData->has_aprioriradiussourcefile() ) {
      m_pointData->set_aprioriradiussourcefile( oldPointData->aprioriradiussourcefile() );
    }
    if ( oldPointData.has_jigsawrejected() ) {
      m_pointData->set_jigsawrejected( oldPointData.jigsawrejected() );
    if ( oldPointData->has_jigsawrejected() ) {
      m_pointData->set_jigsawrejected( oldPointData->jigsawrejected() );
    }
    if ( oldPointData.has_editlock() ) {
      m_pointData->set_editlock( oldPointData.editlock() );
    if ( oldPointData->has_editlock() ) {
      m_pointData->set_editlock( oldPointData->editlock() );
    }
    if ( oldPointData.has_ignore() ) {
      m_pointData->set_ignore( oldPointData.ignore() );
    if ( oldPointData->has_ignore() ) {
      m_pointData->set_ignore( oldPointData->ignore() );
    }
    if ( oldPointData.has_apriorix() ) {
      m_pointData->set_apriorix( oldPointData.apriorix() );
    if ( oldPointData->has_apriorix() ) {
      m_pointData->set_apriorix( oldPointData->apriorix() );
    }
    if ( oldPointData.has_aprioriy() ) {
      m_pointData->set_aprioriy( oldPointData.aprioriy() );
    if ( oldPointData->has_aprioriy() ) {
      m_pointData->set_aprioriy( oldPointData->aprioriy() );
    }
    if ( oldPointData.has_aprioriz() ) {
      m_pointData->set_aprioriz( oldPointData.aprioriz() );
    if ( oldPointData->has_aprioriz() ) {
      m_pointData->set_aprioriz( oldPointData->aprioriz() );
    }
    if ( oldPointData.has_adjustedx() ) {
      m_pointData->set_adjustedx( oldPointData.adjustedx() );
    if ( oldPointData->has_adjustedx() ) {
      m_pointData->set_adjustedx( oldPointData->adjustedx() );
    }
    if ( oldPointData.has_adjustedy() ) {
      m_pointData->set_adjustedy( oldPointData.adjustedy() );
    if ( oldPointData->has_adjustedy() ) {
      m_pointData->set_adjustedy( oldPointData->adjustedy() );
    }
    if ( oldPointData.has_adjustedz() ) {
      m_pointData->set_adjustedz( oldPointData.adjustedz() );
    if ( oldPointData->has_adjustedz() ) {
      m_pointData->set_adjustedz( oldPointData->adjustedz() );
    }
    if ( oldPointData.has_latitudeconstrained() ) {
      m_pointData->set_latitudeconstrained( oldPointData.latitudeconstrained() );
    if ( oldPointData->has_latitudeconstrained() ) {
      m_pointData->set_latitudeconstrained( oldPointData->latitudeconstrained() );
    }
    if ( oldPointData.has_longitudeconstrained() ) {
      m_pointData->set_longitudeconstrained( oldPointData.longitudeconstrained() );
    if ( oldPointData->has_longitudeconstrained() ) {
      m_pointData->set_longitudeconstrained( oldPointData->longitudeconstrained() );
    }
    if ( oldPointData.has_radiusconstrained() ) {
      m_pointData->set_radiusconstrained( oldPointData.radiusconstrained() );
    if ( oldPointData->has_radiusconstrained() ) {
      m_pointData->set_radiusconstrained( oldPointData->radiusconstrained() );
    }

    // Copy over enumerated values
@@ -322,8 +331,8 @@ namespace Isis {
    // The only point types in V0002 are ground and tie.
    // So, convert ground and tie to their V0003 values, fixed and free respectively.
    // Later check if the point is constrained.
    if ( oldPointData.has_type() ) {
      ControlNetFileProtoV0001_PBControlPoint_PointType pointType = oldPointData.type();
    if ( oldPointData->has_type() ) {
      ControlNetFileProtoV0001_PBControlPoint_PointType pointType = oldPointData->type();
      if (pointType == ControlNetFileProtoV0001_PBControlPoint::Ground) {
        m_pointData->set_type(ControlPointFileEntryV0002::Fixed);
      }
@@ -336,9 +345,9 @@ namespace Isis {
      }
    }

    if ( oldPointData.has_apriorisurfpointsource() ) {
    if ( oldPointData->has_apriorisurfpointsource() ) {
      ControlNetFileProtoV0001_PBControlPoint_AprioriSource surfacePointSource;
      surfacePointSource = oldPointData.apriorisurfpointsource();
      surfacePointSource = oldPointData->apriorisurfpointsource();
      if (surfacePointSource == ControlNetFileProtoV0001_PBControlPoint::None) {
        m_pointData->set_apriorisurfpointsource(ControlPointFileEntryV0002::None);
      }
@@ -363,9 +372,9 @@ namespace Isis {
      }
    }

    if ( oldPointData.has_aprioriradiussource() ) {
    if ( oldPointData->has_aprioriradiussource() ) {
      ControlNetFileProtoV0001_PBControlPoint_AprioriSource radiusSource;
      radiusSource = oldPointData.aprioriradiussource();
      radiusSource = oldPointData->aprioriradiussource();
      if (radiusSource == ControlNetFileProtoV0001_PBControlPoint::None) {
        m_pointData->set_aprioriradiussource(ControlPointFileEntryV0002::None);
      }
@@ -393,30 +402,30 @@ namespace Isis {
    // Copy the array values

    // If there is a covariance matrix, then the point is constrained
    if (oldPointData.aprioricovar_size() > 0) {
    if (oldPointData->aprioricovar_size() > 0) {
      m_pointData->set_type(ControlPointFileEntryV0002::Constrained);
      m_pointData->add_aprioricovar( oldPointData.aprioricovar(0) );
      m_pointData->add_aprioricovar( oldPointData.aprioricovar(1) );
      m_pointData->add_aprioricovar( oldPointData.aprioricovar(2) );
      m_pointData->add_aprioricovar( oldPointData.aprioricovar(3) );
      m_pointData->add_aprioricovar( oldPointData.aprioricovar(4) );
      m_pointData->add_aprioricovar( oldPointData.aprioricovar(5) );
      m_pointData->add_aprioricovar( oldPointData->aprioricovar(0) );
      m_pointData->add_aprioricovar( oldPointData->aprioricovar(1) );
      m_pointData->add_aprioricovar( oldPointData->aprioricovar(2) );
      m_pointData->add_aprioricovar( oldPointData->aprioricovar(3) );
      m_pointData->add_aprioricovar( oldPointData->aprioricovar(4) );
      m_pointData->add_aprioricovar( oldPointData->aprioricovar(5) );
    }

    if (oldPointData.adjustedcovar_size() > 0) {
      m_pointData->add_adjustedcovar( oldPointData.adjustedcovar(0) );
      m_pointData->add_adjustedcovar( oldPointData.adjustedcovar(1) );
      m_pointData->add_adjustedcovar( oldPointData.adjustedcovar(2) );
      m_pointData->add_adjustedcovar( oldPointData.adjustedcovar(3) );
      m_pointData->add_adjustedcovar( oldPointData.adjustedcovar(4) );
      m_pointData->add_adjustedcovar( oldPointData.adjustedcovar(5) );
    if (oldPointData->adjustedcovar_size() > 0) {
      m_pointData->add_adjustedcovar( oldPointData->adjustedcovar(0) );
      m_pointData->add_adjustedcovar( oldPointData->adjustedcovar(1) );
      m_pointData->add_adjustedcovar( oldPointData->adjustedcovar(2) );
      m_pointData->add_adjustedcovar( oldPointData->adjustedcovar(3) );
      m_pointData->add_adjustedcovar( oldPointData->adjustedcovar(4) );
      m_pointData->add_adjustedcovar( oldPointData->adjustedcovar(5) );
    }

    // Copy the measures
    for (int i = 0; i < oldPointData.measures_size(); i++) {
    for (int i = 0; i < oldPointData->measures_size(); i++) {
      ControlPointFileEntryV0002_Measure *newMeasure = m_pointData->add_measures();
      ControlNetFileProtoV0001_PBControlPoint_PBControlMeasure oldMeasure;
      oldMeasure = oldPointData.measures(i);
      oldMeasure = oldPointData->measures(i);

      // Copy over POD values
      if ( oldMeasure.has_serialnumber() ) {
@@ -492,6 +501,17 @@ namespace Isis {
          throw IException(IException::User, msg, _FILEINFO_);
        }

        // Copy over any log data
        ControlNetLogDataProtoV0001_Point_Measure measureLogData = oldLogData->measures(i);
        for (int j = 0; j < measureLogData.loggedmeasuredata_size(); j++) {
          ControlNetLogDataProtoV0001_Point_Measure_DataEntry oldData =
                measureLogData.loggedmeasuredata(j);
          ControlPointFileEntryV0002_Measure_MeasureLogData newData;
          newData.set_doubledatatype( oldData.datatype() );
          newData.set_doubledatavalue( oldData.datavalue() );
          *newMeasure->add_log() = newData;
        }

        // Check that all the required fields in the measure are filled
        if ( !newMeasure->IsInitialized() ) {
          QString msg = "Measure file entry at index [" + toString(i)