Пример #1
0
        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
        }
Пример #2
0
        /// <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();
        }
Пример #3
0
        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();
        }