VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtPostProcessManager.h
Go to the documentation of this file.
1 /*****************************************************************************
2 * Copyright (c) 2020 MAK Technologies, Inc.
3 * All rights reserved.
4 *****************************************************************************/
5 
6 #pragma once
7 
11 
13 
15 
16 namespace makVrv
17 {
18  class DtPostProcessor;
19  class DtOsgChannel;
20  class DtObserverObject;
21 
26  {
27  public:
28 
30 
31  virtual ~DtPostProcessManager();
32 
35  virtual void update(DtChannel *inChannel);
36 
38  bool hasPostProcessor(DtChannel* channel, const std::string& processorType);
39 
41  bool enablePostProcessor(DtChannel* channel, const std::string& processorType);
43  bool disablePostProcessor(DtChannel* channel, const std::string& processorType);
45 
47  bool hasEffect(DtChannel* channel, const std::string& effect);
48 
50  bool enableEffect(DtChannel* channel, const std::string& effect);
52  bool disableEffect(DtChannel* channel, const std::string& effect);
54 
56  bool enableEffects(DtChannel* channel, EffectNameList& effectPostList);
58  bool disableEffects(DtChannel* channel, EffectNameList& effectPostList);
60 
62  DtPostProcessor* postProcessorFromType(DtChannel* channel, const std::string& type);
63 
66  DtPostProcessor* lastPostProcessorInChain(DtChannel* channel);
67 
68  protected:
70  virtual void slot_channelCreated(DtChannelManager* channelManager,
71  DtChannel* channel);
72 
75  virtual void slot_channelDestroyed(DtChannelManager* channelManager,
76  DtChannel* channel);
77 
79  virtual void slot_observerSettingChanged( DtObserverObject* observer,
80  int setting, bool value );
81 
84  bool setPostProcessorEnable(DtChannel* channel,
85  const std::string& processorType, bool enabled);
86 
88  bool setEffectEnable(DtChannel* channel,
89  const std::string& effect, bool enabled);
90 
93  DtPostProcessor* postProcessorFromEffect(DtChannel* channel, const std::string& effect);
94 
97  void deletePostProcessorMaps(DtChannel *channel);
98 
99 
100  protected:
102 
103  // Per channel { "myeffect", DtPostProcessor* }
104  typedef std::map<std::string, DtPostProcessor*> EffectToPostProcessorMap;
105  typedef boost::unordered_map<DtChannel*, EffectToPostProcessorMap> ChannelEffectToPostMap;
106 
107  // Per channel { "myPostProcessorType", DtPostProcessor* } in order
108  typedef std::map<std::string, DtPostProcessor*> ProcessorTypeToPostProcessorMap;
109  typedef boost::unordered_map<DtChannel*, ProcessorTypeToPostProcessorMap> ChannelTypeToPostMap;
110 
111  typedef std::map<DtChannel*, DtPostProcessor*> ChannelToPostProcessorMap;
112 
113  // per channel map of post processor effect names and the
114  // corresponding DtPostProcessor*
116 
117  // per channel map of post processor type names and the
118  // corresponding DtPostProcessor*
120 
122  };
123 
125  {
126  public:
127 
130  virtual DtPostProcessManagerInterface* create(DtDe& de);
131  };
132 }
Definition: DtPostProcessManager.h:124
ChannelEffectToPostMap myEffectToPostProcessorMap
Definition: DtPostProcessManager.h:115
ChannelToPostProcessorMap myChannelToLastPostProcessorInChainMap
Definition: DtPostProcessManager.h:121
This class provides the management of post processors and their post processing effects.
Definition: DtPostProcessManagerInterface.h:24
Creator for a DtPostProcessManagerInterface.
Definition: DtPostProcessManagerInterface.h:84
The abstract Channel Class.
Definition: DtChannel.h:29
std::map< std::string, DtPostProcessor * > EffectToPostProcessorMap
Definition: DtPostProcessManager.h:104
This abstract base class defines the interface for OS-specific keyboard and mouse event listeners...
Definition: DtObserverObject.h:29
This class provides the OSG-specific management of post-processing effects.
Definition: DtPostProcessManager.h:25
boost::unordered_map< DtChannel *, EffectToPostProcessorMap > ChannelEffectToPostMap
Definition: DtPostProcessManager.h:105
#define DT_DLL_VRVPOSTPROCESSOR
Definition: vrvPostProcessor.h:19
Contains DLL export macros.
boost::unordered_map< DtChannel *, ProcessorTypeToPostProcessorMap > ChannelTypeToPostMap
Definition: DtPostProcessManager.h:109
Base class for handling DtChannels.
Definition: DtChannelManager.h:35
Contains makVrv::DtPostProcessManagerInterface class.
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
std::map< std::string, DtPostProcessor * > ProcessorTypeToPostProcessorMap
Definition: DtPostProcessManager.h:108
ChannelTypeToPostMap myPostProcessorTypeToPostProcessorMap
Definition: DtPostProcessManager.h:119
std::map< DtChannel *, DtPostProcessor * > ChannelToPostProcessorMap
Definition: DtPostProcessManager.h:111
This class provides the OSG-specific implementation of a post processor.
Definition: DtPostProcessor.h:62
std::list< std::string > EffectNameList
List of effect names.
Definition: DtPostProcessManagerInterface.h:28

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)