LIDAR::LAS::FILE Class Reference

Support for reading and writing LAS format. More...

#include <mi32/lidarlasfile.h>

List of all members.

Public Types

enum  POINTCLASS { POINTCLASS_ClassMask = 0x1F, POINTCLASS_Synthetic = 0x20, POINTCLASS_KeyPoint = 0x40, POINTCLASS_Deleted = 0x80 }
enum  RECORDID {
  RECORDID_LASF_Projection_GeoKeyDirectoryTag = 34735, RECORDID_LASF_Projection_GeoDoubleParamsTag = 34736, RECORDID_LASF_Projection_GeoAsciiParamsTag = 34737, RECORDID_LASF_Spec_ClassificationLookup = 0,
  RECORDID_LASF_Spec_WaveformPacketDescBase = 100, RECORDID_LASF_Spec_WaveformPacketDescMax = 355
}
enum  USERID { USERID_Unknown = 0, USERID_LASF_Spec = 1, USERID_LASF_Projection = 2, USERID_MicroImages = 1172 }

Public Member Functions

 FILE ()
 ~FILE ()
ERRVALUE AddPointRecord (const POINTRECORD &pointrec)
ERRVALUE AddVariableRecord (const VARIABLEREC &record)
void Close ()
const FILEHDRGetHeader () const
UINT8 GetPointFormat () const
const WPOINT3DGetPointPrecision () const
UINT32 GetPointRecordCount () const
UINT16 GetPointRecordNumFields () const
UINT16 GetPointRecordSize () const
bool HasPointRecordColor () const
bool HasPointRecordTime () const
bool HasPointRecordWaveform () const
bool IsOpen () const
bool IsWritable () const
ERRVALUE Make (const FILEPATH &filepath, const FILEHDR &header)
ERRVALUE Open (const FILEPATH &filepath, FILE_ACCESS access=FILE_ACCESS_Read)
ERRVALUE ReadCoordRefSys (SPATREF::COORDREFSYS &CoordRefSys)
ERRVALUE ReadPointRecords (POINTARRAY &pointrecs, UINT32 NumPoints, UINT32 FirstPointIdx=UINT32_MAX)
ERRVALUE ReadVariableRecord (VARIABLEREC &variablerec, UINT32 RecordNum=UINT32_MAX)
ERRVALUE ReadVarLenRecHdr (SVLRHDR &header, UINT32 RecordNum=UINT32_MAX)
ERRVALUE SetupPointArray (POINTARRAY &PointArray, UINT32 NumPoints)
ERRVALUE UpdateHeaderExtents (const FILEHDR &header)
ERRVALUE UpdateHeaderNumPointsByReturn (const FILEHDR &header)
ERRVALUE WriteCoordRefSys (const SPATREF::COORDREFSYS &crs)
ERRVALUE WritePointRecord (const POINTRECORD &pointrec, UINT32 PointIdx)

Static Public Member Functions

static bool FileTypeIsFormat (FILE_RAW &file)
static void FileTypeRegister ()
static USERID UserIdStrToEnum (const char *UserIdStr)

Detailed Description

Support for reading and writing LAS format.

This class manages shared access to the same physical file within a single process so that all instances that reference that file will have correct data after any updates to the file.


Member Enumeration Documentation

Enumerator:
POINTCLASS_ClassMask 

Mask for point class.

POINTCLASS_Synthetic 

Point marked as 'synthetic'.

POINTCLASS_KeyPoint 

Point marked as 'key point'.

POINTCLASS_Deleted 

Point marked as 'deleted' (withheld).

Enumerator:
RECORDID_LASF_Projection_GeoKeyDirectoryTag 
RECORDID_LASF_Projection_GeoDoubleParamsTag 
RECORDID_LASF_Projection_GeoAsciiParamsTag 
RECORDID_LASF_Spec_ClassificationLookup 
RECORDID_LASF_Spec_WaveformPacketDescBase 
RECORDID_LASF_Spec_WaveformPacketDescMax 
Enumerator:
USERID_Unknown 
USERID_LASF_Spec 
USERID_LASF_Projection 
USERID_MicroImages 

Official ID number as provided by ASPRS.


Constructor & Destructor Documentation

LIDAR::LAS::FILE::FILE (  ) 

Default constructor.

LIDAR::LAS::FILE::~FILE (  ) 

Destructor.


Member Function Documentation

ERRVALUE LIDAR::LAS::FILE::AddPointRecord ( const POINTRECORD pointrec  ) 

Add point record.

Parameters:
pointrec Point record to add
ERRVALUE LIDAR::LAS::FILE::AddVariableRecord ( const VARIABLEREC record  ) 

Add variable record.

Parameters:
record Variable record to write
void LIDAR::LAS::FILE::Close (  ) 

Close file.

static bool LIDAR::LAS::FILE::FileTypeIsFormat ( FILE_RAW file  )  [static]

Determine if file is supported format.

Used as delegate for FILETYPE.

static void LIDAR::LAS::FILE::FileTypeRegister (  )  [static]

Register file type in common set.

const FILEHDR& LIDAR::LAS::FILE::GetHeader (  )  const

Get file header.

UINT8 LIDAR::LAS::FILE::GetPointFormat (  )  const [inline]

Get format of point records.

const WPOINT3D& LIDAR::LAS::FILE::GetPointPrecision (  )  const [inline]

Get precision (number of decimal places) for point coordinates.

UINT32 LIDAR::LAS::FILE::GetPointRecordCount (  )  const [inline]

Get number of point records.

UINT16 LIDAR::LAS::FILE::GetPointRecordNumFields (  )  const [inline]

Get number of fields in point record.

UINT16 LIDAR::LAS::FILE::GetPointRecordSize (  )  const [inline]

Get size of point record in bytes.

bool LIDAR::LAS::FILE::HasPointRecordColor (  )  const [inline]

Determine if has "color" field in point record.

bool LIDAR::LAS::FILE::HasPointRecordTime (  )  const [inline]

Determine if has "time" field in point record.

bool LIDAR::LAS::FILE::HasPointRecordWaveform (  )  const [inline]

Determine if has "waveform" fields in point record.

bool LIDAR::LAS::FILE::IsOpen (  )  const [inline]

Determine if file is open.

bool LIDAR::LAS::FILE::IsWritable (  )  const [inline]

Determine if file is writable.

ERRVALUE LIDAR::LAS::FILE::Make ( const FILEPATH filepath,
const FILEHDR header 
)

Make new LAS file.

Parameters:
header Header template, extents and point count fields will be ignored
ERRVALUE LIDAR::LAS::FILE::Open ( const FILEPATH filepath,
FILE_ACCESS  access = FILE_ACCESS_Read 
)

Open LAS file.

Parameters:
access Desired access, FILE_ACCESS_Read or FILE_ACCESS_ReadWrite
ERRVALUE LIDAR::LAS::FILE::ReadCoordRefSys ( SPATREF::COORDREFSYS CoordRefSys  ) 

Read Coordinate Reference System information if available.

Parameters:
CoordRefSys CRS returned, will be "undefined" if no info in file
ERRVALUE LIDAR::LAS::FILE::ReadPointRecords ( POINTARRAY pointrecs,
UINT32  NumPoints,
UINT32  FirstPointIdx = UINT32_MAX 
)

Read point records.

POINTRECORD instances that reference the specified POINTARRAY will be overwritten by new data or become invalid.

Parameters:
pointrecs Point records returned, will be attached/resized if necessary
NumPoints Number of points to read
FirstPointIdx Index of first point to read, UINT32_MAX to continue from previous read
ERRVALUE LIDAR::LAS::FILE::ReadVariableRecord ( VARIABLEREC variablerec,
UINT32  RecordNum = UINT32_MAX 
)

Read variable-length record.

Parameters:
variablerec Container for result
RecordNum Record number to read, UINT32_MAX to continue from previous or first record if no previous
ERRVALUE LIDAR::LAS::FILE::ReadVarLenRecHdr ( SVLRHDR header,
UINT32  RecordNum = UINT32_MAX 
)

Read variable-length record header.

Parameters:
header Header returned
RecordNum Record number to read, UINT32_MAX to continue from previous or first record if no previous
ERRVALUE LIDAR::LAS::FILE::SetupPointArray ( POINTARRAY PointArray,
UINT32  NumPoints 
)

Setup point array associated with file.

Done automatically when reading.

ERRVALUE LIDAR::LAS::FILE::UpdateHeaderExtents ( const FILEHDR header  ) 

Update extents to file from specified header.

ERRVALUE LIDAR::LAS::FILE::UpdateHeaderNumPointsByReturn ( const FILEHDR header  ) 

Update "number of points by return" to file from specified header.

static USERID LIDAR::LAS::FILE::UserIdStrToEnum ( const char *  UserIdStr  )  [static]

Convert user ID string to enum.

ERRVALUE LIDAR::LAS::FILE::WriteCoordRefSys ( const SPATREF::COORDREFSYS crs  ) 

Write CRS variable records.

ERRVALUE LIDAR::LAS::FILE::WritePointRecord ( const POINTRECORD pointrec,
UINT32  PointIdx 
)

Write point record.

Parameters:
pointrec Point record to write
PointIdx Index of point to write

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

Generated on Sun Oct 7 21:35:03 2012 for TNTsdk 2012 by  doxygen 1.6.1