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
[legend]
Collaboration diagram for Isis::ControlNetFileV0002:
Collaboration graph
[legend]

List of all members.

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.
ControlNetFileHeaderV0002 & GetNetworkHeader ()
 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

ControlNetFileHeaderV0002 * p_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

For internal use only.

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

Definition at line 55 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 71 of file ControlNetFileV0002.h.

References p_networkHeader.

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

QList<ControlPointFileEntryV0002>& Isis::ControlNetFileV0002::GetNetworkPoints (  )  [inline]
void Isis::ControlNetFileV0002::Read ( const Pvl header,
const FileName file 
) [virtual]

Reads binary version 2.

For internal use only.

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

Implements Isis::ControlNetFile.

Definition at line 51 of file ControlNetFileV0002.cpp.

References _FILEINFO_, Isis::PvlObject::FindObject(), Isis::IException::Io, p_controlPoints, p_networkHeader, Isis::IException::Programmer, and size.

Pvl Isis::ControlNetFileV0002::ToPvl (  )  const [virtual]

Converts binary control net version 2 to pvl version 3.

For internal use only.

History:
2011-05-02 Debbie A. Cook - Converted to version pvl 3 instead of 2
History:
2011-05-09 Tracie Sucharski - Add comments for printing apriori and adjusted values as lat/lon/radius, and sigmas.
History:
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.
History:
2011-06-07 Tracie Sucharski/Debbie A. Cook - Point Type changes Ground ----> Fixed Tie ----> Free

Implements Isis::ControlNetFile.

Definition at line 245 of file ControlNetFileV0002.cpp.

References _FILEINFO_, Isis::PvlKeyword::AddComment(), Isis::PvlObject::AddObject(), Isis::NaifStatus::CheckErrors(), 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::Distance::meters(), Isis::Displacement::Meters, p_controlPoints, p_networkHeader, Isis::SurfacePoint::SetRadii(), Isis::SurfacePoint::SetRectangular(), Isis::Projection::TargetRadii(), Isis::ControlMeasureLogData::ToKeyword(), Isis::toString(), Isis::PvlObject::Traverse, and Isis::IException::Unknown.

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:
file The filename of the binary file to be written

Implements Isis::ControlNetFile.

Definition at line 145 of file ControlNetFileV0002.cpp.

References _FILEINFO_, Isis::PvlObject::AddGroup(), Isis::PvlContainer::AddKeyword(), Isis::PvlObject::AddObject(), Isis::IException::Io, p_controlPoints, p_networkHeader, size, 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 87 of file ControlNetFileV0002.h.

Referenced by GetNetworkPoints(), Read(), ToPvl(), and Write().

ControlNetFileHeaderV0002* Isis::ControlNetFileV0002::p_networkHeader [private]

This contains global cnet information...

Definition at line 84 of file ControlNetFileV0002.h.

Referenced by GetNetworkHeader(), Read(), ToPvl(), and Write().


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