16 #include <vl/globalObjectDesignator.h>
17 #include <vl/eventId.h>
19 #include <vlpi/entityIdentifier.h>
21 #include <TENA/Middleware/Callback/Callback.h>
22 #include <DCT/Utils/SmartPtr.h>
24 namespace MAKVrExchange
27 namespace DtTenaBroker
30 class DtCollisionInteraction;
33 typedef void (*DtCollisionInteractionCb)(DtCollisionInteraction* inter,
void* usr);
38 class DT_DLL_VLTENA DtCollisionInteraction :
public DtInteraction
43 DtCollisionInteraction();
46 virtual ~DtCollisionInteraction();
49 DtCollisionInteraction(
const DtCollisionInteraction& orig);
52 DtCollisionInteraction& operator=(
const DtCollisionInteraction& orig);
55 virtual void setIssueId(
const DtGlobalObjectDesignator&
id);
58 virtual const DtGlobalObjectDesignator& issueId()
const;
61 virtual void setCollideId(
const DtGlobalObjectDesignator&
id);
64 virtual const DtGlobalObjectDesignator& collideId()
const;
67 virtual void setEventId(
const DtEventID&
id);
70 virtual const DtEventID& eventId()
const;
73 virtual void setCollisionType(DtCollisionType t);
76 virtual DtCollisionType collisionType()
const;
79 virtual void setVelocity(
const DtVector& veloc);
82 virtual const DtVector& velocity()
const;
85 virtual void setMass(DtFloat32 mass);
88 virtual DtFloat32 mass()
const;
91 virtual void setEntityCoords(
const DtVector& coords);
94 virtual const DtVector& entityCoords()
const;
97 virtual const char* name()
const;
100 virtual void printData()
const;
103 virtual void printDataToStream(std::ostream& stream)
const;
109 static DtInteraction* create();
113 static void addCallback(DtExerciseConn* conn,
114 DtCollisionInteractionCb cb,
void* usr);
115 static void removeCallback(DtExerciseConn* conn,
116 DtCollisionInteractionCb cb,
void* usr);
120 DtGlobalObjectDesignator myIssueId;
121 DtGlobalObjectDesignator myCollideId;
123 DtCollisionType myCollisionType;
126 DtVector myEntityCoords;