![]() |
VR-Link API Documentation for HLA 1516
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 00007 #ifndef hCollideInter_H_ 00008 #define hCollideInter_H_ 00009 00010 #if DtHLA 00011 00012 #include "hIntWEncDec.h" 00013 #include "hostStructs.h" 00014 #include "eventId.h" 00015 #include <matrix/vlMath.h> 00016 00017 00018 00022 00023 class DT_DLL_VL DtCollisionInteraction; 00024 class DT_DLL_VL DtExerciseConn; 00025 00026 00028 typedef void (*DtCollisionInteractionCb) 00029 (DtCollisionInteraction* inter, void* usr); 00030 00031 00035 class DT_DLL_VL DtCollisionInteraction : public DtInteractionWithEncDec 00036 { 00037 public: 00038 00040 DtCollisionInteraction(); 00041 00043 virtual ~DtCollisionInteraction(); 00044 00046 DtCollisionInteraction(const DtCollisionInteraction& orig); 00047 00049 DtCollisionInteraction& operator=(const DtCollisionInteraction& orig); 00050 00052 virtual void printData() const; 00053 00055 virtual void printDataToStream(std::ostream& stream) const; 00056 00058 virtual void setIssueId(const DtGlobalObjectDesignator& id); 00059 virtual const DtGlobalObjectDesignator& issueId() const; 00060 00062 virtual void setCollideId(const DtGlobalObjectDesignator& id); 00063 virtual const DtGlobalObjectDesignator& collideId() const; 00064 00066 virtual void setEventId(const DtEventID& id); 00067 virtual const DtEventID& eventId() const; 00068 00070 virtual void setCollisionType(DtCollisionType t); 00071 virtual DtCollisionType collisionType() const; 00072 00074 virtual void setVelocity(const DtVector& veloc); 00075 virtual const DtVector& velocity() const; 00076 00078 virtual void setMass(DtFloat32 mass); 00079 virtual DtFloat32 mass() const; 00080 00082 virtual void setEntityCoords(const DtVector& coords); 00083 virtual const DtVector& entityCoords() const; 00084 00086 virtual const char* name() const; 00087 00088 public: 00089 00092 static DtInteraction* create(); 00093 00096 static void addCallback(DtExerciseConn* conn, 00097 DtCollisionInteractionCb cb, void* usr, 00098 DtDDMRegionSP region = DtDDMRegionSP()); 00099 static void removeCallback(DtExerciseConn* conn, 00100 DtCollisionInteractionCb cb, void* usr, 00101 DtDDMRegionSP region = DtDDMRegionSP()); 00102 00103 protected: 00104 00105 DtGlobalObjectDesignator myIssueId; 00106 DtGlobalObjectDesignator myCollideId; 00107 DtEventID myEventId; 00108 DtCollisionType myCollisionType; 00109 DtVector myVelocity; 00110 DtFloat32 myMass; 00111 DtVector myEntityCoords; 00112 }; 00113 00114 #endif 00115 #endif 00116