VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
subordinateManager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
10 
11 #include <vlutil/vlConfig.h>
12 #include <map>
13 #include <vlutil/vlList.h>
14 #include <vlpi/disEnums.h>
17 
18 class DtVrfObject;
19 class DtSimManager;
21 
25  const DtSubordinateManager& subordinateManager, void* usr);
26 
29 {
31  void* myUserData;
32 };
33 
46 {
47 private:
50 
51 public:
53  DtSubordinateManager(const DtSimManager* simObjectManager);
54 
57 
59  const DtSubordinateManager& operator=(const DtSubordinateManager& orig);
60 
62  virtual ~DtSubordinateManager();
63 
65  virtual DtSubordinateManager* clone() const;
66 
70 
72  virtual bool addSubordinate(const DtVrfObject* subordinate, int designator = 0);
73 
75  virtual bool addSubordinateBefore (const DtVrfObject* subordinate,
76  const DtVrfObject* beforeObject, int designator = 0);
77 
80  virtual bool addSubordinateAfter (const DtVrfObject* subordinate,
81  const DtVrfObject* afterObject, int designator = 0);
82 
84  virtual void removeSubordinate(const DtVrfObject* subordinate);
87 
88  virtual void removeAllSubordinates();
89 
91  virtual int numSubordinates() const;
92 
94  virtual void resetDesignatorsToSubordinateOrder();
95 
98  virtual DtSharedVrfObjectReference firstSubordinate() const;
99  virtual DtSharedVrfObjectReference lastSubordinate() const;
100 
102  virtual bool isSubordinate(const DtEntityIdentifier& id) const;
103  virtual bool isSubordinate(const DtVrfObject* simObj) const;
104 
108  DtKeyedVrfObjectIterator iterator() const;
109 
112  virtual int designatorForSubordinate(const DtVrfObject* subordinate) const;
113  virtual int designatorForSubordinate(const DtEntityIdentifier& id) const;
114 
117  virtual DtSharedVrfObjectReference subordinateForDesignator(int designator) const;
118 
122  virtual bool setDesignator(const DtEntityIdentifier& id, int designator);
123  virtual bool setDesignator(const DtVrfObject* subordinate, int designator);
124 
126  virtual int firstAvailableDesignator(int start = 1) const;
127 
130  virtual int maxUsedDesignator() const;
131 
135  virtual void reorderToDesignatorOrder();
136 
138  virtual void designatorOrderedList(std::vector<DtEntityIdentifier>&
139  designatorOrderedList) const;
140 
143  virtual void setSubordinateOrder(const std::vector<DtEntityIdentifier>&
144  orderedList);
145 
148  virtual void addSubordinatesChangedCallback(
149  DtSubordinateManagerCallbackFcn fcn, void* userData);
150 
153  virtual void removeSubordinatesChangedCallback(
154  DtSubordinateManagerCallbackFcn fcn, void* userData);
155 
157  virtual int nextAvailableDesignator(int cur = 0) const;
158 
159 protected:
160  void copySubordinateList(const DtList& list);
161  void emptySubordinateList();
162 
164  DtListItem* findSubordinateItem(const DtEntityIdentifier& id) const;
165 
166  virtual void invokeSubordinatesChangedCallbacks() const;
167 
168 protected:
176 
180  std::vector<DtSubordinateManagerCallbackInfo> mySubordinatesChangedCallbackList;
181 };
DtSubordinateManagerCallbackFcn myCallbackFunction
Definition: subordinateManager.h:30
Description: Objects may contain a collection of other objects, such as overlays or pseudo-aggregate ...
Definition: subordinateManager.h:45
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
void(* DtSubordinateManagerCallbackFcn)(const DtSubordinateManager &subordinateManager, void *usr)
Callback function definition for callbacks registered on changes to the designator order in DtSubordi...
Definition: subordinateManager.h:24
std::vector< DtSubordinateManagerCallbackInfo > mySubordinatesChangedCallbackList
List of DtSubordinateCallbackFcn*s.
Definition: subordinateManager.h:180
void * myUserData
Definition: subordinateManager.h:31
DtEntityIdIntAssociationList myDesignatorTable
The table of entity id&#39;s and designators is used to associate a designator with each entity...
Definition: subordinateManager.h:175
DtSharedVrfObjectReference class will allocate an empty DtVrfObjectReference if one is not assigned s...
Definition: vrfObjectReference.h:102
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
DtList mySubordinateList
The list of entity id&#39;s is kept since order is important.
Definition: subordinateManager.h:171
File: keyedObjIter.h.
Definition: keyedVrfObjectIterator.h:23
Container used in callback lists.
Definition: subordinateManager.h:28
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:102
const DtSimManager * mySimObjectManager
Definition: subordinateManager.h:169
Class: DtEntityIdIntAssociationList.
Definition: entityIdIntAssociationList.h:32

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)