VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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.

Protected Types

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

Protected Member Functions

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

Static Protected Member Functions

static void createMultipleEntitiesCallback (DtSimMessage *msg, void *usr)
 calls processCreateMultipleEntities
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.
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.

Private Member Functions

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

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,
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 Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)