VR-Forces 5.0.3 Developer's Guide
 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) 2022 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
15 
16 #include <vrvUtil/signalslib.h>
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 
106  virtual void setMaxPagedLOD(unsigned int lod) = 0;
107 
108  protected:
109 
113 
116  virtual DtWindow* realizeWindowConfiguration(DtWindowConfiguration& wc);
117 
119  virtual void destroyWindows();
120 
127  virtual void flush(DtWindow* window, bool lastWindow) = 0;
128 
129  protected:
130 
132 
140  };
141 
145  {
146  public:
147 
149  static DtWindowManagerSignaler& instance(DtDe& de);
150 
152  virtual ~DtWindowManagerSignaler();
153 
155  boost::signalslib::signal<void (DtWindow*)> signal_windowCreated;
156 
158  boost::signalslib::signal<void()> signal_closeConfirmationAffirmed;
159 
163  boost::signalslib::signal<void (DtWindow*)> signal_windowToBeDestroyed;
164 
167  boost::signalslib::signal<void (DtWindow*)> signal_windowResizabilityChanged;
168 
169  protected:
170 
172 
173  };
174 
178  {
179  public:
181  static DtWindowManagerCreator& instance(DtDe& de);
182 
184  static void registerInstance(DtDe& de, DtWindowManagerCreator* anInstance);
185 
187  virtual DtWindowManager* create(DtDe& de, DtWindowConfigurations& configs) = 0;
188  };
189 }
DtWindowProctor * myWindowProctor
Definition: DtWindowManager.h:137
Abstract Base class.
Definition: DtWindow.h:25
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
unsigned int myExternalContextCount
Definition: DtWindowManager.h:139
This is used to distribute information about a window from the master to slave engines.
Definition: DtWindowProctor.h:25
boost::function< void(DtChannel *)> ChannelFunction
Function type that runs on a channel object.
Definition: DtWindowManager.h:97
Component which knows how to make windows.
Definition: DtWindowManager.h:31
boost::signalslib::signal< void(DtWindow *)> signal_windowCreated
Signal emitted when a local window is added.
Definition: DtWindowManager.h:155
This owns a list of channel configurations.
Definition: DtWindowConfiguration.h:28
the Signals for DtViewManager
Definition: DtWindowManager.h:144
boost::signalslib::signal< void(DtWindow *)> signal_windowResizabilityChanged
Signal emitted when a local window needs to go from fixed size to resizeable and vice versa...
Definition: DtWindowManager.h:167
DtDe & myDe
Protected members.
Definition: DtWindowManager.h:133
Contains makVrv::DtVirtualBaseClass class.
DT_DLL_VRVCORE double distance(const makVrv::DtCoordinateSystem &, const DtVector &from, const DtVector &to)
Returns the distance from the two points. Coordinates are in local database coordinates The coordinat...
std::list< DtWindow * > WindowList
Definition: DtWindowManager.h:36
boost::signalslib::signal< void(DtWindow *)> signal_windowToBeDestroyed
Signal emitted when a local window is to be destroyed. signalslib to prevent thread issues with CDB l...
Definition: DtWindowManager.h:163
DtWindowConfigurations & myWindowConfigurations
Definition: DtWindowManager.h:135
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
Contains makVrv::DtDisplayConfiguration class.
Creator for a DtWindowManager.
Definition: DtWindowManager.h:177
boost::signalslib::signal< void()> signal_closeConfirmationAffirmed
Signal emitted before the sys prop.
Definition: DtWindowManager.h:158
DtWindowManagerSignaler & mySignaler
Definition: DtWindowManager.h:134
boost::function< void(DtWindow *)> WindowFunction
Function type that runs on a window object.
Definition: DtWindowManager.h:91
WindowList myWindowList
Definition: DtWindowManager.h:136
Proctor class for remotely controlling channels.
Definition: DtChannelProctor.h:21
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
DtChannelProctor * myChannelProctor
Definition: DtWindowManager.h:138
Contains DLL export macros.

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)