distark-render 1.1.15 → 1.1.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/README.md +0 -0
  2. package/assets/tank.json +0 -0
  3. package/dist/cli/animate.d.ts +0 -0
  4. package/dist/cli/animate.d.ts.map +0 -0
  5. package/dist/cli/animate.js +0 -0
  6. package/dist/cli/animate.js.map +0 -0
  7. package/dist/cli/diff.d.ts +0 -0
  8. package/dist/cli/diff.d.ts.map +0 -0
  9. package/dist/cli/diff.js +0 -0
  10. package/dist/cli/diff.js.map +0 -0
  11. package/dist/cli/distark-check.d.ts +0 -0
  12. package/dist/cli/distark-check.d.ts.map +0 -0
  13. package/dist/cli/distark-check.js +0 -0
  14. package/dist/cli/distark-check.js.map +0 -0
  15. package/dist/cli/query.d.ts +0 -0
  16. package/dist/cli/query.d.ts.map +0 -0
  17. package/dist/cli/query.js +0 -0
  18. package/dist/cli/query.js.map +0 -0
  19. package/dist/cli/record.d.ts +0 -0
  20. package/dist/cli/record.d.ts.map +0 -0
  21. package/dist/cli/record.js +0 -0
  22. package/dist/cli/record.js.map +0 -0
  23. package/dist/cli/render.d.ts +0 -0
  24. package/dist/cli/render.d.ts.map +0 -0
  25. package/dist/cli/render.js +0 -0
  26. package/dist/cli/render.js.map +0 -0
  27. package/dist/cli/scene.d.ts +0 -0
  28. package/dist/cli/scene.d.ts.map +0 -0
  29. package/dist/cli/scene.js +16 -16
  30. package/dist/cli/scene.js.map +0 -0
  31. package/dist/cli/shared.d.ts +0 -0
  32. package/dist/cli/shared.d.ts.map +0 -0
  33. package/dist/cli/shared.js +0 -0
  34. package/dist/cli/shared.js.map +0 -0
  35. package/dist/cli/test.d.ts +0 -0
  36. package/dist/cli/test.d.ts.map +0 -0
  37. package/dist/cli/test.js +0 -0
  38. package/dist/cli/test.js.map +0 -0
  39. package/dist/cli/verify.d.ts +0 -0
  40. package/dist/cli/verify.d.ts.map +0 -0
  41. package/dist/cli/verify.js +0 -0
  42. package/dist/cli/verify.js.map +0 -0
  43. package/dist/modules/adapters/p5Renderer.d.ts +0 -0
  44. package/dist/modules/adapters/p5Renderer.d.ts.map +1 -1
  45. package/dist/modules/adapters/p5Renderer.js +54 -12
  46. package/dist/modules/adapters/p5Renderer.js.map +1 -1
  47. package/dist/modules/adapters/skiaRenderer.d.ts +0 -0
  48. package/dist/modules/adapters/skiaRenderer.d.ts.map +1 -1
  49. package/dist/modules/adapters/skiaRenderer.js +2 -1
  50. package/dist/modules/adapters/skiaRenderer.js.map +1 -1
  51. package/dist/modules/animationDiff.d.ts +0 -0
  52. package/dist/modules/animationDiff.d.ts.map +0 -0
  53. package/dist/modules/animationDiff.js +0 -0
  54. package/dist/modules/animationDiff.js.map +0 -0
  55. package/dist/modules/browserSceneRenderer.d.ts +0 -0
  56. package/dist/modules/browserSceneRenderer.d.ts.map +0 -0
  57. package/dist/modules/browserSceneRenderer.js +0 -0
  58. package/dist/modules/browserSceneRenderer.js.map +0 -0
  59. package/dist/modules/characterValidator.d.ts +2 -1
  60. package/dist/modules/characterValidator.d.ts.map +1 -1
  61. package/dist/modules/characterValidator.js +2 -41
  62. package/dist/modules/characterValidator.js.map +1 -1
  63. package/dist/modules/eyeSystem.d.ts +0 -0
  64. package/dist/modules/eyeSystem.d.ts.map +1 -1
  65. package/dist/modules/eyeSystem.js +104 -69
  66. package/dist/modules/eyeSystem.js.map +1 -1
  67. package/dist/modules/imageLoad.d.ts +50 -0
  68. package/dist/modules/imageLoad.d.ts.map +1 -1
  69. package/dist/modules/imageLoad.js +262 -18
  70. package/dist/modules/imageLoad.js.map +1 -1
  71. package/dist/modules/mouthSystem.d.ts +0 -0
  72. package/dist/modules/mouthSystem.d.ts.map +0 -0
  73. package/dist/modules/mouthSystem.js +0 -0
  74. package/dist/modules/mouthSystem.js.map +0 -0
  75. package/dist/modules/renderRig.d.ts +0 -0
  76. package/dist/modules/renderRig.d.ts.map +0 -0
  77. package/dist/modules/renderRig.js +0 -0
  78. package/dist/modules/renderRig.js.map +0 -0
  79. package/dist/modules/sceneRenderer.d.ts +0 -0
  80. package/dist/modules/sceneRenderer.d.ts.map +0 -0
  81. package/dist/modules/sceneRenderer.js +0 -0
  82. package/dist/modules/sceneRenderer.js.map +0 -0
  83. package/dist/tests/helpers.d.ts +0 -0
  84. package/dist/tests/helpers.d.ts.map +0 -0
  85. package/dist/tests/helpers.js +0 -0
  86. package/dist/tests/helpers.js.map +0 -0
  87. package/dist/tests/test-angle-swap.d.ts +0 -0
  88. package/dist/tests/test-angle-swap.d.ts.map +0 -0
  89. package/dist/tests/test-angle-swap.js +0 -0
  90. package/dist/tests/test-angle-swap.js.map +0 -0
  91. package/dist/tests/test-animation-diff-rendering.d.ts +0 -0
  92. package/dist/tests/test-animation-diff-rendering.d.ts.map +0 -0
  93. package/dist/tests/test-animation-diff-rendering.js +0 -0
  94. package/dist/tests/test-animation-diff-rendering.js.map +0 -0
  95. package/dist/tests/test-animation-diff.d.ts +0 -0
  96. package/dist/tests/test-animation-diff.d.ts.map +0 -0
  97. package/dist/tests/test-animation-diff.js +0 -0
  98. package/dist/tests/test-animation-diff.js.map +0 -0
  99. package/dist/tests/test-auto-eye-movement-e2e.d.ts +24 -0
  100. package/dist/tests/test-auto-eye-movement-e2e.d.ts.map +1 -0
  101. package/dist/tests/test-auto-eye-movement-e2e.js +514 -0
  102. package/dist/tests/test-auto-eye-movement-e2e.js.map +1 -0
  103. package/dist/tests/test-autofit.d.ts +0 -0
  104. package/dist/tests/test-autofit.d.ts.map +0 -0
  105. package/dist/tests/test-autofit.js +0 -0
  106. package/dist/tests/test-autofit.js.map +0 -0
  107. package/dist/tests/test-base-autofit.d.ts +0 -0
  108. package/dist/tests/test-base-autofit.d.ts.map +0 -0
  109. package/dist/tests/test-base-autofit.js +0 -0
  110. package/dist/tests/test-base-autofit.js.map +0 -0
  111. package/dist/tests/test-browser-scene.d.ts +0 -0
  112. package/dist/tests/test-browser-scene.d.ts.map +0 -0
  113. package/dist/tests/test-browser-scene.js +0 -0
  114. package/dist/tests/test-browser-scene.js.map +0 -0
  115. package/dist/tests/test-character-validator.d.ts +0 -0
  116. package/dist/tests/test-character-validator.d.ts.map +0 -0
  117. package/dist/tests/test-character-validator.js +0 -32
  118. package/dist/tests/test-character-validator.js.map +1 -1
  119. package/dist/tests/test-cli.d.ts +0 -0
  120. package/dist/tests/test-cli.d.ts.map +0 -0
  121. package/dist/tests/test-cli.js +0 -0
  122. package/dist/tests/test-cli.js.map +0 -0
  123. package/dist/tests/test-eye-system-reset.d.ts +15 -0
  124. package/dist/tests/test-eye-system-reset.d.ts.map +1 -0
  125. package/dist/tests/test-eye-system-reset.js +148 -0
  126. package/dist/tests/test-eye-system-reset.js.map +1 -0
  127. package/dist/tests/test-image-loading.d.ts +0 -0
  128. package/dist/tests/test-image-loading.d.ts.map +0 -0
  129. package/dist/tests/test-image-loading.js +0 -0
  130. package/dist/tests/test-image-loading.js.map +0 -0
  131. package/dist/tests/test-joint-movement.d.ts +0 -0
  132. package/dist/tests/test-joint-movement.d.ts.map +0 -0
  133. package/dist/tests/test-joint-movement.js +0 -0
  134. package/dist/tests/test-joint-movement.js.map +0 -0
  135. package/dist/tests/test-p5-image-types.d.ts +0 -0
  136. package/dist/tests/test-p5-image-types.d.ts.map +0 -0
  137. package/dist/tests/test-p5-image-types.js +0 -0
  138. package/dist/tests/test-p5-image-types.js.map +0 -0
  139. package/dist/tests/test-render-cache-visual.d.ts +0 -0
  140. package/dist/tests/test-render-cache-visual.d.ts.map +0 -0
  141. package/dist/tests/test-render-cache-visual.js +0 -0
  142. package/dist/tests/test-render-cache-visual.js.map +0 -0
  143. package/dist/tests/test-render-cache.d.ts +0 -0
  144. package/dist/tests/test-render-cache.d.ts.map +0 -0
  145. package/dist/tests/test-render-cache.js +0 -0
  146. package/dist/tests/test-render-cache.js.map +0 -0
  147. package/dist/tests/test-scene-object-svg-rerasterization.d.ts +0 -0
  148. package/dist/tests/test-scene-object-svg-rerasterization.d.ts.map +0 -0
  149. package/dist/tests/test-scene-object-svg-rerasterization.js +0 -0
  150. package/dist/tests/test-scene-object-svg-rerasterization.js.map +0 -0
  151. package/dist/tests/test-scene.d.ts +0 -0
  152. package/dist/tests/test-scene.d.ts.map +0 -0
  153. package/dist/tests/test-scene.js +0 -0
  154. package/dist/tests/test-scene.js.map +0 -0
  155. package/dist/tests/test-skia.d.ts +0 -0
  156. package/dist/tests/test-skia.d.ts.map +0 -0
  157. package/dist/tests/test-skia.js +0 -0
  158. package/dist/tests/test-skia.js.map +0 -0
  159. package/dist/tests/test-svg-parallax.d.ts +0 -0
  160. package/dist/tests/test-svg-parallax.d.ts.map +0 -0
  161. package/dist/tests/test-svg-parallax.js +0 -0
  162. package/dist/tests/test-svg-parallax.js.map +0 -0
  163. package/dist/tests/test-svg-rerasterization.d.ts +0 -0
  164. package/dist/tests/test-svg-rerasterization.d.ts.map +0 -0
  165. package/dist/tests/test-svg-rerasterization.js +194 -4
  166. package/dist/tests/test-svg-rerasterization.js.map +1 -1
  167. package/dist/tests/test-teen-tank-rig.d.ts +12 -0
  168. package/dist/tests/test-teen-tank-rig.d.ts.map +1 -0
  169. package/dist/tests/test-teen-tank-rig.js +122 -0
  170. package/dist/tests/test-teen-tank-rig.js.map +1 -0
  171. package/dist/tests/test-torso-pivot.d.ts +0 -0
  172. package/dist/tests/test-torso-pivot.d.ts.map +0 -0
  173. package/dist/tests/test-torso-pivot.js +0 -0
  174. package/dist/tests/test-torso-pivot.js.map +0 -0
  175. package/dist/tests/test-visual-verification.d.ts +0 -0
  176. package/dist/tests/test-visual-verification.d.ts.map +0 -0
  177. package/dist/tests/test-visual-verification.js +0 -0
  178. package/dist/tests/test-visual-verification.js.map +0 -0
  179. package/dist/types.d.ts +0 -0
  180. package/dist/types.d.ts.map +0 -0
  181. package/dist/types.js +0 -0
  182. package/dist/types.js.map +0 -0
  183. package/package.json +106 -106
  184. package/assets/presets/jumping-jack.json +0 -194
@@ -16,81 +16,95 @@ const DEFAULT_MOVEMENT_RANGES = {
16
16
  '': { x: 0, y: 0 }
17
17
  };
18
18
  /**
19
- * Compute movement ranges from eye socket polygons.
20
- * Socket points define the boundary; we use bounding box half-extents as max movement.
21
- * When headWidth/headHeight are provided and socket values look like 0-100 percent,
22
- * we scale to pixel offsets. Otherwise we use raw socket units.
23
- * Factors in iris dimensions to prevent iris from escaping socket boundaries.
19
+ * Compute auto-movement ranges from eye socket polygons.
20
+ *
21
+ * Mirrors the logic in Body.js `computeIrisScaleFactorFromSockets` so that manual
22
+ * eye-position keyframes and automatic wandering use the same socket-derived scale.
23
+ *
24
+ * For each axis:
25
+ * socketHalfPx = full socket bounding-box width/height in pixels ÷ 2
26
+ * irisHalfPx = ratio-scaled rendered iris dimension ÷ 2
27
+ * strictRange = socketHalfPx − irisHalfPx (keeps the iris edge inside socket)
28
+ *
29
+ * When strictRange > 1 px → use strictRange (hard containment)
30
+ * When iris ≥ socket size → use socketHalfPx (iris center moves to socket wall;
31
+ * best-effort containment — same fallback as Body.js)
32
+ *
33
+ * Socket coordinates are stored as 0-100 percentages of the head image dimensions.
34
+ * headWidth / headHeight must be the HEAD IMAGE size (dimensionValues.head), not the
35
+ * full character body, because the socket is drawn on top of the head sprite in
36
+ * EyeSocketModal.
24
37
  */
25
38
  function computeMovementRangesFromSockets(eyeSockets, headWidth = 100, headHeight = 100, eyeData) {
26
39
  const left = eyeSockets.left;
27
40
  const right = eyeSockets.right;
28
41
  const hasLeft = left && left.length >= 3;
29
42
  const hasRight = right && right.length >= 3;
30
- const computeBounds = (points) => {
31
- let minX = Infinity, minY = Infinity;
32
- let maxX = -Infinity, maxY = -Infinity;
43
+ if (!hasLeft && !hasRight)
44
+ return { ...DEFAULT_MOVEMENT_RANGES };
45
+ // Detect whether socket values are 0-100 percentages or raw pixels.
46
+ const allPts = [...(left || []), ...(right || [])];
47
+ const maxCoord = Math.max(...allPts.flatMap(p => [p.x, p.y]));
48
+ const isPercent = maxCoord > 0 && maxCoord <= 100;
49
+ const toPixels = (raw, dim) => isPercent ? (raw / 100) * dim : raw;
50
+ /** Full bounding box for one socket polygon. */
51
+ const bounds = (points) => {
52
+ let minX = Infinity, maxX = -Infinity, minY = Infinity, maxY = -Infinity;
33
53
  for (const p of points) {
34
- minX = Math.min(minX, p.x);
35
- minY = Math.min(minY, p.y);
36
- maxX = Math.max(maxX, p.x);
37
- maxY = Math.max(maxY, p.y);
54
+ if (p.x < minX)
55
+ minX = p.x;
56
+ if (p.x > maxX)
57
+ maxX = p.x;
58
+ if (p.y < minY)
59
+ minY = p.y;
60
+ if (p.y > maxY)
61
+ maxY = p.y;
38
62
  }
39
- const centerX = (minX + maxX) / 2;
40
- const centerY = (minY + maxY) / 2;
41
- const halfWidthX = (maxX - minX) / 2;
42
- const halfWidthY = (maxY - minY) / 2;
43
- return { centerX, centerY, halfWidthX, halfWidthY };
63
+ return {
64
+ socketW: toPixels(maxX - minX, headWidth),
65
+ socketH: toPixels(maxY - minY, headHeight),
66
+ };
44
67
  };
45
- // Use 50% of half-extent as max movement (keeps iris safely inside socket)
46
- const marginFactor = 0.5;
47
- let rangeX;
48
- let rangeY;
49
- if (hasLeft && hasRight) {
50
- const leftBounds = computeBounds(left);
51
- const rightBounds = computeBounds(right);
52
- rangeX = Math.min(leftBounds.halfWidthX, rightBounds.halfWidthX) * marginFactor;
53
- rangeY = Math.min(leftBounds.halfWidthY, rightBounds.halfWidthY) * marginFactor;
54
- }
55
- else if (hasLeft) {
56
- const b = computeBounds(left);
57
- rangeX = b.halfWidthX * marginFactor;
58
- rangeY = b.halfWidthY * marginFactor;
59
- }
60
- else if (hasRight) {
61
- const b = computeBounds(right);
62
- rangeX = b.halfWidthX * marginFactor;
63
- rangeY = b.halfWidthY * marginFactor;
64
- }
65
- else {
66
- return { ...DEFAULT_MOVEMENT_RANGES };
67
- }
68
- // If socket values look like 0-100 percent (typical for rigs), scale to pixels
69
- const maxCoord = Math.max(...(left || []).flatMap(p => [p.x, p.y]), ...(right || []).flatMap(p => [p.x, p.y]));
70
- if (maxCoord > 0 && maxCoord <= 100) {
71
- rangeX = (rangeX / 100) * headWidth;
72
- rangeY = (rangeY / 100) * headHeight;
68
+ // Ratio-scaled iris rendered dimensions (same as renderRig.ts rendering).
69
+ const leftIrisW = ((eyeData?.leftIrisWidth || 10) * (eyeData?.leftIrisWidthRatio || 1));
70
+ const leftIrisH = ((eyeData?.leftIrisHeight || 10) * (eyeData?.leftIrisHeightRatio || 1));
71
+ const rightIrisW = ((eyeData?.rightIrisWidth || 10) * (eyeData?.rightIrisWidthRatio || 1));
72
+ const rightIrisH = ((eyeData?.rightIrisHeight || 10) * (eyeData?.rightIrisHeightRatio || 1));
73
+ /**
74
+ * Effective movement half-range for one axis.
75
+ * A 15% margin is kept at the socket wall so the iris never travels all the way
76
+ * to the boundary (mirrors the edgeFactor concept from the original design).
77
+ *
78
+ * When iris fits inside the usable zone: strict containment.
79
+ * When iris overflows (oversize iris ratios): iris center travels to the edge of
80
+ * the usable zone — same best-effort behaviour as Body.js manual mode.
81
+ */
82
+ const edgeFactor = 0.85; // 15% soft margin at the socket wall
83
+ const effectiveRange = (socketDimPx, irisDimPx) => {
84
+ const usableHalf = (socketDimPx / 2) * edgeFactor;
85
+ const strict = usableHalf - irisDimPx / 2;
86
+ return strict > 1 ? strict : Math.max(1, usableHalf);
87
+ };
88
+ const rangesX = [];
89
+ const rangesY = [];
90
+ if (hasLeft && left) {
91
+ const b = bounds(left);
92
+ rangesX.push(effectiveRange(b.socketW, leftIrisW));
93
+ rangesY.push(effectiveRange(b.socketH, leftIrisH));
73
94
  }
74
- // Factor in iris dimensions to prevent escape from socket boundaries
75
- if (eyeData) {
76
- // Get iris dimensions (use the larger iris as reference to ensure both fit)
77
- const leftIrisWidth = eyeData.leftIrisWidth || 10;
78
- const leftIrisHeight = eyeData.leftIrisHeight || 10;
79
- const rightIrisWidth = eyeData.rightIrisWidth || 10;
80
- const rightIrisHeight = eyeData.rightIrisHeight || 10;
81
- const maxIrisWidth = Math.max(leftIrisWidth, rightIrisWidth);
82
- const maxIrisHeight = Math.max(leftIrisHeight, rightIrisHeight);
83
- // Subtract half the iris size from available movement range
84
- // This ensures the iris edge doesn't escape the socket
85
- rangeX = Math.max(0, rangeX - maxIrisWidth / 2);
86
- rangeY = Math.max(0, rangeY - maxIrisHeight / 2);
87
- console.log('[EyeSystem] Adjusted movement range for iris size:', {
88
- maxIrisWidth,
89
- maxIrisHeight,
90
- adjustedRangeX: rangeX,
91
- adjustedRangeY: rangeY
92
- });
95
+ if (hasRight && right) {
96
+ const b = bounds(right);
97
+ rangesX.push(effectiveRange(b.socketW, rightIrisW));
98
+ rangesY.push(effectiveRange(b.socketH, rightIrisH));
93
99
  }
100
+ // Use the most constraining socket so no iris overflows on either side.
101
+ const rangeX = Math.min(...rangesX);
102
+ const rangeY = Math.min(...rangesY);
103
+ console.log('[EyeSystem] Socket-derived movement range:', {
104
+ rangeX, rangeY,
105
+ leftIrisRendered: { w: leftIrisW, h: leftIrisH },
106
+ rightIrisRendered: { w: rightIrisW, h: rightIrisH },
107
+ });
94
108
  return {
95
109
  'left': { x: -rangeX, y: 0 },
96
110
  'right': { x: rangeX, y: 0 },
@@ -344,16 +358,37 @@ export class EyeSystem {
344
358
  * @param characterPos - This character's position
345
359
  */
346
360
  update(currentTime, isPlaying = false, speakingCharacterPos, characterPos = { x: 0, y: 0 }) {
347
- // Handle timeline reset
348
- if (currentTime < 0.1 || this.detectReset(currentTime)) {
361
+ // Detect a genuine reset so resetTiming() is called exactly once per event,
362
+ // not on every frame while currentTime < 0.1.
363
+ //
364
+ // Bug (pre-fix): the original `currentTime < 0.1` guard called resetTiming on
365
+ // every early frame. resetTiming sets eyeLastUpdatedTime = t − eyeUpdateInterval
366
+ // (= t − 0.75 s), so the timeSinceUpdate check immediately satisfied (0.75 ≥ 0.75)
367
+ // and randomEyeMovement fired on ~50 % of frames — iris twitched to a new
368
+ // random direction every ~16 ms instead of the intended ~750 ms.
369
+ //
370
+ // A genuine reset is one of three cases:
371
+ // 1. Very first call ever (eyeLastUpdatedTime is still the sentinel -1)
372
+ // 2. Time jumped backward (within or crossing the startup window) — covers
373
+ // timeline loops and user scrubbing backward
374
+ // 3. detectReset() — normal backwards-time detection during playback
375
+ const isFirstInit = this.state.eyeLastUpdatedTime === -1;
376
+ const isEarlyJumpBack = currentTime < 0.1 && this.state.eyeLastUpdatedTime > currentTime;
377
+ if (isFirstInit || isEarlyJumpBack || this.detectReset(currentTime)) {
349
378
  this.resetTiming(currentTime);
350
379
  }
351
- // Always update blinking (works even when paused)
352
- this.updateBlinking(currentTime);
353
- // Eye movement only when playing
380
+ // Neither blinking nor movement happens while the scene is paused/stopped.
381
+ // While paused we keep timing anchors fresh so there is no burst of
382
+ // activity the instant play resumes.
354
383
  if (!isPlaying) {
384
+ this.state.eyeLastUpdatedTime = currentTime; // prevents immediate wander on resume
385
+ this.state.eyeLidLastUpdatedTime = null; // resets blink timer for a clean start
386
+ this.state.currentEyeLidState = 'open'; // eyes stay open while paused
387
+ this.state.currentEyeLidCount = 0;
355
388
  return;
356
389
  }
390
+ // Update blinking (only runs when playing)
391
+ this.updateBlinking(currentTime);
357
392
  const timeSinceUpdate = currentTime - this.state.eyeLastUpdatedTime;
358
393
  const shouldUpdate = timeSinceUpdate >= this.state.eyeUpdateInterval;
359
394
  if (!shouldUpdate) {
@@ -1 +1 @@
1
- {"version":3,"file":"eyeSystem.js","sourceRoot":"","sources":["../../modules/eyeSystem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eyeSystem.js","sourceRoot":"","sources":["../../modules/eyeSystem.ts"],"names":[],"mappings":"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"}
@@ -72,6 +72,41 @@ export declare class ImageLoader {
72
72
  requestImageForSize(key: string, desiredWidth: number, desiredHeight: number, loadedImages?: Record<string, any>): any;
73
73
  requestSvgParallaxImageForSize(baseKey: string, config: SvgParallaxPartConfig | undefined, angleDegrees: number, desiredWidth: number, desiredHeight: number, loadedImages?: Record<string, any>): any;
74
74
  waitForPendingImageUpgrades(): Promise<void>;
75
+ /**
76
+ * Pre-rasterize all SVG parts at their rig dimensionValues sizes, scaled by
77
+ * pixelDensity so the first rendered frame is already sharp on retina displays.
78
+ *
79
+ * Pass `options.pixelDensity = p5.pixelDensity()` (typically 1 on standard
80
+ * screens, 2 on retina / HiDPI) so the target canvas matches exactly what
81
+ * _applyImageLoop will request:
82
+ * desiredWidth = dimensionValues[part].width × |scaleX| × pixelDensity
83
+ * Without this, every new loadImages call produces a canvas at 1× that is
84
+ * immediately eligible for an upgrade to 2×, causing 1–N frames of fuzziness
85
+ * while the async re-raster is in flight.
86
+ *
87
+ * This must be called AFTER the caller has already normalized __distarkSvgSource
88
+ * on each canvas (tight viewBox + preserveAspectRatio="none"). In the React
89
+ * app, Body.loadImages() does this via fitSvgViewBoxToContent +
90
+ * normalizeSvgPreserveAspectRatio before invoking prepareSvgCanvases.
91
+ *
92
+ * prepareSvgCanvases does NOT recompute content bounds. The caller owns that
93
+ * responsibility because it has access to browser DOM APIs (getBBox / DOMParser
94
+ * + accurate geometry). Any attempt to recompute here risks overriding the
95
+ * accurate tight viewBox with an inaccurate one (e.g. Bezier control-point
96
+ * bounds that exceed visible content), which is the root cause of distortion.
97
+ *
98
+ * Skips parts whose canvas is already at the target size (±2 px or 2% tolerance).
99
+ * Marks each produced canvas with __distarkSvgNormalized = true so Body.js
100
+ * rememberOriginalSvgImage does not re-run normalization on the next draw.
101
+ */
102
+ prepareSvgCanvases(rigData: RigData, loadedImages: Record<string, any>, options?: {
103
+ pixelDensity?: number;
104
+ }): Promise<void>;
105
+ /**
106
+ * Adds preserveAspectRatio="none" to the SVG root element.
107
+ * Replaces any existing preserveAspectRatio attribute value.
108
+ */
109
+ private static injectPreserveAspectRatioNone;
75
110
  /**
76
111
  * Load image with caching support
77
112
  * Checks cache first, only loads if not cached
@@ -92,7 +127,22 @@ export declare class ImageLoader {
92
127
  loadAllRigImages(rigData: RigData, useCache?: boolean, onProgress?: (loaded: number, total: number, failed: number) => void): Promise<Record<string, any>>;
93
128
  private static decodeSvgDataUrl;
94
129
  private static parseDimension;
130
+ private static parseViewBox;
95
131
  private static parseSvgDimensions;
132
+ private static formatNumber;
133
+ private static setSvgRootAttribute;
134
+ /**
135
+ * Rewrites the SVG so it renders at exactly targetWidth × targetHeight with no clipping.
136
+ *
137
+ * Strategy: scale-to-fit using the SVG's own declared dimensions (after unit conversion),
138
+ * then center the result within the target box. The viewBox is set to
139
+ * "0 0 targetWidth targetHeight" so 1 SVG user unit = 1 CSS pixel.
140
+ *
141
+ * This guarantees no cropping because we use min(scaleX, scaleY) (uniform fit), and the
142
+ * reference dimensions come from the SVG's declared width/height — not from a content-bounds
143
+ * measurement that could under-report and cause clipping.
144
+ */
145
+ protected static normalizeSvgToVisibleBounds(svgSource: string, targetWidth?: number, targetHeight?: number): string;
96
146
  protected prepareResolvedAsset(imageUrl: string): Promise<{
97
147
  kind: 'svg';
98
148
  svgSource: string;
@@ -1 +1 @@
1
- {"version":3,"file":"imageLoad.d.ts","sourceRoot":"","sources":["../../modules/imageLoad.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"imageLoad.d.ts","sourceRoot":"","sources":["../../modules/imageLoad.ts"],"names":[],"mappings":"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"}