8#ifndef META_OCEAN_IO_SERIALIZATION_DATA_SAMPLE_H
9#define META_OCEAN_IO_SERIALIZATION_DATA_SAMPLE_H
28namespace Serialization
72 inline double playbackTimestamp()
const;
98 virtual const std::string&
type()
const = 0;
105 inline void configurePlaybackTimestamp(
const Timestamp& serializationStartTimestamp);
160 double playbackTimestamp_ = NumericD::minValue();
172 dataTimestamp_(dataTimestamp),
173 sampleCreationTimestamp_(sampleCreationTimestamp)
190 ocean_assert(serializationStartTimestamp.
isValid());
198 return inputBitstream.
read(homogenousMatrix(),
sizeof(
float) * 16);
203 return outputBitstream.
write(homogenousMatrix(),
sizeof(
float) * 16);
208 return inputBitstream.
read(quaternion(),
sizeof(
float) * 4);
213 return outputBitstream.
write(quaternion(),
sizeof(
float) * 4);
218 return inputBitstream.
read(vector(),
sizeof(
float) * 3);
223 return outputBitstream.
write(vector(),
sizeof(
float) * 3);
This class implements a 4x4 homogeneous transformation matrix using floating point values with the pr...
Definition HomogenousMatrix4.h:110
This class implements an output bitstream.
Definition Bitstream.h:215
bool write(const T &value)
Writes a data object to the stream and moves the internal position inside the bitstream accordingly.
This class implements a base class for data samples.
Definition DataSample.h:46
static bool writeQuaternionF(OutputBitstream &outputBitstream, const QuaternionF &quaternion)
Writes a quaternion with float precision to an output bitstream.
Definition DataSample.h:211
static bool readHomogenousMatrix4F(InputBitstream &inputBitstream, HomogenousMatrixF4 &homogenousMatrix)
Reads a 4x4 homogenous matrix with float precision from an input bitstream.
Definition DataSample.h:196
DataSample()=default
Creates a new data sample.
void configurePlaybackTimestamp(const Timestamp &serializationStartTimestamp)
Configures the playback timestamp based on when serialization started.
Definition DataSample.h:188
DataTimestamp dataTimestamp_
The timestamp of the data, e.g., the timestamp of the camera frame when it was captured.
Definition DataSample.h:163
virtual ~DataSample()=default
Destructs a data sample.
virtual bool readSample(InputBitstream &inputBitstream)
Reads the sample from an input bitstream.
Timestamp sampleCreationTimestamp_
The unix timestamp when the sample was created, this timestamp is not serialized and is only used to ...
Definition DataSample.h:168
static bool writeVectorF3(OutputBitstream &outputBitstream, const VectorF3 &vector)
Writes a 3D vector with float precision to an output bitstream.
Definition DataSample.h:221
const DataTimestamp & dataTimestamp() const
Returns the timestamp of the data, e.g., the timestamp of the camera frame when it was captured.
Definition DataSample.h:183
virtual bool writeSample(OutputBitstream &outputBitstream) const
Writes the sample to an output bitstream.
double playbackTimestamp() const
Returns the relative timestamp of this sample at which the sample will be played back,...
Definition DataSample.h:178
static bool readVectorF3(InputBitstream &inputBitstream, VectorF3 &vector)
Reads a 3D vector with float precision from an input bitstream.
Definition DataSample.h:216
double playbackTimestamp_
The relative timestamp of this sample at which the sample will be played back, in relation to the mom...
Definition DataSample.h:160
virtual const std::string & type() const =0
Returns the type of the sample, mainly describing the content of the sample, not the source of the sa...
static bool readQuaternionF(InputBitstream &inputBitstream, QuaternionF &quaternion)
Reads a quaternion with float precision from an input bitstream.
Definition DataSample.h:206
static bool writeHomogenousMatrix4F(OutputBitstream &outputBitstream, const HomogenousMatrixF4 &homogenousMatrix)
Writes a 4x4 homogenous matrix with float precision to an output bitstream.
Definition DataSample.h:201
This class implements a data timestamp which can hold either a double or int64_t value.
Definition DataTimestamp.h:29
This class implements an output data serializer.
Definition OutputDataSerializer.h:29
This class implements a unit quaternion rotation.
Definition Quaternion.h:100
This class implements a timestamp.
Definition Timestamp.h:63
bool isValid() const
Returns whether the timestamp holds a valid time.
Definition Timestamp.h:559
This class implements a vector with three elements.
Definition Vector3.h:97
std::unique_ptr< DataSample > UniqueDataSample
Definition of a unique pointer holding a DataSample.
Definition DataSample.h:39
The namespace covering the entire Ocean framework.
Definition Accessor.h:15