When extracting points we use the PointData class to pass around parts of the point cloud among functions. This class is a group of ChannelData classes for the channels that are to be extracted.
A channel is all the values for a given attribute. For example, the X channel is all the X values for a given point cloud.
The three aspects of a channel are:
NOTE: For floating point data types, the number of bits of precision is the number of bits you need to store the quantized point value as an integer (for more information, see "Floating Point Quantization").
The MrSID Decode SDK handles the following channels:
X, Y and Z | (Required) The X, Y and Z values specify the physical location of the point. |
Intensity | Intensity is the integer representation of the pulse return magnitude. |
ReturnNum | The return number is a number that uniquely and sequentially identifies each return from a given output pulse. |
NumReturns | The number of returns is the total number of returns from an output pulse. |
ScanDir | The scan direction is the direction at which the scanner mirror was traveling at the time of the output pulse. |
EdgeFlightLine | The edge of flight line value is the last point on a given scan line before it changes direction. The edge of flight line has a value of 1 only when the point is at the end of a scan (when the mirror is not moving). |
ClassId | The classification identifier is an index into the ClassIdName array of the PointSource instance |
ScanAngle | The scan angle is an integer representation of the angle off of nadir at which the pulse was output. Negative scan angle value represents an angle to the port side of the plane, and a positive scan angle value represents an angle to the starboard side. Zero is nadir. |
UserData | The user data value is any integer value the user wishes to add. |
SourceId | The point source identifier identifies a file as the original source of the data. |
GPSTime | The GPS time value is the time at which a given point was sampled. |
Red, Green, Blue | The red, green and blue values represent the color of the point. |
<UserDefinedChannelName> | This channel can be used by the creator of the file for any additional data they would like to include. |
The PointInfo class is a group of ChannelInfo classes that are used to store information about all the channels of a point source. This class is used to obviate passing around arrays of ChannelInfo objects and the associated array lengths, which was required when using PointSource::createIterator() and PointData::init().
The ChannelData class is a derived class of ChannelInfo which adds a data buffer and length.
The PointData class is a group of ChannelData classes that are used in the point extraction calls PointIterator::getNextPoints() and PointSource::read().