VR-Link API Documentation for HLA 1.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
collisionElasticPdu.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992-2013 MAK Technologies, Inc
3 ** All rights reserved.
4 *********************************************************************/
5 
9 
10 #pragma once
11 
12 #if DtDIS
13 
14 #include <vlutil/vlMachineTypes.h>
15 #include "hostStructs.h"
16 #include "interactionDIS.h"
17 #include <matrix/vlMath.h>
18 #include "exerciseConn.h"
19 
20 #include "packets/collisElasP.h"
21 
22 class DT_DLL_VL DtCollisionElasticPdu;
23 
25 typedef void (*DtCollisionElasticPduCb)(DtCollisionElasticPdu* pdu, void* usr);
26 
27 
31 class DT_DLL_VL DtCollisionElasticPdu : public DtInteraction
32 {
33 
34 public:
35 
37  DtCollisionElasticPdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
38  DtCollisionElasticPdu(const DtNetCollisionElasticPdu* initial,
39  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
40  DtCollisionElasticPdu(const DtCollisionElasticPdu& orig);
41 
43  virtual ~DtCollisionElasticPdu();
44 
47  static DtPdu* create(const DtNetPacket* initial,
48  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
49 
52  static void addCallback(DtExerciseConn* conn,
53  DtCollisionElasticPduCb cb, void* usr);
54  static void removeCallback(DtExerciseConn* conn,
55  DtCollisionElasticPduCb cb, void* usr);
56 
58  DtCollisionElasticPdu& operator=(const DtCollisionElasticPdu& orig);
59 
61  virtual void setIssuingEntityID(const DtEntityIdentifier& entity);
62  virtual const DtEntityIdentifier& issuingEntityID() const;
63 
65  virtual void setCollidingEntityID(const DtEntityIdentifier& entity);
66  virtual const DtEntityIdentifier& collidingEntityID() const;
67 
69  virtual void setEventID(const DtEventID& event);
70  virtual const DtEventID& eventID() const;
71 
73  virtual void setContactVelocity(const DtVector& velocity);
74  virtual const DtVector& contactVelocity() const;
75 
77  virtual void setMass(DtFloat32 value);
78  virtual DtFloat32 mass() const;
79 
81  virtual void setLocationOfImpact(const DtVector& coords);
82  virtual const DtVector& locationOfImpact() const;
83 
85  virtual void setCollisionInterResultXX(DtFloat32 result);
86  virtual DtFloat32 collisionInterResultXX() const;
87 
89  virtual void setCollisionInterResultXY(DtFloat32 result);
90  virtual DtFloat32 collisionInterResultXY() const;
91 
93  virtual void setCollisionInterResultXZ(DtFloat32 result);
94  virtual DtFloat32 collisionInterResultXZ() const;
95 
97  virtual void setCollisionInterResultYY(DtFloat32 result);
98  virtual DtFloat32 collisionInterResultYY() const;
99 
101  virtual void setCollisionInterResultYZ(DtFloat32 result);
102  virtual DtFloat32 collisionInterResultYZ() const;
103 
105  virtual void setCollisionInterResultZZ(DtFloat32 result);
106  virtual DtFloat32 collisionInterResultZZ() const;
107 
109  virtual void setUnitSurfaceNormal(const DtVector& coords);
110  virtual const DtVector& unitSurfaceNormal() const;
111 
113  virtual void setCoefficientOfRestitution(DtFloat32 coeff);
114  virtual DtFloat32 coefficientOfRestitution() const;
115 
117  virtual void printData() const;
118 
120  virtual void printDataToStream(std::ostream& stream) const;
121 
122 protected:
123 
125  virtual DtPduKind internalGetPduKind() const;
126 
129  virtual DtNetCollisionElasticPdu* netPduStruct() const;
130 
133  DtCollisionElasticPdu* self() const;
134 
135 protected:
136 
138  static const int theStaticSize;
139 
140 protected:
141 
143  DtEntityIdentifier myEntityID;
144  DtEventID myEventID;
145  DtVector myVector;
146 
147 };
148 
149 
150 #endif
DtInteraction is an abstract base class for representing HLA interactions (or events) (as opposed to ...
Definition: interactionHLA.h:33
Instances of DtExerciseConn are used to provide an application&#39;s interface or connection to the netwo...
Definition: exerciseConnHLA.h:61
DtInteraction & operator=(const DtInteraction &orig)
assignment operator
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
Definition: pduHeader.h:14
static void removeCallback(DtExerciseConn *conn, const std::vector< DtString > *classes, DtReceiveInteractionCb cb, void *usr, DtDDMRegionSP region=DtDDMRegionSP())
This file defines math constants and methods which may be useful in simulations.
virtual void printData() const
Print the interaction&#39;s data to DtInfo.
Definition: interactionHLA.h:348
virtual void printDataToStream(std::ostream &stream) const
Print the interaction&#39;s data to the stream.
Definition: interactionHLA.h:356
Definition: vlVector.h:224
DtPdu is the base class for all PDU&#39;s in VR-Link.
Definition: pdu.h:69
static void addCallback(DtExerciseConn *conn, const std::vector< DtString > *classes, DtReceiveInteractionCb cb, void *usr, DtDDMRegionSP region=DtDDMRegionSP())
Register/Deregister callback function cb with conn, on all interaction class name (char*) contained i...
Represents Events in the RPR FOM.
Definition: eventId.h:52
Instances of DtEntityIdentifier are used as a unique ID for entities in DIS.
Definition: entityIdentifier.h:31
This file provides protocol to independence DtExerciseConn.
This file is deprecated - Please see simulationAddress.h, entityIdentifier.h, entityType.h, burstDescriptor.h, and NetStructs.h.
struct DtBufferPlaceHolder * DtBufferPtr
Definition: vlBaseMsg.h:17
#define DtUSE_INTERNAL_BUFFER
Definition: vlBaseMsg.h:22
This file declares the class DtNetCollisionElasticPdu.
DtPduKind
([UID 4]) - PDU Type
Definition: disEnums.h:238
This file contains typedefs for machine dependant types.

Document ID: Generated on Wed Mar 27 02:04:30 EDT 2024 from SVN revision 264570
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)