USGS

Isis 3.0 Object Programmers' Reference

Home

Isis::ControlNetFileV0002 Class Reference

Handle Binary Control Network Files version 2. More...

#include <ControlNetFileV0002.h>

Inheritance diagram for Isis::ControlNetFileV0002:
Inheritance graph
Collaboration diagram for Isis::ControlNetFileV0002:
Collaboration graph

Public Member Functions

virtual void Read (const Pvl &header, const FileName &file)
 Reads binary version 2.
 
virtual void Write (const FileName &file) const
 This writes the binary file that is in memory to disk.
 
virtual Pvl toPvl () const
 Converts binary control net version 2 to pvl version 3.
 
ControlNetFileHeaderV0002GetNetworkHeader ()
 Get the control network level information - things like NetworkID, TargetName, etc...
 
QList
< ControlPointFileEntryV0002 > & 
GetNetworkPoints ()
 Get the control point data along with the log data.
 

Private Attributes

ControlNetFileHeaderV0002p_networkHeader
 This contains global cnet information...
 
QList
< ControlPointFileEntryV0002 > * 
p_controlPoints
 All of the control points.
 

Detailed Description

Handle Binary Control Network Files version 2.

We went to binary v2 in order to split up the protocol buffer messages by ControlPoint in order to completely avoid the maximum file size limitation (512MB before protocol buffers might fail).

This version takes the separate 'log' and 'network' sections and combines them while simuntaneously splitting up the control points and network header. Please keep in mind you can play with optional keywords all day long without requiring a new binary control network version - this should be done only when necessary. Upgrading the Pvl version does NOT require having a new "ControlNetFile" child - simply handle that directly in the ControlNetVersioner.

Author
2011-04-07 Steven Lambright
History:

2011-06-21 Steven Lambright - Files can have a larger size now

2012-11-30 Debbie A. Cook - Changed to use TProjection and RingPlaneProjection instead of Projection. References #775.

2013-05-22 Kimberly Oyama and Tracie Sucharski - Added the JIGSAWREJECTED keyword to the toPvl() method. Fixes #661.

Definition at line 59 of file ControlNetFileV0002.h.

Member Function Documentation

ControlNetFileHeaderV0002& Isis::ControlNetFileV0002::GetNetworkHeader ( )
inline

Get the control network level information - things like NetworkID, TargetName, etc...

"ControlNetFileHeaderV0002::pointmessagesizes" is only used for IO and you cannot assume it is populated.

Definition at line 75 of file ControlNetFileV0002.h.

References p_networkHeader.

Referenced by Isis::ControlNetVersioner::LatestPvlToBinary(), Isis::ControlNet::ReadControl(), and Isis::ControlNet::Write().

QList<ControlPointFileEntryV0002>& Isis::ControlNetFileV0002::GetNetworkPoints ( )
inline

Get the control point data along with the log data.

Definition at line 82 of file ControlNetFileV0002.h.

References p_controlPoints.

Referenced by Isis::ControlNetVersioner::LatestPvlToBinary(), Isis::ControlNet::ReadControl(), and Isis::ControlNet::Write().

void Isis::ControlNetFileV0002::Read ( const Pvl header,
const FileName file 
)
virtual

Reads binary version 2.

History:
2011-05-02 Debbie A. Cook - Converted to read constrained point type

Implements Isis::ControlNetFile.

Definition at line 52 of file ControlNetFileV0002.cpp.

References _FILEINFO_, and Isis::PvlObject::findObject().

Pvl Isis::ControlNetFileV0002::toPvl ( ) const
virtual

Converts binary control net version 2 to pvl version 3.

History:

2011-05-02 Debbie A. Cook - Converted to version pvl 3 instead of 2

2011-05-09 Tracie Sucharski - Add comments for printing apriori and adjusted values as lat/lon/radius, and sigmas.

2011-05-16 Tracie Sucharski - Before trying to get radii, make sure network has a TargetName. If not, do not add lat/lon/radius comments for SurfacePoints.

2011-06-07 Tracie Sucharski/Debbie A. Cook - Point Type changes Ground -—> Fixed Tie -—> Free

Implements Isis::ControlNetFile.

Definition at line 246 of file ControlNetFileV0002.cpp.

References _FILEINFO_, Isis::PvlKeyword::addComment(), Isis::PvlObject::addObject(), Isis::Angle::degrees(), Isis::PvlObject::findObject(), Isis::SurfacePoint::GetLatitude(), Isis::SurfacePoint::GetLatSigmaDistance(), Isis::SurfacePoint::GetLocalRadius(), Isis::SurfacePoint::GetLongitude(), Isis::SurfacePoint::GetLonSigmaDistance(), Isis::PvlContainer::hasKeyword(), Isis::Distance::meters(), Isis::SurfacePoint::SetRadii(), Isis::SurfacePoint::SetRectangular(), Isis::SurfacePoint::SetRectangularMatrix(), Isis::ControlMeasureLogData::ToKeyword(), and Isis::toString().

Referenced by Isis::ControlNetDiff::compare(), and Isis::ControlNetVersioner::Write().

void Isis::ControlNetFileV0002::Write ( const FileName file) const
virtual

This writes the binary file that is in memory to disk.

The behavior of this method is undefined if the required data is not set (ControlNetVersioner::LatestPvlToBinary guarantees they are, and this should never be called for old versions).

Parameters
fileThe filename of the binary file to be written

Implements Isis::ControlNetFile.

Definition at line 146 of file ControlNetFileV0002.cpp.

References _FILEINFO_, Isis::PvlObject::addGroup(), Isis::PvlContainer::addKeyword(), Isis::PvlObject::addObject(), and Isis::toString().

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

Member Data Documentation

QList<ControlPointFileEntryV0002>* Isis::ControlNetFileV0002::p_controlPoints
private

All of the control points.

Definition at line 91 of file ControlNetFileV0002.h.

Referenced by GetNetworkPoints().

ControlNetFileHeaderV0002* Isis::ControlNetFileV0002::p_networkHeader
private

This contains global cnet information...

Definition at line 88 of file ControlNetFileV0002.h.

Referenced by GetNetworkHeader().


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