# Sandbox.Curve

Describes a curve, which can have multiple key frames.

- Kind: struct
- Namespace: `Sandbox`
- Assembly: `Sandbox.System`
- Modifiers: sealed

## Constructors

- [`Curve`](/api/Sandbox.Curve/.ctor)

## Fields

- [`Ease`](/api/Sandbox.Curve/Ease): A curve that eases from 0 to 1
- [`EaseIn`](/api/Sandbox.Curve/EaseIn): A curve that eases in from 0 to 1
- [`EaseOut`](/api/Sandbox.Curve/EaseOut): A curve that eases out from 0 to 1
- [`Frames`](/api/Sandbox.Curve/Frames): A list of keyframes or points on the curve.
- [`Linear`](/api/Sandbox.Curve/Linear): A curve that linearly interpolates from 0 to 1

## Properties

- [`Item`](/api/Sandbox.Curve/Item)
- [`Length`](/api/Sandbox.Curve/Length): Amount of key frames or points on the curve.
- [`TimeRange`](/api/Sandbox.Curve/TimeRange): The range of this curve. This affects looping.
- [`ValueRange`](/api/Sandbox.Curve/ValueRange): The value range. This should affect nothing but what it looks like in the editor.

## Methods

- [`AddOrReplacePoint`](/api/Sandbox.Curve/AddOrReplacePoint): Add given keyframe to this curve.
- [`AddPoint`](/api/Sandbox.Curve/AddPoint): Add a new keyframe at given position to this curve.
- [`Evaluate`](/api/Sandbox.Curve/Evaluate): Returns the value on the curve at given time position.
- [`EvaluateDelta`](/api/Sandbox.Curve/EvaluateDelta): Like evaluate but takes a normalized time between 0 and 1 and returns a normalized value between 0 and 1
- [`Fix`](/api/Sandbox.Curve/Fix): If the curve is broken in some way, we can fix it here. Ensures correct time and value ranges, and that the curve has at least one point.
- [`RemoveAtTime`](/api/Sandbox.Curve/RemoveAtTime): Remove all of the frames at the current time
- [`Reverse`](/api/Sandbox.Curve/Reverse): Make a copy of this curve that is reversed (If input eases from 0 to 1 then output will ease from 1 to 0)
- [`Sort`](/api/Sandbox.Curve/Sort): Make sure we're all sorted by time
- [`UpdateTimeRange`](/api/Sandbox.Curve/UpdateTimeRange)
- [`UpdateValueRange`](/api/Sandbox.Curve/UpdateValueRange)
- [`WithFrames`](/api/Sandbox.Curve/WithFrames)
