/****************************************************************************************


	RealToken.h

	Copyright: (c) 2001 Eovia Corp. All rights reserved.

	Author:	Ray Dream (orig. JohnS) 
	Date:		3/2/98

	These functions handle reading and writing of real values.

	Revision History

	when		who			what & why
	==========	==========	======================================================
	5/15/98		Alec		replaced fwd decls with VecMathTypes.h
	3/4/98		Greg		Initial conversion (real to real)

*****************************************************************************************/

#ifndef __REALTOKEN__
#define __REALTOKEN__

#if CP_PRAGMA_ONCE
#pragma once
#endif

#include "MCBasicTypes.h"
#include "Vector2Fwd.h"
#include "Vector3Fwd.h"
#include "Matrix33Fwd.h"

class TMCiostream;

real GetRealToken			(TMCiostream& stream);
void GetPoint2DToken		(TMCiostream& stream, TVector2& v);
void GetPoint2DToken		(TMCiostream& stream, real* x, real* y);
void GetRectToken			(TMCiostream& stream, real& top, real& left,real& bot, real& right);
void GetPoint3DToken		(TMCiostream& stream, real* x, real* y, real* z);
void GetPoint3DToken		(TMCiostream& stream, TVector3& v);
void GetArrayToken			(TMCiostream& stream, int32 nb, real* valArray);
void GetMat33Token			(TMCiostream& stream, TMatrix33& mat);

void PutRealAttribute		(TMCiostream& stream, int32 keyword, real value);
void PutPoint2DAttribute	(TMCiostream& stream, int32 keyword, const TVector2& v);
void PutPoint2DAttribute	(TMCiostream& stream, int32 keyword, real x, real y);
void PutRectAttribute		(TMCiostream& stream, int32 keyword, real top, real left, real bot, real right);
void PutPoint3DAttribute	(TMCiostream& stream, int32 keyword, const TVector3& v);
void PutPoint3DAttribute	(TMCiostream& stream, int32 keyword, real x, real y, real z);
void PutArrayAttribute		(TMCiostream& stream, int32 keyword, int32 nb, const real* valArray);
void PutMat33Attribute		(TMCiostream& stream, int32 keyword, const TMatrix33& mat);

#endif