コード例 #1
0
ファイル: EditCurve.cs プロジェクト: nusisschad/XNAGameStudio
        /// <summary>
        /// Select keys and key tangents.
        /// </summary>
        /// <param name="selectRegion">Selection region in unit coordinate.</param>
        /// <param name="tangentScale">Tangent scale in unit coordinate.</param>
        /// <param name="keyView"></param>
        /// <param name="tangentView"></param>
        /// <param name="toggleSelection"></param>
        /// <param name="singleSelection"></param>
        public void Select(BoundingBox selectRegion, Vector2 tangentScale,
                           EditCurveView keyView, EditCurveView tangentView,
                           bool toggleSelection, bool singleSelect)
        {
            if (!Editable)
            {
                return;
            }

            EditCurveKeySelection newSelection = new EditCurveKeySelection();

            // Check Intersection of Keys and Tangents.
            if (keyView != EditCurveView.Never)
            {
                ICollection <EditCurveKey> targetKeys =
                    (keyView == EditCurveView.Always) ?
                    (ICollection <EditCurveKey>)keys :
                    (ICollection <EditCurveKey>)selectedKeys.Values;
                newSelection.SelectKeys(targetKeys, selectRegion, singleSelect);
            }

            // Check Tangents if any keys are not selected.
            if (newSelection.Count == 0 && tangentView != EditCurveView.Never)
            {
                ICollection <EditCurveKey> targetKeys
                    = (tangentView == EditCurveView.Always) ?
                      (ICollection <EditCurveKey>)keys :
                      (ICollection <EditCurveKey>)selectedKeys.Values;

                newSelection.SelectTangents(targetKeys, selectRegion, tangentScale,
                                            singleSelect);
            }

            if (toggleSelection)
            {
                newSelection = EditCurveKeySelection.ToggleSelection(
                    selection, newSelection);
            }

            ApplySelection(newSelection, true);
        }
コード例 #2
0
        /// <summary>
        /// Select keys and key tangents.
        /// </summary>
        /// <param name="selectRegion">Selection region in unit coordinate.</param>
        /// <param name="tangentScale">Tangent scale in unit coordinate.</param>
        /// <param name="keyView"></param>
        /// <param name="tangentView"></param>
        /// <param name="toggleSelection"></param>
        /// <param name="singleSelection"></param>
        public void Select(BoundingBox selectRegion, Vector2 tangentScale,
                            EditCurveView keyView, EditCurveView tangentView,
                                bool toggleSelection, bool singleSelect)
        {
            if (!Editable) return;

            EditCurveKeySelection newSelection = new EditCurveKeySelection();

            // Check Intersection of Keys and Tangents.
            if (keyView != EditCurveView.Never)
            {
                ICollection<EditCurveKey> targetKeys =
                        (keyView == EditCurveView.Always) ?
                        (ICollection<EditCurveKey>)keys :
                        (ICollection<EditCurveKey>)selectedKeys.Values;
                newSelection.SelectKeys(targetKeys, selectRegion, singleSelect);
            }

            // Check Tangents if any keys are not selected.
            if (newSelection.Count == 0 && tangentView != EditCurveView.Never)
            {
                ICollection<EditCurveKey> targetKeys
                    = (tangentView == EditCurveView.Always) ?
                        (ICollection<EditCurveKey>)keys :
                        (ICollection<EditCurveKey>)selectedKeys.Values;

                newSelection.SelectTangents(targetKeys, selectRegion, tangentScale,
                                                singleSelect);
            }

            if (toggleSelection)
                newSelection = EditCurveKeySelection.ToggleSelection(
                                                    selection, newSelection);

            ApplySelection(newSelection, true);
        }
コード例 #3
0
 private void tangentViewToolStripMenuItem_Click(object sender, EventArgs e)
 {
     curveTangentsViewMode = (EditCurveView)Enum.Parse(
         typeof(EditCurveView), CheckMenuItem(sender));
     RequestRender();
 }