![]() |
VR-Link API Documentation for DIS
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 #ifndef hFireInter_H_ 00007 #define hFireInter_H_ 00008 00012 00013 #if DtHLA 00014 00015 00016 #include "hIntWEncDec.h" 00017 #include "hostStructs.h" 00018 #include "eventId.h" 00019 00020 00021 00022 class DT_DLL_VL DtFireInteraction; 00023 class DT_DLL_VL DtExerciseConn; 00024 00025 00026 00028 typedef void (*DtFireInteractionCb)(DtFireInteraction* inter, void* usr); 00029 00035 class DT_DLL_VL DtFireInteraction : public DtInteractionWithEncDec 00036 { 00037 public: 00038 00040 DtFireInteraction(); 00041 00043 virtual ~DtFireInteraction(); 00044 00046 DtFireInteraction(const DtFireInteraction& orig); 00047 00049 DtFireInteraction& operator=(const DtFireInteraction& orig); 00050 00052 virtual void printData() const; 00053 00055 virtual void printDataToStream(std::ostream& stream) const; 00056 00058 virtual void printDataToString(DtString& buffer) const; 00059 00061 virtual void setAttackerId(const DtGlobalObjectDesignator& id); 00062 virtual const DtGlobalObjectDesignator& attackerId() const; 00063 00065 virtual void setTargetId(const DtGlobalObjectDesignator& id); 00066 virtual const DtGlobalObjectDesignator& targetId() const; 00067 00069 virtual void setMunitionId(const DtGlobalObjectDesignator& id); 00070 virtual const DtGlobalObjectDesignator& munitionId() const; 00071 00073 virtual void setEventId(const DtEventID& id); 00074 virtual const DtEventID& eventId() const; 00075 00077 virtual void setFireMissionIndex(unsigned long i); 00078 virtual unsigned long fireMissionIndex() const; 00079 00081 virtual void setLocation(const DtVector& location); 00082 virtual const DtVector& location() const; 00083 00085 virtual void setVelocity(const DtVector& velocity); 00086 virtual const DtVector& velocity() const; 00087 00089 virtual void setRange(double range); 00090 virtual double range() const; 00091 00093 virtual void setFuseType(DtDetonatorFuze f); 00094 virtual DtDetonatorFuze fuseType() const; 00095 00097 virtual void setMunitionType(const DtEntityType& t); 00098 virtual const DtEntityType& munitionType() const; 00099 00101 virtual void setQuantity(int q); 00102 virtual int quantity() const; 00103 00105 virtual void setRate(int r); 00106 virtual int rate() const; 00107 00109 virtual void setWarheadType(DtWarheadType t); 00110 virtual DtWarheadType warheadType() const; 00111 00113 virtual const char* name() const; 00114 00115 public: 00116 00119 static DtInteraction* create(); 00120 00123 static void addCallback(DtExerciseConn* conn, 00124 DtFireInteractionCb cb, void* usr, DtDDMRegionSP region = DtDDMRegionSP()); 00125 static void removeCallback(DtExerciseConn* conn, 00126 DtFireInteractionCb cb, void* usr, DtDDMRegionSP region = DtDDMRegionSP()); 00127 00128 protected: 00129 00130 DtGlobalObjectDesignator myAttackerId; 00131 DtGlobalObjectDesignator myTargetId; 00132 DtGlobalObjectDesignator myMunitionId; 00133 DtEventID myEventId; 00134 unsigned long myFireMissionIndex; 00135 DtVector myLocation; 00136 DtVector myVelocity; 00137 double myRange; 00138 DtDetonatorFuze myFuseType; 00139 DtEntityType myMunitionType; 00140 int myQuantity; 00141 int myRate; 00142 DtWarheadType myWarheadType; 00143 }; 00144 00145 #endif 00146 #endif 00147 00148