/*
Copyright (C) 2006 Parallel Realities

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

*/

// Do not add extra fields here or the BSP will fuck up royally!

class Vector {

	public:

		float x, y, z;

	Vector();
	~Vector();

	void set(float x, float y, float z);
	bool operator ==(Vector vector);
	bool operator !=(Vector vector);
	void operator =(Vector vector);
	void operator +=(Vector vector);
	void operator -=(Vector vector);
	Vector operator *(float f);
	bool operator <(Vector vector);
	bool operator >(Vector vector);

	void normalize();
	float getLength();
	float getDistance(Vector v);
	float invSqrt(float x);
	
	const char *toString();
	void set(const char *in);

};
