int ON_Intersect( const ON_Plane& plane, const ON_Circle& circle, ON_3dPoint& point0, ON_3dPoint& point1 ) { int rval = -1; ON_Line xline; double a,b; bool rc = ON_Intersect(plane, circle.Plane(), xline); if(rc) { rval = ON_Intersect(xline, circle, &a, point0, &b, point1); } else { double d = plane.plane_equation.ValueAt( circle.Center() ); if(d<ON_ZERO_TOLERANCE) rval =3; else rval = 0; } return rval; }
ON_BOOL32 ON_Ellipse::Create( const ON_Circle& c ) { return Create( c.Plane(), c.Radius(), c.Radius() ); }