 			_b = myB;
 			_c = myC;
 			_d = myD;
-			
+
 			normalize();
 		}
-		
+
 		public function normalize() : Number
 		{
 			var mag	: Number	= Math.sqrt(_a * _a + _b * _b + _c * _c);
-			
+
 			if (mag && mag != 1.)
 			{
 				_a /= mag;

		{
			var distOrigin	: Number	= _a * myOrigin.x + _b * myOrigin.y + _c * myOrigin.z - _d;
			var distTarget	: Number	= _a * myTarget.x + _b * myTarget.y + _c * myTarget.z - _d;
			
			var r : uint = 0;
			
			if (distOrigin > 0.)
				r &= A_INFRONT;
			else if (distOrigin < 0.)
				r &= A_BEHIND;
			else
				r &= A_COINCIDING;
			
			if (distTarget > 0.)
				r &= B_INFRONT;
			else if (distTarget < 0.)

				var dot : Number = _a * (y1y3 * z1z2 - z1z3 * y1y2)
								   + _b * (z1z3 * x1x2 - x1x3 * z1z2)
								   + _c * (x1x3 * y1y2 - y1y3 * x1x2);

				result |= dot > 0. ? COLINEAR : OPPOSITE;
			}

			return result;
		}

		public function clone() : Plane3D
		{
			return new Plane3D(_a, _b, _c, _d);
		}

		public function toString() : String
		{
			return "(" + _a + ", " + _b + ", "
				   + _c + ", " + _d + ")";
		}

		/**
		 * Create a new Plane from a polygon defined by 3 set of (x, _b, _c) tuples.
		 * @param	myX1
