Loading isis/src/control/objs/ControlNetVersioner/ControlNetVersioner.cpp +24 −24 Original line number Diff line number Diff line Loading @@ -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 */ Loading Loading @@ -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; } Loading @@ -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; } Loading Loading @@ -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; } Loading Loading @@ -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"); } Loading isis/src/control/objs/ControlNetVersioner/ControlNetVersioner.h +96 −6 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -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 { Loading @@ -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); Loading @@ -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); Loading @@ -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 Loading
isis/src/control/objs/ControlNetVersioner/ControlNetVersioner.cpp +24 −24 Original line number Diff line number Diff line Loading @@ -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 */ Loading Loading @@ -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; } Loading @@ -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; } Loading Loading @@ -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; } Loading Loading @@ -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"); } Loading
isis/src/control/objs/ControlNetVersioner/ControlNetVersioner.h +96 −6 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -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 { Loading @@ -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); Loading @@ -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); Loading @@ -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