![]() |
VR-Link API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 00007 #ifndef hResOffInter_H_ 00008 #define hResOffInter_H_ 00009 00010 #if DtHLA 00011 00012 #include "hIntWEncDec.h" 00013 #include "hostStructs.h" 00014 #include <matrix/vlMath.h> 00015 #include "packets/logisticsP.h" 00016 00017 00018 00022 00023 #define DtSUPPLY_VALID 1 00024 #define DtSUPPLY_BAD_INDEX 0 00025 00026 class DT_DLL_VL DtResupplyOfferInteraction; 00027 class DT_DLL_VL DtExerciseConn; 00028 00029 00031 typedef void (*DtResupplyOfferInteractionCb) 00032 (DtResupplyOfferInteraction* inter, void* usr); 00033 00034 00039 00040 00041 class DT_DLL_VL DtResupplyOfferInteraction : public DtInteractionWithEncDec 00042 { 00043 public: 00044 00046 DtResupplyOfferInteraction(); 00047 00049 virtual ~DtResupplyOfferInteraction(); 00050 00052 DtResupplyOfferInteraction(const DtResupplyOfferInteraction& orig); 00053 00055 DtResupplyOfferInteraction& operator=( 00056 const DtResupplyOfferInteraction& orig); 00057 00059 virtual void printData() const; 00060 00062 virtual void printDataToStream(std::ostream& stream) const; 00063 00065 virtual void setReceivingId(const DtGlobalObjectDesignator &receiver); 00066 virtual const DtGlobalObjectDesignator &receivingId() const; 00067 00069 virtual void setSupplyingId(const DtGlobalObjectDesignator &supplier); 00070 virtual const DtGlobalObjectDesignator &supplyingId() const; 00071 00073 virtual void setSupplies(const void* data, int numBytes); 00074 virtual const void* supplies() const; 00075 00077 virtual void setNumSupplyTypes(int numTypes); 00078 virtual int numSupplyTypes() const; 00079 00080 virtual void setNthSupply(int supplyIndex, const DtEntityType &supply, 00081 float quantity, int *retCode = NULL); 00082 00083 virtual const DtEntityType &nthSupply(int supplyIndex, 00084 float *quantity = NULL, 00085 int *retCode = NULL) const; 00086 00087 virtual float supplyQuantity(const DtEntityType &supply) const; 00088 00089 virtual void changeSuppliesSize(int newSize); 00090 00091 virtual int indexInBounds(int ind) const; 00092 00093 00095 virtual const char* name() const; 00096 00097 public: 00098 00101 static DtInteraction* create(); 00102 00105 static void addCallback(DtExerciseConn* conn, 00106 DtResupplyOfferInteractionCb cb, void* usr, 00107 DtDDMRegionSP region = DtDDMRegionSP()); 00108 static void removeCallback(DtExerciseConn* conn, 00109 DtResupplyOfferInteractionCb cb, void* usr, 00110 DtDDMRegionSP region = DtDDMRegionSP()); 00111 00112 protected: 00113 00114 DtGlobalObjectDesignator myReceivingObject; 00115 DtGlobalObjectDesignator mySupplyingObject; 00116 int myNumSupplyTypes; 00117 DtNetSupplyQuantity* mySupplies; 00118 DtEntityType myNthSupply; 00119 }; 00120 00121 inline const DtGlobalObjectDesignator& DtResupplyOfferInteraction:: 00122 receivingId() const 00123 { 00124 return myReceivingObject; 00125 } 00126 00127 inline const DtGlobalObjectDesignator& DtResupplyOfferInteraction:: 00128 supplyingId() const 00129 { 00130 return mySupplyingObject; 00131 } 00132 00133 inline void DtResupplyOfferInteraction::setReceivingId( 00134 const DtGlobalObjectDesignator &receiver) 00135 { 00136 myReceivingObject = receiver; 00137 } 00138 00139 inline void DtResupplyOfferInteraction::setSupplyingId( 00140 const DtGlobalObjectDesignator &supplier) 00141 { 00142 mySupplyingObject = supplier; 00143 } 00144 00145 inline const char* DtResupplyOfferInteraction::name() const 00146 { 00147 return "DtResupplyOfferInteraction"; 00148 } 00149 00150 #endif 00151 #endif 00152