UnityEditor.CurveMenuManager.AddTangentMenuItems C# (CSharp) Method

AddTangentMenuItems() public method

public AddTangentMenuItems ( GenericMenu menu, List keyList ) : void
menu GenericMenu
keyList List
return void
        public void AddTangentMenuItems(GenericMenu menu, List<KeyIdentifier> keyList)
        {
            bool flag = keyList.Count > 0;
            bool on = flag;
            bool flag3 = flag;
            bool flag4 = flag;
            bool flag5 = flag;
            bool flag6 = flag;
            bool flag7 = flag;
            bool flag8 = flag;
            bool flag9 = flag;
            bool flag10 = flag;
            bool flag11 = flag;
            bool flag12 = flag;
            foreach (KeyIdentifier identifier in keyList)
            {
                Keyframe key = identifier.keyframe;
                AnimationUtility.TangentMode keyLeftTangentMode = AnimationUtility.GetKeyLeftTangentMode(key);
                AnimationUtility.TangentMode keyRightTangentMode = AnimationUtility.GetKeyRightTangentMode(key);
                bool keyBroken = AnimationUtility.GetKeyBroken(key);
                if ((keyLeftTangentMode != AnimationUtility.TangentMode.ClampedAuto) || (keyRightTangentMode != AnimationUtility.TangentMode.ClampedAuto))
                {
                    on = false;
                }
                if ((keyLeftTangentMode != AnimationUtility.TangentMode.Auto) || (keyRightTangentMode != AnimationUtility.TangentMode.Auto))
                {
                    flag3 = false;
                }
                if ((keyBroken || (keyLeftTangentMode != AnimationUtility.TangentMode.Free)) || (keyRightTangentMode != AnimationUtility.TangentMode.Free))
                {
                    flag4 = false;
                }
                if ((keyBroken || (keyLeftTangentMode != AnimationUtility.TangentMode.Free)) || (((key.inTangent != 0f) || (keyRightTangentMode != AnimationUtility.TangentMode.Free)) || (key.outTangent != 0f)))
                {
                    flag5 = false;
                }
                if (!keyBroken)
                {
                    flag6 = false;
                }
                if (!keyBroken || (keyLeftTangentMode != AnimationUtility.TangentMode.Free))
                {
                    flag7 = false;
                }
                if (!keyBroken || (keyLeftTangentMode != AnimationUtility.TangentMode.Linear))
                {
                    flag8 = false;
                }
                if (!keyBroken || (keyLeftTangentMode != AnimationUtility.TangentMode.Constant))
                {
                    flag9 = false;
                }
                if (!keyBroken || (keyRightTangentMode != AnimationUtility.TangentMode.Free))
                {
                    flag10 = false;
                }
                if (!keyBroken || (keyRightTangentMode != AnimationUtility.TangentMode.Linear))
                {
                    flag11 = false;
                }
                if (!keyBroken || (keyRightTangentMode != AnimationUtility.TangentMode.Constant))
                {
                    flag12 = false;
                }
            }
            if (flag)
            {
                menu.AddItem(EditorGUIUtility.TextContent("Clamped Auto"), on, new GenericMenu.MenuFunction2(this.SetClampedAuto), keyList);
                menu.AddItem(EditorGUIUtility.TextContent("Auto"), flag3, new GenericMenu.MenuFunction2(this.SetAuto), keyList);
                menu.AddItem(EditorGUIUtility.TextContent("Free Smooth"), flag4, new GenericMenu.MenuFunction2(this.SetEditable), keyList);
                menu.AddItem(EditorGUIUtility.TextContent("Flat"), flag5, new GenericMenu.MenuFunction2(this.SetFlat), keyList);
                menu.AddItem(EditorGUIUtility.TextContent("Broken"), flag6, new GenericMenu.MenuFunction2(this.SetBroken), keyList);
                menu.AddSeparator("");
                menu.AddItem(EditorGUIUtility.TextContent("Left Tangent/Free"), flag7, new GenericMenu.MenuFunction2(this.SetLeftEditable), keyList);
                menu.AddItem(EditorGUIUtility.TextContent("Left Tangent/Linear"), flag8, new GenericMenu.MenuFunction2(this.SetLeftLinear), keyList);
                menu.AddItem(EditorGUIUtility.TextContent("Left Tangent/Constant"), flag9, new GenericMenu.MenuFunction2(this.SetLeftConstant), keyList);
                menu.AddItem(EditorGUIUtility.TextContent("Right Tangent/Free"), flag10, new GenericMenu.MenuFunction2(this.SetRightEditable), keyList);
                menu.AddItem(EditorGUIUtility.TextContent("Right Tangent/Linear"), flag11, new GenericMenu.MenuFunction2(this.SetRightLinear), keyList);
                menu.AddItem(EditorGUIUtility.TextContent("Right Tangent/Constant"), flag12, new GenericMenu.MenuFunction2(this.SetRightConstant), keyList);
                menu.AddItem(EditorGUIUtility.TextContent("Both Tangents/Free"), flag10 && flag7, new GenericMenu.MenuFunction2(this.SetBothEditable), keyList);
                menu.AddItem(EditorGUIUtility.TextContent("Both Tangents/Linear"), flag11 && flag8, new GenericMenu.MenuFunction2(this.SetBothLinear), keyList);
                menu.AddItem(EditorGUIUtility.TextContent("Both Tangents/Constant"), flag12 && flag9, new GenericMenu.MenuFunction2(this.SetBothConstant), keyList);
            }
            else
            {
                menu.AddDisabledItem(EditorGUIUtility.TextContent("Clamped Auto"));
                menu.AddDisabledItem(EditorGUIUtility.TextContent("Auto"));
                menu.AddDisabledItem(EditorGUIUtility.TextContent("Free Smooth"));
                menu.AddDisabledItem(EditorGUIUtility.TextContent("Flat"));
                menu.AddDisabledItem(EditorGUIUtility.TextContent("Broken"));
                menu.AddSeparator("");
                menu.AddDisabledItem(EditorGUIUtility.TextContent("Left Tangent/Free"));
                menu.AddDisabledItem(EditorGUIUtility.TextContent("Left Tangent/Linear"));
                menu.AddDisabledItem(EditorGUIUtility.TextContent("Left Tangent/Constant"));
                menu.AddDisabledItem(EditorGUIUtility.TextContent("Right Tangent/Free"));
                menu.AddDisabledItem(EditorGUIUtility.TextContent("Right Tangent/Linear"));
                menu.AddDisabledItem(EditorGUIUtility.TextContent("Right Tangent/Constant"));
                menu.AddDisabledItem(EditorGUIUtility.TextContent("Both Tangents/Free"));
                menu.AddDisabledItem(EditorGUIUtility.TextContent("Both Tangents/Linear"));
                menu.AddDisabledItem(EditorGUIUtility.TextContent("Both Tangents/Constant"));
            }
        }

Usage Example

		private GenericMenu GenerateMenu(DopeLine dopeline, bool clickedEmpty)
		{
			GenericMenu genericMenu = new GenericMenu();
			if (AnimationMode.InAnimationMode())
			{
				string text = "Add Key";
				if (clickedEmpty)
				{
					genericMenu.AddItem(new GUIContent(text), false, new GenericMenu.MenuFunction2(this.AddKeyToDopeline), dopeline);
				}
				else
				{
					genericMenu.AddDisabledItem(new GUIContent(text));
				}
				text = ((this.state.selectedKeys.Count <= 1) ? "Delete Key" : "Delete Keys");
				if (this.state.selectedKeys.Count > 0)
				{
					genericMenu.AddItem(new GUIContent(text), false, new GenericMenu.MenuFunction(this.DeleteSelectedKeys));
				}
				else
				{
					genericMenu.AddDisabledItem(new GUIContent(text));
				}
				if (AnimationWindowUtility.ContainsFloatKeyframes(this.state.selectedKeys))
				{
					genericMenu.AddSeparator(string.Empty);
					List<KeyIdentifier> list = new List<KeyIdentifier>();
					foreach (AnimationWindowKeyframe current in this.state.selectedKeys)
					{
						if (!current.isPPtrCurve)
						{
							int keyframeIndex = current.curve.GetKeyframeIndex(AnimationKeyTime.Time(current.time, this.state.frameRate));
							if (keyframeIndex != -1)
							{
								CurveRenderer curveRenderer = CurveRendererCache.GetCurveRenderer(this.state.m_ActiveAnimationClip, current.curve.binding);
								int curveID = CurveUtility.GetCurveID(this.state.m_ActiveAnimationClip, current.curve.binding);
								list.Add(new KeyIdentifier(curveRenderer, curveID, keyframeIndex));
							}
						}
					}
					CurveMenuManager curveMenuManager = new CurveMenuManager(this.state.m_AnimationWindow);
					curveMenuManager.AddTangentMenuItems(genericMenu, list);
				}
			}
			return genericMenu;
		}
All Usage Examples Of UnityEditor.CurveMenuManager::AddTangentMenuItems