public void Add(MarkGeometryPath path) { AddRange(GeometricArithmeticModule.ToLines(path.Points)); // doesn't call Update(); because it is already called by the above method AddGeometry // change if this is no longer the case }
/// <summary> /// The copy constructor. /// </summary> /// <param name="input"></param> protected MarkGeometryPath(MarkGeometryPath input) : base(input) { IsClosed = !!input.IsClosed; Points = input.Points.ConvertAll(point => (MarkGeometryPoint)point.Clone()); CentrePoint = (MarkGeometryPoint)input.CentrePoint.Clone(); Update(); }
public void Merge(MarkGeometryPath path) { if ( GeometricArithmeticModule.Compare(EndPoint, path.StartPoint, ClosureTolerance) == 0 ) { // skip the path's start point if its the // same as this path's end point Points.AddRange(path.Points.Skip(1)); } else { Points.AddRange(path.Points); } Update(); }