Isis Developer Reference
Isis::ControlPoint Class Reference

A single control point. More...

#include <ControlPoint.h>

Inheritance diagram for Isis::ControlPoint:
Inheritance graph
Collaboration diagram for Isis::ControlPoint:
Collaboration graph

Classes

struct  RadiusSource
 
struct  SurfacePointSource
 

Public Types

enum  PointType { Fixed = 0 , Constrained = 1 , Free = 2 }
 These are the valid 'types' of point. More...
 
enum  Status { Failure , Success , PointLocked }
 This is a return status for many of the mutating (setter) method calls. More...
 
enum  ConstraintStatus { Coord1Constrained = 0 , Coord2Constrained = 1 , Coord3Constrained = 2 }
 This is a convenience member for checking number of constrained coordinates in the SurfacePoint. More...
 
enum  ModType { EditLockModified , IgnoredModified , TypeModified }
 Control Point Modification Types. More...
 

Public Member Functions

 ControlPoint ()
 Construct a control point.
 
 ControlPoint (const ControlPoint &)
 Copy the given control point into this instance.
 
 ControlPoint (const QString &id)
 Construct a control point with given Id.
 
virtual ~ControlPoint ()
 This destroys the current instance and cleans up any and all allocated memory.
 
ControlNetParent ()
 
void Load (PvlObject &p)
 Loads the PvlObject into a ControlPoint.
 
void Add (ControlMeasure *measure)
 Add a measurement to the control point, taking ownership of the measure in the process.
 
int Delete (ControlMeasure *measure)
 Remove a measurement from the control point, deleting reference measure is allowed.
 
int Delete (QString serialNumber)
 Remove a measurement from the control point, deleting reference measure is allowed.
 
int Delete (int index)
 Remove a measurement from the control point, deleting reference measure is allowed.
 
Status ResetApriori ()
 Reset all the Apriori info to defaults.
 
const ControlMeasureGetMeasure (QString serialNumber) const
 Get a control measure based on its cube's serial number.
 
ControlMeasureGetMeasure (QString serialNumber)
 Get a control measure based on its cube's serial number.
 
const ControlMeasureGetMeasure (int index) const
 
ControlMeasureGetMeasure (int index)
 
bool HasRefMeasure () const
 Checks to see if a reference measure is set.
 
const ControlMeasureGetRefMeasure () const
 Get the reference control measure.
 
ControlMeasureGetRefMeasure ()
 Get the measure that is the reference directly.
 
Status SetChooserName (QString name)
 Set the point's chooser name.
 
Status SetDateTime (QString newDateTime)
 Set the point's last modified time.
 
Status SetEditLock (bool editLock)
 Set the EditLock state.
 
Status SetId (QString id)
 Sets the Id of the control point.
 
Status SetRefMeasure (ControlMeasure *cm)
 Set the point's reference measure.
 
Status SetRefMeasure (int index)
 Set the point's reference measure.
 
Status SetRefMeasure (QString sn)
 Set the points reference measure.
 
Status SetRejected (bool rejected)
 Set the jigsawRejected state.
 
Status SetIgnored (bool newIgnoreStatus)
 Set whether to ignore or use control point.
 
Status SetAdjustedSurfacePoint (SurfacePoint newSurfacePoint)
 Set or update the surface point relating to this control point.
 
Status SetType (PointType newType)
 Updates the control point's type.
 
Status SetAprioriRadiusSource (RadiusSource::Source source)
 This updates the source of the radius of the apriori surface point.
 
Status SetAprioriRadiusSourceFile (QString sourceFile)
 This updates the filename of the DEM that the apriori radius came from.
 
Status SetAprioriSurfacePoint (SurfacePoint aprioriSP)
 This updates the apriori surface point.
 
Status SetAprioriSurfacePointSource (SurfacePointSource::Source source)
 This updates the source of the surface point.
 
Status SetAprioriSurfacePointSourceFile (QString sourceFile)
 This updates the filename of where the apriori surface point came from.
 
Status ComputeApriori ()
 Computes a priori lat/lon/radius point coordinates by determining the average lat/lon/radius of all measures.
 
Status ComputeResiduals ()
 This method computes the BundleAdjust residuals for a point.
 
Status ComputeResiduals_Millimeters ()
 This method computes the residuals for a point.
 
SurfacePoint GetAdjustedSurfacePoint () const
 
SurfacePoint GetBestSurfacePoint () const
 Returns the adjusted surface point if it exists, otherwise returns the a priori surface point.
 
QString GetChooserName () const
 
QString GetDateTime () const
 
bool IsEditLocked () const
 
bool IsRejected () const
 
QString GetId () const
 Return the Id of the control point.
 
bool IsIgnored () const
 
bool IsValid () const
 
bool IsInvalid () const
 
bool IsFree () const
 Return bool indicating if point is Free or not.
 
bool IsFixed () const
 Return bool indicating if point is Fixed or not.
 
bool HasAprioriCoordinates ()
 
bool IsConstrained ()
 Return bool indicating if point is Constrained or not.
 
bool IsCoord1Constrained ()
 Return bool indicating if 1st coordinate is Constrained or not.
 
bool IsCoord2Constrained ()
 Return bool indicating if 2nd coordinate is Constrained or not.
 
bool IsCoord3Constrained ()
 Return bool indicating if 3rd coordinate is Constrained or not.
 
int NumberOfConstrainedCoordinates ()
 Return bool indicating if point is Constrained or not.
 
QString GetPointTypeString () const
 Obtain a string representation of the PointType.
 
PointType GetType () const
 
QString GetRadiusSourceString () const
 Obtain a string representation of the RadiusSource.
 
QString GetSurfacePointSourceString () const
 Obtain a string representation of the SurfacePointSource.
 
SurfacePoint GetAprioriSurfacePoint () const
 
RadiusSource::Source GetAprioriRadiusSource () const
 
bool HasAprioriRadiusSourceFile () const
 Checks to see if the radius source file has been set.
 
QString GetAprioriRadiusSourceFile () const
 
SurfacePointSource::Source GetAprioriSurfacePointSource () const
 
bool HasAprioriSurfacePointSourceFile () const
 Checks to see if the surface point source file has been set.
 
QString GetAprioriSurfacePointSourceFile () const
 
int GetNumMeasures () const
 
int GetNumValidMeasures () const
 
int GetNumLockedMeasures () const
 Returns the number of locked control measures.
 
bool HasSerialNumber (QString serialNumber) const
 Return true if given serial number exists in point.
 
bool HasChooserName () const
 Returns true if the choosername is not empty.
 
bool HasDateTime () const
 Returns true if the datetime is not empty.
 
int IndexOf (ControlMeasure *, bool throws=true) const
 
int IndexOf (QString sn, bool throws=true) const
 
int IndexOfRefMeasure () const
 
bool IsReferenceExplicit () const
 
QString GetReferenceSN () const
 
void emitMeasureModified (ControlMeasure *measure, ControlMeasure::ModType modType, QVariant oldValue, QVariant newValue)
 This method is a wrapper to emit the measureModified() signal in the parent network is called whenever a change is made to a Control Measure.
 
Statistics GetStatistic (double(ControlMeasure::*statFunc)() const) const
 This function will call a given method on every control measure that this point has.
 
Statistics GetStatistic (long dataType) const
 
QList< ControlMeasure * > getMeasures (bool excludeIgnored=false) const
 
QList< QString > getCubeSerialNumbers () const
 
const ControlMeasureoperator[] (QString serialNumber) const
 Same as GetMeasure (provided for convenience)
 
ControlMeasureoperator[] (QString serialNumber)
 Same as GetMeasure (provided for convenience)
 
const ControlMeasureoperator[] (int index) const
 Same as GetMeasure (provided for convenience)
 
ControlMeasureoperator[] (int index)
 Same as GetMeasure (provided for convenience)
 
bool operator!= (const ControlPoint &pPoint) const
 Compare two Control Points for inequality.
 
bool operator== (const ControlPoint &pPoint) const
 Compare two Control Points for equality.
 
const ControlPointoperator= (const ControlPoint &pPoint)
 
void ZeroNumberOfRejectedMeasures ()
 Initialize the number of rejected measures to 0.
 
void SetNumberOfRejectedMeasures (int numRejected)
 Set (update) the number of rejected measures for the control point.
 
int GetNumberOfRejectedMeasures () const
 Get the number of rejected measures on the control point.
 
double GetSampleResidualRms () const
 Get rms of sample residuals.
 
double GetLineResidualRms () const
 Get rms of line residuals.
 
double GetResidualRms () const
 Get rms of residuals.
 
void ClearJigsawRejected ()
 Set jigsaw rejected flag for all measures to false and set the jigsaw rejected flag for the point itself to false.
 

Static Public Member Functions

static QString PointTypeToString (PointType type)
 Obtain a string representation of a given PointType.
 
static PointType StringToPointType (QString pointTypeString)
 Obtain a PointType given a string representation of it.
 
static QString RadiusSourceToString (RadiusSource::Source source)
 Obtain a string representation of a given RadiusSource.
 
static RadiusSource::Source StringToRadiusSource (QString str)
 Obtain a RadiusSource::Source from a string.
 
static QString SurfacePointSourceToString (SurfacePointSource::Source source)
 Obtain a string representation of a given SurfacePointSource.
 
static SurfacePointSource::Source StringToSurfacePointSource (QString str)
 Obtain a SurfacePoint::Source from a string.
 

Static Public Attributes

static const int PointTypeCount = 3
 

Protected Member Functions

void PointModified ()
 List of Control Measures.
 

Protected Attributes

QHash< QString, ControlMeasure * > * measures
 

Friends

class ControlNet
 

Detailed Description

A single control point.

A control point is one or more measurements that identify the same feature or location in different images.

Author
2005-07-29 Jeff Anderson
See also
ControlMeasure ControlNet

Member Enumeration Documentation

◆ ConstraintStatus

This is a convenience member for checking number of constrained coordinates in the SurfacePoint.

Enumerator
Coord1Constrained 
Coord2Constrained 
Coord3Constrained 

◆ ModType

Control Point Modification Types.

This enum is designed to represent the different types of modifications that can be made to a ControlPoint.

EditLockModified means that the Control Point had it's edit lock flag changed. IgnoredModified means that the Control Measure had it's ignored flag changed. TypeModified means that the ControlPoint::PointType for this control point was modified.

Enumerator
EditLockModified 
IgnoredModified 
TypeModified 

◆ PointType

These are the valid 'types' of point.

A point type defines what a point is tying together.

Enumerator
Fixed 

A Fixed point is a Control Point whose lat/lon is well established and should not be changed.

Some people will refer to this as a truth (i.e., ground truth). A fixed point can be identifed in one or more cubes. Historically this point was called a "Ground" point.

Constrained 

A Constrained point is a Control Point whose lat/lon/radius is somewhat established and should not be changed.

Free 

A Free point is a Control Point that identifies common measurements between two or more cubes.

While it could have a lat/lon, it is not necessarily correct and is subject to change. This is the most common type of control point. This point type floats freely in a bundle adjustment. Historically this point type was called "Tie".

◆ Status

This is a return status for many of the mutating (setter) method calls.

We chose to use return status' because often times ignoring them is the behavior the caller wants.

Enumerator
Failure 

This is returned when an operation cannot be performed due to a problem such as the point is ignored and the operation doesn't make sense.

Success 

This is returned when the operation successfully took effect.

PointLocked 

This is returned when the operation requires Edit Lock to be false but it is currently true.

The operation did not take effect.

Constructor & Destructor Documentation

◆ ControlPoint() [1/3]

Isis::ControlPoint::ControlPoint ( )

Construct a control point.

Author
tsucharski (5/5/2010)

References Free, measures, Isis::ControlPoint::SurfacePointSource::None, and Isis::ControlPoint::RadiusSource::None.

◆ ControlPoint() [2/3]

Isis::ControlPoint::ControlPoint ( const ControlPoint & other)

Copy the given control point into this instance.

Parameters
otherThe control point to duplicate

References measures, and SetRefMeasure().

◆ ControlPoint() [3/3]

Isis::ControlPoint::ControlPoint ( const QString & newId)

Construct a control point with given Id.

Parameters
idControl Point Id

References Free, measures, Isis::ControlPoint::SurfacePointSource::None, and Isis::ControlPoint::RadiusSource::None.

◆ ~ControlPoint()

Isis::ControlPoint::~ControlPoint ( )
virtual

This destroys the current instance and cleans up any and all allocated memory.

References measures.

Member Function Documentation

◆ Add()

void Isis::ControlPoint::Add ( ControlMeasure * measure)

Add a measurement to the control point, taking ownership of the measure in the process.

Parameters
measureThe ControlMeasure to add

References PointModified().

Referenced by Isis::ControlPointEditWidget::createControlPoint(), Isis::QnetTool::createPoint(), Isis::StereoTool::createPoint(), and Isis::MatchTool::createPoint().

◆ ClearJigsawRejected()

void Isis::ControlPoint::ClearJigsawRejected ( )

Set jigsaw rejected flag for all measures to false and set the jigsaw rejected flag for the point itself to false.

◆ ComputeApriori()

ControlPoint::Status Isis::ControlPoint::ComputeApriori ( )

Computes a priori lat/lon/radius point coordinates by determining the average lat/lon/radius of all measures.

Note that this does not change ignored, fixed or constrained points.

Also, it does not use unmeasured or ignored measures when computing lat/lon/radius.

(KLE) Note this not a rigorous triangulation considering outliers. A better way would be to... a) use e.g. a closest approach algorithm to find intersection of all rays, regardless of whether the intersection lies on the surface in question, then; b) perform a rigorous triangulation with some sort outlier detection approach, a robust estimation technique (perhaps RANSAC)

References _FILEINFO_, Isis::ControlPoint::SurfacePointSource::AverageOfMeasures, Isis::ControlPoint::RadiusSource::AverageOfMeasures, Isis::Camera::Camera(), Isis::Camera::Csm, Free, GetId(), GetMeasure(), GetType(), IsConstrained(), IsFixed(), Isis::Displacement::Kilometers, NumberOfConstrainedCoordinates(), PointModified(), Isis::IException::Programmer, SetAprioriRadiusSource(), SetAprioriSurfacePointSource(), Isis::SurfacePoint::SetRectangular(), Success, Isis::IException::User, and Isis::SurfacePoint::Valid().

Referenced by Isis::ControlNet::ComputeApriori().

◆ ComputeResiduals()

ControlPoint::Status Isis::ControlPoint::ComputeResiduals ( )

This method computes the BundleAdjust residuals for a point.

*** Warning: Only BundleAdjust and its applications should be using this method.

History

2008-07-17 Tracie Sucharski, Added ptid and measure serial number to the unable to map to surface error.

2009-12-06 Tracie Sucharski, Renamed from ComputeErrors

2010-08-05 Tracie Sucharski, Changed lat/lon/radius to x/y/z

2010-12-10 Debbie A. Cook, Revised error calculation for radar because it was always reporting line errors=0.

2011-03-17 Debbie A. Cook, Fixed typo in radar call to get longitude

2011-03-24 Debbie A. Cook, Removed IsMeasured check since it was really checking for Candidate measures.

2011-07-01 Debbie A. Cook, Removed editLock check to allow BundleAdjust to compute residuals for editLocked points

2012-01-18 Debbie A. Cook, Revised to call ComputeResidualsMillimeters() to avoid duplication of code.

2019-05-16 Debbie A. Cook, The calls to CameraGroundMap::GetXY were changed to allow not testing for points on the back side of the planet during bundle adjustment. Now, the instrument coordinates will be calculated and returned always to this method. In the future, a separate diagnostic tool may be helpful to check for non-visable points in a control net AFTER bundle adjustment. References #2591.

References _FILEINFO_, Isis::Camera::Camera(), ComputeResiduals_Millimeters(), Isis::Camera::Csm, Failure, GetId(), IsIgnored(), measures, PointModified(), Isis::IException::Programmer, Isis::Camera::Radar, and Success.

Referenced by Isis::BundleControlPoint::computeResiduals().

◆ ComputeResiduals_Millimeters()

ControlPoint::Status Isis::ControlPoint::ComputeResiduals_Millimeters ( )

This method computes the residuals for a point.

History

2008-07-17 Tracie Sucharski - Added ptid and measure serial number to the unable to map to surface error.

2010-12-06 Tracie Sucharski - Renamed from ComputeErrors

2011-03-19 Debbie A. Cook - Changed to use the Camera classes like ComputeResiduals and get the correct calculations for each camera type.

2011-03-24 Debbie A. Cook - Removed IsMeasured check since it was really checking for Candidate measures.

2012-01-18 Debbie A. Cook - Made radar case the same as other instruments and removed incorrect call to SetResidual, which was setting focal plane residuals in x and y instead of image residuals in sample and line.

References Isis::Camera::Camera(), Isis::Camera::Csm, Failure, GetAdjustedSurfacePoint(), IsIgnored(), measures, PointModified(), and Success.

Referenced by ComputeResiduals().

◆ Delete() [1/3]

int Isis::ControlPoint::Delete ( ControlMeasure * measure)

Remove a measurement from the control point, deleting reference measure is allowed.

Parameters
measureThe measure to delete

References Delete().

Referenced by Delete(), Delete(), Isis::MatchTool::deletePoint(), Isis::ControlNet::DeletePoint(), and Isis::AbstractMeasureItem::deleteSource().

◆ Delete() [2/3]

int Isis::ControlPoint::Delete ( int index)

Remove a measurement from the control point, deleting reference measure is allowed.

Parameters
indexThe index of the control measure to delete

References _FILEINFO_, Delete(), and Isis::IException::Programmer.

◆ Delete() [3/3]

int Isis::ControlPoint::Delete ( QString serialNumber)

Remove a measurement from the control point, deleting reference measure is allowed.

Parameters
serialNumberThe serial number of the measure to delete

References IsIgnored(), Isis::ControlMeasure::MeasureLocked, measures, PointModified(), and Isis::ControlMeasure::Success.

◆ emitMeasureModified()

void Isis::ControlPoint::emitMeasureModified ( ControlMeasure * measure,
ControlMeasure::ModType modType,
QVariant oldValue,
QVariant newValue )

This method is a wrapper to emit the measureModified() signal in the parent network is called whenever a change is made to a Control Measure.

Parameters
measureThe ControlMeasure* that was modified.
typeThe ControlMeasure::ModType indicating which modification occured.
oldValueThe oldValue before the change.
newValueThe new value that the change incorporated.

Referenced by Isis::ControlMeasure::SetIgnored().

◆ GetAdjustedSurfacePoint()

◆ GetAprioriRadiusSource()

ControlPoint::RadiusSource::Source Isis::ControlPoint::GetAprioriRadiusSource ( ) const

◆ GetAprioriRadiusSourceFile()

QString Isis::ControlPoint::GetAprioriRadiusSourceFile ( ) const

◆ GetAprioriSurfacePoint()

◆ GetAprioriSurfacePointSource()

ControlPoint::SurfacePointSource::Source Isis::ControlPoint::GetAprioriSurfacePointSource ( ) const

◆ GetAprioriSurfacePointSourceFile()

QString Isis::ControlPoint::GetAprioriSurfacePointSourceFile ( ) const

◆ GetBestSurfacePoint()

SurfacePoint Isis::ControlPoint::GetBestSurfacePoint ( ) const

Returns the adjusted surface point if it exists, otherwise returns the a priori surface point.

References Isis::SurfacePoint::Valid().

◆ GetChooserName()

◆ getCubeSerialNumbers()

QList< QString > Isis::ControlPoint::getCubeSerialNumbers ( ) const
Returns
A list of cube serial numbers

◆ GetDateTime()

QString Isis::ControlPoint::GetDateTime ( ) const

◆ GetId()

◆ GetLineResidualRms()

double Isis::ControlPoint::GetLineResidualRms ( ) const

Get rms of line residuals.

Returns
The rms of line residuals

◆ GetMeasure() [1/4]

ControlMeasure * Isis::ControlPoint::GetMeasure ( int index)

◆ GetMeasure() [2/4]

const ControlMeasure * Isis::ControlPoint::GetMeasure ( int index) const

◆ GetMeasure() [3/4]

ControlMeasure * Isis::ControlPoint::GetMeasure ( QString serialNumber)

Get a control measure based on its cube's serial number.

Parameters
serialNumberserial number of measure to get
Returns
control measure with matching serial number

References measures.

◆ GetMeasure() [4/4]

const ControlMeasure * Isis::ControlPoint::GetMeasure ( QString serialNumber) const

Get a control measure based on its cube's serial number.

Parameters
serialNumberserial number of measure to get
Returns
const control measure with matching serial number

References measures.

Referenced by Isis::BundleControlPoint::BundleControlPoint(), ComputeApriori(), GetMeasure(), GetMeasure(), Isis::PointTableDelegate::readData(), Isis::PointTableDelegate::readData(), Isis::ControlNet::sortedMeasureList(), and Isis::ControlNetVersioner::toPvl().

◆ getMeasures()

QList< ControlMeasure * > Isis::ControlPoint::getMeasures ( bool excludeIgnored = false) const
Parameters
excludeIgnoredIgnored measures are excluded if this is true. It is false by default.
Returns
A list of this points measures

Referenced by Isis::ControlNet::DeletePoint(), Isis::MeasureCountFilter::evaluate(), Isis::AbstractFilter::evaluatePointFromMeasureFilter(), and Isis::ControlPointGraphicsItem::paint().

◆ GetNumberOfRejectedMeasures()

int Isis::ControlPoint::GetNumberOfRejectedMeasures ( ) const

Get the number of rejected measures on the control point.

Returns
The number of rejected measures on this control point

Referenced by Isis::BundleControlPoint::numberOfRejectedMeasures().

◆ GetNumLockedMeasures()

int Isis::ControlPoint::GetNumLockedMeasures ( ) const

Returns the number of locked control measures.

Returns
Number of locked control measures

References IsEditLocked(), and measures.

Referenced by Isis::AbstractPointItem::deleteSource().

◆ GetNumMeasures()

◆ GetNumValidMeasures()

int Isis::ControlPoint::GetNumValidMeasures ( ) const

◆ GetPointTypeString()

QString Isis::ControlPoint::GetPointTypeString ( ) const

Obtain a string representation of the PointType.

Returns
A string representation of the PointType

References GetType(), and PointTypeToString().

Referenced by Isis::PointTypeFilter::evaluate(), and Isis::AbstractPointItem::getData().

◆ GetRadiusSourceString()

QString Isis::ControlPoint::GetRadiusSourceString ( ) const

Obtain a string representation of the RadiusSource.

Returns
A string representation of the RadiusSource

References RadiusSourceToString().

Referenced by Isis::AbstractPointItem::getData().

◆ GetReferenceSN()

QString Isis::ControlPoint::GetReferenceSN ( ) const
Returns
The cube serial number of the reference measure

References _FILEINFO_, Isis::ControlMeasure::GetCubeSerialNumber(), GetId(), HasRefMeasure(), and Isis::IException::Programmer.

◆ GetRefMeasure() [1/2]

ControlMeasure * Isis::ControlPoint::GetRefMeasure ( )

Get the measure that is the reference directly.

References _FILEINFO_, GetId(), HasRefMeasure(), and Isis::IException::Programmer.

◆ GetRefMeasure() [2/2]

const ControlMeasure * Isis::ControlPoint::GetRefMeasure ( ) const

Get the reference control measure.

Returns
const reference measure for this point

References _FILEINFO_, GetId(), HasRefMeasure(), and Isis::IException::Programmer.

Referenced by Isis::MatchTool::deletePoint(), Isis::AbstractMeasureItem::getData(), Isis::AbstractPointItem::getData(), and Isis::ControlMeasure::IsEditLocked().

◆ GetResidualRms()

double Isis::ControlPoint::GetResidualRms ( ) const

Get rms of residuals.

Returns
The rms of residuals

Referenced by Isis::BundleControlPoint::residualRms().

◆ GetSampleResidualRms()

double Isis::ControlPoint::GetSampleResidualRms ( ) const

Get rms of sample residuals.

Returns
The rms of sample residuals

◆ GetStatistic() [1/2]

Statistics Isis::ControlPoint::GetStatistic ( double(ControlMeasure::*)() const statFunc) const

This function will call a given method on every control measure that this point has.

Parameters
statFuncThe function to use for data collection
Returns
The gathered statistic
History
2011-03-08 Debbie A. Cook - Changed to get statistics for all point types and not just Candidate.

References Isis::Statistics::AddData().

Referenced by Isis::ControlNet::AverageResidual(), Isis::QnetPointJigsawErrorFilter::filter(), and Isis::QnetPointRegistrationErrorFilter::filter().

◆ GetStatistic() [2/2]

Statistics Isis::ControlPoint::GetStatistic ( long dataType) const

◆ GetSurfacePointSourceString()

QString Isis::ControlPoint::GetSurfacePointSourceString ( ) const

Obtain a string representation of the SurfacePointSource.

Returns
A string representation of the SurfacePointSource

References SurfacePointSourceToString().

Referenced by Isis::AbstractPointItem::getData().

◆ GetType()

◆ HasAprioriCoordinates()

bool Isis::ControlPoint::HasAprioriCoordinates ( )

◆ HasAprioriRadiusSourceFile()

bool Isis::ControlPoint::HasAprioriRadiusSourceFile ( ) const

Checks to see if the radius source file has been set.

Returns
bool True if the radius source file has been set.

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

◆ HasAprioriSurfacePointSourceFile()

bool Isis::ControlPoint::HasAprioriSurfacePointSourceFile ( ) const

Checks to see if the surface point source file has been set.

Returns
bool True if the surface point source file has been set.

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

◆ HasChooserName()

bool Isis::ControlPoint::HasChooserName ( ) const

Returns true if the choosername is not empty.

◆ HasDateTime()

bool Isis::ControlPoint::HasDateTime ( ) const

Returns true if the datetime is not empty.

◆ HasRefMeasure()

bool Isis::ControlPoint::HasRefMeasure ( ) const

Checks to see if a reference measure is set.

Returns
bool True if a reference measure is set.

Referenced by GetReferenceSN(), GetRefMeasure(), GetRefMeasure(), IndexOfRefMeasure(), and Isis::ControlNetVersioner::toPvl().

◆ HasSerialNumber()

bool Isis::ControlPoint::HasSerialNumber ( QString serialNumber) const

Return true if given serial number exists in point.

Parameters
serialNumberThe serial number
Returns
True if point contains serial number, false if not

Referenced by Isis::StereoTool::paintViewport(), and Isis::QnetNewMeasureDialog::setFiles().

◆ IndexOf() [1/2]

int Isis::ControlPoint::IndexOf ( ControlMeasure * cm,
bool throws = true ) const
Parameters
cmThe control measure to find the index of
throwsThrows an exception on failure instead of returning -1. Be aware that by default this is true!
Returns
The index of the passed in measure, or -1 on failure if throws is false.

References IndexOf().

Referenced by IndexOf().

◆ IndexOf() [2/2]

int Isis::ControlPoint::IndexOf ( QString sn,
bool throws = true ) const
Parameters
snThe serial number of the control measure to find the index of
throwsThrows an exception on failure instead of returning -1. Be aware that by default this is true!
Returns
The index of the measure with serial number matching sn, or -1 on failure if throws is false.

References _FILEINFO_, and Isis::IException::Programmer.

◆ IndexOfRefMeasure()

int Isis::ControlPoint::IndexOfRefMeasure ( ) const
Parameters
throwsThrows an exception on failure instead of returning -1. Be aware that by default this is true!
Returns
The index of the reference measure, or -1 if no measures exist in the point (A point with at least one measure ALWAYS has a reference measure.

References _FILEINFO_, Isis::ControlMeasure::GetCubeSerialNumber(), HasRefMeasure(), and Isis::IException::Programmer.

Referenced by Isis::PointTableDelegate::readData(), Isis::PointTableDelegate::readData(), and Isis::ControlNetVersioner::toPvl().

◆ IsConstrained()

bool Isis::ControlPoint::IsConstrained ( )

Return bool indicating if point is Constrained or not.

Returns
bool indicating if point is Constrained or not.

References Free.

Referenced by ComputeApriori().

◆ IsCoord1Constrained()

bool Isis::ControlPoint::IsCoord1Constrained ( )

Return bool indicating if 1st coordinate is Constrained or not.

This corresponds to Latitude for a Latitudinal solution or X for a Rectangular solution.

Returns
bool indicating if 1st coordinate is Constrained or not.

References Coord1Constrained.

Referenced by Isis::BundleControlPoint::setWeights(), and Isis::ControlNetVersioner::toPvl().

◆ IsCoord2Constrained()

bool Isis::ControlPoint::IsCoord2Constrained ( )

Return bool indicating if 2nd coordinate is Constrained or not.

This corresponds to Longitude for a Latitudinal solution or Y for a Rectangular solution.

Returns
bool indicating if 2nd coordinate is Constrained or not.

References Coord2Constrained.

Referenced by Isis::BundleControlPoint::setWeights(), and Isis::ControlNetVersioner::toPvl().

◆ IsCoord3Constrained()

bool Isis::ControlPoint::IsCoord3Constrained ( )

Return bool indicating if 3rd coordinate is Constrained or not.

This corresponds to Radius for a Latitudinal solution or Z for a Rectangular solution.

Returns
bool indicating if 3rd coordinate is Constrained or not.

References Coord3Constrained.

Referenced by Isis::BundleControlPoint::setWeights().

◆ IsEditLocked()

◆ IsFixed()

bool Isis::ControlPoint::IsFixed ( ) const

Return bool indicating if point is Fixed or not.

Returns
bool indicating if point is Fixed or not.

References Fixed.

Referenced by ComputeApriori().

◆ IsFree()

bool Isis::ControlPoint::IsFree ( ) const

Return bool indicating if point is Free or not.

Returns
bool indicating if point is Free or not.

References Constrained, and Fixed.

◆ IsIgnored()

◆ IsInvalid()

bool Isis::ControlPoint::IsInvalid ( ) const

◆ IsReferenceExplicit()

bool Isis::ControlPoint::IsReferenceExplicit ( ) const
Returns
true Returns true if SetRefMeasure has ever been set on this point.

Referenced by Isis::MatchTool::deletePoint(), and Isis::ControlNetVersioner::toPvl().

◆ IsRejected()

◆ IsValid()

bool Isis::ControlPoint::IsValid ( ) const

◆ Load()

void Isis::ControlPoint::Load ( PvlObject & p)

Loads the PvlObject into a ControlPoint.

Parameters
pPvlObject containing ControlPoint information
forceBuildAllows invalid Control Measures to be added to this Control Point
Exceptions
Isis::iException::User- Invalid Point Type
Isis::iException::User- Unable to add ControlMeasure to Control Point
History

2008-06-18 Tracie Sucharski/Jeannie Walldren, Fixed bug with checking for "True" vs "true", change to lower case for comparison.

2009-12-29 Tracie Sucharski - Added new ControlPoint information.

2010-01-13 Tracie Sucharski - Changed from Set methods to simply setting private variables to increase speed?

2010-07-30 Tracie Sucharski, Updated for changes made after additional working sessions for Control network design.

2010-09-01 Tracie Sucharski, Add checks for AprioriLatLonSource AprioriLatLonSourceFile. If there are AprioriSigmas,but no AprioriXYZ, use the XYZ values.

2010-09-15 Tracie Sucharski, It was decided after mtg with Debbie, Stuart, Ken and Tracie that ControlPoint will only function with x/y/z, not lat/lon/radius. It will be the responsibility of the application or class using ControlPoint to set up a SurfacePoint object to do conversions between x/y/z and lat/lon/radius. So... remove all conversion methods from this class. It was also decided that when importing old networks that contain Sigmas, the sigmas will not be imported , due to conflicts with the units of the sigmas,we cannot get accurate x,y,z sigmas from the lat,lon,radius sigmas without the covariance matrix.

2010-09-28 Tracie Sucharski, Added back the conversion methods from lat,lon,radius to x,y,z only for the point, since that is what most applications need.

2010-12-02 Debbie A. Cook, Added units to SurfacePoint.SetSpherical calls.

2011-03-12 Debbie A. Cook, Added targetRadius to do conversions

◆ NumberOfConstrainedCoordinates()

int Isis::ControlPoint::NumberOfConstrainedCoordinates ( )

Return bool indicating if point is Constrained or not.

Returns
bool indicating if point is Constrained or not.

Referenced by ComputeApriori().

◆ operator!=()

bool Isis::ControlPoint::operator!= ( const ControlPoint & other) const

Compare two Control Points for inequality.

Parameters
otherThe other point to compare this one to
Returns
true if the two points are not equal, and false otherwise

◆ operator=()

const ControlPoint & Isis::ControlPoint::operator= ( const ControlPoint & other)
Parameters
pPoint
Returns
ControlPoint&

References SetEditLock().

◆ operator==()

bool Isis::ControlPoint::operator== ( const ControlPoint & other) const

Compare two Control Points for equality.

Parameters
otherThe other point to compare to
Returns
true if the two points are equal, and false otherwise

◆ operator[]() [1/4]

ControlMeasure * Isis::ControlPoint::operator[] ( int index)

Same as GetMeasure (provided for convenience)

Parameters
indexIf there are n measures, the measure returned will be the ith measure added to the point
Returns
The measure which has the provided serial number

◆ operator[]() [2/4]

const ControlMeasure * Isis::ControlPoint::operator[] ( int index) const

Same as GetMeasure (provided for convenience)

Parameters
indexIf there are n measures, the measure returned will be the ith measure added to the point
Returns
const version of the measure which has the provided serial number

◆ operator[]() [3/4]

ControlMeasure * Isis::ControlPoint::operator[] ( QString serialNumber)

Same as GetMeasure (provided for convenience)

Parameters
serialNumberCube serial number of desired control measure
Returns
The measure which has the provided serial number

◆ operator[]() [4/4]

const ControlMeasure * Isis::ControlPoint::operator[] ( QString serialNumber) const

Same as GetMeasure (provided for convenience)

Parameters
serialNumberCube serial number of desired control measure
Returns
const version of the measure which has the provided serial number

◆ Parent()

◆ PointModified()

void Isis::ControlPoint::PointModified ( )
protected

◆ PointTypeToString()

◆ RadiusSourceToString()

◆ ResetApriori()

ControlPoint::Status Isis::ControlPoint::ResetApriori ( )

Reset all the Apriori info to defaults.

Author
Sharmila Prasad (10/22/2010)

References IsEditLocked(), Isis::ControlPoint::SurfacePointSource::None, Isis::ControlPoint::RadiusSource::None, PointLocked, and Success.

◆ SetAdjustedSurfacePoint()

ControlPoint::Status Isis::ControlPoint::SetAdjustedSurfacePoint ( SurfacePoint newSurfacePoint)

Set or update the surface point relating to this control point.

This is the point on the surface of the planet that the measures are tied to. This updates the last modified attributes of this point. *** Warning: Only BundleAdjust and its applications should be using this method.

Parameters
newSurfacePointThe point on the target's surface the measures are tied to

References PointModified(), and Success.

Referenced by Isis::BundleControlPoint::setAdjustedSurfacePoint(), and Isis::AbstractPointItem::setData().

◆ SetAprioriRadiusSource()

ControlPoint::Status Isis::ControlPoint::SetAprioriRadiusSource ( RadiusSource::Source source)

This updates the source of the radius of the apriori surface point.

See also
RadiusSource::Source
Parameters
sourceWhere the radius came from

References PointLocked, PointModified(), and Success.

Referenced by ComputeApriori(), and Isis::AbstractPointItem::setData().

◆ SetAprioriRadiusSourceFile()

ControlPoint::Status Isis::ControlPoint::SetAprioriRadiusSourceFile ( QString sourceFile)

This updates the filename of the DEM that the apriori radius came from.

It doesn't really make sense to call this unless the RadiusSource is DEM.

See also
RadiusSource::Source
Parameters
sourceWhere the radius came from

References PointLocked, PointModified(), and Success.

Referenced by Isis::AbstractPointItem::setData().

◆ SetAprioriSurfacePoint()

ControlPoint::Status Isis::ControlPoint::SetAprioriSurfacePoint ( SurfacePoint aprioriSP)

This updates the apriori surface point.

See also
SetAprioriRadiusSource
SetAprioriRadiusSourceFile
SetAprioriPointSource
SetAprioriPointSourceFile
aprioriSurfacePoint
Parameters
aprioriSPThe apriori surface point to remember

References Coord1Constrained, Coord2Constrained, Coord3Constrained, Isis::ControlNet::GetCoordType(), Isis::SurfacePoint::Latitudinal, PointLocked, PointModified(), Isis::SurfacePoint::Rectangular, and Success.

Referenced by Isis::StereoTool::createPoint(), and Isis::AbstractPointItem::setData().

◆ SetAprioriSurfacePointSource()

ControlPoint::Status Isis::ControlPoint::SetAprioriSurfacePointSource ( SurfacePointSource::Source source)

This updates the source of the surface point.

See also
SurfacePointSource::Source
Parameters
sourceWhere the surface point came from

References PointLocked, PointModified(), and Success.

Referenced by ComputeApriori(), Isis::ControlPointEditWidget::createControlPoint(), and Isis::AbstractPointItem::setData().

◆ SetAprioriSurfacePointSourceFile()

ControlPoint::Status Isis::ControlPoint::SetAprioriSurfacePointSourceFile ( QString sourceFile)

This updates the filename of where the apriori surface point came from.

See also
RadiusSource::Source
Parameters
sourceFileWhere the surface point came from

References PointLocked, PointModified(), and Success.

Referenced by Isis::ControlPointEditWidget::createControlPoint(), and Isis::AbstractPointItem::setData().

◆ SetChooserName()

ControlPoint::Status Isis::ControlPoint::SetChooserName ( QString name)

Set the point's chooser name.

This will be lost if any attributes relating to this point is later changed and the current user will be set. This is one of the 'last modified attributes' referred to in other comments.

Parameters
nameThe username of the person who last modified this control point

References PointLocked, and Success.

Referenced by Isis::ControlPointEditWidget::createControlPoint(), Isis::QnetTool::createPoint(), Isis::MatchTool::createPoint(), and Isis::AbstractPointItem::setData().

◆ SetDateTime()

ControlPoint::Status Isis::ControlPoint::SetDateTime ( QString newDateTime)

Set the point's last modified time.

This will be lost if any attributes relating to this point are later changed and the current time will be set. This is one of the 'last modified attributes' referred to in other comments.

Parameters
newDateTimeThe date and time this control point was last modified

References PointLocked, and Success.

Referenced by Isis::AbstractPointItem::setData().

◆ SetEditLock()

ControlPoint::Status Isis::ControlPoint::SetEditLock ( bool lock)

Set the EditLock state.

If edit lock is on, then most attributes relating to this point are not modifiable. Edit lock is like "Don't modify my attributes, but you can still modify my measures' attributes". The reference measure is implicitely edit locked if the point is edit locked.

Parameters
lockTrue to enable edit lock, false to disable it and allow the point to be modified.

References EditLockModified, and Success.

Referenced by Isis::CnetEditorWidget::filteredNetwork(), operator=(), Isis::AbstractPointItem::setData(), and Isis::MatchTool::updatePointInfo().

◆ SetId()

ControlPoint::Status Isis::ControlPoint::SetId ( QString newId)

Sets the Id of the control point.

Parameters
idControl Point Id
Returns
(int) status Success or PointLocked

References PointLocked, and Success.

Referenced by Isis::AbstractPointItem::setData().

◆ SetIgnored()

ControlPoint::Status Isis::ControlPoint::SetIgnored ( bool newIgnoreStatus)

Set whether to ignore or use control point.

Parameters
newIgnoreStatusTrue to ignore this Control Point, False to un-ignore

References IgnoredModified, PointLocked, PointModified(), and Success.

Referenced by Isis::AbstractPointItem::setData(), and Isis::MatchTool::updatePointInfo().

◆ SetNumberOfRejectedMeasures()

void Isis::ControlPoint::SetNumberOfRejectedMeasures ( int numRejected)

Set (update) the number of rejected measures for the control point.

Parameters
numRejectedThe number of rejected measures

Referenced by Isis::BundleControlPoint::setNumberOfRejectedMeasures().

◆ SetRefMeasure() [1/3]

ControlPoint::Status Isis::ControlPoint::SetRefMeasure ( ControlMeasure * cm)

Set the point's reference measure.

Parameters
cmThe new reference measure

References PointLocked, and Success.

Referenced by ControlPoint(), and Isis::AbstractPointItem::setData().

◆ SetRefMeasure() [2/3]

ControlPoint::Status Isis::ControlPoint::SetRefMeasure ( int index)

Set the point's reference measure.

Parameters
indexThe index of the new reference measure

References _FILEINFO_, measures, PointLocked, Isis::IException::Programmer, Success, and Isis::toString().

◆ SetRefMeasure() [3/3]

ControlPoint::Status Isis::ControlPoint::SetRefMeasure ( QString sn)

Set the points reference measure.

Parameters
snThe serial number of the new reference measure

References _FILEINFO_, measures, PointLocked, Isis::IException::Programmer, and Success.

◆ SetRejected()

ControlPoint::Status Isis::ControlPoint::SetRejected ( bool reject)

Set the jigsawRejected state.

If IsRejected is true, then this point should be ignored until the next iteration in the bundle adjustement. BundleAdjust decides when to reject or accept a point. The initial IsRejected state of a measure is false.

Parameters
rejectTrue to reject a measure, false to include it in the adjustment

References Success.

Referenced by Isis::BundleControlPoint::setRejected().

◆ SetType()

ControlPoint::Status Isis::ControlPoint::SetType ( PointType newType)

Updates the control point's type.

This updates the last modified attributes of this point.

See also
PointType
Parameters
newTypeThe new type this control point should be

References _FILEINFO_, Constrained, Fixed, Free, GetId(), PointLocked, PointModified(), Isis::IException::Programmer, Success, and TypeModified.

Referenced by Isis::ControlPointEditWidget::createControlPoint(), Isis::StereoTool::createPoint(), Isis::MatchTool::createPoint(), and Isis::AbstractPointItem::setData().

◆ StringToPointType()

ControlPoint::PointType Isis::ControlPoint::StringToPointType ( QString pointTypeString)
static

Obtain a PointType given a string representation of it.

Parameters
pointTypeStringfor the requested PointType
Returns
the PointType for the given string

References _FILEINFO_, Constrained, Fixed, Free, and Isis::IException::Programmer.

Referenced by Isis::PointTableDelegate::readData(), Isis::PointTableDelegate::readData(), and Isis::AbstractPointItem::setData().

◆ StringToRadiusSource()

◆ StringToSurfacePointSource()

◆ SurfacePointSourceToString()

◆ ZeroNumberOfRejectedMeasures()

void Isis::ControlPoint::ZeroNumberOfRejectedMeasures ( )

Initialize the number of rejected measures to 0.

Referenced by Isis::BundleControlPoint::zeroNumberOfRejectedMeasures().

Friends And Related Symbol Documentation

◆ ControlNet

friend class ControlNet
friend

Member Data Documentation

◆ measures

◆ PointTypeCount

const int Isis::ControlPoint::PointTypeCount = 3
static

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