VR-Forces 4.6 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtWindowManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
15 
16 #include <boost/signal.hpp>
17 
18 namespace makVrv
19 {
20  class DtChannelProctor;
21  class DtChannelManager;
22  class DtDe;
23  class DtWindow;
24  class DtChannel;
25  class DtAgentManager;
26  class DtWindowProctor;
27  class DtWindowManagerSignaler;
28 
32  {
33 
34  public:
35 
36  typedef std::list<DtWindow*> WindowList;
37 
38  public:
39 
41  virtual ~DtWindowManager();
42 
44  virtual void realizeConfiguration();
45 
49  virtual bool addWindow(const std::string& displayName, const DtWindowConfiguration& wc);
50 
53  virtual bool destroyWindow( const std::string& displayName, const std::string& windowName );
54 
57  virtual bool modifyWindow( const std::string& displayName, const std::string& windowName,
58  const DtWindowConfiguration& config );
59 
61  DtWindow* findWindow(const std::string& name);
62 
64  virtual WindowList& windows();
65 
67  virtual const WindowList& windows() const;
68 
71  virtual void addWindow(DtWindow* window);
72 
74  virtual void destroyWindow(DtWindow* window);
75 
78  virtual bool tick();
79 
82  virtual bool isVisibleAndCloseToCamera(
83  float sphereRadius,
84  float sphereCenterX, float sphereCenterY, float sphereCenterZ,
85  float distance, float upX, float upY, float upZ) const = 0;
86 
88  virtual int maxTextureUnits() const;
89 
91  typedef boost::function<void (DtWindow*)> WindowFunction;
92 
94  virtual void forEachWindow(const WindowFunction& perWindowFunction);
95 
97  typedef boost::function<void (DtChannel*)> ChannelFunction;
98 
100  virtual void forEachChannel(const ChannelFunction& perChannelFunction);
101 
103  virtual void setIncrementalCompileOption(bool enable) = 0;
104 
105  protected:
106 
110 
113  virtual DtWindow* realizeWindowConfiguration(DtWindowConfiguration& wc);
114 
116  virtual void destroyWindows();
117 
118  protected:
119 
121 
129  };
130 
134  {
135  public:
136 
138  static DtWindowManagerSignaler& instance(DtDe& de);
139 
141  virtual ~DtWindowManagerSignaler();
142 
144  boost::signal<void (DtWindow*)> signal_windowCreated;
145 
147  boost::signal<void()> signal_closeConfirmationAffirmed;
148 
150  boost::signal<void (DtWindow*)> signal_windowToBeDestroyed;
151 
154  boost::signal<void (DtWindow*)> signal_windowResizabilityChanged;
155 
156  protected:
157 
159 
160  };
161 
165  {
166  public:
168  static DtWindowManagerCreator& instance(DtDe& de);
169 
171  static void registerInstance(DtDe& de, DtWindowManagerCreator* anInstance);
172 
174  virtual DtWindowManager* create(DtDe& de, DtWindowConfigurations& configs) = 0;
175  };
176 }

Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)