private void tangentsToolStripMenuItems_Click(object sender, EventArgs e)
        {
            ToolStripMenuItem item = (ToolStripMenuItem)sender;

            // Set tangent type of curves.
            // It assumes sender menuItem has a string like
            // "EditCurveSelections, EditCurveTangent".
            string[]            texts     = item.Tag.ToString().Split(new char[] { ',' });
            EditCurveSelections selection = (EditCurveSelections)Enum.Parse(
                typeof(EditCurveSelections), texts[0]);

            EditCurveTangent tangent = (EditCurveTangent)Enum.Parse(
                typeof(EditCurveTangent), texts[1]);

            UpdateCurves(delegate(EditCurve curve)
            {
                curve.SetTangents(selection, tangent);
            });
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Set specfied tangent type to selected tangents.
        /// </summary>
        /// <param name="targetTangent">target tangent (In/Out)</param>
        /// <param name="tangentType"></param>
        public void SetTangents(EditCurveSelections targetTangent,
                                EditCurveTangent tangentType)
        {
            if (!Editable)
            {
                return;
            }

            EnsureUpdating("SetTangents");

            // Change tangent type of selcted nodes.
            foreach (EditCurveKey key in selectedKeys.Values)
            {
                MarkModify(key);

                if (tangentType == EditCurveTangent.Stepped)
                {
                    SetKeyContinuity(key, CurveContinuity.Step);
                }
                else
                {
                    SetKeyContinuity(key, CurveContinuity.Smooth);

                    if ((targetTangent & EditCurveSelections.TangentIn) != 0)
                    {
                        key.TangentInType = tangentType;
                    }

                    if ((targetTangent & EditCurveSelections.TangentOut) != 0)
                    {
                        key.TangentOutType = tangentType;
                    }
                }
            }

            // Then, compute tangents.
            foreach (EditCurveKey key in selectedKeys.Values)
            {
                ComputeTangents(keys.IndexOf(key));
            }
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Convert EditCurveTanget to CurveTangent.
 /// </summary>
 /// <param name="tangent"></param>
 /// <returns></returns>
 private static CurveTangent Convert(EditCurveTangent tangent)
 {
     return (tangent == EditCurveTangent.Fixed) ?
                 CurveTangent.Flat : (CurveTangent)tangent;
 }
Ejemplo n.º 4
0
        /// <summary>
        /// Set specfied tangent type to selected tangents.
        /// </summary>
        /// <param name="targetTangent">target tangent (In/Out)</param>
        /// <param name="tangentType"></param>
        public void SetTangents(EditCurveSelections targetTangent,
                                        EditCurveTangent tangentType)
        {
            if (!Editable) return;

            EnsureUpdating("SetTangents");

            // Change tangent type of selcted nodes.
            foreach (EditCurveKey key in selectedKeys.Values)
            {
                MarkModify(key);

                if (tangentType == EditCurveTangent.Stepped)
                {
                    SetKeyContinuity(key, CurveContinuity.Step);
                }
                else
                {
                    SetKeyContinuity(key, CurveContinuity.Smooth);

                    if ((targetTangent & EditCurveSelections.TangentIn) != 0)
                        key.TangentInType = tangentType;

                    if ((targetTangent & EditCurveSelections.TangentOut) != 0)
                        key.TangentOutType = tangentType;
                }
            }

            // Then, compute tangents.
            foreach (EditCurveKey key in selectedKeys.Values)
                ComputeTangents(keys.IndexOf(key));
        }
Ejemplo n.º 5
0
 /// <summary>
 /// Convert EditCurveTanget to CurveTangent.
 /// </summary>
 /// <param name="tangent"></param>
 /// <returns></returns>
 private static CurveTangent Convert(EditCurveTangent tangent)
 {
     return((tangent == EditCurveTangent.Fixed) ?
            CurveTangent.Flat : (CurveTangent)tangent);
 }