Isis 3 Programmer Reference
Isis::ControlPointV0002 Class Reference

A container for the information stored in a version 2 ControlPoint. More...

#include <ControlPointV0002.h>

Collaboration diagram for Isis::ControlPointV0002:
Collaboration graph

Public Member Functions

 ControlPointV0002 (PvlObject &pointObject)
 Create a ControlPointV0002 object from a version 2 control point Pvl object.
 
 ControlPointV0002 (QSharedPointer< ControlNetFileProtoV0001_PBControlPoint > pointData, QSharedPointer< ControlNetLogDataProtoV0001_Point > logData)
 Create a ControlPointV0002 object from a protobuf version 1 control point message.
 
 ControlPointV0002 (ControlPointV0001 &oldPoint)
 Create a version 2 control point from a version 1 control point.
 
QSharedPointer< ControlNetFileProtoV0001_PBControlPoint > pointData ()
 Access the protobuf control point data.
 
QSharedPointer< ControlNetLogDataProtoV0001_Point > logData ()
 Access the protobuf log data for the control measures in the point.
 

Private Member Functions

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

Private Attributes

QSharedPointer< ControlNetFileProtoV0001_PBControlPoint > m_pointData
 protobuf container that holds information used to create a control point.
 
QSharedPointer< ControlNetLogDataProtoV0001_Point > m_logData
 Protobuf container that holds log data for the control measures in the point.
 

Detailed Description

A container for the information stored in a version 2 ControlPoint.

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

The version 1 and 2 control points use the same internal protobuf message format. Thus the "upgrade" process simply copies the shared pointer to the protobuf message.

Version 2 was the first version to have a standardized Pvl format. 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:
    • Ground
    • 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.

2018-01-03 Jesse Mapel - Improved documentation.

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

Definition at line 154 of file ControlPointV0002.h.

Constructor & Destructor Documentation

◆ ControlPointV0002() [1/5]

Isis::ControlPointV0002::ControlPointV0002 ( PvlObject & pointObject)

Create a ControlPointV0002 object from a version 2 control point Pvl object.

Parameters
pointObjectThe control point and its measures in a Pvl object.

Definition at line 41 of file ControlPointV0002.cpp.

References copy(), Isis::PvlContainer::deleteKeyword(), Isis::PvlContainer::hasKeyword(), Isis::IException::Io, Isis::PvlContainer::keywords(), m_logData, m_pointData, Isis::PvlContainer::name(), Isis::IException::Programmer, Isis::toDouble(), and Isis::IException::User.

◆ ControlPointV0002() [2/5]

Isis::ControlPointV0002::ControlPointV0002 ( QSharedPointer< ControlNetFileProtoV0001_PBControlPoint > pointData,
QSharedPointer< ControlNetLogDataProtoV0001_Point > logData )

Create a ControlPointV0002 object from a protobuf version 1 control point message.

Parameters
pointDataThe protobuf message from a control net file.
logDataThe accompanying protobuf control measure log data for the point.

Definition at line 28 of file ControlPointV0002.cpp.

◆ ControlPointV0002() [3/5]

Isis::ControlPointV0002::ControlPointV0002 ( ControlPointV0001 & oldPoint)

Create a version 2 control point from a version 1 control point.

The two versions internally store the same protobuf message, so all this does is copy the pointer to the internal protobuf object.

Note
Because the two points share the same container, modifications to one will affect the other.
Parameters
oldPointThe old version 1 control point.

Definition at line 341 of file ControlPointV0002.cpp.

◆ ControlPointV0002() [4/5]

Isis::ControlPointV0002::ControlPointV0002 ( )
private

Default constructor.

Intentionally un-implemented.

◆ ControlPointV0002() [5/5]

Isis::ControlPointV0002::ControlPointV0002 ( const ControlPointV0002 & other)
private

Copy constructor.

Intentionally un-implemented.

Parameters
otherThe other ControlPointV0002 to copy from.

Member Function Documentation

◆ copy() [1/6]

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

This convenience method takes a boolean value from a PvlKeyword and copies it into a version 1 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 1 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 474 of file ControlPointV0002.cpp.

◆ copy() [2/6]

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

This convenience method takes a string value from a PvlKeyword and copies it into a version 1 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 1 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 536 of file ControlPointV0002.cpp.

◆ copy() [3/6]

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

This convenience method takes a double value from a PvlKeyword and copies it into a version 1 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 1 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 507 of file ControlPointV0002.cpp.

References Isis::toDouble().

◆ copy() [4/6]

void Isis::ControlPointV0002::copy ( PvlContainer & container,
QString keyName,
QSharedPointer< ControlNetFileProtoV0001_PBControlPoint > point,
void(ControlNetFileProtoV0001_PBControlPoint::*)(bool) setter )
private

This convenience method takes a boolean value from a PvlKeyword and copies it into a version 1 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 1 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 383 of file ControlPointV0002.cpp.

Referenced by ControlPointV0002().

◆ copy() [5/6]

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

This convenience method takes a string value from a PvlKeyword and copies it into a version 1 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 1 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 445 of file ControlPointV0002.cpp.

◆ copy() [6/6]

void Isis::ControlPointV0002::copy ( PvlContainer & container,
QString keyName,
QSharedPointer< ControlNetFileProtoV0001_PBControlPoint > point,
void(ControlNetFileProtoV0001_PBControlPoint::*)(double) setter )
private

This convenience method takes a double value from a PvlKeyword and copies it into a version 1 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 1 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 416 of file ControlPointV0002.cpp.

References Isis::toDouble().

◆ logData()

QSharedPointer< ControlNetLogDataProtoV0001_Point > Isis::ControlPointV0002::logData ( )

Access the protobuf log data for the control measures in the point.

Returns
QSharedPointer<ControlNetLogDataProtoV0001_Point> A pointer to the internal measure log data.

Definition at line 364 of file ControlPointV0002.cpp.

References m_logData.

◆ operator=()

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

Assignment operator.

Intentionally un-implemented.

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

◆ pointData()

QSharedPointer< ControlNetFileProtoV0001_PBControlPoint > Isis::ControlPointV0002::pointData ( )

Access the protobuf control point data.

Returns
QSharedPointer<ControlNetFileProtoV0001_PBControlPoint> A pointer to the internal point data.

Definition at line 353 of file ControlPointV0002.cpp.

References m_pointData.

Member Data Documentation

◆ m_logData

QSharedPointer<ControlNetLogDataProtoV0001_Point> Isis::ControlPointV0002::m_logData
private

Protobuf container that holds log data for the control measures in the point.

Definition at line 213 of file ControlPointV0002.h.

Referenced by ControlPointV0002(), and logData().

◆ m_pointData

QSharedPointer<ControlNetFileProtoV0001_PBControlPoint> Isis::ControlPointV0002::m_pointData
private

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

Definition at line 211 of file ControlPointV0002.h.

Referenced by ControlPointV0002(), and pointData().


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