/// <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); }
/// <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); }
private void tangentViewToolStripMenuItem_Click(object sender, EventArgs e) { curveTangentsViewMode = (EditCurveView)Enum.Parse( typeof(EditCurveView), CheckMenuItem(sender)); RequestRender(); }