![]() |
VR-Link API Documentation for HLA 1516
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 00007 #ifndef tCollideInter_H_ 00008 #define tCollideInter_H_ 00009 00010 #if DtTENA 00011 00012 #include "tInteraction.h" 00013 #include <vlpi/entityIdentifier.h> 00014 #include "globalObjDes.h" 00015 #include "eventId.h" 00016 00017 #include <DCT/Utils/SmartPtr.h> 00018 #include <TENA/Middleware/Callback/Callback.h> 00019 00023 00024 class DT_DLL_VL DtCollisionInteraction; 00025 00027 typedef void (*DtCollisionInteractionCb)(DtCollisionInteraction* inter, void* usr); 00028 00029 00030 00034 class DT_DLL_VL DtCollisionInteraction : public DtInteraction 00035 { 00036 public: 00038 DtCollisionInteraction(); 00039 00041 virtual ~DtCollisionInteraction(); 00042 00044 DtCollisionInteraction(const DtCollisionInteraction& orig); 00045 00047 DtCollisionInteraction& operator=(const DtCollisionInteraction& orig); 00048 00050 virtual void setIssueId(const DtGlobalObjectDesignator& id); 00051 00053 virtual const DtGlobalObjectDesignator& issueId() const; 00054 00056 virtual void setCollideId(const DtGlobalObjectDesignator& id); 00057 00059 virtual const DtGlobalObjectDesignator& collideId() const; 00060 00062 virtual void setEventId(const DtEventID& id); 00063 00065 virtual const DtEventID& eventId() const; 00066 00068 virtual void setCollisionType(DtCollisionType t); 00069 00071 virtual DtCollisionType collisionType() const; 00072 00074 virtual void setVelocity(const DtVector& veloc); 00075 00077 virtual const DtVector& velocity() const; 00078 00080 virtual void setMass(DtFloat32 mass); 00081 00083 virtual DtFloat32 mass() const; 00084 00086 virtual void setEntityCoords(const DtVector& coords); 00087 00089 virtual const DtVector& entityCoords() const; 00090 00092 virtual const char* name() const; 00093 00095 virtual void printData() const; 00096 00098 virtual void printDataToStream(std::ostream& stream) const; 00099 00100 public: 00101 00104 static DtInteraction* create(); 00105 00108 static void addCallback(DtExerciseConn* conn, 00109 DtCollisionInteractionCb cb, void* usr); 00110 static void removeCallback(DtExerciseConn* conn, 00111 DtCollisionInteractionCb cb, void* usr); 00112 00113 protected: 00114 DtGlobalObjectDesignator myIssueId; 00115 DtGlobalObjectDesignator myCollideId; 00116 DtEventID myEventId; 00117 DtCollisionType myCollisionType; 00118 DtVector myVelocity; 00119 DtFloat32 myMass; 00120 DtVector myEntityCoords; 00121 }; 00122 00123 #endif 00124 #endif 00125 00126 00127