VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
orgViewManagedObjectList.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 
14 #include <vlutil/vlTime.h>
15 #include <vlpi/entityIdentifier.h>
16 #include <list>
17 #include <vlutil/vlSmartPointers.h>
18 #include <vrfutil/rwUUID.h>
19 
20 class DtVrfObject;
21 class DtOrganizationView;
23 class DtVrfObjectManager;
28 
31 typedef DtBoost::shared_ptr<DtOrgViewManagedObjectList> DtOrgViewManagedObjectListPtr;
34 typedef DtBoost::shared_ptr<const DtOrgViewManagedObjectList> DtOrgViewManagedObjectListConstPtr;
35 
43 {
44 private:
50 
51 protected:
56  const DtUUID& aggregate,
57  const DtVrfObjectPredicate& predicate,
58  bool reevaluatePeriodically = false, DtTime evaluationPeriod = 0.0);
60 
62  virtual void init();
63 
64 public:
67  static DtOrgViewManagedObjectListPtr create(
68  DtOrganizationView& organizationView,
69  const DtUUID& aggregate,
70  const DtVrfObjectPredicate& predicate,
71  bool reevaluatePeriodically = false, DtTime evaluationPeriod = 0.0);
72 
74 
76  virtual ~DtOrgViewManagedObjectList();
77 
79  virtual const DtUUID& aggregateId() const;
80 
82  virtual const DtVrfObjectPredicate& predicate() const;
83 
85  virtual bool reevaluatePeriodically() const;
86 
88  virtual DtTime evaluationPeriod() const;
89 
90  typedef std::list<const DtVrfObject*>::iterator iterator;
91  typedef std::list<const DtVrfObject*>::const_iterator const_iterator;
92 
96  virtual iterator begin();
97  virtual const_iterator begin() const;
98  virtual iterator end();
99  virtual const_iterator end() const;
100  virtual size_t size() const;
102 
103 protected:
106  virtual void add(const DtVrfObject* obj);
107  virtual void remove(const DtVrfObject* obj);
109 
112  static void childAddedCallback(const DtUUID& superior, const DtUUID& eid, void* userData);
113 
116  static void childRemovedCallback(const DtUUID& superior, const DtUUID& eid, void* userData);
117 
118  virtual void processChildAdded(const DtUUID& superior, const DtUUID& eid);
119  virtual void processChildRemoved(const DtUUID& superior, const DtUUID& eid);
120 
122  static void predicateCallback(const DtVrfObject* vrfObject,
123  DtVrfObjectPredicateEvaluator* predicateEval, void* userData);
124  virtual void processPredicateCallback(const DtVrfObject* vrfObject,
125  DtVrfObjectPredicateEvaluator* predicateEval);
126 
129  static void nodeAddedCallback(const DtUUID& eid, void* userData);
130 
133  static void nodeRemovedCallback(const DtUUID& eid, void* userData);
134 
135  virtual void processNodeAdded(const DtUUID& eid);
136  virtual void processNodeRemoved(const DtUUID& eid);
137 
138  static void objectRemovedCallback(const DtVrfObject * vrfObject, void * usr);
139  virtual void processObjectRemoved(const DtVrfObject * vrfObject);
140 
141  static void objectUUIDChangedCallback(const DtVrfObjectUUIDChangedCallbackInfo& info, void* usr);
142  virtual void processObjectUUIDChanged(const DtVrfObjectUUIDChangedCallbackInfo& info);
143 
144  virtual void registerAggregateNodeCallbacks();
145  virtual void registerOrgViewCallbacks();
146  virtual void registerObjectManagerCallbacks();
149  void unregisterAggregateNodeCallbacks();
150  void unregisterOrgViewCallbacks();
151  void unregisterPredicateCallbacksForAllChildren();
152  void unregisterPredicateCallbacks(const DtVrfObject& object);
153  void unregisterObjectManagerCallbacks();
155 
156  virtual void populateList();
157 
158 protected:
167  std::list<const DtVrfObject*> myManagedObjectList;
168 };
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
Instances of DtOrgViewManagedObjectList are filtered lists of subordinates for a given aggregate...
Definition: orgViewManagedObjectList.h:42
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
std::list< const DtVrfObject * >::iterator iterator
Definition: orgViewManagedObjectList.h:90
DtBoost::shared_ptr< const DtOrgViewManagedObjectList > DtOrgViewManagedObjectListConstPtr
Typedef for a shared pointer to a const DtOrgViewManagedObjectList.
Definition: orgViewManagedObjectList.h:34
This class maintains a hierarchy of the existing organized entities for a simulation based on the con...
Definition: organizationView.h:42
DtOrganizationView & myOrganizationView
Definition: orgViewManagedObjectList.h:159
voidpf void uLong size
Definition: ioapi.h:39
bool myReevaluatePeriodicallyFlag
Definition: orgViewManagedObjectList.h:165
Arguments passed by the DtVrfObjectManager::addUUIDChangedCallback callbacks.
Definition: vrfObjectManager.h:160
DtUUID myAggregateId
Definition: orgViewManagedObjectList.h:160
Instances of DtVrfObjectPredicate are used to evaluate a condition, given a DtVrfObject as an argumen...
Definition: vrfObjectPredicate.h:21
DtBoost::shared_ptr< DtOrgViewManagedObjectList > DtOrgViewManagedObjectListPtr
Typedef for a shared pointer to DtOrgViewManagedObjectList.
Definition: orgViewManagedObjectList.h:27
DtOrganizationManagerNode * myAggregateNode
Definition: orgViewManagedObjectList.h:161
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
DtTime myEvaluationPeriod
Definition: orgViewManagedObjectList.h:166
std::list< const DtVrfObject * > myManagedObjectList
Definition: orgViewManagedObjectList.h:167
std::list< const DtVrfObject * >::const_iterator const_iterator
Definition: orgViewManagedObjectList.h:91
class DtVrfObjectManager:
Definition: vrfObjectManager.h:202
class DtVrfObjectPredicateEvaluator:
Definition: vrfObjectPredicateEvaluator.h:18
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
const DtVrfObjectManager * myObjectManager
Definition: orgViewManagedObjectList.h:162
DtVrfObjectPredicate * myNegatedPredicate
Definition: orgViewManagedObjectList.h:164
DtVrfObjectPredicate * myPredicate
Definition: orgViewManagedObjectList.h:163

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)