VR-Forces 4.0.4 Class Documentation
include/vrfobjcore/fireManager.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 2004 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *********************************************************************/
00005 /*********************************************************************
00006 ** $RCSfile: fireManager.h,v $ $Revision: 1.7 $ $State: Exp $
00007 *********************************************************************/
00008 #ifndef fireManager_H_
00009 #define fireManager_H_
00010 
00013 
00014 #include <matrix/vlVector.h>
00015 
00016 #include <vl/fireInter.h>
00017 #include "vrfobjcore/fireContext.h"
00018 
00019 #include "vrfobjcore/vrfObjMgr.h"
00020 #include "vrfobjcore/vrfObject.h"
00021 #include "vrfobjcore/vrfKinState.h"
00022 #include "vrftasks/radioMsgTypes.h"
00023 #include "vrfobjcore/baseRadio.h"
00024 #include "vrfobjcore/vrfObjSR.h"
00025 
00026 #include "vrfcore/simMgr.h"
00027 #include "vrfutil/kinTools.h"
00028 #include "vrfobjparam/dmgCompDesc.h"
00029 #include "vrfobjcore/compTypes.h"
00030 
00031 #include "vrfobjcore/objectGeometricModel.h"
00032 
00033 #include <map>
00034 
00043 #include "vrfobjcore/vrfobjcoreDefines.h"
00044 class DT_DLL_vrfobjcore DtFireManager
00045 {
00046 public:
00047    
00048    typedef bool (*DtFireProcessingFunction)(const DtFireContext& fireContext, void* usr);
00049    typedef std::map<DtVrfObject*, DtGlobalObjectDesignator> DtRegisteredVrfObjects;
00050    typedef std::map<DtVrfObject*, DtFireProcessingFunction> DtFireCallbackFuncs;
00051    typedef std::map<DtVrfObject*, void*> DtFireCallbackObjects;
00052 
00055    DtFireManager(DtSimManager& simManager);
00056 
00059    virtual ~DtFireManager();
00060 
00067    virtual bool init();
00068 
00075    virtual bool reinitialize();
00076 
00077 
00085    virtual bool registerFireTarget(DtVrfObject& entity,
00086                                    DtGlobalObjectDesignator entityId, 
00087                                    void* callbackObject,
00088                                    DtFireProcessingFunction func);
00089 
00099    virtual bool registerFireTargetForRemoval(DtVrfObject& entity);
00100 
00108    virtual bool unRegisterFireTarget(DtVrfObject& entity);
00109 
00111    virtual void sendFireInteraction(DtFireInteraction& fire);
00112 
00113 protected:
00114 
00120    bool testInvariant() const;   
00121 
00132    static void detonationCallback(DtDetonationInteraction* fireInter, void* usr);
00133 
00145    virtual void processDetonation(const DtDetonationInteraction& fire);
00146 
00147 
00152    static void fireCallback(DtFireInteraction* fireInter, void* usr);
00153 
00165    virtual void processFire(const DtFireInteraction& fire);
00166 
00167 
00169    virtual void determineUnderFire(const DtDetonationInteraction& detonation);
00170 
00172    virtual void determineUnderFire(const DtFireInteraction& fireInter);
00173 
00175    virtual void removeQueuedFireTargets();
00176 
00177 protected:
00178 
00181    DtFireManager(const DtFireManager& orig);
00183    DtFireManager& operator=(const DtFireManager& other);
00184 
00185 protected:
00187    DtRegisteredVrfObjects myFireTargets;
00188 
00191    DtFireCallbackFuncs myFireCallbacks;
00192 
00196    DtFireCallbackObjects myFireCallbackObjects;
00197 
00199    std::vector<DtVrfObject*> myFireTargetsToBeRemoved;
00200    
00201    DtSimManager& mySimManager;
00202 };
00203 
00204 
00205 #endif
00206 
00207 
00208 

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)