ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
ccSerializableObject Class Referenceabstract

Serializable object interface. More...

#include <ecvSerializableObject.h>

Inheritance diagram for ccSerializableObject:

Public Types

enum  DeserializationFlags { DF_POINT_COORDS_64_BITS , DF_SCALAR_VAL_32_BITS = 2 }
 Deserialization flags (bit-field) More...
 
typedef QMultiMap< unsigned, unsigned > LoadedIDMap
 Map of loaded unique IDs (old ID --> new ID) More...
 

Public Member Functions

virtual ~ccSerializableObject ()=default
 Destructor. More...
 
virtual bool isSerializable () const
 Returns whether object is serializable of not. More...
 
virtual bool toFile (QFile &out, short dataVersion) const
 Saves data to binary stream. More...
 
virtual short minimumFileVersion () const =0
 Returns the minimum file version required to save this instance. More...
 
virtual bool fromFile (QFile &in, short dataVersion, int flags, LoadedIDMap &oldToNewIDMap)
 Loads data from binary stream. More...
 

Static Public Member Functions

static bool WriteError ()
 Sends a custom error message (write error) and returns 'false'. More...
 
static bool ReadError ()
 Sends a custom error message (read error) and returns 'false'. More...
 
static bool MemoryError ()
 Sends a custom error message (not enough memory) and returns 'false'. More...
 
static bool CorruptError ()
 Sends a custom error message (corrupted file) and returns 'false'. More...
 

Detailed Description

Serializable object interface.

Definition at line 25 of file ecvSerializableObject.h.

Member Typedef Documentation

◆ LoadedIDMap

typedef QMultiMap<unsigned, unsigned> ccSerializableObject::LoadedIDMap

Map of loaded unique IDs (old ID --> new ID)

Definition at line 61 of file ecvSerializableObject.h.

Member Enumeration Documentation

◆ DeserializationFlags

Deserialization flags (bit-field)

Enumerator
DF_POINT_COORDS_64_BITS 

Point coordinates are stored as 64 bits double (otherwise 32 bits floats)

DF_SCALAR_VAL_32_BITS 

Scalar values are stored as 32 bits floats (otherwise 64 bits double)

Definition at line 51 of file ecvSerializableObject.h.

Constructor & Destructor Documentation

◆ ~ccSerializableObject()

virtual ccSerializableObject::~ccSerializableObject ( )
virtualdefault

Destructor.

Member Function Documentation

◆ CorruptError()

static bool ccSerializableObject::CorruptError ( )
inlinestatic

Sends a custom error message (corrupted file) and returns 'false'.

Shortcut for returning a standardized error message in the fromFile method.

Returns
always false

Definition at line 113 of file ecvSerializableObject.h.

References CVLog::Error().

Referenced by define_ccSerializableObject().

◆ fromFile()

virtual bool ccSerializableObject::fromFile ( QFile &  in,
short  dataVersion,
int  flags,
LoadedIDMap oldToNewIDMap 
)
inlinevirtual

Loads data from binary stream.

Parameters
ininput file (already opened)
dataVersionfile version (for version-specific deserialization)
flagsdeserialization flags (see ccSerializableObject::DeserializationFlags)
oldToNewIDMapmap to link old IDs with new IDs
Returns
success
Note: When implementing, use dataVersion checks to handle different
versions:
  • if (dataVersion >= X) { read new field } else { use default value } This ensures forward compatibility with older file formats.

Reimplemented in ccWaveform, WaveformDescriptor, ecvViewportParameters, ccScalarField, ccPointCloud::Grid, ccObject, ccMaterial, ccIndexedTransformation, ccHObject, ccGLMatrixTpl< T >, ccGLMatrixTpl< double >, ccGLMatrixTpl< float >, and ccColorScale.

Definition at line 75 of file ecvSerializableObject.h.

Referenced by define_ccSerializableObject().

◆ isSerializable()

◆ MemoryError()

static bool ccSerializableObject::MemoryError ( )
inlinestatic

Sends a custom error message (not enough memory) and returns 'false'.

Shortcut for returning a standardized error message in the fromFile method.

Returns
always false

Definition at line 104 of file ecvSerializableObject.h.

References CVLog::Error().

Referenced by define_ccSerializableObject().

◆ minimumFileVersion()

virtual short ccSerializableObject::minimumFileVersion ( ) const
pure virtual

Returns the minimum file version required to save this instance.

To be overridden by subclasses to indicate their minimum required version. This enables the system to determine:

  • Forward compatibility: newer software can read older files (dataVersion check in fromFile)
  • Backward compatibility: determine minimum version needed to save current data
    Returns
    minimum file version required for this object

Implemented in ccWaveform, WaveformDescriptor, ecvViewportParameters, ccScalarField, ccPointCloud::Grid, ccObject, ccMaterial, ccIndexedTransformation, ccHObject, ccGLMatrixTpl< T >, ccGLMatrixTpl< double >, ccGLMatrixTpl< float >, and ccColorScale.

Referenced by define_ccSerializableObject().

◆ ReadError()

static bool ccSerializableObject::ReadError ( )
inlinestatic

Sends a custom error message (read error) and returns 'false'.

Shortcut for returning a standardized error message in the fromFile method.

Returns
always false

Definition at line 95 of file ecvSerializableObject.h.

References CVLog::Error().

Referenced by define_ccSerializableObject().

◆ toFile()

virtual bool ccSerializableObject::toFile ( QFile &  out,
short  dataVersion 
) const
inlinevirtual

Saves data to binary stream.

Parameters
outoutput file (already opened)
dataVersiontarget file version (for forward/backward compatibility)
Returns
success

Reimplemented in ccWaveform, WaveformDescriptor, ecvViewportParameters, ccScalarField, ccPointCloud::Grid, ccObject, ccMaterial, ccIndexedTransformation, ccHObject, ccGLMatrixTpl< T >, ccGLMatrixTpl< double >, ccGLMatrixTpl< float >, and ccColorScale.

Definition at line 38 of file ecvSerializableObject.h.

Referenced by define_ccSerializableObject().

◆ WriteError()

static bool ccSerializableObject::WriteError ( )
inlinestatic

Sends a custom error message (write error) and returns 'false'.

Shortcut for returning a standardized error message in the toFile method.

Returns
always false

Definition at line 86 of file ecvSerializableObject.h.

References CVLog::Error().

Referenced by define_ccSerializableObject().


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