VR-Link API Documentation for DIS
relLocPdu.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
00004 *********************************************************************/
00005 
00006 
00009 
00010 #ifndef relLocPdu_h_
00011 #define relLocPdu_h_
00012 
00013 #if DtDIS
00014 
00015 #include "pdu.h"
00016 #include "dExerciseConn.h"
00017 #include "stateMsg.h"
00018 #include "packets/relLocP.h"
00019 
00020 class DtRelativeLocationPdu;
00021 
00024 typedef void (*DtRelativeLocationPduCb)(DtRelativeLocationPdu* pdu, void* usr);
00025 
00030 class DT_DLL_VL DtRelativeLocationPdu : public DtStateMsg
00031 {
00032 
00033   public:
00034 
00037      DtRelativeLocationPdu( DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER );
00038 
00043      DtRelativeLocationPdu( const DtNetRelativeLocationPdu* initial,
00044         DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER );
00045 
00047      virtual ~DtRelativeLocationPdu();
00048 
00050      DtRelativeLocationPdu( const DtRelativeLocationPdu& orig );
00051 
00053      DtRelativeLocationPdu& operator=( const DtRelativeLocationPdu& orig );
00054 
00057      virtual void printData() const;
00058 
00060      virtual void printDataToStream(std::ostream &stream) const;
00061 
00066 
00067      virtual DtNetRelativeLocationPdu* networkRepresentation();
00068      virtual const DtNetRelativeLocationPdu* networkRepresentation() const;
00069 
00071      virtual void setId(const DtEntityIdentifier &id);
00072      virtual const DtEntityIdentifier& id() const;
00073 
00075      virtual void setHostId(const DtEntityIdentifier &id);
00076      virtual const DtEntityIdentifier& hostId() const;
00077 
00079      virtual void setRelativeAlgorithm( DtDeadReckonTypes alg );   
00080      virtual DtDeadReckonTypes relativeAlgorithm() const;
00081 
00083      virtual void setRelativeLocation( const DtVector& loc );
00084      virtual const DtVector& relativeLocation() const;
00085 
00087      virtual void setRelativeVelocity( const DtVector& vel );
00088      virtual const DtVector& relativeVelocity() const;
00089 
00091      virtual void setRelativeAcceleration( const DtVector& accel );
00092      virtual const DtVector& relativeAcceleration() const;
00093 
00095      virtual void setRelativeOrientation(const DtTaitBryan &orient);
00096      virtual const DtTaitBryan& relativeOrientation() const;
00097 
00099      virtual void setRelativeRotationalVelocity( const DtVector& vel );
00100      virtual const DtVector& relativeRotationalVelocity() const;
00101 
00103      virtual void setNature(DtNature value);
00104      virtual DtNature nature() const;
00105 
00107      virtual void setPartPosition(DtPosition value);
00108      virtual DtPosition partPosition() const;
00109 
00111      virtual void setStationName(DtStationName value);
00112      virtual DtStationName stationName() const;
00113 
00115      virtual void setStationNumber(DtU16 value);
00116      virtual DtU16 stationNumber() const; 
00117     
00123 
00124      static DtPdu* create( const DtNetPacket* initial,
00125         DtBufferPtr buiffer = DtUSE_INTERNAL_BUFFER );
00126 
00133 
00134      static void addCallback( DtExerciseConn *conn, DtRelativeLocationPduCb cb, 
00135         void *usr );
00136 
00137      static void removeCallback( DtExerciseConn *conn, 
00138         DtRelativeLocationPduCb cb, void *usr );
00139 
00140   protected:
00141 
00144 
00145      virtual DtPduKind internalGetPduKind() const;
00146 
00149      DtRelativeLocationPdu* self() const;
00150 
00151   protected:
00152 
00154 
00155      DtEntityIdentifier myEntityId;
00156 
00157      DtEntityIdentifier myHostId;
00158 
00159      DtVector myRelativeLocation;
00160 
00161      DtVector myRelativeVelocity;
00162 
00163      DtVector myRelativeAcceleration;
00164 
00165      DtTaitBryan myRelativeOrientation;
00166 
00167      DtVector myRelativeRotationalVelocity;
00168     
00169 };
00170 
00171 #endif
00172 
00173 #endif
00174 

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)