VR-Forces 4.7 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>
18 
19 class DtVrfObject;
20 class DtSimManager;
22 
26  const DtSubordinateManager& subordinateManager, void* usr);
27 
30 {
32  void* myUserData;
33 };
34 
47 {
48 private:
51 
52 public:
54  DtSubordinateManager(DtSimManager* simObjectManager);
55 
58 
60  const DtSubordinateManager& operator=(const DtSubordinateManager& orig);
61 
63  virtual ~DtSubordinateManager();
64 
66  virtual DtSubordinateManager* clone() const;
67 
71 
73  virtual bool addSubordinate(DtVrfObject* subordinate, int designator = 0);
74 
76  virtual bool addSubordinateBefore (DtVrfObject* subordinate,
77  DtVrfObject* beforeObject, int designator = 0);
78 
81  virtual bool addSubordinateAfter (DtVrfObject* subordinate,
82  DtVrfObject* afterObject, int designator = 0);
83 
85  virtual void removeSubordinate(DtVrfObject* subordinate);
88 
89  virtual void removeAllSubordinates();
90 
92  virtual int numSubordinates() const;
93 
95  virtual void resetDesignatorsToSubordinateOrder();
96 
99  virtual DtVrfObject* firstSubordinate() const;
100  virtual DtVrfObject* lastSubordinate() const;
101 
103  virtual bool isSubordinate(const DtEntityIdentifier& id) const;
104  virtual bool isSubordinate(DtVrfObject* simObj) const;
105 
109  const DtKeyedVrfObjectIterator& iterator() const;
110 
113  virtual int designatorForSubordinate(DtVrfObject* subordinate) const;
114  virtual int designatorForSubordinate(const DtEntityIdentifier& id) const;
115 
118  virtual DtVrfObject* subordinateForDesignator(int designator) const;
119 
123  virtual bool setDesignator(const DtEntityIdentifier& id, int designator);
124  virtual bool setDesignator(DtVrfObject* subordinate, int designator);
125 
127  virtual int firstAvailableDesignator(int start = 1) const;
128 
131  virtual int maxUsedDesignator() const;
132 
136  virtual void reorderToDesignatorOrder();
137 
139  virtual void designatorOrderedList(std::vector<DtEntityIdentifier>&
140  designatorOrderedList) const;
141 
144  virtual void setSubordinateOrder(const std::vector<DtEntityIdentifier>&
145  orderedList);
146 
149  virtual void addSubordinatesChangedCallback(
150  DtSubordinateManagerCallbackFcn fcn, void* userData);
151 
154  virtual void removeSubordinatesChangedCallback(
155  DtSubordinateManagerCallbackFcn fcn, void* userData);
156 
158  virtual int nextAvailableDesignator(int cur = 0) const;
159 
160 protected:
161  void copySubordinateList(const DtList& list);
162  void emptySubordinateList();
163 
165  DtListItem* findSubordinateItem(const DtEntityIdentifier& id) const;
166 
167  virtual void invokeSubordinatesChangedCallbacks() const;
168 
169 protected:
178 
182  std::vector<DtSubordinateManagerCallbackInfo> mySubordinatesChangedCallbackList;
183 };

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)