VR-Forces 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) 2024 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 
77  virtual void preChannelManagersTick() = 0;
78 
81  virtual bool tick();
82 
85  virtual bool isVisibleAndCloseToCamera(
86  float sphereRadius,
87  float sphereCenterX, float sphereCenterY, float sphereCenterZ,
88  float distance, float upX, float upY, float upZ) const = 0;
89 
91  virtual int maxTextureUnits() const;
92 
94  typedef std::function<void (DtWindow*)> WindowFunction;
95 
97  virtual void forEachWindow(const WindowFunction& perWindowFunction);
98 
100  typedef std::function<void (DtChannel*)> ChannelFunction;
101 
103  virtual void forEachChannel(const ChannelFunction& perChannelFunction);
104 
106  virtual void setIncrementalCompileOption(bool enable) = 0;
107 
109  virtual void setMaxPagedLOD(unsigned int lod) = 0;
110 
112  virtual std::vector<DtChannel*> findChannelsWithObserverName(const std::string& obsName);
113 
114  protected:
115 
119 
122  virtual DtWindow* realizeWindowConfiguration(DtWindowConfiguration& wc);
123 
125  virtual void destroyWindows();
126 
133  virtual void flush(DtWindow* window, bool lastWindow) = 0;
134 
135  protected:
136 
138 
146  };
147 
151  {
152  public:
153 
155  static DtWindowManagerSignaler& instance(DtDe& de);
156 
158  virtual ~DtWindowManagerSignaler();
159 
161  boost::signalslib::signal<void (DtWindow*)> signal_windowCreated;
162 
164  boost::signalslib::signal<void()> signal_closeConfirmationAffirmed;
165 
167  boost::signalslib::signal<void (DtWindow*)> signal_windowToBeDestroyed;
168 
171  boost::signalslib::signal<void (DtWindow*)> signal_windowResizabilityChanged;
172 
173  protected:
174 
176 
177  };
178 
182  {
183  public:
185  static DtWindowManagerCreator& instance(DtDe& de);
186 
188  static void registerInstance(DtDe& de, DtWindowManagerCreator* anInstance);
189 
191  virtual DtWindowManager* create(DtDe& de, DtWindowConfigurations& configs) = 0;
192  };
193 }
DtWindowProctor * myWindowProctor
Definition: DtWindowManager.h:143
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:145
This is used to distribute information about a window from the master to slave engines.
Definition: DtWindowProctor.h:25
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:161
std::function< void(DtWindow *)> WindowFunction
Function type that runs on a window object.
Definition: DtWindowManager.h:94
This owns a list of channel configurations.
Definition: DtWindowConfiguration.h:26
the Signals for DtViewManager
Definition: DtWindowManager.h:150
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:171
DtDe & myDe
Protected members.
Definition: DtWindowManager.h:139
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.
Definition: DtWindowManager.h:167
DtWindowConfigurations & myWindowConfigurations
Definition: DtWindowManager.h:141
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
Contains makVrv::DtDisplayConfiguration class.
Creator for a DtWindowManager.
Definition: DtWindowManager.h:181
boost::signalslib::signal< void()> signal_closeConfirmationAffirmed
Signal emitted before the sys prop.
Definition: DtWindowManager.h:164
std::function< void(DtChannel *)> ChannelFunction
Function type that runs on a channel object.
Definition: DtWindowManager.h:100
DtWindowManagerSignaler & mySignaler
Definition: DtWindowManager.h:140
WindowList myWindowList
Definition: DtWindowManager.h:142
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:76
DtChannelProctor * myChannelProctor
Definition: DtWindowManager.h:144
Contains DLL export macros.

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)