Describes a single joint of a `Skeleton`
Joints form the hierarchical structure of a skeleton. Each joint has a unique name,
a rest pose transform relative to its parent, and an optional list of child joints.
The hierarchy is expressed through nesting using the `JointBuilder` result builder.
```swift
typealias Joint = SkeletonResource.Joint
// Create a simple arm hierarchy
let arm = try Joint("shoulder") {
try Joint("upperArm", restPoseTransform: Transform(translation: [0, -0.3, 0])) {
try Joint("forearm", restPoseTransform: Transform(translation: [0, -0.3, 0]))
}
}
```
Members (6)
get · iOS 27.0+
restPoseTransform
TypeScript
get restPoseTransform(): Transform
Swift declaration
var restPoseTransform: Transform
The rest pose transform of the joint.
Defines position, rotation, and scale relative to the parent joint in local space.
Used as the reference pose for all animations and deformations.
set · iOS 27.0+
restPoseTransform
TypeScript
set restPoseTransform(value: Transform)
Swift declaration
var restPoseTransform: Transform
The rest pose transform of the joint.
Defines position, rotation, and scale relative to the parent joint in local space.
Used as the reference pose for all animations and deformations.
get · iOS 27.0+
id
TypeScript
get id(): string
Swift declaration
var id: String { get }
The identifier of the joint, automatically derived from the joint name.
get · iOS 27.0+
name
TypeScript
get name(): string
Swift declaration
let name: String
The unique name of the joint.
Names should be unique within a skeleton.
get · iOS 27.0+
children
TypeScript
get children(): Array<SkeletonResource_Joint>
Swift declaration
let children: [SkeletonResource.Joint]
The child joints of this joint.
All children must have unique names within the same parent.
`JointBuilder` preserves the order children are declared in the closure body, so
iteration over `children` is deterministic.
Creates a joint with the provided name, rest pose transform, and optional children.
- Parameters:
- name: The unique name of the new joint
- restPoseTransform: The local space transformation relative to the parent joint
- children: A result builder closure that returns child joints
- Throws: If any children share the same name.