VR-Link API Documentation for DIS
collisElasPdu.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
00004 *********************************************************************/
00005 
00006 #ifndef DtCollisionElasticPdu_H_
00007 #define DtCollisionElasticPdu_H_
00008  
00012 
00013 #if DtDIS
00014 
00015 #include <vlutil/vlMachineTypes.h>
00016 #include "hostStructs.h"
00017 #include "dInteraction.h"
00018 #include <matrix/vlMath.h>
00019 #include "exerciseConn.h"
00020 
00021 #include "packets/collisElasP.h"
00022 
00023 class DT_DLL_VL DtCollisionElasticPdu;
00024 
00026 typedef void (*DtCollisionElasticPduCb)(DtCollisionElasticPdu* pdu, void* usr);
00027 
00028 
00032 class DT_DLL_VL DtCollisionElasticPdu : public DtInteraction
00033 {
00034 
00035 public:
00036 
00038    DtCollisionElasticPdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00039    DtCollisionElasticPdu(const DtNetCollisionElasticPdu* initial,
00040       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00041    DtCollisionElasticPdu(const DtCollisionElasticPdu& orig);
00042 
00044    virtual ~DtCollisionElasticPdu();
00045 
00048    static DtPdu* create(const DtNetPacket* initial,
00049       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00050 
00053    static void addCallback(DtExerciseConn* conn,
00054       DtCollisionElasticPduCb cb, void* usr);
00055    static void removeCallback(DtExerciseConn* conn,
00056       DtCollisionElasticPduCb cb, void* usr);
00057 
00059    DtCollisionElasticPdu& operator=(const DtCollisionElasticPdu& orig);
00060 
00062    virtual void setIssuingEntityID(const DtEntityIdentifier& entity);
00063    virtual const DtEntityIdentifier& issuingEntityID() const;
00064 
00066    virtual void setCollidingEntityID(const DtEntityIdentifier& entity);
00067    virtual const DtEntityIdentifier& collidingEntityID() const;
00068 
00070    virtual void setEventID(const DtEventID& event);
00071    virtual const DtEventID& eventID() const;
00072 
00074    virtual void setContactVelocity(const DtVector& velocity);
00075    virtual const DtVector& contactVelocity() const;
00076 
00078    virtual void setMass(DtFloat32 value);
00079    virtual DtFloat32 mass() const;
00080 
00082    virtual void setLocationOfImpact(const DtVector& coords);
00083    virtual const DtVector& locationOfImpact() const;
00084 
00086    virtual void setCollisionInterResultXX(DtFloat32 result);
00087    virtual DtFloat32 collisionInterResultXX() const;
00088 
00090    virtual void setCollisionInterResultXY(DtFloat32 result);
00091    virtual DtFloat32 collisionInterResultXY() const;
00092 
00094    virtual void setCollisionInterResultXZ(DtFloat32 result);
00095    virtual DtFloat32 collisionInterResultXZ() const;
00096 
00098    virtual void setCollisionInterResultYY(DtFloat32 result);
00099    virtual DtFloat32 collisionInterResultYY() const;
00100 
00102    virtual void setCollisionInterResultYZ(DtFloat32 result);
00103    virtual DtFloat32 collisionInterResultYZ() const;
00104 
00106    virtual void setCollisionInterResultZZ(DtFloat32 result);
00107    virtual DtFloat32 collisionInterResultZZ() const;
00108 
00110    virtual void setUnitSurfaceNormal(const DtVector& coords);
00111    virtual const DtVector& unitSurfaceNormal() const;
00112 
00114    virtual void setCoefficientOfRestitution(DtFloat32 coeff);
00115    virtual DtFloat32 coefficientOfRestitution() const;
00116 
00118    virtual void printData() const;
00119 
00121    virtual void printDataToStream(std::ostream& stream) const;
00122 
00123 protected:
00124 
00126    virtual DtPduKind internalGetPduKind() const;
00127 
00130    virtual DtNetCollisionElasticPdu* netPduStruct() const; 
00131 
00134    DtCollisionElasticPdu* self() const;
00135 
00136 protected:
00137 
00139    static const int theStaticSize;
00140 
00141 protected:
00142 
00144    DtEntityIdentifier myEntityID;
00145    DtEventID myEventID;
00146    DtVector myVector;
00147 
00148 };
00149 
00150 
00151 #endif
00152 #endif
00153 

Document ID: Generated on Mon May 14 08:06:18 EDT 2012 from SVN revision 114750
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)