Exemplo n.º 1
0
        private void ComputeSegmentParameter()
        {
            PathSegmentAdorner pathSegmentAdorner = (PathSegmentAdorner)this.pathPartAdorner;
            Point            position             = this.ActiveView.Artboard.CalculateTransformFromArtboardToContent().Value.Transform(this.MouseDevice.GetPosition((IInputElement)this.ActiveView.Artboard));
            PathFigureEditor pathFigureEditor     = new PathFigureEditor(pathSegmentAdorner.PathGeometry.Figures[pathSegmentAdorner.FigureIndex]);
            Matrix           transformMatrix      = pathSegmentAdorner.PathAdornerSet.GetTransformMatrix((IViewObject)this.ActiveView.HitTestRoot);
            Point            closestPoint;
            double           distanceSquared;

            this.pathSegmentParameter = pathFigureEditor.GetClosestPointOfUpstreamSegment(pathSegmentAdorner.LastPointIndex, position, transformMatrix, Tolerances.CurveFlatteningTolerance, out closestPoint, out distanceSquared);
        }
Exemplo n.º 2
0
        protected override void OnBegin(PathEditContext pathEditContext, MouseDevice mouseDevice)
        {
            PerformanceUtility.MeasurePerformanceUntilRender(PerformanceEvent.EditPath);
            Point            viewRootCoordinates    = this.GetPointInViewRootCoordinates(mouseDevice, false);
            PathFigureEditor pathFigureEditor       = new PathFigureEditor(pathEditContext.GetPathFigure(this.Path), this.PathEditorTarget.PathDiffChangeList, pathEditContext.FigureIndex);
            Matrix           elementTransformToRoot = this.EditingElementTransformToRoot;
            int    partIndex = pathEditContext.PartIndex;
            Point  closestPoint;
            double distanceSquared;
            double ofUpstreamSegment = pathFigureEditor.GetClosestPointOfUpstreamSegment(partIndex, viewRootCoordinates, elementTransformToRoot, Tolerances.CurveFlatteningTolerance, out closestPoint, out distanceSquared);

            this.InsertPoint(pathEditContext, ofUpstreamSegment);
            base.OnBegin(pathEditContext, mouseDevice);
            this.End();
        }