@motionscript/browser 0.1.0-alpha.7 → 0.1.0-alpha.9

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 (174) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/LICENSE +201 -201
  3. package/NOTICE +49 -48
  4. package/README.md +141 -118
  5. package/dist/asset-bytes.d.ts +7 -4
  6. package/dist/asset-bytes.d.ts.map +1 -1
  7. package/dist/asset-bytes.js +9 -4
  8. package/dist/asset-bytes.js.map +1 -1
  9. package/dist/audio/bus-graph.d.ts.map +1 -1
  10. package/dist/audio/bus-graph.js +15 -6
  11. package/dist/audio/bus-graph.js.map +1 -1
  12. package/dist/audio/effect-graph.d.ts +62 -0
  13. package/dist/audio/effect-graph.d.ts.map +1 -0
  14. package/dist/audio/effect-graph.js +234 -0
  15. package/dist/audio/effect-graph.js.map +1 -0
  16. package/dist/audio/index.d.ts.map +1 -1
  17. package/dist/audio/index.js +2 -3
  18. package/dist/audio/index.js.map +1 -1
  19. package/dist/audio/loop-region.js.map +1 -1
  20. package/dist/audio/mixer.d.ts +4 -4
  21. package/dist/audio/mixer.d.ts.map +1 -1
  22. package/dist/audio/mixer.js +18 -38
  23. package/dist/audio/mixer.js.map +1 -1
  24. package/dist/audio/player.d.ts +12 -6
  25. package/dist/audio/player.d.ts.map +1 -1
  26. package/dist/audio/player.js +49 -62
  27. package/dist/audio/player.js.map +1 -1
  28. package/dist/browser/THIRD_PARTY_LICENSES.txt +379 -27
  29. package/dist/browser/audio.js +1 -1
  30. package/dist/browser/chunks/chunk-F3AZKPHU.js +2 -0
  31. package/dist/browser/chunks/chunk-F3AZKPHU.js.map +7 -0
  32. package/dist/browser/chunks/chunk-KLXMRKTL.js +2 -0
  33. package/dist/browser/chunks/chunk-L5UFQACH.js +163 -0
  34. package/dist/browser/chunks/chunk-L5UFQACH.js.map +7 -0
  35. package/dist/browser/chunks/mediabunny-mp3-encoder-ZCIHVVTJ.js +14 -0
  36. package/dist/browser/chunks/mediabunny-mp3-encoder-ZCIHVVTJ.js.map +7 -0
  37. package/dist/browser/index.js +51 -1343
  38. package/dist/browser/index.js.map +4 -4
  39. package/dist/browser/manifest.json +8 -8
  40. package/dist/browser/ms_renderer_bg.wasm +0 -0
  41. package/dist/concat.d.ts +33 -7
  42. package/dist/concat.d.ts.map +1 -1
  43. package/dist/concat.js +117 -72
  44. package/dist/concat.js.map +1 -1
  45. package/dist/deliver.d.ts +10 -0
  46. package/dist/deliver.d.ts.map +1 -0
  47. package/dist/deliver.js +22 -0
  48. package/dist/deliver.js.map +1 -0
  49. package/dist/dynamic-nodes.d.ts.map +1 -1
  50. package/dist/dynamic-nodes.js +2 -3
  51. package/dist/dynamic-nodes.js.map +1 -1
  52. package/dist/engine.d.ts +37 -9
  53. package/dist/engine.d.ts.map +1 -1
  54. package/dist/engine.js +41 -32
  55. package/dist/engine.js.map +1 -1
  56. package/dist/export-audio.d.ts +36 -0
  57. package/dist/export-audio.d.ts.map +1 -0
  58. package/dist/export-audio.js +56 -0
  59. package/dist/export-audio.js.map +1 -0
  60. package/dist/exporter.d.ts +125 -14
  61. package/dist/exporter.d.ts.map +1 -1
  62. package/dist/exporter.js +133 -89
  63. package/dist/exporter.js.map +1 -1
  64. package/dist/formats.d.ts +36 -0
  65. package/dist/formats.d.ts.map +1 -0
  66. package/dist/formats.js +83 -0
  67. package/dist/formats.js.map +1 -0
  68. package/dist/frame-loop.d.ts +190 -0
  69. package/dist/frame-loop.d.ts.map +1 -0
  70. package/dist/frame-loop.js +304 -0
  71. package/dist/frame-loop.js.map +1 -0
  72. package/dist/index.d.ts +12 -11
  73. package/dist/index.d.ts.map +1 -1
  74. package/dist/index.js +17 -21
  75. package/dist/index.js.map +1 -1
  76. package/dist/mix-timeline-audio.d.ts +5 -5
  77. package/dist/mix-timeline-audio.d.ts.map +1 -1
  78. package/dist/mix-timeline-audio.js +10 -12
  79. package/dist/mix-timeline-audio.js.map +1 -1
  80. package/dist/parallel/export-parallel.d.ts +32 -0
  81. package/dist/parallel/export-parallel.d.ts.map +1 -0
  82. package/dist/parallel/export-parallel.js +114 -0
  83. package/dist/parallel/export-parallel.js.map +1 -0
  84. package/dist/parallel/governor.d.ts +57 -0
  85. package/dist/parallel/governor.d.ts.map +1 -0
  86. package/dist/parallel/governor.js +79 -0
  87. package/dist/parallel/governor.js.map +1 -0
  88. package/dist/parallel/lane.d.ts +45 -0
  89. package/dist/parallel/lane.d.ts.map +1 -0
  90. package/dist/parallel/lane.js +2 -0
  91. package/dist/parallel/lane.js.map +1 -0
  92. package/dist/parallel/lanes.d.ts +20 -0
  93. package/dist/parallel/lanes.d.ts.map +1 -0
  94. package/dist/parallel/lanes.js +152 -0
  95. package/dist/parallel/lanes.js.map +1 -0
  96. package/dist/parallel/plan.d.ts +23 -0
  97. package/dist/parallel/plan.d.ts.map +1 -0
  98. package/dist/parallel/plan.js +30 -0
  99. package/dist/parallel/plan.js.map +1 -0
  100. package/dist/parallel/run-lanes.d.ts +38 -0
  101. package/dist/parallel/run-lanes.d.ts.map +1 -0
  102. package/dist/parallel/run-lanes.js +164 -0
  103. package/dist/parallel/run-lanes.js.map +1 -0
  104. package/dist/parallel/session.d.ts +9 -0
  105. package/dist/parallel/session.d.ts.map +1 -0
  106. package/dist/parallel/session.js +79 -0
  107. package/dist/parallel/session.js.map +1 -0
  108. package/dist/renderer.d.ts +22 -0
  109. package/dist/renderer.d.ts.map +1 -0
  110. package/dist/renderer.js +23 -0
  111. package/dist/renderer.js.map +1 -0
  112. package/dist/screenshot.d.ts +4 -4
  113. package/dist/screenshot.d.ts.map +1 -1
  114. package/dist/screenshot.js +3 -3
  115. package/dist/screenshot.js.map +1 -1
  116. package/dist/still.d.ts +17 -19
  117. package/dist/still.d.ts.map +1 -1
  118. package/dist/still.js +27 -34
  119. package/dist/still.js.map +1 -1
  120. package/dist/ticker.d.ts +22 -8
  121. package/dist/ticker.d.ts.map +1 -1
  122. package/dist/ticker.js +55 -20
  123. package/dist/ticker.js.map +1 -1
  124. package/package.json +9 -10
  125. package/dist/audio/filter-graph.d.ts +0 -59
  126. package/dist/audio/filter-graph.d.ts.map +0 -1
  127. package/dist/audio/filter-graph.js +0 -241
  128. package/dist/audio/filter-graph.js.map +0 -1
  129. package/dist/browser/chunks/GLTFLoader-PGXD4V5B.js +0 -2
  130. package/dist/browser/chunks/GLTFLoader-PGXD4V5B.js.map +0 -7
  131. package/dist/browser/chunks/SkeletonUtils-XYDMTGTM.js +0 -2
  132. package/dist/browser/chunks/chunk-2MAFJWBZ.js +0 -2
  133. package/dist/browser/chunks/chunk-2MAFJWBZ.js.map +0 -7
  134. package/dist/browser/chunks/chunk-CTLBXZSU.js +0 -4119
  135. package/dist/browser/chunks/chunk-CTLBXZSU.js.map +0 -7
  136. package/dist/browser/chunks/chunk-FQ32PDIU.js +0 -2
  137. package/dist/browser/chunks/chunk-FQ32PDIU.js.map +0 -7
  138. package/dist/browser/chunks/chunk-FY3BTKY4.js +0 -2
  139. package/dist/browser/chunks/chunk-FY3BTKY4.js.map +0 -7
  140. package/dist/browser/chunks/three.module-Z4EOVUWF.js +0 -2
  141. package/dist/browser/chunks/three.module-Z4EOVUWF.js.map +0 -7
  142. package/dist/decode/image-levels.d.ts +0 -137
  143. package/dist/decode/image-levels.d.ts.map +0 -1
  144. package/dist/decode/image-levels.js +0 -477
  145. package/dist/decode/image-levels.js.map +0 -1
  146. package/dist/decode/levels.d.ts +0 -37
  147. package/dist/decode/levels.d.ts.map +0 -1
  148. package/dist/decode/levels.js +0 -68
  149. package/dist/decode/levels.js.map +0 -1
  150. package/dist/decode/video-levels.d.ts +0 -37
  151. package/dist/decode/video-levels.d.ts.map +0 -1
  152. package/dist/decode/video-levels.js +0 -95
  153. package/dist/decode/video-levels.js.map +0 -1
  154. package/dist/getter.d.ts +0 -10
  155. package/dist/getter.d.ts.map +0 -1
  156. package/dist/getter.js +0 -38
  157. package/dist/getter.js.map +0 -1
  158. package/dist/measure-context.d.ts +0 -12
  159. package/dist/measure-context.d.ts.map +0 -1
  160. package/dist/measure-context.js +0 -12
  161. package/dist/measure-context.js.map +0 -1
  162. package/dist/render-context.d.ts +0 -32
  163. package/dist/render-context.d.ts.map +0 -1
  164. package/dist/render-context.js +0 -59
  165. package/dist/render-context.js.map +0 -1
  166. package/dist/storage-adapter.d.ts +0 -367
  167. package/dist/storage-adapter.d.ts.map +0 -1
  168. package/dist/storage-adapter.js +0 -1280
  169. package/dist/storage-adapter.js.map +0 -1
  170. package/dist/three/renderer.d.ts +0 -47
  171. package/dist/three/renderer.d.ts.map +0 -1
  172. package/dist/three/renderer.js +0 -182
  173. package/dist/three/renderer.js.map +0 -1
  174. /package/dist/browser/chunks/{SkeletonUtils-XYDMTGTM.js.map → chunk-KLXMRKTL.js.map} +0 -0
@@ -1,2 +0,0 @@
1
- import{Bg as A,If as P,Kf as g,Lf as W,Pg as T,fd as w,gd as v,td as p}from"./chunk-CTLBXZSU.js";function B(r,a){return a.getBoneName!==void 0?a.getBoneName(r):a.names[r.name]}function D(r,a,e={}){let t=new w,u=new v,l=new p,s=new p;e.preserveBoneMatrix=e.preserveBoneMatrix!==void 0?e.preserveBoneMatrix:!0,e.preserveBonePositions=e.preserveBonePositions!==void 0?e.preserveBonePositions:!0,e.useTargetMatrix=e.useTargetMatrix!==void 0?e.useTargetMatrix:!1,e.hip=e.hip!==void 0?e.hip:"hip",e.hipInfluence=e.hipInfluence!==void 0?e.hipInfluence:new v(1,1,1),e.scale=e.scale!==void 0?e.scale:1,e.names=e.names||{};let o=a.isObject3D?a.skeleton.bones:b(a),c=r.isObject3D?r.skeleton.bones:b(r),i,d,m,x;if(r.isObject3D?r.skeleton.pose():(e.useTargetMatrix=!0,e.preserveBoneMatrix=!1),e.preserveBonePositions){x=[];for(let n=0;n<c.length;n++)x.push(c[n].position.clone())}if(e.preserveBoneMatrix){r.updateMatrixWorld(),r.matrixWorld.identity();for(let n=0;n<r.children.length;++n)r.children[n].updateMatrixWorld(!0)}for(let n=0;n<c.length;++n)i=c[n],d=B(i,e),m=q(d,o),s.copy(i.matrixWorld),m&&(m.updateMatrixWorld(),e.useTargetMatrix?l.copy(m.matrixWorld):(l.copy(r.matrixWorld).invert(),l.multiply(m.matrixWorld)),u.setFromMatrixScale(l),l.scale(u.set(1/u.x,1/u.y,1/u.z)),s.makeRotationFromQuaternion(t.setFromRotationMatrix(l)),r.isObject3D&&e.localOffsets&&e.localOffsets[i.name]&&s.multiply(e.localOffsets[i.name]),s.copyPosition(l)),d===e.hip&&(s.elements[12]*=e.scale*e.hipInfluence.x,s.elements[13]*=e.scale*e.hipInfluence.y,s.elements[14]*=e.scale*e.hipInfluence.z,e.hipPosition!==void 0&&(s.elements[12]+=e.hipPosition.x*e.scale,s.elements[13]+=e.hipPosition.y*e.scale,s.elements[14]+=e.hipPosition.z*e.scale)),i.parent?(i.matrix.copy(i.parent.matrixWorld).invert(),i.matrix.multiply(s)):i.matrix.copy(s),i.matrix.decompose(i.position,i.quaternion,i.scale),i.updateMatrixWorld();if(e.preserveBonePositions)for(let n=0;n<c.length;++n)i=c[n],d=B(i,e)||i.name,d!==e.hip&&i.position.copy(x[n]);e.preserveBoneMatrix&&r.updateMatrixWorld(!0)}function S(r,a,e,t={}){t.useFirstFramePosition=t.useFirstFramePosition!==void 0?t.useFirstFramePosition:!1,t.fps=t.fps!==void 0?t.fps:Math.max(...e.tracks.map(f=>f.times.length))/e.duration,t.names=t.names||[],a.isObject3D||(a=j(a));let u=Math.round(e.duration*(t.fps/1e3)*1e3),l=e.duration/(u-1),s=[],o=new A(a),c=b(r.skeleton),i=[],d,m,x,n,y;o.clipAction(e).play();let k=0,h=u;t.trim!==void 0?(k=Math.round(t.trim[0]*t.fps),h=Math.min(Math.round(t.trim[1]*t.fps),u)-k,o.update(t.trim[0])):o.update(0),a.updateMatrixWorld();for(let f=0;f<h;++f){let F=f*l;D(r,a,t);for(let M=0;M<c.length;++M)m=c[M],y=B(m,t)||m.name,x=q(y,a.skeleton),x&&(n=i[M]=i[M]||{bone:m},t.hip===y&&(n.pos||(n.pos={times:new Float32Array(h),values:new Float32Array(h*3)}),t.useFirstFramePosition&&(f===0&&(d=m.position.clone()),m.position.sub(d)),n.pos.times[f]=F,m.position.toArray(n.pos.values,f*3)),n.quat||(n.quat={times:new Float32Array(h),values:new Float32Array(h*4)}),n.quat.times[f]=F,m.quaternion.toArray(n.quat.values,f*4));f===h-2?o.update(l-1e-7):o.update(l),a.updateMatrixWorld()}for(let f=0;f<i.length;++f)n=i[f],n&&(n.pos&&s.push(new g(".bones["+n.bone.name+"].position",n.pos.times,n.pos.values)),s.push(new P(".bones["+n.bone.name+"].quaternion",n.quat.times,n.quat.values)));return o.uncacheAction(e),new W(e.name,-1,s)}function z(r){let a=new Map,e=new Map,t=r.clone();return O(r,t,function(u,l){a.set(l,u),e.set(u,l)}),t.traverse(function(u){if(!u.isSkinnedMesh)return;let l=u,s=a.get(u),o=s.skeleton.bones;l.skeleton=s.skeleton.clone(),l.bindMatrix.copy(s.bindMatrix),l.skeleton.bones=o.map(function(c){return e.get(c)}),l.bind(l.skeleton,l.bindMatrix)}),t}function q(r,a){for(let e=0,t=b(a);e<t.length;e++)if(r===t[e].name)return t[e]}function b(r){return Array.isArray(r)?r:r.bones}function j(r){let a=new T(r.bones[0]);return a.skeleton=r,a}function O(r,a,e){e(r,a);for(let t=0;t<r.children.length;t++)O(r.children[t],a.children[t],e)}export{D as a,S as b,z as c};
2
- //# sourceMappingURL=chunk-FQ32PDIU.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../node_modules/.pnpm/three@0.185.1/node_modules/three/examples/jsm/utils/SkeletonUtils.js"],
4
- "sourcesContent": ["import {\n\tAnimationClip,\n\tAnimationMixer,\n\tMatrix4,\n\tQuaternion,\n\tQuaternionKeyframeTrack,\n\tSkeletonHelper,\n\tVector3,\n\tVectorKeyframeTrack\n} from 'three';\n\n/**\n * @module SkeletonUtils\n * @three_import import * as SkeletonUtils from 'three/addons/utils/SkeletonUtils.js';\n */\n\nfunction getBoneName( bone, options ) {\n\n\tif ( options.getBoneName !== undefined ) {\n\n\t\treturn options.getBoneName( bone );\n\n\t}\n\n\treturn options.names[ bone.name ];\n\n}\n\n/**\n * Retargets the skeleton from the given source to the target.\n *\n * Both `target` and `source` can be a 3D object with a skeleton property (e.g. a skinned mesh)\n * or a {@link Skeleton} directly.\n *\n * @param {Object3D|Skeleton} target - The target object.\n * @param {Object3D|Skeleton} source - The source object.\n * @param {module:SkeletonUtils~RetargetOptions} options - The options.\n */\nfunction retarget( target, source, options = {} ) {\n\n\tconst quat = new Quaternion(),\n\t\tscale = new Vector3(),\n\t\trelativeMatrix = new Matrix4(),\n\t\tglobalMatrix = new Matrix4();\n\n\toptions.preserveBoneMatrix = options.preserveBoneMatrix !== undefined ? options.preserveBoneMatrix : true;\n\toptions.preserveBonePositions = options.preserveBonePositions !== undefined ? options.preserveBonePositions : true;\n\toptions.useTargetMatrix = options.useTargetMatrix !== undefined ? options.useTargetMatrix : false;\n\toptions.hip = options.hip !== undefined ? options.hip : 'hip';\n\toptions.hipInfluence = options.hipInfluence !== undefined ? options.hipInfluence : new Vector3( 1, 1, 1 );\n\toptions.scale = options.scale !== undefined ? options.scale : 1;\n\toptions.names = options.names || {};\n\n\tconst sourceBones = source.isObject3D ? source.skeleton.bones : getBones( source ),\n\t\tbones = target.isObject3D ? target.skeleton.bones : getBones( target );\n\n\tlet bone, name, boneTo,\n\t\tbonesPosition;\n\n\t// reset bones\n\n\tif ( target.isObject3D ) {\n\n\t\ttarget.skeleton.pose();\n\n\t} else {\n\n\t\toptions.useTargetMatrix = true;\n\t\toptions.preserveBoneMatrix = false;\n\n\t}\n\n\tif ( options.preserveBonePositions ) {\n\n\t\tbonesPosition = [];\n\n\t\tfor ( let i = 0; i < bones.length; i ++ ) {\n\n\t\t\tbonesPosition.push( bones[ i ].position.clone() );\n\n\t\t}\n\n\t}\n\n\tif ( options.preserveBoneMatrix ) {\n\n\t\t// reset matrix\n\n\t\ttarget.updateMatrixWorld();\n\n\t\ttarget.matrixWorld.identity();\n\n\t\t// reset children matrix\n\n\t\tfor ( let i = 0; i < target.children.length; ++ i ) {\n\n\t\t\ttarget.children[ i ].updateMatrixWorld( true );\n\n\t\t}\n\n\t}\n\n\tfor ( let i = 0; i < bones.length; ++ i ) {\n\n\t\tbone = bones[ i ];\n\t\tname = getBoneName( bone, options );\n\n\t\tboneTo = getBoneByName( name, sourceBones );\n\n\t\tglobalMatrix.copy( bone.matrixWorld );\n\n\t\tif ( boneTo ) {\n\n\t\t\tboneTo.updateMatrixWorld();\n\n\t\t\tif ( options.useTargetMatrix ) {\n\n\t\t\t\trelativeMatrix.copy( boneTo.matrixWorld );\n\n\t\t\t} else {\n\n\t\t\t\trelativeMatrix.copy( target.matrixWorld ).invert();\n\t\t\t\trelativeMatrix.multiply( boneTo.matrixWorld );\n\n\t\t\t}\n\n\t\t\t// ignore scale to extract rotation\n\n\t\t\tscale.setFromMatrixScale( relativeMatrix );\n\t\t\trelativeMatrix.scale( scale.set( 1 / scale.x, 1 / scale.y, 1 / scale.z ) );\n\n\t\t\t// apply to global matrix\n\n\t\t\tglobalMatrix.makeRotationFromQuaternion( quat.setFromRotationMatrix( relativeMatrix ) );\n\n\t\t\tif ( target.isObject3D ) {\n\n\t\t\t\tif ( options.localOffsets ) {\n\n\t\t\t\t\tif ( options.localOffsets[ bone.name ] ) {\n\n\t\t\t\t\t\tglobalMatrix.multiply( options.localOffsets[ bone.name ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tglobalMatrix.copyPosition( relativeMatrix );\n\n\t\t}\n\n\t\tif ( name === options.hip ) {\n\n\t\t\tglobalMatrix.elements[ 12 ] *= options.scale * options.hipInfluence.x;\n\t\t\tglobalMatrix.elements[ 13 ] *= options.scale * options.hipInfluence.y;\n\t\t\tglobalMatrix.elements[ 14 ] *= options.scale * options.hipInfluence.z;\n\n\t\t\tif ( options.hipPosition !== undefined ) {\n\n\t\t\t\tglobalMatrix.elements[ 12 ] += options.hipPosition.x * options.scale;\n\t\t\t\tglobalMatrix.elements[ 13 ] += options.hipPosition.y * options.scale;\n\t\t\t\tglobalMatrix.elements[ 14 ] += options.hipPosition.z * options.scale;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( bone.parent ) {\n\n\t\t\tbone.matrix.copy( bone.parent.matrixWorld ).invert();\n\t\t\tbone.matrix.multiply( globalMatrix );\n\n\t\t} else {\n\n\t\t\tbone.matrix.copy( globalMatrix );\n\n\t\t}\n\n\t\tbone.matrix.decompose( bone.position, bone.quaternion, bone.scale );\n\n\t\tbone.updateMatrixWorld();\n\n\t}\n\n\tif ( options.preserveBonePositions ) {\n\n\t\tfor ( let i = 0; i < bones.length; ++ i ) {\n\n\t\t\tbone = bones[ i ];\n\t\t\tname = getBoneName( bone, options ) || bone.name;\n\n\t\t\tif ( name !== options.hip ) {\n\n\t\t\t\tbone.position.copy( bonesPosition[ i ] );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tif ( options.preserveBoneMatrix ) {\n\n\t\t// restore matrix\n\n\t\ttarget.updateMatrixWorld( true );\n\n\t}\n\n}\n\n/**\n * Retargets the animation clip of the source to the target 3D object.\n *\n * The `source` can be a 3D object with a skeleton property (e.g. a skinned mesh)\n * or a {@link Skeleton} directly.\n *\n * @param {Object3D} target - The target 3D object. Must have a `skeleton` property.\n * @param {Object3D|Skeleton} source - The source object.\n * @param {AnimationClip} clip - The animation clip.\n * @param {module:SkeletonUtils~RetargetOptions} options - The options.\n * @return {AnimationClip} The retargeted animation clip.\n */\nfunction retargetClip( target, source, clip, options = {} ) {\n\n\toptions.useFirstFramePosition = options.useFirstFramePosition !== undefined ? options.useFirstFramePosition : false;\n\n\t// Calculate the fps from the source clip based on the track with the most frames, unless fps is already provided.\n\toptions.fps = options.fps !== undefined ? options.fps : ( Math.max( ...clip.tracks.map( track => track.times.length ) ) / clip.duration );\n\toptions.names = options.names || [];\n\n\tif ( ! source.isObject3D ) {\n\n\t\tsource = getHelperFromSkeleton( source );\n\n\t}\n\n\tconst numFrames = Math.round( clip.duration * ( options.fps / 1000 ) * 1000 ),\n\t\tdelta = clip.duration / ( numFrames - 1 ),\n\t\tconvertedTracks = [],\n\t\tmixer = new AnimationMixer( source ),\n\t\tbones = getBones( target.skeleton ),\n\t\tboneDatas = [];\n\n\tlet positionOffset,\n\t\tbone, boneTo, boneData,\n\t\tname;\n\n\tmixer.clipAction( clip ).play();\n\n\t// trim\n\n\tlet start = 0, end = numFrames;\n\n\tif ( options.trim !== undefined ) {\n\n\t\tstart = Math.round( options.trim[ 0 ] * options.fps );\n\t\tend = Math.min( Math.round( options.trim[ 1 ] * options.fps ), numFrames ) - start;\n\n\t\tmixer.update( options.trim[ 0 ] );\n\n\t} else {\n\n\t\tmixer.update( 0 );\n\n\t}\n\n\tsource.updateMatrixWorld();\n\n\t//\n\n\tfor ( let frame = 0; frame < end; ++ frame ) {\n\n\t\tconst time = frame * delta;\n\n\t\tretarget( target, source, options );\n\n\t\tfor ( let j = 0; j < bones.length; ++ j ) {\n\n\t\t\tbone = bones[ j ];\n\t\t\tname = getBoneName( bone, options ) || bone.name;\n\t\t\tboneTo = getBoneByName( name, source.skeleton );\n\n\t\t\tif ( boneTo ) {\n\n\t\t\t\tboneData = boneDatas[ j ] = boneDatas[ j ] || { bone: bone };\n\n\t\t\t\tif ( options.hip === name ) {\n\n\t\t\t\t\tif ( ! boneData.pos ) {\n\n\t\t\t\t\t\tboneData.pos = {\n\t\t\t\t\t\t\ttimes: new Float32Array( end ),\n\t\t\t\t\t\t\tvalues: new Float32Array( end * 3 )\n\t\t\t\t\t\t};\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( options.useFirstFramePosition ) {\n\n\t\t\t\t\t\tif ( frame === 0 ) {\n\n\t\t\t\t\t\t\tpositionOffset = bone.position.clone();\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbone.position.sub( positionOffset );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tboneData.pos.times[ frame ] = time;\n\n\t\t\t\t\tbone.position.toArray( boneData.pos.values, frame * 3 );\n\n\t\t\t\t}\n\n\t\t\t\tif ( ! boneData.quat ) {\n\n\t\t\t\t\tboneData.quat = {\n\t\t\t\t\t\ttimes: new Float32Array( end ),\n\t\t\t\t\t\tvalues: new Float32Array( end * 4 )\n\t\t\t\t\t};\n\n\t\t\t\t}\n\n\t\t\t\tboneData.quat.times[ frame ] = time;\n\n\t\t\t\tbone.quaternion.toArray( boneData.quat.values, frame * 4 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( frame === end - 2 ) {\n\n\t\t\t// last mixer update before final loop iteration\n\t\t\t// make sure we do not go over or equal to clip duration\n\t\t\tmixer.update( delta - 0.0000001 );\n\n\t\t} else {\n\n\t\t\tmixer.update( delta );\n\n\t\t}\n\n\t\tsource.updateMatrixWorld();\n\n\t}\n\n\tfor ( let i = 0; i < boneDatas.length; ++ i ) {\n\n\t\tboneData = boneDatas[ i ];\n\n\t\tif ( boneData ) {\n\n\t\t\tif ( boneData.pos ) {\n\n\t\t\t\tconvertedTracks.push( new VectorKeyframeTrack(\n\t\t\t\t\t'.bones[' + boneData.bone.name + '].position',\n\t\t\t\t\tboneData.pos.times,\n\t\t\t\t\tboneData.pos.values\n\t\t\t\t) );\n\n\t\t\t}\n\n\t\t\tconvertedTracks.push( new QuaternionKeyframeTrack(\n\t\t\t\t'.bones[' + boneData.bone.name + '].quaternion',\n\t\t\t\tboneData.quat.times,\n\t\t\t\tboneData.quat.values\n\t\t\t) );\n\n\t\t}\n\n\t}\n\n\tmixer.uncacheAction( clip );\n\n\treturn new AnimationClip( clip.name, - 1, convertedTracks );\n\n}\n\n/**\n * Clones the given 3D object and its descendants, ensuring that any `SkinnedMesh` instances are\n * correctly associated with their bones. Bones are also cloned, and must be descendants of the\n * object passed to this method. Other data, like geometries and materials, are reused by reference.\n *\n * @param {Object3D} source - The 3D object to clone.\n * @return {Object3D} The cloned 3D object.\n */\nfunction clone( source ) {\n\n\tconst sourceLookup = new Map();\n\tconst cloneLookup = new Map();\n\n\tconst clone = source.clone();\n\n\tparallelTraverse( source, clone, function ( sourceNode, clonedNode ) {\n\n\t\tsourceLookup.set( clonedNode, sourceNode );\n\t\tcloneLookup.set( sourceNode, clonedNode );\n\n\t} );\n\n\tclone.traverse( function ( node ) {\n\n\t\tif ( ! node.isSkinnedMesh ) return;\n\n\t\tconst clonedMesh = node;\n\t\tconst sourceMesh = sourceLookup.get( node );\n\t\tconst sourceBones = sourceMesh.skeleton.bones;\n\n\t\tclonedMesh.skeleton = sourceMesh.skeleton.clone();\n\t\tclonedMesh.bindMatrix.copy( sourceMesh.bindMatrix );\n\n\t\tclonedMesh.skeleton.bones = sourceBones.map( function ( bone ) {\n\n\t\t\treturn cloneLookup.get( bone );\n\n\t\t} );\n\n\t\tclonedMesh.bind( clonedMesh.skeleton, clonedMesh.bindMatrix );\n\n\t} );\n\n\treturn clone;\n\n}\n\n// internal helper\n\nfunction getBoneByName( name, skeleton ) {\n\n\tfor ( let i = 0, bones = getBones( skeleton ); i < bones.length; i ++ ) {\n\n\t\tif ( name === bones[ i ].name )\n\n\t\t\treturn bones[ i ];\n\n\t}\n\n}\n\nfunction getBones( skeleton ) {\n\n\treturn Array.isArray( skeleton ) ? skeleton : skeleton.bones;\n\n}\n\n\nfunction getHelperFromSkeleton( skeleton ) {\n\n\tconst source = new SkeletonHelper( skeleton.bones[ 0 ] );\n\tsource.skeleton = skeleton;\n\n\treturn source;\n\n}\n\nfunction parallelTraverse( a, b, callback ) {\n\n\tcallback( a, b );\n\n\tfor ( let i = 0; i < a.children.length; i ++ ) {\n\n\t\tparallelTraverse( a.children[ i ], b.children[ i ], callback );\n\n\t}\n\n}\n\n/**\n * Retarget options of `SkeletonUtils`.\n *\n * @typedef {Object} module:SkeletonUtils~RetargetOptions\n * @property {boolean} [useFirstFramePosition=false] - Whether to use the position of the first frame or not.\n * @property {number} [fps] - The FPS of the clip.\n * @property {Object<string,string>} [names] - A dictionary for mapping target to source bone names.\n * @property {function(string):string} [getBoneName] - A function for mapping bone names. Alternative to `names`.\n * @property {Array<number>} [trim] - Whether to trim the clip or not. If set the array should hold two values for the start and end.\n * @property {boolean} [preserveBoneMatrix=true] - Whether to preserve bone matrices or not.\n * @property {boolean} [preserveBonePositions=true] - Whether to preserve bone positions or not.\n * @property {boolean} [useTargetMatrix=false] - Whether to use the target matrix or not.\n * @property {string} [hip='hip'] - The name of the source's hip bone.\n * @property {Vector3} [hipInfluence=(1,1,1)] - The hip influence.\n * @property {number} [scale=1] - The scale.\n * @property {Object<string,Matrix4>} [localOffsets] - Per-bone local offset matrices, keyed by bone name.\n * @property {Vector3} [hipPosition] - An additional position offset applied to the hip bone.\n **/\n\nexport {\n\tretarget,\n\tretargetClip,\n\tclone,\n};\n"],
5
- "mappings": "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",
6
- "names": ["getBoneName", "bone", "options", "retarget", "target", "source", "quat", "Quaternion", "scale", "Vector3", "relativeMatrix", "Matrix4", "globalMatrix", "sourceBones", "getBones", "bones", "name", "boneTo", "bonesPosition", "i", "getBoneByName", "retargetClip", "clip", "track", "getHelperFromSkeleton", "numFrames", "delta", "convertedTracks", "mixer", "AnimationMixer", "boneDatas", "positionOffset", "boneData", "start", "end", "frame", "time", "j", "VectorKeyframeTrack", "QuaternionKeyframeTrack", "AnimationClip", "clone", "sourceLookup", "cloneLookup", "parallelTraverse", "sourceNode", "clonedNode", "node", "clonedMesh", "sourceMesh", "skeleton", "SkeletonHelper", "a", "b", "callback"]
7
- }
@@ -1,2 +0,0 @@
1
- var g=Object.create;var f=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var j=Object.getPrototypeOf,k=Object.prototype.hasOwnProperty;var m=(b,a)=>()=>{try{return a||b((a={exports:{}}).exports,a),a.exports}catch(c){throw a=0,c}};var l=(b,a,c,e)=>{if(a&&typeof a=="object"||typeof a=="function")for(let d of i(a))!k.call(b,d)&&d!==c&&f(b,d,{get:()=>a[d],enumerable:!(e=h(a,d))||e.enumerable});return b};var n=(b,a,c)=>(c=b!=null?g(j(b)):{},l(a||!b||!b.__esModule?f(c,"default",{value:b,enumerable:!0}):c,b));export{m as a,n as b};
2
- //# sourceMappingURL=chunk-FY3BTKY4.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,2 +0,0 @@
1
- import{$,$a,$b,$c,$d,$e,$f as ag,$g as ah,A,Aa,Ab,Ac,Ad,Ae,Af as Bf,Ag as Bg,B,Ba,Bb,Bc,Bd,Be,Bf as Cf,Bg as Cg,C,Ca,Cb,Cc,Cd,Ce,Cf as Df,Cg as Dg,D,Da,Db,Dc,Dd,De,Df as Ef,Dg as Eg,E,Ea,Eb,Ec,Ed,Ee,Ef as Ff,Eg as Fg,F,Fa,Fb,Fc,Fd,Fe,Ff as Gf,Fg as Gg,G,Ga,Gb,Gc,Gd,Ge,Gf as Hf,Gg as Hg,H,Ha,Hb,Hc,Hd,He,Hf as If,Hg as Ig,I,Ia,Ib,Ic,Id,Ie,If as Jf,Ig as Jg,J,Ja,Jb,Jc,Jd,Je,Jf as Kf,Jg as Kg,K,Ka,Kb,Kc,Kd,Ke,Kf as Lf,Kg as Lg,L,La,Lb,Lc,Ld,Le,Lf as Mf,Lg as Mg,M,Ma,Mb,Mc,Md,Me,Mf as Nf,Mg as Ng,N,Na,Nb,Nc,Nd,Ne,Nf as Of,Ng as Og,O,Oa,Ob,Oc,Od,Oe,Of as Pf,Og as Pg,P,Pa,Pb,Pc,Pd,Pe,Pf as Qf,Pg as Qg,Q,Qa,Qb,Qc,Qd,Qe,Qf as Rf,Qg as Rg,R,Ra,Rb,Rc,Rd,Re,Rf as Sf,Rg as Sg,S,Sa,Sb,Sc,Sd,Se,Sf as Tf,Sg as Tg,T,Ta,Tb,Tc,Td,Te,Tf as Uf,Tg as Ug,U,Ua,Ub,Uc,Ud,Ue,Uf as Vf,Ug as Vg,V,Va,Vb,Vc,Vd,Ve,Vf as Wf,Vg as Wg,W,Wa,Wb,Wc,Wd,We,Wf as Xf,Wg as Xg,X,Xa,Xb,Xc,Xd,Xe,Xf as Yf,Xg as Yg,Y,Ya,Yb,Yc,Yd,Ye,Yf as Zf,Yg as Zg,Z,Za,Zb,Zc,Zd,Ze,Zf as _f,Zg as _g,_,_a,_b,_c,_d,_e,_f as $f,_g as $g,a,aa,ab,ac,ad,ae,af,ag as bg,ah as bh,b,ba,bb,bc,bd,be,bf,bg as cg,bh as ch,c,ca,cb,cc,cd,ce,cf,cg as dg,ch as dh,d,da,db,dc,dd,de,df,dg as eg,dh as eh,e,ea,eb,ec,ed,ee,ef,eg as fg,eh as fh,f,fa,fb,fc,fd,fe,ff,fg as gg,fh as gh,g,ga,gb,gc,gd,ge,gf,gg as hg,gh as hh,h,ha,hb,hc,hd,he,hf,hg as ig,hh as ih,i,ia,ib,ic,id,ie,if as jf,ig as jg,ih as jh,j,ja,jb,jc,jd,je,jf as kf,jg as kg,k,ka,kb,kc,kd,ke,kf as lf,kg as lg,l,la,lb,lc,ld,le,lf as mf,lg as mg,m,ma,mb,mc,md,me,mf as nf,mg as ng,n,na,nb,nc,nd,ne,nf as of,ng as og,o,oa,ob,oc,od,oe,of as pf,og as pg,p,pa,pb,pc,pd,pe,pf as qf,pg as qg,q,qa,qb,qc,qd,qe,qf as rf,qg as rg,r,ra,rb,rc,rd,re,rf as sf,rg as sg,s,sa,sb,sc,sd,se,sf as tf,sg as tg,t,ta,tb,tc,td,te,tf as uf,tg as ug,u,ua,ub,uc,ud,ue,uf as vf,ug as vg,v,va,vb,vc,vd,ve,vf as wf,vg as wg,w,wa,wb,wc,wd,we,wf as xf,wg as xg,x,xa,xb,xc,xd,xe,xf as yf,xg as yg,y,ya,yb,yc,yd,ye,yf as zf,yg as zg,z,za,zb,zc,zd,ze,zf as Af,zg as Ag}from"./chunk-CTLBXZSU.js";import"./chunk-FY3BTKY4.js";export{ca as ACESFilmicToneMapping,v as AddEquation,Z as AddOperation,Sb as AdditiveAnimationBlendMode,q as AdditiveBlending,ea as AgXToneMapping,Oa as AlphaFormat,Fc as AlwaysCompare,Q as AlwaysDepth,xc as AlwaysStencilFunc,eg as AmbientLight,Bg as AnimationAction,Mf as AnimationClip,Sf as AnimationLoader,Cg as AnimationMixer,Ag as AnimationObjectGroup,yf as AnimationUtils,Le as ArcCurve,sg as ArrayCamera,_g as ArrowHelper,ga as AttachedBindMode,vg as Audio,xg as AudioAnalyser,og as AudioContext,ug as AudioListener,pg as AudioLoader,$g as AxesHelper,m as BackSide,Wb as BasicDepthPacking,h as BasicShadowMap,ie as BatchedMesh,Df as BezierInterpolant,ae as Bone,Ff as BooleanKeyframeTrack,Ng as Box2,Ed as Box3,Yg as Box3Helper,Be as BoxGeometry,Xg as BoxHelper,Gd as BufferAttribute,Rd as BufferGeometry,lg as BufferGeometryLoader,Ca as ByteType,Nf as Cache,_f as Camera,Wg as CameraHelper,we as CanvasTexture,Ce as CapsuleGeometry,Me as CatmullRomCurve3,ba as CineonToneMapping,De as CircleGeometry,pa as ClampToEdgeWrapping,Jg as Clock,zd as Color,Gf as ColorKeyframeTrack,id as ColorManagement,Wc as Compatibility,te as CompressedArrayTexture,ue as CompressedCubeTexture,se as CompressedTexture,Tf as CompressedTextureLoader,Fe as ConeGeometry,N as ConstantAlphaFactor,L as ConstantColorFactor,bh as Controls,rg as CubeCamera,ze as CubeDepthTexture,ja as CubeReflectionMapping,ka as CubeRefractionMapping,ve as CubeTexture,Vf as CubeTextureLoader,na as CubeUVReflectionMapping,Ne as CubicBezierCurve,Oe as CubicBezierCurve3,Af as CubicInterpolant,e as CullFaceBack,f as CullFaceFront,g as CullFaceFrontBack,d as CullFaceNone,Je as Curve,Ue as CurvePath,t as CustomBlending,da as CustomToneMapping,Ee as CylinderGeometry,Lg as Cylindrical,rd as Data3DTexture,pd as DataArrayTexture,be as DataTexture,Wf as DataTextureLoader,Fd as DataUtils,mc as DecrementStencilOp,oc as DecrementWrapStencilOp,Pf as DefaultLoadingManager,Ra as DepthFormat,Sa as DepthStencilFormat,ye as DepthTexture,ha as DetachedBindMode,dg as DirectionalLight,Vg as DirectionalLightHelper,Cf as DiscreteInterpolant,He as DodecahedronGeometry,n as DoubleSide,G as DstAlphaFactor,I as DstColorFactor,Nc as DynamicCopyUsage,Hc as DynamicDrawUsage,Kc as DynamicReadUsage,Ie as EdgesGeometry,Ke as EllipseCurve,Ac as EqualCompare,T as EqualDepth,sc as EqualStencilFunc,la as EquirectangularReflectionMapping,ma as EquirectangularRefractionMapping,ud as Euler,cd as EventDispatcher,Ae as ExternalTexture,Ye as ExtrudeGeometry,Rf as FileLoader,Od as Float16BufferAttribute,Pd as Float32BufferAttribute,Ha as FloatType,Bd as Fog,Ad as FogExp2,re as FramebufferTexture,l as FrontSide,ge as Frustum,he as FrustumArray,Hg as GLBufferAttribute,Pc as GLSL1,Qc as GLSL3,Cc as GreaterCompare,V as GreaterDepth,Ec as GreaterEqualCompare,U as GreaterEqualDepth,wc as GreaterEqualStencilFunc,uc as GreaterStencilFunc,Tg as GridHelper,xd as Group,xe as HTMLTexture,Ia as HalfFloatType,Zf as HemisphereLight,Sg as HemisphereLightHelper,Ze as IcosahedronGeometry,ng as ImageBitmapLoader,Uf as ImageLoader,jd as ImageUtils,lc as IncrementStencilOp,nc as IncrementWrapStencilOp,de as InstancedBufferAttribute,kg as InstancedBufferGeometry,Gg as InstancedInterleavedBuffer,ee as InstancedMesh,Kd as Int16BufferAttribute,Md as Int32BufferAttribute,Hd as Int8BufferAttribute,Fa as IntType,Sd as InterleavedBuffer,Td as InterleavedBufferAttribute,zf as Interpolant,Nb as InterpolateBezier,Kb as InterpolateDiscrete,Lb as InterpolateLinear,Mb as InterpolateSmooth,Vc as InterpolationSamplingMode,Uc as InterpolationSamplingType,pc as InvertStencilOp,jc as KeepStencilOp,Ef as KeyframeTrack,Xd as LOD,_e as LatheGeometry,vd as Layers,zc as LessCompare,R as LessDepth,Bc as LessEqualCompare,S as LessEqualDepth,tc as LessEqualStencilFunc,rc as LessStencilFunc,Yf as Light,hg as LightProbe,ke as Line,Og as Line3,je as LineBasicMaterial,Pe as LineCurve,Qe as LineCurve3,xf as LineDashedMaterial,me as LineLoop,le as LineSegments,wa as LinearFilter,Bf as LinearInterpolant,Aa as LinearMipMapLinearFilter,ya as LinearMipMapNearestFilter,za as LinearMipmapLinearFilter,xa as LinearMipmapNearestFilter,cc as LinearSRGBColorSpace,$ as LinearToneMapping,dc as LinearTransfer,Qf as Loader,jg as LoaderUtils,Of as LoadingManager,Hb as LoopOnce,Jb as LoopPingPong,Ib as LoopRepeat,b as MOUSE,Ud as Material,u as MaterialBlending,ig as MaterialLoader,dd as MathUtils,Mg as Matrix2,hd as Matrix3,td as Matrix4,z as MaxEquation,_d as Mesh,Zd as MeshBasicMaterial,uf as MeshDepthMaterial,vf as MeshDistanceMaterial,tf as MeshLambertMaterial,wf as MeshMatcapMaterial,sf as MeshNormalMaterial,qf as MeshPhongMaterial,pf as MeshPhysicalMaterial,of as MeshStandardMaterial,rf as MeshToonMaterial,y as MinEquation,qa as MirroredRepeatWrapping,Y as MixOperation,s as MultiplyBlending,X as MultiplyOperation,ra as NearestFilter,va as NearestMipMapLinearFilter,ta as NearestMipMapNearestFilter,ua as NearestMipmapLinearFilter,sa as NearestMipmapNearestFilter,fa as NeutralToneMapping,yc as NeverCompare,P as NeverDepth,qc as NeverStencilFunc,o as NoBlending,ac as NoColorSpace,fc as NoNormalPacking,_ as NoToneMapping,Rb as NormalAnimationBlendMode,p as NormalBlending,hc as NormalGAPacking,gc as NormalRGPacking,Dc as NotEqualCompare,W as NotEqualDepth,vc as NotEqualStencilFunc,Hf as NumberKeyframeTrack,wd as Object3D,mg as ObjectLoader,$b as ObjectSpaceNormalMap,$e as OctahedronGeometry,B as OneFactor,O as OneMinusConstantAlphaFactor,M as OneMinusConstantColorFactor,H as OneMinusDstAlphaFactor,J as OneMinusDstColorFactor,F as OneMinusSrcAlphaFactor,D as OneMinusSrcColorFactor,cg as OrthographicCamera,i as PCFShadowMap,j as PCFSoftShadowMap,gh as PMREMGenerator,Ve as Path,$f as PerspectiveCamera,fe as Plane,af as PlaneGeometry,Zg as PlaneHelper,bg as PointLight,Rg as PointLightHelper,oe as Points,ne as PointsMaterial,Ug as PolarGridHelper,Ge as PolyhedronGeometry,wg as PositionalAudio,zg as PropertyBinding,yg as PropertyMixer,Re as QuadraticBezierCurve,Se as QuadraticBezierCurve3,fd as Quaternion,Jf as QuaternionKeyframeTrack,If as QuaternionLinearInterpolant,ib as R11_EAC_Format,Fb as RED_GREEN_RGTC2_Format,Db as RED_RGTC1_Format,a as REVISION,kb as RG11_EAC_Format,Xb as RGBADepthPacking,Qa as RGBAFormat,Ya as RGBAIntegerFormat,xb as RGBA_ASTC_10x10_Format,ub as RGBA_ASTC_10x5_Format,vb as RGBA_ASTC_10x6_Format,wb as RGBA_ASTC_10x8_Format,yb as RGBA_ASTC_12x10_Format,zb as RGBA_ASTC_12x12_Format,mb as RGBA_ASTC_4x4_Format,nb as RGBA_ASTC_5x4_Format,ob as RGBA_ASTC_5x5_Format,pb as RGBA_ASTC_6x5_Format,qb as RGBA_ASTC_6x6_Format,rb as RGBA_ASTC_8x5_Format,sb as RGBA_ASTC_8x6_Format,tb as RGBA_ASTC_8x8_Format,Ab as RGBA_BPTC_Format,hb as RGBA_ETC2_EAC_Format,eb as RGBA_PVRTC_2BPPV1_Format,db as RGBA_PVRTC_4BPPV1_Format,_a as RGBA_S3TC_DXT1_Format,$a as RGBA_S3TC_DXT3_Format,ab as RGBA_S3TC_DXT5_Format,Yb as RGBDepthPacking,Pa as RGBFormat,Xa as RGBIntegerFormat,Bb as RGB_BPTC_SIGNED_Format,Cb as RGB_BPTC_UNSIGNED_Format,fb as RGB_ETC1_Format,gb as RGB_ETC2_Format,cb as RGB_PVRTC_2BPPV1_Format,bb as RGB_PVRTC_4BPPV1_Format,Za as RGB_S3TC_DXT1_Format,Zb as RGDepthPacking,Va as RGFormat,Wa as RGIntegerFormat,nf as RawShaderMaterial,Yd as Ray,Ig as Raycaster,fg as RectAreaLight,Ta as RedFormat,Ua as RedIntegerFormat,aa as ReinhardToneMapping,nd as RenderTarget,Dg as RenderTarget3D,oa as RepeatWrapping,kc as ReplaceStencilOp,x as ReverseSubtractEquation,bf as RingGeometry,jb as SIGNED_R11_EAC_Format,Gb as SIGNED_RED_GREEN_RGTC2_Format,Eb as SIGNED_RED_RGTC1_Format,lb as SIGNED_RG11_EAC_Format,bc as SRGBColorSpace,ec as SRGBTransfer,Cd as Scene,dh as ShaderChunk,fh as ShaderLib,mf as ShaderMaterial,kf as ShadowMaterial,We as Shape,cf as ShapeGeometry,ah as ShapePath,Xe as ShapeUtils,Da as ShortType,ce as Skeleton,Qg as SkeletonHelper,$d as SkinnedMesh,kd as Source,Qd as Sphere,df as SphereGeometry,Kg as Spherical,gg as SphericalHarmonics3,Te as SplineCurve,ag as SpotLight,Pg as SpotLightHelper,Wd as Sprite,Vd as SpriteMaterial,E as SrcAlphaFactor,K as SrcAlphaSaturateFactor,C as SrcColorFactor,Mc as StaticCopyUsage,Gc as StaticDrawUsage,Jc as StaticReadUsage,qg as StereoCamera,Oc as StreamCopyUsage,Ic as StreamDrawUsage,Lc as StreamReadUsage,Kf as StringKeyframeTrack,w as SubtractEquation,r as SubtractiveBlending,c as TOUCH,_b as TangentSpaceNormalMap,ef as TetrahedronGeometry,ld as Texture,Xf as TextureLoader,ch as TextureUtils,tg as Timer,Tc as TimestampQuery,ff as TorusGeometry,gf as TorusKnotGeometry,Dd as Triangle,Vb as TriangleFanDrawMode,Ub as TriangleStripDrawMode,Tb as TrianglesDrawMode,hf as TubeGeometry,ia as UVMapping,Ld as Uint16BufferAttribute,Nd as Uint32BufferAttribute,Id as Uint8BufferAttribute,Jd as Uint8ClampedBufferAttribute,Eg as Uniform,Fg as UniformsGroup,eh as UniformsLib,lf as UniformsUtils,Ba as UnsignedByteType,Na as UnsignedInt101111Type,La as UnsignedInt248Type,Ma as UnsignedInt5999Type,Ga as UnsignedIntType,Ja as UnsignedShort4444Type,Ka as UnsignedShort5551Type,Ea as UnsignedShortType,k as VSMShadowMap,ed as Vector2,gd as Vector3,md as Vector4,Lf as VectorKeyframeTrack,qe as VideoFrameTexture,pe as VideoTexture,sd as WebGL3DRenderTarget,qd as WebGLArrayRenderTarget,Rc as WebGLCoordinateSystem,hh as WebGLCubeRenderTarget,od as WebGLRenderTarget,jh as WebGLRenderer,ih as WebGLUtils,Sc as WebGPUCoordinateSystem,yd as WebXRController,jf as WireframeGeometry,Qb as WrapAroundEnding,Ob as ZeroCurvatureEnding,A as ZeroFactor,Pb as ZeroSlopeEnding,ic as ZeroStencilOp,Xc as createCanvasElement,ad as error,Zc as getConsoleFunction,_c as log,Yc as setConsoleFunction,$c as warn,bd as warnOnce};
2
- //# sourceMappingURL=three.module-Z4EOVUWF.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,137 +0,0 @@
1
- import { type PixelSize } from "./levels";
2
- /**
3
- * Which level a draw is served, and when levels are decoded and released.
4
- *
5
- * Browser-free: decoding, uploading and fetching are the host's, so every
6
- * decision here runs under a plain test runner with a fake clock.
7
- */
8
- /** Mirrors core's `DecodePolicy`, which its barrel does not export yet. */
9
- export type DecodePolicy = "exact" | "interactive";
10
- export declare const IMAGE_DECODE_BUDGET_BYTES: number;
11
- /** Unselected levels older than this go, whatever the budget — bar a {@link RETAINED_LEVEL_BYTES} largest level. */
12
- export declare const LEVEL_AGE_OUT_MS = 2000;
13
- /** A preview drawing a level at twice what it needs for this long decodes the smaller one. */
14
- export declare const DOWNGRADE_AFTER_MS = 5000;
15
- export declare const IDLE_TO_FLOOR_MS = 30000;
16
- export declare const IDLE_DROP_SOURCE_MS = 60000;
17
- export declare const MAX_CONCURRENT_DECODES = 3;
18
- /** An interactive decode covers this multiple of the demand, so a growing draw re-decodes per octave, not per rung. */
19
- export declare const UPGRADE_HEADROOM = 2;
20
- /**
21
- * A largest level no bigger than this is neither aged out nor downgraded until
22
- * the budget needs the room: decoding it again the next time a draw grows costs
23
- * more, in main-thread copies and a blurry frame, than holding it.
24
- */
25
- export declare const RETAINED_LEVEL_BYTES: number;
26
- export interface ImageLevel<G = unknown> {
27
- /** The ladder rung this level was decoded for. */
28
- readonly edge: number;
29
- readonly width: number;
30
- readonly height: number;
31
- readonly pixels: Uint8Array;
32
- /** The host's GPU copy, counted against the budget alongside the pixels. */
33
- gpu: G | null;
34
- lastSelected: number;
35
- /** The pass that last selected it — "unselected" is judged by pass, since several can share a clock tick. */
36
- selectedPass: number;
37
- }
38
- export interface DecodedImage {
39
- pixels: Uint8Array;
40
- width: number;
41
- height: number;
42
- intrinsic: PixelSize;
43
- vector: boolean;
44
- }
45
- export interface ImageLevelHost<G> {
46
- now(): number;
47
- /**
48
- * Decode `src` at the rung `chooseEdge` picks once the source's intrinsic
49
- * size is known — the host may have to fetch or even decode the source to
50
- * learn it, which is why the choice is a callback rather than an argument.
51
- */
52
- decode(src: string, chooseEdge: (intrinsic: PixelSize, vector: boolean) => number): Promise<DecodedImage & {
53
- edge: number;
54
- }>;
55
- /** A level left the cache. Free what was built from it. */
56
- released(src: string, level: ImageLevel<G>): void;
57
- /** Kept compressed bytes for `src`, so an upgrade needs no refetch; 0 when none. */
58
- sourceBytes(src: string): number;
59
- dropSource(src: string): void;
60
- /** Long edge of the surface in device px, for sizing a first interactive load. */
61
- surfaceEdge(): number;
62
- onError?(src: string, error: unknown): void;
63
- }
64
- export declare class ImageLevelCache<G = unknown> {
65
- private readonly _host;
66
- private readonly _budget;
67
- private _policy;
68
- private readonly _entries;
69
- private _pass;
70
- private _inflight;
71
- constructor(_host: ImageLevelHost<G>, _budget?: number);
72
- get policy(): DecodePolicy;
73
- setPolicy(policy: DecodePolicy): void;
74
- has(src: string): boolean;
75
- intrinsicSize(src: string): PixelSize | null;
76
- /** Make sure `src` has a level to draw with. First loads pick their rung by policy. */
77
- load(src: string): Promise<void>;
78
- beginPass(): void;
79
- /**
80
- * The level one draw paints with. `footprint` is the long edge in device px
81
- * the draw needs; absent means the source's own resolution.
82
- */
83
- select(src: string, footprint?: number): ImageLevel<G> | null;
84
- /** Decide this pass's level changes, now that every draw has reported. */
85
- endPass(): void;
86
- /**
87
- * What a settling caller must wait for before the frame is right: under
88
- * `exact`, every decode queued or running; under `interactive`, only a source
89
- * the last pass asked for with nothing resident. An upgrade is {@link hasUpgrades}.
90
- */
91
- hasPending(): boolean;
92
- /** Await what {@link hasPending} reports, and report whether there was any. */
93
- warm(): Promise<boolean>;
94
- /** Whether, under `interactive`, a source the last pass drew below demand has a better level on its way. */
95
- hasUpgrades(): boolean;
96
- /** Await the upgrades {@link hasUpgrades} reports; whether one landed. */
97
- warmUpgrades(): Promise<boolean>;
98
- stats(): {
99
- sources: number;
100
- levels: number;
101
- levelBytes: number;
102
- sourceBytes: number;
103
- inflight: number;
104
- };
105
- /** Every level held for `src`, ascending — for tests and stats. */
106
- levelsOf(src: string): readonly ImageLevel<G>[];
107
- dispose(): void;
108
- private _entry;
109
- private _blocks;
110
- private _upgrading;
111
- /** The rung an interactive decode for `demand` asks for: with headroom, capped at the source. */
112
- private _interactiveEdge;
113
- private _learn;
114
- private _add;
115
- /**
116
- * Queue a decode of `edge`. An interactive request replaces what is queued,
117
- * since only the latest demand matters; exact requests accumulate, since a
118
- * frame may need several rungs of one source.
119
- */
120
- private _request;
121
- private _pump;
122
- /**
123
- * The next queued rung worth decoding. Under `interactive` never one below the
124
- * latest demand, and no upgrade once what landed meanwhile already covers it.
125
- */
126
- private _nextEdge;
127
- private _ageOut;
128
- private _total;
129
- /**
130
- * Cheapest loss first: levels nothing drew this pass, then levels a preview
131
- * holds bigger than it needs, then sources nobody has looked at in a while,
132
- * then their compressed bytes. A source's last level is never evicted — a
133
- * draw finding nothing would throw rather than degrade.
134
- */
135
- private _enforceBudget;
136
- }
137
- //# sourceMappingURL=image-levels.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"image-levels.d.ts","sourceRoot":"","sources":["../../src/decode/image-levels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1E;;;;;GAKG;AAEH,2EAA2E;AAC3E,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,aAAa,CAAC;AAEnD,eAAO,MAAM,yBAAyB,QAAoB,CAAC;AAC3D,oHAAoH;AACpH,eAAO,MAAM,gBAAgB,OAAQ,CAAC;AACtC,8FAA8F;AAC9F,eAAO,MAAM,kBAAkB,OAAQ,CAAC;AACxC,eAAO,MAAM,gBAAgB,QAAS,CAAC;AACvC,eAAO,MAAM,mBAAmB,QAAS,CAAC;AAC1C,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,uHAAuH;AACvH,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAClC;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,QAAmB,CAAC;AAErD,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,OAAO;IACnC,kDAAkD;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,4EAA4E;IAC5E,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,6GAA6G;IAC7G,YAAY,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,cAAc,CAAC,CAAC;IAC7B,GAAG,IAAI,MAAM,CAAC;IACd;;;;OAIG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,KAAK,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7H,2DAA2D;IAC3D,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAClD,oFAAoF;IACpF,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,kFAAkF;IAClF,WAAW,IAAI,MAAM,CAAC;IACtB,OAAO,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CAC/C;AA2BD,qBAAa,eAAe,CAAC,CAAC,GAAG,OAAO;IAOhC,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP5B,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+B;IACxD,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,SAAS,CAAK;gBAGD,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,EACxB,OAAO,SAA4B;IAGxD,IAAI,MAAM,IAAI,YAAY,CAEzB;IAED,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAIrC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAI5C,uFAAuF;IACvF,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBhC,SAAS,IAAI,IAAI;IAIjB;;;OAGG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI;IA+B7D,0EAA0E;IAC1E,OAAO,IAAI,IAAI;IAsCf;;;;OAIG;IACH,UAAU,IAAI,OAAO;IAOrB,+EAA+E;IACzE,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAgC9B,4GAA4G;IAC5G,WAAW,IAAI,OAAO;IAQtB,0EAA0E;IACpE,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAgBtC,KAAK,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;IAYvG,mEAAmE;IACnE,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE;IAI/C,OAAO,IAAI,IAAI;IASf,OAAO,CAAC,MAAM;IAed,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,UAAU;IAIlB,iGAAiG;IACjG,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,IAAI;IAqBZ;;;;OAIG;IACH,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,KAAK;IA6Bb;;;OAGG;IACH,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,OAAO;IAWf,OAAO,CAAC,MAAM;IASd;;;;;OAKG;IACH,OAAO,CAAC,cAAc;CAwDzB"}