public static bool operator ==(Ellipse left, Ellipse right) { if ((object)left == (object)right) { return(true); } if ((object)left == null || (object)right == null) { return(false); } if (left.point_0 != right.point_0) { return(false); } if (left.IsCircular & right.IsCircular) { return(Global.AlmostEquals(left.vector3d_0.Norm, right.vector3d_0.Norm) | Global.AlmostEquals(left.vector3d_0.Norm, right.vector3d_1.Norm) | Global.AlmostEquals(left.vector3d_1.Norm, right.vector3d_0.Norm) | Global.AlmostEquals(left.vector3d_1.Norm, right.vector3d_1.Norm)); } return((left.vector3d_0.IsParallelTo(right.vector3d_0) & Global.AlmostEquals(left.vector3d_0.Norm, right.vector3d_0.Norm)) && (left.vector3d_1.IsParallelTo(right.vector3d_1) & Global.AlmostEquals(left.vector3d_1.Norm, right.vector3d_1.Norm))); }