Linear Float Curve
3652 Views
-
using { /Verse.org/Simulation } using { /UnrealEngine.com/Temporary/SpatialMath } # A curve meant to be @editable # The X values of the point should be sequential curve_float := class<concrete>() { # Given the points: # 0, 0 # 5, 100 # 10, 0 # # Results: # For X=2, Y=40 # For X=5, Y=100 # For X=7.5,Y=50 # For X=10, Y=0 # For X=-1, Fails # For X=11, Fails @editable Points: []vector2 = array{} Evaluate(X: float)<transacts><decides>:float = var Result: ?float = false for: Index->Point: Points not Result? # If Result is not set, else skip CurrentPoint:= Points[Index] NextPoint:= Points[Index+1] CurrentPoint.X <= X <= NextPoint.X # If X is between two points Alpha:= (X-CurrentPoint.X)/(NextPoint.X-CurrentPoint.X) # Get the alpha value from X in relation to the two points do: set Result = option{Lerp(CurrentPoint.Y, NextPoint.Y, Alpha)} Result? }
You're reading a preview
The full reference is free for BrainDeadGuild Discord members — sign in to read it all, or open the original at the source.
Sign in with your BrainDead.TV / BrainDeadGuild Discord account for full access.