public CurveTrack AddCurve(AnimationCurve animationCurve, Color color) { CurveTrack track = _CurveView.AddCurve(animationCurve, color); track.Changed += Track_Changed; return(track); }
public CurveKey(CurveTrack track, int index) { this.Track = track; this.Index = index; _DragThumb = new CurveKeyDragThumb(this) { Style = new GUIStyle(), Position = new Rect(0, 0, Size, Size) }; this.Controls.Add(_DragThumb); _DragThumb.MouseDown += _DragThumb_MouseDown; if (Index > 0) { _HandleLeft = new TangentHandleLeft(this) { Visibility = Skill.Framework.UI.Visibility.Hidden }; this.Controls.Add(_HandleLeft); } if (Index < Curve.length - 1) { _HandleRight = new TangentHandleRight(this) { Visibility = Skill.Framework.UI.Visibility.Hidden }; this.Controls.Add(_HandleRight); } }
public CurveTrackTreeViewItem(CurveTrack track, CurveEditor.EditCurveInfo info) { this.Track = track; this.Info = info; this.ColumnDefinitions.Add(20, GridUnitType.Pixel); this.ColumnDefinitions.Add(1, GridUnitType.Star); this.ColumnDefinitions.Add(36, GridUnitType.Pixel); _TbVisible = new Skill.Editor.UI.ToggleButton() { Column = 0, IsChecked = track.Visibility == Skill.Framework.UI.Visibility.Visible }; _LblName = new Label() { Column = 1, Text = info.Attribute.Name }; _CFColor = new Skill.Editor.UI.ColorField() { Column = 2, Color = track.Color }; this.Controls.Add(_TbVisible); this.Controls.Add(_LblName); this.Controls.Add(_CFColor); _TbVisible.Changed += _TbVisible_Changed; _CFColor.ColorChanged += _CFColor_ColorChanged; }
void _MnuAddKey_Click(object sender, System.EventArgs e) { CurveTrack track = Owner as CurveTrack; float time = track.GetTime(Position.x, false); track.AddKey(time); }
public void RemoveCurve(CurveTrack track) { if (track != null) { track.Changed -= Track_Changed; _CurveView.Controls.Remove(track); } }
public CurveTrack AddCurve(AnimationCurve curve, Color color) { CurveTrack t = new CurveTrack(this, curve) { Color = color }; Controls.Add(t); _MultiSelector.BringToFront(); return(t); }
IEnumerator IEnumerable.GetEnumerator() { foreach (var c in this.Controls) { if (c is CurveTrack) { CurveTrack track = (CurveTrack)c; foreach (CurveKey ck in track.Controls) { yield return(ck); } } } }
public override void FrameAll() { _MinValue = -1.0f; _MaxValue = 1.0f; if (Controls.Count > 1) // because of _MultiSelector { bool found = false; foreach (var c in Controls) { if (c is CurveTrack) { CurveTrack ct = (CurveTrack)c; if (ct.Visibility == Framework.UI.Visibility.Visible && ct.Curve.length > 1) { if (!found) { found = true; _MinValue = float.MaxValue; _MaxValue = float.MinValue; } float ctMinValue, ctMaxValue; ct.GetValueBounds(out ctMinValue, out ctMaxValue); if (_MinValue > ctMinValue) { _MinValue = ctMinValue; } if (_MaxValue < ctMaxValue) { _MaxValue = ctMaxValue; } } } } double delta = _MaxValue - _MinValue; _MinValue -= delta * 0.05f; _MaxValue += delta * 0.05f; } _MinVisibleValue = _MinValue; _MaxVisibleValue = _MaxValue; base.FrameAll(); }
private void AddCurves(Component component) { CurveEditor.EditCurveInfo[] curves = CurveEditor.GetCurves(component); if (curves != null && curves.Length > 0) { FolderView folder = new FolderView(); folder.Foldout.Content.text = component.GetType().Name; folder.Foldout.IsOpen = true; foreach (var c in curves) { CurveTrack track = _CurveEditor.AddCurve(c.GetCurve(), c.Attribute.Color); CurveTrackTreeViewItem item = new CurveTrackTreeViewItem(track, c); folder.Controls.Add(item); } _CurveTreeView.Controls.Add(folder); } }
protected override void GetTimeBounds(out double minTime, out double maxTime) { minTime = 0.0f; maxTime = 1.0f; if (Controls.Count > 1) // because of _MultiSelector { bool found = false; foreach (var c in Controls) { if (c is CurveTrack && c.Visibility == Skill.Framework.UI.Visibility.Visible) { CurveTrack ct = (CurveTrack)c; if (ct.Curve.length > 1) { if (!found) { minTime = float.MaxValue; maxTime = float.MinValue; found = true; } float ctMinTime, ctMaxTime; ct.GetTimeBounds(out ctMinTime, out ctMaxTime); if (maxTime < ctMaxTime) { maxTime = ctMaxTime; } if (minTime > ctMinTime) { minTime = ctMinTime; } } } } } if (maxTime - minTime < 0.1f) { maxTime = minTime + 0.1f; } }