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

Manager to handle multiple entity creation. Responds to DtIfCreateMutipleEntity messages.

Classes

struct  CreateEntitiesGroup
 

Public Member Functions

 DtMultipleEntityCreationManager (DtCgf *cgf)
 
virtual ~DtMultipleEntityCreationManager ()
 
virtual bool init ()
 

Protected Types

typedef std::list< std::pair
< CreateEntitiesGroup
*, DtNavAreaQuery::Ptr > > 
QueuedQueryData
 

Protected Member Functions

virtual void processCreateMultipleEntities (DtSimMessage *msg)
 
virtual void createSelectionGroups (const DtString groupName, const std::vector< DtUUID > &entNames)
 
virtual bool collisionWithOtherEntities (DtExtent &extent, const DtVector &pos, double radius)
 
virtual DtLocalObjectcreateEntity (const DtVector &location, const DtBufferSerialize::DtGroupEntityInfo &entityInfo)
 
virtual void processCreateMultipleEntitiesNoNavData (const DtBufferSerialize::DtGroupEntityInfo &entityInfo, const DtSimObject *areaObject, std::vector< DtUUID > &nameList)
 
virtual void processSimTick ()
 
virtual bool ProcessCreationPointTest (const DtVector &localPoint, DtNavAreaQuery *query)
 

Static Protected Member Functions

static void createMultipleEntitiesCallback (DtSimMessage *msg, void *usr)
 
static void simTickCallback (void *arg)
 
static bool CreationPointTestCallback (const DtVector &localPoint, DtNavAreaQuery *query, void *userData)
 

Protected Attributes

QueuedQueryData myQueuedQueries
 
std::list< std::pair
< DtLocalObject
*, DtSetDataRequest * > > 
myQueuedSetMessages
 
std::list< std::pair
< DtLocalObject *, DtSimTask * > > 
myQueuedTaskMessages
 
DtCgfmyCgf
 
int myDelayTaskingTickCount
 

Private Member Functions

 DtMultipleEntityCreationManager (const DtMultipleEntityCreationManager &orig)
 
DtMultipleEntityCreationManageroperator= (const DtMultipleEntityCreationManager &orig)
 

Member Typedef Documentation

Constructor & Destructor Documentation

DtMultipleEntityCreationManager::DtMultipleEntityCreationManager ( DtCgf cgf)
virtual DtMultipleEntityCreationManager::~DtMultipleEntityCreationManager ( )
virtual
DtMultipleEntityCreationManager::DtMultipleEntityCreationManager ( const DtMultipleEntityCreationManager orig)
private

Not implemented.

Member Function Documentation

DtMultipleEntityCreationManager& DtMultipleEntityCreationManager::operator= ( const DtMultipleEntityCreationManager orig)
private

Not implemented.

virtual bool DtMultipleEntityCreationManager::init ( )
virtual

Must be called after construction to initialize the callbacks.

static void DtMultipleEntityCreationManager::createMultipleEntitiesCallback ( DtSimMessage msg,
void *  usr 
)
staticprotected

calls processCreateMultipleEntities

virtual void DtMultipleEntityCreationManager::processCreateMultipleEntities ( DtSimMessage msg)
protectedvirtual

Multiple entity creation callback. This function does the heart of entity creation and is called whenever the DtCreateMultipleEntitiesType message is processed.

virtual void DtMultipleEntityCreationManager::createSelectionGroups ( const DtString  groupName,
const std::vector< DtUUID > &  entNames 
)
protectedvirtual

Create a selection group from the entities created.

virtual bool DtMultipleEntityCreationManager::collisionWithOtherEntities ( DtExtent extent,
const DtVector pos,
double  radius 
)
protectedvirtual

Determine if a location collides with existing entities.

virtual DtLocalObject* DtMultipleEntityCreationManager::createEntity ( const DtVector location,
const DtBufferSerialize::DtGroupEntityInfo entityInfo 
)
protectedvirtual

Creates the entity using the generated location and the info for its creation group.

virtual void DtMultipleEntityCreationManager::processCreateMultipleEntitiesNoNavData ( const DtBufferSerialize::DtGroupEntityInfo entityInfo,
const DtSimObject areaObject,
std::vector< DtUUID > &  nameList 
)
protectedvirtual

A simpler version of spawning used when the area is not in NavData. Creates entities at random locations. This is a last resort used only when NavData cannot be found.

static void DtMultipleEntityCreationManager::simTickCallback ( void *  arg)
staticprotected

Calls processSimTick to send out queued tasks/sets to avoid network flood and lost messages after a batch of entities has been created.

virtual void DtMultipleEntityCreationManager::processSimTick ( )
protectedvirtual

Sends out queued tasks/sets in batches.

static bool DtMultipleEntityCreationManager::CreationPointTestCallback ( const DtVector localPoint,
DtNavAreaQuery query,
void *  userData 
)
staticprotected
virtual bool DtMultipleEntityCreationManager::ProcessCreationPointTest ( const DtVector localPoint,
DtNavAreaQuery query 
)
protectedvirtual

Member Data Documentation

QueuedQueryData DtMultipleEntityCreationManager::myQueuedQueries
protected
std::list<std::pair<DtLocalObject*, DtSetDataRequest*> > DtMultipleEntityCreationManager::myQueuedSetMessages
protected
std::list<std::pair<DtLocalObject*, DtSimTask*> > DtMultipleEntityCreationManager::myQueuedTaskMessages
protected
DtCgf* DtMultipleEntityCreationManager::myCgf
protected
int DtMultipleEntityCreationManager::myDelayTaskingTickCount
protected

Indicates that a spawn message was just processed and draining the message queues should wait.


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

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)