|
E57 Simple API V1.0.312
Aug. 10, 2012
|
This is the E57 Reader class. More...
#include <E57Simple.h>
Public Member Functions | |
| Reader (const ustring &filePath) | |
| This function is the constructor for the reader class. | |
| bool | IsOpen (void) const |
| This function returns true if the file is open. | |
| bool | Close (void) const |
| This function closes the file. | |
| bool | GetE57Root (E57Root &fileHeader) const |
| This function returns the file header information. | |
| int32_t | GetImage2DCount (void) const |
| This function returns the total number of Picture Blocks. | |
| bool | ReadImage2D (int32_t imageIndex, Image2D &image2DHeader) const |
| This function returns the image2D header and positions the cursor. | |
| bool | GetImage2DSizes (int32_t imageIndex, e57::Image2DProjection &imageProjection, e57::Image2DType &imageType, int64_t &imageWidth, int64_t &imageHeight, int64_t &imageSize, e57::Image2DType &imageMaskType, e57::Image2DType &imageVisualType) const |
| This function returns the size of the image data. | |
| int64_t | ReadImage2DData (int32_t imageIndex, e57::Image2DProjection imageProjection, e57::Image2DType imageType, void *pBuffer, int64_t start, int64_t count) const |
| This function reads the block. | |
| int32_t | GetData3DCount (void) const |
| This function returns the total number of Data3D Blocks. | |
| bool | ReadData3D (int32_t dataIndex, Data3D &data3DHeader) const |
| This function returns the Data3D header and positions the cursor. | |
| bool | GetData3DSizes (int32_t dataIndex, int64_t &rowMax, int64_t &columnMax, int64_t &pointsSize, int64_t &groupsSize, int64_t &countSize, bool &bColumnIndex) const |
| This function returns the size of the point data. | |
| bool | ReadData3DGroupsData (int32_t dataIndex, int32_t groupCount, int64_t *idElementValue, int64_t *startPointIndex, int64_t *pointCount) const |
| This funtion writes out the group data. | |
| CompressedVectorReader | SetUpData3DPointsData (int32_t dataIndex, int64_t pointCount, double *cartesianX, double *cartesianY, double *cartesianZ, int8_t *cartesianInvalidState=NULL, double *intensity=NULL, int8_t *isIntensityInvalid=NULL, uint16_t *colorRed=NULL, uint16_t *colorGreen=NULL, uint16_t *colorBlue=NULL, int8_t *isColorInvalid=NULL, double *sphericalRange=NULL, double *sphericalAzimuth=NULL, double *sphericalElevation=NULL, int8_t *sphericalInvalidState=NULL, int32_t *rowIndex=NULL, int32_t *columnIndex=NULL, int8_t *returnIndex=NULL, int8_t *returnCount=NULL, double *timeStamp=NULL, int8_t *isTimeStampInvalid=NULL) const |
| This function sets up the point data fields. | |
| StructureNode | GetRawE57Root (void) |
| This function returns the file raw E57Root Structure Node. | |
| VectorNode | GetRawData3D (void) |
| This function returns the raw Data3D Vector Node. | |
| VectorNode | GetRawImages2D (void) |
| This function returns the raw Image2D Vector Node. | |
This is the E57 Reader class.
| Reader::Reader | ( | const ustring & | filePath | ) |
This function is the constructor for the reader class.
| filePath | file path string |
| int32_t Reader::GetData3DCount | ( | void | ) | const |
| bool Reader::GetData3DSizes | ( | int32_t | dataIndex, |
| int64_t & | rowMax, | ||
| int64_t & | columnMax, | ||
| int64_t & | pointsSize, | ||
| int64_t & | groupsSize, | ||
| int64_t & | countSize, | ||
| bool & | bColumnIndex | ||
| ) | const |
This function returns the size of the point data.
| dataIndex | This in the index into the images3D vector |
| rowMax | This is the maximum row size |
| columnMax | This is the maximum column size |
| pointsSize | This is the total number of point records |
| groupsSize | This is the total number of group reocrds |
| countSize | This is the maximum point count per group |
| bColumnIndex | This indicates that the idElementName is "columnIndex" |
| bool Reader::GetE57Root | ( | E57Root & | fileHeader | ) | const |
This function returns the file header information.
| fileHeader | This is the main header information |
| int32_t Reader::GetImage2DCount | ( | void | ) | const |
This function returns the total number of Picture Blocks.
| bool Reader::GetImage2DSizes | ( | int32_t | imageIndex, |
| e57::Image2DProjection & | imageProjection, | ||
| e57::Image2DType & | imageType, | ||
| int64_t & | imageWidth, | ||
| int64_t & | imageHeight, | ||
| int64_t & | imageSize, | ||
| e57::Image2DType & | imageMaskType, | ||
| e57::Image2DType & | imageVisualType | ||
| ) | const |
This function returns the size of the image data.
The e57::Image2DType identifies the format representation for the image data
enum Image2DType {
E57_NO_IMAGE = 0, //!< No image data
E57_JPEG_IMAGE = 1, //!< JPEG format image data.
E57_PNG_IMAGE = 2, //!< PNG format image data.
E57_PNG_IMAGE_MASK = 3 //!< PNG format image mask.
};
The e57::Image2DProjection identifies the representation for the image data
enum Image2DProjection {
E57_NO_PROJECTION = 0, //!< No representation for the image data is present
E57_VISUAL = 1, //!< VisualReferenceRepresentation for the image data
E57_PINHOLE = 2, //!< PinholeRepresentation for the image data
E57_SPHERICAL = 3, //!< SphericalRepresentation for the image data
E57_CYLINDRICAL = 4 //!< CylindricalRepresentation for the image data
};
| imageIndex | This in the index into the image2D vector |
| imageProjection | identifies the projection in the image2D. |
| imageType | identifies the image format of the projection. |
| imageWidth | The image width (in pixels). |
| imageHeight | The image height (in pixels). |
| imageSize | This is the total number of bytes for the image blob. |
| imageMaskType | This is E57_PNG_IMAGE_MASK if "imageMask" is defined in the projection |
| imageVisualType | This is image type of the VisualReferenceRepresentation if given. |
| VectorNode Reader::GetRawData3D | ( | void | ) |
| StructureNode Reader::GetRawE57Root | ( | void | ) |
| VectorNode Reader::GetRawImages2D | ( | void | ) |
| bool Reader::ReadData3D | ( | int32_t | dataIndex, |
| Data3D & | data3DHeader | ||
| ) | const |
| bool Reader::ReadData3DGroupsData | ( | int32_t | dataIndex, |
| int32_t | groupCount, | ||
| int64_t * | idElementValue, | ||
| int64_t * | startPointIndex, | ||
| int64_t * | pointCount | ||
| ) | const |
This funtion writes out the group data.
| dataIndex | data block index given by the NewData3D |
| groupCount | size of each of the buffers given |
| idElementValue | index for this group |
| startPointIndex | Starting index in to the "points" data vector for the groups |
| pointCount | size of the groups given |
| bool Reader::ReadImage2D | ( | int32_t | imageIndex, |
| Image2D & | image2DHeader | ||
| ) | const |
This function returns the image2D header and positions the cursor.
| imageIndex | This in the index into the image2D vector |
| image2DHeader | pointer to the Image2D structure to receive the picture information |
| int64_t Reader::ReadImage2DData | ( | int32_t | imageIndex, |
| e57::Image2DProjection | imageProjection, | ||
| e57::Image2DType | imageType, | ||
| void * | pBuffer, | ||
| int64_t | start, | ||
| int64_t | count | ||
| ) | const |
This function reads the block.
| imageIndex | picture block index |
| imageProjection | identifies the projection desired. |
| imageType | identifies the image format desired. |
| pBuffer | pointer the raw image buffer |
| start | position in the block to start reading |
| count | size of desired chuck or buffer size |
| CompressedVectorReader Reader::SetUpData3DPointsData | ( | int32_t | dataIndex, |
| int64_t | pointCount, | ||
| double * | cartesianX, | ||
| double * | cartesianY, | ||
| double * | cartesianZ, | ||
| int8_t * | cartesianInvalidState = NULL, |
||
| double * | intensity = NULL, |
||
| int8_t * | isIntensityInvalid = NULL, |
||
| uint16_t * | colorRed = NULL, |
||
| uint16_t * | colorGreen = NULL, |
||
| uint16_t * | colorBlue = NULL, |
||
| int8_t * | isColorInvalid = NULL, |
||
| double * | sphericalRange = NULL, |
||
| double * | sphericalAzimuth = NULL, |
||
| double * | sphericalElevation = NULL, |
||
| int8_t * | sphericalInvalidState = NULL, |
||
| int32_t * | rowIndex = NULL, |
||
| int32_t * | columnIndex = NULL, |
||
| int8_t * | returnIndex = NULL, |
||
| int8_t * | returnCount = NULL, |
||
| double * | timeStamp = NULL, |
||
| int8_t * | isTimeStampInvalid = NULL |
||
| ) | const |
This function sets up the point data fields.
All the non-NULL buffers in the call below have number of elements = pointCount. Call the CompressedVectorReader::read() until all data is read.
| dataIndex | data block index given by the NewData3D |
| pointCount | size of each element buffer. |
| cartesianX | pointer to a buffer with the X coordinate (in meters) of the point in Cartesian coordinates |
| cartesianY | pointer to a buffer with the Y coordinate (in meters) of the point in Cartesian coordinates |
| cartesianZ | pointer to a buffer with the Z coordinate (in meters) of the point in Cartesian coordinates |
| cartesianInvalidState | Value = 0 if the point is considered valid, 1 otherwise |
| intensity | pointer to a buffer with the Point response intensity. Unit is unspecified |
| isIntensityInvalid | Value = 0 if the intensity is considered valid, 1 otherwise |
| colorRed | pointer to a buffer with the Red color coefficient. Unit is unspecified |
| colorGreen | pointer to a buffer with the Green color coefficient. Unit is unspecified |
| colorBlue | pointer to a buffer with the Blue color coefficient. Unit is unspecified |
| isColorInvalid | Value = 0 if the color is considered valid, 1 otherwise |
| sphericalRange | pointer to a buffer with the range (in meters) of points in spherical coordinates. Shall be non-negative |
| sphericalAzimuth | pointer to a buffer with the Azimuth angle (in radians) of point in spherical coordinates |
| sphericalElevation | pointer to a buffer with the Elevation angle (in radians) of point in spherical coordinates |
| sphericalInvalidState | Value = 0 if the range is considered valid, 1 otherwise |
| rowIndex | pointer to a buffer with the row number of point (zero based). This is useful for data that is stored in a regular grid. Shall be in the interval (0, 2^31). |
| columnIndex | pointer to a buffer with the column number of point (zero based). This is useful for data that is stored in a regular grid. Shall be in the interval (0, 2^31). |
| returnIndex | pointer to a buffer with the number of this return (zero based). That is, 0 is the first return, 1 is the second, and so on. Shall be in the interval (0, returnCount). Only for multi-return sensors. |
| returnCount | pointer to a buffer with the total number of returns for the pulse that this corresponds to. Shall be in the interval (0, 2^7). Only for multi-return sensors. |
| timeStamp | pointer to a buffer with the time (in seconds) since the start time for the data, which is given by acquisitionStart in the parent Data3D Structure. Shall be non-negative |
| isTimeStampInvalid | Value = 0 if the timeStamp is considered valid, 1 otherwise |
1.8.2