Helios++
Helios software for LiDAR simulations
SyncFileWriter Class Referenceabstract

Abstract class defining common behavior for all synchronous file writers. More...

#include <SyncFileWriter.h>

Inheritance diagram for SyncFileWriter:
Collaboration diagram for SyncFileWriter:

Public Member Functions

 SyncFileWriter (const std::string &path)
 Instantiate a SyncFileWriter which writes to file at given path. More...
 
void write (Measurement const &m, glm::dvec3 const shift=glm::dvec3(0, 0, 0))
 Synchronously write Measurement to file. More...
 
virtual void _write (Measurement const &m, glm::dvec3 const &shift)=0
 Abstract write function for Measurement. Must be overridden by children classes. More...
 
void write (Trajectory const &t)
 Synchronously write trajectory to file. More...
 
virtual void _write (Trajectory const &t)=0
 Abstract write function for trajectory. Must be overridden by children classes.
 
void write (std::vector< double > const &fullwave, int fullwaveIndex, double minTime, double maxTime, glm::dvec3 const &beamOrigin, glm::dvec3 const &beamDir, long gpsTime)
 Synchronously write Fullwave to file. More...
 
virtual void _write (std::vector< double > const &fullwave, int fullwaveIndex, double minTime, double maxTime, glm::dvec3 const &beamOrigin, glm::dvec3 const &beamDir, long gpsTime)=0
 Abstract write function for Fullwave. Must be overridden by children classes. More...
 
virtual void finish ()
 Finish the writing so all writing operations are performed and all buffers are closed.
 
std::string getPath ()
 Obtain the path to the file. More...
 

Private Attributes

std::string path
 Path to file to be written.
 
std::mutex mutex
 Mutex to synchronize concurrent write operations.
 

Detailed Description

Abstract class defining common behavior for all synchronous file writers.

Author
Alberto M. Esmoris Pena
Version
1.0

Constructor & Destructor Documentation

◆ SyncFileWriter()

SyncFileWriter::SyncFileWriter ( const std::string &  path)
inline

Instantiate a SyncFileWriter which writes to file at given path.

Parameters
pathPath to file to be written
See also
SyncFileWriter::path

Member Function Documentation

◆ _write() [1/2]

virtual void SyncFileWriter::_write ( Measurement const &  m,
glm::dvec3 const &  shift 
)
pure virtual

Abstract write function for Measurement. Must be overridden by children classes.

Parameters
mMeasurement to be written.
shiftShift for the measurement position
See also
Measurement

Implemented in LasSyncFileWriter, ZipSyncFileWriter, and SimpleSyncFileWriter.

◆ _write() [2/2]

virtual void SyncFileWriter::_write ( std::vector< double > const &  fullwave,
int  fullwaveIndex,
double  minTime,
double  maxTime,
glm::dvec3 const &  beamOrigin,
glm::dvec3 const &  beamDir,
long  gpsTime 
)
pure virtual

Abstract write function for Fullwave. Must be overridden by children classes.

Parameters
fullwaveFullwave data
fullwaveIndexFullwave index
minTimeMin hit time for the fullwave (ns)
maxTimeMax hit time for the fullwave (ns)
beamOriginOrigin for the beam
beamDirDirector vector for the beam
gpsTimeGPS time

Implemented in LasSyncFileWriter, ZipSyncFileWriter, and SimpleSyncFileWriter.

◆ getPath()

std::string SyncFileWriter::getPath ( )
inline

Obtain the path to the file.

Returns
Path to the file

◆ write() [1/3]

void SyncFileWriter::write ( Measurement const &  m,
glm::dvec3 const  shift = glm::dvec3(0, 0, 0) 
)
inline

Synchronously write Measurement to file.

Parameters
mMeasurement to be written
shiftShift for the measurement position
See also
Measurement

◆ write() [2/3]

void SyncFileWriter::write ( Trajectory const &  t)
inline

Synchronously write trajectory to file.

Parameters
tTrajectory to be written.
See also
Trajectory

◆ write() [3/3]

void SyncFileWriter::write ( std::vector< double > const &  fullwave,
int  fullwaveIndex,
double  minTime,
double  maxTime,
glm::dvec3 const &  beamOrigin,
glm::dvec3 const &  beamDir,
long  gpsTime 
)
inline

Synchronously write Fullwave to file.

Parameters
fullwaveFullwave data
fullwaveIndexFullwave index
minTimeMin hit time for the fullwave (ns)
maxTimeMax hit time for the fullwave (ns)
beamOriginOrigin for the beam
beamDirDirector vector for the beam
gpsTimeGPS time

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