three-stdlib 2.22.8 → 2.22.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (629) hide show
  1. package/dist/animation/AnimationClipCreator.js +49 -50
  2. package/dist/animation/AnimationClipCreator.mjs +49 -50
  3. package/dist/animation/CCDIKSolver.d.ts +9 -4
  4. package/dist/animation/CCDIKSolver.js +193 -148
  5. package/dist/animation/CCDIKSolver.mjs +194 -149
  6. package/dist/animation/MMDAnimationHelper.js +613 -515
  7. package/dist/animation/MMDAnimationHelper.mjs +613 -515
  8. package/dist/animation/MMDPhysics.d.ts +6 -1
  9. package/dist/animation/MMDPhysics.js +728 -718
  10. package/dist/animation/MMDPhysics.mjs +729 -719
  11. package/dist/cameras/CinematicCamera.d.ts +2 -2
  12. package/dist/controls/ArcballControls.d.ts +1 -1
  13. package/dist/controls/ArcballControls.js +38 -44
  14. package/dist/controls/ArcballControls.mjs +39 -45
  15. package/dist/controls/DeviceOrientationControls.js +2 -1
  16. package/dist/controls/DeviceOrientationControls.mjs +2 -1
  17. package/dist/controls/FirstPersonControls.d.ts +1 -1
  18. package/dist/controls/FirstPersonControls.js +1 -1
  19. package/dist/controls/FirstPersonControls.mjs +1 -1
  20. package/dist/controls/PointerLockControls.js +2 -2
  21. package/dist/controls/PointerLockControls.mjs +2 -2
  22. package/dist/controls/TransformControls.d.ts +1 -1
  23. package/dist/controls/experimental/CameraControls.d.ts +1 -1
  24. package/dist/csm/CSM.js +4 -4
  25. package/dist/csm/CSM.mjs +4 -4
  26. package/dist/csm/CSMFrustum.js +1 -1
  27. package/dist/csm/CSMFrustum.mjs +1 -1
  28. package/dist/csm/CSMShader.js +14 -10
  29. package/dist/csm/CSMShader.mjs +14 -10
  30. package/dist/curves/CurveExtras.js +52 -62
  31. package/dist/curves/CurveExtras.mjs +53 -63
  32. package/dist/curves/NURBSUtils.d.ts +18 -20
  33. package/dist/curves/NURBSUtils.js +17 -17
  34. package/dist/curves/NURBSUtils.mjs +17 -17
  35. package/dist/deprecated/Geometry.js +26 -26
  36. package/dist/deprecated/Geometry.mjs +27 -27
  37. package/dist/effects/AnaglyphEffect.js +95 -114
  38. package/dist/effects/AnaglyphEffect.mjs +95 -114
  39. package/dist/effects/AsciiEffect.js +144 -162
  40. package/dist/effects/AsciiEffect.mjs +144 -162
  41. package/dist/effects/OutlineEffect.js +253 -276
  42. package/dist/effects/OutlineEffect.mjs +253 -276
  43. package/dist/effects/ParallaxBarrierEffect.js +61 -60
  44. package/dist/effects/ParallaxBarrierEffect.mjs +61 -60
  45. package/dist/effects/PeppersGhostEffect.js +84 -81
  46. package/dist/effects/PeppersGhostEffect.mjs +84 -81
  47. package/dist/effects/StereoEffect.js +31 -28
  48. package/dist/effects/StereoEffect.mjs +31 -28
  49. package/dist/environments/RoomEnvironment.d.ts +6 -5
  50. package/dist/exporters/GLTFExporter.d.ts +109 -441
  51. package/dist/exporters/GLTFExporter.js +912 -581
  52. package/dist/exporters/GLTFExporter.mjs +912 -581
  53. package/dist/geometries/ConvexGeometry.js +0 -3
  54. package/dist/geometries/ConvexGeometry.mjs +0 -3
  55. package/dist/geometries/LightningStrike.d.ts +3 -3
  56. package/dist/geometries/LightningStrike.js +80 -75
  57. package/dist/geometries/LightningStrike.mjs +80 -75
  58. package/dist/geometries/ParametricGeometries.js +75 -74
  59. package/dist/geometries/ParametricGeometries.mjs +75 -74
  60. package/dist/geometries/RoundedBoxGeometry.js +1 -1
  61. package/dist/geometries/RoundedBoxGeometry.mjs +1 -1
  62. package/dist/geometries/TextGeometry.d.ts +1 -1
  63. package/dist/helpers/RectAreaLightHelper.d.ts +4 -3
  64. package/dist/helpers/RectAreaLightHelper.js +2 -2
  65. package/dist/helpers/RectAreaLightHelper.mjs +2 -2
  66. package/dist/helpers/VertexNormalsHelper.d.ts +3 -0
  67. package/dist/helpers/VertexNormalsHelper.js +15 -22
  68. package/dist/helpers/VertexNormalsHelper.mjs +16 -23
  69. package/dist/helpers/VertexTangentsHelper.d.ts +3 -0
  70. package/dist/helpers/VertexTangentsHelper.js +12 -14
  71. package/dist/helpers/VertexTangentsHelper.mjs +12 -14
  72. package/dist/index.d.ts +1 -66
  73. package/dist/index.js +5 -370
  74. package/dist/index.mjs +9 -374
  75. package/dist/interactive/InteractiveGroup.js +1 -1
  76. package/dist/interactive/InteractiveGroup.mjs +1 -1
  77. package/dist/interactive/SelectionBox.js +122 -125
  78. package/dist/interactive/SelectionBox.mjs +122 -125
  79. package/dist/interactive/SelectionHelper.js +45 -48
  80. package/dist/interactive/SelectionHelper.mjs +45 -48
  81. package/dist/libs/MeshoptDecoder.d.ts +1 -1
  82. package/dist/libs/MotionControllers.d.ts +15 -14
  83. package/dist/libs/MotionControllers.js +10 -10
  84. package/dist/libs/MotionControllers.mjs +10 -10
  85. package/dist/lights/LightProbeGenerator.js +43 -43
  86. package/dist/lights/LightProbeGenerator.mjs +43 -43
  87. package/dist/lights/RectAreaLightUniformsLib.js +9 -5
  88. package/dist/lights/RectAreaLightUniformsLib.mjs +9 -5
  89. package/dist/lines/LineMaterial.js +271 -271
  90. package/dist/lines/LineMaterial.mjs +272 -272
  91. package/dist/lines/LineSegments2.js +12 -12
  92. package/dist/lines/LineSegments2.mjs +12 -12
  93. package/dist/lines/LineSegmentsGeometry.js +2 -2
  94. package/dist/lines/LineSegmentsGeometry.mjs +2 -2
  95. package/dist/lines/Wireframe.js +2 -2
  96. package/dist/lines/Wireframe.mjs +2 -2
  97. package/dist/loaders/3DMLoader.d.ts +2 -1
  98. package/dist/loaders/3MFLoader.d.ts +2 -1
  99. package/dist/loaders/AMFLoader.d.ts +2 -1
  100. package/dist/loaders/AssimpLoader.d.ts +20 -0
  101. package/dist/loaders/AssimpLoader.js +520 -482
  102. package/dist/loaders/AssimpLoader.mjs +520 -482
  103. package/dist/loaders/BVHLoader.d.ts +2 -1
  104. package/dist/loaders/BasisTextureLoader.d.ts +2 -1
  105. package/dist/loaders/BasisTextureLoader.js +23 -14
  106. package/dist/loaders/BasisTextureLoader.mjs +24 -15
  107. package/dist/loaders/ColladaLoader.d.ts +2 -1
  108. package/dist/loaders/DRACOLoader.d.ts +2 -1
  109. package/dist/loaders/FBXLoader.d.ts +2 -1
  110. package/dist/loaders/FBXLoader.js +2 -2
  111. package/dist/loaders/FBXLoader.mjs +2 -2
  112. package/dist/loaders/FontLoader.d.ts +4 -4
  113. package/dist/loaders/FontLoader.js +2 -1
  114. package/dist/loaders/FontLoader.mjs +2 -1
  115. package/dist/loaders/GCodeLoader.d.ts +2 -1
  116. package/dist/loaders/GLTFLoader.d.ts +11 -9
  117. package/dist/loaders/GLTFLoader.js +2 -2
  118. package/dist/loaders/GLTFLoader.mjs +2 -2
  119. package/dist/loaders/HDRCubeTextureLoader.d.ts +2 -1
  120. package/dist/loaders/KMZLoader.d.ts +2 -1
  121. package/dist/loaders/KTX2Loader.js +34 -15
  122. package/dist/loaders/KTX2Loader.mjs +35 -16
  123. package/dist/loaders/LDrawLoader.d.ts +2 -1
  124. package/dist/loaders/LDrawLoader.js +3 -3
  125. package/dist/loaders/LDrawLoader.mjs +3 -3
  126. package/dist/loaders/LUT3dlLoader.d.ts +3 -2
  127. package/dist/loaders/LUTCubeLoader.d.ts +3 -2
  128. package/dist/loaders/LWOLoader.d.ts +2 -1
  129. package/dist/loaders/LottieLoader.d.ts +2 -1
  130. package/dist/loaders/MD2Loader.d.ts +2 -1
  131. package/dist/loaders/MDDLoader.d.ts +2 -1
  132. package/dist/loaders/MMDLoader.d.ts +2 -1
  133. package/dist/loaders/MTLLoader.d.ts +2 -1
  134. package/dist/loaders/OBJLoader.d.ts +2 -1
  135. package/dist/loaders/OBJLoader.js +5 -5
  136. package/dist/loaders/OBJLoader.mjs +5 -5
  137. package/dist/loaders/PCDLoader.d.ts +2 -1
  138. package/dist/loaders/PDBLoader.d.ts +2 -1
  139. package/dist/loaders/PLYLoader.d.ts +2 -1
  140. package/dist/loaders/PRWMLoader.d.ts +2 -1
  141. package/dist/loaders/RGBMLoader.js +924 -918
  142. package/dist/loaders/RGBMLoader.mjs +924 -918
  143. package/dist/loaders/STLLoader.d.ts +2 -1
  144. package/dist/loaders/SVGLoader.d.ts +2 -1
  145. package/dist/loaders/TDSLoader.d.ts +2 -1
  146. package/dist/loaders/TTFLoader.d.ts +2 -1
  147. package/dist/loaders/TiltLoader.d.ts +2 -1
  148. package/dist/loaders/TiltLoader.js +3 -1
  149. package/dist/loaders/TiltLoader.mjs +3 -1
  150. package/dist/loaders/VOXLoader.d.ts +4 -2
  151. package/dist/loaders/VRMLLoader.d.ts +2 -1
  152. package/dist/loaders/VRMLoader.d.ts +20 -0
  153. package/dist/loaders/VTKLoader.d.ts +2 -1
  154. package/dist/loaders/XLoader.d.ts +20 -0
  155. package/dist/loaders/XLoader.js +1 -1
  156. package/dist/loaders/XLoader.mjs +1 -1
  157. package/dist/loaders/XYZLoader.d.ts +2 -1
  158. package/dist/loaders/lwo/IFFParser.js +104 -110
  159. package/dist/loaders/lwo/IFFParser.mjs +104 -110
  160. package/dist/loaders/lwo/LWO2Parser.js +18 -33
  161. package/dist/loaders/lwo/LWO2Parser.mjs +18 -33
  162. package/dist/loaders/lwo/LWO3Parser.js +17 -33
  163. package/dist/loaders/lwo/LWO3Parser.mjs +17 -33
  164. package/dist/math/Capsule.d.ts +1 -1
  165. package/dist/math/Capsule.js +90 -92
  166. package/dist/math/Capsule.mjs +90 -92
  167. package/dist/math/ColorConverter.js +26 -36
  168. package/dist/math/ColorConverter.mjs +26 -36
  169. package/dist/math/ConvexHull.js +16 -17
  170. package/dist/math/ConvexHull.mjs +17 -18
  171. package/dist/math/ImprovedNoise.js +41 -39
  172. package/dist/math/ImprovedNoise.mjs +41 -39
  173. package/dist/math/Lut.js +65 -63
  174. package/dist/math/Lut.mjs +66 -64
  175. package/dist/math/MeshSurfaceSampler.d.ts +3 -0
  176. package/dist/math/MeshSurfaceSampler.js +85 -89
  177. package/dist/math/MeshSurfaceSampler.mjs +85 -89
  178. package/dist/math/OBB.js +68 -88
  179. package/dist/math/OBB.mjs +68 -88
  180. package/dist/math/Octree.js +240 -245
  181. package/dist/math/Octree.mjs +240 -245
  182. package/dist/misc/ConvexObjectBreaker.js +114 -120
  183. package/dist/misc/ConvexObjectBreaker.mjs +115 -121
  184. package/dist/misc/GPUComputationRenderer.d.ts +1 -0
  185. package/dist/misc/GPUComputationRenderer.js +191 -157
  186. package/dist/misc/GPUComputationRenderer.mjs +192 -158
  187. package/dist/misc/Gyroscope.js +16 -18
  188. package/dist/misc/Gyroscope.mjs +17 -19
  189. package/dist/misc/MD2Character.js +88 -86
  190. package/dist/misc/MD2Character.mjs +89 -87
  191. package/dist/misc/MD2CharacterComplex.js +106 -105
  192. package/dist/misc/MD2CharacterComplex.mjs +107 -106
  193. package/dist/misc/MorphAnimMesh.d.ts +1 -1
  194. package/dist/misc/MorphAnimMesh.js +33 -33
  195. package/dist/misc/MorphAnimMesh.mjs +33 -33
  196. package/dist/misc/MorphBlendMesh.js +68 -68
  197. package/dist/misc/MorphBlendMesh.mjs +68 -68
  198. package/dist/misc/ProgressiveLightmap.d.ts +1 -2
  199. package/dist/misc/RollerCoaster.js +321 -314
  200. package/dist/misc/RollerCoaster.mjs +322 -315
  201. package/dist/misc/Volume.d.ts +1 -1
  202. package/dist/misc/Volume.js +169 -166
  203. package/dist/misc/Volume.mjs +170 -167
  204. package/dist/misc/VolumeSlice.js +50 -51
  205. package/dist/misc/VolumeSlice.mjs +50 -51
  206. package/dist/modifiers/CurveModifier.d.ts +2 -2
  207. package/dist/modifiers/CurveModifier.js +1 -1
  208. package/dist/modifiers/CurveModifier.mjs +1 -1
  209. package/dist/modifiers/SimplifyModifier.js +2 -1
  210. package/dist/modifiers/SimplifyModifier.mjs +2 -1
  211. package/dist/objects/Lensflare.js +32 -21
  212. package/dist/objects/Lensflare.mjs +33 -22
  213. package/dist/objects/LightningStorm.d.ts +3 -3
  214. package/dist/objects/LightningStorm.js +3 -3
  215. package/dist/objects/LightningStorm.mjs +3 -3
  216. package/dist/objects/MarchingCubes.d.ts +1 -0
  217. package/dist/objects/MarchingCubes.js +4362 -10
  218. package/dist/objects/MarchingCubes.mjs +4363 -11
  219. package/dist/objects/Reflector.d.ts +5 -2
  220. package/dist/objects/Reflector.js +39 -12
  221. package/dist/objects/Reflector.mjs +40 -13
  222. package/dist/objects/ReflectorForSSRPass.js +25 -21
  223. package/dist/objects/ReflectorForSSRPass.mjs +26 -22
  224. package/dist/objects/ReflectorRTT.d.ts +6 -0
  225. package/dist/objects/Refractor.d.ts +5 -2
  226. package/dist/objects/Refractor.js +39 -12
  227. package/dist/objects/Refractor.mjs +40 -13
  228. package/dist/objects/ShadowMesh.d.ts +6 -3
  229. package/dist/objects/ShadowMesh.js +7 -3
  230. package/dist/objects/ShadowMesh.mjs +8 -4
  231. package/dist/objects/Sky.js +181 -137
  232. package/dist/objects/Sky.mjs +182 -138
  233. package/dist/objects/Water.d.ts +3 -3
  234. package/dist/objects/Water.js +3 -2
  235. package/dist/objects/Water.mjs +3 -2
  236. package/dist/objects/Water2.d.ts +2 -2
  237. package/dist/objects/Water2.js +16 -18
  238. package/dist/objects/Water2.mjs +17 -19
  239. package/dist/postprocessing/AdaptiveToneMappingPass.d.ts +2 -2
  240. package/dist/postprocessing/AdaptiveToneMappingPass.js +105 -112
  241. package/dist/postprocessing/AdaptiveToneMappingPass.mjs +107 -114
  242. package/dist/postprocessing/BokehPass.d.ts +1 -1
  243. package/dist/postprocessing/ClearPass.d.ts +3 -3
  244. package/dist/postprocessing/CubeTexturePass.js +37 -33
  245. package/dist/postprocessing/CubeTexturePass.mjs +37 -33
  246. package/dist/postprocessing/HalftonePass.d.ts +1 -1
  247. package/dist/postprocessing/LUTPass.d.ts +3 -3
  248. package/dist/postprocessing/RenderPixelatedPass.d.ts +28 -0
  249. package/dist/postprocessing/SAOPass.d.ts +5 -6
  250. package/dist/postprocessing/SAOPass.js +151 -145
  251. package/dist/postprocessing/SAOPass.mjs +153 -147
  252. package/dist/postprocessing/SSAARenderPass.d.ts +5 -5
  253. package/dist/postprocessing/SSAARenderPass.js +78 -55
  254. package/dist/postprocessing/SSAARenderPass.mjs +80 -57
  255. package/dist/postprocessing/SSAOPass.d.ts +4 -5
  256. package/dist/postprocessing/SSAOPass.js +17 -10
  257. package/dist/postprocessing/SSAOPass.mjs +17 -10
  258. package/dist/postprocessing/SSRPass.d.ts +6 -7
  259. package/dist/postprocessing/SSRPass.js +235 -262
  260. package/dist/postprocessing/SSRPass.mjs +237 -264
  261. package/dist/postprocessing/TAARenderPass.d.ts +2 -2
  262. package/dist/postprocessing/TAARenderPass.js +106 -27
  263. package/dist/postprocessing/TAARenderPass.mjs +107 -28
  264. package/dist/postprocessing/TexturePass.d.ts +2 -2
  265. package/dist/postprocessing/TexturePass.js +24 -22
  266. package/dist/postprocessing/TexturePass.mjs +25 -23
  267. package/dist/postprocessing/UnrealBloomPass.js +175 -118
  268. package/dist/postprocessing/UnrealBloomPass.mjs +177 -120
  269. package/dist/renderers/CSS2DRenderer.d.ts +2 -1
  270. package/dist/renderers/CSS2DRenderer.js +5 -4
  271. package/dist/renderers/CSS2DRenderer.mjs +6 -5
  272. package/dist/renderers/CSS3DRenderer.d.ts +1 -1
  273. package/dist/renderers/CSS3DRenderer.js +147 -113
  274. package/dist/renderers/CSS3DRenderer.mjs +148 -114
  275. package/dist/renderers/Projector.js +377 -389
  276. package/dist/renderers/Projector.mjs +377 -389
  277. package/dist/renderers/SVGRenderer.js +280 -275
  278. package/dist/renderers/SVGRenderer.mjs +280 -275
  279. package/dist/shaders/ACESFilmicToneMappingShader.d.ts +1 -1
  280. package/dist/shaders/AfterimageShader.d.ts +1 -1
  281. package/dist/shaders/BasicShader.d.ts +1 -1
  282. package/dist/shaders/BleachBypassShader.d.ts +1 -1
  283. package/dist/shaders/BokehShader.d.ts +2 -2
  284. package/dist/shaders/BokehShader2.d.ts +2 -2
  285. package/dist/shaders/BokehShader2.js +1 -1
  286. package/dist/shaders/BokehShader2.mjs +1 -1
  287. package/dist/shaders/ColorCorrectionShader.js +3 -3
  288. package/dist/shaders/ColorCorrectionShader.mjs +3 -3
  289. package/dist/shaders/ColorifyShader.js +1 -1
  290. package/dist/shaders/ColorifyShader.mjs +1 -1
  291. package/dist/shaders/ConvolutionShader.d.ts +2 -2
  292. package/dist/shaders/ConvolutionShader.js +1 -1
  293. package/dist/shaders/ConvolutionShader.mjs +1 -1
  294. package/dist/shaders/CopyShader.d.ts +1 -1
  295. package/dist/shaders/DepthLimitedBlurShader.d.ts +2 -2
  296. package/dist/shaders/DepthLimitedBlurShader.js +2 -2
  297. package/dist/shaders/DepthLimitedBlurShader.mjs +2 -2
  298. package/dist/shaders/DotScreenShader.js +2 -2
  299. package/dist/shaders/DotScreenShader.mjs +2 -2
  300. package/dist/shaders/FXAAShader.js +1 -1
  301. package/dist/shaders/FXAAShader.mjs +1 -1
  302. package/dist/shaders/FreiChenShader.js +1 -1
  303. package/dist/shaders/FreiChenShader.mjs +1 -1
  304. package/dist/shaders/GammaCorrectionShader.d.ts +1 -1
  305. package/dist/shaders/GodRaysShader.js +4 -4
  306. package/dist/shaders/GodRaysShader.mjs +4 -4
  307. package/dist/shaders/HorizontalBlurShader.d.ts +1 -1
  308. package/dist/shaders/LuminosityHighPassShader.js +1 -1
  309. package/dist/shaders/LuminosityHighPassShader.mjs +1 -1
  310. package/dist/shaders/NormalMapShader.js +2 -2
  311. package/dist/shaders/NormalMapShader.mjs +2 -2
  312. package/dist/shaders/SAOShader.d.ts +2 -2
  313. package/dist/shaders/SAOShader.js +3 -3
  314. package/dist/shaders/SAOShader.mjs +3 -3
  315. package/dist/shaders/SMAAShader.js +3 -3
  316. package/dist/shaders/SMAAShader.mjs +3 -3
  317. package/dist/shaders/SSAOShader.js +4 -4
  318. package/dist/shaders/SSAOShader.mjs +4 -4
  319. package/dist/shaders/SSRShader.js +4 -4
  320. package/dist/shaders/SSRShader.mjs +4 -4
  321. package/dist/shaders/SobelOperatorShader.js +1 -1
  322. package/dist/shaders/SobelOperatorShader.mjs +1 -1
  323. package/dist/shaders/SubsurfaceScatteringShader.d.ts +2 -2
  324. package/dist/shaders/SubsurfaceScatteringShader.js +91 -52
  325. package/dist/shaders/SubsurfaceScatteringShader.mjs +91 -52
  326. package/dist/shaders/ToonShader.js +25 -25
  327. package/dist/shaders/ToonShader.mjs +25 -25
  328. package/dist/shaders/TriangleBlurShader.js +1 -1
  329. package/dist/shaders/TriangleBlurShader.mjs +1 -1
  330. package/dist/shaders/VerticalBlurShader.d.ts +1 -1
  331. package/dist/shaders/VolumeShader.js +2 -2
  332. package/dist/shaders/VolumeShader.mjs +2 -2
  333. package/dist/shaders/types.d.ts +2 -2
  334. package/dist/types/Loader.d.ts +4 -0
  335. package/dist/types/Loader.js +26 -0
  336. package/dist/types/Loader.mjs +9 -0
  337. package/dist/types/shared.d.ts +2 -2
  338. package/dist/types/utils.d.ts +1 -1
  339. package/dist/utils/BufferGeometryUtils.d.ts +2 -2
  340. package/dist/utils/BufferGeometryUtils.js +1 -1
  341. package/dist/utils/BufferGeometryUtils.mjs +1 -1
  342. package/dist/utils/RoughnessMipmapper.d.ts +8 -0
  343. package/dist/utils/RoughnessMipmapper.js +79 -75
  344. package/dist/utils/RoughnessMipmapper.mjs +79 -75
  345. package/dist/utils/ShadowMapViewer.js +103 -106
  346. package/dist/utils/ShadowMapViewer.mjs +103 -106
  347. package/dist/utils/SkeletonUtils.d.ts +5 -21
  348. package/dist/utils/SkeletonUtils.js +182 -263
  349. package/dist/utils/SkeletonUtils.mjs +183 -264
  350. package/dist/utils/UVsDebug.js +37 -42
  351. package/dist/utils/UVsDebug.mjs +37 -42
  352. package/dist/webxr/ARButton.d.ts +2 -1
  353. package/dist/webxr/OculusHandModel.d.ts +2 -1
  354. package/dist/webxr/OculusHandPointerModel.d.ts +2 -2
  355. package/dist/webxr/OculusHandPointerModel.js +2 -2
  356. package/dist/webxr/OculusHandPointerModel.mjs +2 -2
  357. package/dist/webxr/VRButton.d.ts +2 -1
  358. package/dist/webxr/XRHandPrimitiveModel.js +2 -2
  359. package/dist/webxr/XRHandPrimitiveModel.mjs +2 -2
  360. package/package.json +5 -6
  361. package/dist/custom.d.ts +0 -5
  362. package/dist/loaders/NodeMaterialLoader.js +0 -146
  363. package/dist/loaders/NodeMaterialLoader.mjs +0 -146
  364. package/dist/nodes/Nodes.js +0 -347
  365. package/dist/nodes/Nodes.mjs +0 -347
  366. package/dist/nodes/ShaderNode.js +0 -408
  367. package/dist/nodes/ShaderNode.mjs +0 -408
  368. package/dist/nodes/accessors/BufferNode.js +0 -14
  369. package/dist/nodes/accessors/BufferNode.mjs +0 -15
  370. package/dist/nodes/accessors/CameraNode.js +0 -43
  371. package/dist/nodes/accessors/CameraNode.mjs +0 -44
  372. package/dist/nodes/accessors/CubeTextureNode.js +0 -41
  373. package/dist/nodes/accessors/CubeTextureNode.mjs +0 -42
  374. package/dist/nodes/accessors/MaterialNode.js +0 -70
  375. package/dist/nodes/accessors/MaterialNode.mjs +0 -71
  376. package/dist/nodes/accessors/MaterialReferenceNode.js +0 -13
  377. package/dist/nodes/accessors/MaterialReferenceNode.mjs +0 -14
  378. package/dist/nodes/accessors/ModelNode.js +0 -8
  379. package/dist/nodes/accessors/ModelNode.mjs +0 -9
  380. package/dist/nodes/accessors/ModelViewProjectionNode.js +0 -23
  381. package/dist/nodes/accessors/ModelViewProjectionNode.mjs +0 -24
  382. package/dist/nodes/accessors/NormalNode.js +0 -61
  383. package/dist/nodes/accessors/NormalNode.mjs +0 -62
  384. package/dist/nodes/accessors/Object3DNode.js +0 -75
  385. package/dist/nodes/accessors/Object3DNode.mjs +0 -76
  386. package/dist/nodes/accessors/PointUVNode.js +0 -12
  387. package/dist/nodes/accessors/PointUVNode.mjs +0 -13
  388. package/dist/nodes/accessors/PositionNode.js +0 -64
  389. package/dist/nodes/accessors/PositionNode.mjs +0 -65
  390. package/dist/nodes/accessors/ReferenceNode.js +0 -36
  391. package/dist/nodes/accessors/ReferenceNode.mjs +0 -37
  392. package/dist/nodes/accessors/ReflectNode.js +0 -42
  393. package/dist/nodes/accessors/ReflectNode.mjs +0 -43
  394. package/dist/nodes/accessors/SkinningNode.js +0 -57
  395. package/dist/nodes/accessors/SkinningNode.mjs +0 -58
  396. package/dist/nodes/accessors/TextureNode.js +0 -53
  397. package/dist/nodes/accessors/TextureNode.mjs +0 -54
  398. package/dist/nodes/accessors/UVNode.js +0 -22
  399. package/dist/nodes/accessors/UVNode.mjs +0 -23
  400. package/dist/nodes/core/ArrayUniformNode.js +0 -13
  401. package/dist/nodes/core/ArrayUniformNode.mjs +0 -14
  402. package/dist/nodes/core/AttributeNode.js +0 -29
  403. package/dist/nodes/core/AttributeNode.mjs +0 -30
  404. package/dist/nodes/core/BypassNode.js +0 -21
  405. package/dist/nodes/core/BypassNode.mjs +0 -22
  406. package/dist/nodes/core/CodeNode.js +0 -27
  407. package/dist/nodes/core/CodeNode.mjs +0 -28
  408. package/dist/nodes/core/ConstNode.js +0 -13
  409. package/dist/nodes/core/ConstNode.mjs +0 -14
  410. package/dist/nodes/core/ContextNode.js +0 -21
  411. package/dist/nodes/core/ContextNode.mjs +0 -22
  412. package/dist/nodes/core/ExpressionNode.js +0 -18
  413. package/dist/nodes/core/ExpressionNode.mjs +0 -19
  414. package/dist/nodes/core/FunctionCallNode.js +0 -36
  415. package/dist/nodes/core/FunctionCallNode.mjs +0 -37
  416. package/dist/nodes/core/FunctionNode.js +0 -55
  417. package/dist/nodes/core/FunctionNode.mjs +0 -56
  418. package/dist/nodes/core/InputNode.js +0 -37
  419. package/dist/nodes/core/InputNode.mjs +0 -38
  420. package/dist/nodes/core/Node.js +0 -138
  421. package/dist/nodes/core/Node.mjs +0 -139
  422. package/dist/nodes/core/NodeAttribute.js +0 -9
  423. package/dist/nodes/core/NodeAttribute.mjs +0 -10
  424. package/dist/nodes/core/NodeBuilder.js +0 -402
  425. package/dist/nodes/core/NodeBuilder.mjs +0 -402
  426. package/dist/nodes/core/NodeCode.js +0 -10
  427. package/dist/nodes/core/NodeCode.mjs +0 -11
  428. package/dist/nodes/core/NodeFrame.js +0 -34
  429. package/dist/nodes/core/NodeFrame.mjs +0 -35
  430. package/dist/nodes/core/NodeFunctionInput.js +0 -12
  431. package/dist/nodes/core/NodeFunctionInput.mjs +0 -13
  432. package/dist/nodes/core/NodeKeywords.js +0 -43
  433. package/dist/nodes/core/NodeKeywords.mjs +0 -44
  434. package/dist/nodes/core/NodeUniform.js +0 -17
  435. package/dist/nodes/core/NodeUniform.mjs +0 -18
  436. package/dist/nodes/core/NodeUtils.js +0 -57
  437. package/dist/nodes/core/NodeUtils.mjs +0 -57
  438. package/dist/nodes/core/NodeVar.js +0 -9
  439. package/dist/nodes/core/NodeVar.mjs +0 -10
  440. package/dist/nodes/core/NodeVary.js +0 -9
  441. package/dist/nodes/core/NodeVary.mjs +0 -10
  442. package/dist/nodes/core/PropertyNode.js +0 -20
  443. package/dist/nodes/core/PropertyNode.mjs +0 -21
  444. package/dist/nodes/core/TempNode.js +0 -24
  445. package/dist/nodes/core/TempNode.mjs +0 -25
  446. package/dist/nodes/core/UniformNode.js +0 -22
  447. package/dist/nodes/core/UniformNode.mjs +0 -23
  448. package/dist/nodes/core/VarNode.js +0 -30
  449. package/dist/nodes/core/VarNode.mjs +0 -31
  450. package/dist/nodes/core/VaryNode.js +0 -29
  451. package/dist/nodes/core/VaryNode.mjs +0 -30
  452. package/dist/nodes/core/constants.js +0 -24
  453. package/dist/nodes/core/constants.mjs +0 -24
  454. package/dist/nodes/display/ColorSpaceNode.js +0 -62
  455. package/dist/nodes/display/ColorSpaceNode.mjs +0 -62
  456. package/dist/nodes/display/NormalMapNode.js +0 -53
  457. package/dist/nodes/display/NormalMapNode.mjs +0 -54
  458. package/dist/nodes/fog/FogNode.js +0 -14
  459. package/dist/nodes/fog/FogNode.mjs +0 -15
  460. package/dist/nodes/fog/FogRangeNode.js +0 -16
  461. package/dist/nodes/fog/FogRangeNode.mjs +0 -17
  462. package/dist/nodes/functions/BSDFs.js +0 -64
  463. package/dist/nodes/functions/BSDFs.mjs +0 -64
  464. package/dist/nodes/lights/LightContextNode.js +0 -34
  465. package/dist/nodes/lights/LightContextNode.mjs +0 -35
  466. package/dist/nodes/lights/LightNode.js +0 -57
  467. package/dist/nodes/lights/LightNode.mjs +0 -58
  468. package/dist/nodes/lights/LightsNode.js +0 -58
  469. package/dist/nodes/lights/LightsNode.mjs +0 -59
  470. package/dist/nodes/loaders/NodeLoader.js +0 -195
  471. package/dist/nodes/loaders/NodeLoader.mjs +0 -196
  472. package/dist/nodes/loaders/NodeMaterialLoader.js +0 -23
  473. package/dist/nodes/loaders/NodeMaterialLoader.mjs +0 -24
  474. package/dist/nodes/loaders/NodeObjectLoader.js +0 -39
  475. package/dist/nodes/loaders/NodeObjectLoader.mjs +0 -40
  476. package/dist/nodes/materials/LineBasicNodeMaterial.js +0 -26
  477. package/dist/nodes/materials/LineBasicNodeMaterial.mjs +0 -27
  478. package/dist/nodes/materials/Materials.js +0 -24
  479. package/dist/nodes/materials/Materials.mjs +0 -24
  480. package/dist/nodes/materials/MeshBasicNodeMaterial.js +0 -27
  481. package/dist/nodes/materials/MeshBasicNodeMaterial.mjs +0 -28
  482. package/dist/nodes/materials/MeshStandardNodeMaterial.js +0 -40
  483. package/dist/nodes/materials/MeshStandardNodeMaterial.mjs +0 -41
  484. package/dist/nodes/materials/NodeMaterial.js +0 -63
  485. package/dist/nodes/materials/NodeMaterial.mjs +0 -64
  486. package/dist/nodes/materials/PointsNodeMaterial.js +0 -29
  487. package/dist/nodes/materials/PointsNodeMaterial.mjs +0 -30
  488. package/dist/nodes/math/CondNode.js +0 -40
  489. package/dist/nodes/math/CondNode.mjs +0 -41
  490. package/dist/nodes/math/MathNode.js +0 -165
  491. package/dist/nodes/math/MathNode.mjs +0 -166
  492. package/dist/nodes/math/OperatorNode.js +0 -102
  493. package/dist/nodes/math/OperatorNode.mjs +0 -103
  494. package/dist/nodes/procedural/CheckerNode.js +0 -20
  495. package/dist/nodes/procedural/CheckerNode.mjs +0 -21
  496. package/dist/nodes/utils/ArrayElementNode.js +0 -18
  497. package/dist/nodes/utils/ArrayElementNode.mjs +0 -19
  498. package/dist/nodes/utils/ConvertNode.js +0 -24
  499. package/dist/nodes/utils/ConvertNode.mjs +0 -25
  500. package/dist/nodes/utils/JoinNode.js +0 -25
  501. package/dist/nodes/utils/JoinNode.mjs +0 -26
  502. package/dist/nodes/utils/MatcapUVNode.js +0 -15
  503. package/dist/nodes/utils/MatcapUVNode.mjs +0 -16
  504. package/dist/nodes/utils/OscNode.js +0 -49
  505. package/dist/nodes/utils/OscNode.mjs +0 -50
  506. package/dist/nodes/utils/SplitNode.js +0 -44
  507. package/dist/nodes/utils/SplitNode.mjs +0 -45
  508. package/dist/nodes/utils/SpriteSheetUVNode.js +0 -39
  509. package/dist/nodes/utils/SpriteSheetUVNode.mjs +0 -40
  510. package/dist/nodes/utils/TimerNode.js +0 -43
  511. package/dist/nodes/utils/TimerNode.mjs +0 -44
  512. package/dist/offscreen/jank.js +0 -26
  513. package/dist/offscreen/jank.mjs +0 -27
  514. package/dist/offscreen/offscreen.js +0 -8
  515. package/dist/offscreen/offscreen.mjs +0 -7
  516. package/dist/offscreen/scene.js +0 -68
  517. package/dist/offscreen/scene.mjs +0 -52
  518. package/dist/renderers/nodes/accessors/CameraNode.js +0 -62
  519. package/dist/renderers/nodes/accessors/CameraNode.mjs +0 -63
  520. package/dist/renderers/nodes/accessors/ModelNode.js +0 -60
  521. package/dist/renderers/nodes/accessors/ModelNode.mjs +0 -61
  522. package/dist/renderers/nodes/accessors/ModelViewProjectionNode.js +0 -20
  523. package/dist/renderers/nodes/accessors/ModelViewProjectionNode.mjs +0 -21
  524. package/dist/renderers/nodes/accessors/NormalNode.js +0 -60
  525. package/dist/renderers/nodes/accessors/NormalNode.mjs +0 -61
  526. package/dist/renderers/nodes/accessors/PositionNode.js +0 -29
  527. package/dist/renderers/nodes/accessors/PositionNode.mjs +0 -30
  528. package/dist/renderers/nodes/accessors/UVNode.js +0 -12
  529. package/dist/renderers/nodes/accessors/UVNode.mjs +0 -13
  530. package/dist/renderers/nodes/core/AttributeNode.js +0 -34
  531. package/dist/renderers/nodes/core/AttributeNode.mjs +0 -35
  532. package/dist/renderers/nodes/core/InputNode.js +0 -30
  533. package/dist/renderers/nodes/core/InputNode.mjs +0 -31
  534. package/dist/renderers/nodes/core/Node.js +0 -33
  535. package/dist/renderers/nodes/core/Node.mjs +0 -34
  536. package/dist/renderers/nodes/core/NodeAttribute.js +0 -9
  537. package/dist/renderers/nodes/core/NodeAttribute.mjs +0 -10
  538. package/dist/renderers/nodes/core/NodeBuilder.js +0 -248
  539. package/dist/renderers/nodes/core/NodeBuilder.mjs +0 -249
  540. package/dist/renderers/nodes/core/NodeFrame.js +0 -34
  541. package/dist/renderers/nodes/core/NodeFrame.mjs +0 -35
  542. package/dist/renderers/nodes/core/NodeSlot.js +0 -9
  543. package/dist/renderers/nodes/core/NodeSlot.mjs +0 -10
  544. package/dist/renderers/nodes/core/NodeUniform.js +0 -17
  545. package/dist/renderers/nodes/core/NodeUniform.mjs +0 -18
  546. package/dist/renderers/nodes/core/NodeVary.js +0 -10
  547. package/dist/renderers/nodes/core/NodeVary.mjs +0 -11
  548. package/dist/renderers/nodes/core/VaryNode.js +0 -21
  549. package/dist/renderers/nodes/core/VaryNode.mjs +0 -22
  550. package/dist/renderers/nodes/core/constants.js +0 -22
  551. package/dist/renderers/nodes/core/constants.mjs +0 -22
  552. package/dist/renderers/nodes/inputs/ColorNode.js +0 -10
  553. package/dist/renderers/nodes/inputs/ColorNode.mjs +0 -11
  554. package/dist/renderers/nodes/inputs/FloatNode.js +0 -10
  555. package/dist/renderers/nodes/inputs/FloatNode.mjs +0 -11
  556. package/dist/renderers/nodes/inputs/Matrix3Node.js +0 -11
  557. package/dist/renderers/nodes/inputs/Matrix3Node.mjs +0 -12
  558. package/dist/renderers/nodes/inputs/Matrix4Node.js +0 -11
  559. package/dist/renderers/nodes/inputs/Matrix4Node.mjs +0 -12
  560. package/dist/renderers/nodes/inputs/TextureNode.js +0 -19
  561. package/dist/renderers/nodes/inputs/TextureNode.mjs +0 -20
  562. package/dist/renderers/nodes/inputs/Vector2Node.js +0 -10
  563. package/dist/renderers/nodes/inputs/Vector2Node.mjs +0 -11
  564. package/dist/renderers/nodes/inputs/Vector3Node.js +0 -11
  565. package/dist/renderers/nodes/inputs/Vector3Node.mjs +0 -12
  566. package/dist/renderers/nodes/inputs/Vector4Node.js +0 -11
  567. package/dist/renderers/nodes/inputs/Vector4Node.mjs +0 -12
  568. package/dist/renderers/nodes/math/MathNode.js +0 -54
  569. package/dist/renderers/nodes/math/MathNode.mjs +0 -55
  570. package/dist/renderers/nodes/math/OperatorNode.js +0 -41
  571. package/dist/renderers/nodes/math/OperatorNode.mjs +0 -42
  572. package/dist/renderers/nodes/utils/SwitchNode.js +0 -19
  573. package/dist/renderers/nodes/utils/SwitchNode.mjs +0 -20
  574. package/dist/renderers/nodes/utils/TimerNode.js +0 -13
  575. package/dist/renderers/nodes/utils/TimerNode.mjs +0 -14
  576. package/dist/renderers/webgpu/WebGPU.js +0 -23
  577. package/dist/renderers/webgpu/WebGPU.mjs +0 -24
  578. package/dist/renderers/webgpu/WebGPUAttributes.js +0 -68
  579. package/dist/renderers/webgpu/WebGPUAttributes.mjs +0 -69
  580. package/dist/renderers/webgpu/WebGPUBackground.js +0 -60
  581. package/dist/renderers/webgpu/WebGPUBackground.mjs +0 -61
  582. package/dist/renderers/webgpu/WebGPUBinding.js +0 -13
  583. package/dist/renderers/webgpu/WebGPUBinding.mjs +0 -14
  584. package/dist/renderers/webgpu/WebGPUBindings.js +0 -154
  585. package/dist/renderers/webgpu/WebGPUBindings.mjs +0 -155
  586. package/dist/renderers/webgpu/WebGPUComputePipelines.js +0 -43
  587. package/dist/renderers/webgpu/WebGPUComputePipelines.mjs +0 -44
  588. package/dist/renderers/webgpu/WebGPUGeometries.js +0 -40
  589. package/dist/renderers/webgpu/WebGPUGeometries.mjs +0 -41
  590. package/dist/renderers/webgpu/WebGPUInfo.js +0 -45
  591. package/dist/renderers/webgpu/WebGPUInfo.mjs +0 -46
  592. package/dist/renderers/webgpu/WebGPUObjects.js +0 -24
  593. package/dist/renderers/webgpu/WebGPUObjects.mjs +0 -25
  594. package/dist/renderers/webgpu/WebGPUProperties.js +0 -21
  595. package/dist/renderers/webgpu/WebGPUProperties.mjs +0 -22
  596. package/dist/renderers/webgpu/WebGPURenderLists.js +0 -118
  597. package/dist/renderers/webgpu/WebGPURenderLists.mjs +0 -119
  598. package/dist/renderers/webgpu/WebGPURenderPipelines.js +0 -545
  599. package/dist/renderers/webgpu/WebGPURenderPipelines.mjs +0 -546
  600. package/dist/renderers/webgpu/WebGPURenderer.js +0 -596
  601. package/dist/renderers/webgpu/WebGPURenderer.mjs +0 -575
  602. package/dist/renderers/webgpu/WebGPUSampledTexture.js +0 -40
  603. package/dist/renderers/webgpu/WebGPUSampledTexture.mjs +0 -40
  604. package/dist/renderers/webgpu/WebGPUSampler.js +0 -14
  605. package/dist/renderers/webgpu/WebGPUSampler.mjs +0 -15
  606. package/dist/renderers/webgpu/WebGPUStorageBuffer.js +0 -14
  607. package/dist/renderers/webgpu/WebGPUStorageBuffer.mjs +0 -15
  608. package/dist/renderers/webgpu/WebGPUTextureRenderer.js +0 -22
  609. package/dist/renderers/webgpu/WebGPUTextureRenderer.mjs +0 -23
  610. package/dist/renderers/webgpu/WebGPUTextureUtils.js +0 -97
  611. package/dist/renderers/webgpu/WebGPUTextureUtils.mjs +0 -98
  612. package/dist/renderers/webgpu/WebGPUTextures.js +0 -483
  613. package/dist/renderers/webgpu/WebGPUTextures.mjs +0 -484
  614. package/dist/renderers/webgpu/WebGPUUniform.js +0 -81
  615. package/dist/renderers/webgpu/WebGPUUniform.mjs +0 -81
  616. package/dist/renderers/webgpu/WebGPUUniformsGroup.js +0 -175
  617. package/dist/renderers/webgpu/WebGPUUniformsGroup.mjs +0 -176
  618. package/dist/renderers/webgpu/constants.js +0 -241
  619. package/dist/renderers/webgpu/constants.mjs +0 -241
  620. package/dist/renderers/webgpu/nodes/ShaderLib.js +0 -41
  621. package/dist/renderers/webgpu/nodes/ShaderLib.mjs +0 -42
  622. package/dist/renderers/webgpu/nodes/WebGPUNodeBuilder.js +0 -164
  623. package/dist/renderers/webgpu/nodes/WebGPUNodeBuilder.mjs +0 -165
  624. package/dist/renderers/webgpu/nodes/WebGPUNodeUniform.js +0 -73
  625. package/dist/renderers/webgpu/nodes/WebGPUNodeUniform.mjs +0 -73
  626. package/dist/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.js +0 -14
  627. package/dist/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.mjs +0 -15
  628. package/dist/renderers/webgpu/nodes/WebGPUNodes.js +0 -39
  629. package/dist/renderers/webgpu/nodes/WebGPUNodes.mjs +0 -40
@@ -1,118 +1,119 @@
1
- import { Matrix3, Matrix4, Vector3 } from "three";
1
+ import { Matrix3, Vector3, Matrix4 } from "three";
2
2
  import { VolumeSlice } from "./VolumeSlice.mjs";
3
- var Volume = function(xLength, yLength, zLength, type, arrayBuffer) {
4
- if (arguments.length > 0) {
5
- this.xLength = Number(xLength) || 1;
6
- this.yLength = Number(yLength) || 1;
7
- this.zLength = Number(zLength) || 1;
8
- switch (type) {
9
- case "Uint8":
10
- case "uint8":
11
- case "uchar":
12
- case "unsigned char":
13
- case "uint8_t":
14
- this.data = new Uint8Array(arrayBuffer);
15
- break;
16
- case "Int8":
17
- case "int8":
18
- case "signed char":
19
- case "int8_t":
20
- this.data = new Int8Array(arrayBuffer);
21
- break;
22
- case "Int16":
23
- case "int16":
24
- case "short":
25
- case "short int":
26
- case "signed short":
27
- case "signed short int":
28
- case "int16_t":
29
- this.data = new Int16Array(arrayBuffer);
30
- break;
31
- case "Uint16":
32
- case "uint16":
33
- case "ushort":
34
- case "unsigned short":
35
- case "unsigned short int":
36
- case "uint16_t":
37
- this.data = new Uint16Array(arrayBuffer);
38
- break;
39
- case "Int32":
40
- case "int32":
41
- case "int":
42
- case "signed int":
43
- case "int32_t":
44
- this.data = new Int32Array(arrayBuffer);
45
- break;
46
- case "Uint32":
47
- case "uint32":
48
- case "uint":
49
- case "unsigned int":
50
- case "uint32_t":
51
- this.data = new Uint32Array(arrayBuffer);
52
- break;
53
- case "longlong":
54
- case "long long":
55
- case "long long int":
56
- case "signed long long":
57
- case "signed long long int":
58
- case "int64":
59
- case "int64_t":
60
- case "ulonglong":
61
- case "unsigned long long":
62
- case "unsigned long long int":
63
- case "uint64":
64
- case "uint64_t":
65
- throw "Error in Volume constructor : this type is not supported in JavaScript";
66
- break;
67
- case "Float32":
68
- case "float32":
69
- case "float":
70
- this.data = new Float32Array(arrayBuffer);
71
- break;
72
- case "Float64":
73
- case "float64":
74
- case "double":
75
- this.data = new Float64Array(arrayBuffer);
76
- break;
77
- default:
78
- this.data = new Uint8Array(arrayBuffer);
79
- }
80
- if (this.data.length !== this.xLength * this.yLength * this.zLength) {
81
- throw "Error in Volume constructor, lengths are not matching arrayBuffer size";
3
+ class Volume {
4
+ constructor(xLength, yLength, zLength, type, arrayBuffer) {
5
+ if (xLength !== void 0) {
6
+ this.xLength = Number(xLength) || 1;
7
+ this.yLength = Number(yLength) || 1;
8
+ this.zLength = Number(zLength) || 1;
9
+ this.axisOrder = ["x", "y", "z"];
10
+ switch (type) {
11
+ case "Uint8":
12
+ case "uint8":
13
+ case "uchar":
14
+ case "unsigned char":
15
+ case "uint8_t":
16
+ this.data = new Uint8Array(arrayBuffer);
17
+ break;
18
+ case "Int8":
19
+ case "int8":
20
+ case "signed char":
21
+ case "int8_t":
22
+ this.data = new Int8Array(arrayBuffer);
23
+ break;
24
+ case "Int16":
25
+ case "int16":
26
+ case "short":
27
+ case "short int":
28
+ case "signed short":
29
+ case "signed short int":
30
+ case "int16_t":
31
+ this.data = new Int16Array(arrayBuffer);
32
+ break;
33
+ case "Uint16":
34
+ case "uint16":
35
+ case "ushort":
36
+ case "unsigned short":
37
+ case "unsigned short int":
38
+ case "uint16_t":
39
+ this.data = new Uint16Array(arrayBuffer);
40
+ break;
41
+ case "Int32":
42
+ case "int32":
43
+ case "int":
44
+ case "signed int":
45
+ case "int32_t":
46
+ this.data = new Int32Array(arrayBuffer);
47
+ break;
48
+ case "Uint32":
49
+ case "uint32":
50
+ case "uint":
51
+ case "unsigned int":
52
+ case "uint32_t":
53
+ this.data = new Uint32Array(arrayBuffer);
54
+ break;
55
+ case "longlong":
56
+ case "long long":
57
+ case "long long int":
58
+ case "signed long long":
59
+ case "signed long long int":
60
+ case "int64":
61
+ case "int64_t":
62
+ case "ulonglong":
63
+ case "unsigned long long":
64
+ case "unsigned long long int":
65
+ case "uint64":
66
+ case "uint64_t":
67
+ throw new Error("Error in Volume constructor : this type is not supported in JavaScript");
68
+ break;
69
+ case "Float32":
70
+ case "float32":
71
+ case "float":
72
+ this.data = new Float32Array(arrayBuffer);
73
+ break;
74
+ case "Float64":
75
+ case "float64":
76
+ case "double":
77
+ this.data = new Float64Array(arrayBuffer);
78
+ break;
79
+ default:
80
+ this.data = new Uint8Array(arrayBuffer);
81
+ }
82
+ if (this.data.length !== this.xLength * this.yLength * this.zLength) {
83
+ throw new Error("Error in Volume constructor, lengths are not matching arrayBuffer size");
84
+ }
82
85
  }
86
+ this.spacing = [1, 1, 1];
87
+ this.offset = [0, 0, 0];
88
+ this.matrix = new Matrix3();
89
+ this.matrix.identity();
90
+ let lowerThreshold = -Infinity;
91
+ Object.defineProperty(this, "lowerThreshold", {
92
+ get: function() {
93
+ return lowerThreshold;
94
+ },
95
+ set: function(value) {
96
+ lowerThreshold = value;
97
+ this.sliceList.forEach(function(slice) {
98
+ slice.geometryNeedsUpdate = true;
99
+ });
100
+ }
101
+ });
102
+ let upperThreshold = Infinity;
103
+ Object.defineProperty(this, "upperThreshold", {
104
+ get: function() {
105
+ return upperThreshold;
106
+ },
107
+ set: function(value) {
108
+ upperThreshold = value;
109
+ this.sliceList.forEach(function(slice) {
110
+ slice.geometryNeedsUpdate = true;
111
+ });
112
+ }
113
+ });
114
+ this.sliceList = [];
115
+ this.segmentation = false;
83
116
  }
84
- this.spacing = [1, 1, 1];
85
- this.offset = [0, 0, 0];
86
- this.matrix = new Matrix3();
87
- this.matrix.identity();
88
- var lowerThreshold = -Infinity;
89
- Object.defineProperty(this, "lowerThreshold", {
90
- get: function() {
91
- return lowerThreshold;
92
- },
93
- set: function(value) {
94
- lowerThreshold = value;
95
- this.sliceList.forEach(function(slice) {
96
- slice.geometryNeedsUpdate = true;
97
- });
98
- }
99
- });
100
- var upperThreshold = Infinity;
101
- Object.defineProperty(this, "upperThreshold", {
102
- get: function() {
103
- return upperThreshold;
104
- },
105
- set: function(value) {
106
- upperThreshold = value;
107
- this.sliceList.forEach(function(slice) {
108
- slice.geometryNeedsUpdate = true;
109
- });
110
- }
111
- });
112
- this.sliceList = [];
113
- };
114
- Volume.prototype = {
115
- constructor: Volume,
116
117
  /**
117
118
  * @member {Function} getData Shortcut for data[access(i,j,k)]
118
119
  * @memberof Volume
@@ -121,9 +122,9 @@ Volume.prototype = {
121
122
  * @param {number} k Third coordinate
122
123
  * @returns {number} value in the data array
123
124
  */
124
- getData: function(i, j, k) {
125
+ getData(i, j, k) {
125
126
  return this.data[k * this.xLength * this.yLength + j * this.xLength + i];
126
- },
127
+ }
127
128
  /**
128
129
  * @member {Function} access compute the index in the data array corresponding to the given coordinates in IJK system
129
130
  * @memberof Volume
@@ -132,21 +133,21 @@ Volume.prototype = {
132
133
  * @param {number} k Third coordinate
133
134
  * @returns {number} index
134
135
  */
135
- access: function(i, j, k) {
136
+ access(i, j, k) {
136
137
  return k * this.xLength * this.yLength + j * this.xLength + i;
137
- },
138
+ }
138
139
  /**
139
140
  * @member {Function} reverseAccess Retrieve the IJK coordinates of the voxel corresponding of the given index in the data
140
141
  * @memberof Volume
141
142
  * @param {number} index index of the voxel
142
143
  * @returns {Array} [x,y,z]
143
144
  */
144
- reverseAccess: function(index) {
145
- var z = Math.floor(index / (this.yLength * this.xLength));
146
- var y = Math.floor((index - z * this.yLength * this.xLength) / this.xLength);
147
- var x = index - z * this.yLength * this.xLength - y * this.xLength;
145
+ reverseAccess(index) {
146
+ const z = Math.floor(index / (this.yLength * this.xLength));
147
+ const y = Math.floor((index - z * this.yLength * this.xLength) / this.xLength);
148
+ const x = index - z * this.yLength * this.xLength - y * this.xLength;
148
149
  return [x, y, z];
149
- },
150
+ }
150
151
  /**
151
152
  * @member {Function} map Apply a function to all the voxels, be careful, the value will be replaced
152
153
  * @memberof Volume
@@ -157,14 +158,14 @@ Volume.prototype = {
157
158
  * @param {Object} context You can specify a context in which call the function, default if this Volume
158
159
  * @returns {Volume} this
159
160
  */
160
- map: function(functionToMap, context) {
161
- var length = this.data.length;
161
+ map(functionToMap, context) {
162
+ const length = this.data.length;
162
163
  context = context || this;
163
164
  for (let i = 0; i < length; i++) {
164
165
  this.data[i] = functionToMap.call(context, this.data[i], i, this.data);
165
166
  }
166
167
  return this;
167
- },
168
+ }
168
169
  /**
169
170
  * @member {Function} extractPerpendicularPlane Compute the orientation of the slice and returns all the information relative to the geometry such as sliceAccess, the plane matrix (orientation and position in RAS coordinate) and the dimensions of the plane in both coordinate system.
170
171
  * @memberof Volume
@@ -172,17 +173,17 @@ Volume.prototype = {
172
173
  * @param {number} index the index of the slice
173
174
  * @returns {Object} an object containing all the usefull information on the geometry of the slice
174
175
  */
175
- extractPerpendicularPlane: function(axis, RASIndex) {
176
- var iLength, jLength, sliceAccess, planeMatrix = new Matrix4().identity(), volume = this, planeWidth, planeHeight, firstSpacing, secondSpacing, positionOffset, IJKIndex;
177
- var axisInIJK = new Vector3(), firstDirection = new Vector3(), secondDirection = new Vector3();
178
- var dimensions = new Vector3(this.xLength, this.yLength, this.zLength);
176
+ extractPerpendicularPlane(axis, RASIndex) {
177
+ let firstSpacing, secondSpacing, positionOffset, IJKIndex;
178
+ const axisInIJK = new Vector3(), firstDirection = new Vector3(), secondDirection = new Vector3(), planeMatrix = new Matrix4().identity(), volume = this;
179
+ const dimensions = new Vector3(this.xLength, this.yLength, this.zLength);
179
180
  switch (axis) {
180
181
  case "x":
181
182
  axisInIJK.set(1, 0, 0);
182
183
  firstDirection.set(0, 0, -1);
183
184
  secondDirection.set(0, -1, 0);
184
- firstSpacing = this.spacing[2];
185
- secondSpacing = this.spacing[1];
185
+ firstSpacing = this.spacing[this.axisOrder.indexOf("z")];
186
+ secondSpacing = this.spacing[this.axisOrder.indexOf("y")];
186
187
  IJKIndex = new Vector3(RASIndex, 0, 0);
187
188
  planeMatrix.multiply(new Matrix4().makeRotationY(Math.PI / 2));
188
189
  positionOffset = (volume.RASDimensions[0] - 1) / 2;
@@ -192,8 +193,8 @@ Volume.prototype = {
192
193
  axisInIJK.set(0, 1, 0);
193
194
  firstDirection.set(1, 0, 0);
194
195
  secondDirection.set(0, 0, 1);
195
- firstSpacing = this.spacing[0];
196
- secondSpacing = this.spacing[2];
196
+ firstSpacing = this.spacing[this.axisOrder.indexOf("x")];
197
+ secondSpacing = this.spacing[this.axisOrder.indexOf("z")];
197
198
  IJKIndex = new Vector3(0, RASIndex, 0);
198
199
  planeMatrix.multiply(new Matrix4().makeRotationX(-Math.PI / 2));
199
200
  positionOffset = (volume.RASDimensions[1] - 1) / 2;
@@ -204,43 +205,45 @@ Volume.prototype = {
204
205
  axisInIJK.set(0, 0, 1);
205
206
  firstDirection.set(1, 0, 0);
206
207
  secondDirection.set(0, -1, 0);
207
- firstSpacing = this.spacing[0];
208
- secondSpacing = this.spacing[1];
208
+ firstSpacing = this.spacing[this.axisOrder.indexOf("x")];
209
+ secondSpacing = this.spacing[this.axisOrder.indexOf("y")];
209
210
  IJKIndex = new Vector3(0, 0, RASIndex);
210
211
  positionOffset = (volume.RASDimensions[2] - 1) / 2;
211
212
  planeMatrix.setPosition(new Vector3(0, 0, RASIndex - positionOffset));
212
213
  break;
213
214
  }
214
- firstDirection.applyMatrix4(volume.inverseMatrix).normalize();
215
- firstDirection.argVar = "i";
216
- secondDirection.applyMatrix4(volume.inverseMatrix).normalize();
217
- secondDirection.argVar = "j";
218
- axisInIJK.applyMatrix4(volume.inverseMatrix).normalize();
215
+ let iLength, jLength;
216
+ if (!this.segmentation) {
217
+ firstDirection.applyMatrix4(volume.inverseMatrix).normalize();
218
+ secondDirection.applyMatrix4(volume.inverseMatrix).normalize();
219
+ axisInIJK.applyMatrix4(volume.inverseMatrix).normalize();
220
+ }
221
+ firstDirection.arglet = "i";
222
+ secondDirection.arglet = "j";
219
223
  iLength = Math.floor(Math.abs(firstDirection.dot(dimensions)));
220
224
  jLength = Math.floor(Math.abs(secondDirection.dot(dimensions)));
221
- planeWidth = Math.abs(iLength * firstSpacing);
222
- planeHeight = Math.abs(jLength * secondSpacing);
225
+ const planeWidth = Math.abs(iLength * firstSpacing);
226
+ const planeHeight = Math.abs(jLength * secondSpacing);
223
227
  IJKIndex = Math.abs(Math.round(IJKIndex.applyMatrix4(volume.inverseMatrix).dot(axisInIJK)));
224
- var base = [new Vector3(1, 0, 0), new Vector3(0, 1, 0), new Vector3(0, 0, 1)];
225
- var iDirection = [firstDirection, secondDirection, axisInIJK].find(function(x) {
228
+ const base = [new Vector3(1, 0, 0), new Vector3(0, 1, 0), new Vector3(0, 0, 1)];
229
+ const iDirection = [firstDirection, secondDirection, axisInIJK].find(function(x) {
226
230
  return Math.abs(x.dot(base[0])) > 0.9;
227
231
  });
228
- var jDirection = [firstDirection, secondDirection, axisInIJK].find(function(x) {
232
+ const jDirection = [firstDirection, secondDirection, axisInIJK].find(function(x) {
229
233
  return Math.abs(x.dot(base[1])) > 0.9;
230
234
  });
231
- var kDirection = [firstDirection, secondDirection, axisInIJK].find(function(x) {
235
+ const kDirection = [firstDirection, secondDirection, axisInIJK].find(function(x) {
232
236
  return Math.abs(x.dot(base[2])) > 0.9;
233
237
  });
234
- sliceAccess = function(i, j) {
235
- var accessI, accessJ, accessK;
236
- var si = iDirection === axisInIJK ? IJKIndex : iDirection.argVar === "i" ? i : j;
237
- var sj = jDirection === axisInIJK ? IJKIndex : jDirection.argVar === "i" ? i : j;
238
- var sk = kDirection === axisInIJK ? IJKIndex : kDirection.argVar === "i" ? i : j;
239
- var accessI = iDirection.dot(base[0]) > 0 ? si : volume.xLength - 1 - si;
240
- var accessJ = jDirection.dot(base[1]) > 0 ? sj : volume.yLength - 1 - sj;
241
- var accessK = kDirection.dot(base[2]) > 0 ? sk : volume.zLength - 1 - sk;
238
+ function sliceAccess(i, j) {
239
+ const si = iDirection === axisInIJK ? IJKIndex : iDirection.arglet === "i" ? i : j;
240
+ const sj = jDirection === axisInIJK ? IJKIndex : jDirection.arglet === "i" ? i : j;
241
+ const sk = kDirection === axisInIJK ? IJKIndex : kDirection.arglet === "i" ? i : j;
242
+ const accessI = iDirection.dot(base[0]) > 0 ? si : volume.xLength - 1 - si;
243
+ const accessJ = jDirection.dot(base[1]) > 0 ? sj : volume.yLength - 1 - sj;
244
+ const accessK = kDirection.dot(base[2]) > 0 ? sk : volume.zLength - 1 - sk;
242
245
  return volume.access(accessI, accessJ, accessK);
243
- };
246
+ }
244
247
  return {
245
248
  iLength,
246
249
  jLength,
@@ -249,7 +252,7 @@ Volume.prototype = {
249
252
  planeWidth,
250
253
  planeHeight
251
254
  };
252
- },
255
+ }
253
256
  /**
254
257
  * @member {Function} extractSlice Returns a slice corresponding to the given axis and index
255
258
  * The coordinate are given in the Right Anterior Superior coordinate format
@@ -258,36 +261,36 @@ Volume.prototype = {
258
261
  * @param {number} index the index of the slice
259
262
  * @returns {VolumeSlice} the extracted slice
260
263
  */
261
- extractSlice: function(axis, index) {
262
- var slice = new VolumeSlice(this, index, axis);
264
+ extractSlice(axis, index) {
265
+ const slice = new VolumeSlice(this, index, axis);
263
266
  this.sliceList.push(slice);
264
267
  return slice;
265
- },
268
+ }
266
269
  /**
267
270
  * @member {Function} repaintAllSlices Call repaint on all the slices extracted from this volume
268
271
  * @see VolumeSlice.repaint
269
272
  * @memberof Volume
270
273
  * @returns {Volume} this
271
274
  */
272
- repaintAllSlices: function() {
275
+ repaintAllSlices() {
273
276
  this.sliceList.forEach(function(slice) {
274
277
  slice.repaint();
275
278
  });
276
279
  return this;
277
- },
280
+ }
278
281
  /**
279
282
  * @member {Function} computeMinMax Compute the minimum and the maximum of the data in the volume
280
283
  * @memberof Volume
281
284
  * @returns {Array} [min,max]
282
285
  */
283
- computeMinMax: function() {
284
- var min = Infinity;
285
- var max = -Infinity;
286
- var datasize = this.data.length;
287
- var i = 0;
286
+ computeMinMax() {
287
+ let min = Infinity;
288
+ let max = -Infinity;
289
+ const datasize = this.data.length;
290
+ let i = 0;
288
291
  for (i = 0; i < datasize; i++) {
289
292
  if (!isNaN(this.data[i])) {
290
- var value = this.data[i];
293
+ const value = this.data[i];
291
294
  min = Math.min(min, value);
292
295
  max = Math.max(max, value);
293
296
  }
@@ -296,7 +299,7 @@ Volume.prototype = {
296
299
  this.max = max;
297
300
  return [min, max];
298
301
  }
299
- };
302
+ }
300
303
  export {
301
304
  Volume
302
305
  };
@@ -1,62 +1,61 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const THREE = require("three");
4
- var VolumeSlice = function(volume, index, axis) {
5
- var slice = this;
6
- this.volume = volume;
7
- index = index || 0;
8
- Object.defineProperty(this, "index", {
9
- get: function() {
10
- return index;
11
- },
12
- set: function(value) {
13
- index = value;
14
- slice.geometryNeedsUpdate = true;
15
- return index;
16
- }
17
- });
18
- this.axis = axis || "z";
19
- this.canvas = document.createElement("canvas");
20
- this.canvasBuffer = document.createElement("canvas");
21
- this.updateGeometry();
22
- var canvasMap = new THREE.Texture(this.canvas);
23
- canvasMap.minFilter = THREE.LinearFilter;
24
- canvasMap.wrapS = canvasMap.wrapT = THREE.ClampToEdgeWrapping;
25
- var material = new THREE.MeshBasicMaterial({
26
- map: canvasMap,
27
- side: THREE.DoubleSide,
28
- transparent: true
29
- });
30
- this.mesh = new THREE.Mesh(this.geometry, material);
31
- this.mesh.matrixAutoUpdate = false;
32
- this.geometryNeedsUpdate = true;
33
- this.repaint();
34
- };
35
- VolumeSlice.prototype = {
36
- constructor: VolumeSlice,
4
+ class VolumeSlice {
5
+ constructor(volume, index, axis) {
6
+ const slice = this;
7
+ this.volume = volume;
8
+ index = index || 0;
9
+ Object.defineProperty(this, "index", {
10
+ get: function() {
11
+ return index;
12
+ },
13
+ set: function(value) {
14
+ index = value;
15
+ slice.geometryNeedsUpdate = true;
16
+ return index;
17
+ }
18
+ });
19
+ this.axis = axis || "z";
20
+ this.canvas = document.createElement("canvas");
21
+ this.canvasBuffer = document.createElement("canvas");
22
+ this.updateGeometry();
23
+ const canvasMap = new THREE.Texture(this.canvas);
24
+ canvasMap.minFilter = THREE.LinearFilter;
25
+ canvasMap.wrapS = canvasMap.wrapT = THREE.ClampToEdgeWrapping;
26
+ if ("colorSpace" in canvasMap)
27
+ canvasMap.colorSpace = "srgb";
28
+ else
29
+ canvasMap.encoding = 3001;
30
+ const material = new THREE.MeshBasicMaterial({ map: canvasMap, side: THREE.DoubleSide, transparent: true });
31
+ this.mesh = new THREE.Mesh(this.geometry, material);
32
+ this.mesh.matrixAutoUpdate = false;
33
+ this.geometryNeedsUpdate = true;
34
+ this.repaint();
35
+ }
37
36
  /**
38
37
  * @member {Function} repaint Refresh the texture and the geometry if geometryNeedsUpdate is set to true
39
38
  * @memberof VolumeSlice
40
39
  */
41
- repaint: function() {
40
+ repaint() {
42
41
  if (this.geometryNeedsUpdate) {
43
42
  this.updateGeometry();
44
43
  }
45
- var iLength = this.iLength, jLength = this.jLength, sliceAccess = this.sliceAccess, volume = this.volume, canvas = this.canvasBuffer, ctx = this.ctxBuffer;
46
- var imgData = ctx.getImageData(0, 0, iLength, jLength);
47
- var data = imgData.data;
48
- var volumeData = volume.data;
49
- var upperThreshold = volume.upperThreshold;
50
- var lowerThreshold = volume.lowerThreshold;
51
- var windowLow = volume.windowLow;
52
- var windowHigh = volume.windowHigh;
53
- var pixelCount = 0;
44
+ const iLength = this.iLength, jLength = this.jLength, sliceAccess = this.sliceAccess, volume = this.volume, canvas = this.canvasBuffer, ctx = this.ctxBuffer;
45
+ const imgData = ctx.getImageData(0, 0, iLength, jLength);
46
+ const data = imgData.data;
47
+ const volumeData = volume.data;
48
+ const upperThreshold = volume.upperThreshold;
49
+ const lowerThreshold = volume.lowerThreshold;
50
+ const windowLow = volume.windowLow;
51
+ const windowHigh = volume.windowHigh;
52
+ let pixelCount = 0;
54
53
  if (volume.dataType === "label") {
55
54
  for (let j = 0; j < jLength; j++) {
56
55
  for (let i = 0; i < iLength; i++) {
57
- var label = volumeData[sliceAccess(i, j)];
56
+ let label = volumeData[sliceAccess(i, j)];
58
57
  label = label >= this.colorMap.length ? label % this.colorMap.length + 1 : label;
59
- var color = this.colorMap[label];
58
+ const color = this.colorMap[label];
60
59
  data[4 * pixelCount] = color >> 24 & 255;
61
60
  data[4 * pixelCount + 1] = color >> 16 & 255;
62
61
  data[4 * pixelCount + 2] = color >> 8 & 255;
@@ -67,8 +66,8 @@ VolumeSlice.prototype = {
67
66
  } else {
68
67
  for (let j = 0; j < jLength; j++) {
69
68
  for (let i = 0; i < iLength; i++) {
70
- var value = volumeData[sliceAccess(i, j)];
71
- var alpha = 255;
69
+ let value = volumeData[sliceAccess(i, j)];
70
+ let alpha = 255;
72
71
  alpha = upperThreshold >= value ? lowerThreshold <= value ? alpha : 0 : 0;
73
72
  value = Math.floor(255 * (value - windowLow) / (windowHigh - windowLow));
74
73
  value = value > 255 ? 255 : value < 0 ? 0 : value | 0;
@@ -83,14 +82,14 @@ VolumeSlice.prototype = {
83
82
  ctx.putImageData(imgData, 0, 0);
84
83
  this.ctx.drawImage(canvas, 0, 0, iLength, jLength, 0, 0, this.canvas.width, this.canvas.height);
85
84
  this.mesh.material.map.needsUpdate = true;
86
- },
85
+ }
87
86
  /**
88
87
  * @member {Function} Refresh the geometry according to axis and index
89
88
  * @see Volume.extractPerpendicularPlane
90
89
  * @memberof VolumeSlice
91
90
  */
92
- updateGeometry: function() {
93
- var extracted = this.volume.extractPerpendicularPlane(this.axis, this.index);
91
+ updateGeometry() {
92
+ const extracted = this.volume.extractPerpendicularPlane(this.axis, this.index);
94
93
  this.sliceAccess = extracted.sliceAccess;
95
94
  this.jLength = extracted.jLength;
96
95
  this.iLength = extracted.iLength;
@@ -111,5 +110,5 @@ VolumeSlice.prototype = {
111
110
  }
112
111
  this.geometryNeedsUpdate = false;
113
112
  }
114
- };
113
+ }
115
114
  exports.VolumeSlice = VolumeSlice;