private void CheckWarnings() { bool IsBoneWeightValid(float weight) => weight == Mathf.Clamp(weight, 0, 1); bool isOutOfRange = false; foreach (var slider in weightsSliders) { isOutOfRange |= !IsBoneWeightValid(slider.Value); } if (isOutOfRange) { if (customWarningsContainer.Nodes.Count == 0) { customWarningsContainer.AddNode( CommonPropertyEditor.CreateWarning( message: "Bone weight should be in the range [0, 1].", validationResult: ValidationResult.Warning)); } } else { customWarningsContainer.Nodes.Clear(); } }
public BezierHandle( int index, CommonPropertyEditor <BezierEasing> editor, IDataflowProvider <CoalescedValue <BezierEasing> > valueProvider, Action <BezierEasing> propertySetter, Widget canvas) { this.index = index; this.editor = editor; this.valueProvider = valueProvider; this.propertySetter = propertySetter; this.canvas = canvas; canvas.CompoundPostPresenter.Add(new SyncDelegatePresenter <Widget>(Render)); canvas.Tasks.Add(DragTask(canvas)); }
public EasingEditorPanel( CommonPropertyEditor <BezierEasing> editor, IDataflowProvider <CoalescedValue <BezierEasing> > valueProvider, Action <BezierEasing> propertySetter) { this.valueProvider = valueProvider; canvas = new Widget { MinMaxSize = new Vector2(160, 120), Padding = new Thickness(6), LayoutCell = new LayoutCell(Alignment.Center), HitTestTarget = true }; Widget = new Frame { ClipChildren = ClipMethod.ScissorTest, Layout = new StackLayout(), Nodes = { canvas, new Widget() } }; new BezierHandle(0, editor, valueProvider, propertySetter, canvas); new BezierHandle(1, editor, valueProvider, propertySetter, canvas); canvas.CompoundPostPresenter.Add(new SyncDelegatePresenter <Widget>(RenderSpline)); canvas.CompoundPostPresenter.Add(new WidgetBoundsPresenter(ColorTheme.Current.Inspector.BorderAroundKeyframeColorbox)); }