libE57Format 3.1.1
C++ library to read & write the E57 file format for point cloud data
Loading...
Searching...
No Matches
e57::Writer Class Reference

Used for writing an E57 file using the E57 Simple API. More...

#include <E57SimpleWriter.h>

Public Member Functions

 Writer (const ustring &filePath, const ustring &coordinateMetadata={})
 Writer constructor (deprecated)
 
 Writer (const ustring &filePath, const WriterOptions &options)
 Writer constructor.
 
bool Close ()
 Closes the file.
 
bool IsOpen () const
 Returns true if the file is open.
 
Image2D
int64_t WriteImage2DData (Image2D &image2DHeader, Image2DType imageType, Image2DProjection imageProjection, int64_t startPos, void *buffer, int64_t byteCount)
 This function writes the Image2D data to the file.
 
int64_t NewImage2D (Image2D &image2DHeader)
 Writes a new Image2D header.
 
int64_t WriteImage2DData (int64_t imageIndex, Image2DType imageType, Image2DProjection imageProjection, void *buffer, int64_t start, int64_t count)
 Writes the actual image data.
 
Data3D
int64_t WriteData3DData (Data3D &data3DHeader, const Data3DPointsFloat &buffers)
 This function writes the Data3D data to the file.
 
int64_t WriteData3DData (Data3D &data3DHeader, const Data3DPointsDouble &buffers)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
int64_t NewData3D (Data3D &data3DHeader)
 Writes a new Data3D header.
 
CompressedVectorWriter SetUpData3DPointsData (int64_t dataIndex, size_t pointCount, const Data3DPointsFloat &buffers)
 Sets up a writer to write the actual scan data.
 
CompressedVectorWriter SetUpData3DPointsData (int64_t dataIndex, size_t pointCount, const Data3DPointsDouble &buffers)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
bool WriteData3DGroupsData (int64_t dataIndex, size_t groupCount, int64_t *idElementValue, int64_t *startPointIndex, int64_t *pointCount)
 Writes out the group data.
 
File information
StructureNode GetRawE57Root ()
 Returns the file raw E57Root Structure Node.
 
VectorNode GetRawData3D ()
 Returns the raw Data3D Vector Node.
 
VectorNode GetRawImages2D ()
 Returns the raw Image2D Vector Node.
 
ImageFile GetRawIMF ()
 Returns the ram ImageFile Node which is need to add enhancements.
 

Detailed Description

Used for writing an E57 file using the E57 Simple API.

The Writer includes support for the E57_EXT_surface_normals extension.

Constructor & Destructor Documentation

◆ Writer() [1/2]

e57::Writer::Writer ( const ustring filePath,
const WriterOptions options 
)

Writer constructor.

Parameters
[in]filePathPath to E57 file
[in]optionsOptions to be used for the file

◆ Writer() [2/2]

e57::Writer::Writer ( const ustring filePath,
const ustring coordinateMetadata = {} 
)
explicit

Writer constructor (deprecated)

Parameters
[in]filePathPath to E57 file
[in]coordinateMetadataInformation describing the Coordinate Reference System to be used for the file
Deprecated:
Will be removed in 4.0. Use Writer( const ustring &filePath, const WriterOptions &options ) instead.

Member Function Documentation

◆ Close()

bool e57::Writer::Close ( )

Closes the file.

◆ GetRawData3D()

VectorNode e57::Writer::GetRawData3D ( )

Returns the raw Data3D Vector Node.

◆ GetRawE57Root()

StructureNode e57::Writer::GetRawE57Root ( )

Returns the file raw E57Root Structure Node.

◆ GetRawImages2D()

VectorNode e57::Writer::GetRawImages2D ( )

Returns the raw Image2D Vector Node.

◆ GetRawIMF()

ImageFile e57::Writer::GetRawIMF ( )

Returns the ram ImageFile Node which is need to add enhancements.

◆ IsOpen()

bool e57::Writer::IsOpen ( ) const

Returns true if the file is open.

◆ NewData3D()

int64_t e57::Writer::NewData3D ( Data3D data3DHeader)

Writes a new Data3D header.

The user needs to config a Data3D structure with all the scanning information before making this call.

Parameters
[in,out]data3DHeaderscan metadata
Returns
Returns the index of the new scan's data3D block.
Deprecated:
Will be removed in 4.0. Use WriteData3DData() instead.

◆ NewImage2D()

int64_t e57::Writer::NewImage2D ( Image2D image2DHeader)

Writes a new Image2D header.

The user needs to config a Image2D structure with all the camera information before making this call.

Parameters
[in,out]image2DHeaderheader metadata
Returns
Returns the image2D index
Deprecated:
Will be removed in 4.0. Use WriteImage2DData(Image2D &,Image2DType,Image2DProjection,int64_t,void *,int64_t) instead.

◆ SetUpData3DPointsData() [1/2]

CompressedVectorWriter e57::Writer::SetUpData3DPointsData ( int64_t  dataIndex,
size_t  pointCount,
const Data3DPointsDouble buffers 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ SetUpData3DPointsData() [2/2]

CompressedVectorWriter e57::Writer::SetUpData3DPointsData ( int64_t  dataIndex,
size_t  pointCount,
const Data3DPointsFloat buffers 
)

Sets up a writer to write the actual scan data.

Parameters
[in]dataIndexindex returned by NewData3D
[in]pointCountNumber of points to write (number of elements in each of the buffers)
[in]bufferspointers to user-provided buffers
Returns
returns a vector writer setup to write the selected scan data
Deprecated:
Will be removed in 4.0. Use WriteData3DData() instead.

◆ WriteData3DData() [1/2]

int64_t e57::Writer::WriteData3DData ( Data3D data3DHeader,
const Data3DPointsDouble buffers 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ WriteData3DData() [2/2]

int64_t e57::Writer::WriteData3DData ( Data3D data3DHeader,
const Data3DPointsFloat buffers 
)

This function writes the Data3D data to the file.

The user needs to config a Data3D structure with all the scanning information before making this call.

Note
data3DHeader may be modified (adding a guid or adding missing, required fields).
Parameters
[in,out]data3DHeadermetadata about what is included in the buffers
[in]bufferspointers to user-provided buffers containing the actual data
Returns
Returns the index of the new scan's data3D block.

◆ WriteData3DGroupsData()

bool e57::Writer::WriteData3DGroupsData ( int64_t  dataIndex,
size_t  groupCount,
int64_t *  idElementValue,
int64_t *  startPointIndex,
int64_t *  pointCount 
)

Writes out the group data.

Parameters
[in]dataIndexdata block index given by the NewData3D
[in]groupCountsize of each of the buffers given
[in]idElementValuebuffer with idElementValue indices for this group
[in]startPointIndexbuffer with starting indices in to the "points" data vector for the groups
[in]pointCountbuffer with sizes of the groups given
Returns
Return true if successful, false otherwise

◆ WriteImage2DData() [1/2]

int64_t e57::Writer::WriteImage2DData ( Image2D image2DHeader,
Image2DType  imageType,
Image2DProjection  imageProjection,
int64_t  startPos,
void *  buffer,
int64_t  byteCount 
)

This function writes the Image2D data to the file.

Note
image2DHeader may be modified (adding a guid or adding missing, required fields).
Parameters
[in,out]image2DHeaderheader metadata
[in]imageTypeidentifies the image format
[in]imageProjectionidentifies the projection
[in]startPosposition in the block to start writing
[in]bufferpointer the data buffer
[in]byteCountbuffer size
Returns
Returns the number of bytes written

◆ WriteImage2DData() [2/2]

int64_t e57::Writer::WriteImage2DData ( int64_t  imageIndex,
Image2DType  imageType,
Image2DProjection  imageProjection,
void *  buffer,
int64_t  start,
int64_t  count 
)

Writes the actual image data.

Parameters
[in]imageIndexpicture block index given by the NewImage2D
[in]imageTypeidentifies the image format desired.
[in]imageProjectionidentifies the projection desired.
[in]bufferpointer the buffer
[in]startposition in the block to start writing
[in]countsize of desired chunk or buffer size
Returns
Returns the number of bytes written
Deprecated:
Will be removed in 4.0. Use WriteImage2DData(Image2D &,Image2DType,Image2DProjection,int64_t,void *,int64_t) instead.

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