/// <inheritdoc cref="NotuiElement"/> public BoxElement(ElementPrototype prototype, NotuiContext context, NotuiElement parent = null) : base(prototype, context, parent) { if (prototype is BoxElementPrototype prot) { Size = prot.Size; } }
/// <inheritdoc cref="NotuiElement"/> public PolygonElement(ElementPrototype prototype, NotuiContext context, NotuiElement parent = null) : base(prototype, context, parent) { if (prototype is PolygonElementPrototype prot) { Vertices = prot.Vertices.ToList(); } }
/// <inheritdoc cref="NotuiElement"/> public SegmentElement(ElementPrototype prototype, NotuiContext context, NotuiElement parent = null) : base(prototype, context, parent) { if (prototype is SegmentElementPrototype seprot) { HoleRadius = seprot.HoleRadius; Cycles = seprot.Cycles; Phase = seprot.Phase; } }
public void Evaluate(int SpreadMax) { FOut.Stream.IsChanged = false; if (FContext.IsConnected && FContext.SliceCount > 0 && FContext[0] != null && FQuery.SliceCount > 0) { var currContextHash = FContext[0].GetHashCode(); FOut.SliceCount = FQuery.SliceCount; if (currContextHash != _prevContextHash) { if (_prevContext != null) { _prevContext.OnElementsDeleted -= HandleElementChange; _prevContext.OnElementsUpdated -= HandleElementChange; } FContext[0].OnElementsDeleted += HandleElementChange; FContext[0].OnElementsUpdated += HandleElementChange; } if (FQuery.IsChanged) { HandleElementChange(this, EventArgs.Empty); } _prevContext = FContext[0]; _prevContextHash = currContextHash; } else { FOut.SliceCount = 0; _prevContextHash = 0; if (_prevContext != null) { _prevContext.OnElementsDeleted -= HandleElementChange; _prevContext.OnElementsUpdated -= HandleElementChange; } _prevContext = null; } if (FContext.IsChanged && FContext.IsConnected && FContext.SliceCount > 0) { _elementsChanged = 2; } if (_elementsChanged > 0) { if (FContext.SliceCount > 0 && FContext[0] != null) { for (int i = 0; i < FQuery.SliceCount; i++) { Filter(i); } } FOut.Stream.IsChanged = true; _elementsChanged--; } }
private void FlickProgress(BehaviorState state, NotuiContext context) { if (FlickTime < context.DeltaTime) { state.DeltaPos = Vector2.Zero; } else { // TODO: that 6 there is a rough estimation magic number coming from a vague memory of the integral of something something low-pass filter // It was years ago, only the 6 part stuck and it was good enough for animation var frametime = (6 / FlickTime) * context.DeltaTime; state.DeltaPos = Filters.Velocity(state.DeltaPos, Vector2.Zero, frametime * Max(0.001f, state.DeltaPos.Length())); } }
private void FlickProgress(BehaviorState state, NotuiContext context) { if (FlickTime < context.DeltaTime) { state.DeltaPos = Vector2.Zero; state.DeltaAngle = 0; state.DeltaSize = 0; } else { state.DeltaPos = Filters.Damper(state.DeltaPos, Vector2.Zero, FlickTime, context.DeltaTime); state.DeltaAngle = Filters.Damper(state.DeltaAngle, 0, FlickTime, context.DeltaTime); state.DeltaSize = Filters.Damper(state.DeltaSize, 0, FlickTime, context.DeltaTime); } }
/// <inheritdoc cref="NotuiElement"/> public SphereElement(ElementPrototype prototype, NotuiContext context, NotuiElement parent = null) : base(prototype, context, parent) { }
/// <summary></summary> /// <param name="prototype"></param> /// <param name="context"></param> /// <param name="parent"></param> protected PlanarElement(ElementPrototype prototype, NotuiContext context, NotuiElement parent = null) : base(prototype, context, parent) { }
/// <inheritdoc cref="NotuiElement"/> public InfinitePlaneElement(ElementPrototype prototype, NotuiContext context, NotuiElement parent = null) : base(prototype, context, parent) { }