Documentation
    Preparing search index...

    Class ConstraintSystem

    Runs every tracked node's rigs and constraints once per fixed step, as §42's "constraint" authority (§39 step 7).

    Tracking mirrors KinematicSystem's mechanism exactly, for the reasons documented there: components are looked up every step (so attaching, detaching or replacing one needs no re-tracking), the tracked set is iterated in insertion order (§33), a node with enabled === false is skipped, and mutating the set during a step follows Set iteration semantics. Stepping allocates nothing (plan D7).

    Per tracked node, in order:

    1. skip a disabled node;
    2. skip a node whose rigs and constraint are all absent or untargeted — an idle node writes nothing, so there is no §42 conflict to report; CameraShake has no target and is never idle while attached;
    3. refuse a node owned by another authority, reporting it once through warnAuthorityConflict — the owner keeps the transform, and the rigs are left frozen rather than stepped, so granting authority later resumes from where the rig stopped;
    4. place: OrbitRig, then FollowRig;
    5. aim: LookAtConstraint;
    6. shake: CameraShake — additive, after placement and aim.

    Implements

    Index
    priority: number

    Execution order key (§39); default PRIORITY_CONSTRAINTS.

    • get disposed(): boolean

      Whether ConstraintSystem.dispose has run. Disposal is terminal (§83): a disposed system refuses its mutating entry points with INVALID_APPLICATION_STATE (§89) rather than silently working.

      Returns boolean

    • get nodes(): IterableIterator<Node>

      Tracked nodes, in the order they will be processed.

      Returns IterableIterator<Node>

    • get size(): number

      Number of tracked nodes.

      Returns number

    • Stops constraining every node. The system stays registered.

      Returns void

    • Drops every tracked node (§39 teardown).

      Returns void

    • Whether node is tracked.

      Parameters

      Returns boolean

    • No per-registration setup is needed (§39).

      Returns void

    • Starts constraining node. Idempotent — tracking a node twice keeps its original position in the iteration order. Returns node.

      The node need not carry a rig or a constraint yet; they are looked up every step, so tracking first and attaching later is fine.

      Parameters

      Returns Node

    • Stops constraining node. Returns whether it was tracked.

      Parameters

      Returns boolean