Commit eebd40df authored by Kristin Berry's avatar Kristin Berry Committed by Makayla Shepherd
Browse files

Updated toPvl method. Fixed enums and did some more cleanup

parent 972ba6ae
Loading
Loading
Loading
Loading
+24 −24
Original line number Diff line number Diff line
@@ -83,7 +83,7 @@ namespace Isis {
  }

 /**
   * Generates a Pvl file from the currently stored cnet. 
   * Generates a Pvl file from the currently stored control points and header.
   *  
   * @return Pvl& The Pvl version of the network
   */
@@ -142,25 +142,25 @@ namespace Isis {
      }

      switch (controlPoint.GetAprioriSurfPointSource()) {
        case ControlPoint::None:
        case ControlPoint::SurfacePointSouce::None:
          break;
        case ControlPoint::User:
        case ControlPoint::SurfacePointSouce::User:
          pvlPoint += PvlKeyword("AprioriXYZSource", "User");
          break;
        case ControlPoint::AverageOfMeasures:
        case ControlPoint::SurfacePointSouce::AverageOfMeasures:
          pvlPoint += PvlKeyword("AprioriXYZSource", "AverageOfMeasures");
          break;
        case ControlPoint::Reference:
        case ControlPoint::SurfacePointSouce::Reference:
          pvlPoint += PvlKeyword("AprioriXYZSource", "Reference");
          break;
        case ControlPoint::Basemap:
        case ControlPoint::SurfacePointSouce::Basemap:
          pvlPoint += PvlKeyword("AprioriXYZSource", "Basemap");
          break;
        case ControlPoint::BundleSolution:
        case ControlPoint::SurfacePointSouce::BundleSolution:
          pvlPoint += PvlKeyword("AprioriXYZSource", "BundleSolution");
          break;
        case ControlPoint::Ellipsoid:
        case ControlPoint::DEM:
        case ControlPoint::RadiusSource::Ellipsoid: // these enum vals
        case ControlPoint::RadiusSource::DEM:       // DNE for Surface Pt
          break;
      }

@@ -170,27 +170,27 @@ namespace Isis {
      }

      switch (controlPoint.GetAprioriRadiusSource()) {
        case ControlPoint::None:
        case ControlPoint::RadiusSource::None:
          break;
        case ControlPoint::User:
        case ControlPoint::RadiusSource::User:
          pvlPoint += PvlKeyword("AprioriRadiusSource", "User");
          break;
        case ControlPoint::AverageOfMeasures:
        case ControlPoint::RadiusSource::AverageOfMeasures:
          pvlPoint += PvlKeyword("AprioriRadiusSource", "AverageOfMeasures");
          break;
        case ControlPoint::Reference:
        case ControlPoint::RadiusSource::Reference:
          pvlPoint += PvlKeyword("AprioriRadiusSource", "Reference");
          break;
        case ControlPoint::Basemap:
        case ControlPoint::RadiusSource::Basemap:
          pvlPoint += PvlKeyword("AprioriRadiusSource", "Basemap");
          break;
        case ControlPoint::BundleSolution:
        case ControlPoint::RadiusSource::BundleSolution:
          pvlPoint += PvlKeyword("AprioriRadiusSource", "BundleSolution");
          break;
        case ControlPoint::Ellipsoid:
        case ControlPoint::RadiusSource::Ellipsoid:
          pvlPoint += PvlKeyword("AprioriRadiusSource", "Ellipsoid");
          break;
        case ControlPoint::DEM:
        case ControlPoint::RadiusSource::DEM:
          pvlPoint += PvlKeyword("AprioriRadiusSource", "DEM");
          break;
      }
@@ -337,16 +337,16 @@ namespace Isis {
        pvlMeasure += PvlKeyword("SerialNumber", controlMeasure.GetCubeSerialNumber()); 

        switch(controlMeasure.GetType()) {
          case ControlMeasure::MeasureType::Candidate:
          case ControlMeasure::Candidate:
            pvlMeasure += PvlKeyword("MeasureType", "Candidate");
            break;
          case ControlMeasure::MeasureType::Manual:
          case ControlMeasure::Manual:
            pvlMeasure += PvlKeyword("MeasureType", "Manual");
            break;
          case ControlMeasure::MeasureType::RegisteredPixel:
          case ControlMeasure::RegisteredPixel:
            pvlMeasure += PvlKeyword("MeasureType", "RegisteredPixel");
            break;
          case ControlMeasure::MeasureType::RegisteredSubPixel:
          case ControlMeasure::RegisteredSubPixel:
            pvlMeasure += PvlKeyword("MeasureType", "RegisteredSubPixel");
            break;
        }
@@ -412,16 +412,16 @@ namespace Isis {
        }

        for (int logEntry = 0;
            logEntry < protobufMeasure.log_size();
            logEntry < controlMeasure.LogSize(); // DNE? 
            logEntry ++) {
          const ControlMeasureLogData &log = 
                controlMeasure.log(logEntry);
                controlMeasure.GetLogData(logEntry); // Not sure this is right.

          ControlMeasureLogData interpreter(log);
          pvlMeasure += interpreter.ToKeyword();
        }

        if (controlPoint.has_referenceindex() && // DNE or covered by different function? 
        if (controlPoint.HasReferenceIndex() && // DNE or covered by different function? 
           controlPoint.IndexOfRefMeasure() == j) {
          pvlMeasure += PvlKeyword("Reference", "True");
        }
+96 −6
Original line number Diff line number Diff line
@@ -130,14 +130,14 @@ namespace Isis {
   *                           message for this error was very similar to the caught exception
   *                           to which it is appended. References #3892
   *  @history 2017-12-11 Jeannie Backer & Jesse Mapel - Created class skeleton for refactor.
   *  @history 2017-12-12 Kristin Berry - Added initial toPvl for refactor. 
   *  @history 2017-12-11 Jesse Mapel - Added VersionedControlNetHeaders.
   *  @history 2017-12-12 Jeannie Backer - Added VersionedControlPoints.
   *  @history 2017-12-12 Jeannie Backer - Implemented createPoint() methods.
   *  @history 2017-12-13 Jeannie Backer - Added target radii to createPoint(V0006).

   */
  class ControlNetVersioner {
    class ControlPointV0003;

    public:
      ControlNetVersioner(QSharedPointer<ControlNet> net);
      ControlNetVersioner(const FileName netFile);
@@ -162,6 +162,18 @@ namespace Isis {
      ControlNetVersioner(const ControlNetVersioner &other);
      ControlNetVersioner &operator=(const ControlNetVersioner &other);

      struct ControlPointV0001 {
        PvlContainer container;
      }
      typedef ControlPointV0002 ControlPointV0001;
      typedef ControlPointV0003 ControlPointV0001;
      typedef ControlPointV0004 ControlPointV0001;
      typedef ControlPointV0005 ControlPointFileEntryV0002;//??? what to do???
      typedef ControlPointV0006 ControlPointFileEntryV0002;
      typedef ControlPointV0007 ControlPointFileEntryV0002;

      typedef ControlMeasureV0006 ControlPointV0006::Measure;//???

      // Private ControlNetHeader structs for versioning
      // TODO Document these for doxygen. JAM
      struct ControlNetHeaderV0001 {
@@ -179,9 +191,6 @@ namespace Isis {
      typedef ControlNetHeaderV0006 ControlNetHeaderV0001;
      typedef ControlNetHeaderV0007 ControlNetHeaderV0001;

      typedef ControlPointV0004 ControlPointV0003;
      typedef ControlPointV0005 ControlPointV0003;

      void read(const FileName netFile);

      void readPvl(const Pvl &network);
@@ -198,8 +207,35 @@ namespace Isis {
      QSharedPointer<ControlPoint> createPoint(const ControlPointV0001 point);
      QSharedPointer<ControlPoint> createPoint(const ControlPointV0002 point);
      QSharedPointer<ControlPoint> createPoint(const ControlPointV0003 point);

      QSharedPointer<ControlPoint> createPoint(const ControlPointV0004 point);
      // v5 dne???
      QSharedPointer<ControlPoint> createPoint(const ControlPointV0006 point);
      QSharedPointer<ControlMeasure> createMeasure(const ControlMeasureV0006 measure);
      // methods for converting pvl (v4) to protobuf (v6)
      void copy(PvlContainer &container,
                QString keyName,
                ControlPointV0006 &point,
                void (ControlMeasureV0006::*setter)(bool));
      void copy(PvlContainer &container,
                QString keyName,
                ControlPointV0006 &point,
                void (ControlPointV0006::*setter)(double));
      void copy(PvlContainer &container,
                QString keyName,
                ControlPointV0006 &point,
                void (ControlPointV0006::*setter)(const std::string&));
      void copy(PvlContainer &container,
                QString keyName,
                ControlMeasureV0006 &measure,
                void (ControlMeasureV0006::*setter)(bool));
      void copy(PvlContainer &container,
                QString keyName,
                ControlMeasureV0006 &measure,
                void (ControlMeasureV0006::*setter)(double));
      void copy(PvlContainer &container,
                QString keyName,
                ControlMeasureV0006 &measure,
                void (ControlMeasureV0006::*setter)(const std::string &));

      void setHeader(const ControlNetHeaderV0001 header);

@@ -215,4 +251,58 @@ namespace Isis {

  };
}

#endif
#if 0
      struct ControlPointV0004 {
        QString id;
        QString chooserName;
        QString datetime;
        int     type;
        bool    editLock;
        bool    ignored;
        bool    jigsawRejected;

        QString aprioriRadiusSource;
        QString aprioriRadiusSourceFile;

        QString aprioriSurfacePointSource;
        QString aprioriSurfacePointSourceFile; // apriorixyzsourcefile
        // SurfacePoint aprioriSurfacePoint;   // apriorixyzsource
        double     aprioriX; // <meters>
        double     aprioriY; // <meters>
        double     aprioriZ; // <meters>
        bool       latitudeConstrained;
        bool       longitudeConstrained;
        bool       radiusConstrained;
        QVector<double> aprioriCovarianceMatrix;

        // SurfacePoint adjustedSurfacePoint;
        double adjustedX;
        double adjustedY;
        double adjustedZ;
        QVector<double> adjustedCovarianceMatrix;

        struct CPV4Measure {
          QString serialnumber;
          int     type;
          double  sample;
          double  line;
          double  sampleResidual;
          double  lineResidual;
          QString choosername;
          QString datetime;
          bool    editLock;
          bool    ignore;
          bool    jigsawRejected;
          double  diameter;
          double apriorisample;
          double aprioriline;
          double samplesigma;
          double linesigma;
        };

        QList <CPV4Measure> measureList;
        int   referenceIndex;
      }
#endif