コード例 #1
0
        /// <summary>
        /// Implements the MouseMove event handler for the manipulator
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="mouseEventArgs"></param>
        protected virtual void MouseMove(object sender, MouseEventArgs mouseEventArgs)
        {
            if (!IsEnabled())
            {
                return;
            }

            var clickRay = BackgroundPreviewViewModel.GetClickRay(mouseEventArgs);

            if (clickRay == null)
            {
                return;
            }

            if (GizmoInAction == null)
            {
                HighlightGizmoOnRollOver(clickRay);
                return;
            }

            if (!CanMoveGizmo(GizmoInAction))
            {
                return;
            }

            var offset = GizmoInAction.GetOffset(clickRay.GetOriginPoint(), clickRay.GetDirectionVector());

            if (offset.Length < 0.01)
            {
                return;
            }

            newPosition = OnGizmoMoved(GizmoInAction, offset);
        }
コード例 #2
0
ファイル: NodeManipulator.cs プロジェクト: reddyashish/Dynamo
        /// <summary>
        /// Implements the MouseMove event handler for the manipulator
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="mouseEventArgs"></param>
        protected virtual void MouseMove(object sender, MouseEventArgs mouseEventArgs)
        {
            if (!IsEnabled())
            {
                return;
            }

            var clickRay = BackgroundPreviewViewModel.GetClickRay(mouseEventArgs);

            if (clickRay == null)
            {
                return;
            }

            if (GizmoInAction == null)
            {
                HighlightGizmoOnRollOver(clickRay);
                return;
            }

            var offset = GizmoInAction.GetOffset(clickRay.GetOriginPoint(), clickRay.GetDirectionVector());

            if (offset.Length < 0.01)
            {
                return;
            }

            if (originAfterMove != null)
            {
                var offsetPos = originAfterMove.Add(offset);
                originAfterMove.Dispose();
                originAfterMove = offsetPos;
            }

            // Update input nodes attached to manipulator node
            // Doing this triggers a graph update on scheduler thread
            OnGizmoMoved(GizmoInAction, offset);

            // redraw manipulator at new position synchronously
            var packages = BuildRenderPackage();

            BackgroundPreviewViewModel.AddGeometryForRenderPackages(packages);
        }