VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtPostProcessorFactory.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 
14 
15 #include <list>
16 #include <string>
17 
18 namespace makVrv
19 {
20  class DtPostProcessorCreator;
21  class DtPostProcessor;
22 
27  {
28  public:
29 
31  static DtPostProcessorFactory& instance(DtDe& de);
32 
34  virtual ~DtPostProcessorFactory();
35 
37  virtual void addCreator( const std::string& postProcessorType,
38  DtPostProcessorCreator* creator);
39 
42  virtual void postProcessorTypesSupported(
43  std::list<std::string>& postProcessorTypes) const;
44 
47  virtual DtPostProcessor* createPostProcessor(
48  const std::string& postProcessType) const;
49 
52  void registerEffect(std::string postProcessor,
53  const std::string& effectName,
55 
57  DtObserverSettingsManager::ObserverSetting observerSettingIdForEffect(
58  std::string& effectName);
59 
61  std::string effectForObserverSettingId(
63 
64  bool setOrder(std::list<std::string>& postList);
65 
67  bool hasPostProcessor(const std::string& processorType);
68 
71  bool addPostProcessorAtEnd(const std::string& processorType);
72 
75  bool addPostProcessorBefore(const std::string& processorType,
76  const std::string& beforeType);
77 
80  bool addPostProcessorAfter(const std::string& processorType,
81  const std::string& afterType);
82 
85  bool addPostProcessorAtBeginning(const std::string& processorType);
86 
88  void moveDown(const std::string& processorType);
89 
91  void moveUp(const std::string& processorType);
92 
95  void removePostProcessor(const std::string& processorType);
96 
98  void removeAllPostProcessors();
99 
102  void printAllPostProcessors();
103 
104  typedef std::list<std::string> PostProcessorNameList;
105 
107  PostProcessorNameList& postProcessorNames();
108 
109  protected:
113 
115  bool canCreatePostProcessor(std::string& processorType);
116 
117  protected:
118  typedef boost::unordered_map<std::string, DtPostProcessorCreator*>
120  typedef boost::unordered_map<std::string, DtObserverSettingsManager::ObserverSetting>
122  typedef boost::unordered_map<DtObserverSettingsManager::ObserverSetting, std::string>
124 
126 
127  // This is the order in which the post effects are created
128  // and executed
130 
133 
135  };
136 }
Virtual base class.
Definition: DtVirtualBaseClass.h:22
std::list< std::string > PostProcessorNameList
Definition: DtPostProcessorFactory.h:104
boost::unordered_map< DtObserverSettingsManager::ObserverSetting, std::string > ObserverSettingIdToEffectNameMap
Definition: DtPostProcessorFactory.h:123
PostProcessorNameList myPostProcessorNames
Definition: DtPostProcessorFactory.h:129
DtPostProcessorCreator is the common base class for all post processor creators.
Definition: DtPostProcessor.h:213
DtDe & myDe
Definition: DtPostProcessorFactory.h:134
Factory to create the specific DtPostProcessors registered when vrvOsg starts up. ...
Definition: DtPostProcessorFactory.h:26
Contains makVrv::DtObserverSettingsManager class.
#define DT_DLL_VRVPOSTPROCESSOR
Definition: vrvPostProcessor.h:19
ObserverSettingIdToEffectNameMap myObserverSettingToEffectNameMap
Definition: DtPostProcessorFactory.h:131
Contains DLL export macros.
boost::unordered_map< std::string, DtPostProcessorCreator * > PostProcessCreators
Definition: DtPostProcessorFactory.h:119
PostProcessCreators myPostProcessCreators
Definition: DtPostProcessorFactory.h:125
ObserverSetting
Definition: DtObserverSettingsManager.h:40
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
boost::unordered_map< std::string, DtObserverSettingsManager::ObserverSetting > EffectNameToObserverSettingIdMap
Definition: DtPostProcessorFactory.h:121
This class provides the OSG-specific implementation of a post processor.
Definition: DtPostProcessor.h:62
EffectNameToObserverSettingIdMap myEffectNameToObserverSettingMap
Definition: DtPostProcessorFactory.h:132

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)