private Curve2DAspect Clone() { Curve2DAspect res = new Curve2DAspect(dualSurfaceCurve, onSurface1); res.UserData.CloneFrom(this.UserData); return(res); }
void ICurve2D.Copy(ICurve2D toCopyfrom) { Curve2DAspect c = toCopyfrom as Curve2DAspect; theCurve.Copy(c.theCurve); UserData.CloneFrom(c.UserData); }
ICurve2D ICurve2D.Parallel(double Dist, bool approxSpline, double precision, double roundAngle) { ICurve2D parallel = theCurve.Parallel(Dist, approxSpline, precision, roundAngle); Curve2DAspect c2da = Clone(); c2da.clipped = true; c2da.startPoint2D = parallel.StartPoint; c2da.endPoint2D = parallel.EndPoint; c2da.startPoint = theSurface.PointAt(c2da.startPoint2D); c2da.endPoint = theSurface.PointAt(c2da.endPoint2D); c2da.clippedCurve = parallel; return(c2da); }
ICurve2D ICurve2D.Trim(double StartPos, double EndPos) { ICurve2D trimmed = theCurve.Trim(StartPos, EndPos); Curve2DAspect c2da = Clone(); c2da.clipped = true; c2da.startPoint2D = trimmed.StartPoint; c2da.endPoint2D = trimmed.EndPoint; c2da.startPoint = theSurface.PointAt(c2da.startPoint2D); c2da.endPoint = theSurface.PointAt(c2da.endPoint2D); c2da.clippedCurve = trimmed; return(c2da); }
ICurve2D ICurve2D.Clone() { Curve2DAspect c2da = Clone(); c2da.clipped = clipped; if (clipped) { c2da.clippedCurve = clippedCurve; c2da.startPoint2D = startPoint2D; c2da.endPoint2D = endPoint2D; c2da.startPoint = startPoint; c2da.endPoint = endPoint; } c2da.UserData.CloneFrom(this.UserData); return(c2da); }
ICurve2D[] ICurve2D.Split(double Position) { ICurve2D[] splitted = theCurve.Split(Position); // eine oder zwei Kurven ICurve2D[] res = new ICurve2D[splitted.Length]; for (int i = 0; i < splitted.Length; ++i) { Curve2DAspect c2da = Clone(); res[i] = c2da; c2da.clipped = true; c2da.startPoint2D = splitted[i].StartPoint; c2da.endPoint2D = splitted[i].EndPoint; c2da.startPoint = theSurface.PointAt(c2da.startPoint2D); c2da.endPoint = theSurface.PointAt(c2da.endPoint2D); c2da.clippedCurve = splitted[i]; } return(res); }
ICurve2D ICurve2D.CloneReverse(bool reverse) { Curve2DAspect c2da = Clone(); c2da.clipped = clipped; if (clipped) { c2da.clippedCurve = clippedCurve; c2da.startPoint2D = startPoint2D; c2da.endPoint2D = endPoint2D; c2da.startPoint = startPoint; c2da.endPoint = endPoint; } if (reverse) { (c2da as ICurve2D).Reverse(); } c2da.UserData.CloneFrom(this.UserData); return(c2da); }