OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
Public Member Functions | Private Attributes | Friends | List of all members
ossimRpfBoundaryRectRecord Class Reference

#include <ossimRpfBoundaryRectRecord.h>

Public Member Functions

 ossimRpfBoundaryRectRecord ()
 default constructor More...
 
 ossimRpfBoundaryRectRecord (const ossimRpfBoundaryRectRecord &ojb)
 copy constructor More...
 
const ossimRpfBoundaryRectRecordoperator= (const ossimRpfBoundaryRectRecord &rhs)
 assignment operator More...
 
 ~ossimRpfBoundaryRectRecord ()
 destructor More...
 
ossimErrorCode parseStream (std::istream &in, ossimByteOrder byteOrder)
 
void writeStream (std::ostream &out)
 Write method. More...
 
void clearFields ()
 
ossimString getProductType () const
 
ossimString getScale () const
 
ossimString getCompressionRatio () const
 
ossim_uint32 getNumberOfFramesVertical () const
 
ossim_uint32 getNumberOfFramesHorizontal () const
 
const ossimRpfCoverageSectiongetCoverage () const
 
void setCoverage (const ossimRpfCoverageSection &coverage)
 
char getZone () const
 
std::ostream & print (std::ostream &out, ossimString prefix) const
 prints to out. More...
 

Private Attributes

char m_productDataType [6]
 
char m_compressionRatio [6]
 
char m_scale [13]
 
char m_zone
 
char m_producer [6]
 
ossimRpfCoverageSection m_coverage
 
ossim_uint32 m_numberOfFramesNorthSouth
 
ossim_uint32 m_numberOfFramesEastWest
 

Friends

std::ostream & operator<< (std::ostream &out, const ossimRpfBoundaryRectRecord &data)
 

Detailed Description

Definition at line 20 of file ossimRpfBoundaryRectRecord.h.

Constructor & Destructor Documentation

◆ ossimRpfBoundaryRectRecord() [1/2]

ossimRpfBoundaryRectRecord::ossimRpfBoundaryRectRecord ( )

default constructor

Definition at line 25 of file ossimRpfBoundaryRectRecord.cpp.

References clearFields().

◆ ossimRpfBoundaryRectRecord() [2/2]

ossimRpfBoundaryRectRecord::ossimRpfBoundaryRectRecord ( const ossimRpfBoundaryRectRecord ojb)

copy constructor

Definition at line 35 of file ossimRpfBoundaryRectRecord.cpp.

References m_compressionRatio, m_producer, m_productDataType, and m_scale.

36  :
37  m_zone(obj.m_zone),
38  m_coverage(obj.m_coverage),
39  m_numberOfFramesNorthSouth(obj.m_numberOfFramesNorthSouth),
40  m_numberOfFramesEastWest(obj.m_numberOfFramesEastWest)
41 {
42  memcpy(m_productDataType, obj.m_productDataType, 6);
43  memcpy(m_compressionRatio, obj.m_compressionRatio, 6);
44  memcpy(m_scale, obj.m_scale, 13);
45  memcpy(m_producer, obj.m_producer, 6);
46 }
ossimRpfCoverageSection m_coverage

◆ ~ossimRpfBoundaryRectRecord()

ossimRpfBoundaryRectRecord::~ossimRpfBoundaryRectRecord ( )

destructor

Definition at line 64 of file ossimRpfBoundaryRectRecord.cpp.

65 {
66 }

Member Function Documentation

◆ clearFields()

void ossimRpfBoundaryRectRecord::clearFields ( )

Definition at line 149 of file ossimRpfBoundaryRectRecord.cpp.

References ossimRpfCoverageSection::clearFields(), m_compressionRatio, m_coverage, m_numberOfFramesEastWest, m_numberOfFramesNorthSouth, m_producer, m_productDataType, m_scale, and m_zone.

Referenced by ossimRpfBoundaryRectRecord(), and parseStream().

150 {
151  memset(m_productDataType, ' ', 5);
152  memset(m_compressionRatio, ' ', 5);
153  memset(m_scale, ' ', 12);
154  memset(m_producer, ' ', 5);
158 
159  m_productDataType[5] = '\0';
160  m_compressionRatio[5] = '\0';
161  m_scale[12] = '\0';
162  m_producer[5] = '\0';
163  m_zone = ' ';
164 }
ossimRpfCoverageSection m_coverage

◆ getCompressionRatio()

ossimString ossimRpfBoundaryRectRecord::getCompressionRatio ( ) const
inline

◆ getCoverage()

const ossimRpfCoverageSection& ossimRpfBoundaryRectRecord::getCoverage ( ) const
inline

◆ getNumberOfFramesHorizontal()

ossim_uint32 ossimRpfBoundaryRectRecord::getNumberOfFramesHorizontal ( ) const
inline

◆ getNumberOfFramesVertical()

ossim_uint32 ossimRpfBoundaryRectRecord::getNumberOfFramesVertical ( ) const
inline

◆ getProductType()

ossimString ossimRpfBoundaryRectRecord::getProductType ( ) const
inline

◆ getScale()

ossimString ossimRpfBoundaryRectRecord::getScale ( ) const
inline

◆ getZone()

char ossimRpfBoundaryRectRecord::getZone ( ) const
inline

Definition at line 59 of file ossimRpfBoundaryRectRecord.h.

References m_zone.

Referenced by ossimRpfTocEntry::getImageGeometry().

◆ operator=()

const ossimRpfBoundaryRectRecord & ossimRpfBoundaryRectRecord::operator= ( const ossimRpfBoundaryRectRecord rhs)

◆ parseStream()

ossimErrorCode ossimRpfBoundaryRectRecord::parseStream ( std::istream &  in,
ossimByteOrder  byteOrder 
)

Definition at line 68 of file ossimRpfBoundaryRectRecord.cpp.

References ossimString::afterPos(), ossimString::beforePos(), ossim::byteOrder(), ossimString::c_str(), clearFields(), ossimString::empty(), m_compressionRatio, m_coverage, m_numberOfFramesEastWest, m_numberOfFramesNorthSouth, m_producer, m_productDataType, m_scale, m_zone, ossimErrorCodes::OSSIM_ERROR, ossimErrorCodes::OSSIM_OK, ossimRpfCoverageSection::parseStream(), ossimString::size(), ossimEndian::swap(), ossimString::toInt(), and ossimString::trim().

Referenced by ossimRpfTocEntry::parseStream().

69 {
70  if(in)
71  {
72  clearFields();
73 
74  in.read((char*)&m_productDataType, 5);
75  in.read((char*)&m_compressionRatio, 5);
76  in.read((char*)&m_scale, 12);
77  in.read((char*)&m_zone, 1);
78  in.read((char*)&m_producer, 5);
79 
80  ossimString tmpScale(m_scale);
81  tmpScale.trim();
82  if (!tmpScale.empty())
83  {
84  if (tmpScale.beforePos(2) != "1:")
85  {
86  if (tmpScale.afterPos(tmpScale.size()-2)!="M" &&
87  tmpScale.afterPos(tmpScale.size()-2)!="K")
88  {
89  int tmpScaleValue = tmpScale.toInt();
90  if (tmpScaleValue > 0)
91  {
92  tmpScale = ossimString("1:" + tmpScale);
93  memset(m_scale, ' ', 12);
94  memcpy(m_scale, tmpScale.c_str(), 12);
95  }
96  }
97  }
98  }
99 
101 
102  in.read((char*)&m_numberOfFramesNorthSouth, 4);
103  in.read((char*)&m_numberOfFramesEastWest, 4);
104 
105  if( ossim::byteOrder() != byteOrder )
106  {
107  ossimEndian anEndian;
109  anEndian.swap(m_numberOfFramesEastWest);
110  }
111  }
112  else
113  {
115  }
116 
118 }
ossimRpfCoverageSection m_coverage
ossimErrorCode parseStream(std::istream &in, ossimByteOrder byteOrder)
static const ossimErrorCode OSSIM_OK
OSSIM_DLL ossimByteOrder byteOrder()
Definition: ossimCommon.cpp:54
static const ossimErrorCode OSSIM_ERROR
void swap(ossim_sint8 &)
Definition: ossimEndian.h:26

◆ print()

std::ostream & ossimRpfBoundaryRectRecord::print ( std::ostream &  out,
ossimString  prefix 
) const

prints to out.

Parameters
outStream to print to.
prefixIf not empty will be prepended onto the keyword.

Definition at line 171 of file ossimRpfBoundaryRectRecord.cpp.

References m_compressionRatio, m_coverage, m_numberOfFramesEastWest, m_numberOfFramesNorthSouth, m_producer, m_productDataType, m_scale, m_zone, and ossimRpfCoverageSection::print().

Referenced by operator<<(), and ossimRpfTocEntry::print().

172 {
173  // Capture the original flags.
174  std::ios_base::fmtflags f = out.flags();
175 
176  out << std::setiosflags(std::ios_base::fixed)
177  << std::setprecision(12)
178  << prefix << "ProductDataType: "
179  << m_productDataType << "\n"
180  << prefix << "CompressionRatio: "
181  << m_compressionRatio << "\n"
182  << prefix << "Scale: "
183  << m_scale << "\n"
184  << prefix << "Zone: "
185  << m_zone << "\n"
186  << prefix << "Producer: "
187  << m_producer << "\n";
188 
189  m_coverage.print(out, prefix);
190 
191  out << prefix << "NumberOfFramesNorthSouth: "
192  << m_numberOfFramesNorthSouth << "\n"
193  << prefix << "NumberOfFramesEastWest: "
195  << "\n";
196 
197  // Reset flags.
198  out.setf(f);
199 
200  return out;
201 }
ossimRpfCoverageSection m_coverage
std::ostream & print(std::ostream &out, const std::string &prefix=std::string()) const
print method that outputs a key/value type format adding prefix to keys.

◆ setCoverage()

void ossimRpfBoundaryRectRecord::setCoverage ( const ossimRpfCoverageSection coverage)

Definition at line 166 of file ossimRpfBoundaryRectRecord.cpp.

References m_coverage.

167 {
168  m_coverage = coverage;
169 }
ossimRpfCoverageSection m_coverage

◆ writeStream()

void ossimRpfBoundaryRectRecord::writeStream ( std::ostream &  out)

Write method.

Parameters
outStream to write to.

Definition at line 120 of file ossimRpfBoundaryRectRecord.cpp.

References ossimEndian::getSystemEndianType(), m_compressionRatio, m_coverage, m_numberOfFramesEastWest, m_numberOfFramesNorthSouth, m_producer, m_productDataType, m_scale, m_zone, OSSIM_BIG_ENDIAN, ossimEndian::swap(), and ossimRpfCoverageSection::writeStream().

121 {
122  ossimEndian anEndian;
123  if( anEndian.getSystemEndianType() != OSSIM_BIG_ENDIAN )
124  {
125  // Always write out big endian.
127  anEndian.swap(m_numberOfFramesEastWest);
128  }
129 
130  out.write((char*)&m_productDataType, 5);
131  out.write((char*)&m_compressionRatio, 5);
132  out.write((char*)&m_scale, 12);
133  out.write((char*)&m_zone, 1);
134  out.write((char*)&m_producer, 5);
135 
136  m_coverage.writeStream(out);
137 
138  out.write((char*)&m_numberOfFramesNorthSouth, 4);
139  out.write((char*)&m_numberOfFramesEastWest, 4);
140 
141  if( anEndian.getSystemEndianType() != OSSIM_BIG_ENDIAN )
142  {
143  // Swap back to native byte order.
145  anEndian.swap(m_numberOfFramesEastWest);
146  }
147 }
ossimRpfCoverageSection m_coverage
ossimByteOrder getSystemEndianType() const
Definition: ossimEndian.h:78
void writeStream(std::ostream &out)
Write method.
void swap(ossim_sint8 &)
Definition: ossimEndian.h:26

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  out,
const ossimRpfBoundaryRectRecord data 
)
friend

Definition at line 20 of file ossimRpfBoundaryRectRecord.cpp.

21 {
22  return data.print( out, std::string() );
23 }
std::ostream & print(std::ostream &out, ossimString prefix) const
prints to out.

Member Data Documentation

◆ m_compressionRatio

char ossimRpfBoundaryRectRecord::m_compressionRatio[6]
private

◆ m_coverage

ossimRpfCoverageSection ossimRpfBoundaryRectRecord::m_coverage
private

◆ m_numberOfFramesEastWest

ossim_uint32 ossimRpfBoundaryRectRecord::m_numberOfFramesEastWest
private

Four byte fields.

Definition at line 104 of file ossimRpfBoundaryRectRecord.h.

Referenced by clearFields(), getNumberOfFramesHorizontal(), operator=(), parseStream(), print(), and writeStream().

◆ m_numberOfFramesNorthSouth

ossim_uint32 ossimRpfBoundaryRectRecord::m_numberOfFramesNorthSouth
private

Four byte fields.

Definition at line 99 of file ossimRpfBoundaryRectRecord.h.

Referenced by clearFields(), getNumberOfFramesVertical(), operator=(), parseStream(), print(), and writeStream().

◆ m_producer

char ossimRpfBoundaryRectRecord::m_producer[6]
private

is a 5 byte asci field.

Definition at line 92 of file ossimRpfBoundaryRectRecord.h.

Referenced by clearFields(), operator=(), ossimRpfBoundaryRectRecord(), parseStream(), print(), and writeStream().

◆ m_productDataType

char ossimRpfBoundaryRectRecord::m_productDataType[6]
private

◆ m_scale

char ossimRpfBoundaryRectRecord::m_scale[13]
private

◆ m_zone

char ossimRpfBoundaryRectRecord::m_zone
private

Definition at line 87 of file ossimRpfBoundaryRectRecord.h.

Referenced by clearFields(), getZone(), parseStream(), print(), and writeStream().


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