![]() |
VR-Link API Documentation for HLA Evolved
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 00007 #ifndef hDetInter_H_ 00008 #define hDetInter_H_ 00009 00010 #if DtHLA 00011 00012 00013 #include "hIntWEncDec.h" 00014 #include "hostStructs.h" 00015 #include "eventId.h" 00016 00017 #include <vlpi/articulatedPartCollection.h> 00018 00022 00023 class DtExerciseConn; 00024 class DtDetonationInteraction; 00025 class DtFireInteraction; 00026 00027 00028 00030 typedef void (*DtDetonationInteractionCb) (DtDetonationInteraction* inter, 00031 void* usr); 00032 00037 class DT_DLL_VL DtDetonationInteraction : public DtInteractionWithEncDec 00038 { 00039 public: 00040 00042 DtDetonationInteraction(); 00043 00046 DtDetonationInteraction(const DtFireInteraction& fire); 00047 00049 virtual ~DtDetonationInteraction(); 00050 00052 DtDetonationInteraction(const DtDetonationInteraction& orig); 00053 00055 DtDetonationInteraction& operator=(const DtDetonationInteraction& orig); 00056 00058 virtual void printData() const; 00059 virtual void printDataToString(DtString& str) const; 00060 00062 virtual void printDataToStream(std::ostream& stream) const; 00063 00065 virtual void setAttackerId(const DtGlobalObjectDesignator& id); 00066 virtual const DtGlobalObjectDesignator& attackerId() const; 00067 00069 virtual void setTargetId(const DtGlobalObjectDesignator& id); 00070 virtual const DtGlobalObjectDesignator& targetId() const; 00071 00073 virtual void setMunitionId(const DtGlobalObjectDesignator& id); 00074 virtual const DtGlobalObjectDesignator& munitionId() const; 00075 00077 virtual void setEventId(const DtEventID& id); 00078 virtual const DtEventID& eventId() const; 00079 00081 virtual void setVelocity(const DtVector& velocity); 00082 virtual const DtVector& velocity() const; 00083 00085 virtual void setWorldLocation(const DtVector& location); 00086 virtual const DtVector& worldLocation() const; 00087 00089 virtual void setEntityLocation(const DtVector& location); 00090 virtual const DtVector& entityLocation() const; 00091 00093 virtual void setResult(DtDetonationResult result); 00094 virtual DtDetonationResult result() const; 00095 00097 virtual void setFuseType(DtDetonatorFuze fuse); 00098 virtual DtDetonatorFuze fuseType() const; 00099 00101 virtual void setMunitionType(const DtEntityType& munType); 00102 virtual const DtEntityType& munitionType() const; 00103 00105 virtual void setQuantity(int quant); 00106 virtual int quantity() const; 00107 00109 virtual void setRate(int rate); 00110 virtual int rate() const; 00111 00113 virtual void setWarheadType(DtWarheadType type); 00114 virtual DtWarheadType warheadType() const; 00115 00117 00118 00119 00120 00121 virtual DtArticulatedPartCollection* artPartList(); 00122 virtual const DtArticulatedPartCollection* artPartList() const; 00124 00126 00127 virtual void setArticulatedParts(const DtArticulatedPartCollection& apList); 00128 const DtArticulatedPartCollection& articulatedParts() const; 00130 00132 virtual const char* name() const; 00133 00134 public: 00135 00138 static DtInteraction* create(); 00139 00142 static void addCallback(DtExerciseConn* conn, 00143 DtDetonationInteractionCb cb, void* usr, 00144 DtDDMRegionSP region = DtDDMRegionSP()); 00145 static void removeCallback(DtExerciseConn* conn, 00146 DtDetonationInteractionCb cb, void* usr, 00147 DtDDMRegionSP region = DtDDMRegionSP()); 00148 00149 protected: 00150 00151 DtVector myWorldLocation; 00152 DtDetonationResult myResult; 00153 DtEventID myEventId; 00154 DtGlobalObjectDesignator myAttackerId; 00155 DtVector myVelocity; 00156 DtDetonatorFuze myFuseType; 00157 DtGlobalObjectDesignator myMunitionId; 00158 DtEntityType myMunitionType; 00159 int myQuantity; 00160 int myRate; 00161 DtVector myEntityLocation; 00162 DtGlobalObjectDesignator myTargetId; 00163 DtWarheadType myWarheadType; 00164 DtArticulatedPartCollection myPartList; 00165 }; 00166 00167 #endif 00168 #endif 00169 00170