VR-Forces 4.0.4 Class Documentation
include/vrfmodel/damageAdjudicationActuator.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2004 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /******************************************************************************
00006 ** $RCSfile: damageAdjudicationActuator.h,v $ $Revision: 1.16 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00013 
00014 
00015 #ifndef damageAdjudicationActuator_H_
00016 #define damageAdjudicationActuator_H_
00017 
00018 #include "vrfobjcore/actCmpnt.h"
00019 
00020 #include <geometry/boundingVolumeFace.h>
00021 
00022 class DtDetonationContext;
00023 class DtDamageAdjudicationComponentDescriptor;
00024 class DtSimMessage;
00025 class DtSimBaseRadio;
00026 class DtPrbRangeTableEntry;
00027 
00044 
00063 
00064 #include "vrfmodel/vrfmodelDefines.h"
00065 class DT_DLL_vrfmodel DtDamageAdjudicationActuator : public DtActuatorComponent
00066 {
00067 
00068 public:
00069 
00072    DtDamageAdjudicationActuator(const DtString& name, 
00073       DtVrfObject* owner,
00074       DtSimManager* simManager, 
00075       DtComponentDescriptor* desc = 0,
00076       DtReaderWriterRegistry* parentRegistry = 0);
00077 
00080    virtual ~DtDamageAdjudicationActuator();
00081 
00091    virtual bool init();
00092 
00099    static bool processDirectDetonationCallback(const DtDetonationContext& detonationContext, void* usr);
00100 
00107    static bool processCollateralDetonationCallback(const DtDetonationContext& detonationContext, void* usr);
00108 
00131    
00133    virtual bool adjudicateDirectDamage(const DtDetonationContext& detonationContext);
00134 
00136    virtual bool adjudicateCollateralDamage(const DtDetonationContext& detonationContext);
00137 
00140    virtual DtString type() const;
00141 
00151    virtual void tick();
00152 
00154    static void setDestroyedCallback(DtSimMessage* msg, void* usrData);
00155 
00157    static void setRestoredCallback(DtSimMessage* msg, void* usrData);
00158 
00162    static DtSimComponent * creator(const DtString& name, 
00163       DtVrfObject* owner,
00164       DtSimManager* simManager, 
00165       DtComponentDescriptor* desc = 0,
00166       DtReaderWriterRegistry* parentRegistry = 0);
00167 
00168 protected:
00169 
00172    virtual void getDirectFireSurfaceAndAngleOfIncidence(DtDetonationContext& detonationContext);
00173 
00176    virtual void getIndirectFireSurfaceAndAngleOfIncidence(DtDetonationContext& detonationContext);
00177 
00179    virtual DtSymbolString getSurface(DtBoundingVolumeFace impactSurface);
00180 
00192    virtual bool getRangeEntry(const DtDetonationContext& detonationContext,
00193       DtPrbRangeTableEntry& rangeEntry, bool isDirectDamage = true) const;
00194 
00205    virtual bool isCatastrophicallyKilled(DtPrbRangeTableEntry& rangeEntry, 
00206       DtSymbolString catastrophicKillString) const;
00207 
00217    virtual bool isFirepowerKilled(DtPrbRangeTableEntry& rangeEntry, 
00218       DtSymbolString firepowerKillString) const;
00219    
00229    virtual bool isMobilityKilled(DtPrbRangeTableEntry& rangeEntry, 
00230       DtSymbolString mobilityKillString) const;
00231 
00232 
00234    virtual DtSymbolString catastrophicKillString() const;
00235 
00237    virtual DtSymbolString mobilityKillString() const;
00238 
00240    virtual DtSymbolString firepowerKillString() const;
00241 
00248    virtual void determineDestroyedStatus();
00249 
00250 
00253    virtual bool isRegisteredForDetonations() const;
00254    virtual void setIsRegisteredForDetonations(bool yesOrNo);
00256 
00264    virtual void setDestroyed();
00265 
00268    virtual void setRestored();
00269 
00274    virtual bool registerForDetonations();
00275 
00279    virtual bool unregisterForDetonations();
00280 
00282    virtual void setMobilityKilled();
00283 
00285    virtual void setFirepowerKilled();
00286 
00288    virtual void setRadio(DtSimBaseRadio* radio);
00289 
00290 protected:
00291    
00292    DtDamageAdjudicationComponentDescriptor* myDamageComponentDescriptor;
00293    DtTime                       myStopSmokingTime;
00294    DtTime                       myStopFlamingTime;
00295 
00296 
00297 private:
00298    
00300    DtDamageAdjudicationActuator();
00301 
00303    DtDamageAdjudicationActuator(const DtDamageAdjudicationActuator& orig);
00304 
00306    DtDamageAdjudicationActuator& operator=(const DtDamageAdjudicationActuator& orig);
00307 
00308 private:
00311    bool myIsRegisteredForDetonations;
00312 };
00313 
00314 #endif
00315 

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)