Skip to main content

AngleSpring

Observable

Inherits Observable

Observable object which simulates critically damped spring easing towards another observable's value, clamping its output to the range [-pi, pi].

Constructor


Dex.AngleSpring

Dex.AngleSpring<T>(
    target: Observable<T>
    angularFrequency: number?
) -> AngleSpring<T>

Creates an easing observable that simulates the behavior of a critically damped spring, wrapped around the range [-pi, pi]. The spring simulates in realtime until the target value is reached.

INFO

AngleSprings must currently be Subscribed or Mounted to exhibit expected behavior. This is a requirement for all realtime-simulated observables, which enables safe garbage collection when writing Dex components.

Functions

ResetVelocity

AngleSpring:ResetVelocity() → ()

Sets the velocity of the spring to the zero (or the origin vector). Useful in conjunction with Spring:SetPosition

CurrentTarget

AngleSpring:CurrentTarget() → ()

Gets the current value of the spring's target observable.

SetPosition

AngleSpring:SetPosition() → ()

Moves the current position of the spring to a new value, keeping the current velocity intact.

Show raw api
{
    "functions": [
        {
            "name": "ResetVelocity",
            "desc": "Sets the velocity of the spring to the zero (or the origin vector). Useful\nin conjunction with [Spring:SetPosition]",
            "params": [],
            "returns": [],
            "function_type": "method",
            "source": {
                "line": 141,
                "path": "src/Observables/EasedObject.luau"
            }
        },
        {
            "name": "CurrentTarget",
            "desc": "Gets the current value of the spring's target observable.",
            "params": [],
            "returns": [],
            "function_type": "method",
            "source": {
                "line": 164,
                "path": "src/Observables/EasedObject.luau"
            }
        },
        {
            "name": "SetPosition",
            "desc": "Moves the current position of the spring to a new value, keeping the current\nvelocity intact.",
            "params": [],
            "returns": [],
            "function_type": "method",
            "source": {
                "line": 193,
                "path": "src/Observables/EasedObject.luau"
            }
        }
    ],
    "properties": [],
    "types": [],
    "name": "AngleSpring",
    "desc": "#### Inherits [Observable]\n\nObservable object which simulates critically damped spring easing towards\nanother observable's value, clamping its output to the range `[-pi, pi]`.\n\n## Constructor\n\n---\n\n### Dex.AngleSpring\n```ts\nDex.AngleSpring<T>(\n    target: Observable<T>\n    angularFrequency: number?\n) -> AngleSpring<T>\n```\n\nCreates an easing observable that simulates the behavior of a critically\ndamped spring, wrapped around the range [-pi, pi]. The spring simulates in\nrealtime until the target value is reached.\n\n:::info\nAngleSprings must currently be ***Subscribed*** or ***Mounted*** to exhibit\nexpected behavior. This is a requirement for all realtime-simulated\nobservables, which enables safe garbage collection when writing Dex\ncomponents.\n:::",
    "tags": [
        "Observable"
    ],
    "source": {
        "line": 94,
        "path": "src/Observables/AngleSpring.luau"
    }
}