float *CalculateNormal(float vect0[3], float vect1[3], float vect2[3])
{
	float *normal;
	float a[3], b[3];
	float len;

	normal = malloc(3*sizeof(float));

	/* Calculate the normal */
	a[0] = vect1[0]-vect0[0];
	a[1] = vect1[1]-vect0[1];
	a[2] = vect1[2]-vect0[2];
	b[0] = vect2[0]-vect0[0];
	b[1] = vect2[1]-vect0[1];
	b[2] = vect2[2]-vect0[2];
	normal[0] = a[1]*b[2] - a[2]*b[1];
	normal[1] = a[2]*b[0] - a[0]*b[2];
	normal[2] = a[0]*b[1] - a[1]*b[0];

	/* Make it 1 unit long */
	len = sqrt(normal[0] * normal[0] +
	           normal[1] * normal[1] +
	           normal[2] * normal[2]);
	if (len == 0)
		len = 1;
	normal[0] = normal[0] / len;
	normal[1] = normal[1] / len;
	normal[2] = normal[2] / len;

	return normal;
}
