![]() |
ACloudViewer
3.9.4
A Modern Library for 3D Data Processing
|
#include <Encoder.h>


Public Member Functions | |
| BitpackFloatEncoder (unsigned bytestreamNumber, SourceDestBuffer &sbuf, unsigned outputMaxSize, FloatPrecision precision) | |
| uint64_t | processRecords (size_t recordCount) override |
| bool | registerFlushToOutput () override |
| float | bitsPerRecord () override |
| void | dump (int indent=0, std::ostream &os=std::cout) const override |
Public Member Functions inherited from e57::BitpackEncoder | |
| unsigned | sourceBufferNextIndex () override |
| uint64_t | currentRecordIndex () override |
| size_t | outputAvailable () const override |
| void | outputRead (char *dest, const size_t byteCount) override |
| number of bytes that can be read More... | |
| void | outputClear () override |
| get data from encoder More... | |
| void | sourceBufferSetNew (std::vector< SourceDestBuffer > &sbufs) override |
| size_t | outputGetMaxSize () override |
| void | outputSetMaxSize (unsigned byteCount) override |
Public Member Functions inherited from e57::Encoder | |
| virtual | ~Encoder ()=default |
| unsigned | bytestreamNumber () const |
Protected Attributes | |
| FloatPrecision | precision_ |
Protected Attributes inherited from e57::BitpackEncoder | |
| std::shared_ptr< SourceDestBufferImpl > | sourceBuffer_ |
| std::vector< char > | outBuffer_ |
| size_t | outBufferFirst_ |
| size_t | outBufferEnd_ |
| size_t | outBufferAlignmentSize_ |
| uint64_t | currentRecordIndex_ |
Protected Attributes inherited from e57::Encoder | |
| unsigned | bytestreamNumber_ |
Additional Inherited Members | |
Static Public Member Functions inherited from e57::Encoder | |
| static std::shared_ptr< Encoder > | EncoderFactory (unsigned bytestreamNumber, std::shared_ptr< CompressedVectorNodeImpl > cVector, std::vector< SourceDestBuffer > &sbuf, ustring &codecPath) |
Protected Member Functions inherited from e57::BitpackEncoder | |
| BitpackEncoder (unsigned bytestreamNumber, SourceDestBuffer &sbuf, unsigned outputMaxSize, unsigned alignmentSize) | |
| ================ More... | |
| void | outBufferShiftDown () |
Protected Member Functions inherited from e57::Encoder | |
| Encoder (unsigned bytestreamNumber) | |
| BitpackFloatEncoder::BitpackFloatEncoder | ( | unsigned | bytestreamNumber, |
| SourceDestBuffer & | sbuf, | ||
| unsigned | outputMaxSize, | ||
| FloatPrecision | precision | ||
| ) |
Definition at line 374 of file Encoder.cpp.
|
overridevirtual |
Implements e57::BitpackEncoder.
Definition at line 455 of file Encoder.cpp.
References e57::E57_SINGLE, and precision_.
|
overridevirtual |
Reimplemented from e57::BitpackEncoder.
Definition at line 461 of file Encoder.cpp.
References e57::BitpackEncoder::dump(), e57::E57_SINGLE, QtCompat::endl(), precision_, and e57::space().
|
overridevirtual |
Before we add any more, try to shift current contents of outBuffer_ down to beginning of buffer. This leaves outBufferEnd_ at a natural boundary.
Verify that outBufferEnd_ is multiple of typeSize (so transfers of floats are aligned naturally in memory).
Figure out how many records will fit in output.
Can't process more records than will safely fit in output stream
Form the starting address for next available location in outBuffer
Copy floats from sourceBuffer_ to outBuffer_
E57_DOUBLE precision
Form the starting address for next available location in outBuffer
Copy doubles from sourceBuffer_ to outBuffer_
Update end of outBuffer
Update counts of records processed
Implements e57::BitpackEncoder.
Definition at line 382 of file Encoder.cpp.
References e57::BitpackEncoder::currentRecordIndex_, e57::E57_ERROR_INTERNAL, E57_EXCEPTION2, e57::E57_SINGLE, QtCompat::endl(), e57::BitpackEncoder::outBuffer_, e57::BitpackEncoder::outBufferEnd_, e57::BitpackEncoder::outBufferShiftDown(), precision_, e57::BitpackEncoder::sourceBuffer_, and e57::toString().
|
overridevirtual |
Since have no registers in encoder, return success
Implements e57::BitpackEncoder.
Definition at line 449 of file Encoder.cpp.
|
protected |
Definition at line 122 of file Encoder.h.
Referenced by bitsPerRecord(), dump(), and processRecords().