Helios++
Helios software for LiDAR simulations
FullWaveformWriter.h
1 #pragma once
2 
3 #include <filems/write/core/BaseFullWaveformWriter.h>
4 #include <filems/write/comps/SimpleSyncFileWriter.h>
5 #include <filems/write/comps/ZipSyncFileWriter.h>
6 #include <filems/write/comps/SimpleSyncFileFullWaveformWriter.h>
7 #include <filems/write/comps/ZipSyncFileFullWaveformWriter.h>
8 #include <scanner/detector/FullWaveform.h>
9 
10 #include <boost/filesystem.hpp>
11 #include <glm/glm.hpp>
12 
13 #include <string>
14 #include <memory>
15 #include <vector>
16 
17 namespace fs=boost::filesystem;
18 
19 namespace helios { namespace filems{
20 
21 using std::string;
22 using std::shared_ptr;
23 using std::vector;
24 
31 class FullWaveformWriter : public BaseFullWaveformWriter<FullWaveform const &>
32 {
33 public:
34  // *** CONSTRUCTION / DESTRUCTION *** //
35  // ************************************ //
39  FullWaveformWriter() = default;
40  virtual ~FullWaveformWriter() = default;
41 
42  // *** M E T H O D S *** //
43  // ************************* //
47  void writeFullWaveform(FullWaveform const &fullWaveform);
53  inline void writeFullWaveformUnsafe(FullWaveform const &fullWaveform) const
54  {sfw->write(fullWaveform);}
59  shared_ptr<SyncFileWriter<FullWaveform const &>> makeWriter(
60  string const &path
61  ) const override{
62  if(isZipOutput()){
63  return make_shared<ZipSyncFileFullWaveformWriter>(
64  path
65  );
66  }
67  else return make_shared<SimpleSyncFileFullWaveformWriter>(path);
68  }
69 };
70 
71 }}
Class representing a full waveform.
Definition: FullWaveform.h:12
Definition: BaseFullWaveformWriter.h:17
Class to handle writing of full waveform to generate HELIOS++ output virtual full waveform.
Definition: FullWaveformWriter.h:32
void writeFullWaveformUnsafe(FullWaveform const &fullWaveform) const
Like filems::FullWaveformWriter::writeFullWaveform but faster because there is no validation.
Definition: FullWaveformWriter.h:53
shared_ptr< SyncFileWriter< FullWaveform const & > > makeWriter(string const &path) const override
Make a single full waveform SyncFileWriter.
Definition: FullWaveformWriter.h:59
void writeFullWaveform(FullWaveform const &fullWaveform)
Write full waveform data.
Definition: FullWaveformWriter.cpp:9
FullWaveformWriter()=default
Default constructor for full waveform writer.
bool isZipOutput() const
Get the zip output flag.
Definition: HeliosWriter.h:120
shared_ptr< SyncFileWriter< WriteArgs ... > > sfw
Synchronous file writer.
Definition: HeliosWriter.h:33