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

#include <ossimLasHdr.h>

Public Member Functions

 ossimLasHdr ()
 
 ossimLasHdr (const ossimLasHdr &hdr)
 
const ossimLasHdroperator= (const ossimLasHdr &hdr)
 
 ~ossimLasHdr ()
 
bool checkSignature (std::istream &in) const
 Checks for LASF in first four bytes. More...
 
void readStream (std::istream &in)
 Method to initialize from input stream. More...
 
void writeStream (std::ostream &out)
 Writes header to stream. More...
 
std::ostream & print (std::ostream &out) const
 print method. More...
 
void getKeywordlist (ossimKeywordlist &kwl) const
 
bool getGpsTimeTypeBit () const
 
bool getWaveforDataPacketsInternalBit () const
 
bool getWaveforDataPacketsExternalBit () const
 
bool getReturnsSyntheticallyGeneratedBit () const
 
bool getWktBit () const
 
std::string getProjectIdGuid () const
 
std::string getVersion () const
 
std::string getSystemIndentifier () const
 
std::string getGeneratingSoftware () const
 
ossim_uint16 getHeaderSize () const
 
ossim_uint32 getOffsetToPointData () const
 
ossim_uint32 getNumberOfVlrs () const
 
ossim_uint8 getPointDataFormatId () const
 
ossim_uint64 getNumberOfPoints () const
 
ossim_uint64 getNumberOfPoints (ossim_uint32 entry) const
 Gets number of points for entry where entry is synonymous returns. More...
 
const ossim_float64getScaleFactorX () const
 
const ossim_float64getScaleFactorY () const
 
const ossim_float64getScaleFactorZ () const
 
const ossim_float64getOffsetX () const
 
const ossim_float64getOffsetY () const
 
const ossim_float64getOffsetZ () const
 
const ossim_float64getMinX () const
 
const ossim_float64getMinY () const
 
const ossim_float64getMinZ () const
 
const ossim_float64getMaxX () const
 
const ossim_float64getMaxY () const
 
const ossim_float64getMaxZ () const
 

Private Member Functions

void swap ()
 Performs a swap if system byte order is not little endian. More...
 
bool versionGreaterThan (ossim_uint8 major, ossim_uint8 minor) const
 Test version. More...
 

Private Attributes

char m_fileSignature [5]
 
ossim_uint16 m_fileSourceId
 
ossim_uint16 m_globalEncoding
 
ossim_uint32 m_projectIdGuidData1
 
ossim_uint16 m_projectIdGuidData2
 
ossim_uint16 m_projectIdGuidData3
 
ossim_uint8 m_projectIdGuidData4 [8]
 
ossim_uint8 m_versionMajor
 
ossim_uint8 m_versionMinor
 
char m_systemIndentifier [32]
 
char m_generatingSoftware [32]
 
ossim_uint16 m_fileCreationDay
 
ossim_uint16 m_fileCreateionYear
 
ossim_uint16 m_headerSize
 
ossim_uint32 m_offsetToPointData
 
ossim_uint32 m_numberOfVariableLengthRecords
 
ossim_uint8 m_pointDataFormatId
 
ossim_uint16 m_pointDataRecordLength
 
ossim_uint32 m_legacyNumberOfPointRecords
 
ossim_uint32 m_legacyNumberOfPointsByReturn [5]
 
ossim_float64 m_xScaleFactor
 
ossim_float64 m_yScaleFactor
 
ossim_float64 m_zScaleFactor
 
ossim_float64 m_xOffset
 
ossim_float64 m_yOffset
 
ossim_float64 m_zOffset
 
ossim_float64 m_maxX
 
ossim_float64 m_minX
 
ossim_float64 m_maxY
 
ossim_float64 m_minY
 
ossim_float64 m_maxZ
 
ossim_float64 m_minZ
 
ossim_uint64 m_startOfWaveformDataPacket
 
ossim_uint64 m_startOfExtendedVariableLengthRecords
 
ossim_uint32 m_numberOfExtendedVariableLengthRecords
 
ossim_uint64 m_numberOfPointRecords
 
ossim_uint64 m_numberOfPointsByReturn [15]
 

Friends

OSSIM_DLL std::ostream & operator<< (std::ostream &out, const ossimLasHdr &hdr)
 Convenience operator<< method. More...
 

Detailed Description

Definition at line 24 of file ossimLasHdr.h.

Constructor & Destructor Documentation

◆ ossimLasHdr() [1/2]

ossimLasHdr::ossimLasHdr ( )

Definition at line 28 of file ossimLasHdr.cpp.

References m_fileSignature, m_generatingSoftware, m_legacyNumberOfPointsByReturn, m_numberOfPointsByReturn, m_projectIdGuidData4, and m_systemIndentifier.

28  :
29  m_fileSourceId(0),
34  m_versionMajor(0),
35  m_versionMinor(0),
38  m_headerSize(0),
44  m_xScaleFactor(0.0),
45  m_yScaleFactor(0.0),
46  m_zScaleFactor(0.0),
47  m_xOffset(0.0),
48  m_yOffset(0.0),
49  m_zOffset(0.0),
50  m_maxX(0.0),
51  m_minX(0.0),
52  m_maxY(0.0),
53  m_minY(0.0),
54  m_maxZ(0.0),
55  m_minZ(0.0),
60 {
61  // Initialize arrays:
62  strncpy(m_fileSignature, "LASF", 4);
63  m_fileSignature[4] = '\0';
64  memset(m_projectIdGuidData4, 0, 8);
65  memset(m_systemIndentifier, 0, 32);
66  memset(m_generatingSoftware, 0, 32);
67  memset(m_legacyNumberOfPointsByReturn, 0, 20); // 5 uint32s(5 x 4)
68  memset(m_numberOfPointsByReturn, 0, 120); // 15 unint64s(15 x 8)
69 }
ossim_uint8 m_projectIdGuidData4[8]
Definition: ossimLasHdr.h:153
ossim_float64 m_yOffset
Definition: ossimLasHdr.h:171
ossim_float64 m_minY
Definition: ossimLasHdr.h:176
ossim_uint16 m_globalEncoding
Definition: ossimLasHdr.h:149
ossim_uint8 m_versionMajor
Definition: ossimLasHdr.h:154
ossim_uint64 m_numberOfPointRecords
Definition: ossimLasHdr.h:182
ossim_float64 m_xOffset
Definition: ossimLasHdr.h:170
ossim_float64 m_minX
Definition: ossimLasHdr.h:174
ossim_uint32 m_numberOfExtendedVariableLengthRecords
Definition: ossimLasHdr.h:181
ossim_uint16 m_fileCreationDay
Definition: ossimLasHdr.h:158
ossim_uint16 m_projectIdGuidData3
Definition: ossimLasHdr.h:152
ossim_uint64 m_startOfWaveformDataPacket
Definition: ossimLasHdr.h:179
ossim_uint8 m_versionMinor
Definition: ossimLasHdr.h:155
ossim_float64 m_maxX
Definition: ossimLasHdr.h:173
ossim_uint32 m_projectIdGuidData1
Definition: ossimLasHdr.h:150
ossim_uint32 m_legacyNumberOfPointRecords
Definition: ossimLasHdr.h:165
ossim_float64 m_zOffset
Definition: ossimLasHdr.h:172
ossim_uint16 m_fileCreateionYear
Definition: ossimLasHdr.h:159
ossim_uint64 m_startOfExtendedVariableLengthRecords
Definition: ossimLasHdr.h:180
char m_generatingSoftware[32]
Definition: ossimLasHdr.h:157
ossim_float64 m_minZ
Definition: ossimLasHdr.h:178
ossim_uint32 m_numberOfVariableLengthRecords
Definition: ossimLasHdr.h:162
char m_systemIndentifier[32]
Definition: ossimLasHdr.h:156
ossim_float64 m_maxZ
Definition: ossimLasHdr.h:177
char m_fileSignature[5]
Definition: ossimLasHdr.h:147
ossim_uint16 m_fileSourceId
Definition: ossimLasHdr.h:148
ossim_uint64 m_numberOfPointsByReturn[15]
Definition: ossimLasHdr.h:183
ossim_float64 m_yScaleFactor
Definition: ossimLasHdr.h:168
ossim_float64 m_zScaleFactor
Definition: ossimLasHdr.h:169
ossim_uint16 m_pointDataRecordLength
Definition: ossimLasHdr.h:164
ossim_uint32 m_offsetToPointData
Definition: ossimLasHdr.h:161
ossim_uint16 m_headerSize
Definition: ossimLasHdr.h:160
ossim_float64 m_maxY
Definition: ossimLasHdr.h:175
ossim_uint8 m_pointDataFormatId
Definition: ossimLasHdr.h:163
ossim_uint16 m_projectIdGuidData2
Definition: ossimLasHdr.h:151
ossim_uint32 m_legacyNumberOfPointsByReturn[5]
Definition: ossimLasHdr.h:166
ossim_float64 m_xScaleFactor
Definition: ossimLasHdr.h:167

◆ ossimLasHdr() [2/2]

ossimLasHdr::ossimLasHdr ( const ossimLasHdr hdr)

Definition at line 71 of file ossimLasHdr.cpp.

References m_fileSignature, m_generatingSoftware, m_legacyNumberOfPointsByReturn, m_numberOfPointsByReturn, m_projectIdGuidData4, and m_systemIndentifier.

71  :
90  m_xOffset(hdr.m_xOffset),
91  m_yOffset(hdr.m_yOffset),
92  m_zOffset(hdr.m_zOffset),
93  m_maxX(hdr.m_maxX),
94  m_minX(hdr.m_minX),
95  m_maxY(hdr.m_maxY),
96  m_minY(hdr.m_minY),
97  m_maxZ(hdr.m_maxZ),
98  m_minZ(hdr.m_minZ),
103 {
104  // Copy arrays.
105  memcpy((void*)m_fileSignature, (void*)(hdr.m_fileSignature), 4);
106  memcpy((void*)m_projectIdGuidData4, (void*)(hdr.m_projectIdGuidData4), 8);
107  memcpy((void*)m_systemIndentifier, (void*)(hdr.m_systemIndentifier), 32);
108  memcpy((void*)m_generatingSoftware, (void*)(hdr.m_generatingSoftware), 32);
109  memcpy((void*)m_legacyNumberOfPointsByReturn, (void*)(hdr.m_legacyNumberOfPointsByReturn), 20);
110  memcpy((void*)m_numberOfPointsByReturn, (void*)(hdr.m_numberOfPointsByReturn), 120);
111 }
ossim_uint8 m_projectIdGuidData4[8]
Definition: ossimLasHdr.h:153
ossim_float64 m_yOffset
Definition: ossimLasHdr.h:171
ossim_float64 m_minY
Definition: ossimLasHdr.h:176
ossim_uint16 m_globalEncoding
Definition: ossimLasHdr.h:149
ossim_uint8 m_versionMajor
Definition: ossimLasHdr.h:154
ossim_uint64 m_numberOfPointRecords
Definition: ossimLasHdr.h:182
ossim_float64 m_xOffset
Definition: ossimLasHdr.h:170
ossim_float64 m_minX
Definition: ossimLasHdr.h:174
ossim_uint32 m_numberOfExtendedVariableLengthRecords
Definition: ossimLasHdr.h:181
ossim_uint16 m_fileCreationDay
Definition: ossimLasHdr.h:158
ossim_uint16 m_projectIdGuidData3
Definition: ossimLasHdr.h:152
ossim_uint64 m_startOfWaveformDataPacket
Definition: ossimLasHdr.h:179
ossim_uint8 m_versionMinor
Definition: ossimLasHdr.h:155
ossim_float64 m_maxX
Definition: ossimLasHdr.h:173
ossim_uint32 m_projectIdGuidData1
Definition: ossimLasHdr.h:150
ossim_uint32 m_legacyNumberOfPointRecords
Definition: ossimLasHdr.h:165
ossim_float64 m_zOffset
Definition: ossimLasHdr.h:172
ossim_uint16 m_fileCreateionYear
Definition: ossimLasHdr.h:159
ossim_uint64 m_startOfExtendedVariableLengthRecords
Definition: ossimLasHdr.h:180
char m_generatingSoftware[32]
Definition: ossimLasHdr.h:157
ossim_float64 m_minZ
Definition: ossimLasHdr.h:178
ossim_uint32 m_numberOfVariableLengthRecords
Definition: ossimLasHdr.h:162
char m_systemIndentifier[32]
Definition: ossimLasHdr.h:156
ossim_float64 m_maxZ
Definition: ossimLasHdr.h:177
char m_fileSignature[5]
Definition: ossimLasHdr.h:147
ossim_uint16 m_fileSourceId
Definition: ossimLasHdr.h:148
ossim_uint64 m_numberOfPointsByReturn[15]
Definition: ossimLasHdr.h:183
ossim_float64 m_yScaleFactor
Definition: ossimLasHdr.h:168
ossim_float64 m_zScaleFactor
Definition: ossimLasHdr.h:169
ossim_uint16 m_pointDataRecordLength
Definition: ossimLasHdr.h:164
ossim_uint32 m_offsetToPointData
Definition: ossimLasHdr.h:161
ossim_uint16 m_headerSize
Definition: ossimLasHdr.h:160
ossim_float64 m_maxY
Definition: ossimLasHdr.h:175
ossim_uint8 m_pointDataFormatId
Definition: ossimLasHdr.h:163
ossim_uint16 m_projectIdGuidData2
Definition: ossimLasHdr.h:151
ossim_uint32 m_legacyNumberOfPointsByReturn[5]
Definition: ossimLasHdr.h:166
ossim_float64 m_xScaleFactor
Definition: ossimLasHdr.h:167

◆ ~ossimLasHdr()

ossimLasHdr::~ossimLasHdr ( )

Definition at line 163 of file ossimLasHdr.cpp.

164 {
165 }

Member Function Documentation

◆ checkSignature()

bool ossimLasHdr::checkSignature ( std::istream &  in) const

Checks for LASF in first four bytes.

Returns
true if first four bytes are LASF.

Definition at line 167 of file ossimLasHdr.cpp.

Referenced by ossimLasInfo::open(), and ossimLasInfo::print().

168 {
169  bool result = false;
170  char SIG[4];
171  in.read(SIG, 4);
172  if ( (SIG[0] == 'L') && (SIG[1] == 'A') &&
173  (SIG[2] == 'S') && (SIG[3] == 'F') )
174  {
175  result = true;
176  }
177  return result;
178 }

◆ getGeneratingSoftware()

std::string ossimLasHdr::getGeneratingSoftware ( ) const
Returns
The generating software string.

Definition at line 473 of file ossimLasHdr.cpp.

References m_generatingSoftware.

Referenced by getKeywordlist().

474 {
475  std::string s;
476  s.reserve(32);
477  for (int i=0; i<32; ++i)
478  {
479  s.push_back(m_generatingSoftware[i]);
480  }
481  return s;
482 }
char m_generatingSoftware[32]
Definition: ossimLasHdr.h:157

◆ getGpsTimeTypeBit()

bool ossimLasHdr::getGpsTimeTypeBit ( ) const
Returns
True if bit 0 of m_globalEncoding is set, false if not.

Definition at line 405 of file ossimLasHdr.cpp.

References m_globalEncoding.

Referenced by getKeywordlist().

406 {
407  // Test the first bit:
408  std::bitset<1> bs( m_globalEncoding );
409  return bs.test(0);
410 }
ossim_uint16 m_globalEncoding
Definition: ossimLasHdr.h:149

◆ getHeaderSize()

ossim_uint16 ossimLasHdr::getHeaderSize ( ) const
Returns
Size of this header in bytes.

Definition at line 484 of file ossimLasHdr.cpp.

References m_headerSize.

485 {
486  return m_headerSize;
487 }
ossim_uint16 m_headerSize
Definition: ossimLasHdr.h:160

◆ getKeywordlist()

void ossimLasHdr::getKeywordlist ( ossimKeywordlist kwl) const

Definition at line 323 of file ossimLasHdr.cpp.

References ossimKeywordlist::add(), getGeneratingSoftware(), getGpsTimeTypeBit(), getProjectIdGuid(), getReturnsSyntheticallyGeneratedBit(), getSystemIndentifier(), getVersion(), getWaveforDataPacketsExternalBit(), getWaveforDataPacketsInternalBit(), getWktBit(), m_fileCreateionYear, m_fileCreationDay, m_fileSourceId, m_headerSize, m_legacyNumberOfPointRecords, m_legacyNumberOfPointsByReturn, m_maxX, m_maxY, m_maxZ, m_minX, m_minY, m_minZ, m_numberOfPointRecords, m_numberOfPointsByReturn, m_numberOfVariableLengthRecords, m_offsetToPointData, m_pointDataFormatId, m_pointDataRecordLength, m_startOfWaveformDataPacket, m_xOffset, m_xScaleFactor, m_yOffset, m_yScaleFactor, m_zOffset, m_zScaleFactor, and versionGreaterThan().

Referenced by print().

324 {
325  kwl.add("las.file_source_id", m_fileSourceId);
326 
327  //---
328  // m_globalEncoding is a bit encoding so we output bit at a time:
329  // At the time of this coding only first four bits used.
330  //---
331 
332  // 1.2:
333  kwl.add("las.gps_time_type", (getGpsTimeTypeBit()?"1":"0") );
334 
335  if ( versionGreaterThan( 1, 2 ) )
336  {
337  // Added in 1.3:
338  kwl.add("las.waveform_data_packets_internal", (getWaveforDataPacketsInternalBit()?"1":"0") );
339  kwl.add("las.waveform_data_packets_external", (getWaveforDataPacketsExternalBit()?"1":"0") );
340  kwl.add("las.synthetically_generated", (getReturnsSyntheticallyGeneratedBit()?"1":"0") );
341  }
342 
343  if ( versionGreaterThan( 1, 3 ) )
344  {
345  // 1.4:
346  kwl.add("las.wkt", (getWktBit()?"1":"0") );
347  }
348 
349  kwl.add("las.project_id_guid", getProjectIdGuid().c_str());
350 
351  kwl.add("las.version", getVersion().c_str());
352 
353  kwl.add("las.system_indentifier", getSystemIndentifier().c_str());
354  kwl.add("las.generating_software", getGeneratingSoftware().c_str());
355 
356  kwl.add("las.file_creation_day", m_fileCreationDay);
357  kwl.add("las.file_creation_year", m_fileCreateionYear);
358 
359  kwl.add("las.header_size", m_headerSize);
360  kwl.add("las.offset_to_point_data", m_offsetToPointData );
361  kwl.add("las.number_of_variable_length_records", m_numberOfVariableLengthRecords);
362  kwl.add("las.point_data_format_id", m_pointDataFormatId);
363  kwl.add("las.point_data_record_length", m_pointDataRecordLength);
364 
365  kwl.add("las.x_scale_factor", m_xScaleFactor);
366  kwl.add("las.y_scale_factor", m_yScaleFactor);
367  kwl.add("las.z_scale_factor", m_zScaleFactor);
368 
369  kwl.add("las.x_offset", m_xOffset);
370  kwl.add("las.y_offset", m_yOffset);
371  kwl.add("las.z_offset", m_zOffset);
372 
373  kwl.add("las.max_x", m_maxX);
374  kwl.add("las.min_x", m_minX);
375  kwl.add("las.max_y", m_maxY);
376  kwl.add("las.min_y", m_minY);
377  kwl.add("las.max_z", m_maxZ);
378  kwl.add("las.min_z", m_minZ);
379 
380  kwl.add("las.start_of_wave_form_data", m_startOfWaveformDataPacket);
381 
382  if ( versionGreaterThan( 1, 3 ) )
383  {
384  kwl.add("las.number_of_point_records", m_numberOfPointRecords);
385  for (ossim_uint32 i = 0; i < 15; ++i)
386  {
388  os << "las.number_of_points_return" << (i+1);
389  kwl.add( os.str().c_str(), m_numberOfPointsByReturn[i] );
390  }
391  }
392  else
393  {
394  // Prior to 1.4:
395  kwl.add("las.number_of_point_records", m_legacyNumberOfPointRecords);
396  for (ossim_uint32 i = 0; i < 5; ++i)
397  {
399  os << "las.number_of_points_return" << (i+1);
400  kwl.add( os.str().c_str(), m_legacyNumberOfPointsByReturn[i] );
401  }
402  }
403 }
ossim_float64 m_yOffset
Definition: ossimLasHdr.h:171
ossim_float64 m_minY
Definition: ossimLasHdr.h:176
std::basic_ostringstream< char > ostringstream
Class for char output memory streams.
Definition: ossimIosFwd.h:35
ossim_uint64 m_numberOfPointRecords
Definition: ossimLasHdr.h:182
std::string getProjectIdGuid() const
ossim_float64 m_xOffset
Definition: ossimLasHdr.h:170
ossim_float64 m_minX
Definition: ossimLasHdr.h:174
ossim_uint16 m_fileCreationDay
Definition: ossimLasHdr.h:158
std::string getGeneratingSoftware() const
bool getWaveforDataPacketsInternalBit() const
ossim_uint64 m_startOfWaveformDataPacket
Definition: ossimLasHdr.h:179
void add(const char *prefix, const ossimKeywordlist &kwl, bool overwrite=true)
ossim_float64 m_maxX
Definition: ossimLasHdr.h:173
bool getWktBit() const
bool getGpsTimeTypeBit() const
bool versionGreaterThan(ossim_uint8 major, ossim_uint8 minor) const
Test version.
bool getWaveforDataPacketsExternalBit() const
ossim_uint32 m_legacyNumberOfPointRecords
Definition: ossimLasHdr.h:165
unsigned int ossim_uint32
ossim_float64 m_zOffset
Definition: ossimLasHdr.h:172
ossim_uint16 m_fileCreateionYear
Definition: ossimLasHdr.h:159
ossim_float64 m_minZ
Definition: ossimLasHdr.h:178
ossim_uint32 m_numberOfVariableLengthRecords
Definition: ossimLasHdr.h:162
ossim_float64 m_maxZ
Definition: ossimLasHdr.h:177
bool getReturnsSyntheticallyGeneratedBit() const
ossim_uint16 m_fileSourceId
Definition: ossimLasHdr.h:148
ossim_uint64 m_numberOfPointsByReturn[15]
Definition: ossimLasHdr.h:183
ossim_float64 m_yScaleFactor
Definition: ossimLasHdr.h:168
ossim_float64 m_zScaleFactor
Definition: ossimLasHdr.h:169
ossim_uint16 m_pointDataRecordLength
Definition: ossimLasHdr.h:164
ossim_uint32 m_offsetToPointData
Definition: ossimLasHdr.h:161
ossim_uint16 m_headerSize
Definition: ossimLasHdr.h:160
ossim_float64 m_maxY
Definition: ossimLasHdr.h:175
ossim_uint8 m_pointDataFormatId
Definition: ossimLasHdr.h:163
std::string getVersion() const
ossim_uint32 m_legacyNumberOfPointsByReturn[5]
Definition: ossimLasHdr.h:166
ossim_float64 m_xScaleFactor
Definition: ossimLasHdr.h:167
std::string getSystemIndentifier() const

◆ getMaxX()

const ossim_float64 & ossimLasHdr::getMaxX ( ) const

Definition at line 564 of file ossimLasHdr.cpp.

References m_maxX.

Referenced by ossimLasReader::initValues().

565 {
566  return m_maxX;
567 }
ossim_float64 m_maxX
Definition: ossimLasHdr.h:173

◆ getMaxY()

const ossim_float64 & ossimLasHdr::getMaxY ( ) const

Definition at line 569 of file ossimLasHdr.cpp.

References m_maxY.

Referenced by ossimLasReader::initValues().

570 {
571  return m_maxY;
572 }
ossim_float64 m_maxY
Definition: ossimLasHdr.h:175

◆ getMaxZ()

const ossim_float64 & ossimLasHdr::getMaxZ ( ) const

Definition at line 574 of file ossimLasHdr.cpp.

References m_maxZ.

Referenced by ossimLasReader::initValues().

575 {
576  return m_maxZ;
577 }
ossim_float64 m_maxZ
Definition: ossimLasHdr.h:177

◆ getMinX()

const ossim_float64 & ossimLasHdr::getMinX ( ) const

Definition at line 549 of file ossimLasHdr.cpp.

References m_minX.

Referenced by ossimLasReader::initValues().

550 {
551  return m_minX;
552 }
ossim_float64 m_minX
Definition: ossimLasHdr.h:174

◆ getMinY()

const ossim_float64 & ossimLasHdr::getMinY ( ) const

Definition at line 554 of file ossimLasHdr.cpp.

References m_minY.

Referenced by ossimLasReader::initValues().

555 {
556  return m_minY;
557 }
ossim_float64 m_minY
Definition: ossimLasHdr.h:176

◆ getMinZ()

const ossim_float64 & ossimLasHdr::getMinZ ( ) const

Definition at line 559 of file ossimLasHdr.cpp.

References m_minZ.

Referenced by ossimLasReader::initValues().

560 {
561  return m_minZ;
562 }
ossim_float64 m_minZ
Definition: ossimLasHdr.h:178

◆ getNumberOfPoints() [1/2]

ossim_uint64 ossimLasHdr::getNumberOfPoints ( ) const
Returns
The number of total points.

Definition at line 504 of file ossimLasHdr.cpp.

References m_numberOfPointRecords.

505 {
506  return m_numberOfPointRecords;
507 }
ossim_uint64 m_numberOfPointRecords
Definition: ossimLasHdr.h:182

◆ getNumberOfPoints() [2/2]

ossim_uint64 ossimLasHdr::getNumberOfPoints ( ossim_uint32  entry) const

Gets number of points for entry where entry is synonymous returns.

Returns
The number of points for entries 0 through 4.

Definition at line 509 of file ossimLasHdr.cpp.

References m_numberOfPointsByReturn.

510 {
511  ossim_uint64 result = 0;
512  if ( entry < 15 )
513  {
514  result = m_numberOfPointsByReturn[entry];
515  }
516  return result;
517 }
unsigned long long ossim_uint64
ossim_uint64 m_numberOfPointsByReturn[15]
Definition: ossimLasHdr.h:183

◆ getNumberOfVlrs()

ossim_uint32 ossimLasHdr::getNumberOfVlrs ( ) const
Returns
The number fo variable length records.

Definition at line 494 of file ossimLasHdr.cpp.

References m_numberOfVariableLengthRecords.

495 {
497 }
ossim_uint32 m_numberOfVariableLengthRecords
Definition: ossimLasHdr.h:162

◆ getOffsetToPointData()

ossim_uint32 ossimLasHdr::getOffsetToPointData ( ) const
Returns
Offset to point data.

Definition at line 489 of file ossimLasHdr.cpp.

References m_offsetToPointData.

Referenced by ossimLasReader::getTile(), and ossimLasReader::initValues().

490 {
491  return m_offsetToPointData;
492 }
ossim_uint32 m_offsetToPointData
Definition: ossimLasHdr.h:161

◆ getOffsetX()

const ossim_float64 & ossimLasHdr::getOffsetX ( ) const

Definition at line 534 of file ossimLasHdr.cpp.

References m_xOffset.

Referenced by ossimLasReader::getTile(), and ossimLasReader::initValues().

535 {
536  return m_xOffset;
537 }
ossim_float64 m_xOffset
Definition: ossimLasHdr.h:170

◆ getOffsetY()

const ossim_float64 & ossimLasHdr::getOffsetY ( ) const

Definition at line 539 of file ossimLasHdr.cpp.

References m_yOffset.

Referenced by ossimLasReader::getTile(), and ossimLasReader::initValues().

540 {
541  return m_yOffset;
542 }
ossim_float64 m_yOffset
Definition: ossimLasHdr.h:171

◆ getOffsetZ()

const ossim_float64 & ossimLasHdr::getOffsetZ ( ) const

Definition at line 544 of file ossimLasHdr.cpp.

References m_zOffset.

Referenced by ossimLasReader::getTile(), and ossimLasReader::initValues().

545 {
546  return m_zOffset;
547 }
ossim_float64 m_zOffset
Definition: ossimLasHdr.h:172

◆ getPointDataFormatId()

ossim_uint8 ossimLasHdr::getPointDataFormatId ( ) const
Returns
Point data format ID

Definition at line 499 of file ossimLasHdr.cpp.

References m_pointDataFormatId.

Referenced by ossimLasReader::getNewPointRecord().

500 {
501  return m_pointDataFormatId;
502 }
ossim_uint8 m_pointDataFormatId
Definition: ossimLasHdr.h:163

◆ getProjectIdGuid()

std::string ossimLasHdr::getProjectIdGuid ( ) const
Returns
The project ID GUID data, e.g.: 55b44da7-7c23-4f86-a54ec39e8f1d1ea1

Definition at line 440 of file ossimLasHdr.cpp.

References m_projectIdGuidData1, m_projectIdGuidData2, m_projectIdGuidData3, and m_projectIdGuidData4.

Referenced by getKeywordlist().

441 {
443  os << std::hex
444  << m_projectIdGuidData1 << "-"
445  << m_projectIdGuidData2 << "-"
446  << m_projectIdGuidData3 << "-";
447  for (int i=0; i<8; ++i)
448  {
450  os << uid;
451  }
452  return os.str();
453 }
ossim_uint8 m_projectIdGuidData4[8]
Definition: ossimLasHdr.h:153
std::basic_ostringstream< char > ostringstream
Class for char output memory streams.
Definition: ossimIosFwd.h:35
unsigned short ossim_uint16
ossim_uint16 m_projectIdGuidData3
Definition: ossimLasHdr.h:152
ossim_uint32 m_projectIdGuidData1
Definition: ossimLasHdr.h:150
ossim_uint16 m_projectIdGuidData2
Definition: ossimLasHdr.h:151

◆ getReturnsSyntheticallyGeneratedBit()

bool ossimLasHdr::getReturnsSyntheticallyGeneratedBit ( ) const
Returns
True if bit 3 of m_globalEncoding is set, false if not.

Definition at line 426 of file ossimLasHdr.cpp.

References m_globalEncoding.

Referenced by getKeywordlist().

427 {
428  // Test the fourth bit:
429  std::bitset<4> bs( m_globalEncoding );
430  return bs.test(3);
431 }
ossim_uint16 m_globalEncoding
Definition: ossimLasHdr.h:149

◆ getScaleFactorX()

const ossim_float64 & ossimLasHdr::getScaleFactorX ( ) const

Definition at line 519 of file ossimLasHdr.cpp.

References m_xScaleFactor.

Referenced by ossimLasReader::getTile(), and ossimLasReader::initValues().

520 {
521  return m_xScaleFactor;
522 }
ossim_float64 m_xScaleFactor
Definition: ossimLasHdr.h:167

◆ getScaleFactorY()

const ossim_float64 & ossimLasHdr::getScaleFactorY ( ) const

Definition at line 524 of file ossimLasHdr.cpp.

References m_yScaleFactor.

Referenced by ossimLasReader::getTile(), and ossimLasReader::initValues().

525 {
526  return m_yScaleFactor;
527 }
ossim_float64 m_yScaleFactor
Definition: ossimLasHdr.h:168

◆ getScaleFactorZ()

const ossim_float64 & ossimLasHdr::getScaleFactorZ ( ) const

Definition at line 529 of file ossimLasHdr.cpp.

References m_zScaleFactor.

Referenced by ossimLasReader::getTile(), and ossimLasReader::initValues().

530 {
531  return m_zScaleFactor;
532 }
ossim_float64 m_zScaleFactor
Definition: ossimLasHdr.h:169

◆ getSystemIndentifier()

std::string ossimLasHdr::getSystemIndentifier ( ) const
Returns
The system identifier string.

Definition at line 462 of file ossimLasHdr.cpp.

References m_systemIndentifier.

Referenced by getKeywordlist().

463 {
464  std::string s;
465  s.reserve(32);
466  for (int i=0; i<32; ++i)
467  {
468  s.push_back(m_systemIndentifier[i]);
469  }
470  return s;
471 }
char m_systemIndentifier[32]
Definition: ossimLasHdr.h:156

◆ getVersion()

std::string ossimLasHdr::getVersion ( ) const
Returns
The major and minor version, e.g.: 1.2

Definition at line 455 of file ossimLasHdr.cpp.

References m_versionMajor, and m_versionMinor.

Referenced by getKeywordlist().

456 {
458  os << int(m_versionMajor) << "." << int(m_versionMinor);
459  return os.str();
460 }
std::basic_ostringstream< char > ostringstream
Class for char output memory streams.
Definition: ossimIosFwd.h:35
ossim_uint8 m_versionMajor
Definition: ossimLasHdr.h:154
ossim_uint8 m_versionMinor
Definition: ossimLasHdr.h:155

◆ getWaveforDataPacketsExternalBit()

bool ossimLasHdr::getWaveforDataPacketsExternalBit ( ) const
Returns
True if bit 2 of m_globalEncoding is set, false if not.

Definition at line 419 of file ossimLasHdr.cpp.

References m_globalEncoding.

Referenced by getKeywordlist().

420 {
421  // Test the third bit:
422  std::bitset<3> bs( m_globalEncoding );
423  return bs.test(2);
424 }
ossim_uint16 m_globalEncoding
Definition: ossimLasHdr.h:149

◆ getWaveforDataPacketsInternalBit()

bool ossimLasHdr::getWaveforDataPacketsInternalBit ( ) const
Returns
True if bit 1 of m_globalEncoding is set, false if not.

Definition at line 412 of file ossimLasHdr.cpp.

References m_globalEncoding.

Referenced by getKeywordlist().

413 {
414  // Test the second bit:
415  std::bitset<2> bs( m_globalEncoding );
416  return bs.test(1);
417 }
ossim_uint16 m_globalEncoding
Definition: ossimLasHdr.h:149

◆ getWktBit()

bool ossimLasHdr::getWktBit ( ) const
Returns
True if bit 4 of m_globalEncoding is set, false if not.

Definition at line 433 of file ossimLasHdr.cpp.

References m_globalEncoding.

Referenced by getKeywordlist().

434 {
435  // Test the fith bit:
436  std::bitset<5> bs( m_globalEncoding );
437  return bs.test(4);
438 }
ossim_uint16 m_globalEncoding
Definition: ossimLasHdr.h:149

◆ operator=()

const ossimLasHdr & ossimLasHdr::operator= ( const ossimLasHdr hdr)

Definition at line 113 of file ossimLasHdr.cpp.

References m_fileCreateionYear, m_fileCreationDay, m_fileSignature, m_fileSourceId, m_generatingSoftware, m_globalEncoding, m_headerSize, m_legacyNumberOfPointRecords, m_legacyNumberOfPointsByReturn, m_maxX, m_maxY, m_maxZ, m_minX, m_minY, m_minZ, m_numberOfExtendedVariableLengthRecords, m_numberOfPointRecords, m_numberOfPointsByReturn, m_numberOfVariableLengthRecords, m_offsetToPointData, m_pointDataFormatId, m_pointDataRecordLength, m_projectIdGuidData1, m_projectIdGuidData2, m_projectIdGuidData3, m_projectIdGuidData4, m_startOfExtendedVariableLengthRecords, m_startOfWaveformDataPacket, m_systemIndentifier, m_versionMajor, m_versionMinor, m_xOffset, m_xScaleFactor, m_yOffset, m_yScaleFactor, m_zOffset, and m_zScaleFactor.

114 {
115  if (this != &hdr)
116  {
124  strncpy(m_systemIndentifier, hdr.m_systemIndentifier, 32);
125  strncpy(m_generatingSoftware, hdr.m_generatingSoftware, 32);
137  m_xOffset = hdr.m_xOffset;
138  m_yOffset = hdr.m_yOffset;
139  m_zOffset = hdr.m_zOffset;
140  m_maxX = hdr.m_maxX;
141  m_minX = hdr.m_minX;
142  m_maxY = hdr.m_maxY;
143  m_minY = hdr.m_minY;
144  m_maxZ = hdr.m_maxZ;
145  m_minZ = hdr.m_minZ;
150 
151  // Copy arrays.
152  memcpy((void*)m_fileSignature,(void*)(hdr.m_fileSignature), 4);
153  memcpy((void*)m_projectIdGuidData4, (void*)(hdr.m_projectIdGuidData4), 8);
154  memcpy((void*)m_systemIndentifier, (void*)(hdr.m_systemIndentifier), 32);
155  memcpy((void*)m_generatingSoftware, (void*)(hdr.m_generatingSoftware), 32);
156  memcpy((void*)m_legacyNumberOfPointsByReturn,
157  (void*)(hdr.m_legacyNumberOfPointsByReturn), 20);
158  memcpy((void*)m_numberOfPointsByReturn, (void*)(hdr.m_numberOfPointsByReturn), 120);
159  }
160  return *this;
161 }
ossim_uint8 m_projectIdGuidData4[8]
Definition: ossimLasHdr.h:153
ossim_float64 m_yOffset
Definition: ossimLasHdr.h:171
ossim_float64 m_minY
Definition: ossimLasHdr.h:176
ossim_uint16 m_globalEncoding
Definition: ossimLasHdr.h:149
ossim_uint8 m_versionMajor
Definition: ossimLasHdr.h:154
ossim_uint64 m_numberOfPointRecords
Definition: ossimLasHdr.h:182
ossim_float64 m_xOffset
Definition: ossimLasHdr.h:170
ossim_float64 m_minX
Definition: ossimLasHdr.h:174
ossim_uint32 m_numberOfExtendedVariableLengthRecords
Definition: ossimLasHdr.h:181
ossim_uint16 m_fileCreationDay
Definition: ossimLasHdr.h:158
ossim_uint16 m_projectIdGuidData3
Definition: ossimLasHdr.h:152
ossim_uint64 m_startOfWaveformDataPacket
Definition: ossimLasHdr.h:179
ossim_uint8 m_versionMinor
Definition: ossimLasHdr.h:155
ossim_float64 m_maxX
Definition: ossimLasHdr.h:173
ossim_uint32 m_projectIdGuidData1
Definition: ossimLasHdr.h:150
ossim_uint32 m_legacyNumberOfPointRecords
Definition: ossimLasHdr.h:165
ossim_float64 m_zOffset
Definition: ossimLasHdr.h:172
ossim_uint16 m_fileCreateionYear
Definition: ossimLasHdr.h:159
ossim_uint64 m_startOfExtendedVariableLengthRecords
Definition: ossimLasHdr.h:180
char m_generatingSoftware[32]
Definition: ossimLasHdr.h:157
ossim_float64 m_minZ
Definition: ossimLasHdr.h:178
ossim_uint32 m_numberOfVariableLengthRecords
Definition: ossimLasHdr.h:162
char m_systemIndentifier[32]
Definition: ossimLasHdr.h:156
ossim_float64 m_maxZ
Definition: ossimLasHdr.h:177
char m_fileSignature[5]
Definition: ossimLasHdr.h:147
ossim_uint16 m_fileSourceId
Definition: ossimLasHdr.h:148
ossim_uint64 m_numberOfPointsByReturn[15]
Definition: ossimLasHdr.h:183
ossim_float64 m_yScaleFactor
Definition: ossimLasHdr.h:168
ossim_float64 m_zScaleFactor
Definition: ossimLasHdr.h:169
ossim_uint16 m_pointDataRecordLength
Definition: ossimLasHdr.h:164
ossim_uint32 m_offsetToPointData
Definition: ossimLasHdr.h:161
ossim_uint16 m_headerSize
Definition: ossimLasHdr.h:160
ossim_float64 m_maxY
Definition: ossimLasHdr.h:175
ossim_uint8 m_pointDataFormatId
Definition: ossimLasHdr.h:163
ossim_uint16 m_projectIdGuidData2
Definition: ossimLasHdr.h:151
ossim_uint32 m_legacyNumberOfPointsByReturn[5]
Definition: ossimLasHdr.h:166
ossim_float64 m_xScaleFactor
Definition: ossimLasHdr.h:167

◆ print()

std::ostream & ossimLasHdr::print ( std::ostream &  out) const

print method.

Returns
std::ostream&

Definition at line 311 of file ossimLasHdr.cpp.

References getKeywordlist().

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

312 {
313  ossimKeywordlist kwl;
314  getKeywordlist( kwl );
315  return out << kwl;
316 }
Represents serializable keyword/value map.
void getKeywordlist(ossimKeywordlist &kwl) const

◆ readStream()

void ossimLasHdr::readStream ( std::istream &  in)

Method to initialize from input stream.

Input stream should be at beginning of file.

Parameters
inStream to read from.

Definition at line 180 of file ossimLasHdr.cpp.

References ossim::byteOrder(), m_fileCreateionYear, m_fileCreationDay, m_fileSignature, m_fileSourceId, m_generatingSoftware, m_globalEncoding, m_headerSize, m_legacyNumberOfPointRecords, m_legacyNumberOfPointsByReturn, m_maxX, m_maxY, m_maxZ, m_minX, m_minY, m_minZ, m_numberOfExtendedVariableLengthRecords, m_numberOfPointRecords, m_numberOfPointsByReturn, m_numberOfVariableLengthRecords, m_offsetToPointData, m_pointDataFormatId, m_pointDataRecordLength, m_projectIdGuidData1, m_projectIdGuidData2, m_projectIdGuidData3, m_projectIdGuidData4, m_startOfExtendedVariableLengthRecords, m_startOfWaveformDataPacket, m_systemIndentifier, m_versionMajor, m_versionMinor, m_xOffset, m_xScaleFactor, m_yOffset, m_yScaleFactor, m_zOffset, m_zScaleFactor, OSSIM_BIG_ENDIAN, swap(), and versionGreaterThan().

Referenced by ossimLasInfo::print().

181 {
182  in.read(m_fileSignature, 4);
183  in.read((char*)&m_fileSourceId, 2);
184  in.read((char*)&m_globalEncoding, 2);
185  in.read((char*)&m_projectIdGuidData1, 4);
186  in.read((char*)&m_projectIdGuidData2, 2);
187  in.read((char*)&m_projectIdGuidData3, 2);
188  in.read((char*)&m_projectIdGuidData4, 8);
189  in.read((char*)&m_versionMajor, 1);
190  in.read((char*)&m_versionMinor, 1);
191  in.read(m_systemIndentifier, 32);
192  in.read(m_generatingSoftware, 32);
193  in.read((char*)&m_fileCreationDay, 2);
194  in.read((char*)&m_fileCreateionYear, 2);
195  in.read((char*)&m_headerSize, 2);
196  in.read((char*)&m_offsetToPointData, 4);
197  in.read((char*)&m_numberOfVariableLengthRecords, 4);
198  in.read((char*)&m_pointDataFormatId, 1);
199  in.read((char*)&m_pointDataRecordLength, 2);
200  in.read((char*)&m_legacyNumberOfPointRecords, 4);
201  in.read((char*)&m_legacyNumberOfPointsByReturn, 20);
202  in.read((char*)&m_xScaleFactor, 8);
203  in.read((char*)&m_yScaleFactor, 8);
204  in.read((char*)&m_zScaleFactor, 8);
205  in.read((char*)&m_xOffset, 8);
206  in.read((char*)&m_yOffset, 8);
207  in.read((char*)&m_zOffset, 8);
208  in.read((char*)&m_maxX, 8);
209  in.read((char*)&m_minX, 8);
210  in.read((char*)&m_maxY, 8);
211  in.read((char*)&m_minY, 8);
212  in.read((char*)&m_maxZ, 8);
213  in.read((char*)&m_minZ, 8);
214 
215  // Version specific:
216  if ( versionGreaterThan( 1, 2 ) )
217  {
218  // Added in 1.3:
219  in.read((char*)&m_startOfWaveformDataPacket, 8);
220  }
221  if ( versionGreaterThan( 1, 3 ) )
222  {
223  // Added in 1.4:
224  in.read((char*)&m_startOfExtendedVariableLengthRecords, 8);
225  in.read((char*)&m_numberOfExtendedVariableLengthRecords, 4);
226  in.read((char*)&m_numberOfPointRecords, 8);
227  in.read((char*)&m_numberOfPointsByReturn, 120);
228  }
229 
231  {
232  swap();
233  }
234 
235  if ( !versionGreaterThan( 1, 3 ) ) // Less than 1.4
236  {
237  //---
238  // Copy legacy point count to 64 bit data members. This will allow LAS code
239  // to always go through same methods for point counts.
240  //---
242  for ( ossim_uint32 i = 0; i < 5; ++i )
243  {
245  }
246  }
247 }
ossim_uint8 m_projectIdGuidData4[8]
Definition: ossimLasHdr.h:153
ossim_float64 m_yOffset
Definition: ossimLasHdr.h:171
ossim_float64 m_minY
Definition: ossimLasHdr.h:176
ossim_uint16 m_globalEncoding
Definition: ossimLasHdr.h:149
ossim_uint8 m_versionMajor
Definition: ossimLasHdr.h:154
ossim_uint64 m_numberOfPointRecords
Definition: ossimLasHdr.h:182
ossim_float64 m_xOffset
Definition: ossimLasHdr.h:170
ossim_float64 m_minX
Definition: ossimLasHdr.h:174
ossim_uint32 m_numberOfExtendedVariableLengthRecords
Definition: ossimLasHdr.h:181
ossim_uint16 m_fileCreationDay
Definition: ossimLasHdr.h:158
OSSIM_DLL ossimByteOrder byteOrder()
Definition: ossimCommon.cpp:54
ossim_uint16 m_projectIdGuidData3
Definition: ossimLasHdr.h:152
ossim_uint64 m_startOfWaveformDataPacket
Definition: ossimLasHdr.h:179
ossim_uint8 m_versionMinor
Definition: ossimLasHdr.h:155
ossim_float64 m_maxX
Definition: ossimLasHdr.h:173
bool versionGreaterThan(ossim_uint8 major, ossim_uint8 minor) const
Test version.
ossim_uint32 m_projectIdGuidData1
Definition: ossimLasHdr.h:150
void swap()
Performs a swap if system byte order is not little endian.
ossim_uint32 m_legacyNumberOfPointRecords
Definition: ossimLasHdr.h:165
unsigned int ossim_uint32
ossim_float64 m_zOffset
Definition: ossimLasHdr.h:172
ossim_uint16 m_fileCreateionYear
Definition: ossimLasHdr.h:159
ossim_uint64 m_startOfExtendedVariableLengthRecords
Definition: ossimLasHdr.h:180
char m_generatingSoftware[32]
Definition: ossimLasHdr.h:157
ossim_float64 m_minZ
Definition: ossimLasHdr.h:178
ossim_uint32 m_numberOfVariableLengthRecords
Definition: ossimLasHdr.h:162
char m_systemIndentifier[32]
Definition: ossimLasHdr.h:156
ossim_float64 m_maxZ
Definition: ossimLasHdr.h:177
char m_fileSignature[5]
Definition: ossimLasHdr.h:147
ossim_uint16 m_fileSourceId
Definition: ossimLasHdr.h:148
ossim_uint64 m_numberOfPointsByReturn[15]
Definition: ossimLasHdr.h:183
ossim_float64 m_yScaleFactor
Definition: ossimLasHdr.h:168
ossim_float64 m_zScaleFactor
Definition: ossimLasHdr.h:169
ossim_uint16 m_pointDataRecordLength
Definition: ossimLasHdr.h:164
ossim_uint32 m_offsetToPointData
Definition: ossimLasHdr.h:161
ossim_uint16 m_headerSize
Definition: ossimLasHdr.h:160
ossim_float64 m_maxY
Definition: ossimLasHdr.h:175
ossim_uint8 m_pointDataFormatId
Definition: ossimLasHdr.h:163
ossim_uint16 m_projectIdGuidData2
Definition: ossimLasHdr.h:151
ossim_uint32 m_legacyNumberOfPointsByReturn[5]
Definition: ossimLasHdr.h:166
ossim_float64 m_xScaleFactor
Definition: ossimLasHdr.h:167

◆ swap()

void ossimLasHdr::swap ( )
private

Performs a swap if system byte order is not little endian.

Definition at line 579 of file ossimLasHdr.cpp.

References m_fileCreateionYear, m_fileCreationDay, m_fileSourceId, m_globalEncoding, m_headerSize, m_legacyNumberOfPointRecords, m_legacyNumberOfPointsByReturn, m_maxX, m_maxY, m_maxZ, m_minX, m_minY, m_minZ, m_numberOfExtendedVariableLengthRecords, m_numberOfPointRecords, m_numberOfPointsByReturn, m_numberOfVariableLengthRecords, m_offsetToPointData, m_pointDataRecordLength, m_projectIdGuidData1, m_projectIdGuidData2, m_projectIdGuidData3, m_startOfExtendedVariableLengthRecords, m_startOfWaveformDataPacket, m_xOffset, m_xScaleFactor, m_yOffset, m_yScaleFactor, m_zOffset, m_zScaleFactor, and ossimEndian::swap().

Referenced by readStream(), and writeStream().

580 {
581  ossimEndian endian;
582  endian.swap(m_fileSourceId);
583  endian.swap(m_globalEncoding);
584  endian.swap(m_projectIdGuidData1);
585  endian.swap(m_projectIdGuidData2);
586  endian.swap(m_projectIdGuidData3);
587  endian.swap(m_fileCreationDay);
588  endian.swap(m_fileCreateionYear);
589  endian.swap(m_headerSize);
590  endian.swap(m_offsetToPointData);
595  endian.swap(m_xScaleFactor);
596  endian.swap(m_yScaleFactor);
597  endian.swap(m_zScaleFactor);
598  endian.swap(m_xOffset);
599  endian.swap(m_yOffset);
600  endian.swap(m_zOffset);
601  endian.swap(m_maxX);
602  endian.swap(m_minX);
603  endian.swap(m_maxY);
604  endian.swap(m_minY);
605  endian.swap(m_maxZ);
606  endian.swap(m_minZ);
611  endian.swap(m_numberOfPointsByReturn, 15);
612 }
ossim_float64 m_yOffset
Definition: ossimLasHdr.h:171
ossim_float64 m_minY
Definition: ossimLasHdr.h:176
ossim_uint16 m_globalEncoding
Definition: ossimLasHdr.h:149
ossim_uint64 m_numberOfPointRecords
Definition: ossimLasHdr.h:182
ossim_float64 m_xOffset
Definition: ossimLasHdr.h:170
ossim_float64 m_minX
Definition: ossimLasHdr.h:174
ossim_uint32 m_numberOfExtendedVariableLengthRecords
Definition: ossimLasHdr.h:181
ossim_uint16 m_fileCreationDay
Definition: ossimLasHdr.h:158
ossim_uint16 m_projectIdGuidData3
Definition: ossimLasHdr.h:152
ossim_uint64 m_startOfWaveformDataPacket
Definition: ossimLasHdr.h:179
ossim_float64 m_maxX
Definition: ossimLasHdr.h:173
ossim_uint32 m_projectIdGuidData1
Definition: ossimLasHdr.h:150
ossim_uint32 m_legacyNumberOfPointRecords
Definition: ossimLasHdr.h:165
ossim_float64 m_zOffset
Definition: ossimLasHdr.h:172
ossim_uint16 m_fileCreateionYear
Definition: ossimLasHdr.h:159
ossim_uint64 m_startOfExtendedVariableLengthRecords
Definition: ossimLasHdr.h:180
ossim_float64 m_minZ
Definition: ossimLasHdr.h:178
ossim_uint32 m_numberOfVariableLengthRecords
Definition: ossimLasHdr.h:162
ossim_float64 m_maxZ
Definition: ossimLasHdr.h:177
ossim_uint16 m_fileSourceId
Definition: ossimLasHdr.h:148
ossim_uint64 m_numberOfPointsByReturn[15]
Definition: ossimLasHdr.h:183
ossim_float64 m_yScaleFactor
Definition: ossimLasHdr.h:168
ossim_float64 m_zScaleFactor
Definition: ossimLasHdr.h:169
ossim_uint16 m_pointDataRecordLength
Definition: ossimLasHdr.h:164
ossim_uint32 m_offsetToPointData
Definition: ossimLasHdr.h:161
ossim_uint16 m_headerSize
Definition: ossimLasHdr.h:160
ossim_float64 m_maxY
Definition: ossimLasHdr.h:175
void swap(ossim_sint8 &)
Definition: ossimEndian.h:26
ossim_uint16 m_projectIdGuidData2
Definition: ossimLasHdr.h:151
ossim_uint32 m_legacyNumberOfPointsByReturn[5]
Definition: ossimLasHdr.h:166
ossim_float64 m_xScaleFactor
Definition: ossimLasHdr.h:167

◆ versionGreaterThan()

bool ossimLasHdr::versionGreaterThan ( ossim_uint8  major,
ossim_uint8  minor 
) const
private

Test version.

Parameters
major
minor
Returns
true if m_versionMajor and m_versionMinor are greater than major and minor args.

Definition at line 614 of file ossimLasHdr.cpp.

References m_versionMajor, and m_versionMinor.

Referenced by getKeywordlist(), readStream(), and writeStream().

615 {
616  bool result = false;
617  if ( m_versionMajor == major )
618  {
619  result = m_versionMinor > minor;
620  }
621  else if ( m_versionMajor > major )
622  {
623  result = true;
624  }
625  return result;
626 }
ossim_uint8 m_versionMajor
Definition: ossimLasHdr.h:154
ossim_uint8 m_versionMinor
Definition: ossimLasHdr.h:155

◆ writeStream()

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

Writes header to stream.

Definition at line 249 of file ossimLasHdr.cpp.

References ossim::byteOrder(), m_fileCreateionYear, m_fileCreationDay, m_fileSignature, m_fileSourceId, m_generatingSoftware, m_globalEncoding, m_headerSize, m_legacyNumberOfPointRecords, m_legacyNumberOfPointsByReturn, m_maxX, m_maxY, m_maxZ, m_minX, m_minY, m_minZ, m_numberOfExtendedVariableLengthRecords, m_numberOfPointRecords, m_numberOfPointsByReturn, m_numberOfVariableLengthRecords, m_offsetToPointData, m_pointDataFormatId, m_pointDataRecordLength, m_projectIdGuidData1, m_projectIdGuidData2, m_projectIdGuidData3, m_projectIdGuidData4, m_startOfExtendedVariableLengthRecords, m_startOfWaveformDataPacket, m_systemIndentifier, m_versionMajor, m_versionMinor, m_xOffset, m_xScaleFactor, m_yOffset, m_yScaleFactor, m_zOffset, m_zScaleFactor, OSSIM_BIG_ENDIAN, swap(), and versionGreaterThan().

250 {
252  {
253  // Write little endian per spec.
254  swap();
255  }
256 
257  out.write(m_fileSignature, 4);
258  out.write((char*)&m_fileSourceId, 2);
259  out.write((char*)&m_globalEncoding, 2);
260  out.write((char*)&m_projectIdGuidData1, 4);
261  out.write((char*)&m_projectIdGuidData2, 2);
262  out.write((char*)&m_projectIdGuidData3, 2);
263  out.write((char*)&m_projectIdGuidData4, 8);
264  out.write((char*)&m_versionMajor, 1);
265  out.write((char*)&m_versionMinor, 1);
266  out.write(m_systemIndentifier, 32);
267  out.write(m_generatingSoftware, 32);
268  out.write((char*)&m_fileCreationDay, 2);
269  out.write((char*)&m_fileCreateionYear, 2);
270  out.write((char*)&m_headerSize, 2);
271  out.write((char*)&m_offsetToPointData, 4);
272  out.write((char*)&m_numberOfVariableLengthRecords, 4);
273  out.write((char*)&m_pointDataFormatId, 1);
274  out.write((char*)&m_pointDataRecordLength, 2);
275  out.write((char*)&m_legacyNumberOfPointRecords, 4);
276  out.write((char*)&m_legacyNumberOfPointsByReturn, 20);
277  out.write((char*)&m_xScaleFactor, 8);
278  out.write((char*)&m_yScaleFactor, 8);
279  out.write((char*)&m_zScaleFactor, 8);
280  out.write((char*)&m_xOffset, 8);
281  out.write((char*)&m_yOffset, 8);
282  out.write((char*)&m_zOffset, 8);
283  out.write((char*)&m_maxX, 8);
284  out.write((char*)&m_minX, 8);
285  out.write((char*)&m_maxY, 8);
286  out.write((char*)&m_minY, 8);
287  out.write((char*)&m_maxZ, 8);
288  out.write((char*)&m_minZ, 8);
289 
290  if ( versionGreaterThan( 1, 2 ) )
291  {
292  // Added in 1.3:
293  out.write((char*)&m_startOfWaveformDataPacket, 8);
294  }
295  if ( versionGreaterThan( 1, 3 ) )
296  {
297  // Added in 1.4:
298  out.write((char*)&m_startOfExtendedVariableLengthRecords, 8);
299  out.write((char*)&m_numberOfExtendedVariableLengthRecords, 4);
300  out.write((char*)&m_numberOfPointRecords, 8);
301  out.write((char*)&m_numberOfPointsByReturn, 120);
302  }
303 
305  {
306  // Swap back to native byte order if needed:
307  swap();
308  }
309 }
ossim_uint8 m_projectIdGuidData4[8]
Definition: ossimLasHdr.h:153
ossim_float64 m_yOffset
Definition: ossimLasHdr.h:171
ossim_float64 m_minY
Definition: ossimLasHdr.h:176
ossim_uint16 m_globalEncoding
Definition: ossimLasHdr.h:149
ossim_uint8 m_versionMajor
Definition: ossimLasHdr.h:154
ossim_uint64 m_numberOfPointRecords
Definition: ossimLasHdr.h:182
ossim_float64 m_xOffset
Definition: ossimLasHdr.h:170
ossim_float64 m_minX
Definition: ossimLasHdr.h:174
ossim_uint32 m_numberOfExtendedVariableLengthRecords
Definition: ossimLasHdr.h:181
ossim_uint16 m_fileCreationDay
Definition: ossimLasHdr.h:158
OSSIM_DLL ossimByteOrder byteOrder()
Definition: ossimCommon.cpp:54
ossim_uint16 m_projectIdGuidData3
Definition: ossimLasHdr.h:152
ossim_uint64 m_startOfWaveformDataPacket
Definition: ossimLasHdr.h:179
ossim_uint8 m_versionMinor
Definition: ossimLasHdr.h:155
ossim_float64 m_maxX
Definition: ossimLasHdr.h:173
bool versionGreaterThan(ossim_uint8 major, ossim_uint8 minor) const
Test version.
ossim_uint32 m_projectIdGuidData1
Definition: ossimLasHdr.h:150
void swap()
Performs a swap if system byte order is not little endian.
ossim_uint32 m_legacyNumberOfPointRecords
Definition: ossimLasHdr.h:165
ossim_float64 m_zOffset
Definition: ossimLasHdr.h:172
ossim_uint16 m_fileCreateionYear
Definition: ossimLasHdr.h:159
ossim_uint64 m_startOfExtendedVariableLengthRecords
Definition: ossimLasHdr.h:180
char m_generatingSoftware[32]
Definition: ossimLasHdr.h:157
ossim_float64 m_minZ
Definition: ossimLasHdr.h:178
ossim_uint32 m_numberOfVariableLengthRecords
Definition: ossimLasHdr.h:162
char m_systemIndentifier[32]
Definition: ossimLasHdr.h:156
ossim_float64 m_maxZ
Definition: ossimLasHdr.h:177
char m_fileSignature[5]
Definition: ossimLasHdr.h:147
ossim_uint16 m_fileSourceId
Definition: ossimLasHdr.h:148
ossim_uint64 m_numberOfPointsByReturn[15]
Definition: ossimLasHdr.h:183
ossim_float64 m_yScaleFactor
Definition: ossimLasHdr.h:168
ossim_float64 m_zScaleFactor
Definition: ossimLasHdr.h:169
ossim_uint16 m_pointDataRecordLength
Definition: ossimLasHdr.h:164
ossim_uint32 m_offsetToPointData
Definition: ossimLasHdr.h:161
ossim_uint16 m_headerSize
Definition: ossimLasHdr.h:160
ossim_float64 m_maxY
Definition: ossimLasHdr.h:175
ossim_uint8 m_pointDataFormatId
Definition: ossimLasHdr.h:163
ossim_uint16 m_projectIdGuidData2
Definition: ossimLasHdr.h:151
ossim_uint32 m_legacyNumberOfPointsByReturn[5]
Definition: ossimLasHdr.h:166
ossim_float64 m_xScaleFactor
Definition: ossimLasHdr.h:167

Friends And Related Function Documentation

◆ operator<<

OSSIM_DLL std::ostream& operator<< ( std::ostream &  out,
const ossimLasHdr hdr 
)
friend

Convenience operator<< method.

Definition at line 318 of file ossimLasHdr.cpp.

319 {
320  return hdr.print(out);
321 }
std::ostream & print(std::ostream &out) const
print method.

Member Data Documentation

◆ m_fileCreateionYear

ossim_uint16 ossimLasHdr::m_fileCreateionYear
private

Definition at line 159 of file ossimLasHdr.h.

Referenced by getKeywordlist(), operator=(), readStream(), swap(), and writeStream().

◆ m_fileCreationDay

ossim_uint16 ossimLasHdr::m_fileCreationDay
private

Definition at line 158 of file ossimLasHdr.h.

Referenced by getKeywordlist(), operator=(), readStream(), swap(), and writeStream().

◆ m_fileSignature

char ossimLasHdr::m_fileSignature[5]
private

Definition at line 147 of file ossimLasHdr.h.

Referenced by operator=(), ossimLasHdr(), readStream(), and writeStream().

◆ m_fileSourceId

ossim_uint16 ossimLasHdr::m_fileSourceId
private

Definition at line 148 of file ossimLasHdr.h.

Referenced by getKeywordlist(), operator=(), readStream(), swap(), and writeStream().

◆ m_generatingSoftware

char ossimLasHdr::m_generatingSoftware[32]
private

Definition at line 157 of file ossimLasHdr.h.

Referenced by getGeneratingSoftware(), operator=(), ossimLasHdr(), readStream(), and writeStream().

◆ m_globalEncoding

ossim_uint16 ossimLasHdr::m_globalEncoding
private

◆ m_headerSize

ossim_uint16 ossimLasHdr::m_headerSize
private

Definition at line 160 of file ossimLasHdr.h.

Referenced by getHeaderSize(), getKeywordlist(), operator=(), readStream(), swap(), and writeStream().

◆ m_legacyNumberOfPointRecords

ossim_uint32 ossimLasHdr::m_legacyNumberOfPointRecords
private

Definition at line 165 of file ossimLasHdr.h.

Referenced by getKeywordlist(), operator=(), readStream(), swap(), and writeStream().

◆ m_legacyNumberOfPointsByReturn

ossim_uint32 ossimLasHdr::m_legacyNumberOfPointsByReturn[5]
private

Definition at line 166 of file ossimLasHdr.h.

Referenced by getKeywordlist(), operator=(), ossimLasHdr(), readStream(), swap(), and writeStream().

◆ m_maxX

ossim_float64 ossimLasHdr::m_maxX
private

Definition at line 173 of file ossimLasHdr.h.

Referenced by getKeywordlist(), getMaxX(), operator=(), readStream(), swap(), and writeStream().

◆ m_maxY

ossim_float64 ossimLasHdr::m_maxY
private

Definition at line 175 of file ossimLasHdr.h.

Referenced by getKeywordlist(), getMaxY(), operator=(), readStream(), swap(), and writeStream().

◆ m_maxZ

ossim_float64 ossimLasHdr::m_maxZ
private

Definition at line 177 of file ossimLasHdr.h.

Referenced by getKeywordlist(), getMaxZ(), operator=(), readStream(), swap(), and writeStream().

◆ m_minX

ossim_float64 ossimLasHdr::m_minX
private

Definition at line 174 of file ossimLasHdr.h.

Referenced by getKeywordlist(), getMinX(), operator=(), readStream(), swap(), and writeStream().

◆ m_minY

ossim_float64 ossimLasHdr::m_minY
private

Definition at line 176 of file ossimLasHdr.h.

Referenced by getKeywordlist(), getMinY(), operator=(), readStream(), swap(), and writeStream().

◆ m_minZ

ossim_float64 ossimLasHdr::m_minZ
private

Definition at line 178 of file ossimLasHdr.h.

Referenced by getKeywordlist(), getMinZ(), operator=(), readStream(), swap(), and writeStream().

◆ m_numberOfExtendedVariableLengthRecords

ossim_uint32 ossimLasHdr::m_numberOfExtendedVariableLengthRecords
private

Definition at line 181 of file ossimLasHdr.h.

Referenced by operator=(), readStream(), swap(), and writeStream().

◆ m_numberOfPointRecords

ossim_uint64 ossimLasHdr::m_numberOfPointRecords
private

◆ m_numberOfPointsByReturn

ossim_uint64 ossimLasHdr::m_numberOfPointsByReturn[15]
private

◆ m_numberOfVariableLengthRecords

ossim_uint32 ossimLasHdr::m_numberOfVariableLengthRecords
private

Definition at line 162 of file ossimLasHdr.h.

Referenced by getKeywordlist(), getNumberOfVlrs(), operator=(), readStream(), swap(), and writeStream().

◆ m_offsetToPointData

ossim_uint32 ossimLasHdr::m_offsetToPointData
private

◆ m_pointDataFormatId

ossim_uint8 ossimLasHdr::m_pointDataFormatId
private

◆ m_pointDataRecordLength

ossim_uint16 ossimLasHdr::m_pointDataRecordLength
private

Definition at line 164 of file ossimLasHdr.h.

Referenced by getKeywordlist(), operator=(), readStream(), swap(), and writeStream().

◆ m_projectIdGuidData1

ossim_uint32 ossimLasHdr::m_projectIdGuidData1
private

Definition at line 150 of file ossimLasHdr.h.

Referenced by getProjectIdGuid(), operator=(), readStream(), swap(), and writeStream().

◆ m_projectIdGuidData2

ossim_uint16 ossimLasHdr::m_projectIdGuidData2
private

Definition at line 151 of file ossimLasHdr.h.

Referenced by getProjectIdGuid(), operator=(), readStream(), swap(), and writeStream().

◆ m_projectIdGuidData3

ossim_uint16 ossimLasHdr::m_projectIdGuidData3
private

Definition at line 152 of file ossimLasHdr.h.

Referenced by getProjectIdGuid(), operator=(), readStream(), swap(), and writeStream().

◆ m_projectIdGuidData4

ossim_uint8 ossimLasHdr::m_projectIdGuidData4[8]
private

Definition at line 153 of file ossimLasHdr.h.

Referenced by getProjectIdGuid(), operator=(), ossimLasHdr(), readStream(), and writeStream().

◆ m_startOfExtendedVariableLengthRecords

ossim_uint64 ossimLasHdr::m_startOfExtendedVariableLengthRecords
private

Definition at line 180 of file ossimLasHdr.h.

Referenced by operator=(), readStream(), swap(), and writeStream().

◆ m_startOfWaveformDataPacket

ossim_uint64 ossimLasHdr::m_startOfWaveformDataPacket
private

Definition at line 179 of file ossimLasHdr.h.

Referenced by getKeywordlist(), operator=(), readStream(), swap(), and writeStream().

◆ m_systemIndentifier

char ossimLasHdr::m_systemIndentifier[32]
private

Definition at line 156 of file ossimLasHdr.h.

Referenced by getSystemIndentifier(), operator=(), ossimLasHdr(), readStream(), and writeStream().

◆ m_versionMajor

ossim_uint8 ossimLasHdr::m_versionMajor
private

Definition at line 154 of file ossimLasHdr.h.

Referenced by getVersion(), operator=(), readStream(), versionGreaterThan(), and writeStream().

◆ m_versionMinor

ossim_uint8 ossimLasHdr::m_versionMinor
private

Definition at line 155 of file ossimLasHdr.h.

Referenced by getVersion(), operator=(), readStream(), versionGreaterThan(), and writeStream().

◆ m_xOffset

ossim_float64 ossimLasHdr::m_xOffset
private

Definition at line 170 of file ossimLasHdr.h.

Referenced by getKeywordlist(), getOffsetX(), operator=(), readStream(), swap(), and writeStream().

◆ m_xScaleFactor

ossim_float64 ossimLasHdr::m_xScaleFactor
private

Definition at line 167 of file ossimLasHdr.h.

Referenced by getKeywordlist(), getScaleFactorX(), operator=(), readStream(), swap(), and writeStream().

◆ m_yOffset

ossim_float64 ossimLasHdr::m_yOffset
private

Definition at line 171 of file ossimLasHdr.h.

Referenced by getKeywordlist(), getOffsetY(), operator=(), readStream(), swap(), and writeStream().

◆ m_yScaleFactor

ossim_float64 ossimLasHdr::m_yScaleFactor
private

Definition at line 168 of file ossimLasHdr.h.

Referenced by getKeywordlist(), getScaleFactorY(), operator=(), readStream(), swap(), and writeStream().

◆ m_zOffset

ossim_float64 ossimLasHdr::m_zOffset
private

Definition at line 172 of file ossimLasHdr.h.

Referenced by getKeywordlist(), getOffsetZ(), operator=(), readStream(), swap(), and writeStream().

◆ m_zScaleFactor

ossim_float64 ossimLasHdr::m_zScaleFactor
private

Definition at line 169 of file ossimLasHdr.h.

Referenced by getKeywordlist(), getScaleFactorZ(), operator=(), readStream(), swap(), and writeStream().


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