MrSID Decode SDK for LiDAR Reference Manual 1.1.4.4709

- Main Page
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
TXTPointReader Class Reference

TXTPointReader reads LiDAR-based Text files. More...

`#include <TXTPointReader.h>`

Inheritance diagram for TXTPointReader:
[legend]
Collaboration diagram for TXTPointReader:
[legend]

## Public Member Functions
void | init (const char *path, const char *format, size_t header, bool doFullInit)
| Initialize with filename and format string. More...
void | init (IO *io, const char *format, size_t header, bool doFullInit)
| Initialize with IO object and format string. More...
void | init (const char *path, const PointInfo &fieldInfo, size_t header, bool doFullInit)
| Initialize with filename and field list. More...
void | init (IO *io, const PointInfo &fieldInfo, size_t header, bool doFullInit)
| Initialize with IO object and field list. More...
void | initBoundsAndNumPoints (void)
| Setup the bounds and number of points. More...
const char * | getFileFormatString (void) const
| Get the file type and version. More...
void | loadMetadata (Metadata &metadata, bool sanitize) const
| Load the point clouds metadata. More...
double | getTotalWork (const Bounds &bounds, double fraction) const
| Get the amount of work needed to decode bounds. More...
PointIterator * | createIterator (const Bounds &bounds, double fraction, const PointInfo &pointInfo, ProgressDelegate *delegate) const
| Get a PointIterator for a given bounds. More...
Public Member Functions inherited from PointReader
const PointInfo & | getPointInfo (void) const
| Get the point information. More...
count_type | getNumPoints (void) const
| Get the number of points. More...
const char * | getWKT (void) const
| Get the spatial reference system. More...
void | overrideWKT (const char *wkt)
const Bounds & | getBounds (void) const
| Get the bounding box. More...
const double * | getScale (void) const
| Get the quantization scale. More...
const double * | getOffset (void) const
| Get the quantization offset. More...
char const *const * | getClassIdNames (void) const
| Get the classification names. More...
size_t | getNumClassIdNames (void) const
| Get the number of classification names. More...
Public Member Functions inherited from PointSource
size_t | getNumChannels (void) const
| Get the number of channels. More...
bool | hasChannel (const char *name) const
| Determine if there is a channel with a given name. More...
const ChannelInfo & | getChannel (size_t idx) const
| Access the channel info. More...
const ChannelInfo * | getChannel (const char *name) const
| Access the channel data. More...
size_t | read (const Bounds &bounds, PointData &points, ProgressDelegate *delegate) const
| Fill the point buffer with the best sample of the point cloud in bounds. More...
Public Member Functions inherited from Object
int | retain (void) const
| Increment the reference count by one. More...
int | release (void) const
| Decrement the reference count by one. More...

## Static Public Member Functions
static void | parseFormat (const char *format, PointInfo &fieldInfo)
| Build a ChannelInfo array form a format string. More...
static void | parseFormat (const char *format, PointInfo &fieldInfo, const PointInfo &pointInfo)
| Build a ChannelInfo array form a format string. More...
static void | parseQuantization (const char *format, PointInfo &fieldInfo)
| Update the quantization values of a PointInfo. More...

## Protected Member Functions
void | setBoundsAndNumPoints (bool doFullInit)
Protected Member Functions inherited from PointReader
void | setPointInfo (const PointInfo &pointInfo)
| Set the point information. More...
void | setNumPoints (count_type numPoints)
| Set the number of points in the point cloud. More...
void | setBounds (const Bounds &bounds)
| Set the bounding box of the point cloud. More...
void | setWKT (const char *wkt)
| Set the spatial reference system. More...
void | setQuantization (const double scale[3], const double offset[3])
| Set the quantization scale and offset. More...

## Protected Attributes
IO * | m_io
size_t | m_header
PointInfo | m_fieldInfo
double | m_totalWork
Protected Attributes inherited from PointReader
bool | m_ignoreNativeWKTMetadata

## Additional Inherited Members
Public Types inherited from PointSource
typedef lt_int64 | count_type

## Detailed Description

The TXTPointReader class reads point clouds from text files. Each line of the text file is point with the fields delimited by white space.

Definition at line 26 of file TXTPointReader.h.

## Member Function Documentation

PointIterator* TXTPointReader::createIterator | ( | const Bounds & | bounds,
|  | double | fraction,
|  | const PointInfo & | pointInfo,
|  | ProgressDelegate * | delegate
| ) |  | const
| virtual

This methods returns a PointIterator for the given bounds.

Parameters

  bounds | the region of interest (HUGE_VAL are handled)
  fraction | the fraction of the points you want (use 1.0 for all the points and use 0.1 to keep every tenth point)
  channelInfo | the list of channels to be extracted
  numChannels | the number of channels to be extracted
  delegate | a ProgressDelegate for feedback (can be NULL)

Implements PointSource.

const char* TXTPointReader::getFileFormatString | ( | void | ) |  | const
| virtual

This method returns a string the contains the File Type and version of the PointReader. For example for a MrSID file this will will return "MG4 4.0.0.1".

Implements PointReader.

double TXTPointReader::getTotalWork | ( | const Bounds & | bounds,
|  | double | fraction
| ) |  | const
| virtual

This method returns the amount of work needed to decode the points in bounds. getTotalWork() is used with ProgressDelegate to track the progress of a decode or encode.

Parameters

  bounds | the region of interest
  fraction | the fraction of the points you want (use 1.0 for all the points and use 0.1 to keep every tenth point)

Returns
  the work needed to decode bounds

Reimplemented from PointReader.

void TXTPointReader::init | ( | const char * | path,
|  | const char * | format,
|  | size_t | header,
|  | bool | doFullInit
| ) |  |

This method initializes the reader with a filename and format string.

Parameters

  path | the filename
  format | the channel layout format string, see TXTPointReader::parseString().
  header | the number of header lines to skip
  doFullInit | if true call initBoundsAndNumPoints()

void TXTPointReader::init | ( | IO * | io,
|  | const char * | format,
|  | size_t | header,
|  | bool | doFullInit
| ) |  |

This method initializes the reader with a IO object and format string.

Parameters

  io | the data source
  format | the channel layout format string, see TXTPointReader::parseString().
  header | the number of header lines to skip
  doFullInit | if true call initBoundsAndNumPoints()

void TXTPointReader::init | ( | const char * | path,
|  | const PointInfo & | fieldInfo,
|  | size_t | header,
|  | bool | doFullInit
| ) |  |

This method initializes the reader with a filename and field list.

Parameters

  path | the filename
  fieldInfo | a ChannelInfo array describing the column layout
  header | the number of header lines to skip
  doFullInit | if true call initBoundsAndNumPoints()

Note
  Use CHANNEL_NAME_Skip to skip a column.

void TXTPointReader::init | ( | IO * | io,
|  | const PointInfo & | fieldInfo,
|  | size_t | header,
|  | bool | doFullInit
| ) |  |

This method initializes the reader with IO object and field list.

Parameters

  io | the data source
  fieldInfo | a ChannelInfo array describing the column layout
  header | the number of header lines to skip
  doFullInit | if true call initBoundsAndNumPoints()

Note
  Use CHANNEL_NAME_Skip to skip a column.

void TXTPointReader::initBoundsAndNumPoints | ( | void | ) |  |

This method reads the input text file to figures out the number of points and the bounding box. This method can take some time. If the method has not be called getBounds() will return Bounds::Huge() and getNumPoints() will return 2**64 - 1.

void TXTPointReader::loadMetadata | ( | Metadata & | metadata,
|  | bool | sanitize
| ) |  | const
| virtual

This method loads the metadata for the point cloud. PointSource only load metadata on demand to reduce memory usage.

Parameters

  metadata | The metadata object to fill.
  sanitize | If true remove vendor-specific metadata that we don't understand for example, Merrick::102 ("Index to page of point records")

Implements PointSource.

static void TXTPointReader::parseFormat | ( | const char * | format,
|  | PointInfo & | fieldInfo
| ) |  |
| static

The function builds a ChannelInfo array based on the format string.

Format syntax:

- 'x' => CHANNEL_NAME_X, DATATYPE_FLOAT64
- 'y' => CHANNEL_NAME_Y, DATATYPE_FLOAT64
- 'z' => CHANNEL_NAME_Z, DATATYPE_FLOAT64
- 'i' => CHANNEL_NAME_Intensity, DATATYPE_UINT16
- 'r' => CHANNEL_NAME_ReturnNum, DATATYPE_UINT8
- 'n' => CHANNEL_NAME_NumReturns, DATATYPE_UINT8
- 'd' => CHANNEL_NAME_ScanDir, DATATYPE_UINT8
- 'e' => CHANNEL_NAME_EdgeFlightLine, DATATYPE_UINT8
- 'c' => CHANNEL_NAME_ClassId, DATATYPE_UINT8
- 'a' => CHANNEL_NAME_ScanAngle, DATATYPE_SINT8
- 'u' => CHANNEL_NAME_UserData, DATATYPE_UINT8
- 'p' => CHANNEL_NAME_SourceId, DATATYPE_UINT16
- 't' => CHANNEL_NAME_GPSTime_Week, DATATYPE_FLOAT64
- 'T' => CHANNEL_NAME_GPSTime_Adjusted, DATATYPE_FLOAT64
- 'R' => CHANNEL_NAME_Red, DATATYPE_UINT16
- 'G' => CHANNEL_NAME_Green, DATATYPE_UINT16
- 'B' => CHANNEL_NAME_Blue, DATATYPE_UINT16
- 's' => CHANNEL_NAME_Skip, Skip this field

Parameters

  format | the format string
  fieldInfo | the ouptut ChannelInfo array

static void TXTPointReader::parseFormat | ( | const char * | format,
|  | PointInfo & | fieldInfo,
|  | const PointInfo & | pointInfo
| ) |  |
| static

The function builds a ChannelInfo array based on the format string and the use the given ChannelInfo array's data types.

Parameters

  format | the format string
  fieldInfo | the ouptut ChannelInfo array
  pointInfo | the input ChannelInfo array

static void TXTPointReader::parseQuantization | ( | const char * | format,
|  | PointInfo & | fieldInfo
| ) |  |
| static

The function updates the quantization values of the PointInfo based on the format string.

Format syntax: <channel ids>=""><quantization scale>[,<channel ids>=""><quantization scale>]*

Where: <channel ids>=""> is one or more of the following values:

- 'x' => CHANNEL_NAME_X
- 'y' => CHANNEL_NAME_Y
- 'z' => CHANNEL_NAME_Z
- 't' => CHANNEL_NAME_GPSTime_Week | CHANNEL_NAME_GPSTime_Adjusted <quantization scale>=""> is a non-zero number

Example: xyz@0.nosp@m..01,t@0.0.nosp@m.0000.nosp@m.01 x@0.0.nosp@m.1,y@0.0.nosp@m.1,z@0.0.nosp@m.1,t@0.0.nosp@m.0000.nosp@m.01 (both have the same effect)

Parameters

  format | the format string
  fieldInfo | the PointInfo for updating

void TXTPointReader::setBoundsAndNumPoints | ( | bool | doFullInit) |  |
| protected

## Member Data Documentation

PointInfo TXTPointReader::m_fieldInfo
| protected

Definition at line 187 of file TXTPointReader.h.

size_t TXTPointReader::m_header
| protected

Definition at line 186 of file TXTPointReader.h.

IO* TXTPointReader::m_io
| protected

Definition at line 185 of file TXTPointReader.h.

double TXTPointReader::m_totalWork
| protected

Definition at line 188 of file TXTPointReader.h.

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

- TXTPointReader.h

LizardTech