three-stdlib 2.15.2 → 2.16.1

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 (1218) hide show
  1. package/BufferGeometryUtils-1a7a235c.js +655 -0
  2. package/BufferGeometryUtils-971dfde3.js +1 -0
  3. package/Nodes-4f766d71.js +471 -0
  4. package/Nodes-9aa16d74.js +1 -0
  5. package/animation/AnimationClipCreator.cjs.js +1 -0
  6. package/animation/AnimationClipCreator.js +52 -32
  7. package/animation/CCDIKSolver.cjs.js +1 -0
  8. package/animation/CCDIKSolver.js +275 -207
  9. package/animation/MMDAnimationHelper.cjs.js +1 -0
  10. package/animation/MMDAnimationHelper.js +341 -150
  11. package/animation/MMDPhysics.cjs.js +1 -0
  12. package/animation/MMDPhysics.js +361 -154
  13. package/cameras/CinematicCamera.cjs.js +1 -0
  14. package/cameras/CinematicCamera.js +77 -67
  15. package/controls/ArcballControls.cjs.js +1 -0
  16. package/controls/ArcballControls.js +1449 -544
  17. package/controls/DeviceOrientationControls.cjs.js +1 -0
  18. package/controls/DeviceOrientationControls.js +97 -52
  19. package/controls/DragControls.cjs.js +1 -0
  20. package/controls/DragControls.js +187 -85
  21. package/controls/FirstPersonControls.cjs.js +1 -0
  22. package/controls/FirstPersonControls.js +193 -123
  23. package/controls/FlyControls.cjs.js +1 -0
  24. package/controls/FlyControls.js +152 -82
  25. package/controls/OrbitControls.cjs.js +1 -0
  26. package/controls/OrbitControls.js +481 -232
  27. package/controls/PointerLockControls.cjs.js +1 -0
  28. package/controls/PointerLockControls.js +99 -63
  29. package/controls/TrackballControls.cjs.js +1 -0
  30. package/controls/TrackballControls.js +383 -211
  31. package/controls/TransformControls.cjs.js +1 -0
  32. package/controls/TransformControls.js +782 -575
  33. package/controls/experimental/CameraControls.cjs.js +1 -0
  34. package/controls/experimental/CameraControls.js +609 -329
  35. package/csm/CSM.cjs.js +1 -0
  36. package/csm/CSM.js +108 -47
  37. package/csm/CSMFrustum.cjs.js +1 -0
  38. package/csm/CSMFrustum.js +29 -14
  39. package/csm/CSMHelper.cjs.js +1 -0
  40. package/csm/CSMHelper.js +34 -20
  41. package/csm/CSMShader.cjs.js +1 -0
  42. package/csm/CSMShader.js +11 -7
  43. package/curves/CurveExtras.cjs.js +1 -0
  44. package/curves/CurveExtras.js +115 -73
  45. package/curves/NURBSCurve.cjs.js +1 -0
  46. package/curves/NURBSCurve.js +43 -15
  47. package/curves/NURBSSurface.cjs.js +1 -0
  48. package/curves/NURBSSurface.js +27 -11
  49. package/curves/NURBSUtils.cjs.js +1 -0
  50. package/curves/NURBSUtils.js +203 -54
  51. package/custom.d.cjs.js +1 -0
  52. package/{shaders/types.mjs → custom.d.js} +0 -0
  53. package/deprecated/Geometry.cjs.js +1 -0
  54. package/deprecated/Geometry.js +486 -191
  55. package/effects/AnaglyphEffect.cjs.js +1 -0
  56. package/effects/AnaglyphEffect.js +60 -95
  57. package/effects/AsciiEffect.cjs.js +1 -0
  58. package/effects/AsciiEffect.js +110 -80
  59. package/effects/OutlineEffect.cjs.js +1 -0
  60. package/effects/OutlineEffect.js +204 -121
  61. package/effects/ParallaxBarrierEffect.cjs.js +1 -0
  62. package/effects/ParallaxBarrierEffect.js +38 -39
  63. package/effects/PeppersGhostEffect.cjs.js +1 -0
  64. package/effects/PeppersGhostEffect.js +68 -19
  65. package/effects/StereoEffect.cjs.js +1 -0
  66. package/effects/StereoEffect.js +16 -12
  67. package/environments/RoomEnvironment.cjs.js +1 -0
  68. package/environments/RoomEnvironment.js +47 -52
  69. package/exporters/ColladaExporter.cjs.js +1 -0
  70. package/exporters/ColladaExporter.js +241 -115
  71. package/exporters/DRACOExporter.cjs.js +1 -0
  72. package/exporters/DRACOExporter.js +121 -67
  73. package/exporters/GLTFExporter.cjs.js +1 -0
  74. package/exporters/GLTFExporter.js +1014 -463
  75. package/exporters/MMDExporter.cjs.js +1 -0
  76. package/exporters/MMDExporter.js +102 -44
  77. package/exporters/OBJExporter.cjs.js +1 -0
  78. package/exporters/OBJExporter.js +140 -78
  79. package/exporters/PLYExporter.cjs.js +1 -0
  80. package/exporters/PLYExporter.js +154 -93
  81. package/exporters/STLExporter.cjs.js +1 -0
  82. package/exporters/STLExporter.js +81 -30
  83. package/exporters/USDZExporter.cjs.js +1 -0
  84. package/exporters/USDZExporter.js +144 -84
  85. package/geometries/BoxLineGeometry.cjs.js +1 -0
  86. package/geometries/BoxLineGeometry.js +14 -7
  87. package/geometries/ConvexGeometry.cjs.js +1 -0
  88. package/geometries/ConvexGeometry.js +23 -14
  89. package/geometries/DecalGeometry.cjs.js +1 -0
  90. package/geometries/DecalGeometry.js +162 -108
  91. package/geometries/LightningStrike.cjs.js +1 -0
  92. package/geometries/LightningStrike.js +294 -101
  93. package/geometries/ParametricGeometries.cjs.js +1 -0
  94. package/geometries/ParametricGeometries.js +76 -26
  95. package/geometries/ParametricGeometry.cjs.js +1 -0
  96. package/geometries/ParametricGeometry.js +48 -24
  97. package/geometries/RoundedBoxGeometry.cjs.js +1 -0
  98. package/geometries/RoundedBoxGeometry.js +64 -33
  99. package/geometries/TeapotGeometry.cjs.js +1 -0
  100. package/geometries/TeapotGeometry.js +174 -1434
  101. package/geometries/TextGeometry.cjs.js +1 -0
  102. package/geometries/TextGeometry.js +17 -9
  103. package/helpers/LightProbeHelper.cjs.js +1 -0
  104. package/helpers/LightProbeHelper.js +21 -53
  105. package/helpers/PositionalAudioHelper.cjs.js +1 -0
  106. package/helpers/PositionalAudioHelper.js +30 -23
  107. package/helpers/RectAreaLightHelper.cjs.js +1 -0
  108. package/helpers/RectAreaLightHelper.js +33 -17
  109. package/helpers/VertexNormalsHelper.cjs.js +1 -0
  110. package/helpers/VertexNormalsHelper.js +41 -20
  111. package/helpers/VertexTangentsHelper.cjs.js +1 -0
  112. package/helpers/VertexTangentsHelper.js +36 -18
  113. package/index.cjs.js +1 -0
  114. package/index.js +333 -968
  115. package/interactive/InteractiveGroup.cjs.js +1 -0
  116. package/interactive/InteractiveGroup.d.ts +5 -0
  117. package/interactive/InteractiveGroup.js +87 -0
  118. package/interactive/SelectionBox.cjs.js +1 -0
  119. package/interactive/SelectionBox.js +46 -31
  120. package/interactive/SelectionHelper.cjs.js +1 -0
  121. package/interactive/SelectionHelper.js +21 -16
  122. package/libs/MeshoptDecoder.cjs.js +1 -0
  123. package/libs/MeshoptDecoder.js +58 -147
  124. package/libs/MotionControllers.cjs.js +1 -0
  125. package/libs/MotionControllers.js +208 -66
  126. package/lights/LightProbeGenerator.cjs.js +1 -0
  127. package/lights/LightProbeGenerator.js +96 -40
  128. package/lights/RectAreaLightUniformsLib.cjs.js +1 -0
  129. package/lights/RectAreaLightUniformsLib.js +9 -32842
  130. package/lines/Line2.cjs.js +1 -0
  131. package/lines/Line2.js +12 -9
  132. package/lines/LineGeometry.cjs.js +1 -0
  133. package/lines/LineGeometry.js +19 -7
  134. package/lines/LineMaterial.cjs.js +1 -0
  135. package/lines/LineMaterial.js +89 -51
  136. package/lines/LineSegments2.cjs.js +1 -0
  137. package/lines/LineSegments2.js +165 -56
  138. package/lines/LineSegmentsGeometry.cjs.js +1 -0
  139. package/lines/LineSegmentsGeometry.js +71 -29
  140. package/lines/Wireframe.cjs.js +1 -0
  141. package/lines/Wireframe.js +29 -15
  142. package/lines/WireframeGeometry2.cjs.js +1 -0
  143. package/lines/WireframeGeometry2.js +9 -8
  144. package/loaders/3DMLoader.cjs.js +1 -0
  145. package/loaders/3DMLoader.js +469 -234
  146. package/loaders/3MFLoader.cjs.js +1 -0
  147. package/loaders/3MFLoader.js +555 -340
  148. package/loaders/AMFLoader.cjs.js +1 -0
  149. package/loaders/AMFLoader.js +219 -114
  150. package/loaders/AssimpLoader.cjs.js +1 -0
  151. package/loaders/AssimpLoader.js +725 -328
  152. package/loaders/BVHLoader.cjs.js +1 -0
  153. package/loaders/BVHLoader.js +200 -94
  154. package/loaders/BasisTextureLoader.cjs.js +1 -0
  155. package/loaders/BasisTextureLoader.js +357 -229
  156. package/loaders/ColladaLoader.cjs.js +1 -0
  157. package/loaders/ColladaLoader.js +1522 -932
  158. package/loaders/DDSLoader.cjs.js +1 -0
  159. package/loaders/DDSLoader.js +108 -42
  160. package/loaders/DRACOLoader.cjs.js +1 -0
  161. package/loaders/DRACOLoader.js +210 -103
  162. package/loaders/EXRLoader.cjs.js +1 -0
  163. package/loaders/EXRLoader.js +809 -461
  164. package/loaders/FBXLoader.cjs.js +1 -0
  165. package/loaders/FBXLoader.js +1397 -842
  166. package/loaders/FontLoader.cjs.js +1 -0
  167. package/loaders/FontLoader.js +66 -33
  168. package/loaders/GCodeLoader.cjs.js +1 -0
  169. package/loaders/GCodeLoader.js +111 -63
  170. package/loaders/GLTFLoader.cjs.js +1 -0
  171. package/loaders/GLTFLoader.js +1484 -771
  172. package/loaders/HDRCubeTextureLoader.cjs.js +1 -0
  173. package/loaders/HDRCubeTextureLoader.js +50 -45
  174. package/loaders/KMZLoader.cjs.js +1 -0
  175. package/loaders/KMZLoader.js +55 -42
  176. package/loaders/KTX2Loader.cjs.js +1 -0
  177. package/loaders/KTX2Loader.js +362 -229
  178. package/loaders/KTXLoader.cjs.js +1 -0
  179. package/loaders/KTXLoader.js +99 -37
  180. package/loaders/LDrawLoader.cjs.js +1 -0
  181. package/loaders/LDrawLoader.js +746 -313
  182. package/loaders/LUT3dlLoader.cjs.js +1 -0
  183. package/loaders/LUT3dlLoader.js +62 -50
  184. package/loaders/LUTCubeLoader.cjs.js +1 -0
  185. package/loaders/LUTCubeLoader.js +56 -45
  186. package/loaders/LWOLoader.cjs.js +1 -0
  187. package/loaders/LWOLoader.js +339 -227
  188. package/loaders/LottieLoader.cjs.js +1 -0
  189. package/loaders/LottieLoader.js +38 -36
  190. package/loaders/MD2Loader.cjs.js +1 -0
  191. package/loaders/MD2Loader.js +91 -248
  192. package/loaders/MDDLoader.cjs.js +1 -0
  193. package/loaders/MDDLoader.js +45 -25
  194. package/loaders/MMDLoader.cjs.js +1 -0
  195. package/loaders/MMDLoader.js +795 -359
  196. package/loaders/MTLLoader.cjs.js +1 -0
  197. package/loaders/MTLLoader.js +201 -91
  198. package/loaders/NRRDLoader.cjs.js +1 -0
  199. package/loaders/NRRDLoader.js +263 -182
  200. package/loaders/NodeMaterialLoader.cjs.js +1 -0
  201. package/loaders/NodeMaterialLoader.js +14 -121
  202. package/loaders/OBJLoader.cjs.js +1 -0
  203. package/loaders/OBJLoader.js +283 -161
  204. package/loaders/PCDLoader.cjs.js +1 -0
  205. package/loaders/PCDLoader.js +164 -145
  206. package/loaders/PDBLoader.cjs.js +1 -0
  207. package/loaders/PDBLoader.js +63 -45
  208. package/loaders/PLYLoader.cjs.js +1 -0
  209. package/loaders/PLYLoader.js +203 -106
  210. package/loaders/PRWMLoader.cjs.js +1 -0
  211. package/loaders/PRWMLoader.js +110 -73
  212. package/loaders/PVRLoader.cjs.js +1 -0
  213. package/loaders/PVRLoader.js +93 -32
  214. package/loaders/RGBELoader.cjs.js +1 -0
  215. package/loaders/RGBELoader.js +233 -96
  216. package/loaders/RGBMLoader.cjs.js +1 -0
  217. package/loaders/RGBMLoader.js +514 -344
  218. package/loaders/STLLoader.cjs.js +1 -0
  219. package/loaders/STLLoader.js +165 -59
  220. package/loaders/SVGLoader.cjs.js +1 -0
  221. package/loaders/SVGLoader.js +851 -481
  222. package/loaders/TDSLoader.cjs.js +1 -0
  223. package/loaders/TDSLoader.js +527 -137
  224. package/loaders/TGALoader.cjs.js +1 -0
  225. package/loaders/TGALoader.js +205 -94
  226. package/loaders/TTFLoader.cjs.js +1 -0
  227. package/loaders/TTFLoader.js +79 -58
  228. package/loaders/TiltLoader.cjs.js +1 -0
  229. package/loaders/TiltLoader.js +167 -129
  230. package/loaders/VOXLoader.cjs.js +1 -0
  231. package/loaders/VOXLoader.js +84 -320
  232. package/loaders/VRMLLoader.cjs.js +1 -0
  233. package/loaders/VRMLLoader.js +1268 -786
  234. package/loaders/VRMLoader.cjs.js +1 -0
  235. package/loaders/VRMLoader.js +31 -23
  236. package/loaders/VTKLoader.cjs.js +1 -0
  237. package/loaders/VTKLoader.js +407 -219
  238. package/loaders/XLoader.cjs.js +1 -0
  239. package/loaders/XLoader.js +1259 -1083
  240. package/loaders/XYZLoader.cjs.js +1 -0
  241. package/loaders/XYZLoader.js +34 -28
  242. package/loaders/lwo/IFFParser.cjs.js +1 -0
  243. package/loaders/lwo/IFFParser.js +492 -238
  244. package/loaders/lwo/LWO2Parser.cjs.js +1 -0
  245. package/loaders/lwo/LWO2Parser.js +279 -176
  246. package/loaders/lwo/LWO3Parser.cjs.js +1 -0
  247. package/loaders/lwo/LWO3Parser.js +247 -160
  248. package/math/Capsule.cjs.js +1 -0
  249. package/math/Capsule.js +43 -56
  250. package/math/ColorConverter.cjs.js +1 -0
  251. package/math/ColorConverter.js +32 -18
  252. package/math/ConvexHull.cjs.js +1 -0
  253. package/math/ConvexHull.js +357 -97
  254. package/math/ImprovedNoise.cjs.js +1 -0
  255. package/math/ImprovedNoise.js +32 -282
  256. package/math/Lut.cjs.js +1 -0
  257. package/math/Lut.js +35 -51
  258. package/math/MeshSurfaceSampler.cjs.js +1 -0
  259. package/math/MeshSurfaceSampler.js +68 -25
  260. package/math/OBB.cjs.js +1 -0
  261. package/math/OBB.js +152 -91
  262. package/math/Octree.cjs.js +1 -0
  263. package/math/Octree.js +139 -76
  264. package/math/SimplexNoise.cjs.js +1 -0
  265. package/math/SimplexNoise.js +238 -217
  266. package/misc/ConvexObjectBreaker.cjs.js +1 -0
  267. package/misc/ConvexObjectBreaker.js +185 -79
  268. package/misc/GPUComputationRenderer.cjs.js +1 -0
  269. package/misc/GPUComputationRenderer.js +194 -69
  270. package/misc/Gyroscope.cjs.js +1 -0
  271. package/misc/Gyroscope.js +22 -16
  272. package/misc/MD2Character.cjs.js +1 -0
  273. package/misc/MD2Character.js +74 -52
  274. package/misc/MD2CharacterComplex.cjs.js +1 -0
  275. package/misc/MD2CharacterComplex.js +163 -112
  276. package/misc/MorphAnimMesh.cjs.js +1 -0
  277. package/misc/MorphAnimMesh.js +28 -20
  278. package/misc/MorphBlendMesh.cjs.js +1 -0
  279. package/misc/MorphBlendMesh.js +69 -45
  280. package/misc/ProgressiveLightmap.cjs.js +1 -0
  281. package/misc/ProgressiveLightmap.js +187 -70
  282. package/misc/RollerCoaster.cjs.js +1 -0
  283. package/misc/RollerCoaster.js +135 -106
  284. package/misc/TubePainter.cjs.js +1 -0
  285. package/misc/TubePainter.js +92 -74
  286. package/misc/Volume.cjs.js +1 -0
  287. package/misc/Volume.js +270 -108
  288. package/misc/VolumeSlice.cjs.js +1 -0
  289. package/misc/VolumeSlice.js +122 -34
  290. package/misc/WebGL.cjs.js +1 -0
  291. package/misc/WebGL.js +34 -37
  292. package/modifiers/CurveModifier.cjs.js +1 -0
  293. package/modifiers/CurveModifier.js +151 -46
  294. package/modifiers/EdgeSplitModifier.cjs.js +1 -0
  295. package/modifiers/EdgeSplitModifier.js +90 -46
  296. package/modifiers/SimplifyModifier.cjs.js +1 -0
  297. package/modifiers/SimplifyModifier.js +202 -77
  298. package/modifiers/TessellateModifier.cjs.js +1 -0
  299. package/modifiers/TessellateModifier.js +90 -65
  300. package/nodes/Nodes.cjs.js +1 -0
  301. package/nodes/Nodes.js +140 -274
  302. package/nodes/ShaderNode.cjs.js +1 -0
  303. package/nodes/ShaderNode.js +196 -296
  304. package/nodes/accessors/BufferNode.cjs.js +1 -0
  305. package/nodes/accessors/BufferNode.js +8 -4
  306. package/nodes/accessors/CameraNode.cjs.js +1 -0
  307. package/nodes/accessors/CameraNode.js +25 -20
  308. package/nodes/accessors/CubeTextureNode.cjs.js +1 -0
  309. package/nodes/accessors/CubeTextureNode.js +26 -14
  310. package/nodes/accessors/MaterialNode.cjs.js +1 -0
  311. package/nodes/accessors/MaterialNode.js +53 -43
  312. package/nodes/accessors/MaterialReferenceNode.cjs.js +1 -0
  313. package/nodes/accessors/MaterialReferenceNode.js +6 -3
  314. package/nodes/accessors/ModelNode.cjs.js +1 -0
  315. package/nodes/accessors/ModelNode.js +5 -3
  316. package/nodes/accessors/ModelViewProjectionNode.cjs.js +1 -0
  317. package/nodes/accessors/ModelViewProjectionNode.js +13 -14
  318. package/nodes/accessors/NormalNode.cjs.js +1 -0
  319. package/nodes/accessors/NormalNode.js +39 -40
  320. package/nodes/accessors/Object3DNode.cjs.js +1 -0
  321. package/nodes/accessors/Object3DNode.js +50 -40
  322. package/nodes/accessors/PointUVNode.cjs.js +1 -0
  323. package/nodes/accessors/PointUVNode.js +9 -5
  324. package/nodes/accessors/PositionNode.cjs.js +1 -0
  325. package/nodes/accessors/PositionNode.js +41 -42
  326. package/nodes/accessors/ReferenceNode.cjs.js +1 -0
  327. package/nodes/accessors/ReferenceNode.js +17 -10
  328. package/nodes/accessors/ReflectNode.cjs.js +1 -0
  329. package/nodes/accessors/ReflectNode.js +26 -23
  330. package/nodes/accessors/SkinningNode.cjs.js +1 -0
  331. package/nodes/accessors/SkinningNode.js +48 -46
  332. package/nodes/accessors/TextureNode.cjs.js +1 -0
  333. package/nodes/accessors/TextureNode.js +29 -14
  334. package/nodes/accessors/UVNode.cjs.js +1 -0
  335. package/nodes/accessors/UVNode.js +11 -5
  336. package/nodes/core/ArrayUniformNode.cjs.js +1 -0
  337. package/nodes/core/ArrayUniformNode.js +7 -3
  338. package/nodes/core/AttributeNode.cjs.js +1 -0
  339. package/nodes/core/AttributeNode.js +12 -5
  340. package/nodes/core/BypassNode.cjs.js +1 -0
  341. package/nodes/core/BypassNode.js +12 -5
  342. package/nodes/core/CodeNode.cjs.js +1 -0
  343. package/nodes/core/CodeNode.js +12 -4
  344. package/nodes/core/ConstNode.cjs.js +1 -0
  345. package/nodes/core/ConstNode.js +7 -3
  346. package/nodes/core/ContextNode.cjs.js +1 -0
  347. package/nodes/core/ContextNode.js +8 -3
  348. package/nodes/core/ExpressionNode.cjs.js +1 -0
  349. package/nodes/core/ExpressionNode.js +9 -5
  350. package/nodes/core/FunctionCallNode.cjs.js +1 -0
  351. package/nodes/core/FunctionCallNode.js +15 -6
  352. package/nodes/core/FunctionNode.cjs.js +1 -0
  353. package/nodes/core/FunctionNode.js +25 -10
  354. package/nodes/core/InputNode.cjs.js +1 -0
  355. package/nodes/core/InputNode.js +23 -12
  356. package/nodes/core/Node.cjs.js +1 -0
  357. package/nodes/core/Node.js +75 -35
  358. package/nodes/core/NodeAttribute.cjs.js +1 -0
  359. package/nodes/core/NodeAttribute.js +4 -2
  360. package/nodes/core/NodeBuilder.cjs.js +1 -0
  361. package/nodes/core/NodeBuilder.js +224 -110
  362. package/nodes/core/NodeCode.cjs.js +1 -0
  363. package/nodes/core/NodeCode.js +7 -4
  364. package/nodes/core/NodeFrame.cjs.js +1 -0
  365. package/nodes/core/NodeFrame.js +12 -9
  366. package/nodes/core/NodeFunction.cjs.js +1 -0
  367. package/nodes/core/NodeFunction.js +17 -0
  368. package/nodes/core/NodeFunctionInput.cjs.js +1 -0
  369. package/nodes/core/NodeFunctionInput.js +5 -3
  370. package/nodes/core/NodeKeywords.cjs.js +1 -0
  371. package/nodes/core/NodeKeywords.js +16 -5
  372. package/nodes/core/NodeParser.cjs.js +1 -0
  373. package/nodes/core/NodeParser.js +8 -0
  374. package/nodes/core/NodeUniform.cjs.js +1 -0
  375. package/nodes/core/NodeUniform.js +7 -3
  376. package/nodes/core/NodeUtils.cjs.js +1 -0
  377. package/nodes/core/NodeUtils.js +43 -39
  378. package/nodes/core/NodeVar.cjs.js +1 -0
  379. package/nodes/core/NodeVar.js +4 -2
  380. package/nodes/core/NodeVary.cjs.js +1 -0
  381. package/nodes/core/NodeVary.js +4 -2
  382. package/nodes/core/PropertyNode.cjs.js +1 -0
  383. package/nodes/core/PropertyNode.js +10 -4
  384. package/nodes/core/TempNode.cjs.js +1 -0
  385. package/nodes/core/TempNode.js +11 -5
  386. package/nodes/core/UniformNode.cjs.js +1 -0
  387. package/nodes/core/UniformNode.js +10 -4
  388. package/nodes/core/VarNode.cjs.js +1 -0
  389. package/nodes/core/VarNode.js +11 -3
  390. package/nodes/core/VaryNode.cjs.js +1 -0
  391. package/nodes/core/VaryNode.js +15 -6
  392. package/nodes/core/constants.cjs.js +1 -0
  393. package/nodes/core/constants.js +7 -20
  394. package/nodes/display/ColorSpaceNode.cjs.js +1 -0
  395. package/nodes/display/ColorSpaceNode.js +38 -34
  396. package/nodes/display/NormalMapNode.cjs.js +1 -0
  397. package/nodes/display/NormalMapNode.js +53 -35
  398. package/nodes/fog/FogNode.cjs.js +1 -0
  399. package/nodes/fog/FogNode.js +9 -5
  400. package/nodes/fog/FogRangeNode.cjs.js +1 -0
  401. package/nodes/fog/FogRangeNode.js +9 -5
  402. package/nodes/functions/BSDFs.cjs.js +1 -0
  403. package/nodes/functions/BSDFs.js +118 -61
  404. package/nodes/functions/PhysicalMaterialFunctions.cjs.js +1 -0
  405. package/nodes/functions/PhysicalMaterialFunctions.js +57 -0
  406. package/nodes/lights/LightContextNode.cjs.js +1 -0
  407. package/nodes/lights/LightContextNode.js +23 -14
  408. package/nodes/lights/LightNode.cjs.js +1 -0
  409. package/nodes/lights/LightNode.js +31 -27
  410. package/nodes/lights/LightsNode.cjs.js +1 -0
  411. package/nodes/lights/LightsNode.js +28 -9
  412. package/nodes/loaders/NodeLoader.cjs.js +1 -0
  413. package/nodes/loaders/NodeLoader.js +42 -27
  414. package/nodes/loaders/NodeMaterialLoader.cjs.js +1 -0
  415. package/nodes/loaders/NodeMaterialLoader.js +10 -4
  416. package/nodes/loaders/NodeObjectLoader.cjs.js +1 -0
  417. package/nodes/loaders/NodeObjectLoader.js +19 -9
  418. package/nodes/materials/LineBasicNodeMaterial.cjs.js +1 -0
  419. package/nodes/materials/LineBasicNodeMaterial.js +10 -5
  420. package/nodes/materials/Materials.cjs.js +1 -0
  421. package/nodes/materials/Materials.js +17 -14
  422. package/nodes/materials/MeshBasicNodeMaterial.cjs.js +1 -0
  423. package/nodes/materials/MeshBasicNodeMaterial.js +10 -5
  424. package/nodes/materials/MeshStandardNodeMaterial.cjs.js +1 -0
  425. package/nodes/materials/MeshStandardNodeMaterial.js +8 -5
  426. package/nodes/materials/NodeMaterial.cjs.js +1 -0
  427. package/nodes/materials/NodeMaterial.js +36 -20
  428. package/nodes/materials/PointsNodeMaterial.cjs.js +1 -0
  429. package/nodes/materials/PointsNodeMaterial.js +10 -5
  430. package/nodes/math/CondNode.cjs.js +1 -0
  431. package/nodes/math/CondNode.js +23 -11
  432. package/nodes/math/MathNode.cjs.js +1 -0
  433. package/nodes/math/MathNode.js +142 -98
  434. package/nodes/math/OperatorNode.cjs.js +1 -0
  435. package/nodes/math/OperatorNode.js +46 -24
  436. package/nodes/parsers/GLSLNodeFunction.cjs.js +1 -0
  437. package/nodes/parsers/GLSLNodeFunction.js +101 -0
  438. package/nodes/parsers/GLSLNodeParser.cjs.js +1 -0
  439. package/nodes/parsers/GLSLNodeParser.js +13 -0
  440. package/nodes/parsers/WGSLNodeFunction.cjs.js +1 -0
  441. package/nodes/parsers/WGSLNodeFunction.js +71 -0
  442. package/nodes/parsers/WGSLNodeParser.cjs.js +1 -0
  443. package/nodes/parsers/WGSLNodeParser.js +13 -0
  444. package/nodes/procedural/CheckerNode.cjs.js +1 -0
  445. package/nodes/procedural/CheckerNode.js +19 -13
  446. package/nodes/utils/ArrayElementNode.cjs.js +1 -0
  447. package/nodes/utils/ArrayElementNode.js +8 -4
  448. package/nodes/utils/ConvertNode.cjs.js +1 -0
  449. package/nodes/utils/ConvertNode.js +8 -3
  450. package/nodes/utils/JoinNode.cjs.js +1 -0
  451. package/nodes/utils/JoinNode.js +11 -7
  452. package/nodes/utils/MatcapUVNode.cjs.js +1 -0
  453. package/nodes/utils/MatcapUVNode.js +11 -8
  454. package/nodes/utils/OscNode.cjs.js +1 -0
  455. package/nodes/utils/OscNode.js +33 -27
  456. package/nodes/utils/SplitNode.cjs.js +1 -0
  457. package/nodes/utils/SplitNode.js +20 -6
  458. package/nodes/utils/SpriteSheetUVNode.cjs.js +1 -0
  459. package/nodes/utils/SpriteSheetUVNode.js +23 -23
  460. package/nodes/utils/TimerNode.cjs.js +1 -0
  461. package/nodes/utils/TimerNode.js +24 -20
  462. package/objects/GroundProjectedEnv.cjs.js +1 -0
  463. package/objects/GroundProjectedEnv.js +37 -22
  464. package/objects/Lensflare.cjs.js +1 -0
  465. package/objects/Lensflare.js +156 -86
  466. package/objects/LightningStorm.cjs.js +1 -0
  467. package/objects/LightningStorm.js +102 -38
  468. package/objects/MarchingCubes.cjs.js +1 -0
  469. package/objects/MarchingCubes.js +303 -150
  470. package/objects/Reflector.cjs.js +1 -0
  471. package/objects/Reflector.js +72 -50
  472. package/objects/ReflectorForSSRPass.cjs.js +1 -0
  473. package/objects/ReflectorForSSRPass.js +131 -80
  474. package/objects/ReflectorRTT.cjs.js +1 -0
  475. package/objects/ReflectorRTT.js +7 -6
  476. package/objects/Refractor.cjs.js +1 -0
  477. package/objects/Refractor.js +106 -64
  478. package/objects/ShadowMesh.cjs.js +1 -0
  479. package/objects/ShadowMesh.js +17 -8
  480. package/objects/Sky.cjs.js +1 -0
  481. package/objects/Sky.js +80 -119
  482. package/objects/Water.cjs.js +1 -0
  483. package/objects/Water.js +127 -83
  484. package/objects/Water2.cjs.js +1 -0
  485. package/objects/Water2.js +108 -72
  486. package/offscreen/jank.cjs.js +1 -0
  487. package/offscreen/jank.js +14 -10
  488. package/offscreen/offscreen.cjs.js +1 -0
  489. package/offscreen/offscreen.js +5 -4
  490. package/offscreen/scene.cjs.js +1 -0
  491. package/offscreen/scene.js +48 -45
  492. package/package.json +3 -3
  493. package/physics/AmmoPhysics.cjs.js +1 -0
  494. package/physics/AmmoPhysics.js +71 -30
  495. package/postprocessing/AdaptiveToneMappingPass.cjs.js +1 -0
  496. package/postprocessing/AdaptiveToneMappingPass.js +123 -97
  497. package/postprocessing/AfterimagePass.cjs.js +1 -0
  498. package/postprocessing/AfterimagePass.js +49 -28
  499. package/postprocessing/BloomPass.cjs.js +1 -0
  500. package/postprocessing/BloomPass.js +69 -43
  501. package/postprocessing/BokehPass.cjs.js +1 -0
  502. package/postprocessing/BokehPass.js +69 -39
  503. package/postprocessing/ClearPass.cjs.js +1 -0
  504. package/postprocessing/ClearPass.js +25 -10
  505. package/postprocessing/CubeTexturePass.cjs.js +1 -0
  506. package/postprocessing/CubeTexturePass.js +27 -28
  507. package/postprocessing/DotScreenPass.cjs.js +1 -0
  508. package/postprocessing/DotScreenPass.js +32 -24
  509. package/postprocessing/EffectComposer.cjs.js +1 -0
  510. package/postprocessing/EffectComposer.js +86 -39
  511. package/postprocessing/FilmPass.cjs.js +1 -0
  512. package/postprocessing/FilmPass.js +30 -25
  513. package/postprocessing/GlitchPass.cjs.js +1 -0
  514. package/postprocessing/GlitchPass.js +61 -38
  515. package/postprocessing/HalftonePass.cjs.js +1 -0
  516. package/postprocessing/HalftonePass.js +39 -19
  517. package/postprocessing/LUTPass.cjs.js +1 -0
  518. package/postprocessing/LUTPass.js +38 -13
  519. package/postprocessing/MaskPass.cjs.js +1 -0
  520. package/postprocessing/MaskPass.js +38 -19
  521. package/postprocessing/OutlinePass.cjs.js +1 -0
  522. package/postprocessing/OutlinePass.js +277 -135
  523. package/postprocessing/Pass.cjs.js +1 -0
  524. package/postprocessing/Pass.js +44 -20
  525. package/postprocessing/RenderPass.cjs.js +1 -0
  526. package/postprocessing/RenderPass.js +36 -13
  527. package/postprocessing/RenderPixelatedPass.cjs.js +1 -0
  528. package/postprocessing/RenderPixelatedPass.js +58 -44
  529. package/postprocessing/SAOPass.cjs.js +1 -0
  530. package/postprocessing/SAOPass.js +189 -154
  531. package/postprocessing/SMAAPass.cjs.js +1 -0
  532. package/postprocessing/SMAAPass.js +84 -64
  533. package/postprocessing/SSAARenderPass.cjs.js +1 -0
  534. package/postprocessing/SSAARenderPass.js +69 -121
  535. package/postprocessing/SSAOPass.cjs.js +1 -0
  536. package/postprocessing/SSAOPass.js +172 -123
  537. package/postprocessing/SSRPass.cjs.js +1 -0
  538. package/postprocessing/SSRPass.js +280 -211
  539. package/postprocessing/SavePass.cjs.js +1 -0
  540. package/postprocessing/SavePass.js +25 -20
  541. package/postprocessing/ShaderPass.cjs.js +1 -0
  542. package/postprocessing/ShaderPass.js +30 -14
  543. package/postprocessing/TAARenderPass.cjs.js +1 -0
  544. package/postprocessing/TAARenderPass.js +61 -42
  545. package/postprocessing/TexturePass.cjs.js +1 -0
  546. package/postprocessing/TexturePass.js +22 -21
  547. package/postprocessing/UnrealBloomPass.cjs.js +1 -0
  548. package/postprocessing/UnrealBloomPass.js +213 -105
  549. package/renderers/CSS2DRenderer.cjs.js +1 -0
  550. package/renderers/CSS2DRenderer.js +56 -44
  551. package/renderers/CSS3DRenderer.cjs.js +1 -0
  552. package/renderers/CSS3DRenderer.js +86 -53
  553. package/renderers/Projector.cjs.js +1 -0
  554. package/renderers/Projector.js +274 -107
  555. package/renderers/SVGRenderer.cjs.js +1 -0
  556. package/renderers/SVGRenderer.js +182 -72
  557. package/renderers/nodes/accessors/CameraNode.cjs.js +1 -0
  558. package/renderers/nodes/accessors/CameraNode.js +40 -29
  559. package/renderers/nodes/accessors/ModelNode.cjs.js +1 -0
  560. package/renderers/nodes/accessors/ModelNode.js +37 -28
  561. package/renderers/nodes/accessors/ModelViewProjectionNode.cjs.js +1 -0
  562. package/renderers/nodes/accessors/ModelViewProjectionNode.js +23 -10
  563. package/renderers/nodes/accessors/NormalNode.cjs.js +1 -0
  564. package/renderers/nodes/accessors/NormalNode.js +45 -35
  565. package/renderers/nodes/accessors/PositionNode.cjs.js +1 -0
  566. package/renderers/nodes/accessors/PositionNode.js +19 -18
  567. package/renderers/nodes/accessors/UVNode.cjs.js +1 -0
  568. package/renderers/nodes/accessors/UVNode.js +10 -5
  569. package/renderers/nodes/core/AttributeNode.cjs.js +1 -0
  570. package/renderers/nodes/core/AttributeNode.js +14 -5
  571. package/renderers/nodes/core/InputNode.cjs.js +1 -0
  572. package/renderers/nodes/core/InputNode.js +14 -4
  573. package/renderers/nodes/core/Node.cjs.js +1 -0
  574. package/renderers/nodes/core/Node.js +17 -7
  575. package/renderers/nodes/core/NodeAttribute.cjs.js +1 -0
  576. package/renderers/nodes/core/NodeAttribute.js +6 -3
  577. package/renderers/nodes/core/NodeBuilder.cjs.js +1 -0
  578. package/renderers/nodes/core/NodeBuilder.js +154 -87
  579. package/renderers/nodes/core/NodeFrame.cjs.js +1 -0
  580. package/renderers/nodes/core/NodeFrame.js +12 -9
  581. package/renderers/nodes/core/NodeSlot.cjs.js +1 -0
  582. package/renderers/nodes/core/NodeSlot.js +3 -2
  583. package/renderers/nodes/core/NodeUniform.cjs.js +1 -0
  584. package/renderers/nodes/core/NodeUniform.js +9 -4
  585. package/renderers/nodes/core/NodeVary.cjs.js +1 -0
  586. package/renderers/nodes/core/NodeVary.js +7 -4
  587. package/renderers/nodes/core/VaryNode.cjs.js +1 -0
  588. package/renderers/nodes/core/VaryNode.js +12 -6
  589. package/renderers/nodes/core/constants.cjs.js +1 -0
  590. package/renderers/nodes/core/constants.js +13 -16
  591. package/renderers/nodes/inputs/ColorNode.cjs.js +1 -0
  592. package/renderers/nodes/inputs/ColorNode.js +11 -5
  593. package/renderers/nodes/inputs/FloatNode.cjs.js +1 -0
  594. package/renderers/nodes/inputs/FloatNode.js +11 -5
  595. package/renderers/nodes/inputs/Matrix3Node.cjs.js +1 -0
  596. package/renderers/nodes/inputs/Matrix3Node.js +13 -7
  597. package/renderers/nodes/inputs/Matrix4Node.cjs.js +1 -0
  598. package/renderers/nodes/inputs/Matrix4Node.js +13 -7
  599. package/renderers/nodes/inputs/TextureNode.cjs.js +1 -0
  600. package/renderers/nodes/inputs/TextureNode.js +15 -7
  601. package/renderers/nodes/inputs/Vector2Node.cjs.js +1 -0
  602. package/renderers/nodes/inputs/Vector2Node.js +11 -5
  603. package/renderers/nodes/inputs/Vector3Node.cjs.js +1 -0
  604. package/renderers/nodes/inputs/Vector3Node.js +13 -7
  605. package/renderers/nodes/inputs/Vector4Node.cjs.js +1 -0
  606. package/renderers/nodes/inputs/Vector4Node.js +13 -7
  607. package/renderers/nodes/math/MathNode.cjs.js +1 -0
  608. package/renderers/nodes/math/MathNode.js +30 -20
  609. package/renderers/nodes/math/OperatorNode.cjs.js +1 -0
  610. package/renderers/nodes/math/OperatorNode.js +20 -4
  611. package/renderers/nodes/utils/SwitchNode.cjs.js +1 -0
  612. package/renderers/nodes/utils/SwitchNode.js +9 -4
  613. package/renderers/nodes/utils/TimerNode.cjs.js +1 -0
  614. package/renderers/nodes/utils/TimerNode.js +10 -5
  615. package/renderers/webgpu/WebGPU.cjs.js +1 -0
  616. package/renderers/webgpu/WebGPU.js +16 -14
  617. package/renderers/webgpu/WebGPUAttributes.cjs.js +1 -0
  618. package/renderers/webgpu/WebGPUAttributes.js +23 -16
  619. package/renderers/webgpu/WebGPUBackground.cjs.js +1 -0
  620. package/renderers/webgpu/WebGPUBackground.js +30 -13
  621. package/renderers/webgpu/WebGPUBinding.cjs.js +1 -0
  622. package/renderers/webgpu/WebGPUBinding.js +7 -4
  623. package/renderers/webgpu/WebGPUBindings.cjs.js +1 -0
  624. package/renderers/webgpu/WebGPUBindings.js +57 -21
  625. package/renderers/webgpu/WebGPUComputePipelines.cjs.js +1 -0
  626. package/renderers/webgpu/WebGPUComputePipelines.js +25 -14
  627. package/renderers/webgpu/WebGPUGeometries.cjs.js +1 -0
  628. package/renderers/webgpu/WebGPUGeometries.js +15 -5
  629. package/renderers/webgpu/WebGPUInfo.cjs.js +1 -0
  630. package/renderers/webgpu/WebGPUInfo.js +8 -3
  631. package/renderers/webgpu/WebGPUObjects.cjs.js +1 -0
  632. package/renderers/webgpu/WebGPUObjects.js +10 -5
  633. package/renderers/webgpu/WebGPUProperties.cjs.js +1 -0
  634. package/renderers/webgpu/WebGPUProperties.js +11 -5
  635. package/renderers/webgpu/WebGPURenderLists.cjs.js +1 -0
  636. package/renderers/webgpu/WebGPURenderLists.js +36 -20
  637. package/renderers/webgpu/WebGPURenderPipelines.cjs.js +1 -0
  638. package/renderers/webgpu/WebGPURenderPipelines.js +387 -260
  639. package/renderers/webgpu/WebGPURenderer.cjs.js +1 -0
  640. package/renderers/webgpu/WebGPURenderer.js +262 -124
  641. package/renderers/webgpu/WebGPUSampledTexture.cjs.js +1 -0
  642. package/renderers/webgpu/WebGPUSampledTexture.js +31 -18
  643. package/renderers/webgpu/WebGPUSampler.cjs.js +1 -0
  644. package/renderers/webgpu/WebGPUSampler.js +12 -7
  645. package/renderers/webgpu/WebGPUStorageBuffer.cjs.js +1 -0
  646. package/renderers/webgpu/WebGPUStorageBuffer.js +12 -7
  647. package/renderers/webgpu/WebGPUTextureRenderer.cjs.js +1 -0
  648. package/renderers/webgpu/WebGPUTextureRenderer.js +11 -5
  649. package/renderers/webgpu/WebGPUTextureUtils.cjs.js +1 -0
  650. package/renderers/webgpu/WebGPUTextureUtils.js +40 -29
  651. package/renderers/webgpu/WebGPUTextures.cjs.js +1 -0
  652. package/renderers/webgpu/WebGPUTextures.js +333 -186
  653. package/renderers/webgpu/WebGPUUniform.cjs.js +1 -0
  654. package/renderers/webgpu/WebGPUUniform.js +51 -25
  655. package/renderers/webgpu/WebGPUUniformsGroup.cjs.js +1 -0
  656. package/renderers/webgpu/WebGPUUniformsGroup.js +72 -32
  657. package/renderers/webgpu/constants.cjs.js +1 -0
  658. package/renderers/webgpu/constants.js +181 -190
  659. package/renderers/webgpu/nodes/ShaderLib.cjs.js +1 -0
  660. package/renderers/webgpu/nodes/ShaderLib.js +2 -2
  661. package/renderers/webgpu/nodes/WebGPUNodeBuilder.cjs.js +1 -0
  662. package/renderers/webgpu/nodes/WebGPUNodeBuilder.js +124 -53
  663. package/renderers/webgpu/nodes/WebGPUNodeUniform.cjs.js +1 -0
  664. package/renderers/webgpu/nodes/WebGPUNodeUniform.js +31 -17
  665. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.cjs.js +1 -0
  666. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.js +9 -8
  667. package/renderers/webgpu/nodes/WebGPUNodes.cjs.js +1 -0
  668. package/renderers/webgpu/nodes/WebGPUNodes.js +45 -7
  669. package/shaders/ACESFilmicToneMappingShader.cjs.js +1 -0
  670. package/shaders/ACESFilmicToneMappingShader.js +24 -44
  671. package/shaders/AfterimageShader.cjs.js +1 -0
  672. package/shaders/AfterimageShader.js +18 -28
  673. package/shaders/BasicShader.cjs.js +1 -0
  674. package/shaders/BasicShader.js +7 -9
  675. package/shaders/BleachBypassShader.cjs.js +1 -0
  676. package/shaders/BleachBypassShader.js +15 -31
  677. package/shaders/BlendShader.cjs.js +1 -0
  678. package/shaders/BlendShader.js +19 -26
  679. package/shaders/BokehShader.cjs.js +1 -0
  680. package/shaders/BokehShader.js +36 -98
  681. package/shaders/BokehShader2.cjs.js +1 -0
  682. package/shaders/BokehShader2.js +90 -261
  683. package/shaders/BrightnessContrastShader.cjs.js +1 -0
  684. package/shaders/BrightnessContrastShader.js +19 -28
  685. package/shaders/ColorCorrectionShader.cjs.js +1 -0
  686. package/shaders/ColorCorrectionShader.js +22 -26
  687. package/shaders/ColorifyShader.cjs.js +1 -0
  688. package/shaders/ColorifyShader.js +16 -24
  689. package/shaders/ConvolutionShader.cjs.js +1 -0
  690. package/shaders/ConvolutionShader.js +36 -40
  691. package/shaders/CopyShader.cjs.js +1 -0
  692. package/shaders/CopyShader.js +13 -21
  693. package/shaders/DOFMipMapShader.cjs.js +1 -0
  694. package/shaders/DOFMipMapShader.js +21 -28
  695. package/shaders/DepthLimitedBlurShader.cjs.js +1 -0
  696. package/shaders/DepthLimitedBlurShader.js +40 -85
  697. package/shaders/DigitalGlitch.cjs.js +1 -0
  698. package/shaders/DigitalGlitch.js +46 -74
  699. package/shaders/DotScreenShader.cjs.js +1 -0
  700. package/shaders/DotScreenShader.js +27 -35
  701. package/shaders/FXAAShader.cjs.js +1 -0
  702. package/shaders/FXAAShader.js +19 -1094
  703. package/shaders/FilmShader.cjs.js +1 -0
  704. package/shaders/FilmShader.js +52 -38
  705. package/shaders/FocusShader.cjs.js +1 -0
  706. package/shaders/FocusShader.js +24 -51
  707. package/shaders/FreiChenShader.cjs.js +1 -0
  708. package/shaders/FreiChenShader.js +24 -57
  709. package/shaders/FresnelShader.cjs.js +1 -0
  710. package/shaders/FresnelShader.js +22 -43
  711. package/shaders/GammaCorrectionShader.cjs.js +1 -0
  712. package/shaders/GammaCorrectionShader.js +11 -19
  713. package/shaders/GodRaysShader.cjs.js +1 -0
  714. package/shaders/GodRaysShader.js +94 -103
  715. package/shaders/HalftoneShader.cjs.js +1 -0
  716. package/shaders/HalftoneShader.js +65 -208
  717. package/shaders/HorizontalBlurShader.cjs.js +1 -0
  718. package/shaders/HorizontalBlurShader.js +23 -7
  719. package/shaders/HorizontalTiltShiftShader.cjs.js +1 -0
  720. package/shaders/HorizontalTiltShiftShader.js +21 -33
  721. package/shaders/HueSaturationShader.cjs.js +1 -0
  722. package/shaders/HueSaturationShader.js +21 -37
  723. package/shaders/KaleidoShader.cjs.js +1 -0
  724. package/shaders/KaleidoShader.js +22 -30
  725. package/shaders/LuminosityHighPassShader.cjs.js +1 -0
  726. package/shaders/LuminosityHighPassShader.js +27 -33
  727. package/shaders/LuminosityShader.cjs.js +1 -0
  728. package/shaders/LuminosityShader.js +11 -21
  729. package/shaders/MirrorShader.cjs.js +1 -0
  730. package/shaders/MirrorShader.js +16 -31
  731. package/shaders/NormalMapShader.cjs.js +1 -0
  732. package/shaders/NormalMapShader.js +23 -27
  733. package/shaders/ParallaxShader.cjs.js +1 -0
  734. package/shaders/ParallaxShader.js +48 -107
  735. package/shaders/PixelShader.cjs.js +1 -0
  736. package/shaders/PixelShader.js +16 -24
  737. package/shaders/RGBShiftShader.cjs.js +1 -0
  738. package/shaders/RGBShiftShader.js +22 -26
  739. package/shaders/SAOShader.cjs.js +1 -0
  740. package/shaders/SAOShader.js +48 -132
  741. package/shaders/SMAAShader.cjs.js +1 -0
  742. package/shaders/SMAAShader.js +135 -256
  743. package/shaders/SSAOShader.cjs.js +1 -0
  744. package/shaders/SSAOShader.js +81 -153
  745. package/shaders/SSRShader.cjs.js +1 -0
  746. package/shaders/SSRShader.js +87 -32
  747. package/shaders/SepiaShader.cjs.js +1 -0
  748. package/shaders/SepiaShader.js +15 -25
  749. package/shaders/SobelOperatorShader.cjs.js +1 -0
  750. package/shaders/SobelOperatorShader.js +29 -40
  751. package/shaders/SubsurfaceScatteringShader.cjs.js +1 -0
  752. package/shaders/SubsurfaceScatteringShader.js +39 -53
  753. package/shaders/TechnicolorShader.cjs.js +1 -0
  754. package/shaders/TechnicolorShader.js +13 -20
  755. package/shaders/ToneMapShader.cjs.js +1 -0
  756. package/shaders/ToneMapShader.js +28 -44
  757. package/shaders/ToonShader.cjs.js +1 -0
  758. package/shaders/ToonShader.js +96 -172
  759. package/shaders/TriangleBlurShader.cjs.js +1 -0
  760. package/shaders/TriangleBlurShader.js +23 -32
  761. package/shaders/UnpackDepthRGBAShader.cjs.js +1 -0
  762. package/shaders/UnpackDepthRGBAShader.js +14 -22
  763. package/shaders/VerticalBlurShader.cjs.js +1 -0
  764. package/shaders/VerticalBlurShader.js +23 -7
  765. package/shaders/VerticalTiltShiftShader.cjs.js +1 -0
  766. package/shaders/VerticalTiltShiftShader.js +21 -33
  767. package/shaders/VignetteShader.cjs.js +1 -0
  768. package/shaders/VignetteShader.js +28 -24
  769. package/shaders/VolumeShader.cjs.js +1 -0
  770. package/shaders/VolumeShader.js +77 -174
  771. package/shaders/WaterRefractionShader.cjs.js +1 -0
  772. package/shaders/WaterRefractionShader.js +6 -38
  773. package/shaders/types.cjs.js +1 -0
  774. package/shaders/types.js +1 -1
  775. package/textures/FlakesTexture.cjs.js +1 -0
  776. package/textures/FlakesTexture.js +10 -8
  777. package/types/helpers.cjs.js +1 -0
  778. package/types/helpers.js +2 -3
  779. package/types/shared.cjs.js +1 -0
  780. package/types/shared.js +1 -0
  781. package/types/utils.cjs.js +1 -0
  782. package/types/utils.js +1 -0
  783. package/utils/BufferGeometryUtils.cjs.js +1 -0
  784. package/utils/BufferGeometryUtils.js +325 -251
  785. package/utils/GeometryCompressionUtils.cjs.js +1 -0
  786. package/utils/GeometryCompressionUtils.js +239 -241
  787. package/utils/GeometryUtils.cjs.js +1 -0
  788. package/utils/GeometryUtils.js +94 -41
  789. package/utils/LDrawUtils.cjs.js +1 -0
  790. package/utils/LDrawUtils.d.ts +5 -0
  791. package/utils/LDrawUtils.js +144 -0
  792. package/utils/RoughnessMipmapper.cjs.js +1 -0
  793. package/utils/RoughnessMipmapper.js +82 -38
  794. package/utils/SceneUtils.cjs.js +1 -0
  795. package/utils/SceneUtils.js +20 -15
  796. package/utils/ShadowMapViewer.cjs.js +1 -0
  797. package/utils/ShadowMapViewer.js +95 -49
  798. package/utils/SkeletonUtils.cjs.js +1 -0
  799. package/utils/SkeletonUtils.js +165 -74
  800. package/utils/UVsDebug.cjs.js +1 -0
  801. package/utils/UVsDebug.js +62 -32
  802. package/utils/WorkerPool.cjs.js +1 -0
  803. package/utils/WorkerPool.js +33 -13
  804. package/webxr/ARButton.cjs.js +1 -0
  805. package/webxr/ARButton.js +98 -72
  806. package/webxr/OculusHandModel.cjs.js +1 -0
  807. package/webxr/OculusHandModel.js +37 -18
  808. package/webxr/OculusHandPointerModel.cjs.js +1 -0
  809. package/webxr/OculusHandPointerModel.js +80 -58
  810. package/webxr/Text2D.cjs.js +1 -0
  811. package/webxr/Text2D.js +19 -37
  812. package/webxr/VRButton.cjs.js +1 -0
  813. package/webxr/VRButton.js +90 -59
  814. package/webxr/XRControllerModelFactory.cjs.js +1 -0
  815. package/webxr/XRControllerModelFactory.js +116 -58
  816. package/webxr/XREstimatedLight.cjs.js +1 -0
  817. package/webxr/XREstimatedLight.js +66 -39
  818. package/webxr/XRHandMeshModel.cjs.js +1 -0
  819. package/webxr/XRHandMeshModel.js +29 -40
  820. package/webxr/XRHandModelFactory.cjs.js +1 -0
  821. package/webxr/XRHandModelFactory.js +31 -28
  822. package/webxr/XRHandPrimitiveModel.cjs.js +1 -0
  823. package/webxr/XRHandPrimitiveModel.js +27 -41
  824. package/animation/AnimationClipCreator.mjs +0 -57
  825. package/animation/CCDIKSolver.mjs +0 -234
  826. package/animation/MMDAnimationHelper.mjs +0 -514
  827. package/animation/MMDPhysics.mjs +0 -769
  828. package/cameras/CinematicCamera.mjs +0 -129
  829. package/controls/ArcballControls.mjs +0 -1737
  830. package/controls/DeviceOrientationControls.mjs +0 -74
  831. package/controls/DragControls.mjs +0 -172
  832. package/controls/FirstPersonControls.mjs +0 -220
  833. package/controls/FlyControls.mjs +0 -239
  834. package/controls/OrbitControls.mjs +0 -731
  835. package/controls/PointerLockControls.mjs +0 -88
  836. package/controls/TrackballControls.mjs +0 -481
  837. package/controls/TransformControls.mjs +0 -1068
  838. package/controls/experimental/CameraControls.mjs +0 -673
  839. package/csm/CSM.mjs +0 -244
  840. package/csm/CSMFrustum.mjs +0 -75
  841. package/csm/CSMHelper.mjs +0 -114
  842. package/csm/CSMShader.mjs +0 -251
  843. package/curves/CurveExtras.mjs +0 -224
  844. package/curves/NURBSCurve.mjs +0 -35
  845. package/curves/NURBSSurface.mjs +0 -28
  846. package/curves/NURBSUtils.mjs +0 -226
  847. package/deprecated/Geometry.mjs +0 -966
  848. package/effects/AnaglyphEffect.mjs +0 -120
  849. package/effects/AsciiEffect.mjs +0 -173
  850. package/effects/OutlineEffect.mjs +0 -295
  851. package/effects/ParallaxBarrierEffect.mjs +0 -64
  852. package/effects/PeppersGhostEffect.mjs +0 -85
  853. package/effects/StereoEffect.mjs +0 -32
  854. package/environments/RoomEnvironment.mjs +0 -78
  855. package/exporters/ColladaExporter.mjs +0 -299
  856. package/exporters/DRACOExporter.mjs +0 -132
  857. package/exporters/GLTFExporter.mjs +0 -1381
  858. package/exporters/MMDExporter.mjs +0 -102
  859. package/exporters/OBJExporter.mjs +0 -166
  860. package/exporters/PLYExporter.mjs +0 -278
  861. package/exporters/STLExporter.mjs +0 -129
  862. package/exporters/USDZExporter.mjs +0 -328
  863. package/geometries/BoxLineGeometry.mjs +0 -45
  864. package/geometries/ConvexGeometry.mjs +0 -29
  865. package/geometries/DecalGeometry.mjs +0 -184
  866. package/geometries/LightningStrike.mjs +0 -547
  867. package/geometries/ParametricGeometries.mjs +0 -129
  868. package/geometries/ParametricGeometry.mjs +0 -63
  869. package/geometries/RoundedBoxGeometry.mjs +0 -91
  870. package/geometries/TeapotGeometry.mjs +0 -1557
  871. package/geometries/TextGeometry.mjs +0 -23
  872. package/helpers/LightProbeHelper.mjs +0 -72
  873. package/helpers/PositionalAudioHelper.mjs +0 -68
  874. package/helpers/RectAreaLightHelper.mjs +0 -44
  875. package/helpers/VertexNormalsHelper.mjs +0 -54
  876. package/helpers/VertexTangentsHelper.mjs +0 -45
  877. package/index.mjs +0 -968
  878. package/interactive/SelectionBox.mjs +0 -137
  879. package/interactive/SelectionHelper.mjs +0 -54
  880. package/libs/MeshoptDecoder.mjs +0 -210
  881. package/libs/MotionControllers.mjs +0 -261
  882. package/lights/LightProbeGenerator.mjs +0 -145
  883. package/lights/RectAreaLightUniformsLib.mjs +0 -32842
  884. package/lines/Line2.mjs +0 -13
  885. package/lines/LineGeometry.mjs +0 -44
  886. package/lines/LineMaterial.mjs +0 -539
  887. package/lines/LineSegments2.mjs +0 -202
  888. package/lines/LineSegmentsGeometry.mjs +0 -124
  889. package/lines/Wireframe.mjs +0 -31
  890. package/lines/WireframeGeometry2.mjs +0 -13
  891. package/loaders/3DMLoader.mjs +0 -802
  892. package/loaders/3MFLoader.mjs +0 -837
  893. package/loaders/AMFLoader.mjs +0 -284
  894. package/loaders/AssimpLoader.mjs +0 -1396
  895. package/loaders/BVHLoader.mjs +0 -207
  896. package/loaders/BasisTextureLoader.mjs +0 -474
  897. package/loaders/ColladaLoader.mjs +0 -2403
  898. package/loaders/DDSLoader.mjs +0 -148
  899. package/loaders/DRACOLoader.mjs +0 -340
  900. package/loaders/EXRLoader.mjs +0 -1351
  901. package/loaders/FBXLoader.mjs +0 -2362
  902. package/loaders/FontLoader.mjs +0 -111
  903. package/loaders/GCodeLoader.mjs +0 -141
  904. package/loaders/GLTFLoader.mjs +0 -2316
  905. package/loaders/HDRCubeTextureLoader.mjs +0 -77
  906. package/loaders/KMZLoader.mjs +0 -75
  907. package/loaders/KTX2Loader.mjs +0 -427
  908. package/loaders/KTXLoader.mjs +0 -87
  909. package/loaders/LDrawLoader.mjs +0 -1409
  910. package/loaders/LUT3dlLoader.mjs +0 -100
  911. package/loaders/LUTCubeLoader.mjs +0 -104
  912. package/loaders/LWOLoader.mjs +0 -625
  913. package/loaders/LottieLoader.mjs +0 -47
  914. package/loaders/MD2Loader.mjs +0 -359
  915. package/loaders/MDDLoader.mjs +0 -58
  916. package/loaders/MMDLoader.mjs +0 -998
  917. package/loaders/MTLLoader.mjs +0 -280
  918. package/loaders/NRRDLoader.mjs +0 -401
  919. package/loaders/NodeMaterialLoader.mjs +0 -146
  920. package/loaders/OBJLoader.mjs +0 -487
  921. package/loaders/PCDLoader.mjs +0 -248
  922. package/loaders/PDBLoader.mjs +0 -246
  923. package/loaders/PLYLoader.mjs +0 -317
  924. package/loaders/PRWMLoader.mjs +0 -160
  925. package/loaders/PVRLoader.mjs +0 -131
  926. package/loaders/RGBELoader.mjs +0 -244
  927. package/loaders/RGBMLoader.mjs +0 -998
  928. package/loaders/STLLoader.mjs +0 -190
  929. package/loaders/SVGLoader.mjs +0 -1709
  930. package/loaders/TDSLoader.mjs +0 -480
  931. package/loaders/TGALoader.mjs +0 -285
  932. package/loaders/TTFLoader.mjs +0 -131
  933. package/loaders/TiltLoader.mjs +0 -373
  934. package/loaders/VOXLoader.mjs +0 -431
  935. package/loaders/VRMLLoader.mjs +0 -2093
  936. package/loaders/VRMLoader.mjs +0 -38
  937. package/loaders/VTKLoader.mjs +0 -646
  938. package/loaders/XLoader.mjs +0 -1258
  939. package/loaders/XYZLoader.mjs +0 -60
  940. package/loaders/lwo/IFFParser.mjs +0 -697
  941. package/loaders/lwo/LWO2Parser.mjs +0 -327
  942. package/loaders/lwo/LWO3Parser.mjs +0 -298
  943. package/math/Capsule.mjs +0 -100
  944. package/math/ColorConverter.mjs +0 -51
  945. package/math/ConvexHull.mjs +0 -574
  946. package/math/ImprovedNoise.mjs +0 -302
  947. package/math/Lut.mjs +0 -135
  948. package/math/MeshSurfaceSampler.mjs +0 -107
  949. package/math/OBB.mjs +0 -235
  950. package/math/Octree.mjs +0 -278
  951. package/math/SimplexNoise.mjs +0 -425
  952. package/misc/ConvexObjectBreaker.mjs +0 -292
  953. package/misc/GPUComputationRenderer.mjs +0 -171
  954. package/misc/Gyroscope.mjs +0 -35
  955. package/misc/MD2Character.mjs +0 -162
  956. package/misc/MD2CharacterComplex.mjs +0 -328
  957. package/misc/MorphAnimMesh.mjs +0 -40
  958. package/misc/MorphBlendMesh.mjs +0 -179
  959. package/misc/ProgressiveLightmap.mjs +0 -166
  960. package/misc/RollerCoaster.mjs +0 -346
  961. package/misc/TubePainter.mjs +0 -123
  962. package/misc/Volume.mjs +0 -244
  963. package/misc/VolumeSlice.mjs +0 -106
  964. package/misc/WebGL.mjs +0 -74
  965. package/modifiers/CurveModifier.mjs +0 -182
  966. package/modifiers/EdgeSplitModifier.mjs +0 -162
  967. package/modifiers/SimplifyModifier.mjs +0 -282
  968. package/modifiers/TessellateModifier.mjs +0 -206
  969. package/nodes/Nodes.mjs +0 -400
  970. package/nodes/ShaderNode.mjs +0 -408
  971. package/nodes/accessors/BufferNode.mjs +0 -15
  972. package/nodes/accessors/CameraNode.mjs +0 -44
  973. package/nodes/accessors/CubeTextureNode.mjs +0 -42
  974. package/nodes/accessors/MaterialNode.mjs +0 -71
  975. package/nodes/accessors/MaterialReferenceNode.mjs +0 -14
  976. package/nodes/accessors/ModelNode.mjs +0 -9
  977. package/nodes/accessors/ModelViewProjectionNode.mjs +0 -24
  978. package/nodes/accessors/NormalNode.mjs +0 -62
  979. package/nodes/accessors/Object3DNode.mjs +0 -76
  980. package/nodes/accessors/PointUVNode.mjs +0 -13
  981. package/nodes/accessors/PositionNode.mjs +0 -65
  982. package/nodes/accessors/ReferenceNode.mjs +0 -37
  983. package/nodes/accessors/ReflectNode.mjs +0 -43
  984. package/nodes/accessors/SkinningNode.mjs +0 -58
  985. package/nodes/accessors/TextureNode.mjs +0 -54
  986. package/nodes/accessors/UVNode.mjs +0 -23
  987. package/nodes/core/ArrayUniformNode.mjs +0 -14
  988. package/nodes/core/AttributeNode.mjs +0 -30
  989. package/nodes/core/BypassNode.mjs +0 -22
  990. package/nodes/core/CodeNode.mjs +0 -28
  991. package/nodes/core/ConstNode.mjs +0 -14
  992. package/nodes/core/ContextNode.mjs +0 -22
  993. package/nodes/core/ExpressionNode.mjs +0 -19
  994. package/nodes/core/FunctionCallNode.mjs +0 -37
  995. package/nodes/core/FunctionNode.mjs +0 -56
  996. package/nodes/core/InputNode.mjs +0 -38
  997. package/nodes/core/Node.mjs +0 -139
  998. package/nodes/core/NodeAttribute.mjs +0 -10
  999. package/nodes/core/NodeBuilder.mjs +0 -395
  1000. package/nodes/core/NodeCode.mjs +0 -11
  1001. package/nodes/core/NodeFrame.mjs +0 -35
  1002. package/nodes/core/NodeFunctionInput.mjs +0 -13
  1003. package/nodes/core/NodeKeywords.mjs +0 -44
  1004. package/nodes/core/NodeUniform.mjs +0 -18
  1005. package/nodes/core/NodeUtils.mjs +0 -57
  1006. package/nodes/core/NodeVar.mjs +0 -10
  1007. package/nodes/core/NodeVary.mjs +0 -10
  1008. package/nodes/core/PropertyNode.mjs +0 -21
  1009. package/nodes/core/TempNode.mjs +0 -25
  1010. package/nodes/core/UniformNode.mjs +0 -23
  1011. package/nodes/core/VarNode.mjs +0 -31
  1012. package/nodes/core/VaryNode.mjs +0 -30
  1013. package/nodes/core/constants.mjs +0 -24
  1014. package/nodes/display/ColorSpaceNode.mjs +0 -63
  1015. package/nodes/display/NormalMapNode.mjs +0 -54
  1016. package/nodes/fog/FogNode.mjs +0 -15
  1017. package/nodes/fog/FogRangeNode.mjs +0 -17
  1018. package/nodes/functions/BSDFs.mjs +0 -64
  1019. package/nodes/lights/LightContextNode.mjs +0 -35
  1020. package/nodes/lights/LightNode.mjs +0 -58
  1021. package/nodes/lights/LightsNode.mjs +0 -59
  1022. package/nodes/loaders/NodeLoader.mjs +0 -66
  1023. package/nodes/loaders/NodeMaterialLoader.mjs +0 -24
  1024. package/nodes/loaders/NodeObjectLoader.mjs +0 -40
  1025. package/nodes/materials/LineBasicNodeMaterial.mjs +0 -27
  1026. package/nodes/materials/Materials.mjs +0 -28
  1027. package/nodes/materials/MeshBasicNodeMaterial.mjs +0 -28
  1028. package/nodes/materials/MeshStandardNodeMaterial.mjs +0 -41
  1029. package/nodes/materials/NodeMaterial.mjs +0 -64
  1030. package/nodes/materials/PointsNodeMaterial.mjs +0 -30
  1031. package/nodes/math/CondNode.mjs +0 -38
  1032. package/nodes/math/MathNode.mjs +0 -163
  1033. package/nodes/math/OperatorNode.mjs +0 -103
  1034. package/nodes/procedural/CheckerNode.mjs +0 -21
  1035. package/nodes/utils/ArrayElementNode.mjs +0 -19
  1036. package/nodes/utils/ConvertNode.mjs +0 -25
  1037. package/nodes/utils/JoinNode.mjs +0 -26
  1038. package/nodes/utils/MatcapUVNode.mjs +0 -16
  1039. package/nodes/utils/OscNode.mjs +0 -50
  1040. package/nodes/utils/SplitNode.mjs +0 -45
  1041. package/nodes/utils/SpriteSheetUVNode.mjs +0 -40
  1042. package/nodes/utils/TimerNode.mjs +0 -44
  1043. package/objects/GroundProjectedEnv.mjs +0 -130
  1044. package/objects/Lensflare.mjs +0 -262
  1045. package/objects/LightningStorm.mjs +0 -110
  1046. package/objects/MarchingCubes.mjs +0 -457
  1047. package/objects/Reflector.mjs +0 -166
  1048. package/objects/ReflectorForSSRPass.mjs +0 -247
  1049. package/objects/ReflectorRTT.mjs +0 -10
  1050. package/objects/Refractor.mjs +0 -178
  1051. package/objects/ShadowMesh.mjs +0 -41
  1052. package/objects/Sky.mjs +0 -124
  1053. package/objects/Water.mjs +0 -235
  1054. package/objects/Water2.mjs +0 -252
  1055. package/offscreen/jank.mjs +0 -27
  1056. package/offscreen/offscreen.mjs +0 -5
  1057. package/offscreen/scene.mjs +0 -52
  1058. package/physics/AmmoPhysics.mjs +0 -165
  1059. package/postprocessing/AdaptiveToneMappingPass.mjs +0 -221
  1060. package/postprocessing/AfterimagePass.mjs +0 -55
  1061. package/postprocessing/BloomPass.mjs +0 -90
  1062. package/postprocessing/BokehPass.mjs +0 -76
  1063. package/postprocessing/ClearPass.mjs +0 -27
  1064. package/postprocessing/CubeTexturePass.mjs +0 -49
  1065. package/postprocessing/DotScreenPass.mjs +0 -40
  1066. package/postprocessing/EffectComposer.mjs +0 -139
  1067. package/postprocessing/FilmPass.mjs +0 -42
  1068. package/postprocessing/GlitchPass.mjs +0 -75
  1069. package/postprocessing/HalftonePass.mjs +0 -44
  1070. package/postprocessing/LUTPass.mjs +0 -136
  1071. package/postprocessing/MaskPass.mjs +0 -60
  1072. package/postprocessing/OutlinePass.mjs +0 -438
  1073. package/postprocessing/Pass.mjs +0 -37
  1074. package/postprocessing/RenderPass.mjs +0 -48
  1075. package/postprocessing/RenderPixelatedPass.mjs +0 -199
  1076. package/postprocessing/SAOPass.mjs +0 -282
  1077. package/postprocessing/SMAAPass.mjs +0 -112
  1078. package/postprocessing/SSAARenderPass.mjs +0 -170
  1079. package/postprocessing/SSAOPass.mjs +0 -265
  1080. package/postprocessing/SSRPass.mjs +0 -432
  1081. package/postprocessing/SavePass.mjs +0 -37
  1082. package/postprocessing/ShaderPass.mjs +0 -39
  1083. package/postprocessing/TAARenderPass.mjs +0 -88
  1084. package/postprocessing/TexturePass.mjs +0 -39
  1085. package/postprocessing/UnrealBloomPass.mjs +0 -220
  1086. package/renderers/CSS2DRenderer.mjs +0 -112
  1087. package/renderers/CSS3DRenderer.mjs +0 -133
  1088. package/renderers/Projector.mjs +0 -511
  1089. package/renderers/SVGRenderer.mjs +0 -306
  1090. package/renderers/nodes/accessors/CameraNode.mjs +0 -63
  1091. package/renderers/nodes/accessors/ModelNode.mjs +0 -61
  1092. package/renderers/nodes/accessors/ModelViewProjectionNode.mjs +0 -21
  1093. package/renderers/nodes/accessors/NormalNode.mjs +0 -61
  1094. package/renderers/nodes/accessors/PositionNode.mjs +0 -30
  1095. package/renderers/nodes/accessors/UVNode.mjs +0 -13
  1096. package/renderers/nodes/core/AttributeNode.mjs +0 -35
  1097. package/renderers/nodes/core/InputNode.mjs +0 -31
  1098. package/renderers/nodes/core/Node.mjs +0 -34
  1099. package/renderers/nodes/core/NodeAttribute.mjs +0 -10
  1100. package/renderers/nodes/core/NodeBuilder.mjs +0 -243
  1101. package/renderers/nodes/core/NodeFrame.mjs +0 -35
  1102. package/renderers/nodes/core/NodeSlot.mjs +0 -10
  1103. package/renderers/nodes/core/NodeUniform.mjs +0 -18
  1104. package/renderers/nodes/core/NodeVary.mjs +0 -11
  1105. package/renderers/nodes/core/VaryNode.mjs +0 -22
  1106. package/renderers/nodes/core/constants.mjs +0 -22
  1107. package/renderers/nodes/inputs/ColorNode.mjs +0 -11
  1108. package/renderers/nodes/inputs/FloatNode.mjs +0 -11
  1109. package/renderers/nodes/inputs/Matrix3Node.mjs +0 -12
  1110. package/renderers/nodes/inputs/Matrix4Node.mjs +0 -12
  1111. package/renderers/nodes/inputs/TextureNode.mjs +0 -20
  1112. package/renderers/nodes/inputs/Vector2Node.mjs +0 -11
  1113. package/renderers/nodes/inputs/Vector3Node.mjs +0 -12
  1114. package/renderers/nodes/inputs/Vector4Node.mjs +0 -12
  1115. package/renderers/nodes/math/MathNode.mjs +0 -55
  1116. package/renderers/nodes/math/OperatorNode.mjs +0 -42
  1117. package/renderers/nodes/utils/SwitchNode.mjs +0 -20
  1118. package/renderers/nodes/utils/TimerNode.mjs +0 -14
  1119. package/renderers/webgpu/WebGPU.mjs +0 -24
  1120. package/renderers/webgpu/WebGPUAttributes.mjs +0 -69
  1121. package/renderers/webgpu/WebGPUBackground.mjs +0 -61
  1122. package/renderers/webgpu/WebGPUBinding.mjs +0 -14
  1123. package/renderers/webgpu/WebGPUBindings.mjs +0 -155
  1124. package/renderers/webgpu/WebGPUComputePipelines.mjs +0 -44
  1125. package/renderers/webgpu/WebGPUGeometries.mjs +0 -41
  1126. package/renderers/webgpu/WebGPUInfo.mjs +0 -46
  1127. package/renderers/webgpu/WebGPUObjects.mjs +0 -25
  1128. package/renderers/webgpu/WebGPUProperties.mjs +0 -22
  1129. package/renderers/webgpu/WebGPURenderLists.mjs +0 -119
  1130. package/renderers/webgpu/WebGPURenderPipelines.mjs +0 -545
  1131. package/renderers/webgpu/WebGPURenderer.mjs +0 -574
  1132. package/renderers/webgpu/WebGPUSampledTexture.mjs +0 -40
  1133. package/renderers/webgpu/WebGPUSampler.mjs +0 -15
  1134. package/renderers/webgpu/WebGPUStorageBuffer.mjs +0 -15
  1135. package/renderers/webgpu/WebGPUTextureRenderer.mjs +0 -23
  1136. package/renderers/webgpu/WebGPUTextureUtils.mjs +0 -98
  1137. package/renderers/webgpu/WebGPUTextures.mjs +0 -484
  1138. package/renderers/webgpu/WebGPUUniform.mjs +0 -81
  1139. package/renderers/webgpu/WebGPUUniformsGroup.mjs +0 -176
  1140. package/renderers/webgpu/constants.mjs +0 -230
  1141. package/renderers/webgpu/nodes/ShaderLib.mjs +0 -42
  1142. package/renderers/webgpu/nodes/WebGPUNodeBuilder.mjs +0 -165
  1143. package/renderers/webgpu/nodes/WebGPUNodeUniform.mjs +0 -73
  1144. package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.mjs +0 -15
  1145. package/renderers/webgpu/nodes/WebGPUNodes.mjs +0 -40
  1146. package/shaders/ACESFilmicToneMappingShader.mjs +0 -48
  1147. package/shaders/AfterimageShader.mjs +0 -32
  1148. package/shaders/BasicShader.mjs +0 -12
  1149. package/shaders/BleachBypassShader.mjs +0 -35
  1150. package/shaders/BlendShader.mjs +0 -30
  1151. package/shaders/BokehShader.mjs +0 -106
  1152. package/shaders/BokehShader2.mjs +0 -269
  1153. package/shaders/BrightnessContrastShader.mjs +0 -32
  1154. package/shaders/ColorCorrectionShader.mjs +0 -30
  1155. package/shaders/ColorifyShader.mjs +0 -28
  1156. package/shaders/ConvolutionShader.mjs +0 -55
  1157. package/shaders/CopyShader.mjs +0 -25
  1158. package/shaders/DOFMipMapShader.mjs +0 -32
  1159. package/shaders/DepthLimitedBlurShader.mjs +0 -114
  1160. package/shaders/DigitalGlitch.mjs +0 -78
  1161. package/shaders/DotScreenShader.mjs +0 -39
  1162. package/shaders/FXAAShader.mjs +0 -1098
  1163. package/shaders/FilmShader.mjs +0 -42
  1164. package/shaders/FocusShader.mjs +0 -55
  1165. package/shaders/FreiChenShader.mjs +0 -61
  1166. package/shaders/FresnelShader.mjs +0 -47
  1167. package/shaders/GammaCorrectionShader.mjs +0 -23
  1168. package/shaders/GodRaysShader.mjs +0 -146
  1169. package/shaders/HalftoneShader.mjs +0 -212
  1170. package/shaders/HorizontalBlurShader.mjs +0 -43
  1171. package/shaders/HorizontalTiltShiftShader.mjs +0 -37
  1172. package/shaders/HueSaturationShader.mjs +0 -41
  1173. package/shaders/KaleidoShader.mjs +0 -34
  1174. package/shaders/LuminosityHighPassShader.mjs +0 -37
  1175. package/shaders/LuminosityShader.mjs +0 -25
  1176. package/shaders/MirrorShader.mjs +0 -35
  1177. package/shaders/NormalMapShader.mjs +0 -31
  1178. package/shaders/ParallaxShader.mjs +0 -113
  1179. package/shaders/PixelShader.mjs +0 -28
  1180. package/shaders/RGBShiftShader.mjs +0 -30
  1181. package/shaders/SAOShader.mjs +0 -144
  1182. package/shaders/SMAAShader.mjs +0 -272
  1183. package/shaders/SSAOShader.mjs +0 -172
  1184. package/shaders/SSRShader.mjs +0 -324
  1185. package/shaders/SepiaShader.mjs +0 -29
  1186. package/shaders/SobelOperatorShader.mjs +0 -44
  1187. package/shaders/SubsurfaceScatteringShader.mjs +0 -59
  1188. package/shaders/TechnicolorShader.mjs +0 -24
  1189. package/shaders/ToneMapShader.mjs +0 -48
  1190. package/shaders/ToonShader.mjs +0 -188
  1191. package/shaders/TriangleBlurShader.mjs +0 -36
  1192. package/shaders/UnpackDepthRGBAShader.mjs +0 -26
  1193. package/shaders/VerticalBlurShader.mjs +0 -44
  1194. package/shaders/VerticalTiltShiftShader.mjs +0 -37
  1195. package/shaders/VignetteShader.mjs +0 -28
  1196. package/shaders/VolumeShader.mjs +0 -178
  1197. package/shaders/WaterRefractionShader.mjs +0 -57
  1198. package/textures/FlakesTexture.mjs +0 -30
  1199. package/types/helpers.mjs +0 -4
  1200. package/utils/BufferGeometryUtils.mjs +0 -570
  1201. package/utils/GeometryCompressionUtils.mjs +0 -547
  1202. package/utils/GeometryUtils.mjs +0 -108
  1203. package/utils/RoughnessMipmapper.mjs +0 -213
  1204. package/utils/SceneUtils.mjs +0 -36
  1205. package/utils/ShadowMapViewer.mjs +0 -114
  1206. package/utils/SkeletonUtils.mjs +0 -292
  1207. package/utils/UVsDebug.mjs +0 -85
  1208. package/utils/WorkerPool.mjs +0 -62
  1209. package/webxr/ARButton.mjs +0 -119
  1210. package/webxr/OculusHandModel.mjs +0 -71
  1211. package/webxr/OculusHandPointerModel.mjs +0 -207
  1212. package/webxr/Text2D.mjs +0 -31
  1213. package/webxr/VRButton.mjs +0 -105
  1214. package/webxr/XRControllerModelFactory.mjs +0 -146
  1215. package/webxr/XREstimatedLight.mjs +0 -126
  1216. package/webxr/XRHandMeshModel.mjs +0 -73
  1217. package/webxr/XRHandModelFactory.mjs +0 -61
  1218. package/webxr/XRHandPrimitiveModel.mjs +0 -68
@@ -1,2093 +0,0 @@
1
- import { Loader, LoaderUtils, FileLoader, Scene, Object3D, Group, Vector3, SphereGeometry, MeshBasicMaterial, BackSide, Mesh, PointsMaterial, Points, LineBasicMaterial, LineSegments, FrontSide, DoubleSide, MeshPhongMaterial, Color, RepeatWrapping, ClampToEdgeWrapping, DataTexture, Vector2, BufferGeometry, Float32BufferAttribute, BoxGeometry, ConeGeometry, CylinderGeometry, Quaternion, ShapeUtils, BufferAttribute, TextureLoader } from "three";
2
- import { createToken, Lexer, CstParser } from "chevrotain";
3
- class VRMLLoader extends Loader {
4
- constructor(manager) {
5
- super(manager);
6
- }
7
- load(url, onLoad, onProgress, onError) {
8
- const scope = this;
9
- const path = scope.path === "" ? LoaderUtils.extractUrlBase(url) : scope.path;
10
- const loader = new FileLoader(scope.manager);
11
- loader.setPath(scope.path);
12
- loader.setRequestHeader(scope.requestHeader);
13
- loader.setWithCredentials(scope.withCredentials);
14
- loader.load(
15
- url,
16
- function(text) {
17
- try {
18
- onLoad(scope.parse(text, path));
19
- } catch (e) {
20
- if (onError) {
21
- onError(e);
22
- } else {
23
- console.error(e);
24
- }
25
- scope.manager.itemError(url);
26
- }
27
- },
28
- onProgress,
29
- onError
30
- );
31
- }
32
- parse(data, path) {
33
- const nodeMap = {};
34
- function generateVRMLTree(data2) {
35
- const tokenData = createTokens();
36
- const lexer = new VRMLLexer(tokenData.tokens);
37
- const parser = new VRMLParser(tokenData.tokenVocabulary);
38
- const visitor = createVisitor(parser.getBaseCstVisitorConstructor());
39
- const lexingResult = lexer.lex(data2);
40
- parser.input = lexingResult.tokens;
41
- const cstOutput = parser.vrml();
42
- if (parser.errors.length > 0) {
43
- console.error(parser.errors);
44
- throw Error("THREE.VRMLLoader: Parsing errors detected.");
45
- }
46
- const ast = visitor.visit(cstOutput);
47
- return ast;
48
- }
49
- function createTokens() {
50
- const RouteIdentifier = createToken({
51
- name: "RouteIdentifier",
52
- pattern: /[^\x30-\x39\0-\x20\x22\x27\x23\x2b\x2c\x2d\x2e\x5b\x5d\x5c\x7b\x7d][^\0-\x20\x22\x27\x23\x2b\x2c\x2d\x2e\x5b\x5d\x5c\x7b\x7d]*[\.][^\x30-\x39\0-\x20\x22\x27\x23\x2b\x2c\x2d\x2e\x5b\x5d\x5c\x7b\x7d][^\0-\x20\x22\x27\x23\x2b\x2c\x2d\x2e\x5b\x5d\x5c\x7b\x7d]*/
53
- });
54
- const Identifier = createToken({
55
- name: "Identifier",
56
- pattern: /[^\x30-\x39\0-\x20\x22\x27\x23\x2b\x2c\x2d\x2e\x5b\x5d\x5c\x7b\x7d][^\0-\x20\x22\x27\x23\x2b\x2c\x2d\x2e\x5b\x5d\x5c\x7b\x7d]*/,
57
- longer_alt: RouteIdentifier
58
- });
59
- const nodeTypes = [
60
- "Anchor",
61
- "Billboard",
62
- "Collision",
63
- "Group",
64
- "Transform",
65
- "Inline",
66
- "LOD",
67
- "Switch",
68
- "AudioClip",
69
- "DirectionalLight",
70
- "PointLight",
71
- "Script",
72
- "Shape",
73
- "Sound",
74
- "SpotLight",
75
- "WorldInfo",
76
- "CylinderSensor",
77
- "PlaneSensor",
78
- "ProximitySensor",
79
- "SphereSensor",
80
- "TimeSensor",
81
- "TouchSensor",
82
- "VisibilitySensor",
83
- "Box",
84
- "Cone",
85
- "Cylinder",
86
- "ElevationGrid",
87
- "Extrusion",
88
- "IndexedFaceSet",
89
- "IndexedLineSet",
90
- "PointSet",
91
- "Sphere",
92
- "Color",
93
- "Coordinate",
94
- "Normal",
95
- "TextureCoordinate",
96
- "Appearance",
97
- "FontStyle",
98
- "ImageTexture",
99
- "Material",
100
- "MovieTexture",
101
- "PixelTexture",
102
- "TextureTransform",
103
- "ColorInterpolator",
104
- "CoordinateInterpolator",
105
- "NormalInterpolator",
106
- "OrientationInterpolator",
107
- "PositionInterpolator",
108
- "ScalarInterpolator",
109
- "Background",
110
- "Fog",
111
- "NavigationInfo",
112
- "Viewpoint",
113
- "Text"
114
- ];
115
- const Version = createToken({
116
- name: "Version",
117
- pattern: /#VRML.*/,
118
- longer_alt: Identifier
119
- });
120
- const NodeName = createToken({
121
- name: "NodeName",
122
- pattern: new RegExp(nodeTypes.join("|")),
123
- longer_alt: Identifier
124
- });
125
- const DEF = createToken({
126
- name: "DEF",
127
- pattern: /DEF/,
128
- longer_alt: Identifier
129
- });
130
- const USE = createToken({
131
- name: "USE",
132
- pattern: /USE/,
133
- longer_alt: Identifier
134
- });
135
- const ROUTE = createToken({
136
- name: "ROUTE",
137
- pattern: /ROUTE/,
138
- longer_alt: Identifier
139
- });
140
- const TO = createToken({
141
- name: "TO",
142
- pattern: /TO/,
143
- longer_alt: Identifier
144
- });
145
- const StringLiteral = createToken({
146
- name: "StringLiteral",
147
- pattern: /"(?:[^\\"\n\r]|\\[bfnrtv"\\/]|\\u[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F])*"/
148
- });
149
- const HexLiteral = createToken({ name: "HexLiteral", pattern: /0[xX][0-9a-fA-F]+/ });
150
- const NumberLiteral = createToken({ name: "NumberLiteral", pattern: /[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?/ });
151
- const TrueLiteral = createToken({ name: "TrueLiteral", pattern: /TRUE/ });
152
- const FalseLiteral = createToken({ name: "FalseLiteral", pattern: /FALSE/ });
153
- const NullLiteral = createToken({ name: "NullLiteral", pattern: /NULL/ });
154
- const LSquare = createToken({ name: "LSquare", pattern: /\[/ });
155
- const RSquare = createToken({ name: "RSquare", pattern: /]/ });
156
- const LCurly = createToken({ name: "LCurly", pattern: /{/ });
157
- const RCurly = createToken({ name: "RCurly", pattern: /}/ });
158
- const Comment = createToken({
159
- name: "Comment",
160
- pattern: /#.*/,
161
- group: Lexer.SKIPPED
162
- });
163
- const WhiteSpace = createToken({
164
- name: "WhiteSpace",
165
- pattern: /[ ,\s]/,
166
- group: Lexer.SKIPPED
167
- });
168
- const tokens = [
169
- WhiteSpace,
170
- NodeName,
171
- DEF,
172
- USE,
173
- ROUTE,
174
- TO,
175
- TrueLiteral,
176
- FalseLiteral,
177
- NullLiteral,
178
- Version,
179
- Identifier,
180
- RouteIdentifier,
181
- StringLiteral,
182
- HexLiteral,
183
- NumberLiteral,
184
- LSquare,
185
- RSquare,
186
- LCurly,
187
- RCurly,
188
- Comment
189
- ];
190
- const tokenVocabulary = {};
191
- for (let i = 0, l = tokens.length; i < l; i++) {
192
- const token = tokens[i];
193
- tokenVocabulary[token.name] = token;
194
- }
195
- return { tokens, tokenVocabulary };
196
- }
197
- function createVisitor(BaseVRMLVisitor) {
198
- function VRMLToASTVisitor() {
199
- BaseVRMLVisitor.call(this);
200
- this.validateVisitor();
201
- }
202
- VRMLToASTVisitor.prototype = Object.assign(Object.create(BaseVRMLVisitor.prototype), {
203
- constructor: VRMLToASTVisitor,
204
- vrml: function(ctx) {
205
- const data2 = {
206
- version: this.visit(ctx.version),
207
- nodes: [],
208
- routes: []
209
- };
210
- for (let i = 0, l = ctx.node.length; i < l; i++) {
211
- const node = ctx.node[i];
212
- data2.nodes.push(this.visit(node));
213
- }
214
- if (ctx.route) {
215
- for (let i = 0, l = ctx.route.length; i < l; i++) {
216
- const route = ctx.route[i];
217
- data2.routes.push(this.visit(route));
218
- }
219
- }
220
- return data2;
221
- },
222
- version: function(ctx) {
223
- return ctx.Version[0].image;
224
- },
225
- node: function(ctx) {
226
- const data2 = {
227
- name: ctx.NodeName[0].image,
228
- fields: []
229
- };
230
- if (ctx.field) {
231
- for (let i = 0, l = ctx.field.length; i < l; i++) {
232
- const field = ctx.field[i];
233
- data2.fields.push(this.visit(field));
234
- }
235
- }
236
- if (ctx.def) {
237
- data2.DEF = this.visit(ctx.def[0]);
238
- }
239
- return data2;
240
- },
241
- field: function(ctx) {
242
- const data2 = {
243
- name: ctx.Identifier[0].image,
244
- type: null,
245
- values: null
246
- };
247
- let result;
248
- if (ctx.singleFieldValue) {
249
- result = this.visit(ctx.singleFieldValue[0]);
250
- }
251
- if (ctx.multiFieldValue) {
252
- result = this.visit(ctx.multiFieldValue[0]);
253
- }
254
- data2.type = result.type;
255
- data2.values = result.values;
256
- return data2;
257
- },
258
- def: function(ctx) {
259
- return (ctx.Identifier || ctx.NodeName)[0].image;
260
- },
261
- use: function(ctx) {
262
- return { USE: (ctx.Identifier || ctx.NodeName)[0].image };
263
- },
264
- singleFieldValue: function(ctx) {
265
- return processField(this, ctx);
266
- },
267
- multiFieldValue: function(ctx) {
268
- return processField(this, ctx);
269
- },
270
- route: function(ctx) {
271
- const data2 = {
272
- FROM: ctx.RouteIdentifier[0].image,
273
- TO: ctx.RouteIdentifier[1].image
274
- };
275
- return data2;
276
- }
277
- });
278
- function processField(scope, ctx) {
279
- const field = {
280
- type: null,
281
- values: []
282
- };
283
- if (ctx.node) {
284
- field.type = "node";
285
- for (let i = 0, l = ctx.node.length; i < l; i++) {
286
- const node = ctx.node[i];
287
- field.values.push(scope.visit(node));
288
- }
289
- }
290
- if (ctx.use) {
291
- field.type = "use";
292
- for (let i = 0, l = ctx.use.length; i < l; i++) {
293
- const use = ctx.use[i];
294
- field.values.push(scope.visit(use));
295
- }
296
- }
297
- if (ctx.StringLiteral) {
298
- field.type = "string";
299
- for (let i = 0, l = ctx.StringLiteral.length; i < l; i++) {
300
- const stringLiteral = ctx.StringLiteral[i];
301
- field.values.push(stringLiteral.image.replace(/'|"/g, ""));
302
- }
303
- }
304
- if (ctx.NumberLiteral) {
305
- field.type = "number";
306
- for (let i = 0, l = ctx.NumberLiteral.length; i < l; i++) {
307
- const numberLiteral = ctx.NumberLiteral[i];
308
- field.values.push(parseFloat(numberLiteral.image));
309
- }
310
- }
311
- if (ctx.HexLiteral) {
312
- field.type = "hex";
313
- for (let i = 0, l = ctx.HexLiteral.length; i < l; i++) {
314
- const hexLiteral = ctx.HexLiteral[i];
315
- field.values.push(hexLiteral.image);
316
- }
317
- }
318
- if (ctx.TrueLiteral) {
319
- field.type = "boolean";
320
- for (let i = 0, l = ctx.TrueLiteral.length; i < l; i++) {
321
- const trueLiteral = ctx.TrueLiteral[i];
322
- if (trueLiteral.image === "TRUE")
323
- field.values.push(true);
324
- }
325
- }
326
- if (ctx.FalseLiteral) {
327
- field.type = "boolean";
328
- for (let i = 0, l = ctx.FalseLiteral.length; i < l; i++) {
329
- const falseLiteral = ctx.FalseLiteral[i];
330
- if (falseLiteral.image === "FALSE")
331
- field.values.push(false);
332
- }
333
- }
334
- if (ctx.NullLiteral) {
335
- field.type = "null";
336
- ctx.NullLiteral.forEach(function() {
337
- field.values.push(null);
338
- });
339
- }
340
- return field;
341
- }
342
- return new VRMLToASTVisitor();
343
- }
344
- function parseTree(tree2) {
345
- const nodes = tree2.nodes;
346
- const scene2 = new Scene();
347
- for (let i = 0, l = nodes.length; i < l; i++) {
348
- const node = nodes[i];
349
- buildNodeMap(node);
350
- }
351
- for (let i = 0, l = nodes.length; i < l; i++) {
352
- const node = nodes[i];
353
- const object = getNode(node);
354
- if (object instanceof Object3D)
355
- scene2.add(object);
356
- if (node.name === "WorldInfo")
357
- scene2.userData.worldInfo = object;
358
- }
359
- return scene2;
360
- }
361
- function buildNodeMap(node) {
362
- if (node.DEF) {
363
- nodeMap[node.DEF] = node;
364
- }
365
- const fields = node.fields;
366
- for (let i = 0, l = fields.length; i < l; i++) {
367
- const field = fields[i];
368
- if (field.type === "node") {
369
- const fieldValues = field.values;
370
- for (let j = 0, jl = fieldValues.length; j < jl; j++) {
371
- buildNodeMap(fieldValues[j]);
372
- }
373
- }
374
- }
375
- }
376
- function getNode(node) {
377
- if (node.USE) {
378
- return resolveUSE(node.USE);
379
- }
380
- if (node.build !== void 0)
381
- return node.build;
382
- node.build = buildNode(node);
383
- return node.build;
384
- }
385
- function buildNode(node) {
386
- const nodeName = node.name;
387
- let build;
388
- switch (nodeName) {
389
- case "Group":
390
- case "Transform":
391
- case "Collision":
392
- build = buildGroupingNode(node);
393
- break;
394
- case "Background":
395
- build = buildBackgroundNode(node);
396
- break;
397
- case "Shape":
398
- build = buildShapeNode(node);
399
- break;
400
- case "Appearance":
401
- build = buildAppearanceNode(node);
402
- break;
403
- case "Material":
404
- build = buildMaterialNode(node);
405
- break;
406
- case "ImageTexture":
407
- build = buildImageTextureNode(node);
408
- break;
409
- case "PixelTexture":
410
- build = buildPixelTextureNode(node);
411
- break;
412
- case "TextureTransform":
413
- build = buildTextureTransformNode(node);
414
- break;
415
- case "IndexedFaceSet":
416
- build = buildIndexedFaceSetNode(node);
417
- break;
418
- case "IndexedLineSet":
419
- build = buildIndexedLineSetNode(node);
420
- break;
421
- case "PointSet":
422
- build = buildPointSetNode(node);
423
- break;
424
- case "Box":
425
- build = buildBoxNode(node);
426
- break;
427
- case "Cone":
428
- build = buildConeNode(node);
429
- break;
430
- case "Cylinder":
431
- build = buildCylinderNode(node);
432
- break;
433
- case "Sphere":
434
- build = buildSphereNode(node);
435
- break;
436
- case "ElevationGrid":
437
- build = buildElevationGridNode(node);
438
- break;
439
- case "Extrusion":
440
- build = buildExtrusionNode(node);
441
- break;
442
- case "Color":
443
- case "Coordinate":
444
- case "Normal":
445
- case "TextureCoordinate":
446
- build = buildGeometricNode(node);
447
- break;
448
- case "WorldInfo":
449
- build = buildWorldInfoNode(node);
450
- break;
451
- case "Anchor":
452
- case "Billboard":
453
- case "Inline":
454
- case "LOD":
455
- case "Switch":
456
- case "AudioClip":
457
- case "DirectionalLight":
458
- case "PointLight":
459
- case "Script":
460
- case "Sound":
461
- case "SpotLight":
462
- case "CylinderSensor":
463
- case "PlaneSensor":
464
- case "ProximitySensor":
465
- case "SphereSensor":
466
- case "TimeSensor":
467
- case "TouchSensor":
468
- case "VisibilitySensor":
469
- case "Text":
470
- case "FontStyle":
471
- case "MovieTexture":
472
- case "ColorInterpolator":
473
- case "CoordinateInterpolator":
474
- case "NormalInterpolator":
475
- case "OrientationInterpolator":
476
- case "PositionInterpolator":
477
- case "ScalarInterpolator":
478
- case "Fog":
479
- case "NavigationInfo":
480
- case "Viewpoint":
481
- break;
482
- default:
483
- console.warn("THREE.VRMLLoader: Unknown node:", nodeName);
484
- break;
485
- }
486
- if (build !== void 0 && node.DEF !== void 0 && build.hasOwnProperty("name") === true) {
487
- build.name = node.DEF;
488
- }
489
- return build;
490
- }
491
- function buildGroupingNode(node) {
492
- const object = new Group();
493
- const fields = node.fields;
494
- for (let i = 0, l = fields.length; i < l; i++) {
495
- const field = fields[i];
496
- const fieldName = field.name;
497
- const fieldValues = field.values;
498
- switch (fieldName) {
499
- case "bboxCenter":
500
- break;
501
- case "bboxSize":
502
- break;
503
- case "center":
504
- break;
505
- case "children":
506
- parseFieldChildren(fieldValues, object);
507
- break;
508
- case "collide":
509
- break;
510
- case "rotation":
511
- const axis = new Vector3(fieldValues[0], fieldValues[1], fieldValues[2]);
512
- const angle = fieldValues[3];
513
- object.quaternion.setFromAxisAngle(axis, angle);
514
- break;
515
- case "scale":
516
- object.scale.set(fieldValues[0], fieldValues[1], fieldValues[2]);
517
- break;
518
- case "scaleOrientation":
519
- break;
520
- case "translation":
521
- object.position.set(fieldValues[0], fieldValues[1], fieldValues[2]);
522
- break;
523
- case "proxy":
524
- break;
525
- default:
526
- console.warn("THREE.VRMLLoader: Unknown field:", fieldName);
527
- break;
528
- }
529
- }
530
- return object;
531
- }
532
- function buildBackgroundNode(node) {
533
- const group = new Group();
534
- let groundAngle, groundColor;
535
- let skyAngle, skyColor;
536
- const fields = node.fields;
537
- for (let i = 0, l = fields.length; i < l; i++) {
538
- const field = fields[i];
539
- const fieldName = field.name;
540
- const fieldValues = field.values;
541
- switch (fieldName) {
542
- case "groundAngle":
543
- groundAngle = fieldValues;
544
- break;
545
- case "groundColor":
546
- groundColor = fieldValues;
547
- break;
548
- case "backUrl":
549
- break;
550
- case "bottomUrl":
551
- break;
552
- case "frontUrl":
553
- break;
554
- case "leftUrl":
555
- break;
556
- case "rightUrl":
557
- break;
558
- case "topUrl":
559
- break;
560
- case "skyAngle":
561
- skyAngle = fieldValues;
562
- break;
563
- case "skyColor":
564
- skyColor = fieldValues;
565
- break;
566
- default:
567
- console.warn("THREE.VRMLLoader: Unknown field:", fieldName);
568
- break;
569
- }
570
- }
571
- const radius = 1e4;
572
- if (skyColor) {
573
- const skyGeometry = new SphereGeometry(radius, 32, 16);
574
- const skyMaterial = new MeshBasicMaterial({ fog: false, side: BackSide, depthWrite: false, depthTest: false });
575
- if (skyColor.length > 3) {
576
- paintFaces(skyGeometry, radius, skyAngle, toColorArray(skyColor), true);
577
- skyMaterial.vertexColors = true;
578
- } else {
579
- skyMaterial.color.setRGB(skyColor[0], skyColor[1], skyColor[2]);
580
- }
581
- const sky = new Mesh(skyGeometry, skyMaterial);
582
- group.add(sky);
583
- }
584
- if (groundColor) {
585
- if (groundColor.length > 0) {
586
- const groundGeometry = new SphereGeometry(radius, 32, 16, 0, 2 * Math.PI, 0.5 * Math.PI, 1.5 * Math.PI);
587
- const groundMaterial = new MeshBasicMaterial({
588
- fog: false,
589
- side: BackSide,
590
- vertexColors: true,
591
- depthWrite: false,
592
- depthTest: false
593
- });
594
- paintFaces(groundGeometry, radius, groundAngle, toColorArray(groundColor), false);
595
- const ground = new Mesh(groundGeometry, groundMaterial);
596
- group.add(ground);
597
- }
598
- }
599
- group.renderOrder = -Infinity;
600
- return group;
601
- }
602
- function buildShapeNode(node) {
603
- const fields = node.fields;
604
- let material = new MeshBasicMaterial({ color: 0 });
605
- let geometry;
606
- for (let i = 0, l = fields.length; i < l; i++) {
607
- const field = fields[i];
608
- const fieldName = field.name;
609
- const fieldValues = field.values;
610
- switch (fieldName) {
611
- case "appearance":
612
- if (fieldValues[0] !== null) {
613
- material = getNode(fieldValues[0]);
614
- }
615
- break;
616
- case "geometry":
617
- if (fieldValues[0] !== null) {
618
- geometry = getNode(fieldValues[0]);
619
- }
620
- break;
621
- default:
622
- console.warn("THREE.VRMLLoader: Unknown field:", fieldName);
623
- break;
624
- }
625
- }
626
- let object;
627
- if (geometry && geometry.attributes.position) {
628
- const type = geometry._type;
629
- if (type === "points") {
630
- const pointsMaterial = new PointsMaterial({ color: 16777215 });
631
- if (geometry.attributes.color !== void 0) {
632
- pointsMaterial.vertexColors = true;
633
- } else {
634
- if (material.isMeshPhongMaterial) {
635
- pointsMaterial.color.copy(material.emissive);
636
- }
637
- }
638
- object = new Points(geometry, pointsMaterial);
639
- } else if (type === "line") {
640
- const lineMaterial = new LineBasicMaterial({ color: 16777215 });
641
- if (geometry.attributes.color !== void 0) {
642
- lineMaterial.vertexColors = true;
643
- } else {
644
- if (material.isMeshPhongMaterial) {
645
- lineMaterial.color.copy(material.emissive);
646
- }
647
- }
648
- object = new LineSegments(geometry, lineMaterial);
649
- } else {
650
- if (geometry._solid !== void 0) {
651
- material.side = geometry._solid ? FrontSide : DoubleSide;
652
- }
653
- if (geometry.attributes.color !== void 0) {
654
- material.vertexColors = true;
655
- }
656
- object = new Mesh(geometry, material);
657
- }
658
- } else {
659
- object = new Object3D();
660
- object.visible = false;
661
- }
662
- return object;
663
- }
664
- function buildAppearanceNode(node) {
665
- let material = new MeshPhongMaterial();
666
- let transformData;
667
- const fields = node.fields;
668
- for (let i = 0, l = fields.length; i < l; i++) {
669
- const field = fields[i];
670
- const fieldName = field.name;
671
- const fieldValues = field.values;
672
- switch (fieldName) {
673
- case "material":
674
- if (fieldValues[0] !== null) {
675
- const materialData = getNode(fieldValues[0]);
676
- if (materialData.diffuseColor)
677
- material.color.copy(materialData.diffuseColor);
678
- if (materialData.emissiveColor)
679
- material.emissive.copy(materialData.emissiveColor);
680
- if (materialData.shininess)
681
- material.shininess = materialData.shininess;
682
- if (materialData.specularColor)
683
- material.specular.copy(materialData.specularColor);
684
- if (materialData.transparency)
685
- material.opacity = 1 - materialData.transparency;
686
- if (materialData.transparency > 0)
687
- material.transparent = true;
688
- } else {
689
- material = new MeshBasicMaterial({ color: 0 });
690
- }
691
- break;
692
- case "texture":
693
- const textureNode = fieldValues[0];
694
- if (textureNode !== null) {
695
- if (textureNode.name === "ImageTexture" || textureNode.name === "PixelTexture") {
696
- material.map = getNode(textureNode);
697
- } else {
698
- }
699
- }
700
- break;
701
- case "textureTransform":
702
- if (fieldValues[0] !== null) {
703
- transformData = getNode(fieldValues[0]);
704
- }
705
- break;
706
- default:
707
- console.warn("THREE.VRMLLoader: Unknown field:", fieldName);
708
- break;
709
- }
710
- }
711
- if (material.map) {
712
- if (material.map.__type) {
713
- switch (material.map.__type) {
714
- case TEXTURE_TYPE.INTENSITY_ALPHA:
715
- material.opacity = 1;
716
- break;
717
- case TEXTURE_TYPE.RGB:
718
- material.color.set(16777215);
719
- break;
720
- case TEXTURE_TYPE.RGBA:
721
- material.color.set(16777215);
722
- material.opacity = 1;
723
- break;
724
- default:
725
- }
726
- delete material.map.__type;
727
- }
728
- if (transformData) {
729
- material.map.center.copy(transformData.center);
730
- material.map.rotation = transformData.rotation;
731
- material.map.repeat.copy(transformData.scale);
732
- material.map.offset.copy(transformData.translation);
733
- }
734
- }
735
- return material;
736
- }
737
- function buildMaterialNode(node) {
738
- const materialData = {};
739
- const fields = node.fields;
740
- for (let i = 0, l = fields.length; i < l; i++) {
741
- const field = fields[i];
742
- const fieldName = field.name;
743
- const fieldValues = field.values;
744
- switch (fieldName) {
745
- case "ambientIntensity":
746
- break;
747
- case "diffuseColor":
748
- materialData.diffuseColor = new Color(fieldValues[0], fieldValues[1], fieldValues[2]);
749
- break;
750
- case "emissiveColor":
751
- materialData.emissiveColor = new Color(fieldValues[0], fieldValues[1], fieldValues[2]);
752
- break;
753
- case "shininess":
754
- materialData.shininess = fieldValues[0];
755
- break;
756
- case "specularColor":
757
- materialData.emissiveColor = new Color(fieldValues[0], fieldValues[1], fieldValues[2]);
758
- break;
759
- case "transparency":
760
- materialData.transparency = fieldValues[0];
761
- break;
762
- default:
763
- console.warn("THREE.VRMLLoader: Unknown field:", fieldName);
764
- break;
765
- }
766
- }
767
- return materialData;
768
- }
769
- function parseHexColor(hex, textureType, color) {
770
- let value;
771
- switch (textureType) {
772
- case TEXTURE_TYPE.INTENSITY:
773
- value = parseInt(hex);
774
- color.r = value;
775
- color.g = value;
776
- color.b = value;
777
- color.a = 1;
778
- break;
779
- case TEXTURE_TYPE.INTENSITY_ALPHA:
780
- value = parseInt("0x" + hex.substring(2, 4));
781
- color.r = value;
782
- color.g = value;
783
- color.b = value;
784
- color.a = parseInt("0x" + hex.substring(4, 6));
785
- break;
786
- case TEXTURE_TYPE.RGB:
787
- color.r = parseInt("0x" + hex.substring(2, 4));
788
- color.g = parseInt("0x" + hex.substring(4, 6));
789
- color.b = parseInt("0x" + hex.substring(6, 8));
790
- color.a = 1;
791
- break;
792
- case TEXTURE_TYPE.RGBA:
793
- color.r = parseInt("0x" + hex.substring(2, 4));
794
- color.g = parseInt("0x" + hex.substring(4, 6));
795
- color.b = parseInt("0x" + hex.substring(6, 8));
796
- color.a = parseInt("0x" + hex.substring(8, 10));
797
- break;
798
- default:
799
- }
800
- }
801
- function getTextureType(num_components) {
802
- let type;
803
- switch (num_components) {
804
- case 1:
805
- type = TEXTURE_TYPE.INTENSITY;
806
- break;
807
- case 2:
808
- type = TEXTURE_TYPE.INTENSITY_ALPHA;
809
- break;
810
- case 3:
811
- type = TEXTURE_TYPE.RGB;
812
- break;
813
- case 4:
814
- type = TEXTURE_TYPE.RGBA;
815
- break;
816
- default:
817
- }
818
- return type;
819
- }
820
- function buildPixelTextureNode(node) {
821
- let texture;
822
- let wrapS = RepeatWrapping;
823
- let wrapT = RepeatWrapping;
824
- const fields = node.fields;
825
- for (let i = 0, l = fields.length; i < l; i++) {
826
- const field = fields[i];
827
- const fieldName = field.name;
828
- const fieldValues = field.values;
829
- switch (fieldName) {
830
- case "image":
831
- const width = fieldValues[0];
832
- const height = fieldValues[1];
833
- const num_components = fieldValues[2];
834
- const textureType = getTextureType(num_components);
835
- const data2 = new Uint8Array(4 * width * height);
836
- const color = { r: 0, g: 0, b: 0, a: 0 };
837
- for (let j = 3, k = 0, jl = fieldValues.length; j < jl; j++, k++) {
838
- parseHexColor(fieldValues[j], textureType, color);
839
- const stride = k * 4;
840
- data2[stride + 0] = color.r;
841
- data2[stride + 1] = color.g;
842
- data2[stride + 2] = color.b;
843
- data2[stride + 3] = color.a;
844
- }
845
- texture = new DataTexture(data2, width, height);
846
- texture.needsUpdate = true;
847
- texture.__type = textureType;
848
- break;
849
- case "repeatS":
850
- if (fieldValues[0] === false)
851
- wrapS = ClampToEdgeWrapping;
852
- break;
853
- case "repeatT":
854
- if (fieldValues[0] === false)
855
- wrapT = ClampToEdgeWrapping;
856
- break;
857
- default:
858
- console.warn("THREE.VRMLLoader: Unknown field:", fieldName);
859
- break;
860
- }
861
- }
862
- if (texture) {
863
- texture.wrapS = wrapS;
864
- texture.wrapT = wrapT;
865
- }
866
- return texture;
867
- }
868
- function buildImageTextureNode(node) {
869
- let texture;
870
- let wrapS = RepeatWrapping;
871
- let wrapT = RepeatWrapping;
872
- const fields = node.fields;
873
- for (let i = 0, l = fields.length; i < l; i++) {
874
- const field = fields[i];
875
- const fieldName = field.name;
876
- const fieldValues = field.values;
877
- switch (fieldName) {
878
- case "url":
879
- const url = fieldValues[0];
880
- if (url)
881
- texture = textureLoader.load(url);
882
- break;
883
- case "repeatS":
884
- if (fieldValues[0] === false)
885
- wrapS = ClampToEdgeWrapping;
886
- break;
887
- case "repeatT":
888
- if (fieldValues[0] === false)
889
- wrapT = ClampToEdgeWrapping;
890
- break;
891
- default:
892
- console.warn("THREE.VRMLLoader: Unknown field:", fieldName);
893
- break;
894
- }
895
- }
896
- if (texture) {
897
- texture.wrapS = wrapS;
898
- texture.wrapT = wrapT;
899
- }
900
- return texture;
901
- }
902
- function buildTextureTransformNode(node) {
903
- const transformData = {
904
- center: new Vector2(),
905
- rotation: new Vector2(),
906
- scale: new Vector2(),
907
- translation: new Vector2()
908
- };
909
- const fields = node.fields;
910
- for (let i = 0, l = fields.length; i < l; i++) {
911
- const field = fields[i];
912
- const fieldName = field.name;
913
- const fieldValues = field.values;
914
- switch (fieldName) {
915
- case "center":
916
- transformData.center.set(fieldValues[0], fieldValues[1]);
917
- break;
918
- case "rotation":
919
- transformData.rotation = fieldValues[0];
920
- break;
921
- case "scale":
922
- transformData.scale.set(fieldValues[0], fieldValues[1]);
923
- break;
924
- case "translation":
925
- transformData.translation.set(fieldValues[0], fieldValues[1]);
926
- break;
927
- default:
928
- console.warn("THREE.VRMLLoader: Unknown field:", fieldName);
929
- break;
930
- }
931
- }
932
- return transformData;
933
- }
934
- function buildGeometricNode(node) {
935
- return node.fields[0].values;
936
- }
937
- function buildWorldInfoNode(node) {
938
- const worldInfo = {};
939
- const fields = node.fields;
940
- for (let i = 0, l = fields.length; i < l; i++) {
941
- const field = fields[i];
942
- const fieldName = field.name;
943
- const fieldValues = field.values;
944
- switch (fieldName) {
945
- case "title":
946
- worldInfo.title = fieldValues[0];
947
- break;
948
- case "info":
949
- worldInfo.info = fieldValues;
950
- break;
951
- default:
952
- console.warn("THREE.VRMLLoader: Unknown field:", fieldName);
953
- break;
954
- }
955
- }
956
- return worldInfo;
957
- }
958
- function buildIndexedFaceSetNode(node) {
959
- let color, coord, normal, texCoord;
960
- let ccw = true, solid = true, creaseAngle = 0;
961
- let colorIndex, coordIndex, normalIndex, texCoordIndex;
962
- let colorPerVertex = true, normalPerVertex = true;
963
- const fields = node.fields;
964
- for (let i = 0, l = fields.length; i < l; i++) {
965
- const field = fields[i];
966
- const fieldName = field.name;
967
- const fieldValues = field.values;
968
- switch (fieldName) {
969
- case "color":
970
- const colorNode = fieldValues[0];
971
- if (colorNode !== null) {
972
- color = getNode(colorNode);
973
- }
974
- break;
975
- case "coord":
976
- const coordNode = fieldValues[0];
977
- if (coordNode !== null) {
978
- coord = getNode(coordNode);
979
- }
980
- break;
981
- case "normal":
982
- const normalNode = fieldValues[0];
983
- if (normalNode !== null) {
984
- normal = getNode(normalNode);
985
- }
986
- break;
987
- case "texCoord":
988
- const texCoordNode = fieldValues[0];
989
- if (texCoordNode !== null) {
990
- texCoord = getNode(texCoordNode);
991
- }
992
- break;
993
- case "ccw":
994
- ccw = fieldValues[0];
995
- break;
996
- case "colorIndex":
997
- colorIndex = fieldValues;
998
- break;
999
- case "colorPerVertex":
1000
- colorPerVertex = fieldValues[0];
1001
- break;
1002
- case "convex":
1003
- break;
1004
- case "coordIndex":
1005
- coordIndex = fieldValues;
1006
- break;
1007
- case "creaseAngle":
1008
- creaseAngle = fieldValues[0];
1009
- break;
1010
- case "normalIndex":
1011
- normalIndex = fieldValues;
1012
- break;
1013
- case "normalPerVertex":
1014
- normalPerVertex = fieldValues[0];
1015
- break;
1016
- case "solid":
1017
- solid = fieldValues[0];
1018
- break;
1019
- case "texCoordIndex":
1020
- texCoordIndex = fieldValues;
1021
- break;
1022
- default:
1023
- console.warn("THREE.VRMLLoader: Unknown field:", fieldName);
1024
- break;
1025
- }
1026
- }
1027
- if (coordIndex === void 0) {
1028
- console.warn("THREE.VRMLLoader: Missing coordIndex.");
1029
- return new BufferGeometry();
1030
- }
1031
- const triangulatedCoordIndex = triangulateFaceIndex(coordIndex, ccw);
1032
- let colorAttribute;
1033
- let normalAttribute;
1034
- let uvAttribute;
1035
- if (color) {
1036
- if (colorPerVertex === true) {
1037
- if (colorIndex && colorIndex.length > 0) {
1038
- const triangulatedColorIndex = triangulateFaceIndex(colorIndex, ccw);
1039
- colorAttribute = computeAttributeFromIndexedData(triangulatedCoordIndex, triangulatedColorIndex, color, 3);
1040
- } else {
1041
- colorAttribute = toNonIndexedAttribute(triangulatedCoordIndex, new Float32BufferAttribute(color, 3));
1042
- }
1043
- } else {
1044
- if (colorIndex && colorIndex.length > 0) {
1045
- const flattenFaceColors = flattenData(color, colorIndex);
1046
- const triangulatedFaceColors = triangulateFaceData(flattenFaceColors, coordIndex);
1047
- colorAttribute = computeAttributeFromFaceData(triangulatedCoordIndex, triangulatedFaceColors);
1048
- } else {
1049
- const triangulatedFaceColors = triangulateFaceData(color, coordIndex);
1050
- colorAttribute = computeAttributeFromFaceData(triangulatedCoordIndex, triangulatedFaceColors);
1051
- }
1052
- }
1053
- }
1054
- if (normal) {
1055
- if (normalPerVertex === true) {
1056
- if (normalIndex && normalIndex.length > 0) {
1057
- const triangulatedNormalIndex = triangulateFaceIndex(normalIndex, ccw);
1058
- normalAttribute = computeAttributeFromIndexedData(
1059
- triangulatedCoordIndex,
1060
- triangulatedNormalIndex,
1061
- normal,
1062
- 3
1063
- );
1064
- } else {
1065
- normalAttribute = toNonIndexedAttribute(triangulatedCoordIndex, new Float32BufferAttribute(normal, 3));
1066
- }
1067
- } else {
1068
- if (normalIndex && normalIndex.length > 0) {
1069
- const flattenFaceNormals = flattenData(normal, normalIndex);
1070
- const triangulatedFaceNormals = triangulateFaceData(flattenFaceNormals, coordIndex);
1071
- normalAttribute = computeAttributeFromFaceData(triangulatedCoordIndex, triangulatedFaceNormals);
1072
- } else {
1073
- const triangulatedFaceNormals = triangulateFaceData(normal, coordIndex);
1074
- normalAttribute = computeAttributeFromFaceData(triangulatedCoordIndex, triangulatedFaceNormals);
1075
- }
1076
- }
1077
- } else {
1078
- normalAttribute = computeNormalAttribute(triangulatedCoordIndex, coord, creaseAngle);
1079
- }
1080
- if (texCoord) {
1081
- if (texCoordIndex && texCoordIndex.length > 0) {
1082
- const triangulatedTexCoordIndex = triangulateFaceIndex(texCoordIndex, ccw);
1083
- uvAttribute = computeAttributeFromIndexedData(triangulatedCoordIndex, triangulatedTexCoordIndex, texCoord, 2);
1084
- } else {
1085
- uvAttribute = toNonIndexedAttribute(triangulatedCoordIndex, new Float32BufferAttribute(texCoord, 2));
1086
- }
1087
- }
1088
- const geometry = new BufferGeometry();
1089
- const positionAttribute = toNonIndexedAttribute(triangulatedCoordIndex, new Float32BufferAttribute(coord, 3));
1090
- geometry.setAttribute("position", positionAttribute);
1091
- geometry.setAttribute("normal", normalAttribute);
1092
- if (colorAttribute)
1093
- geometry.setAttribute("color", colorAttribute);
1094
- if (uvAttribute)
1095
- geometry.setAttribute("uv", uvAttribute);
1096
- geometry._solid = solid;
1097
- geometry._type = "mesh";
1098
- return geometry;
1099
- }
1100
- function buildIndexedLineSetNode(node) {
1101
- let color, coord;
1102
- let colorIndex, coordIndex;
1103
- let colorPerVertex = true;
1104
- const fields = node.fields;
1105
- for (let i = 0, l = fields.length; i < l; i++) {
1106
- const field = fields[i];
1107
- const fieldName = field.name;
1108
- const fieldValues = field.values;
1109
- switch (fieldName) {
1110
- case "color":
1111
- const colorNode = fieldValues[0];
1112
- if (colorNode !== null) {
1113
- color = getNode(colorNode);
1114
- }
1115
- break;
1116
- case "coord":
1117
- const coordNode = fieldValues[0];
1118
- if (coordNode !== null) {
1119
- coord = getNode(coordNode);
1120
- }
1121
- break;
1122
- case "colorIndex":
1123
- colorIndex = fieldValues;
1124
- break;
1125
- case "colorPerVertex":
1126
- colorPerVertex = fieldValues[0];
1127
- break;
1128
- case "coordIndex":
1129
- coordIndex = fieldValues;
1130
- break;
1131
- default:
1132
- console.warn("THREE.VRMLLoader: Unknown field:", fieldName);
1133
- break;
1134
- }
1135
- }
1136
- let colorAttribute;
1137
- const expandedLineIndex = expandLineIndex(coordIndex);
1138
- if (color) {
1139
- if (colorPerVertex === true) {
1140
- if (colorIndex.length > 0) {
1141
- const expandedColorIndex = expandLineIndex(colorIndex);
1142
- colorAttribute = computeAttributeFromIndexedData(expandedLineIndex, expandedColorIndex, color, 3);
1143
- } else {
1144
- colorAttribute = toNonIndexedAttribute(expandedLineIndex, new Float32BufferAttribute(color, 3));
1145
- }
1146
- } else {
1147
- if (colorIndex.length > 0) {
1148
- const flattenLineColors = flattenData(color, colorIndex);
1149
- const expandedLineColors = expandLineData(flattenLineColors, coordIndex);
1150
- colorAttribute = computeAttributeFromLineData(expandedLineIndex, expandedLineColors);
1151
- } else {
1152
- const expandedLineColors = expandLineData(color, coordIndex);
1153
- colorAttribute = computeAttributeFromLineData(expandedLineIndex, expandedLineColors);
1154
- }
1155
- }
1156
- }
1157
- const geometry = new BufferGeometry();
1158
- const positionAttribute = toNonIndexedAttribute(expandedLineIndex, new Float32BufferAttribute(coord, 3));
1159
- geometry.setAttribute("position", positionAttribute);
1160
- if (colorAttribute)
1161
- geometry.setAttribute("color", colorAttribute);
1162
- geometry._type = "line";
1163
- return geometry;
1164
- }
1165
- function buildPointSetNode(node) {
1166
- let color, coord;
1167
- const fields = node.fields;
1168
- for (let i = 0, l = fields.length; i < l; i++) {
1169
- const field = fields[i];
1170
- const fieldName = field.name;
1171
- const fieldValues = field.values;
1172
- switch (fieldName) {
1173
- case "color":
1174
- const colorNode = fieldValues[0];
1175
- if (colorNode !== null) {
1176
- color = getNode(colorNode);
1177
- }
1178
- break;
1179
- case "coord":
1180
- const coordNode = fieldValues[0];
1181
- if (coordNode !== null) {
1182
- coord = getNode(coordNode);
1183
- }
1184
- break;
1185
- default:
1186
- console.warn("THREE.VRMLLoader: Unknown field:", fieldName);
1187
- break;
1188
- }
1189
- }
1190
- const geometry = new BufferGeometry();
1191
- geometry.setAttribute("position", new Float32BufferAttribute(coord, 3));
1192
- if (color)
1193
- geometry.setAttribute("color", new Float32BufferAttribute(color, 3));
1194
- geometry._type = "points";
1195
- return geometry;
1196
- }
1197
- function buildBoxNode(node) {
1198
- const size = new Vector3(2, 2, 2);
1199
- const fields = node.fields;
1200
- for (let i = 0, l = fields.length; i < l; i++) {
1201
- const field = fields[i];
1202
- const fieldName = field.name;
1203
- const fieldValues = field.values;
1204
- switch (fieldName) {
1205
- case "size":
1206
- size.x = fieldValues[0];
1207
- size.y = fieldValues[1];
1208
- size.z = fieldValues[2];
1209
- break;
1210
- default:
1211
- console.warn("THREE.VRMLLoader: Unknown field:", fieldName);
1212
- break;
1213
- }
1214
- }
1215
- const geometry = new BoxGeometry(size.x, size.y, size.z);
1216
- return geometry;
1217
- }
1218
- function buildConeNode(node) {
1219
- let radius = 1, height = 2, openEnded = false;
1220
- const fields = node.fields;
1221
- for (let i = 0, l = fields.length; i < l; i++) {
1222
- const field = fields[i];
1223
- const fieldName = field.name;
1224
- const fieldValues = field.values;
1225
- switch (fieldName) {
1226
- case "bottom":
1227
- openEnded = !fieldValues[0];
1228
- break;
1229
- case "bottomRadius":
1230
- radius = fieldValues[0];
1231
- break;
1232
- case "height":
1233
- height = fieldValues[0];
1234
- break;
1235
- case "side":
1236
- break;
1237
- default:
1238
- console.warn("THREE.VRMLLoader: Unknown field:", fieldName);
1239
- break;
1240
- }
1241
- }
1242
- const geometry = new ConeGeometry(radius, height, 16, 1, openEnded);
1243
- return geometry;
1244
- }
1245
- function buildCylinderNode(node) {
1246
- let radius = 1, height = 2;
1247
- const fields = node.fields;
1248
- for (let i = 0, l = fields.length; i < l; i++) {
1249
- const field = fields[i];
1250
- const fieldName = field.name;
1251
- const fieldValues = field.values;
1252
- switch (fieldName) {
1253
- case "bottom":
1254
- break;
1255
- case "radius":
1256
- radius = fieldValues[0];
1257
- break;
1258
- case "height":
1259
- height = fieldValues[0];
1260
- break;
1261
- case "side":
1262
- break;
1263
- case "top":
1264
- break;
1265
- default:
1266
- console.warn("THREE.VRMLLoader: Unknown field:", fieldName);
1267
- break;
1268
- }
1269
- }
1270
- const geometry = new CylinderGeometry(radius, radius, height, 16, 1);
1271
- return geometry;
1272
- }
1273
- function buildSphereNode(node) {
1274
- let radius = 1;
1275
- const fields = node.fields;
1276
- for (let i = 0, l = fields.length; i < l; i++) {
1277
- const field = fields[i];
1278
- const fieldName = field.name;
1279
- const fieldValues = field.values;
1280
- switch (fieldName) {
1281
- case "radius":
1282
- radius = fieldValues[0];
1283
- break;
1284
- default:
1285
- console.warn("THREE.VRMLLoader: Unknown field:", fieldName);
1286
- break;
1287
- }
1288
- }
1289
- const geometry = new SphereGeometry(radius, 16, 16);
1290
- return geometry;
1291
- }
1292
- function buildElevationGridNode(node) {
1293
- let color;
1294
- let normal;
1295
- let texCoord;
1296
- let height;
1297
- let colorPerVertex = true;
1298
- let normalPerVertex = true;
1299
- let solid = true;
1300
- let ccw = true;
1301
- let creaseAngle = 0;
1302
- let xDimension = 2;
1303
- let zDimension = 2;
1304
- let xSpacing = 1;
1305
- let zSpacing = 1;
1306
- const fields = node.fields;
1307
- for (let i = 0, l = fields.length; i < l; i++) {
1308
- const field = fields[i];
1309
- const fieldName = field.name;
1310
- const fieldValues = field.values;
1311
- switch (fieldName) {
1312
- case "color":
1313
- const colorNode = fieldValues[0];
1314
- if (colorNode !== null) {
1315
- color = getNode(colorNode);
1316
- }
1317
- break;
1318
- case "normal":
1319
- const normalNode = fieldValues[0];
1320
- if (normalNode !== null) {
1321
- normal = getNode(normalNode);
1322
- }
1323
- break;
1324
- case "texCoord":
1325
- const texCoordNode = fieldValues[0];
1326
- if (texCoordNode !== null) {
1327
- texCoord = getNode(texCoordNode);
1328
- }
1329
- break;
1330
- case "height":
1331
- height = fieldValues;
1332
- break;
1333
- case "ccw":
1334
- ccw = fieldValues[0];
1335
- break;
1336
- case "colorPerVertex":
1337
- colorPerVertex = fieldValues[0];
1338
- break;
1339
- case "creaseAngle":
1340
- creaseAngle = fieldValues[0];
1341
- break;
1342
- case "normalPerVertex":
1343
- normalPerVertex = fieldValues[0];
1344
- break;
1345
- case "solid":
1346
- solid = fieldValues[0];
1347
- break;
1348
- case "xDimension":
1349
- xDimension = fieldValues[0];
1350
- break;
1351
- case "xSpacing":
1352
- xSpacing = fieldValues[0];
1353
- break;
1354
- case "zDimension":
1355
- zDimension = fieldValues[0];
1356
- break;
1357
- case "zSpacing":
1358
- zSpacing = fieldValues[0];
1359
- break;
1360
- default:
1361
- console.warn("THREE.VRMLLoader: Unknown field:", fieldName);
1362
- break;
1363
- }
1364
- }
1365
- const vertices = [];
1366
- const normals = [];
1367
- const colors = [];
1368
- const uvs = [];
1369
- for (let i = 0; i < zDimension; i++) {
1370
- for (let j = 0; j < xDimension; j++) {
1371
- const index = i * xDimension + j;
1372
- const x = xSpacing * i;
1373
- const y = height[index];
1374
- const z = zSpacing * j;
1375
- vertices.push(x, y, z);
1376
- if (color && colorPerVertex === true) {
1377
- const r = color[index * 3 + 0];
1378
- const g = color[index * 3 + 1];
1379
- const b = color[index * 3 + 2];
1380
- colors.push(r, g, b);
1381
- }
1382
- if (normal && normalPerVertex === true) {
1383
- const xn = normal[index * 3 + 0];
1384
- const yn = normal[index * 3 + 1];
1385
- const zn = normal[index * 3 + 2];
1386
- normals.push(xn, yn, zn);
1387
- }
1388
- if (texCoord) {
1389
- const s = texCoord[index * 2 + 0];
1390
- const t = texCoord[index * 2 + 1];
1391
- uvs.push(s, t);
1392
- } else {
1393
- uvs.push(i / (xDimension - 1), j / (zDimension - 1));
1394
- }
1395
- }
1396
- }
1397
- const indices = [];
1398
- for (let i = 0; i < xDimension - 1; i++) {
1399
- for (let j = 0; j < zDimension - 1; j++) {
1400
- const a = i + j * xDimension;
1401
- const b = i + (j + 1) * xDimension;
1402
- const c = i + 1 + (j + 1) * xDimension;
1403
- const d = i + 1 + j * xDimension;
1404
- if (ccw === true) {
1405
- indices.push(a, c, b);
1406
- indices.push(c, a, d);
1407
- } else {
1408
- indices.push(a, b, c);
1409
- indices.push(c, d, a);
1410
- }
1411
- }
1412
- }
1413
- const positionAttribute = toNonIndexedAttribute(indices, new Float32BufferAttribute(vertices, 3));
1414
- const uvAttribute = toNonIndexedAttribute(indices, new Float32BufferAttribute(uvs, 2));
1415
- let colorAttribute;
1416
- let normalAttribute;
1417
- if (color) {
1418
- if (colorPerVertex === false) {
1419
- for (let i = 0; i < xDimension - 1; i++) {
1420
- for (let j = 0; j < zDimension - 1; j++) {
1421
- const index = i + j * (xDimension - 1);
1422
- const r = color[index * 3 + 0];
1423
- const g = color[index * 3 + 1];
1424
- const b = color[index * 3 + 2];
1425
- colors.push(r, g, b);
1426
- colors.push(r, g, b);
1427
- colors.push(r, g, b);
1428
- colors.push(r, g, b);
1429
- colors.push(r, g, b);
1430
- colors.push(r, g, b);
1431
- }
1432
- }
1433
- colorAttribute = new Float32BufferAttribute(colors, 3);
1434
- } else {
1435
- colorAttribute = toNonIndexedAttribute(indices, new Float32BufferAttribute(colors, 3));
1436
- }
1437
- }
1438
- if (normal) {
1439
- if (normalPerVertex === false) {
1440
- for (let i = 0; i < xDimension - 1; i++) {
1441
- for (let j = 0; j < zDimension - 1; j++) {
1442
- const index = i + j * (xDimension - 1);
1443
- const xn = normal[index * 3 + 0];
1444
- const yn = normal[index * 3 + 1];
1445
- const zn = normal[index * 3 + 2];
1446
- normals.push(xn, yn, zn);
1447
- normals.push(xn, yn, zn);
1448
- normals.push(xn, yn, zn);
1449
- normals.push(xn, yn, zn);
1450
- normals.push(xn, yn, zn);
1451
- normals.push(xn, yn, zn);
1452
- }
1453
- }
1454
- normalAttribute = new Float32BufferAttribute(normals, 3);
1455
- } else {
1456
- normalAttribute = toNonIndexedAttribute(indices, new Float32BufferAttribute(normals, 3));
1457
- }
1458
- } else {
1459
- normalAttribute = computeNormalAttribute(indices, vertices, creaseAngle);
1460
- }
1461
- const geometry = new BufferGeometry();
1462
- geometry.setAttribute("position", positionAttribute);
1463
- geometry.setAttribute("normal", normalAttribute);
1464
- geometry.setAttribute("uv", uvAttribute);
1465
- if (colorAttribute)
1466
- geometry.setAttribute("color", colorAttribute);
1467
- geometry._solid = solid;
1468
- geometry._type = "mesh";
1469
- return geometry;
1470
- }
1471
- function buildExtrusionNode(node) {
1472
- let crossSection = [1, 1, 1, -1, -1, -1, -1, 1, 1, 1];
1473
- let spine = [0, 0, 0, 0, 1, 0];
1474
- let scale;
1475
- let orientation;
1476
- let beginCap = true;
1477
- let ccw = true;
1478
- let creaseAngle = 0;
1479
- let endCap = true;
1480
- let solid = true;
1481
- const fields = node.fields;
1482
- for (let i = 0, l = fields.length; i < l; i++) {
1483
- const field = fields[i];
1484
- const fieldName = field.name;
1485
- const fieldValues = field.values;
1486
- switch (fieldName) {
1487
- case "beginCap":
1488
- beginCap = fieldValues[0];
1489
- break;
1490
- case "ccw":
1491
- ccw = fieldValues[0];
1492
- break;
1493
- case "convex":
1494
- break;
1495
- case "creaseAngle":
1496
- creaseAngle = fieldValues[0];
1497
- break;
1498
- case "crossSection":
1499
- crossSection = fieldValues;
1500
- break;
1501
- case "endCap":
1502
- endCap = fieldValues[0];
1503
- break;
1504
- case "orientation":
1505
- orientation = fieldValues;
1506
- break;
1507
- case "scale":
1508
- scale = fieldValues;
1509
- break;
1510
- case "solid":
1511
- solid = fieldValues[0];
1512
- break;
1513
- case "spine":
1514
- spine = fieldValues;
1515
- break;
1516
- default:
1517
- console.warn("THREE.VRMLLoader: Unknown field:", fieldName);
1518
- break;
1519
- }
1520
- }
1521
- const crossSectionClosed = crossSection[0] === crossSection[crossSection.length - 2] && crossSection[1] === crossSection[crossSection.length - 1];
1522
- const vertices = [];
1523
- const spineVector = new Vector3();
1524
- const scaling = new Vector3();
1525
- const axis = new Vector3();
1526
- const vertex = new Vector3();
1527
- const quaternion = new Quaternion();
1528
- for (let i = 0, j = 0, o = 0, il = spine.length; i < il; i += 3, j += 2, o += 4) {
1529
- spineVector.fromArray(spine, i);
1530
- scaling.x = scale ? scale[j + 0] : 1;
1531
- scaling.y = 1;
1532
- scaling.z = scale ? scale[j + 1] : 1;
1533
- axis.x = orientation ? orientation[o + 0] : 0;
1534
- axis.y = orientation ? orientation[o + 1] : 0;
1535
- axis.z = orientation ? orientation[o + 2] : 1;
1536
- const angle = orientation ? orientation[o + 3] : 0;
1537
- for (let k = 0, kl = crossSection.length; k < kl; k += 2) {
1538
- vertex.x = crossSection[k + 0];
1539
- vertex.y = 0;
1540
- vertex.z = crossSection[k + 1];
1541
- vertex.multiply(scaling);
1542
- quaternion.setFromAxisAngle(axis, angle);
1543
- vertex.applyQuaternion(quaternion);
1544
- vertex.add(spineVector);
1545
- vertices.push(vertex.x, vertex.y, vertex.z);
1546
- }
1547
- }
1548
- const indices = [];
1549
- const spineCount = spine.length / 3;
1550
- const crossSectionCount = crossSection.length / 2;
1551
- for (let i = 0; i < spineCount - 1; i++) {
1552
- for (let j = 0; j < crossSectionCount - 1; j++) {
1553
- const a = j + i * crossSectionCount;
1554
- let b = j + 1 + i * crossSectionCount;
1555
- const c = j + (i + 1) * crossSectionCount;
1556
- let d = j + 1 + (i + 1) * crossSectionCount;
1557
- if (j === crossSectionCount - 2 && crossSectionClosed === true) {
1558
- b = i * crossSectionCount;
1559
- d = (i + 1) * crossSectionCount;
1560
- }
1561
- if (ccw === true) {
1562
- indices.push(a, b, c);
1563
- indices.push(c, b, d);
1564
- } else {
1565
- indices.push(a, c, b);
1566
- indices.push(c, d, b);
1567
- }
1568
- }
1569
- }
1570
- if (beginCap === true || endCap === true) {
1571
- const contour = [];
1572
- for (let i = 0, l = crossSection.length; i < l; i += 2) {
1573
- contour.push(new Vector2(crossSection[i], crossSection[i + 1]));
1574
- }
1575
- const faces = ShapeUtils.triangulateShape(contour, []);
1576
- const capIndices = [];
1577
- for (let i = 0, l = faces.length; i < l; i++) {
1578
- const face = faces[i];
1579
- capIndices.push(face[0], face[1], face[2]);
1580
- }
1581
- if (beginCap === true) {
1582
- for (let i = 0, l = capIndices.length; i < l; i += 3) {
1583
- if (ccw === true) {
1584
- indices.push(capIndices[i + 0], capIndices[i + 1], capIndices[i + 2]);
1585
- } else {
1586
- indices.push(capIndices[i + 0], capIndices[i + 2], capIndices[i + 1]);
1587
- }
1588
- }
1589
- }
1590
- if (endCap === true) {
1591
- const indexOffset = crossSectionCount * (spineCount - 1);
1592
- for (let i = 0, l = capIndices.length; i < l; i += 3) {
1593
- if (ccw === true) {
1594
- indices.push(
1595
- indexOffset + capIndices[i + 0],
1596
- indexOffset + capIndices[i + 2],
1597
- indexOffset + capIndices[i + 1]
1598
- );
1599
- } else {
1600
- indices.push(
1601
- indexOffset + capIndices[i + 0],
1602
- indexOffset + capIndices[i + 1],
1603
- indexOffset + capIndices[i + 2]
1604
- );
1605
- }
1606
- }
1607
- }
1608
- }
1609
- const positionAttribute = toNonIndexedAttribute(indices, new Float32BufferAttribute(vertices, 3));
1610
- const normalAttribute = computeNormalAttribute(indices, vertices, creaseAngle);
1611
- const geometry = new BufferGeometry();
1612
- geometry.setAttribute("position", positionAttribute);
1613
- geometry.setAttribute("normal", normalAttribute);
1614
- geometry._solid = solid;
1615
- geometry._type = "mesh";
1616
- return geometry;
1617
- }
1618
- function resolveUSE(identifier) {
1619
- const node = nodeMap[identifier];
1620
- const build = getNode(node);
1621
- return build.isObject3D || build.isMaterial ? build.clone() : build;
1622
- }
1623
- function parseFieldChildren(children, owner) {
1624
- for (let i = 0, l = children.length; i < l; i++) {
1625
- const object = getNode(children[i]);
1626
- if (object instanceof Object3D)
1627
- owner.add(object);
1628
- }
1629
- }
1630
- function triangulateFaceIndex(index, ccw) {
1631
- const indices = [];
1632
- let start = 0;
1633
- for (let i = 0, l = index.length; i < l; i++) {
1634
- const i1 = index[start];
1635
- const i2 = index[i + (ccw ? 1 : 2)];
1636
- const i3 = index[i + (ccw ? 2 : 1)];
1637
- indices.push(i1, i2, i3);
1638
- if (index[i + 3] === -1 || i + 3 >= l) {
1639
- i += 3;
1640
- start = i + 1;
1641
- }
1642
- }
1643
- return indices;
1644
- }
1645
- function triangulateFaceData(data2, index) {
1646
- const triangulatedData = [];
1647
- let start = 0;
1648
- for (let i = 0, l = index.length; i < l; i++) {
1649
- const stride = start * 3;
1650
- const x = data2[stride];
1651
- const y = data2[stride + 1];
1652
- const z = data2[stride + 2];
1653
- triangulatedData.push(x, y, z);
1654
- if (index[i + 3] === -1 || i + 3 >= l) {
1655
- i += 3;
1656
- start++;
1657
- }
1658
- }
1659
- return triangulatedData;
1660
- }
1661
- function flattenData(data2, index) {
1662
- const flattenData2 = [];
1663
- for (let i = 0, l = index.length; i < l; i++) {
1664
- const i1 = index[i];
1665
- const stride = i1 * 3;
1666
- const x = data2[stride];
1667
- const y = data2[stride + 1];
1668
- const z = data2[stride + 2];
1669
- flattenData2.push(x, y, z);
1670
- }
1671
- return flattenData2;
1672
- }
1673
- function expandLineIndex(index) {
1674
- const indices = [];
1675
- for (let i = 0, l = index.length; i < l; i++) {
1676
- const i1 = index[i];
1677
- const i2 = index[i + 1];
1678
- indices.push(i1, i2);
1679
- if (index[i + 2] === -1 || i + 2 >= l) {
1680
- i += 2;
1681
- }
1682
- }
1683
- return indices;
1684
- }
1685
- function expandLineData(data2, index) {
1686
- const triangulatedData = [];
1687
- let start = 0;
1688
- for (let i = 0, l = index.length; i < l; i++) {
1689
- const stride = start * 3;
1690
- const x = data2[stride];
1691
- const y = data2[stride + 1];
1692
- const z = data2[stride + 2];
1693
- triangulatedData.push(x, y, z);
1694
- if (index[i + 2] === -1 || i + 2 >= l) {
1695
- i += 2;
1696
- start++;
1697
- }
1698
- }
1699
- return triangulatedData;
1700
- }
1701
- const vA = new Vector3();
1702
- const vB = new Vector3();
1703
- const vC = new Vector3();
1704
- const uvA = new Vector2();
1705
- const uvB = new Vector2();
1706
- const uvC = new Vector2();
1707
- function computeAttributeFromIndexedData(coordIndex, index, data2, itemSize) {
1708
- const array = [];
1709
- for (let i = 0, l = coordIndex.length; i < l; i += 3) {
1710
- const a = index[i];
1711
- const b = index[i + 1];
1712
- const c = index[i + 2];
1713
- if (itemSize === 2) {
1714
- uvA.fromArray(data2, a * itemSize);
1715
- uvB.fromArray(data2, b * itemSize);
1716
- uvC.fromArray(data2, c * itemSize);
1717
- array.push(uvA.x, uvA.y);
1718
- array.push(uvB.x, uvB.y);
1719
- array.push(uvC.x, uvC.y);
1720
- } else {
1721
- vA.fromArray(data2, a * itemSize);
1722
- vB.fromArray(data2, b * itemSize);
1723
- vC.fromArray(data2, c * itemSize);
1724
- array.push(vA.x, vA.y, vA.z);
1725
- array.push(vB.x, vB.y, vB.z);
1726
- array.push(vC.x, vC.y, vC.z);
1727
- }
1728
- }
1729
- return new Float32BufferAttribute(array, itemSize);
1730
- }
1731
- function computeAttributeFromFaceData(index, faceData) {
1732
- const array = [];
1733
- for (let i = 0, j = 0, l = index.length; i < l; i += 3, j++) {
1734
- vA.fromArray(faceData, j * 3);
1735
- array.push(vA.x, vA.y, vA.z);
1736
- array.push(vA.x, vA.y, vA.z);
1737
- array.push(vA.x, vA.y, vA.z);
1738
- }
1739
- return new Float32BufferAttribute(array, 3);
1740
- }
1741
- function computeAttributeFromLineData(index, lineData) {
1742
- const array = [];
1743
- for (let i = 0, j = 0, l = index.length; i < l; i += 2, j++) {
1744
- vA.fromArray(lineData, j * 3);
1745
- array.push(vA.x, vA.y, vA.z);
1746
- array.push(vA.x, vA.y, vA.z);
1747
- }
1748
- return new Float32BufferAttribute(array, 3);
1749
- }
1750
- function toNonIndexedAttribute(indices, attribute) {
1751
- const array = attribute.array;
1752
- const itemSize = attribute.itemSize;
1753
- const array2 = new array.constructor(indices.length * itemSize);
1754
- let index = 0, index2 = 0;
1755
- for (let i = 0, l = indices.length; i < l; i++) {
1756
- index = indices[i] * itemSize;
1757
- for (let j = 0; j < itemSize; j++) {
1758
- array2[index2++] = array[index++];
1759
- }
1760
- }
1761
- return new Float32BufferAttribute(array2, itemSize);
1762
- }
1763
- const ab = new Vector3();
1764
- const cb = new Vector3();
1765
- function computeNormalAttribute(index, coord, creaseAngle) {
1766
- const faces = [];
1767
- const vertexNormals = {};
1768
- for (let i = 0, l = index.length; i < l; i += 3) {
1769
- const a = index[i];
1770
- const b = index[i + 1];
1771
- const c = index[i + 2];
1772
- const face = new Face(a, b, c);
1773
- vA.fromArray(coord, a * 3);
1774
- vB.fromArray(coord, b * 3);
1775
- vC.fromArray(coord, c * 3);
1776
- cb.subVectors(vC, vB);
1777
- ab.subVectors(vA, vB);
1778
- cb.cross(ab);
1779
- cb.normalize();
1780
- face.normal.copy(cb);
1781
- if (vertexNormals[a] === void 0)
1782
- vertexNormals[a] = [];
1783
- if (vertexNormals[b] === void 0)
1784
- vertexNormals[b] = [];
1785
- if (vertexNormals[c] === void 0)
1786
- vertexNormals[c] = [];
1787
- vertexNormals[a].push(face.normal);
1788
- vertexNormals[b].push(face.normal);
1789
- vertexNormals[c].push(face.normal);
1790
- faces.push(face);
1791
- }
1792
- const normals = [];
1793
- for (let i = 0, l = faces.length; i < l; i++) {
1794
- const face = faces[i];
1795
- const nA = weightedNormal(vertexNormals[face.a], face.normal, creaseAngle);
1796
- const nB = weightedNormal(vertexNormals[face.b], face.normal, creaseAngle);
1797
- const nC = weightedNormal(vertexNormals[face.c], face.normal, creaseAngle);
1798
- vA.fromArray(coord, face.a * 3);
1799
- vB.fromArray(coord, face.b * 3);
1800
- vC.fromArray(coord, face.c * 3);
1801
- normals.push(nA.x, nA.y, nA.z);
1802
- normals.push(nB.x, nB.y, nB.z);
1803
- normals.push(nC.x, nC.y, nC.z);
1804
- }
1805
- return new Float32BufferAttribute(normals, 3);
1806
- }
1807
- function weightedNormal(normals, vector, creaseAngle) {
1808
- const normal = new Vector3();
1809
- if (creaseAngle === 0) {
1810
- normal.copy(vector);
1811
- } else {
1812
- for (let i = 0, l = normals.length; i < l; i++) {
1813
- if (normals[i].angleTo(vector) < creaseAngle) {
1814
- normal.add(normals[i]);
1815
- }
1816
- }
1817
- }
1818
- return normal.normalize();
1819
- }
1820
- function toColorArray(colors) {
1821
- const array = [];
1822
- for (let i = 0, l = colors.length; i < l; i += 3) {
1823
- array.push(new Color(colors[i], colors[i + 1], colors[i + 2]));
1824
- }
1825
- return array;
1826
- }
1827
- function paintFaces(geometry, radius, angles, colors, topDown) {
1828
- const thresholds = [];
1829
- const startAngle = topDown === true ? 0 : Math.PI;
1830
- for (let i = 0, l = colors.length; i < l; i++) {
1831
- let angle = i === 0 ? 0 : angles[i - 1];
1832
- angle = topDown === true ? angle : startAngle - angle;
1833
- const point = new Vector3();
1834
- point.setFromSphericalCoords(radius, angle, 0);
1835
- thresholds.push(point);
1836
- }
1837
- const indices = geometry.index;
1838
- const positionAttribute = geometry.attributes.position;
1839
- const colorAttribute = new BufferAttribute(new Float32Array(geometry.attributes.position.count * 3), 3);
1840
- const position = new Vector3();
1841
- const color = new Color();
1842
- for (let i = 0; i < indices.count; i++) {
1843
- const index = indices.getX(i);
1844
- position.fromBufferAttribute(positionAttribute, index);
1845
- let thresholdIndexA, thresholdIndexB;
1846
- let t = 1;
1847
- for (let j = 1; j < thresholds.length; j++) {
1848
- thresholdIndexA = j - 1;
1849
- thresholdIndexB = j;
1850
- const thresholdA = thresholds[thresholdIndexA];
1851
- const thresholdB = thresholds[thresholdIndexB];
1852
- if (topDown === true) {
1853
- if (position.y <= thresholdA.y && position.y > thresholdB.y) {
1854
- t = Math.abs(thresholdA.y - position.y) / Math.abs(thresholdA.y - thresholdB.y);
1855
- break;
1856
- }
1857
- } else {
1858
- if (position.y >= thresholdA.y && position.y < thresholdB.y) {
1859
- t = Math.abs(thresholdA.y - position.y) / Math.abs(thresholdA.y - thresholdB.y);
1860
- break;
1861
- }
1862
- }
1863
- }
1864
- const colorA = colors[thresholdIndexA];
1865
- const colorB = colors[thresholdIndexB];
1866
- color.copy(colorA).lerp(colorB, t);
1867
- colorAttribute.setXYZ(index, color.r, color.g, color.b);
1868
- }
1869
- geometry.setAttribute("color", colorAttribute);
1870
- }
1871
- const textureLoader = new TextureLoader(this.manager);
1872
- textureLoader.setPath(this.resourcePath || path).setCrossOrigin(this.crossOrigin);
1873
- if (data.indexOf("#VRML V2.0") === -1) {
1874
- throw Error("THREE.VRMLLexer: Version of VRML asset not supported.");
1875
- }
1876
- const tree = generateVRMLTree(data);
1877
- const scene = parseTree(tree);
1878
- return scene;
1879
- }
1880
- }
1881
- class VRMLLexer {
1882
- constructor(tokens) {
1883
- this.lexer = new Lexer(tokens);
1884
- }
1885
- lex(inputText) {
1886
- const lexingResult = this.lexer.tokenize(inputText);
1887
- if (lexingResult.errors.length > 0) {
1888
- console.error(lexingResult.errors);
1889
- throw Error("THREE.VRMLLexer: Lexing errors detected.");
1890
- }
1891
- return lexingResult;
1892
- }
1893
- }
1894
- class VRMLParser extends CstParser {
1895
- constructor(tokenVocabulary) {
1896
- super(tokenVocabulary);
1897
- const $ = this;
1898
- const Version = tokenVocabulary["Version"];
1899
- const LCurly = tokenVocabulary["LCurly"];
1900
- const RCurly = tokenVocabulary["RCurly"];
1901
- const LSquare = tokenVocabulary["LSquare"];
1902
- const RSquare = tokenVocabulary["RSquare"];
1903
- const Identifier = tokenVocabulary["Identifier"];
1904
- const RouteIdentifier = tokenVocabulary["RouteIdentifier"];
1905
- const StringLiteral = tokenVocabulary["StringLiteral"];
1906
- const HexLiteral = tokenVocabulary["HexLiteral"];
1907
- const NumberLiteral = tokenVocabulary["NumberLiteral"];
1908
- const TrueLiteral = tokenVocabulary["TrueLiteral"];
1909
- const FalseLiteral = tokenVocabulary["FalseLiteral"];
1910
- const NullLiteral = tokenVocabulary["NullLiteral"];
1911
- const DEF = tokenVocabulary["DEF"];
1912
- const USE = tokenVocabulary["USE"];
1913
- const ROUTE = tokenVocabulary["ROUTE"];
1914
- const TO = tokenVocabulary["TO"];
1915
- const NodeName = tokenVocabulary["NodeName"];
1916
- $.RULE("vrml", function() {
1917
- $.SUBRULE($.version);
1918
- $.AT_LEAST_ONE(function() {
1919
- $.SUBRULE($.node);
1920
- });
1921
- $.MANY(function() {
1922
- $.SUBRULE($.route);
1923
- });
1924
- });
1925
- $.RULE("version", function() {
1926
- $.CONSUME(Version);
1927
- });
1928
- $.RULE("node", function() {
1929
- $.OPTION(function() {
1930
- $.SUBRULE($.def);
1931
- });
1932
- $.CONSUME(NodeName);
1933
- $.CONSUME(LCurly);
1934
- $.MANY(function() {
1935
- $.SUBRULE($.field);
1936
- });
1937
- $.CONSUME(RCurly);
1938
- });
1939
- $.RULE("field", function() {
1940
- $.CONSUME(Identifier);
1941
- $.OR2([
1942
- {
1943
- ALT: function() {
1944
- $.SUBRULE($.singleFieldValue);
1945
- }
1946
- },
1947
- {
1948
- ALT: function() {
1949
- $.SUBRULE($.multiFieldValue);
1950
- }
1951
- }
1952
- ]);
1953
- });
1954
- $.RULE("def", function() {
1955
- $.CONSUME(DEF);
1956
- $.OR([
1957
- {
1958
- ALT: function() {
1959
- $.CONSUME(Identifier);
1960
- }
1961
- },
1962
- {
1963
- ALT: function() {
1964
- $.CONSUME(NodeName);
1965
- }
1966
- }
1967
- ]);
1968
- });
1969
- $.RULE("use", function() {
1970
- $.CONSUME(USE);
1971
- $.OR([
1972
- {
1973
- ALT: function() {
1974
- $.CONSUME(Identifier);
1975
- }
1976
- },
1977
- {
1978
- ALT: function() {
1979
- $.CONSUME(NodeName);
1980
- }
1981
- }
1982
- ]);
1983
- });
1984
- $.RULE("singleFieldValue", function() {
1985
- $.AT_LEAST_ONE(function() {
1986
- $.OR([
1987
- {
1988
- ALT: function() {
1989
- $.SUBRULE($.node);
1990
- }
1991
- },
1992
- {
1993
- ALT: function() {
1994
- $.SUBRULE($.use);
1995
- }
1996
- },
1997
- {
1998
- ALT: function() {
1999
- $.CONSUME(StringLiteral);
2000
- }
2001
- },
2002
- {
2003
- ALT: function() {
2004
- $.CONSUME(HexLiteral);
2005
- }
2006
- },
2007
- {
2008
- ALT: function() {
2009
- $.CONSUME(NumberLiteral);
2010
- }
2011
- },
2012
- {
2013
- ALT: function() {
2014
- $.CONSUME(TrueLiteral);
2015
- }
2016
- },
2017
- {
2018
- ALT: function() {
2019
- $.CONSUME(FalseLiteral);
2020
- }
2021
- },
2022
- {
2023
- ALT: function() {
2024
- $.CONSUME(NullLiteral);
2025
- }
2026
- }
2027
- ]);
2028
- });
2029
- });
2030
- $.RULE("multiFieldValue", function() {
2031
- $.CONSUME(LSquare);
2032
- $.MANY(function() {
2033
- $.OR([
2034
- {
2035
- ALT: function() {
2036
- $.SUBRULE($.node);
2037
- }
2038
- },
2039
- {
2040
- ALT: function() {
2041
- $.SUBRULE($.use);
2042
- }
2043
- },
2044
- {
2045
- ALT: function() {
2046
- $.CONSUME(StringLiteral);
2047
- }
2048
- },
2049
- {
2050
- ALT: function() {
2051
- $.CONSUME(HexLiteral);
2052
- }
2053
- },
2054
- {
2055
- ALT: function() {
2056
- $.CONSUME(NumberLiteral);
2057
- }
2058
- },
2059
- {
2060
- ALT: function() {
2061
- $.CONSUME(NullLiteral);
2062
- }
2063
- }
2064
- ]);
2065
- });
2066
- $.CONSUME(RSquare);
2067
- });
2068
- $.RULE("route", function() {
2069
- $.CONSUME(ROUTE);
2070
- $.CONSUME(RouteIdentifier);
2071
- $.CONSUME(TO);
2072
- $.CONSUME2(RouteIdentifier);
2073
- });
2074
- this.performSelfAnalysis();
2075
- }
2076
- }
2077
- class Face {
2078
- constructor(a, b, c) {
2079
- this.a = a;
2080
- this.b = b;
2081
- this.c = c;
2082
- this.normal = new Vector3();
2083
- }
2084
- }
2085
- const TEXTURE_TYPE = {
2086
- INTENSITY: 1,
2087
- INTENSITY_ALPHA: 2,
2088
- RGB: 3,
2089
- RGBA: 4
2090
- };
2091
- export {
2092
- VRMLLoader
2093
- };