USGS

Isis 3.0 Developer's Reference (API)

Home

Isis::ControlNet Class Reference

a control network More...

#include <ControlNet.h>

Inherits QObject.

Signals

void networkStructureModified ()
 

Public Member Functions

 ControlNet ()
 Creates an empty ControlNet object.
 
 ControlNet (const ControlNet &other)
 
 ControlNet (const QString &filename, Progress *progress=0)
 Creates a ControlNet object with the given list of control points and cubes.
 
 ~ControlNet ()
 
void ReadControl (const QString &filename, Progress *progress=0)
 Reads in the control points from the given file.
 
void Write (const QString &filename, bool pvl=false)
 Writes out the control network.
 
void AddPoint (ControlPoint *point)
 Adds a ControlPoint to the ControlNet.
 
int DeletePoint (ControlPoint *point)
 Delete a ControlPoint from the network by the point's address.
 
int DeletePoint (QString pointId)
 Delete a ControlPoint from the network using the point's Id.
 
int DeletePoint (int index)
 Delete a ControlPoint from the network using the point's index.
 
bool ContainsPoint (QString pointId) const
 
QList< QString > GetCubeSerials () const
 Use this method to get a complete list of all the cube serial numbers in the network.
 
QList< ControlCubeGraphNode * > GetCubeGraphNodes ()
 
QList< QList< QString > > GetSerialConnections () const
 This method searches through all the cube serial numbers in the network.
 
QList< QList
< ControlCubeGraphNode * > > 
GetNodeConnections () const
 This method searches through all the cube serial numbers in the network.
 
QSet< ControlMeasure * > MinimumSpanningTree (QList< ControlCubeGraphNode * > &island, bool lessThan(const ControlMeasure *, const ControlMeasure *)) const
 This method uses Kruskal's Algorithm to construct a minimum spanning tree of the given island, with control measures acting as the edges between graph nodes.
 
int getEdgeCount () const
 
QString CubeGraphToString () const
 Used for verifying graph intergrity.
 
QList< ControlMeasure * > GetMeasuresInCube (QString serialNumber)
 Get all the measures pertaining to a given cube serial number.
 
QList< ControlMeasure * > sortedMeasureList (double(ControlMeasure::*statFunc)() const, double min, double max)
 Get a sorted list of all the measures that have values in a given ragen.
 
void DeleteMeasuresWithId (QString serialNumber)
 Essentially removes a cube from the networkid.
 
void ComputeResiduals ()
 Compute error for each point in the network.
 
void ComputeApriori ()
 Compute aprior values for each point in the network.
 
const ControlPointGetPoint (QString pointId) const
 
ControlPointGetPoint (QString pointId)
 
const ControlPointGetPoint (int index) const
 
ControlPointGetPoint (int index)
 
const ControlCubeGraphNodegetGraphNode (QString serialNumber) const
 
ControlCubeGraphNodegetGraphNode (QString serialNumber)
 
double AverageResidual ()
 Compute the average error of all points in the network.
 
Isis::CameraCamera (int index)
 Returns the camera list from the given image number.
 
QString CreatedDate () const
 Return the Created Date.
 
QString Description () const
 Return the description of the network.
 
ControlPointFindClosest (QString serialNumber, double sample, double line)
 Finds and returns a pointer to the closest ControlPoint to the ControlMeasure with the given serial number and line sample location.
 
bool IsValid () const
 Return if the control point is invalid.
 
double GetMaximumResidual ()
 Determine the maximum error of all points in the network.
 
QString GetNetworkId () const
 
int GetNumEditLockMeasures ()
 Return the total number of edit locked measures for all control points in the network.
 
int GetNumEditLockPoints ()
 Returns the number of edit locked control points.
 
int GetNumIgnoredMeasures ()
 Return the total number of ignored measures for all control points in the network.
 
int GetNumberOfValidMeasuresInImage (const QString &serialNumber)
 Return the number of measures in image specified by serialNumber.
 
int GetNumberOfJigsawRejectedMeasuresInImage (const QString &serialNumber)
 Return the number of jigsaw rejected measures in image specified by serialNumber.
 
void ClearJigsawRejected ()
 Sets jigsaw rejected flag to false for all points and measures.
 
void IncrementNumberOfRejectedMeasuresInImage (const QString &serialNumber)
 Increment number of jigsaw rejected measures in image specified by serialNumber.
 
void DecrementNumberOfRejectedMeasuresInImage (const QString &serialNumber)
 Decrement number of jigsaw rejected measures in image specified by serialNumber.
 
int GetNumMeasures () const
 Returns the total number of measures for all control points in the network.
 
int GetNumPoints () const
 Return the number of control points in the network.
 
int GetNumValidMeasures ()
 Return the number of valid (non-ignored) measures for all control points in the network.
 
int GetNumValidPoints ()
 Returns the number of non-ignored control points.
 
QString GetTarget () const
 Return the target name.
 
QString GetUserName () const
 Return the user name.
 
QList< ControlPoint * > GetPoints ()
 Return QList of ControlPoints ordered by point ID.
 
QList< QString > GetPointIds () const
 Return QList of ControlPoint Ids used in hash, in order of addition.
 
std::vector< DistanceGetTargetRadii ()
 Get the target radii.
 
void SetCreatedDate (const QString &date)
 Set the creation time.
 
void SetDescription (const QString &newDescription)
 Set the description of the network.
 
void SetImages (const QString &imageListFile)
 Creates the ControlNet's image cameras based on an input file.
 
void SetImages (SerialNumberList &list, Progress *progress=0)
 Creates the ControlNet's image camera's based on the list of Serial Numbers.
 
void SetModifiedDate (const QString &date)
 Set the last modified date.
 
void SetMutex (QMutex *mutex)
 Set mutex to lock for making Naif calls.
 
void SetNetworkId (const QString &id)
 Set the network id.
 
void SetTarget (const QString &target)
 Set the target name.
 
void SetUserName (const QString &name)
 Set the user name.
 
void swap (ControlNet &other)
 Swaps the member data with the given control net.
 
ControlNetoperator= (const ControlNet &other)
 Assign other to this.
 
const ControlPointoperator[] (QString id) const
 
ControlPointoperator[] (QString id)
 
const ControlPointoperator[] (int id) const
 
ControlPointoperator[] (int id)
 

Friends

class ControlMeasure
 
class ControlPoint
 

Detailed Description

a control network

This class is used to store a network of ControlPoints

Author
2005-07-29 Jeff Anderson
See Also
ControlPoint ControlMeasure

Constructor & Destructor Documentation

Isis::ControlNet::ControlNet ( )

Creates an empty ControlNet object.

Isis::ControlNet::ControlNet ( const ControlNet other)

References GetNumPoints(), and GetPoint().

Isis::ControlNet::ControlNet ( const QString &  ptfile,
Progress progress = 0 
)

Creates a ControlNet object with the given list of control points and cubes.

Parameters
ptfileName of file containing a Pvl list of control points
progressA pointer to the progress of reading in the control points
Isis::ControlNet::~ControlNet ( )

Member Function Documentation

void Isis::ControlNet::AddPoint ( ControlPoint point)

Adds a ControlPoint to the ControlNet.

Parameters
pointControl point to be added
Exceptions
Isis::IException::Programmer- "ControlPoint must have unique Id"

References _FILEINFO_, Isis::ControlPoint::GetId(), and Isis::ControlPoint::getMeasures().

double Isis::ControlNet::AverageResidual ( )

Compute the average error of all points in the network.

Returns
double Average error of points
History:
2010-01-12 Tracie Sucharski - Renamed from AverageError

References Isis::Statistics::Average(), Isis::ControlPoint::GetStatistic(), and Isis::ControlPoint::IsIgnored().

Isis::Camera * Isis::ControlNet::Camera ( int  index)

Returns the camera list from the given image number.

Parameters
indexThe image number
Returns
Isis::Camera* The pointer to the resultant camera list

Referenced by Isis::QnetPointDistanceFilter::filter(), and Isis::QnetCubeDistanceFilter::filter().

void Isis::ControlNet::ClearJigsawRejected ( )

Sets jigsaw rejected flag to false for all points and measures.

Called by BundleAdjust::Init method

References Isis::ControlPoint::ClearJigsawRejected().

void Isis::ControlNet::ComputeApriori ( )

Compute aprior values for each point in the network.

History:
2010-08-23 Ken Edmundson, skipping ignored points

References Isis::ControlPoint::ComputeApriori(), and Isis::ControlPoint::IsIgnored().

void Isis::ControlNet::ComputeResiduals ( )

Compute error for each point in the network.

History:
2010-01-11 Tracie Sucharski, Renamed from ComputeErrors
bool Isis::ControlNet::ContainsPoint ( QString  pointId) const
Parameters
pointIdthe point Id to check for in the network.
Returns
True if the point is in the network, false otherwise.

Referenced by Isis::MatchToolNewPointDialog::MatchToolNewPointDialog().

QString Isis::ControlNet::CreatedDate ( ) const

Return the Created Date.

Author
Sharmila Prasad (10/6/2010)
Returns
std::string
QString Isis::ControlNet::CubeGraphToString ( ) const

Used for verifying graph intergrity.

Returns
A string representation of the cube graph
void Isis::ControlNet::DecrementNumberOfRejectedMeasuresInImage ( const QString &  serialNumber)

Decrement number of jigsaw rejected measures in image specified by serialNumber.

void Isis::ControlNet::DeleteMeasuresWithId ( QString  serialNumber)

Essentially removes a cube from the networkid.

Parameters
serialNumberThe cube serial number to be removed from the network

References Isis::ControlPoint::Delete(), Isis::ControlCubeGraphNode::getMeasures(), and Isis::ControlMeasure::Parent().

int Isis::ControlNet::DeletePoint ( ControlPoint point)

Delete a ControlPoint from the network by the point's address.

Parameters
pointThe point to delete

References _FILEINFO_, and Isis::ControlPoint::GetId().

Referenced by Isis::CnetViz::AbstractPointItem::deleteSource(), and Isis::CnetEditorWidget::filteredNetwork().

int Isis::ControlNet::DeletePoint ( QString  pointId)

Delete a ControlPoint from the network using the point's Id.

Parameters
pointIdThe Point Id of the ControlPoint to be deleted.

References _FILEINFO_, Isis::ControlPoint::getMeasures(), Isis::ControlPoint::IsEditLocked(), Isis::ControlPoint::IsIgnored(), and Isis::ControlPoint::IsInvalid().

int Isis::ControlNet::DeletePoint ( int  index)

Delete a ControlPoint from the network using the point's index.

Parameters
indexThe index of the Control Point to be deleted.

References _FILEINFO_.

QString Isis::ControlNet::Description ( ) const

Return the description of the network.

Returns
The description of this Control Network
ControlPoint * Isis::ControlNet::FindClosest ( QString  serialNumber,
double  sample,
double  line 
)

Finds and returns a pointer to the closest ControlPoint to the ControlMeasure with the given serial number and line sample location.

Parameters
serialNumberThe serial number of the the file the ControlMeasure is on
sampleThe sample number of the ControlMeasure
lineThe line number of the ControlMeasure
Returns
ControlPoint* Pointer to the ControlPoint closest to the given line, sample position

References _FILEINFO_, Isis::ControlMeasure::GetLine(), Isis::ControlCubeGraphNode::getMeasures(), Isis::ControlMeasure::GetSample(), and Isis::ControlMeasure::Parent().

QList< ControlCubeGraphNode * > Isis::ControlNet::GetCubeGraphNodes ( )
Returns
A list of all the cube graph nodes in the network
QList< QString > Isis::ControlNet::GetCubeSerials ( ) const

Use this method to get a complete list of all the cube serial numbers in the network.

Note that the order in which the serials are ordered in the returned list is arbitrary and could change each time this method is called (but the operation is done in constant time).

Returns
A list of the Cube Serial Numbers in the ControlNet.

Referenced by Isis::CnetDisplayProperties::getCubeList(), and Isis::ChipViewport::paintEvent().

int Isis::ControlNet::getEdgeCount ( ) const
Returns
The total number of edges in the bi-directional graph for images

References Isis::ControlCubeGraphNode::getAdjacentNodes().

const ControlCubeGraphNode * Isis::ControlNet::getGraphNode ( QString  serialNumber) const

References _FILEINFO_.

ControlCubeGraphNode * Isis::ControlNet::getGraphNode ( QString  serialNumber)

References _FILEINFO_.

double Isis::ControlNet::GetMaximumResidual ( )

Determine the maximum error of all points in the network.

Returns
double Max error of points
History:
2010-01-12 Tracie Sucharski - Renamed from MaximumError

References Isis::ControlPoint::GetStatistic(), and Isis::Statistics::Maximum().

QList< ControlMeasure * > Isis::ControlNet::GetMeasuresInCube ( QString  serialNumber)

Get all the measures pertaining to a given cube serial number.

Returns
A list of all measures which are in a given cube

Referenced by Isis::ChipViewport::paintEvent().

QString Isis::ControlNet::GetNetworkId ( ) const
QList< QList< ControlCubeGraphNode * > > Isis::ControlNet::GetNodeConnections ( ) const

This method searches through all the cube serial numbers in the network.

Serials which are connected to other serials through points are grouped together in the same lists. The list containing the lists of strings is nothing more than a list of islands such that each island is a list of serials which are connected to each other. If the control network is completely connected, then this list will only have one element (a list of all the serials in the network).

Returns
A list of cube islands as graph nodes
int Isis::ControlNet::GetNumberOfJigsawRejectedMeasuresInImage ( const QString &  serialNumber)

Return the number of jigsaw rejected measures in image specified by serialNumber.

Returns
Number of jigsaw rejected measures in image
int Isis::ControlNet::GetNumberOfValidMeasuresInImage ( const QString &  serialNumber)

Return the number of measures in image specified by serialNumber.

Returns
Number of valid measures in image
History:
2013-12-18 Tracie Sucharski - Renamed from GetNumberOfMeasuresInImage, it is returning a count of only valid measures (Ignore=False).
int Isis::ControlNet::GetNumEditLockMeasures ( )

Return the total number of edit locked measures for all control points in the network.

Returns
Number of edit locked measures

References Isis::ControlPoint::GetNumLockedMeasures().

int Isis::ControlNet::GetNumEditLockPoints ( )

Returns the number of edit locked control points.

Returns
Number of edit locked control points

References Isis::ControlPoint::IsEditLocked().

int Isis::ControlNet::GetNumIgnoredMeasures ( )

Return the total number of ignored measures for all control points in the network.

Returns
Number of valid measures

References Isis::ControlPoint::GetNumMeasures(), and Isis::ControlPoint::GetNumValidMeasures().

int Isis::ControlNet::GetNumMeasures ( ) const

Returns the total number of measures for all control points in the network.

Returns
Number of control measures

References Isis::ControlPoint::GetNumMeasures().

int Isis::ControlNet::GetNumValidMeasures ( )

Return the number of valid (non-ignored) measures for all control points in the network.

Returns
Number of valid measures

References Isis::ControlPoint::GetNumValidMeasures(), and Isis::ControlPoint::IsIgnored().

int Isis::ControlNet::GetNumValidPoints ( )

Returns the number of non-ignored control points.

Returns
Number of valid control points

References Isis::ControlPoint::IsIgnored().

ControlPoint * Isis::ControlNet::GetPoint ( QString  pointId)

References _FILEINFO_.

const ControlPoint * Isis::ControlNet::GetPoint ( int  index) const

References _FILEINFO_.

ControlPoint * Isis::ControlNet::GetPoint ( int  index)

References _FILEINFO_.

QList< QString > Isis::ControlNet::GetPointIds ( ) const

Return QList of ControlPoint Ids used in hash, in order of addition.

QList< ControlPoint * > Isis::ControlNet::GetPoints ( )

Return QList of ControlPoints ordered by point ID.

QList< QList< QString > > Isis::ControlNet::GetSerialConnections ( ) const

This method searches through all the cube serial numbers in the network.

Serials which are connected to other serials through points are grouped together in the same lists. The list containing the lists of strings is nothing more than a list of islands such that each island is a list of serials which are connected to each other. If the control network is completely connected, then this list will only have one element (a list of all the serials in the network).

Returns
A list of cube islands as serial numbers
QString Isis::ControlNet::GetTarget ( ) const

Return the target name.

std::vector< Distance > Isis::ControlNet::GetTargetRadii ( )

Get the target radii.

Returns
the radii of the target body

Referenced by Isis::ControlPoint::SetAprioriSurfacePoint().

QString Isis::ControlNet::GetUserName ( ) const

Return the user name.

void Isis::ControlNet::IncrementNumberOfRejectedMeasuresInImage ( const QString &  serialNumber)

Increment number of jigsaw rejected measures in image specified by serialNumber.

bool Isis::ControlNet::IsValid ( ) const

Return if the control point is invalid.

QSet< ControlMeasure * > Isis::ControlNet::MinimumSpanningTree ( QList< ControlCubeGraphNode * > &  island,
bool   lessThanconst ControlMeasure *, const ControlMeasure * 
) const

This method uses Kruskal's Algorithm to construct a minimum spanning tree of the given island, with control measures acting as the edges between graph nodes.

Because measures do not directly connect graph nodes, but rather connect graph nodes to control points, points are considered "intermediate vertices". When building the tree, we treat points like normal graph node vertices, but after the tree is built, we prune away any measures that, in conjunction with a point, form an "incomplete edge". Such an edge goes from a graph node to a point, but does not have another edge going from that point to another node. Since the primary purpose of this tree is to evaluate image connectivity, such edges are unnecessary. A "complete edge" consists of two measures and a point, and connects two graph nodes, or images.

The cost of each edge is determined by the provided less-than comparison function. If a Control Measure is less-than another, it is said to have a lower cost, and is thus more likely to appear in the minimum spanning tree.

Minimum spanning trees are constructed on islands, not networks, so it is important that the caller first retrieve the list of islands in the network from the GetNodeConnections() method before invoking this method. Creating a minimum spanning tree for an entire network with multiple islands would be impractical, as this method does not account for the possibility that some nodes are disconnected in the input.

A common usage of the minimum spanning tree is to measure the importance of a given measure or point to the overall connectivity of a network. If a measurement is not in the MST, we do not need to worry about creating additional islands by removing it.

It is important that the user choose their less-than function carefully. If a poor less-than function is used, then "bad" measures could end up in the MST while "good" measures are excluded, thus giving the user the false impression that a good measure can be safely deleted, while a bad measure must be preserved. The application "cnetwinnow", for example, tries to remove as many measures with high residuals as possible without increasing the island count of the network, so its less-than function compares the residual magnitude of the two input measures.

Parameters
islandThe list of graph nodes forming the island to be minimized
lessThanA comparison function telling us if one measure is better than another
Returns
The set of all measures (edges) in the minimum spanning tree

References _FILEINFO_, Isis::ControlMeasure::ControlSN(), Isis::ControlPoint::GetId(), Isis::ControlCubeGraphNode::getMeasures(), Isis::ControlCubeGraphNode::getSerialNumber(), and Isis::ControlMeasure::Parent().

void Isis::ControlNet::networkStructureModified ( )
signal
ControlNet & Isis::ControlNet::operator= ( const ControlNet other)

Assign other to this.

This is an exception-safe assignment operator.

Parameters
otherThe control net to assign to this.
const ControlPoint * Isis::ControlNet::operator[] ( QString  id) const
ControlPoint * Isis::ControlNet::operator[] ( QString  id)
const ControlPoint * Isis::ControlNet::operator[] ( int  id) const
ControlPoint * Isis::ControlNet::operator[] ( int  id)
void Isis::ControlNet::ReadControl ( const QString &  filename,
Progress progress = 0 
)

Reads in the control points from the given file.

Parameters
ptfileName of file containing a Pvl list of control points
progressA pointer to the progress of reading in the control points
Exceptions
Isis::iException::User- "Invalid Network Type"
Isis::iException::User- "Invalid Control Point"
Isis::iException::User- "Invalid Format"

References Isis::Progress::CheckStatus(), Isis::ControlNetFileHeaderV0002::created(), Isis::ControlNetFileHeaderV0002::description(), Isis::ControlNetFileV0002::GetNetworkHeader(), Isis::ControlNetFileV0002::GetNetworkPoints(), Isis::ControlNetFileHeaderV0002::has_targetname(), Isis::ControlNetFileHeaderV0002::lastmodified(), Isis::ControlNetFileHeaderV0002::networkid(), Isis::Progress::SetMaximumSteps(), Isis::Progress::SetText(), Isis::ControlNetFileHeaderV0002::targetname(), and Isis::ControlNetFileHeaderV0002::username().

void Isis::ControlNet::SetCreatedDate ( const QString &  date)

Set the creation time.

Parameters
dateThe date this Control Network was created
void Isis::ControlNet::SetDescription ( const QString &  newDescription)

Set the description of the network.

Parameters
descThe description of this Control Network
void Isis::ControlNet::SetImages ( const QString &  imageListFile)

Creates the ControlNet's image cameras based on an input file.

Parameters
imageListFileThe list of images

Referenced by Isis::QnetFileTool::open().

void Isis::ControlNet::SetImages ( SerialNumberList list,
Progress progress = 0 
)

Creates the ControlNet's image camera's based on the list of Serial Numbers.

Parameters
listThe list of Serial Numbers
progressA pointer to the progress of creating the cameras
Exceptions
Isis::iException::System- "Unable to create camera for cube file"
Isis::iException::User- "Control point measure does not have a cube with a matching serial number"

References _FILEINFO_, Isis::Progress::CheckStatus(), Isis::SerialNumberList::FileName(), Isis::ControlMeasure::GetCubeSerialNumber(), Isis::ControlPoint::getCubeSerialNumbers(), Isis::ControlPoint::GetId(), Isis::SerialNumberList::HasSerialNumber(), Isis::ControlMeasure::IsIgnored(), Isis::SerialNumberList::SerialNumber(), Isis::ControlMeasure::SetCamera(), Isis::Progress::SetMaximumSteps(), Isis::Progress::SetText(), and Isis::SerialNumberList::Size().

void Isis::ControlNet::SetModifiedDate ( const QString &  date)

Set the last modified date.

Parameters
dateThe last date this Control Network was modified
void Isis::ControlNet::SetMutex ( QMutex *  mutex)

Set mutex to lock for making Naif calls.

Author
2012-09-11 Tracie Sucharski
Parameters
mutex
void Isis::ControlNet::SetNetworkId ( const QString &  id)

Set the network id.

Parameters
idThe Id of this Control Network
void Isis::ControlNet::SetTarget ( const QString &  target)

Set the target name.

Parameters
targetThe name of the target of this Control Network

Referenced by Isis::QnetFileTool::open().

void Isis::ControlNet::SetUserName ( const QString &  name)

Set the user name.

Parameters
nameThe name of the user creating or modifying this Control Net

Referenced by Isis::QnetFileTool::open().

QList< ControlMeasure * > Isis::ControlNet::sortedMeasureList ( double(ControlMeasure::*)() const  statFunc,
double  min,
double  max 
)

Get a sorted list of all the measures that have values in a given ragen.

Parameters
statFuncA pointer to a control Measure acessor
minthe minimum value of acessor return for list inclusion
maxthe maximum value of acessor return for list inclusion

References Isis::ControlPoint::GetMeasure(), Isis::ControlPoint::GetNumMeasures(), Isis::ControlMeasure::IsIgnored(), and Isis::ControlPoint::IsIgnored().

void Isis::ControlNet::swap ( ControlNet other)

Swaps the member data with the given control net.

This is an optimized form of: ControlNet a = ... ControlNet b = ...

Swap 'a' and 'b' ControlNet tmp = a; a = b; b = tmp;

This is used primarily for the assignment operator in order to do copy-and-swap.

Parameters
otherThe control net to swap with.
void Isis::ControlNet::Write ( const QString &  ptfile,
bool  pvl = false 
)

Writes out the control network.

Parameters
ptfileName of file containing a Pvl list of control points
pvlBoolean indicating whether to write in pvl format (Default=false)
Exceptions
Isis::iException::Programmer- "Invalid Net Enumeration"
Isis::iException::Io- "Unable to write PVL infomation to file"
History:
2010-10-05 Tracie Sucharski - Renamed old WRite method to WritePvl and created this new method to determine format to be written.

References Isis::ControlNetFileV0002::GetNetworkHeader(), Isis::ControlNetFileV0002::GetNetworkPoints(), Isis::ControlNetFileHeaderV0002::set_created(), Isis::ControlNetFileHeaderV0002::set_description(), Isis::ControlNetFileHeaderV0002::set_lastmodified(), Isis::ControlNetFileHeaderV0002::set_networkid(), Isis::ControlNetFileHeaderV0002::set_targetname(), Isis::ControlNetFileHeaderV0002::set_username(), and Isis::ControlPoint::ToFileEntry().

Referenced by Isis::ExportControlNetWorkOrder::asyncRedo(), Isis::Control::copyToNewProjectRoot(), Isis::QnetFileTool::save(), and Isis::QnetFileTool::saveAs().

Friends And Related Function Documentation

friend class ControlMeasure
friend
friend class ControlPoint
friend

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