VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
managedObjectList.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2005 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
14 
15 #include <vlutil/vlConfig.h>
16 #include <list>
17 #include <vlutil/vlSmartPointers.h>
18 #include <vlutil/vlTime.h>
19 
20 class DtVrfObjectManager;
23 class DtVrfObject;
24 class DtEntityIdentifier;
25 
28 typedef DtBoost::shared_ptr<DtManagedObjectList> DtManagedObjectListPtr;
31 typedef DtBoost::shared_ptr<const DtManagedObjectList> DtManagedObjectListConstPtr;
32 
42 {
43 private:
47  DtManagedObjectList& operator=(DtManagedObjectList& orig);
49 
50 protected:
53  DtManagedObjectList(const DtVrfObjectManager* objectManager,
54  const DtVrfObjectPredicate& predicate =
56  bool reevaluateFlag = false, DtTime evaluationPeriod = 0);
57 
59  virtual void init();
60 
62 
63 public:
66  static DtManagedObjectListPtr create(
67  const DtVrfObjectManager* objectManager,
68  const DtVrfObjectPredicate& predicate =
70  bool reevaluatePeriodically = false, DtTime evaluationPeriod = 0.0);
71 
73  virtual ~DtManagedObjectList();
74 
76  virtual const DtVrfObjectPredicate& predicate() const;
77 
79  virtual bool reevaluateFlag() const ;
80 
82  virtual DtTime evaluationPeriod() const;
83 
84  typedef std::list<const DtVrfObject*>::iterator iterator;
85  typedef std::list<const DtVrfObject*>::const_iterator const_iterator;
86 
87  static DtManagedObjectListPtr nullList();
88 
92  virtual iterator begin();
93  virtual const_iterator begin() const;
94  virtual iterator end();
95  virtual const_iterator end() const;
96  virtual size_t size() const;
98 
101  virtual const DtVrfObject* find(const DtEntityIdentifier& entityId) const;
102 
108  virtual void invalidate();
109 
110 
111 protected:
112  //add & remove using correct hash key type
113  virtual void add(const DtVrfObject* obj);
114  virtual void remove(const DtVrfObject* obj);
115 
117  virtual void populateList();
118 
120  static void objectAddedCallback(const DtVrfObject * vrfObject, void * usr);
121  virtual void processObjectAdded(const DtVrfObject * vrfObject);
122  static void objectRemovedCallback(const DtVrfObject * vrfObject, void * usr);
123  virtual void processObjectRemoved(const DtVrfObject * vrfObject);
124 
126  static void predicateCallback(const DtVrfObject* vrfObject,
127  DtVrfObjectPredicateEvaluator* predicateEval, void* userData);
128  virtual void processPredicateCallback(const DtVrfObject* vrfObject,
129  DtVrfObjectPredicateEvaluator* predicateEval);
130 
131 protected:
137  std::list<const DtVrfObject*> myFilteredObjectList;
138 };
139 
DtTime myEvaluationPeriod
Definition: managedObjectList.h:136
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
bool myReevaluateFlag
Definition: managedObjectList.h:135
voidpf void uLong size
Definition: ioapi.h:39
std::list< const DtVrfObject * > myFilteredObjectList
Definition: managedObjectList.h:137
const DtVrfObjectManager * myObjectManager
Definition: managedObjectList.h:132
DtVrfObjectPredicate * myNegatedPredicate
Definition: managedObjectList.h:134
Instances of DtVrfObjectPredicate are used to evaluate a condition, given a DtVrfObject as an argumen...
Definition: vrfObjectPredicate.h:21
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
std::list< const DtVrfObject * >::const_iterator const_iterator
Definition: managedObjectList.h:85
DtBoost::shared_ptr< DtManagedObjectList > DtManagedObjectListPtr
Typedef for a shared pointer to DtOrgViewManagedObjectList.
Definition: managedObjectList.h:24
std::list< const DtVrfObject * >::iterator iterator
Definition: managedObjectList.h:84
DtVrfObjectPredicate * myPredicate
Definition: managedObjectList.h:133
class DtVrfObjectManager:
Definition: vrfObjectManager.h:201
class DtVrfObjectPredicateEvaluator:
Definition: vrfObjectPredicateEvaluator.h:18
static const DtVrfObjectPredicate & nullPredicate()
Returns an instance of a DtNullVrfObjectPredicate.
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
DtBoost::shared_ptr< const DtManagedObjectList > DtManagedObjectListConstPtr
Typedef for a shared pointer to a const DtOrgViewManagedObjectList.
Definition: managedObjectList.h:31
Instances of DtManagedObjectList are created and maintained by a DtManagedObjectListManager.
Definition: managedObjectList.h:41

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)