# Source URL: https://dev.epicgames.com/community/snippets/VgoX/fortnite-linear-float-curve
# Local doc: epic-docs/community/snippets/VgoX/fortnite-linear-float-curve.md
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
Verse Library
verse
01 Snippet
Evaluates linear interpolation across sequential points, returning Y for a given X or failing if out of bounds.
extracted-snippets/community/snippets/VgoX/fortnite-linear-float-curve/01-snippet.verse
Sign in free to read the full source 🌴
This Verse Library file is members-only. Create a free account to view the complete source and download the .verse file.