VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Static Protected Member Functions | Protected Attributes
DtManagedObjectList Class Reference

Instances of DtManagedObjectList are created and maintained by a DtManagedObjectListManager. The lists contains a subset of the objects in DtSimObjectManager that meet the specified predicate. If specified at creation time, the list automatically updates itself periodically. The lists should be handled though shared pointers.

Classes

struct  ConnectionInformation
 

Public Types

typedef std::set
< DtSimObjectReference >
::iterator 
iterator
 
typedef std::set
< DtSimObjectReference >
::const_iterator 
const_iterator
 

Public Member Functions

 DtManagedObjectList (const DtSimulationServices *simServices, const DtVrfObjectPredicate &predicate=DtVrfObjectPredicate::nullPredicate(), bool reevaluateFlag=false, DtTime evaluationPeriod=0, const DtString &listName="")
 
 DtManagedObjectList (const std::vector< DtSimObjectReference > &subordinates, const DtVrfObjectPredicate &predicate, const DtString &listName="")
 
virtual ~DtManagedObjectList ()
 
virtual const
DtVrfObjectPredicate
predicate () const
 
virtual void tick (DtVrfCallbackQueue *queue=nullptr)
 
virtual bool reevaluateFlag () const
 
virtual DtTime evaluationPeriod () const
 
virtual const DtSimObjectfind (const DtUUID &entityId) const
 
virtual bool contains (const DtSimObjectReference &simObj) const
 
virtual void invalidate ()
 
double lastTimeModified () const
 
virtual bool isTimeToEvaluate () const
 
virtual iterator begin ()
 
virtual const_iterator begin () const
 
virtual iterator end ()
 
virtual const_iterator end () const
 
virtual size_t size () const
 

Static Public Member Functions

static DtManagedObjectListPtr create (const DtSimulationServices *objectManager, const DtVrfObjectPredicate &predicate=DtVrfObjectPredicate::nullPredicate(), bool reevaluatePeriodically=false, DtTime evaluationPeriod=0.0, const DtString &listName="")
 
static DtManagedObjectListPtr nullList ()
 

Protected Types

typedef std::map< unsigned
long long,
ConnectionInformation
ConnectionMap
 

Protected Member Functions

 DtManagedObjectList (const DtString &listName="")
 
virtual void init ()
 
virtual void init (const std::vector< DtSimObjectReference > &)
 
virtual void add (DtSimObjectReference obj)
 
virtual void remove (const DtSimObject *obj)
 
virtual void populateList ()
 
virtual void simObjectAdded (DtSimObjectReference ref)
 
virtual void processPredicateCallback (DtSimObjectReference vrfObject, DtVrfObjectPredicateEvaluator *predicateEval)
 
virtual bool shouldAdd (DtSimObjectReference ref) const
 

Static Protected Member Functions

static void predicateCallback (DtSimObjectReference vrfObject, DtVrfObjectPredicateEvaluator *predicateEval, void *userData)
 

Protected Attributes

const DtSimulationServicesmySimulationServices
 
DtVrfObjectPredicatemyPredicate
 
DtVrfObjectPredicatemyNegatedPredicate
 
bool myReevaluateFlag
 
DtTime myEvaluationPeriod
 
DtPredicateCallbackManager myPredicateCallbackManager
 
std::set< DtSimObjectReferencemyFilteredObjectList
 
DtString myListName
 
tbb::spin_mutex myMutex
 
ConnectionMap myConnectionMap
 
boost::signals2::scoped_connection mySimObjectAddedConnection
 
double myLastTimeModified
 
double myNextEvaluationTime = 0.
 

Private Member Functions

 DtManagedObjectList (DtManagedObjectList &orig)
 
DtManagedObjectListoperator= (DtManagedObjectList &orig)
 

Member Typedef Documentation

Constructor & Destructor Documentation

DtManagedObjectList::DtManagedObjectList ( DtManagedObjectList orig)
private

Not implemented.

DtManagedObjectList::DtManagedObjectList ( const DtString listName = "")
protected

Constructor Protected to control creation. Call create() instead.

DtManagedObjectList::DtManagedObjectList ( const DtSimulationServices simServices,
const DtVrfObjectPredicate predicate = DtVrfObjectPredicate::nullPredicate(),
bool  reevaluateFlag = false,
DtTime  evaluationPeriod = 0,
const DtString listName = "" 
)
DtManagedObjectList::DtManagedObjectList ( const std::vector< DtSimObjectReference > &  subordinates,
const DtVrfObjectPredicate predicate,
const DtString listName = "" 
)

Simple filtered list that is not.

virtual DtManagedObjectList::~DtManagedObjectList ( )
virtual

Destructor.

Member Function Documentation

DtManagedObjectList& DtManagedObjectList::operator= ( DtManagedObjectList orig)
private

Not implemented.

virtual void DtManagedObjectList::init ( )
protectedvirtual

Initializer; called by create() after construction.

virtual void DtManagedObjectList::init ( const std::vector< DtSimObjectReference > &  )
protectedvirtual
static DtManagedObjectListPtr DtManagedObjectList::create ( const DtSimulationServices objectManager,
const DtVrfObjectPredicate predicate = DtVrfObjectPredicate::nullPredicate(),
bool  reevaluatePeriodically = false,
DtTime  evaluationPeriod = 0.0,
const DtString listName = "" 
)
static

Calls constructor and init().

Returns
Newly constructed object.
virtual const DtVrfObjectPredicate& DtManagedObjectList::predicate ( ) const
virtual

Returns the predicate which determines membership in the list.

virtual void DtManagedObjectList::tick ( DtVrfCallbackQueue queue = nullptr)
virtual

Call to run predicate callbacks.

virtual bool DtManagedObjectList::reevaluateFlag ( ) const
virtual

Returns true if this list get reevaluated.

virtual DtTime DtManagedObjectList::evaluationPeriod ( ) const
virtual

Returns the evaluation interval.

static DtManagedObjectListPtr DtManagedObjectList::nullList ( )
static
virtual iterator DtManagedObjectList::begin ( )
virtual

Calls down to the corresponding method from contained myFilteredObjectList.

virtual const_iterator DtManagedObjectList::begin ( ) const
virtual

Calls down to the corresponding method from contained myFilteredObjectList.

virtual iterator DtManagedObjectList::end ( )
virtual

Calls down to the corresponding method from contained myFilteredObjectList.

virtual const_iterator DtManagedObjectList::end ( ) const
virtual

Calls down to the corresponding method from contained myFilteredObjectList.

virtual size_t DtManagedObjectList::size ( ) const
virtual

Calls down to the corresponding method from contained myFilteredObjectList.

virtual const DtSimObject* DtManagedObjectList::find ( const DtUUID entityId) const
virtual
Returns
the DtLocalObject* of the entity with the specified identifier if it exists on this list. Otherwise NULL.
virtual bool DtManagedObjectList::contains ( const DtSimObjectReference simObj) const
virtual
Returns
True if this list contains the specified object. This is a relatively efficient call, even for large lists.
virtual void DtManagedObjectList::invalidate ( )
virtual

Clears out all objects on the list and sets the local object manager pointer to NULL. This is called if the object manager is destroyed before the list is. After calling this, the list will not be able to contain any objects. In general, the user should not call this method. It should only be called the the manager.

double DtManagedObjectList::lastTimeModified ( ) const
inline

The last wall clock time this list was modified (object added or removed)

virtual bool DtManagedObjectList::isTimeToEvaluate ( ) const
virtual

Based on simulation time.

virtual void DtManagedObjectList::add ( DtSimObjectReference  obj)
protectedvirtual
virtual void DtManagedObjectList::remove ( const DtSimObject obj)
protectedvirtual
virtual void DtManagedObjectList::populateList ( )
protectedvirtual

Sets up the list with initial contents based on predicate.

virtual void DtManagedObjectList::simObjectAdded ( DtSimObjectReference  ref)
protectedvirtual
static void DtManagedObjectList::predicateCallback ( DtSimObjectReference  vrfObject,
DtVrfObjectPredicateEvaluator predicateEval,
void *  userData 
)
staticprotected

Object predicate callbacks.

virtual void DtManagedObjectList::processPredicateCallback ( DtSimObjectReference  vrfObject,
DtVrfObjectPredicateEvaluator predicateEval 
)
protectedvirtual
virtual bool DtManagedObjectList::shouldAdd ( DtSimObjectReference  ref) const
protectedvirtual

Some items (like terrain damage) should never be added.

Member Data Documentation

const DtSimulationServices* DtManagedObjectList::mySimulationServices
protected
DtVrfObjectPredicate* DtManagedObjectList::myPredicate
protected
DtVrfObjectPredicate* DtManagedObjectList::myNegatedPredicate
protected
bool DtManagedObjectList::myReevaluateFlag
protected
DtTime DtManagedObjectList::myEvaluationPeriod
protected
DtPredicateCallbackManager DtManagedObjectList::myPredicateCallbackManager
protected
std::set<DtSimObjectReference> DtManagedObjectList::myFilteredObjectList
protected
DtString DtManagedObjectList::myListName
protected
tbb::spin_mutex DtManagedObjectList::myMutex
protected
ConnectionMap DtManagedObjectList::myConnectionMap
protected
boost::signals2::scoped_connection DtManagedObjectList::mySimObjectAddedConnection
protected
double DtManagedObjectList::myLastTimeModified
protected
double DtManagedObjectList::myNextEvaluationTime = 0.
mutableprotected

The documentation for this class was generated from the following file:

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)