Isis 3 Programmer Reference
Isis::ControlPointV0003 Class Reference

A container for the information stored in a version 3 and 4 ControlPoint. More...

#include <ControlPointV0003.h>

Collaboration diagram for Isis::ControlPointV0003:
Collaboration graph

Public Member Functions

 ControlPointV0003 (PvlObject &pointObject)
 Create a ControlPointV0003 object from a version 3 or 4 control point Pvl object. More...
 
 ControlPointV0003 (QSharedPointer< ControlPointFileEntryV0002 > pointData)
 Create a ControlPointV0003 object from a protobuf version 2 control point message. More...
 
 ControlPointV0003 (ControlPointV0002 &oldPoint)
 Create a ControlPointV0003 object from a ControlPointV0002 object. More...
 
const ControlPointFileEntryV0002 & pointData ()
 Access the protobuf control point data. More...
 

Private Member Functions

 ControlPointV0003 ()
 Default constructor. More...
 
 ControlPointV0003 (const ControlPointV0003 &other)
 Copy constructor. More...
 
ControlPointV0003operator= (const ControlPointV0003 &other)
 Assignment operator. More...
 
void copy (PvlContainer &container, QString keyName, QSharedPointer< ControlPointFileEntryV0002 > point, void(ControlPointFileEntryV0002::*setter)(bool))
 This convenience method takes a boolean value from a PvlKeyword and copies it into a version 2 protobuf field. More...
 
void copy (PvlContainer &container, QString keyName, QSharedPointer< ControlPointFileEntryV0002 > point, void(ControlPointFileEntryV0002::*setter)(double))
 This convenience method takes a double value from a PvlKeyword and copies it into a version 2 protobuf field. More...
 
void copy (PvlContainer &container, QString keyName, QSharedPointer< ControlPointFileEntryV0002 > point, void(ControlPointFileEntryV0002::*setter)(const std::string &))
 This convenience method takes a string value from a PvlKeyword and copies it into a version 2 protobuf field. More...
 
void copy (PvlContainer &container, QString keyName, ControlPointFileEntryV0002_Measure &measure, void(ControlPointFileEntryV0002_Measure::*setter)(bool))
 This convenience method takes a boolean value from a PvlKeyword and copies it into a version 2 protobuf field. More...
 
void copy (PvlContainer &container, QString keyName, ControlPointFileEntryV0002_Measure &measure, void(ControlPointFileEntryV0002_Measure::*setter)(double))
 This convenience method takes a double value from a PvlKeyword and copies it into a version 2 protobuf field. More...
 
void copy (PvlContainer &container, QString keyName, ControlPointFileEntryV0002_Measure &measure, void(ControlPointFileEntryV0002_Measure::*setter)(const std::string &))
 This convenience method takes a string value from a PvlKeyword and copies it into a version 2 protobuf field. More...
 

Private Attributes

QSharedPointer< ControlPointFileEntryV0002 > m_pointData
 protobuf container that holds information used to create a control point. More...
 

Detailed Description

A container for the information stored in a version 3 and 4 ControlPoint.

A wrapper around the version 3 and 4 protobuf serialization of a ControlPoint. It allows for reading ControlPoints serialized as both PvlObjects and protobuf messages. It also allows for upgrading version 2 ControlPoints to version 3 and 4 ControlPoints.

The version 3 and 4 binary serialization of ControlPoint use the same protobuf message, so this class works with both versions. The difference between the version 3 and 4 Pvl serializations is Ground and Tie points were renamed to Fixed and Free respectively. This is sufficiently minor that it is handled in the pvl constructor.

In the Pvl format, control points are represented by objects contained in the ControlNetwork object. Control measures are represented by groups contained in the control point objects.

Valid Control Point Keywords

  • PointId: The point ID string
  • ChooserName: The name of the application or user that last modified the point
  • DateTime: The date and time of the last modification to the point
  • AprioriXYZSource: What type of source the apriori ground point was calculated from. Options:
    • None
    • User
    • AverageOfMeasures
    • Reference
    • Basemap
    • BundleSolution
  • AprioriXYZSourceFile: The name of the file that the apriori ground point was calculated from
  • AprioriRadiusSource: What type of source the apriori point radius was calculated from. Options:
    • None
    • User
    • AverageOfMeasures
    • Ellipsoid
    • DEM
    • BundleSolution
  • AprioriRadiusSourceFile: The name of the file that the apriori point radius was calculated from
  • JigsawRejected: If the point was rejected by a bundle adjustment
  • EditLock: If the point is locked out of editing
  • Ignore: If the point will be ignored
  • AprioriX: The body fixed X coordinate of the a priori ground point in meters
  • AprioriY: The body fixed Y coordinate of the a priori ground point in meters
  • AprioriZ: The body fixed Z coordinate of the a priori ground point in meters
  • AdjustedX: The body fixed X coordinate of the adjusted ground point in meters
  • AdjustedY: The body fixed Y coordinate of the adjusted ground point in meters
  • AdjustedZ: The body fixed Z coordinate of the adjusted ground point in meters
  • LatitudeConstrained: If the latitude of the ground point is constrained
  • LongitudeConstrained: If the longitude of the ground point is constrained
  • RadiusConstrained: If the radius of the ground point is constrained
  • PointType: What type of point it is. Options:
    • Fixed
    • Ground
    • Constrained
    • Free
    • Tie
  • AprioriCovarianceMatrix: A six element vector corresponding to the upper triangle; elements (0,0), (0,1), (0,2), (1,1), (1,2), and (2,2); of the 3x3, symmetric covariance matrix for the rectangular, a priori ground point.
  • AdjustedCovarianceMatrix: A six element vector corresponding to the upper triangle; elements (0,0), (0,1), (0,2), (1,1), (1,2), and (2,2); of the 3x3, symmetric covariance matrix for the rectangular, adjusted ground point.

Valid Control Measure Keywords

  • SerialNumber: The serial number of the cube the measure is from
  • ChooserName: The name of the application or user who last modified the measure
  • DateTime: The date and time of the last modification
  • Diameter: If the measure was selected from a crater, this is the diameter of the crater in meters
  • EditLock: If the measure is locked out of editing
  • Ignore: If the measure will be ignored
  • JigsawRejected: If the measure was rejected during a bundle adjustment
  • AprioriSample: The a priori sample
  • AprioriLine: The a priori line
  • SampleSigma: The standard deviation of the sample measurement
  • LineSigma: The standard deviation of the line measurement
  • Sample: The adjusted sample
  • Line: The adjusted line
  • SampleResidual: The difference between the a priori and adjusted sample
  • LineResidual: The difference between the a priori and adjusted line
  • Reference: If the measure is the reference measure for its point
  • MeasureType: What type of measure it is. Options:
    • candidate
    • manual
    • registeredpixel
    • registeredsubpixel
Author
2017-12-14 Jesse Mapel
History:

2017-12-14 Jesse Mapel - Original version.

2017-12-21 Jesse Mapel - Added support for measure log data.

2017-12-21 Adam Goins - Changed Pvl constructor to take PvlObject.

2017-12-21 Adam Goins - Changed Pvl constructor to not used the deprecated "ToProtocolBuffer()" call from ControlMeasureLogData.

2018-01-03 Jesse Mapel - Improved documentation.

2017-01-27 Jesse Mapel - More documentation improvements.

Definition at line 174 of file ControlPointV0003.h.

Constructor & Destructor Documentation

◆ ControlPointV0003() [1/5]

Isis::ControlPointV0003::ControlPointV0003 ( PvlObject pointObject)

Create a ControlPointV0003 object from a version 3 or 4 control point Pvl object.

Parameters
pointObjectThe control point and its measures in a Pvl object

Definition at line 32 of file ControlPointV0003.cpp.

References _FILEINFO_, copy(), Isis::PvlObject::hasKeyword(), m_pointData, and Isis::IException::User.

◆ ControlPointV0003() [2/5]

Isis::ControlPointV0003::ControlPointV0003 ( QSharedPointer< ControlPointFileEntryV0002 >  pointData)

Create a ControlPointV0003 object from a protobuf version 2 control point message.

Parameters
pointDataThe protobuf message from a control net file.

Definition at line 21 of file ControlPointV0003.cpp.

◆ ControlPointV0003() [3/5]

Isis::ControlPointV0003::ControlPointV0003 ( ControlPointV0002 oldPoint)

Create a ControlPointV0003 object from a ControlPointV0002 object.

Parameters
oldPointThe PvlControlPointV0002 that will be upgraded to V0003.

Definition at line 268 of file ControlPointV0003.cpp.

References _FILEINFO_, Isis::ControlPointV0002::logData(), m_pointData, Isis::ControlPointV0002::pointData(), and Isis::IException::User.

◆ ControlPointV0003() [4/5]

Isis::ControlPointV0003::ControlPointV0003 ( )
private

Default constructor.

Intentionally un-implemented.

◆ ControlPointV0003() [5/5]

Isis::ControlPointV0003::ControlPointV0003 ( const ControlPointV0003 other)
private

Copy constructor.

Intentionally un-implemented.

Parameters
otherThe other ControlPointV0003 to copy from.

Member Function Documentation

◆ copy() [1/6]

void Isis::ControlPointV0003::copy ( PvlContainer container,
QString  keyName,
QSharedPointer< ControlPointFileEntryV0002 >  point,
void(ControlPointFileEntryV0002::*)(bool)  setter 
)
private

This convenience method takes a boolean value from a PvlKeyword and copies it into a version 2 protobuf field.

Once copied, the PvlKeyword is deleted.

If the keyword doesn't exist, this does nothing.

Parameters
containerThe PvlContainer representation of the control point that contains the PvlKeyword.
keyNameThe name of the keyword to be copied.
[out]pointThe version 2 protobuf representation of the control point that the value will be copied into.
setterThe protobuf mutator method that sets the value of the field in the protobuf representation.

Definition at line 576 of file ControlPointV0003.cpp.

References Isis::PvlContainer::deleteKeyword(), and Isis::PvlContainer::hasKeyword().

Referenced by ControlPointV0003().

◆ copy() [2/6]

void Isis::ControlPointV0003::copy ( PvlContainer container,
QString  keyName,
QSharedPointer< ControlPointFileEntryV0002 >  point,
void(ControlPointFileEntryV0002::*)(double)  setter 
)
private

This convenience method takes a double value from a PvlKeyword and copies it into a version 2 protobuf field.

Once copied, the PvlKeyword is deleted.

If the keyword doesn't exist, this does nothing.

Parameters
containerThe PvlContainer representation of the control point that contains the PvlKeyword.
keyNameThe name of the keyword to be copied.
[out]pointThe version 2 protobuf representation of the control point that the value will be copied into.
setterThe protobuf mutator method that sets the value of the field in the protobuf representation.

Definition at line 609 of file ControlPointV0003.cpp.

References Isis::PvlContainer::deleteKeyword(), Isis::PvlContainer::hasKeyword(), and Isis::toDouble().

◆ copy() [3/6]

void Isis::ControlPointV0003::copy ( PvlContainer container,
QString  keyName,
QSharedPointer< ControlPointFileEntryV0002 >  point,
void(ControlPointFileEntryV0002::*)(const std::string &)  setter 
)
private

This convenience method takes a string value from a PvlKeyword and copies it into a version 2 protobuf field.

Once copied, the PvlKeyword is deleted.

If the keyword doesn't exist, this does nothing.

Parameters
containerThe PvlContainer representation of the control point that contains the PvlKeyword.
keyNameThe name of the keyword to be copied.
[out]pointThe version 2 protobuf representation of the control point that the value will be copied into.
setterThe protobuf mutator method that sets the value of the field in the protobuf representation.

Definition at line 638 of file ControlPointV0003.cpp.

References Isis::PvlContainer::deleteKeyword(), and Isis::PvlContainer::hasKeyword().

◆ copy() [4/6]

void Isis::ControlPointV0003::copy ( PvlContainer container,
QString  keyName,
ControlPointFileEntryV0002_Measure &  measure,
void(ControlPointFileEntryV0002_Measure::*)(bool)  setter 
)
private

This convenience method takes a boolean value from a PvlKeyword and copies it into a version 2 protobuf field.

Once copied, the PvlKeyword is deleted.

If the keyword doesn't exist, this does nothing.

Parameters
containerThe PvlContainer representation of the control measure that contains the PvlKeyword.
keyNameThe name of the keyword to be copied.
[out]measureThe version 2 protobuf representation of the control measure that the value will be copied into.
setterThe protobuf mutator method that sets the value of the field in the protobuf representation.

Definition at line 667 of file ControlPointV0003.cpp.

References Isis::PvlContainer::deleteKeyword(), and Isis::PvlContainer::hasKeyword().

◆ copy() [5/6]

void Isis::ControlPointV0003::copy ( PvlContainer container,
QString  keyName,
ControlPointFileEntryV0002_Measure &  measure,
void(ControlPointFileEntryV0002_Measure::*)(double)  setter 
)
private

This convenience method takes a double value from a PvlKeyword and copies it into a version 2 protobuf field.

Once copied, the PvlKeyword is deleted.

If the keyword doesn't exist, this does nothing.

Parameters
containerThe PvlContainer representation of the control measure that contains the PvlKeyword.
keyNameThe name of the keyword to be copied.
[out]measureThe version 2 protobuf representation of the control measure that the value will be copied into.
setterThe protobuf mutator method that sets the value of the field in the protobuf representation.

Definition at line 700 of file ControlPointV0003.cpp.

References Isis::PvlContainer::deleteKeyword(), Isis::PvlContainer::hasKeyword(), and Isis::toDouble().

◆ copy() [6/6]

void Isis::ControlPointV0003::copy ( PvlContainer container,
QString  keyName,
ControlPointFileEntryV0002_Measure &  measure,
void(ControlPointFileEntryV0002_Measure::*)(const std::string &)  setter 
)
private

This convenience method takes a string value from a PvlKeyword and copies it into a version 2 protobuf field.

Once copied, the PvlKeyword is deleted.

If the keyword doesn't exist, this does nothing.

Parameters
containerThe PvlContainer representation of the control measure that contains the PvlKeyword.
keyNameThe name of the keyword to be copied.
[out]measureThe version 2 protobuf representation of the control measure that the value will be into.
setterThe protobuf mutator method that sets the value of the field in the protobuf representation.

Definition at line 729 of file ControlPointV0003.cpp.

References Isis::PvlContainer::deleteKeyword(), and Isis::PvlContainer::hasKeyword().

◆ operator=()

ControlPointV0003& Isis::ControlPointV0003::operator= ( const ControlPointV0003 other)
private

Assignment operator.

Intentionally un-implemented.

Parameters
otherThe other ControlPointV0003 to assign from.
Returns
ControlPointV0003& A reference to this after assignment.

◆ pointData()

const ControlPointFileEntryV0002 & Isis::ControlPointV0003::pointData ( )

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.

Returns
const ControlPointFileEntryV0002& A constant reference to the internal control point data. There is no guarantee that the point data is fully initialized.

Definition at line 553 of file ControlPointV0003.cpp.

References m_pointData.

Referenced by Isis::ControlNetVersioner::createPoint().

Member Data Documentation

◆ m_pointData

QSharedPointer<ControlPointFileEntryV0002> Isis::ControlPointV0003::m_pointData
private

protobuf container that holds information used to create a control point.

Definition at line 228 of file ControlPointV0003.h.

Referenced by ControlPointV0003(), and pointData().


The documentation for this class was generated from the following files: