VISR  0.11.1
Versatile Interactive Scene Renderer
channel_object.hpp
Go to the documentation of this file.
1 /* Copyright Institute of Sound and Vibration Research - All rights reserved */
2 
3 #ifndef VISR_OBJECTMODEL_CHANNEL_OBJECT_HPP_INCLUDED
4 #define VISR_OBJECTMODEL_CHANNEL_OBJECT_HPP_INCLUDED
5 
6 #include "object.hpp"
7 
8 #include "export_symbols.hpp"
9 
10 #include <vector>
11 
12 namespace visr
13 {
14 namespace objectmodel
15 {
16 
20 class VISR_OBJECTMODEL_LIBRARY_SYMBOL ChannelObject: public Object
21 {
22 public:
27  using OutputChannelId = std::string;
28 
32  using OutputChannelList = std::vector<OutputChannelId>;
33 
38  using OutputChannelContainer = std::vector< OutputChannelList >;
39 
40  ChannelObject( ) = delete;
41 
42  explicit ChannelObject( ObjectId id );
43 
44  virtual ~ChannelObject();
45 
46  /*virtual*/ ObjectTypeId type() const;
47 
48  /*virtual*/ std::unique_ptr<Object> clone() const;
49 
53  std::size_t size() const;
54 
59  OutputChannelContainer const & outputChannels() const;
60 
65  OutputChannelList const & outputChannel(std::size_t index) const;
66 
71  void setOutputChannels(OutputChannelContainer const & newChannels);
72 
73  /*
74  * Doesn't make sense anymore.
75  */
76  void setOutputChannels( OutputChannelId const * val, std::size_t numValues );
77 
81  void setOutputChannel(std::size_t index, OutputChannelId val);
82 
86  void setOutputChannel( std::size_t index, OutputChannelList const & outputChannels );
87 
88  LevelType diffuseness() const;
89 
90  void setDiffuseness( LevelType newDiffuseness );
91 protected:
92 
93 private:
94  OutputChannelContainer mOutputChannels;
95 
96  LevelType mDiffuseness;
97 
98 };
99 
100 } // namespace objectmodel
101 } // namespace visr
102 
103 #endif // VISR_OBJECTMODEL_CHANNEL_OBJECT_HPP_INCLUDED
Definition: channel_object.hpp:20
unsigned int ObjectId
Definition: object.hpp:23
ObjectTypeId
Definition: object_type.hpp:26
float LevelType
Definition: object.hpp:31
Definition: options.cpp:10
std::string OutputChannelId
Definition: channel_object.hpp:27
Definition: object.hpp:36
std::vector< OutputChannelId > OutputChannelList
Definition: channel_object.hpp:32
std::vector< OutputChannelList > OutputChannelContainer
Definition: channel_object.hpp:38