/*
Header file for C3DPoint class
 */

#ifndef _3DPOINT_H_
#define _3DPOINT_H_

class C3DPoint : public CPoint
{
	public:
		C3DPoint(C3DPoint* point);
		C3DPoint();
		C3DPoint(double x, double y, double z);
		virtual ~C3DPoint();
		double m_x;
		double m_y;
		double m_z;
		// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CIslandDoc)
	public:
	virtual void Serialize(CArchive& ar);
	//}}AFX_VIRTUAL
		C3DPoint MidPointWith(C3DPoint testPoint);
		C3DPoint MinimumWith(C3DPoint testPoint);
		C3DPoint MaximumWith(C3DPoint testPoint);
		double Magnitude(void);
		void Normalize(void);
		double DotProduct(C3DPoint point);
		C3DPoint CrossProduct(C3DPoint point);
		BOOL operator==(C3DPoint point);
		C3DPoint operator-(C3DPoint point);
		C3DPoint operator+(C3DPoint point);
		C3DPoint operator*(double dNum);
};

#endif // _3DPOINT_H_
