Confined to the plane perpendicular to a world-space hinge axis.
Confined to a cone of baseboneRotor radians about a world-space direction.
Confined to the plane perpendicular to a hinge axis relative to the host bone.
Confined to a cone of baseboneRotor radians about a direction relative to the host bone.
The first bone may point anywhere.
How the first bone in a chain is constrained.
The first bone has no bone before it to be constrained against, so it is constrained against a direction held on the chain instead.
GLOBAL_types read that direction as world space, whileLOCAL_types read it relative to the bone this chain is connected to, and so only mean anything for a chain in a Structure3, where solveStructure resolves them.A
LOCAL_direction is read in the host bone's frame from mat3.fromDirection, where +Z is the host bone's own direction. (fabrik2's equivalent uses +Y.) That frame's roll is arbitrary and flips near world -Z, so a host bone that swings through there makes the constraint pop.