/************************************************************************
*
* File:			utm.h
* RCS:			$Header: /cvsroot/stelvio/stelvio/NavStar/Utm.h,v 1.2 2002/04/23 05:02:00 steve_l Exp $
* Author:		Steve Loughran
* Created:		2001
* Language:		C++
* Package:		
* Status:		Experimental
* @doc
*
************************************************************************/
#pragma once

//=======================================================================
/**
 * UTM support goes here
 */
//=======================================================================
class CUtmPoint 
{
	protected:
	double m_easting;
	double m_northing;
	int m_xzone;
	char m_yzone;
public:

//=======================================================================
//=======================================================================
	CUtmPoint()
	{Clear();}

//=======================================================================
//=======================================================================
CUtmPoint(const CPosition &p)
	{
	FromPosition(p);
	}

//=======================================================================
//=======================================================================
CUtmPoint(const CUtmPoint& that)
	{
	m_easting=that.m_easting;
	m_northing=that.m_northing;
	m_xzone=that.m_xzone;
	m_yzone=that.m_yzone;
	}

//=======================================================================
//=======================================================================
void Clear() 
	{
	m_easting=m_northing=0;
	m_xzone=0;
	m_yzone=0;
	}

//=======================================================================
/**
@func Build a position string 
@parm	target. must be 30 characters or longer.
*/
//=======================================================================

void GetString(TCHAR *position) const;

//=======================================================================
/**
@func get the position of a UTM point
@parm	point out
*/
//=======================================================================

void ToPosition(CPosition &pos) const;

//=======================================================================
/**
@func turn a position into a UTM point
@parm position
@rdesc	true if it was in range
*/
//=======================================================================

bool FromPosition(const CPosition &pos);

//=======================================================================
/**
range test
*/
//=======================================================================

static bool IsPositionInUtmSpace(const CPosition &pos)
	{ return pos.GetLatitude()<=84 && pos.GetLatitude()>=-80;}



};



