VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtOverlayGroupManager.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>
13 
16 
17 #include <boost/unordered_map.hpp>
18 
19 #include <list>
20 
21 namespace makVrv
22 {
23 
24  class DtBaseConnection;
25 
38  {
39  public:
40 
43  {
44  HiddenGroup = 0,
45  DefaultGroup = 1,
46  UnusedLowGroup = 2,
47  GroupsGroup = 500000,
48  UnusedHighGroup = 1000000,
49  };
50 
52  typedef std::list<std::string> GroupRangeList;
53 
54  public:
55 
58  static DtOverlayGroupManager& instance( DtDe& de );
59 
62  static DtOverlayGroupManager& instance( DtBaseConnection& sim );
63 
65  virtual DtOverlayGroupManager* clone();
66 
68  static void copyInstance( DtBaseConnection& sim, DtDe& de );
69 
71  virtual ~DtOverlayGroupManager();
72 
87  {
88  addOverlayGroupSet( "hoverGroupSet" );
89  addOverlayGroupSet( "selectedGroupSet" );
90  addOverlayGroupSet( "aboveIconsGroupSet" );
91  addOverlayGroupSet( "iconsGroupSet" );
92  addOverlayGroupSet( "rangeInfoGroupSet" );
93  addOverlayGroupSet( "entityInfoPinnedGroupSet" );
94  addOverlayGroupSet( "symbolDecorationGroupSet" );
95  }
96 
99  virtual void addOverlayGroupSet( const std::string& name );
100 
104  virtual void addOverlayGroupSetUnder( const std::string& name,
105  const std::string& beforeName );
106 
110  virtual void addOverlayGroupSetAbove( const std::string& name,
111  const std::string& afterName );
112 
115  virtual const GroupRangeList& overlayGroupSets() const;
116 
120  virtual GroupRangeList& overlayGroupSets();
121 
127  virtual unsigned int nextGroupId( const std::string& groupSetName );
128 
129  protected:
130 
131  template <typename ManagerClass>
132  friend ManagerClass& defaultManagerInstanceFunction(DtDe&,bool);
133 
134  template <typename ManagerClass>
135  friend void defaultManagerRegisterInstanceFunction(DtDe&,ManagerClass*);
136 
139 
142 
145 
149  virtual void initializeGroupIdGenerators();
150 
151  protected:
152 
158  {
159  public:
160 
165  DtOverlayGroupIdGenerator( const std::string& name,
166  unsigned int minId, unsigned int maxId );
167 
173  unsigned int nextGroupId();
174 
175  protected:
176 
177  std::string myGroupName;
178 
179  unsigned int myNextId;
180 
181  unsigned int myMinId;
182  unsigned int myMaxId;
183 
184  };
185 
186  protected:
187 
189  typedef boost::unordered_map<std::string,DtOverlayGroupIdGenerator*>
191 
193 
195 
197 
198  unsigned int myNextGroupId;
199 
201 
202  };
203 
204 }
std::string myGroupName
Definition: DtOverlayGroupManager.h:177
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 myMaxId
Definition: DtOverlayGroupManager.h:182
boost::unordered_map< std::string, DtOverlayGroupIdGenerator * > GroupIdGeneratorList
Map type for mapping overlay group sets to their ID generators.
Definition: DtOverlayGroupManager.h:190
std::list< std::string > GroupRangeList
List type for the names and order of configured overlay group sets.
Definition: DtOverlayGroupManager.h:52
unsigned int myNextGroupId
Definition: DtOverlayGroupManager.h:198
Manages the allocation of overlay groups. Overlay groups are used to determine the draw order of spri...
Definition: DtOverlayGroupManager.h:37
Generates group ids for within the given range. The group id generator keeps track of the next availa...
Definition: DtOverlayGroupManager.h:157
void initializeDefaultGroupSets()
Initialization of the default group sets used by VR-Vantage. This method creates the default overlay ...
Definition: DtOverlayGroupManager.h:86
OverlayGroupId
Enumerates the various special valued overlay group ids.
Definition: DtOverlayGroupManager.h:42
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:35
Contains makVrv::DtVirtualBaseClass class.
bool myModificationsLockedFlag
Definition: DtOverlayGroupManager.h:200
GroupRangeList myOverlayGroupRanges
Definition: DtOverlayGroupManager.h:194
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
void defaultManagerRegisterInstanceFunction(DtDe &de, ManagerClass *mgr)
Default implementation of how to register a manager, especially necessary when overriding the manager...
Definition: DtDe.h:887
DtDe * myOptionalDe
Definition: DtOverlayGroupManager.h:196
Base class to provide boost signal/slot management.
ManagerClass & defaultManagerInstanceFunction(DtDe &de, bool allowedInSlave)
default Manager instance function. Manager requirements: 1) Static instance function 2) Protected DtS...
Definition: DtDe.h:849
unsigned int myMinId
Definition: DtOverlayGroupManager.h:181
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
unsigned int myNextId
Definition: DtOverlayGroupManager.h:179
GroupIdGeneratorList myGroupIdGenerators
Definition: DtOverlayGroupManager.h:192
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)