// DO NOT MODIFY THIS FILE, IT HAS BEEN GENERATED.
// File generated by Quazal DDL Compiler, Version 4.1 [SP2] (Build 1224.83)
// Copyright (C) 1998-2004, Quazal Technologies Inc.

#ifndef _DSGroundFollowerDDL_H_
#define _DSGroundFollowerDDL_H_

#include <NetZ.h>
#include "Network/NetZ/AvalancheProperties.h"
BEGIN_NAMESPACE_QUAZAL;
class DATASET(DSGroundFollower): public DataSet {
public:
	_DS_GENERAL_DECLARATIONS(DSGroundFollower);
	DATASET(DSGroundFollower)( const DATASET(DSGroundFollower) &oOther ) :
		d_flags(oOther.d_flags), 
		d_heading(oOther.d_heading), 
		d_headingRate(oOther.d_headingRate), 
		d_posX(oOther.d_posX), 
		d_posY(oOther.d_posY), 
		d_posZ(oOther.d_posZ), 
		d_velX(oOther.d_velX), 
		d_velY(oOther.d_velY), 
		d_velZ(oOther.d_velZ)
	{
	}

	_DS_ASSIGN_OPERATOR(DSGroundFollower){
		_DS_COPYDATASET_VAR(d_flags);
		_DS_COPYDATASET_VAR(d_heading);
		_DS_COPYDATASET_VAR(d_headingRate);
		_DS_COPYDATASET_VAR(d_posX);
		_DS_COPYDATASET_VAR(d_posY);
		_DS_COPYDATASET_VAR(d_posZ);
		_DS_COPYDATASET_VAR(d_velX);
		_DS_COPYDATASET_VAR(d_velY);
		_DS_COPYDATASET_VAR(d_velZ);
	}

	_DS_EQUAL_OPERATOR(DSGroundFollower){
		_DS_EQUAL_VAR(d_flags);
		_DS_EQUAL_VAR(d_heading);
		_DS_EQUAL_VAR(d_headingRate);
		_DS_EQUAL_VAR(d_posX);
		_DS_EQUAL_VAR(d_posY);
		_DS_EQUAL_VAR(d_posZ);
		_DS_EQUAL_VAR(d_velX);
		_DS_EQUAL_VAR(d_velY);
		_DS_EQUAL_VAR(d_velZ);
		return true;
	}

	_DS_TMPL_EQUAL_OPERATOR(DSGroundFollower)
	void ExtractFrom(Message* pMsg) {
		_MSG_EXTRACT_VARIABLE(Td_flags,d_flags);
		_MSG_EXTRACT_VARIABLE(Td_heading,d_heading);
		_MSG_EXTRACT_VARIABLE(Td_headingRate,d_headingRate);
		_MSG_EXTRACT_VARIABLE(Td_posX,d_posX);
		_MSG_EXTRACT_VARIABLE(Td_posY,d_posY);
		_MSG_EXTRACT_VARIABLE(Td_posZ,d_posZ);
		_MSG_EXTRACT_VARIABLE(Td_velX,d_velX);
		_MSG_EXTRACT_VARIABLE(Td_velY,d_velY);
		_MSG_EXTRACT_VARIABLE(Td_velZ,d_velZ);
	}

	DDLTYPE(byte)::CPPType d_flags;
	DDLTYPE(int16)::CPPType d_heading;
	DDLTYPE(int16)::CPPType d_headingRate;
	DDLTYPE(int16)::CPPType d_posX;
	DDLTYPE(int16)::CPPType d_posY;
	DDLTYPE(int16)::CPPType d_posZ;
	DDLTYPE(int16)::CPPType d_velX;
	DDLTYPE(int16)::CPPType d_velY;
	DDLTYPE(int16)::CPPType d_velZ;
	_PR_unreliable_pudecl();

protected:
	_PR_unreliable_prdecl();
private:
	typedef DDLTYPE(byte) Td_flags;
	typedef DDLTYPE(int16) Td_heading;
	typedef DDLTYPE(int16) Td_headingRate;
	typedef DDLTYPE(int16) Td_posX;
	typedef DDLTYPE(int16) Td_posY;
	typedef DDLTYPE(int16) Td_posZ;
	typedef DDLTYPE(int16) Td_velX;
	typedef DDLTYPE(int16) Td_velY;
	typedef DDLTYPE(int16) Td_velZ;
};

#define _DSDECL_DSGroundFollower DeadReckoningDSDecl< DSGroundFollower, _PR_DRGroundFollower_model(DSGroundFollower), _PR_DRGroundFollower_modelpolicy(_PR_DRGroundFollower_model(DSGroundFollower)) >

END_NAMESPACE_QUAZAL;
// For convenience, this declaration is directly available outside the Quazal namespace
using NS_QUAZAL DATASET(DSGroundFollower);


#endif // _DSGroundFollowerDDL_H_
