VR-Forces 4.8 Class Documentation
 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. More...

Classes

struct  CreateEntitiesGroup
 

Public Member Functions

 DtMultipleEntityCreationManager (DtCgf *cgf)
 
virtual ~DtMultipleEntityCreationManager ()
 
virtual bool init ()
 Must be called after construction to initialize the callbacks. More...
 

Protected Types

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

Protected Member Functions

virtual void processCreateMultipleEntities (DtSimMessage *msg)
 Multiple entity creation callback. More...
 
virtual void createSelectionGroups (const DtString groupName, const std::vector< DtUUID > &entNames)
 Create a selection group from the entities created. More...
 
virtual bool collisionWithOtherEntities (DtExtent &extent, const DtVector &pos, double radius)
 Determine if a location collides with existing entities. More...
 
virtual DtVrfObjectcreateEntity (const DtVector &location, const DtBufferSerialize::DtGroupEntityInfo &entityInfo)
 Creates the entity using the generated location and the info for its creation group. More...
 
virtual void processCreateMultipleEntitiesNoNavData (const DtBufferSerialize::DtGroupEntityInfo &entityInfo, const DtVrfObject *areaObject, std::vector< DtUUID > &nameList)
 A simpler version of spawning used when the area is not in NavData. More...
 
virtual void processSimTick ()
 Sends out queued tasks/sets in batches. More...
 
virtual bool ProcessCreationPointTest (const DtVector &localPoint, DtNavAreaQuery *query)
 

Static Protected Member Functions

static void createMultipleEntitiesCallback (DtSimMessage *msg, void *usr)
 calls processCreateMultipleEntities More...
 
static void simTickCallback (void *arg)
 Calls processSimTick to send out queued tasks/sets to avoid network flood and lost messages after a batch of entities has been created. More...
 
static bool CreationPointTestCallback (const DtVector &localPoint, DtNavAreaQuery *query, void *userData)
 

Protected Attributes

QueuedQueryData myQueuedQueries
 
std::list< std::pair
< DtVrfObject
*, DtSetDataRequest * > > 
myQueuedSetMessages
 
std::list< std::pair
< DtVrfObject *, DtSimTask * > > 
myQueuedTaskMessages
 
DtCgfmyCgf
 
int myDelayTaskingTickCount
 Indicates that a spawn message was just processed and draining the message queues should wait. More...
 

Private Member Functions

 DtMultipleEntityCreationManager (const DtMultipleEntityCreationManager &orig)
 Not implemented. More...
 
DtMultipleEntityCreationManageroperator= (const DtMultipleEntityCreationManager &orig)
 Not implemented. More...
 

Detailed Description

Manager to handle multiple entity creation.

Responds to DtIfCreateMutipleEntity messages.

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 DtVrfObject* 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 DtVrfObject 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<DtVrfObject*, DtSetDataRequest*> > DtMultipleEntityCreationManager::myQueuedSetMessages
protected
std::list<std::pair<DtVrfObject*, 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 Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)