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

Fixed errors in ControlPointV0002

parent 6a8d1506
Loading
Loading
Loading
Loading
+41 −52
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@
#include "ControlPointV0001.h"
#include "IException.h"
#include "Pvl.h"
#include "PvlContainer.h"

using namespace std;

@@ -27,7 +28,7 @@ namespace Isis {
   *
   * @param pointObject The control point and its measures in a Pvl object
   */
  ControlPointV0002::ControlPointV0002(const Pvl &pointObject)
  ControlPointV0002::ControlPointV0002(Pvl &pointObject)
   : m_pointData(new ControlNetFileProtoV0001_PBControlPoint) {

    // Copy over strings, doubles, and bools
@@ -164,49 +165,49 @@ namespace Isis {
    //  Process Measures
    for (int groupIndex = 0; groupIndex < pointObject.groups(); groupIndex ++) {
      PvlGroup &group = pointObject.group(groupIndex);
      ControlNetFileProtoV0001_PBControlPoint::PBControlMeasure measure;
      ControlNetFileProtoV0001_PBControlPoint_PBControlMeasure measure;

      // Copy strings, booleans, and doubles
      copy(group, "SerialNumber",
           measure, &ControlNetFileProtoV0001_PBControlPoint::PBControlMeasure::set_serialnumber);
           measure, &ControlNetFileProtoV0001_PBControlPoint_PBControlMeasure::set_serialnumber);
      copy(group, "ChooserName",
           measure, &ControlNetFileProtoV0001_PBControlPoint::PBControlMeasure::set_choosername);
           measure, &ControlNetFileProtoV0001_PBControlPoint_PBControlMeasure::set_choosername);
      copy(group, "DateTime",
           measure, &ControlNetFileProtoV0001_PBControlPoint::PBControlMeasure::set_datetime);
           measure, &ControlNetFileProtoV0001_PBControlPoint_PBControlMeasure::set_datetime);
      copy(group, "Diameter",
           measure, &ControlNetFileProtoV0001_PBControlPoint::PBControlMeasure::set_diameter);
           measure, &ControlNetFileProtoV0001_PBControlPoint_PBControlMeasure::set_diameter);
      copy(group, "EditLock",
           measure, &ControlNetFileProtoV0001_PBControlPoint::PBControlMeasure::set_editlock);
           measure, &ControlNetFileProtoV0001_PBControlPoint_PBControlMeasure::set_editlock);
      copy(group, "Ignore",
           measure, &ControlNetFileProtoV0001_PBControlPoint::PBControlMeasure::set_ignore);
           measure, &ControlNetFileProtoV0001_PBControlPoint_PBControlMeasure::set_ignore);
      copy(group, "JigsawRejected",
           measure, &ControlNetFileProtoV0001_PBControlPoint::PBControlMeasure::set_jigsawrejected);
           measure, &ControlNetFileProtoV0001_PBControlPoint_PBControlMeasure::set_jigsawrejected);
      copy(group, "AprioriSample",
           measure, &ControlNetFileProtoV0001_PBControlPoint::PBControlMeasure::set_apriorisample);
           measure, &ControlNetFileProtoV0001_PBControlPoint_PBControlMeasure::set_apriorisample);
      copy(group, "AprioriLine",
           measure, &ControlNetFileProtoV0001_PBControlPoint::PBControlMeasure::set_aprioriline);
           measure, &ControlNetFileProtoV0001_PBControlPoint_PBControlMeasure::set_aprioriline);
      copy(group, "SampleSigma",
           measure, &ControlNetFileProtoV0001_PBControlPoint::PBControlMeasure::set_samplesigma);
           measure, &ControlNetFileProtoV0001_PBControlPoint_PBControlMeasure::set_samplesigma);
      copy(group, "LineSigma",
           measure, &ControlNetFileProtoV0001_PBControlPoint::PBControlMeasure::set_linesigma);
           measure, &ControlNetFileProtoV0001_PBControlPoint_PBControlMeasure::set_linesigma);

      // The sample, line, sample residual, and line residual are nested in another structure
      // inside the measure, so they cannot be copied with the conenience methods.
      if (group.hasKeyword("Sample")) {
        double value = toDouble(group["Sample"][0]);
        measure.measurement().set_sample(value);
        measure.mutable_measurement()->set_sample(value);
      }
      if (group.hasKeyword("Line")) {
        double value = toDouble(group["Line"][0]);
        measure.measurement().set_line(value);
        measure.mutable_measurement()->set_line(value);
      }
      if (group.hasKeyword("SampleResidual")) {
        double value = toDouble(group["SampleResidual"][0]);
        measure.measurement().set_sampleresidual(value);
        measure.mutable_measurement()->set_sampleresidual(value);
      }
      if (group.hasKeyword("LineResidual")) {
        double value = toDouble(group["LineResidual"][0]);
        measure.measurement().set_lineresidual(value);
        measure.mutable_measurement()->set_lineresidual(value);
      }


@@ -219,16 +220,16 @@ namespace Isis {

      QString type = group["MeasureType"][0].toLower();
      if (type == "candidate") {
        measure.set_type(ControlNetFileProtoV0001_PBControlPoint::PBControlMeasure::Candidate);
        measure.set_type(ControlNetFileProtoV0001_PBControlPoint_PBControlMeasure::Candidate);
      }
      else if (type == "manual") {
        measure.set_type(ControlNetFileProtoV0001_PBControlPoint::PBControlMeasure::Manual);
        measure.set_type(ControlNetFileProtoV0001_PBControlPoint_PBControlMeasure::Manual);
      }
      else if (type == "registeredpixel") {
        measure.set_type(ControlNetFileProtoV0001_PBControlPoint::PBControlMeasure::RegisteredPixel);
        measure.set_type(ControlNetFileProtoV0001_PBControlPoint_PBControlMeasure::RegisteredPixel);
      }
      else if (type == "registeredsubpixel") {
        measure.set_type(ControlNetFileProtoV0001_PBControlPoint::PBControlMeasure::RegisteredSubPixel);
        measure.set_type(ControlNetFileProtoV0001_PBControlPoint_PBControlMeasure::RegisteredSubPixel);
      }
      else {
        throw IException(IException::Io,
@@ -237,18 +238,6 @@ namespace Isis {
      }
      group.deleteKeyword("MeasureType");

      for (int key = 0; key < group.keywords(); key++) {
        ControlMeasureLogData interpreter(group[key]);
        if (!interpreter.IsValid()) {
          QString msg = "Unhandled or duplicate keywords in control measure ["
                        + group[key].name() + "]";
          throw IException(IException::Programmer, msg, _FILEINFO_);
        }
        else {
          *measure.add_log() = interpreter.ToProtocolBuffer();
        }
      }

      *m_pointData->add_measures() = measure;
    }

@@ -267,7 +256,7 @@ namespace Isis {
   * @param oldPoint The old version 1 control point.
   */
  ControlPointV0002::ControlPointV0002(ControlPointV0001 &oldPoint)
   : m_pointData(oldPoint->pointData()) {
   : m_pointData(oldPoint.pointData()) {

  }

@@ -305,7 +294,7 @@ namespace Isis {
   * @param setter The protobuf mutator method that sets the value of the field in the protobuf
   *               representation.
   */
  void ControlPointV0002::copy(PvlContainer &container,
  void ControlPointV0001::copy(PvlContainer &container,
                               QString keyName,
                               QSharedPointer<ControlNetFileProtoV0001_PBControlPoint> point,
                               void (ControlNetFileProtoV0001_PBControlPoint::*setter)(bool)) {
@@ -318,7 +307,7 @@ namespace Isis {
    value = value.toLower();

    if (value == "true" || value == "yes")
      (point->*setter)(true);
      (point.data()->*setter)(true);
  }


@@ -336,9 +325,9 @@ namespace Isis {
   * @param setter The protobuf mutator method that sets the value of the field in the protobuf
   *               representation.
   */
  void ControlPointV0002::copy(PvlContainer &container,
  void ControlPointV0001::copy(PvlContainer &container,
                               QString keyName,
                               QSharedPointer<ControlNetFileProtoV0001_PBControlPoint> &point,
                               QSharedPointer<ControlNetFileProtoV0001_PBControlPoint> point,
                               void (ControlNetFileProtoV0001_PBControlPoint::*setter)(double)) {

    if (!container.hasKeyword(keyName))
@@ -346,7 +335,7 @@ namespace Isis {

    double value = toDouble(container[keyName][0]);
    container.deleteKeyword(keyName);
    (point->*setter)(value);
    (point.data()->*setter)(value);
  }


@@ -364,9 +353,9 @@ namespace Isis {
   * @param setter The protobuf mutator method that sets the value of the field in the protobuf
   *               representation.
   */
  void ControlPointV0002::copy(PvlContainer &container,
  void ControlPointV0001::copy(PvlContainer &container,
                               QString keyName,
                               QSharedPointer<ControlNetFileProtoV0001_PBControlPoint> &point,
                               QSharedPointer<ControlNetFileProtoV0001_PBControlPoint> point,
                               void (ControlNetFileProtoV0001_PBControlPoint::*setter)(const std::string&)) {

    if (!container.hasKeyword(keyName))
@@ -374,7 +363,7 @@ namespace Isis {

    QString value = container[keyName][0];
    container.deleteKeyword(keyName);
    (point->*setter)(value);
    (point.data()->*setter)(value.toLatin1().data());
  }


@@ -392,10 +381,10 @@ namespace Isis {
   * @param setter The protobuf mutator method that sets the value of the field in the protobuf
   *               representation.
   */
  void ControlPointV0002::copy(PvlContainer &container,
  void ControlPointV0001::copy(PvlContainer &container,
                               QString keyName,
                               ControlNetFileProtoV0001_PBControlPoint::PBControlMeasure &measure,
                               void (ControlNetFileProtoV0001_PBControlPoint::PBControlMeasure::*setter)(bool)) {
                               ControlNetFileProtoV0001_PBControlPoint_PBControlMeasure &measure,
                               void (ControlNetFileProtoV0001_PBControlPoint_PBControlMeasure::*setter)(bool)) {

    if (!container.hasKeyword(keyName))
      return;
@@ -423,10 +412,10 @@ namespace Isis {
   * @param setter The protobuf mutator method that sets the value of the field in the protobuf
   *               representation.
   */
  void ControlPointV0002::copy(PvlContainer &container,
  void ControlPointV0001::copy(PvlContainer &container,
                               QString keyName,
                               ControlNetFileProtoV0001_PBControlPoint::PBControlMeasure &measure,
                               void (ControlNetFileProtoV0001_PBControlPoint::PBControlMeasure::*setter)(double)) {
                               ControlNetFileProtoV0001_PBControlPoint_PBControlMeasure &measure,
                               void (ControlNetFileProtoV0001_PBControlPoint_PBControlMeasure::*setter)(double)) {

    if (!container.hasKeyword(keyName))
      return;
@@ -451,10 +440,10 @@ namespace Isis {
   * @param setter The protobuf mutator method that sets the value of the field in the protobuf
   *               representation.
   */
  void ControlPointV0002::copy(PvlContainer &container,
  void ControlPointV0001::copy(PvlContainer &container,
                               QString keyName,
                               ControlNetFileProtoV0001_PBControlPoint::PBControlMeasure &measure,
                               void (ControlNetFileProtoV0001_PBControlPoint::PBControlMeasure::*setter)
                               ControlNetFileProtoV0001_PBControlPoint_PBControlMeasure &measure,
                               void (ControlNetFileProtoV0001_PBControlPoint_PBControlMeasure::*setter)
                                      (const std::string &)) {

    if (!container.hasKeyword(keyName))
@@ -462,6 +451,6 @@ namespace Isis {

    QString value = container[keyName][0];
    container.deleteKeyword(keyName);
    (measure.*set)(value);
    (measure.*setter)(value.toLatin1().data());
  }
}
+12 −11
Original line number Diff line number Diff line
@@ -30,10 +30,11 @@
namespace Isis {
  class ControlPointV0001;
  class Pvl;
  class PvlContainer;

  class ControlPointV0002 {
    public:
      ControlPointV0002(const Pvl &pointObject);
      ControlPointV0002(Pvl &pointObject);
      ControlPointV0002(QSharedPointer<ControlNetFileProtoV0001_PBControlPoint> pointData);
      ControlPointV0002(ControlPointV0001 &oldPoint);

@@ -42,8 +43,8 @@ namespace Isis {
    private:
      // These are intentionally not implemented
      ControlPointV0002();
      ControlPointV0002(const &ControlPointV0002 other);
      ControlPointV0002 &operator=(const &ControlPointV0002 other);
      ControlPointV0002(const ControlPointV0002 &other);
      ControlPointV0002 &operator=(const ControlPointV0002 &other);

      // methods for converting from Pvl to protobuf
      void copy(PvlContainer &container,
@@ -52,24 +53,24 @@ namespace Isis {
                void (ControlNetFileProtoV0001_PBControlPoint::*setter)(bool));
      void copy(PvlContainer &container,
                QString keyName,
                QSharedPointer<ControlNetFileProtoV0001_PBControlPoint> &point,
                QSharedPointer<ControlNetFileProtoV0001_PBControlPoint> point,
                void (ControlNetFileProtoV0001_PBControlPoint::*setter)(double));
      void copy(PvlContainer &container,
                QString keyName,
                QSharedPointer<ControlNetFileProtoV0001_PBControlPoint> &point,
                QSharedPointer<ControlNetFileProtoV0001_PBControlPoint> point,
                void (ControlNetFileProtoV0001_PBControlPoint::*setter)(const std::string&));
      void copy(PvlContainer &container,
                QString keyName,
                ControlNetFileProtoV0001_PBControlPoint::PBControlMeasure &measure,
                void (ControlNetFileProtoV0001_PBControlPoint::PBControlMeasure::*setter)(bool));
                ControlNetFileProtoV0001_PBControlPoint_PBControlMeasure &measure,
                void (ControlNetFileProtoV0001_PBControlPoint_PBControlMeasure::*setter)(bool));
      void copy(PvlContainer &container,
                QString keyName,
                ControlNetFileProtoV0001_PBControlPoint::PBControlMeasure &measure,
                void (ControlNetFileProtoV0001_PBControlPoint::PBControlMeasure::*setter)(double));
                ControlNetFileProtoV0001_PBControlPoint_PBControlMeasure &measure,
                void (ControlNetFileProtoV0001_PBControlPoint_PBControlMeasure::*setter)(double));
      void copy(PvlContainer &container,
                QString keyName,
                ControlNetFileProtoV0001_PBControlPoint::PBControlMeasure &measure,
                void (ControlNetFileProtoV0001_PBControlPoint::PBControlMeasure::*setter)(const std::string &));
                ControlNetFileProtoV0001_PBControlPoint_PBControlMeasure &measure,
                void (ControlNetFileProtoV0001_PBControlPoint_PBControlMeasure::*setter)(const std::string &));

      QSharedPointer<ControlNetFileProtoV0001_PBControlPoint> m_pointData;
      /**< protobuf container that holds information used to create a control point.*/