ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
e57::BitpackFloatDecoder Class Reference

#include <Decoder.h>

Inheritance diagram for e57::BitpackFloatDecoder:
Collaboration diagram for e57::BitpackFloatDecoder:

Public Member Functions

 BitpackFloatDecoder (unsigned bytestreamNumber, SourceDestBuffer &dbuf, FloatPrecision precision, uint64_t maxRecordCount)
 
size_t inputProcessAligned (const char *inbuf, const size_t firstBit, const size_t endBit) override
 
void dump (int indent=0, std::ostream &os=std::cout) override
 
- Public Member Functions inherited from e57::BitpackDecoder
void destBufferSetNew (std::vector< SourceDestBuffer > &dbufs) override
 
uint64_t totalRecordsCompleted () override
 
size_t inputProcess (const char *source, const size_t availableByteCount) override
 
void stateReset () override
 
- Public Member Functions inherited from e57::Decoder
 Decoder ()=delete
 
virtual ~Decoder ()=default
 
unsigned bytestreamNumber () const
 

Protected Attributes

FloatPrecision precision_ = E57_SINGLE
 
- Protected Attributes inherited from e57::BitpackDecoder
uint64_t currentRecordIndex_ = 0
 
uint64_t maxRecordCount_ = 0
 
std::shared_ptr< SourceDestBufferImpldestBuffer_
 
std::vector< char > inBuffer_
 
size_t inBufferFirstBit_ = 0
 
size_t inBufferEndByte_ = 0
 
unsigned int inBufferAlignmentSize_
 
unsigned int bitsPerWord_
 
unsigned int bytesPerWord_
 
- Protected Attributes inherited from e57::Decoder
unsigned int bytestreamNumber_
 

Additional Inherited Members

- Static Public Member Functions inherited from e57::Decoder
static std::shared_ptr< DecoderDecoderFactory (unsigned bytestreamNumber, const CompressedVectorNodeImpl *cVector, std::vector< SourceDestBuffer > &dbufs, const ustring &codecPath)
 
- Protected Member Functions inherited from e57::BitpackDecoder
 BitpackDecoder (unsigned bytestreamNumber, SourceDestBuffer &dbuf, unsigned alignmentSize, uint64_t maxRecordCount)
 
void inBufferShiftDown ()
 
- Protected Member Functions inherited from e57::Decoder
 Decoder (unsigned bytestreamNumber)
 

Detailed Description

Definition at line 98 of file Decoder.h.

Constructor & Destructor Documentation

◆ BitpackFloatDecoder()

BitpackFloatDecoder::BitpackFloatDecoder ( unsigned  bytestreamNumber,
SourceDestBuffer dbuf,
FloatPrecision  precision,
uint64_t  maxRecordCount 
)

Definition at line 352 of file Decoder.cpp.

Member Function Documentation

◆ dump()

void BitpackFloatDecoder::dump ( int  indent = 0,
std::ostream &  os = std::cout 
)
overridevirtual

Reimplemented from e57::BitpackDecoder.

Definition at line 452 of file Decoder.cpp.

References e57::BitpackDecoder::dump(), e57::E57_SINGLE, QtCompat::endl(), precision_, and e57::space().

◆ inputProcessAligned()

size_t BitpackFloatDecoder::inputProcessAligned ( const char *  inbuf,
const size_t  firstBit,
const size_t  endBit 
)
overridevirtual

Read from inbuf, decode, store in destBuffer Repeat until have filled destBuffer, or completed all records

Verify first bit is zero

Calc how many whole records worth of data we have in inbuf

Can't process more records than we have input data for.

Form the starting address for first data location in inBuffer

Copy floats from inbuf to destBuffer_

E57_DOUBLE precision

Form the starting address for first data location in inBuffer

Copy doubles from inbuf to destBuffer_

Update counts of records processed

Returned number of bits processed (always a multiple of alignment size).

Implements e57::BitpackDecoder.

Definition at line 360 of file Decoder.cpp.

References e57::BitpackDecoder::currentRecordIndex_, e57::BitpackDecoder::destBuffer_, e57::E57_ERROR_INTERNAL, E57_EXCEPTION2, e57::E57_SINGLE, QtCompat::endl(), e57::BitpackDecoder::maxRecordCount_, precision_, and e57::toString().

Member Data Documentation

◆ precision_

FloatPrecision e57::BitpackFloatDecoder::precision_ = E57_SINGLE
protected

Definition at line 110 of file Decoder.h.

Referenced by dump(), and inputProcessAligned().


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