Helios++
Helios software for LiDAR simulations
helios::filems::FMSWriteFacade Class Reference

The facade for FMS writing. More...

#include <FMSWriteFacade.h>

Collaboration diagram for helios::filems::FMSWriteFacade:

Public Member Functions

 FMSWriteFacade ()=default
 Default constructor for FMS write facade.
 
virtual void disconnect ()
 Disconnect all components from the write facade. More...
 
void configure (string const &prefix, bool const computeWaveform, bool const lastLegInStrip)
 Configure the output path for all writers in the facade. More...
 
string getRootDir () const
 Obtain the root directory of the write facade. More...
 
void setRootDir (string const &rootDir)
 Set the root directory of the write facade. More...
 
shared_ptr< VectorialMeasurementWritergetMeasurementWriter () const
 Obtain the measurement writer of the write facade. More...
 
void setMeasurementWriter (shared_ptr< VectorialMeasurementWriter > mw)
 Set the measurement writer of the write facade. More...
 
void validateMeasurementWriter (string const &callerName="FMSWriteFacade::validateMeasurementWriter", string const &errorMsg="could not access MeasurementWriter") const
 Validate the measurement writer of the facade is valid to support write methods. If it is not valid, an adequate exception will be thrown. More...
 
void writeMeasurements (vector< Measurement > const &measurements)
 
void writeMeasurementsUnsafe (vector< Measurement > const &measurements) const
 Write the vector of measurements without validations (it is faster than its non unsafe counterpart) More...
 
void clearPointcloudFile ()
 
void finishMeasurementWriter ()
 
fs::path getMeasurementWriterOutputPath ()
 
void setMeasurementWriterOutputPath (std::string path, const bool lastLegInStrip)
 
bool isMeasurementWriterLasOutput () const
 
void setMeasurementWriterLasOutput (bool const lasOutput)
 
bool isMeasurementWriterLas10 () const
 
void setMeasurementWriterLas10 (bool const las10)
 
bool isMeasurementWriterZipOutput () const
 
void setMeasurementWriterZipOutput (bool const zipOutput)
 
double getMeasurementWriterLasScale () const
 
void setMeasurementWriterLasScale (double const lasScale)
 
shared_ptr< TrajectoryWritergetTrajectoryWriter () const
 Obtain the trajectory writer of the write facade. More...
 
void setTrajectoryWriter (shared_ptr< TrajectoryWriter > tw)
 Set the trajectory writer of the write facade. More...
 
void validateTrajectoryWriter (string const &callerName="FMSWriteFacade::validateTrajectoryWriter", string const &errorMsg="could not accesss TrajectoryWriter") const
 Validate the trajectory writer of the facade is valid to support write methods. If it is not valid, an adequate exception will be thrown. More...
 
void writeTrajectory (Trajectory const &t)
 
void writeTrajectoryUnsafe (Trajectory const &t) const
 Write the trajectory without validations (it is faster than its non unsafe counterpart) More...
 
void finishTrajectoryWriter ()
 
fs::path getTrajectoryWriterOutputPath ()
 
void setTrajectoryWriterOutputPath (string const &path)
 
bool isTrajectoryWriterZipOutput () const
 
void setTrajectoryWriterZipOutput (bool const zipOutput)
 
shared_ptr< VectorialFullWaveformWritergetFullWaveformWriter () const
 Obtain the full waveform writer of the write facade. More...
 
void setFullWaveformWriter (shared_ptr< VectorialFullWaveformWriter > fww)
 Set the full waveform writer of the write facade. More...
 
void validateFullWaveformWriter (string const &callerName="FMSWriteFacade::validateFullWaveformWriter", string const &errorMsg="could not accesss FullWaveformWriter") const
 Validate the full waveform writer of the facade is valid to support write methods. If it is not valid, an adequate exception will be thrown. More...
 
void writeFullWaveforms (vector< FullWaveform > const &fullWaveforms)
 
void writeFullWaveformsUnsafe (vector< FullWaveform > const &fullWaveforms) const
 Write the full waveform without validations (it is faster than its non unsafe counterpart) More...
 
void finishFullWaveformWriter ()
 
bool isFullWaveformWriterZipOutput () const
 
void setFullWaveformWriterZipOutput (bool const zipOutput)
 

Protected Attributes

shared_ptr< VectorialMeasurementWritermw = nullptr
 The vectorial writer for measurements. More...
 
shared_ptr< TrajectoryWritertw = nullptr
 The writer for trajectories. More...
 
shared_ptr< VectorialFullWaveformWriterfww = nullptr
 The writer for full waveform. More...
 
string rootDir = "./"
 The root directory for output files.
 

Friends

class FMSFacadeFactory
 

Detailed Description

The facade for FMS writing.

Author
Alberto M. Esmoris Pena
Version
1.0

Member Function Documentation

◆ clearPointcloudFile()

void FMSWriteFacade::clearPointcloudFile ( )

◆ configure()

void FMSWriteFacade::configure ( string const &  prefix,
bool const  computeWaveform,
bool const  lastLegInStrip 
)

Configure the output path for all writers in the facade.

Parameters
prefixPrefix for the name of the output file
computeWaveformFlag to specify if waveform must be computed (true) or not (false)
lastLegInStripSpecify whether the last leg belonged to a strip (true) or not (false)

◆ disconnect()

void FMSWriteFacade::disconnect ( )
virtual

Disconnect all components from the write facade.

See also
filems::FMSFacade::disconnect

◆ finishFullWaveformWriter()

void FMSWriteFacade::finishFullWaveformWriter ( )

◆ finishMeasurementWriter()

void FMSWriteFacade::finishMeasurementWriter ( )

◆ finishTrajectoryWriter()

void FMSWriteFacade::finishTrajectoryWriter ( )

◆ getFullWaveformWriter()

shared_ptr<VectorialFullWaveformWriter> helios::filems::FMSWriteFacade::getFullWaveformWriter ( ) const
inline

Obtain the full waveform writer of the write facade.

Returns
The full waveform writer of the write facade
See also
FMSWriteFacade::fww

◆ getMeasurementWriter()

shared_ptr<VectorialMeasurementWriter> helios::filems::FMSWriteFacade::getMeasurementWriter ( ) const
inline

Obtain the measurement writer of the write facade.

Returns
The measurement writer of the write facade
See also
FMSWriteFacade::mw

◆ getMeasurementWriterLasScale()

double FMSWriteFacade::getMeasurementWriterLasScale ( ) const

◆ getMeasurementWriterOutputPath()

fs::path FMSWriteFacade::getMeasurementWriterOutputPath ( )

◆ getRootDir()

string helios::filems::FMSWriteFacade::getRootDir ( ) const
inline

Obtain the root directory of the write facade.

See also
filems::FMSWriteFacade::rootDir

◆ getTrajectoryWriter()

shared_ptr<TrajectoryWriter> helios::filems::FMSWriteFacade::getTrajectoryWriter ( ) const
inline

Obtain the trajectory writer of the write facade.

Returns
The trajectory writer of the write facade
See also
FMSWriteFacade::tw

◆ getTrajectoryWriterOutputPath()

fs::path FMSWriteFacade::getTrajectoryWriterOutputPath ( )

◆ isFullWaveformWriterZipOutput()

bool FMSWriteFacade::isFullWaveformWriterZipOutput ( ) const

◆ isMeasurementWriterLas10()

bool FMSWriteFacade::isMeasurementWriterLas10 ( ) const

◆ isMeasurementWriterLasOutput()

bool FMSWriteFacade::isMeasurementWriterLasOutput ( ) const

◆ isMeasurementWriterZipOutput()

bool FMSWriteFacade::isMeasurementWriterZipOutput ( ) const

◆ isTrajectoryWriterZipOutput()

bool FMSWriteFacade::isTrajectoryWriterZipOutput ( ) const

◆ setFullWaveformWriter()

void helios::filems::FMSWriteFacade::setFullWaveformWriter ( shared_ptr< VectorialFullWaveformWriter fww)
inline

Set the full waveform writer of the write facade.

Parameters
fwwNew full waveform writer for the write facade
See also
FMSWriteFacade::fww

◆ setFullWaveformWriterZipOutput()

void FMSWriteFacade::setFullWaveformWriterZipOutput ( bool const  zipOutput)

◆ setMeasurementWriter()

void helios::filems::FMSWriteFacade::setMeasurementWriter ( shared_ptr< VectorialMeasurementWriter mw)
inline

Set the measurement writer of the write facade.

Parameters
mwNew measurement writer for the write facade
See also
FMSWriteFacade::mw

◆ setMeasurementWriterLas10()

void FMSWriteFacade::setMeasurementWriterLas10 ( bool const  las10)

◆ setMeasurementWriterLasOutput()

void FMSWriteFacade::setMeasurementWriterLasOutput ( bool const  lasOutput)

◆ setMeasurementWriterLasScale()

void FMSWriteFacade::setMeasurementWriterLasScale ( double const  lasScale)

◆ setMeasurementWriterOutputPath()

void FMSWriteFacade::setMeasurementWriterOutputPath ( std::string  path,
const bool  lastLegInStrip 
)

◆ setMeasurementWriterZipOutput()

void FMSWriteFacade::setMeasurementWriterZipOutput ( bool const  zipOutput)

◆ setRootDir()

void helios::filems::FMSWriteFacade::setRootDir ( string const &  rootDir)
inline

Set the root directory of the write facade.

Parameters
rootDirThe new root directory for the write facade
See also
filems::FMSWriteFacade:rootDir

◆ setTrajectoryWriter()

void helios::filems::FMSWriteFacade::setTrajectoryWriter ( shared_ptr< TrajectoryWriter tw)
inline

Set the trajectory writer of the write facade.

Parameters
twNew trajectory writer for the write facade
See also
FMSWriteFacade::tw

◆ setTrajectoryWriterOutputPath()

void FMSWriteFacade::setTrajectoryWriterOutputPath ( string const &  path)

◆ setTrajectoryWriterZipOutput()

void FMSWriteFacade::setTrajectoryWriterZipOutput ( bool const  zipOutput)

◆ validateFullWaveformWriter()

void FMSWriteFacade::validateFullWaveformWriter ( string const &  callerName = "FMSWriteFacade::validateFullWaveformWriter",
string const &  errorMsg = "could not accesss FullWaveformWriter" 
) const

Validate the full waveform writer of the facade is valid to support write methods. If it is not valid, an adequate exception will be thrown.

See also
FMSWriteFacade::fww

◆ validateMeasurementWriter()

void FMSWriteFacade::validateMeasurementWriter ( string const &  callerName = "FMSWriteFacade::validateMeasurementWriter",
string const &  errorMsg = "could not access MeasurementWriter" 
) const

Validate the measurement writer of the facade is valid to support write methods. If it is not valid, an adequate exception will be thrown.

See also
FMSWriteFacade::mw

◆ validateTrajectoryWriter()

void FMSWriteFacade::validateTrajectoryWriter ( string const &  callerName = "FMSWriteFacade::validateTrajectoryWriter",
string const &  errorMsg = "could not accesss TrajectoryWriter" 
) const

Validate the trajectory writer of the facade is valid to support write methods. If it is not valid, an adequate exception will be thrown.

See also
FMSWriteFacade::tw

◆ writeFullWaveforms()

void FMSWriteFacade::writeFullWaveforms ( vector< FullWaveform > const &  fullWaveforms)
See also
FullWaveformWritter::writeFullWaveform

◆ writeFullWaveformsUnsafe()

void helios::filems::FMSWriteFacade::writeFullWaveformsUnsafe ( vector< FullWaveform > const &  fullWaveforms) const
inline

Write the full waveform without validations (it is faster than its non unsafe counterpart)

See also
FullWaveformWriter::writeFullWaveformUnsafe

◆ writeMeasurements()

void FMSWriteFacade::writeMeasurements ( vector< Measurement > const &  measurements)

@bsee VectorialMeasurementWritter::writeMeasurements

◆ writeMeasurementsUnsafe()

void helios::filems::FMSWriteFacade::writeMeasurementsUnsafe ( vector< Measurement > const &  measurements) const
inline

Write the vector of measurements without validations (it is faster than its non unsafe counterpart)

See also
VectorialMeasurementWritter::writeMeasurementsUnsafe

◆ writeTrajectory()

void FMSWriteFacade::writeTrajectory ( Trajectory const &  t)

◆ writeTrajectoryUnsafe()

void helios::filems::FMSWriteFacade::writeTrajectoryUnsafe ( Trajectory const &  t) const
inline

Write the trajectory without validations (it is faster than its non unsafe counterpart)

See also
TrajectoryWriter::writeTrajectory

Member Data Documentation

◆ fww

shared_ptr<VectorialFullWaveformWriter> helios::filems::FMSWriteFacade::fww = nullptr
protected

The writer for full waveform.

See also
filems::FullWaveformWriter

◆ mw

shared_ptr<VectorialMeasurementWriter> helios::filems::FMSWriteFacade::mw = nullptr
protected

The vectorial writer for measurements.

See also
filems::VectorialMeasurementWriter

◆ tw

shared_ptr<TrajectoryWriter> helios::filems::FMSWriteFacade::tw = nullptr
protected

The writer for trajectories.

See also
filems::TrajectoryWriter

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