VR-Forces 4.8 Class Documentation
 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) 2019 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( "iconsGroupSet" );
91  addOverlayGroupSet( "rangeInfoGroupSet" );
92  addOverlayGroupSet( "entityInfoPinnedGroupSet" );
93  addOverlayGroupSet( "symbolDecorationGroupSet" );
94  }
95 
98  virtual void addOverlayGroupSet( const std::string& name );
99 
103  virtual void addOverlayGroupSetUnder( const std::string& name,
104  const std::string& beforeName );
105 
109  virtual void addOverlayGroupSetAbove( const std::string& name,
110  const std::string& afterName );
111 
114  virtual const GroupRangeList& overlayGroupSets() const;
115 
119  virtual GroupRangeList& overlayGroupSets();
120 
126  virtual unsigned int nextGroupId( const std::string& groupSetName );
127 
128  protected:
129 
130  template <typename ManagerClass>
131  friend ManagerClass& defaultManagerInstanceFunction(DtDe&,bool);
132 
133  template <typename ManagerClass>
134  friend void defaultManagerRegisterInstanceFunction(DtDe&,ManagerClass*);
135 
138 
141 
144 
148  virtual void initializeGroupIdGenerators();
149 
150  protected:
151 
157  {
158  public:
159 
164  DtOverlayGroupIdGenerator( const std::string& name,
165  unsigned int minId, unsigned int maxId );
166 
172  unsigned int nextGroupId();
173 
174  protected:
175 
176  std::string myGroupName;
177 
178  unsigned int myNextId;
179 
180  unsigned int myMinId;
181  unsigned int myMaxId;
182 
183  };
184 
185  protected:
186 
188  typedef boost::unordered_map<std::string,DtOverlayGroupIdGenerator*>
190 
192 
194 
196 
197  unsigned int myNextGroupId;
198 
200 
201  };
202 
203 }
std::string myGroupName
Definition: DtOverlayGroupManager.h:176
Virtual base class.
Definition: DtVirtualBaseClass.h:22
unsigned int myMaxId
Definition: DtOverlayGroupManager.h:181
boost::unordered_map< std::string, DtOverlayGroupIdGenerator * > GroupIdGeneratorList
Map type for mapping overlay group sets to their ID generators.
Definition: DtOverlayGroupManager.h:189
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:197
Manages the allocation of overlay groups.
Definition: DtOverlayGroupManager.h:37
Generates group ids for within the given range.
Definition: DtOverlayGroupManager.h:156
void initializeDefaultGroupSets()
Initialization of the default group sets used by VR-Vantage.
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:37
Contains makVrv::DtVirtualBaseClass class.
bool myModificationsLockedFlag
Definition: DtOverlayGroupManager.h:199
GroupRangeList myOverlayGroupRanges
Definition: DtOverlayGroupManager.h:193
#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:840
DtDe * myOptionalDe
Definition: DtOverlayGroupManager.h:195
Base class to provide boost signal/slot management.
ManagerClass & defaultManagerInstanceFunction(DtDe &de, bool allowedInSlave)
default Manager instance function.
Definition: DtDe.h:802
unsigned int myMinId
Definition: DtOverlayGroupManager.h:180
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
unsigned int myNextId
Definition: DtOverlayGroupManager.h:178
GroupIdGeneratorList myGroupIdGenerators
Definition: DtOverlayGroupManager.h:191
Contains DLL export macros.

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)