Helios++
Helios software for LiDAR simulations
TrajectoryWriter.h
1 #pragma once
2 
3 #include <filems/write/core/HeliosWriter.h>
4 #include <filems/write/comps/SimpleSyncFileWriter.h>
5 #include <scanner/Trajectory.h>
6 
7 #include <boost/filesystem.hpp>
8 
9 #include <memory>
10 
11 namespace fs=boost::filesystem;
12 
13 namespace helios { namespace filems{
14 
15 using std::shared_ptr;
16 using std::make_shared;
17 using std::string;
18 
25 class TrajectoryWriter : public HeliosWriter<Trajectory const &>{
26 public:
27  // *** CONSTRUCTION / DESTRUCTION *** //
28  // ************************************ //
32  TrajectoryWriter() = default;
33  virtual ~TrajectoryWriter() = default;
34 
35  // *** M E T H O D S *** //
36  // ************************* //
42  void configure(string const &parent, string const &prefix);
47  void writeTrajectory(Trajectory const &t);
53  inline void writeTrajectoryUnsafe(Trajectory const &t) const
54  {sfw->write(t);}
55 
56  // *** GETTERs and SETTERs *** //
57  // ***************************** //
63  inline void setSyncFileWriter(
65  ){
66  this->sfw = sfw;
67  }
72  inline shared_ptr<SyncFileWriter<Trajectory const&>> getSyncFileWriter()
73  const {return sfw;}
78  void setOutputFilePath(string const &path);
84  inline fs::path getOutputFilePath() const
85  {return fs::path(getOutputPath());}
89  inline string getOutputPath() const {return sfw->getPath();}
90 
91 
92 };
93 
94 }}
Class representing a concrete trajectory definition.
Definition: Trajectory.h:10
Alberto M. Esmoris Pena.
Definition: HeliosWriter.h:25
shared_ptr< SyncFileWriter< WriteArgs ... > > sfw
Synchronous file writer.
Definition: HeliosWriter.h:33
Abstract class defining common behavior for all synchronous file writers.
Definition: SyncFileWriter.h:18
Class to handle writing of trajectories to generate HELIOS++ output virtual trajectories.
Definition: TrajectoryWriter.h:25
void writeTrajectory(Trajectory const &t)
Write a trajectory point.
Definition: TrajectoryWriter.cpp:25
void setSyncFileWriter(shared_ptr< SyncFileWriter< Trajectory const & >> sfw)
Set synchronous file writer for trajectory writer.
Definition: TrajectoryWriter.h:63
TrajectoryWriter()=default
Default constructor for trajectory writer.
void writeTrajectoryUnsafe(Trajectory const &t) const
Like filems::TrajectoryWriter::writeTrajectory but faster because there is no validation.
Definition: TrajectoryWriter.h:53
void configure(string const &parent, string const &prefix)
Configure the output path for the trajectory writer.
Definition: TrajectoryWriter.cpp:14
string getOutputPath() const
Definition: TrajectoryWriter.h:89
shared_ptr< SyncFileWriter< Trajectory const & > > getSyncFileWriter() const
Get the synchronous file writer used to write trajectories.
Definition: TrajectoryWriter.h:72
void setOutputFilePath(string const &path)
Set path to output file.
Definition: TrajectoryWriter.cpp:31
fs::path getOutputFilePath() const
Get the path to the output file.
Definition: TrajectoryWriter.h:84