public static Vector3f rayTriangle( Vector3f origin, Vector3f direction, Triangle t )
	{
		Vector3f res;
		Vector3f u, v, n;
		float r, a, b;

		u = t.getPoint2().sub( t.getPoint1() );
		v = t.getPoint3().sub( t.getPoint1() );
		n = u.cross( v );

		if ( n.length() == 0 )
			return null;

		a = -( n.dot( origin.sub( t.getPoint1() ) ) );
		b = n.dot( direction );

		if ( Math.abs( b ) < MathHelper.EPSILON )
			return null;

		r = a / b;
		if ( r < 0.0 )
			return null;

		res = origin.add( direction.mul( r ) );

		return res;
	}