/***************************************************/ public static ICurve ProjectAlong(this Circle circle, Plane plane, Vector vector) { if (circle.Normal.IsParallel(plane.Normal) != 0) { return new Circle { Centre = circle.Centre.ProjectAlong(plane, vector), Normal = circle.Normal.DeepClone(), Radius = circle.Radius } } ; TransformMatrix project = Create.ProjectionMatrix(plane, vector); return(circle.Transform(project)); }
/***************************************************/ public static ICurve Project(this Ellipse ellipse, Plane p) { TransformMatrix project = Create.ProjectionMatrix(p, p.Normal); return(ellipse.Transform(project)); }
/***************************************************/ public static ICurve ProjectAlong(this Ellipse ellipse, Plane plane, Vector vector) { TransformMatrix project = Create.ProjectionMatrix(plane, vector); return(ellipse.Transform(project)); }