VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtOverlayManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2021 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 #include <vrvCore/vrvCore.h>
13 
14 #include <vrvUtil/signalslib.h>
15 
16 namespace makVrv
17 {
18  class DtChannel;
19  class DtDe;
20  class DtMouseEvent;
21  class DtRenderer;
22 
26  {
27  public:
29  {
30  InvalidOverlay = 0,
39  //Allow 16 user set model sets.
40  ModelSet_UserEnd = ModelSet_UserStart + 16,
42  //Allow for 128 channel specific overlays
43  Channel_SpecificEnd = Channel_SpecificStart + 128,
48  };
49 
50  public:
51 
54 
56  virtual ~DtOverlayManager();
57 
59  DtOverlayManager(const DtOverlayManager&) = delete;
60 
62  DtOverlayManager& operator = (const DtOverlayManager&) = delete;
63 
64  public:
65 
67  virtual void render(DtChannel* channel, bool projectedGeocentricEffect,
68  float geocentricAlpha,
69  double* position, double altitude, double* matrix, double* projectionMatrix,
70  double viewportSize[2]) = 0;
71 
73  virtual void releaseResources() = 0;
74 
76  static DefaultOverlays modelSetToOverlay(unsigned int modelSet);
77 
78  virtual void enableOverlayOnChannel(unsigned int layerId, bool enabled,
79  DtChannel& channel) = 0;
80 
84  virtual bool handleMouseEvent(const DtMouseEvent& ev,
85  DtChannel& channel) = 0;
86 
88  virtual void destroyOverlayLayer(unsigned int layerId) = 0;
89 
91  virtual bool overlayLayerIsVisible(unsigned int layerId) const = 0;
92 
96  virtual void setOverlayLayerVisibility(unsigned int layerId,
97  bool visible) = 0;
98 
99  boost::signalslib::signal<void (DtChannel* channel, DefaultOverlays overlay)> signal_overlayAboutToBeRendered;
100 
101  };
102 
106  {
107  public:
108 
110  static DtOverlayManagerCreator& instance(DtDe&);
111 
113  static void registerInstance(DtDe& de,DtOverlayManagerCreator*);
114 
116  virtual DtOverlayManager* create(DtDe& de) = 0;
117  };
118 }
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
Definition: DtOverlayManager.h:38
Definition: DtOverlayManager.h:44
Definition: objectSettingsManager.h:48
Definition: DtOverlayManager.h:41
This class encapsulates a mouse button event.
Definition: DtMouseEvent.h:19
The abstract Channel Class.
Definition: DtChannel.h:35
Contains makVrv::DtVirtualBaseClass class.
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
DefaultOverlays
Definition: DtOverlayManager.h:28
boost::signalslib::signal< void(DtChannel *channel, DefaultOverlays overlay)> signal_overlayAboutToBeRendered
Definition: DtOverlayManager.h:99
Creator class.
Definition: DtOverlayManager.h:105
Abstract base class for managing the overlays.
Definition: DtOverlayManager.h:25
Definition: DtOverlayManager.h:46
Definition: DtOverlayManager.h:32
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
Definition: DtOverlayManager.h:31
Contains DLL export macros.

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)