VR-Forces 4.0.4 Class Documentation
include/vrfmodel/warheadDetAct.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2004 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: warheadDetAct.h,v $ $Revision: 1.18 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00014 
00015 
00016 #ifndef DtWarheadDetonationActuator_H_
00017 #define DtWarheadDetonationActuator_H_
00018 
00019 #include "vrfobjcore/actCmpnt.h"
00020 #include <vl/detonateInter.h>
00021 #include <vl/eventId.h>
00022 
00023 #include <vl/objectId.h>
00024 
00025 class Dt3dBoundingVolume;
00026 class DtWarheadDetonationActuatorPSR;
00027 class DtWarheadDetonationActuatorDescriptor;
00028 class DtSimMessage;
00029 class DtBooleanInputPort;
00030 
00031 
00052 #include "vrfmodel/vrfmodelDefines.h"
00053 class DT_DLL_vrfmodel DtWarheadDetonationActuator : public DtActuatorComponent
00054 {
00055 
00056 public:
00057 
00060    DtWarheadDetonationActuator(const DtString& name, 
00061       DtVrfObject* owner,
00062       DtSimManager* simManager, 
00063       DtComponentDescriptor* desc = 0,
00064       DtReaderWriterRegistry* parentRegistry = 0);
00065 
00067    virtual ~DtWarheadDetonationActuator();
00068 
00070    virtual bool init();
00071 
00073    virtual bool registerRadioMessageCallbacks();
00074 
00080    virtual bool createPSR();
00081 
00083    virtual void setComponentDescriptor(DtComponentDescriptor *componentDescriptor);
00084 
00087    virtual DtString type() const;
00088 
00091    virtual void tick();
00092 
00093 protected:
00094 
00096    virtual bool createPorts();
00097 
00101    virtual bool checkArmed();
00102 
00104    virtual bool checkTrigger();
00105 
00110    virtual bool checkProximityDetonate();
00111 
00113    virtual void checkMissileDetonation();
00114 
00130    virtual DtVrfObject * detectCollision(double& distToImpactSqrd,
00131                                              DtVector& detonLocationOut);
00132 
00144    virtual bool checkEntityForCollision(DtVrfObject * collidee,
00145                                        const DtVector& missilePath,
00146                                        const DtVector& missileBoxCenter,
00147                                        DtVector& detonLocationOut,
00148                                        double& distToImpactSqrd);
00149 
00168    virtual bool checkForGroundImpact(double& distToImpactSqrd,
00169                                           DtVector& impactPoint,
00170                                           DtDetonationResult& result);
00171    
00176    virtual void sendDetonation(DtVrfObject *impactedEntity,
00177                                const DtVector& detonLocation);
00178 
00182    virtual void sendDetonation(DtDetonationResult result, 
00183                                const DtVector& collisionPt);
00184 
00188    virtual void destroyAndRemoveEntity();
00189 
00190 public:
00192    static void setWarheadInfoCallback(DtSimMessage* msg, void* usr);
00193 
00196    virtual void processWarheadInfoCallback(DtSimMessage* msg);
00197 
00201    static DtSimComponent * creator(const DtString& name, 
00202       DtVrfObject* owner,
00203       DtSimManager* simManager, 
00204       DtComponentDescriptor* desc = 0,
00205       DtReaderWriterRegistry* parentRegistry = 0);
00206 
00207 private:
00210    DtWarheadDetonationActuator();
00211 
00213    DtWarheadDetonationActuator(const DtWarheadDetonationActuator & orig);
00214 
00216    const DtWarheadDetonationActuator & operator=(
00217       const DtWarheadDetonationActuator & orig);
00218 
00219 protected:
00220 
00225    DtBooleanInputPort *    myTriggerInputPort;
00226 
00227    DtVrfObjectStateRepository *myStateRep;
00228    Dt3dBoundingVolume           *myCollisionBV;
00229    DtVector                   myLastPosition;
00230    bool                  myStartPositionInited;
00231 
00234    DtWarheadDetonationActuatorPSR* myProcessState;
00235 
00236    DtWarheadDetonationActuatorDescriptor* myWarheadDescriptor;
00237    DtEventId                  myEventId;
00240    DtVrfObject*               myTargetObject;
00241 
00245    bool myNeedToDisplayTargetNotFoundWarning;
00248    bool myAmMissile;
00249 };
00250 
00251 #endif
00252 
00253 

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)