Surface machine settings in the exercise library and refine machine rigs
Library detail screens now lead with the user's recorded machine settings (per-split when they disagree, empty-state card for machine-based entries) and append the weight progression chart. Starter seeds mark machine exercises with an empty machineSettings list so the settings UI lights up before first use. The figure rig gains a frontal body profile for face-on machines, props that can ride mid joints (knees/elbows), and an alternating four-frame Bird Dog loop. Claude-Session: https://claude.ai/code/session_01LEoff8bXGBS83tK1c55Mf7
This commit is contained in:
@@ -11,8 +11,10 @@ struct ExerciseMotionTests {
|
||||
@Test func bundledBirdDogResourcesDecode() throws {
|
||||
let resources = try #require(ExerciseMotionLibrary.resources(for: "Bird Dog"))
|
||||
#expect(resources.motion.name == "Bird Dog")
|
||||
#expect(resources.motion.frames.count == 2)
|
||||
#expect(resources.motion.working == ["arm_r", "leg_l"])
|
||||
// Bird Dog alternates sides, so all four limbs are in the working set and
|
||||
// the loop is four key frames (lift right/left pair, then the opposite pair).
|
||||
#expect(resources.motion.frames.count == 4)
|
||||
#expect(resources.motion.working == ["arm_r", "leg_l", "arm_l", "leg_r"])
|
||||
#expect(resources.body.upperArm == 30)
|
||||
#expect(MotionTimeline(motion: resources.motion, body: resources.body) != nil)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user