Helios++
Helios software for LiDAR simulations
VectorialWriteStrategy.h
1 #pragma once
2 
3 #include <filems/write/strategies/WriteStrategy.h>
4 
5 #include <vector>
6 
7 namespace helios { namespace filems{
8 
9 using std::vector;
10 
19 template <typename WriteArg, typename ... BiasType>
21  vector<WriteArg> const &,
22  BiasType ...
23 >{
24 protected:
25  // *** ATTRIBUTES *** //
26  // ******************** //
30  WriteStrategy<WriteArg const &, BiasType ...> &ws;
31 
32 public:
33  // *** CONSTRUCTION / DESTRUCTION *** //
34  // ************************************ //
40  ) :
41  ws(ws)
42  {}
43  virtual ~VectorialWriteStrategy() = default;
44 
45  // *** WRITE STRATEGY INTERFACE *** //
46  // ********************************** //
51  void write(vector<WriteArg> const &v, BiasType ... bias) override
52  {for(WriteArg const &vi: v) ws.write(vi, bias ...);}
53 
54 
55 };
56 
57 }}
Concrete class specializing WriteStrategy to make any other write strategy operate over a vector.
Definition: VectorialWriteStrategy.h:23
VectorialWriteStrategy(WriteStrategy< WriteArg const &, BiasType ... > &ws)
Default constructor for vectorial write strategy.
Definition: VectorialWriteStrategy.h:38
WriteStrategy< WriteArg const &, BiasType ... > & ws
The write strategy.
Definition: VectorialWriteStrategy.h:30
void write(vector< WriteArg > const &v, BiasType ... bias) override
Write given vector.
Definition: VectorialWriteStrategy.h:51
Interface that must be implemented by any class which supports write implementations for file writers...
Definition: WriteStrategy.h:14
virtual void write(WriteArgs ... writeArgs)=0
Abstract write function. Must be overridden by children classes.