/************************************************
*
* Project Information: Classe Vecteur 3D
*
* Filename: CVector3.cpp
* Version : 0.0.1-dev
* Last Update: 23-01-2004
*
* Author:  Romain Gaucher -- nEUrOO
* E-mail:  neuroo@kouette.com
* Date  :  23-01-2004
*
* Comment: Opération sur les vecteurs
*
***********************************************/

#include <cmath>

#include "CVector3.hpp"


float GetNorm(CVector3 * v)
{
	return (float)(sqrt(SQR(v->x)+SQR(v->y)+SQR(v->z)));
}

CVector3 MakeVect3(float u, float v, float w)
{
    CVector3 res(u,v,w);
    return res;
}

CVector3 Normalize(CVector3 v)
{
	CVector3 res;
	float l = GetNorm(&v);
	if (l == 0.0f) return NULL_VECTOR;
	res.x = v.x / l;
	res.y = v.y / l;
	res.z = v.z / l;
	return res;
}


CVector3 CrossProduct (CVector3 * u, CVector3 * v)
{
	CVector3 resVector;
	resVector.x = u->y*v->z - u->z*v->y;
	resVector.y = u->z*v->x - u->x*v->z;
	resVector.z = u->x*v->y - u->y*v->x;

	return resVector;
}
/************************************************
*
* 23-01-2004: Creation du source (Romain)
*             Classe finie !
*
***********************************************/
