VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
organizationManagerNode.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
11 
12 #pragma once
13 
16 
17 #include <vlutil/vlList.h>
18 #include <vlpi/entityIdentifier.h>
19 #include <list>
20 #include <vector>
21 
23 typedef void (*DtOrgNodeCallbackFunction)(
24  const DtUUID& superior, const DtUUID& subordinate, void* userData);
25 
27 {
28 public:
29 
32 
35  DtOrgNodeCallbackFunction cb, void* userData);
36 
38  virtual ~DtOrgNodeCallbackInfo();
39 
42 
44  DtOrgNodeCallbackInfo& operator=(
45  const DtOrgNodeCallbackInfo& orig);
46 
48  bool operator==(const DtOrgNodeCallbackInfo& orig) const;
49  bool operator!=(const DtOrgNodeCallbackInfo& orig) const;
50 
52  virtual void setCallbackFunction(DtOrgNodeCallbackFunction funct);
53  virtual DtOrgNodeCallbackFunction callbackFunction() const;
54 
56  virtual void setUserData(void* data);
57  virtual void* userData() const;
58 
59 protected:
61  void* myUserData;
62 };
63 
65 {
66 public:
68  virtual ~DtOrganizationManagerNode();
69 
70 private:
75 
76 public:
77 
80  virtual const DtList* childList() const;
81  virtual DtList* childList();
83 
87  virtual bool removeChild(const DtOrganizationManagerNode* node);
88  virtual void removeAllChildren();
89  virtual void addChild(DtOrganizationManagerNode* node);
98  virtual void orderChildren(const std::vector<DtUUID>& childOrder);
99 
102  virtual void setParent(DtOrganizationManagerNode* parent);
103  virtual DtOrganizationManagerNode* parent() const;
105 
107  virtual void setVrfObject(const DtVrfObject*);
108  const DtSharedVrfObjectReference& vrfObject() const { return myVrfObject; };
109 
112  virtual const DtUUID& uuid() const;
114 
117  virtual void setEntityIdentifier(const DtEntityIdentifier &id);
118  virtual const DtEntityIdentifier& entityIdentifier() const;
120 
124  virtual void setIsTopLevel(bool isTopLevel);
125  virtual bool isTopLevel() const;
127 
131  virtual void addChildAddedCallback(
132  DtOrgNodeCallbackFunction fcn, void* userData);
133  virtual void removeChildAddedCallback(
134  DtOrgNodeCallbackFunction fcn, void* userData);
136 
140  virtual void addChildRemovedCallback(
141  DtOrgNodeCallbackFunction fcn, void* userData);
142  virtual void removeChildRemovedCallback(
143  DtOrgNodeCallbackFunction fcn, void* userData);
145 
153  virtual void addSubordinatesChangedCallback(
154  DtOrgNodeCallbackFunction fcn, void* userData);
155  virtual void removeSubordinatesChangedCallback(
156  DtOrgNodeCallbackFunction fcn, void* userData);
158 
160  virtual int indexOfChild(const DtUUID&) const;
161 
162 protected:
163 
165  virtual void invokeSubordinatesChangedCallbacks(
166  const DtUUID&) const;
167 
170  virtual void invokeChildAddedCallbacks(
171  const DtUUID&) const;
172 
175  virtual void invokeChildRemovedCallbacks(
176  const DtUUID&) const;
177 
179  void removeAllSubordinatesChangedCallbacks();
180 
182  virtual void childAdded(DtOrganizationManagerNode*);
183 
185  virtual void childRemoved(const DtOrganizationManagerNode*);
186 
187 protected:
189  DtList myChildList;
191  DtEntityIdentifier myEntityIdentifier;
193 
195  std::list<DtOrgNodeCallbackInfo> myChildAddedCallbackList;
196  std::list<DtOrgNodeCallbackInfo> myChildRemovedCallbackList;
197 
199 
200  mutable std::map<DtUUID, int> myChildOrder;
201 };
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
DtOrgNodeCallbackFunction myCallbackFunction
Definition: organizationManagerNode.h:60
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
Definition: organizationManagerNode.h:64
DtEntityIdentifier myEntityIdentifier
Definition: organizationManagerNode.h:191
void * myUserData
Definition: organizationManagerNode.h:61
const DtSharedVrfObjectReference & vrfObject() const
Definition: organizationManagerNode.h:108
DtList mySubordinatesChangedCallbackList
Definition: organizationManagerNode.h:194
bool myIsTopLevel
Definition: organizationManagerNode.h:192
DtList myChildList
DtList of DtOrganizationManagerNode pointers.
Definition: organizationManagerNode.h:189
DT_DLL_terrainCS bool operator==(const DtDegMinSec &lhs, const DtDegMinSec &rhs)
Definition: organizationManagerNode.h:26
void(* DtOrgNodeCallbackFunction)(const DtUUID &superior, const DtUUID &subordinate, void *userData)
Contains the declaration of DtOrganizationManagerNode, the class that represents a single node the hi...
Definition: organizationManagerNode.h:23
DtSharedVrfObjectReference class will allocate an empty DtVrfObjectReference if one is not assigned s...
Definition: vrfObjectReference.h:102
DtOrganizationManagerNode * myParentNode
Definition: organizationManagerNode.h:190
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
DtSharedVrfObjectReference myVrfObject
Definition: organizationManagerNode.h:198
DT_DLL_terrainCS bool operator!=(const DtDegMinSec &lhs, const DtDegMinSec &rhs)
std::list< DtOrgNodeCallbackInfo > myChildRemovedCallbackList
Definition: organizationManagerNode.h:196
std::map< DtUUID, int > myChildOrder
Definition: organizationManagerNode.h:200
std::list< DtOrgNodeCallbackInfo > myChildAddedCallbackList
Definition: organizationManagerNode.h:195

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)