Slowly orbit the camera around every form guide

With the equipment layer carrying world-space 3D form, the prop-free
gate comes off: machines now get the same slow orbit as the bodyweight
moves, their seats, cables, bars, and rollers turning with the figure.
Closes out the orbit-for-all-exercises plan.

Claude-Session: https://claude.ai/code/session_01HJDQQDA9QdP8zByg43H5v3
This commit is contained in:
2026-07-06 22:22:31 -04:00
parent b8c3b326c1
commit 20b8e6d82e
6 changed files with 31 additions and 111 deletions
@@ -35,16 +35,14 @@ struct FigureAnimation {
self.props = resources.motion.props ?? []
}
/// Seconds per full camera revolution for orbiting motions.
/// Seconds per full camera revolution.
private static let orbitPeriod: Double = 24
/// Prop-free motions slowly orbit the camera while animating the bodyweight
/// moves. Machines keep their fixed camera until their equipment rotates too.
var orbits: Bool { props.isEmpty }
/// Drawable geometry at `time` the figure plus the resolved equipment layers.
/// Every motion slowly orbits the camera while animating: the equipment has
/// world-space 3D form and rotates with the figure, so machines turn too.
func geometry(at time: Double) -> FigureGeometry {
let yaw = orbits ? 360 * (time / Self.orbitPeriod) : 0
let yaw = 360 * (time / Self.orbitPeriod)
return timeline.geometry(at: time, yawOffset: yaw, props: props)
}
}