BlueGit

golden-age paperdoll-renderer

Merge fix/static-pivot-test (Tim t1008u)

timfa Grok Bot · pushed by timfa

Authored 2026-11-07 · 6 days ago

Hash
2ca5119f1fa4e62f9481d072cc381ce916253a37
Pipeline
Passed
1 file changed +12 −6
tests/static_body.rs +12 −6
@@ -180,14 +180,20 @@ fn unskinned_fbx_loads_as_static_body_with_one_normalization() {
180 180 }
181 181
182 182 #[test]
183 fn static_body_pivot_falls_back_to_center_y_and_manual_pivot_still_wins() {
183 fn static_body_pivot_is_geometry_centre_and_manual_pivot_still_wins() {
184 184 let body = obj();
185 185 let framing = CameraFraming::default();
186 186 let resolved = camera::resolve(&body, framing);
187 assert_eq!(resolved.framing.pivot_y_milli, Some(framing.center_y_milli));
188 match &resolved.source {
189 camera::PivotSource::Fallback { reason } => assert!(reason.contains("Statisch")),
190 other => panic!("expected fallback, got {other:?}"),
187 // Static geometry has a centre too (Tim t1008u): no fallback needed.
188 match resolved.source {
189 camera::PivotSource::BoundsCenter {
190 min_y_milli,
191 max_y_milli,
192 } => assert_eq!(
193 resolved.framing.pivot_y_milli,
194 Some((min_y_milli + max_y_milli) / 2)
195 ),
196 ref other => panic!("expected bounds centre, got {other:?}"),
191 197 }
192 198 let manual = camera::resolve(
193 199 &body,
@@ -221,7 +227,7 @@ fn static_body_plans_one_bind_sample_times_60_views_and_four_maps() {
221 227 }
222 228 let contract = production::contract(job(obj(), None)).unwrap();
223 229 assert_eq!(contract.plan, plan_with_fps(4));
224 assert_eq!(contract.render_doc["pivot_source"]["kind"], "fallback");
230 assert_eq!(contract.render_doc["pivot_source"]["kind"], "bounds_center");
225 231 assert_eq!(contract.render_doc["clips"][0]["token"], "clip000-bind");
226 232 }
227 233 fn plan_with_fps(fps: u32) -> production::Plan {
@@ -180,14 +180,20 @@ fn unskinned_fbx_loads_as_static_body_with_one_normalization() {
180}
180}
181
181
182#[test]
182#[test]
183fn static_body_pivot_falls_back_to_center_y_and_manual_pivot_still_wins() {
183fn static_body_pivot_is_geometry_centre_and_manual_pivot_still_wins() {
184 let body = obj();
184 let body = obj();
185 let framing = CameraFraming::default();
185 let framing = CameraFraming::default();
186 let resolved = camera::resolve(&body, framing);
186 let resolved = camera::resolve(&body, framing);
187 assert_eq!(resolved.framing.pivot_y_milli, Some(framing.center_y_milli));
187 // Static geometry has a centre too (Tim t1008u): no fallback needed.
188 match &resolved.source {
188 match resolved.source {
189 camera::PivotSource::Fallback { reason } => assert!(reason.contains("Statisch")),
189 camera::PivotSource::BoundsCenter {
190 other => panic!("expected fallback, got {other:?}"),
190 min_y_milli,
191 max_y_milli,
192 } => assert_eq!(
193 resolved.framing.pivot_y_milli,
194 Some((min_y_milli + max_y_milli) / 2)
195 ),
196 ref other => panic!("expected bounds centre, got {other:?}"),
191 }
197 }
192 let manual = camera::resolve(
198 let manual = camera::resolve(
193 &body,
199 &body,
@@ -221,7 +227,7 @@ fn static_body_plans_one_bind_sample_times_60_views_and_four_maps() {
221 }
227 }
222 let contract = production::contract(job(obj(), None)).unwrap();
228 let contract = production::contract(job(obj(), None)).unwrap();
223 assert_eq!(contract.plan, plan_with_fps(4));
229 assert_eq!(contract.plan, plan_with_fps(4));
224 assert_eq!(contract.render_doc["pivot_source"]["kind"], "fallback");
230 assert_eq!(contract.render_doc["pivot_source"]["kind"], "bounds_center");
225 assert_eq!(contract.render_doc["clips"][0]["token"], "clip000-bind");
231 assert_eq!(contract.render_doc["clips"][0]["token"], "clip000-bind");
226}
232}
227fn plan_with_fps(fps: u32) -> production::Plan {
233fn plan_with_fps(fps: u32) -> production::Plan {