three-stdlib 2.22.9 → 2.23.0

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 (630) hide show
  1. package/dist/animation/AnimationClipCreator.js +49 -50
  2. package/dist/animation/AnimationClipCreator.mjs +49 -50
  3. package/dist/animation/CCDIKSolver.d.ts +9 -4
  4. package/dist/animation/CCDIKSolver.js +193 -148
  5. package/dist/animation/CCDIKSolver.mjs +194 -149
  6. package/dist/animation/MMDAnimationHelper.js +613 -515
  7. package/dist/animation/MMDAnimationHelper.mjs +613 -515
  8. package/dist/animation/MMDPhysics.d.ts +6 -1
  9. package/dist/animation/MMDPhysics.js +728 -718
  10. package/dist/animation/MMDPhysics.mjs +729 -719
  11. package/dist/cameras/CinematicCamera.d.ts +2 -2
  12. package/dist/controls/ArcballControls.d.ts +1 -1
  13. package/dist/controls/ArcballControls.js +38 -44
  14. package/dist/controls/ArcballControls.mjs +39 -45
  15. package/dist/controls/DeviceOrientationControls.js +2 -1
  16. package/dist/controls/DeviceOrientationControls.mjs +2 -1
  17. package/dist/controls/FirstPersonControls.d.ts +1 -1
  18. package/dist/controls/FirstPersonControls.js +1 -1
  19. package/dist/controls/FirstPersonControls.mjs +1 -1
  20. package/dist/controls/PointerLockControls.js +2 -2
  21. package/dist/controls/PointerLockControls.mjs +2 -2
  22. package/dist/controls/TrackballControls.d.ts +2 -2
  23. package/dist/controls/TransformControls.d.ts +1 -1
  24. package/dist/controls/experimental/CameraControls.d.ts +1 -1
  25. package/dist/csm/CSM.js +4 -4
  26. package/dist/csm/CSM.mjs +4 -4
  27. package/dist/csm/CSMFrustum.js +1 -1
  28. package/dist/csm/CSMFrustum.mjs +1 -1
  29. package/dist/csm/CSMShader.js +14 -10
  30. package/dist/csm/CSMShader.mjs +14 -10
  31. package/dist/curves/CurveExtras.js +52 -62
  32. package/dist/curves/CurveExtras.mjs +53 -63
  33. package/dist/curves/NURBSUtils.d.ts +18 -20
  34. package/dist/curves/NURBSUtils.js +17 -17
  35. package/dist/curves/NURBSUtils.mjs +17 -17
  36. package/dist/deprecated/Geometry.js +26 -26
  37. package/dist/deprecated/Geometry.mjs +27 -27
  38. package/dist/effects/AnaglyphEffect.js +95 -114
  39. package/dist/effects/AnaglyphEffect.mjs +95 -114
  40. package/dist/effects/AsciiEffect.js +144 -162
  41. package/dist/effects/AsciiEffect.mjs +144 -162
  42. package/dist/effects/OutlineEffect.js +253 -276
  43. package/dist/effects/OutlineEffect.mjs +253 -276
  44. package/dist/effects/ParallaxBarrierEffect.js +61 -60
  45. package/dist/effects/ParallaxBarrierEffect.mjs +61 -60
  46. package/dist/effects/PeppersGhostEffect.js +84 -81
  47. package/dist/effects/PeppersGhostEffect.mjs +84 -81
  48. package/dist/effects/StereoEffect.js +31 -28
  49. package/dist/effects/StereoEffect.mjs +31 -28
  50. package/dist/environments/RoomEnvironment.d.ts +6 -5
  51. package/dist/exporters/GLTFExporter.d.ts +109 -441
  52. package/dist/exporters/GLTFExporter.js +915 -581
  53. package/dist/exporters/GLTFExporter.mjs +915 -581
  54. package/dist/geometries/ConvexGeometry.js +0 -3
  55. package/dist/geometries/ConvexGeometry.mjs +0 -3
  56. package/dist/geometries/LightningStrike.d.ts +3 -3
  57. package/dist/geometries/LightningStrike.js +80 -75
  58. package/dist/geometries/LightningStrike.mjs +80 -75
  59. package/dist/geometries/ParametricGeometries.js +75 -74
  60. package/dist/geometries/ParametricGeometries.mjs +75 -74
  61. package/dist/geometries/RoundedBoxGeometry.js +1 -1
  62. package/dist/geometries/RoundedBoxGeometry.mjs +1 -1
  63. package/dist/geometries/TextGeometry.d.ts +1 -1
  64. package/dist/helpers/RectAreaLightHelper.d.ts +4 -3
  65. package/dist/helpers/RectAreaLightHelper.js +2 -2
  66. package/dist/helpers/RectAreaLightHelper.mjs +2 -2
  67. package/dist/helpers/VertexNormalsHelper.d.ts +3 -0
  68. package/dist/helpers/VertexNormalsHelper.js +15 -22
  69. package/dist/helpers/VertexNormalsHelper.mjs +16 -23
  70. package/dist/helpers/VertexTangentsHelper.d.ts +3 -0
  71. package/dist/helpers/VertexTangentsHelper.js +12 -14
  72. package/dist/helpers/VertexTangentsHelper.mjs +12 -14
  73. package/dist/index.d.ts +1 -66
  74. package/dist/index.js +5 -370
  75. package/dist/index.mjs +9 -374
  76. package/dist/interactive/InteractiveGroup.js +1 -1
  77. package/dist/interactive/InteractiveGroup.mjs +1 -1
  78. package/dist/interactive/SelectionBox.js +122 -125
  79. package/dist/interactive/SelectionBox.mjs +122 -125
  80. package/dist/interactive/SelectionHelper.js +45 -48
  81. package/dist/interactive/SelectionHelper.mjs +45 -48
  82. package/dist/libs/MeshoptDecoder.d.ts +1 -1
  83. package/dist/libs/MotionControllers.d.ts +15 -14
  84. package/dist/libs/MotionControllers.js +10 -10
  85. package/dist/libs/MotionControllers.mjs +10 -10
  86. package/dist/lights/LightProbeGenerator.js +43 -43
  87. package/dist/lights/LightProbeGenerator.mjs +43 -43
  88. package/dist/lights/RectAreaLightUniformsLib.js +9 -5
  89. package/dist/lights/RectAreaLightUniformsLib.mjs +9 -5
  90. package/dist/lines/LineMaterial.js +271 -271
  91. package/dist/lines/LineMaterial.mjs +272 -272
  92. package/dist/lines/LineSegments2.js +12 -12
  93. package/dist/lines/LineSegments2.mjs +12 -12
  94. package/dist/lines/LineSegmentsGeometry.js +2 -2
  95. package/dist/lines/LineSegmentsGeometry.mjs +2 -2
  96. package/dist/lines/Wireframe.js +2 -2
  97. package/dist/lines/Wireframe.mjs +2 -2
  98. package/dist/loaders/3DMLoader.d.ts +2 -1
  99. package/dist/loaders/3MFLoader.d.ts +2 -1
  100. package/dist/loaders/AMFLoader.d.ts +2 -1
  101. package/dist/loaders/AssimpLoader.d.ts +20 -0
  102. package/dist/loaders/AssimpLoader.js +520 -482
  103. package/dist/loaders/AssimpLoader.mjs +520 -482
  104. package/dist/loaders/BVHLoader.d.ts +2 -1
  105. package/dist/loaders/BasisTextureLoader.d.ts +2 -1
  106. package/dist/loaders/BasisTextureLoader.js +23 -14
  107. package/dist/loaders/BasisTextureLoader.mjs +24 -15
  108. package/dist/loaders/ColladaLoader.d.ts +2 -1
  109. package/dist/loaders/DRACOLoader.d.ts +2 -1
  110. package/dist/loaders/FBXLoader.d.ts +2 -1
  111. package/dist/loaders/FBXLoader.js +2 -2
  112. package/dist/loaders/FBXLoader.mjs +2 -2
  113. package/dist/loaders/FontLoader.d.ts +4 -4
  114. package/dist/loaders/FontLoader.js +2 -1
  115. package/dist/loaders/FontLoader.mjs +2 -1
  116. package/dist/loaders/GCodeLoader.d.ts +2 -1
  117. package/dist/loaders/GLTFLoader.d.ts +11 -9
  118. package/dist/loaders/GLTFLoader.js +2 -2
  119. package/dist/loaders/GLTFLoader.mjs +2 -2
  120. package/dist/loaders/HDRCubeTextureLoader.d.ts +2 -1
  121. package/dist/loaders/KMZLoader.d.ts +2 -1
  122. package/dist/loaders/KTX2Loader.js +34 -15
  123. package/dist/loaders/KTX2Loader.mjs +35 -16
  124. package/dist/loaders/LDrawLoader.d.ts +2 -1
  125. package/dist/loaders/LDrawLoader.js +3 -3
  126. package/dist/loaders/LDrawLoader.mjs +3 -3
  127. package/dist/loaders/LUT3dlLoader.d.ts +3 -2
  128. package/dist/loaders/LUTCubeLoader.d.ts +3 -2
  129. package/dist/loaders/LWOLoader.d.ts +2 -1
  130. package/dist/loaders/LottieLoader.d.ts +2 -1
  131. package/dist/loaders/MD2Loader.d.ts +2 -1
  132. package/dist/loaders/MDDLoader.d.ts +2 -1
  133. package/dist/loaders/MMDLoader.d.ts +2 -1
  134. package/dist/loaders/MTLLoader.d.ts +2 -1
  135. package/dist/loaders/OBJLoader.d.ts +2 -1
  136. package/dist/loaders/OBJLoader.js +5 -5
  137. package/dist/loaders/OBJLoader.mjs +5 -5
  138. package/dist/loaders/PCDLoader.d.ts +2 -1
  139. package/dist/loaders/PDBLoader.d.ts +2 -1
  140. package/dist/loaders/PLYLoader.d.ts +2 -1
  141. package/dist/loaders/PRWMLoader.d.ts +2 -1
  142. package/dist/loaders/RGBMLoader.js +924 -918
  143. package/dist/loaders/RGBMLoader.mjs +924 -918
  144. package/dist/loaders/STLLoader.d.ts +2 -1
  145. package/dist/loaders/SVGLoader.d.ts +2 -1
  146. package/dist/loaders/TDSLoader.d.ts +2 -1
  147. package/dist/loaders/TTFLoader.d.ts +2 -1
  148. package/dist/loaders/TiltLoader.d.ts +2 -1
  149. package/dist/loaders/TiltLoader.js +3 -1
  150. package/dist/loaders/TiltLoader.mjs +3 -1
  151. package/dist/loaders/VOXLoader.d.ts +4 -2
  152. package/dist/loaders/VRMLLoader.d.ts +2 -1
  153. package/dist/loaders/VRMLoader.d.ts +20 -0
  154. package/dist/loaders/VTKLoader.d.ts +2 -1
  155. package/dist/loaders/XLoader.d.ts +20 -0
  156. package/dist/loaders/XLoader.js +1 -1
  157. package/dist/loaders/XLoader.mjs +1 -1
  158. package/dist/loaders/XYZLoader.d.ts +2 -1
  159. package/dist/loaders/lwo/IFFParser.js +104 -110
  160. package/dist/loaders/lwo/IFFParser.mjs +104 -110
  161. package/dist/loaders/lwo/LWO2Parser.js +18 -33
  162. package/dist/loaders/lwo/LWO2Parser.mjs +18 -33
  163. package/dist/loaders/lwo/LWO3Parser.js +17 -33
  164. package/dist/loaders/lwo/LWO3Parser.mjs +17 -33
  165. package/dist/math/Capsule.d.ts +1 -1
  166. package/dist/math/Capsule.js +90 -92
  167. package/dist/math/Capsule.mjs +90 -92
  168. package/dist/math/ColorConverter.js +26 -36
  169. package/dist/math/ColorConverter.mjs +26 -36
  170. package/dist/math/ConvexHull.js +16 -17
  171. package/dist/math/ConvexHull.mjs +17 -18
  172. package/dist/math/ImprovedNoise.js +41 -39
  173. package/dist/math/ImprovedNoise.mjs +41 -39
  174. package/dist/math/Lut.js +65 -63
  175. package/dist/math/Lut.mjs +66 -64
  176. package/dist/math/MeshSurfaceSampler.d.ts +3 -0
  177. package/dist/math/MeshSurfaceSampler.js +85 -89
  178. package/dist/math/MeshSurfaceSampler.mjs +85 -89
  179. package/dist/math/OBB.js +68 -88
  180. package/dist/math/OBB.mjs +68 -88
  181. package/dist/math/Octree.js +240 -245
  182. package/dist/math/Octree.mjs +240 -245
  183. package/dist/misc/ConvexObjectBreaker.js +114 -120
  184. package/dist/misc/ConvexObjectBreaker.mjs +115 -121
  185. package/dist/misc/GPUComputationRenderer.d.ts +1 -0
  186. package/dist/misc/GPUComputationRenderer.js +191 -157
  187. package/dist/misc/GPUComputationRenderer.mjs +192 -158
  188. package/dist/misc/Gyroscope.js +16 -18
  189. package/dist/misc/Gyroscope.mjs +17 -19
  190. package/dist/misc/MD2Character.js +88 -86
  191. package/dist/misc/MD2Character.mjs +89 -87
  192. package/dist/misc/MD2CharacterComplex.js +106 -105
  193. package/dist/misc/MD2CharacterComplex.mjs +107 -106
  194. package/dist/misc/MorphAnimMesh.d.ts +1 -1
  195. package/dist/misc/MorphAnimMesh.js +33 -33
  196. package/dist/misc/MorphAnimMesh.mjs +33 -33
  197. package/dist/misc/MorphBlendMesh.js +68 -68
  198. package/dist/misc/MorphBlendMesh.mjs +68 -68
  199. package/dist/misc/ProgressiveLightmap.d.ts +1 -2
  200. package/dist/misc/RollerCoaster.js +321 -314
  201. package/dist/misc/RollerCoaster.mjs +322 -315
  202. package/dist/misc/Volume.d.ts +1 -1
  203. package/dist/misc/Volume.js +169 -166
  204. package/dist/misc/Volume.mjs +170 -167
  205. package/dist/misc/VolumeSlice.js +50 -51
  206. package/dist/misc/VolumeSlice.mjs +50 -51
  207. package/dist/modifiers/CurveModifier.d.ts +2 -2
  208. package/dist/modifiers/CurveModifier.js +1 -1
  209. package/dist/modifiers/CurveModifier.mjs +1 -1
  210. package/dist/modifiers/SimplifyModifier.js +2 -1
  211. package/dist/modifiers/SimplifyModifier.mjs +2 -1
  212. package/dist/objects/Lensflare.js +32 -21
  213. package/dist/objects/Lensflare.mjs +33 -22
  214. package/dist/objects/LightningStorm.d.ts +3 -3
  215. package/dist/objects/LightningStorm.js +3 -3
  216. package/dist/objects/LightningStorm.mjs +3 -3
  217. package/dist/objects/MarchingCubes.d.ts +1 -0
  218. package/dist/objects/MarchingCubes.js +4362 -10
  219. package/dist/objects/MarchingCubes.mjs +4363 -11
  220. package/dist/objects/Reflector.d.ts +5 -2
  221. package/dist/objects/Reflector.js +39 -12
  222. package/dist/objects/Reflector.mjs +40 -13
  223. package/dist/objects/ReflectorForSSRPass.js +25 -21
  224. package/dist/objects/ReflectorForSSRPass.mjs +26 -22
  225. package/dist/objects/ReflectorRTT.d.ts +6 -0
  226. package/dist/objects/Refractor.d.ts +5 -2
  227. package/dist/objects/Refractor.js +39 -12
  228. package/dist/objects/Refractor.mjs +40 -13
  229. package/dist/objects/ShadowMesh.d.ts +6 -3
  230. package/dist/objects/ShadowMesh.js +7 -3
  231. package/dist/objects/ShadowMesh.mjs +8 -4
  232. package/dist/objects/Sky.js +181 -137
  233. package/dist/objects/Sky.mjs +182 -138
  234. package/dist/objects/Water.d.ts +3 -3
  235. package/dist/objects/Water.js +3 -2
  236. package/dist/objects/Water.mjs +3 -2
  237. package/dist/objects/Water2.d.ts +2 -2
  238. package/dist/objects/Water2.js +16 -18
  239. package/dist/objects/Water2.mjs +17 -19
  240. package/dist/postprocessing/AdaptiveToneMappingPass.d.ts +2 -2
  241. package/dist/postprocessing/AdaptiveToneMappingPass.js +105 -112
  242. package/dist/postprocessing/AdaptiveToneMappingPass.mjs +107 -114
  243. package/dist/postprocessing/BokehPass.d.ts +1 -1
  244. package/dist/postprocessing/ClearPass.d.ts +3 -3
  245. package/dist/postprocessing/CubeTexturePass.js +37 -33
  246. package/dist/postprocessing/CubeTexturePass.mjs +37 -33
  247. package/dist/postprocessing/HalftonePass.d.ts +1 -1
  248. package/dist/postprocessing/LUTPass.d.ts +3 -3
  249. package/dist/postprocessing/RenderPixelatedPass.d.ts +28 -0
  250. package/dist/postprocessing/SAOPass.d.ts +5 -6
  251. package/dist/postprocessing/SAOPass.js +151 -145
  252. package/dist/postprocessing/SAOPass.mjs +153 -147
  253. package/dist/postprocessing/SSAARenderPass.d.ts +5 -5
  254. package/dist/postprocessing/SSAARenderPass.js +78 -55
  255. package/dist/postprocessing/SSAARenderPass.mjs +80 -57
  256. package/dist/postprocessing/SSAOPass.d.ts +4 -5
  257. package/dist/postprocessing/SSAOPass.js +17 -10
  258. package/dist/postprocessing/SSAOPass.mjs +17 -10
  259. package/dist/postprocessing/SSRPass.d.ts +6 -7
  260. package/dist/postprocessing/SSRPass.js +235 -262
  261. package/dist/postprocessing/SSRPass.mjs +237 -264
  262. package/dist/postprocessing/TAARenderPass.d.ts +2 -2
  263. package/dist/postprocessing/TAARenderPass.js +106 -27
  264. package/dist/postprocessing/TAARenderPass.mjs +107 -28
  265. package/dist/postprocessing/TexturePass.d.ts +2 -2
  266. package/dist/postprocessing/TexturePass.js +24 -22
  267. package/dist/postprocessing/TexturePass.mjs +25 -23
  268. package/dist/postprocessing/UnrealBloomPass.js +175 -118
  269. package/dist/postprocessing/UnrealBloomPass.mjs +177 -120
  270. package/dist/renderers/CSS2DRenderer.d.ts +2 -1
  271. package/dist/renderers/CSS2DRenderer.js +5 -4
  272. package/dist/renderers/CSS2DRenderer.mjs +6 -5
  273. package/dist/renderers/CSS3DRenderer.d.ts +1 -1
  274. package/dist/renderers/CSS3DRenderer.js +147 -113
  275. package/dist/renderers/CSS3DRenderer.mjs +148 -114
  276. package/dist/renderers/Projector.js +377 -389
  277. package/dist/renderers/Projector.mjs +377 -389
  278. package/dist/renderers/SVGRenderer.js +280 -275
  279. package/dist/renderers/SVGRenderer.mjs +280 -275
  280. package/dist/shaders/ACESFilmicToneMappingShader.d.ts +1 -1
  281. package/dist/shaders/AfterimageShader.d.ts +1 -1
  282. package/dist/shaders/BasicShader.d.ts +1 -1
  283. package/dist/shaders/BleachBypassShader.d.ts +1 -1
  284. package/dist/shaders/BokehShader.d.ts +2 -2
  285. package/dist/shaders/BokehShader2.d.ts +2 -2
  286. package/dist/shaders/BokehShader2.js +1 -1
  287. package/dist/shaders/BokehShader2.mjs +1 -1
  288. package/dist/shaders/ColorCorrectionShader.js +3 -3
  289. package/dist/shaders/ColorCorrectionShader.mjs +3 -3
  290. package/dist/shaders/ColorifyShader.js +1 -1
  291. package/dist/shaders/ColorifyShader.mjs +1 -1
  292. package/dist/shaders/ConvolutionShader.d.ts +2 -2
  293. package/dist/shaders/ConvolutionShader.js +1 -1
  294. package/dist/shaders/ConvolutionShader.mjs +1 -1
  295. package/dist/shaders/CopyShader.d.ts +1 -1
  296. package/dist/shaders/DepthLimitedBlurShader.d.ts +2 -2
  297. package/dist/shaders/DepthLimitedBlurShader.js +2 -2
  298. package/dist/shaders/DepthLimitedBlurShader.mjs +2 -2
  299. package/dist/shaders/DotScreenShader.js +2 -2
  300. package/dist/shaders/DotScreenShader.mjs +2 -2
  301. package/dist/shaders/FXAAShader.js +1 -1
  302. package/dist/shaders/FXAAShader.mjs +1 -1
  303. package/dist/shaders/FreiChenShader.js +1 -1
  304. package/dist/shaders/FreiChenShader.mjs +1 -1
  305. package/dist/shaders/GammaCorrectionShader.d.ts +1 -1
  306. package/dist/shaders/GodRaysShader.js +4 -4
  307. package/dist/shaders/GodRaysShader.mjs +4 -4
  308. package/dist/shaders/HorizontalBlurShader.d.ts +1 -1
  309. package/dist/shaders/LuminosityHighPassShader.js +1 -1
  310. package/dist/shaders/LuminosityHighPassShader.mjs +1 -1
  311. package/dist/shaders/NormalMapShader.js +2 -2
  312. package/dist/shaders/NormalMapShader.mjs +2 -2
  313. package/dist/shaders/SAOShader.d.ts +2 -2
  314. package/dist/shaders/SAOShader.js +3 -3
  315. package/dist/shaders/SAOShader.mjs +3 -3
  316. package/dist/shaders/SMAAShader.js +3 -3
  317. package/dist/shaders/SMAAShader.mjs +3 -3
  318. package/dist/shaders/SSAOShader.js +4 -4
  319. package/dist/shaders/SSAOShader.mjs +4 -4
  320. package/dist/shaders/SSRShader.js +4 -4
  321. package/dist/shaders/SSRShader.mjs +4 -4
  322. package/dist/shaders/SobelOperatorShader.js +1 -1
  323. package/dist/shaders/SobelOperatorShader.mjs +1 -1
  324. package/dist/shaders/SubsurfaceScatteringShader.d.ts +2 -2
  325. package/dist/shaders/SubsurfaceScatteringShader.js +91 -52
  326. package/dist/shaders/SubsurfaceScatteringShader.mjs +91 -52
  327. package/dist/shaders/ToonShader.js +25 -25
  328. package/dist/shaders/ToonShader.mjs +25 -25
  329. package/dist/shaders/TriangleBlurShader.js +1 -1
  330. package/dist/shaders/TriangleBlurShader.mjs +1 -1
  331. package/dist/shaders/VerticalBlurShader.d.ts +1 -1
  332. package/dist/shaders/VolumeShader.js +2 -2
  333. package/dist/shaders/VolumeShader.mjs +2 -2
  334. package/dist/shaders/types.d.ts +2 -2
  335. package/dist/types/Loader.d.ts +4 -0
  336. package/dist/types/Loader.js +26 -0
  337. package/dist/types/Loader.mjs +9 -0
  338. package/dist/types/shared.d.ts +2 -2
  339. package/dist/types/utils.d.ts +1 -1
  340. package/dist/utils/BufferGeometryUtils.d.ts +2 -2
  341. package/dist/utils/BufferGeometryUtils.js +1 -1
  342. package/dist/utils/BufferGeometryUtils.mjs +1 -1
  343. package/dist/utils/RoughnessMipmapper.d.ts +8 -0
  344. package/dist/utils/RoughnessMipmapper.js +79 -75
  345. package/dist/utils/RoughnessMipmapper.mjs +79 -75
  346. package/dist/utils/ShadowMapViewer.js +103 -106
  347. package/dist/utils/ShadowMapViewer.mjs +103 -106
  348. package/dist/utils/SkeletonUtils.d.ts +5 -21
  349. package/dist/utils/SkeletonUtils.js +182 -263
  350. package/dist/utils/SkeletonUtils.mjs +183 -264
  351. package/dist/utils/UVsDebug.js +37 -42
  352. package/dist/utils/UVsDebug.mjs +37 -42
  353. package/dist/webxr/ARButton.d.ts +2 -1
  354. package/dist/webxr/OculusHandModel.d.ts +2 -1
  355. package/dist/webxr/OculusHandPointerModel.d.ts +2 -2
  356. package/dist/webxr/OculusHandPointerModel.js +2 -2
  357. package/dist/webxr/OculusHandPointerModel.mjs +2 -2
  358. package/dist/webxr/VRButton.d.ts +2 -1
  359. package/dist/webxr/XRHandPrimitiveModel.js +2 -2
  360. package/dist/webxr/XRHandPrimitiveModel.mjs +2 -2
  361. package/package.json +5 -6
  362. package/dist/custom.d.ts +0 -5
  363. package/dist/loaders/NodeMaterialLoader.js +0 -146
  364. package/dist/loaders/NodeMaterialLoader.mjs +0 -146
  365. package/dist/nodes/Nodes.js +0 -347
  366. package/dist/nodes/Nodes.mjs +0 -347
  367. package/dist/nodes/ShaderNode.js +0 -408
  368. package/dist/nodes/ShaderNode.mjs +0 -408
  369. package/dist/nodes/accessors/BufferNode.js +0 -14
  370. package/dist/nodes/accessors/BufferNode.mjs +0 -15
  371. package/dist/nodes/accessors/CameraNode.js +0 -43
  372. package/dist/nodes/accessors/CameraNode.mjs +0 -44
  373. package/dist/nodes/accessors/CubeTextureNode.js +0 -41
  374. package/dist/nodes/accessors/CubeTextureNode.mjs +0 -42
  375. package/dist/nodes/accessors/MaterialNode.js +0 -70
  376. package/dist/nodes/accessors/MaterialNode.mjs +0 -71
  377. package/dist/nodes/accessors/MaterialReferenceNode.js +0 -13
  378. package/dist/nodes/accessors/MaterialReferenceNode.mjs +0 -14
  379. package/dist/nodes/accessors/ModelNode.js +0 -8
  380. package/dist/nodes/accessors/ModelNode.mjs +0 -9
  381. package/dist/nodes/accessors/ModelViewProjectionNode.js +0 -23
  382. package/dist/nodes/accessors/ModelViewProjectionNode.mjs +0 -24
  383. package/dist/nodes/accessors/NormalNode.js +0 -61
  384. package/dist/nodes/accessors/NormalNode.mjs +0 -62
  385. package/dist/nodes/accessors/Object3DNode.js +0 -75
  386. package/dist/nodes/accessors/Object3DNode.mjs +0 -76
  387. package/dist/nodes/accessors/PointUVNode.js +0 -12
  388. package/dist/nodes/accessors/PointUVNode.mjs +0 -13
  389. package/dist/nodes/accessors/PositionNode.js +0 -64
  390. package/dist/nodes/accessors/PositionNode.mjs +0 -65
  391. package/dist/nodes/accessors/ReferenceNode.js +0 -36
  392. package/dist/nodes/accessors/ReferenceNode.mjs +0 -37
  393. package/dist/nodes/accessors/ReflectNode.js +0 -42
  394. package/dist/nodes/accessors/ReflectNode.mjs +0 -43
  395. package/dist/nodes/accessors/SkinningNode.js +0 -57
  396. package/dist/nodes/accessors/SkinningNode.mjs +0 -58
  397. package/dist/nodes/accessors/TextureNode.js +0 -53
  398. package/dist/nodes/accessors/TextureNode.mjs +0 -54
  399. package/dist/nodes/accessors/UVNode.js +0 -22
  400. package/dist/nodes/accessors/UVNode.mjs +0 -23
  401. package/dist/nodes/core/ArrayUniformNode.js +0 -13
  402. package/dist/nodes/core/ArrayUniformNode.mjs +0 -14
  403. package/dist/nodes/core/AttributeNode.js +0 -29
  404. package/dist/nodes/core/AttributeNode.mjs +0 -30
  405. package/dist/nodes/core/BypassNode.js +0 -21
  406. package/dist/nodes/core/BypassNode.mjs +0 -22
  407. package/dist/nodes/core/CodeNode.js +0 -27
  408. package/dist/nodes/core/CodeNode.mjs +0 -28
  409. package/dist/nodes/core/ConstNode.js +0 -13
  410. package/dist/nodes/core/ConstNode.mjs +0 -14
  411. package/dist/nodes/core/ContextNode.js +0 -21
  412. package/dist/nodes/core/ContextNode.mjs +0 -22
  413. package/dist/nodes/core/ExpressionNode.js +0 -18
  414. package/dist/nodes/core/ExpressionNode.mjs +0 -19
  415. package/dist/nodes/core/FunctionCallNode.js +0 -36
  416. package/dist/nodes/core/FunctionCallNode.mjs +0 -37
  417. package/dist/nodes/core/FunctionNode.js +0 -55
  418. package/dist/nodes/core/FunctionNode.mjs +0 -56
  419. package/dist/nodes/core/InputNode.js +0 -37
  420. package/dist/nodes/core/InputNode.mjs +0 -38
  421. package/dist/nodes/core/Node.js +0 -138
  422. package/dist/nodes/core/Node.mjs +0 -139
  423. package/dist/nodes/core/NodeAttribute.js +0 -9
  424. package/dist/nodes/core/NodeAttribute.mjs +0 -10
  425. package/dist/nodes/core/NodeBuilder.js +0 -402
  426. package/dist/nodes/core/NodeBuilder.mjs +0 -402
  427. package/dist/nodes/core/NodeCode.js +0 -10
  428. package/dist/nodes/core/NodeCode.mjs +0 -11
  429. package/dist/nodes/core/NodeFrame.js +0 -34
  430. package/dist/nodes/core/NodeFrame.mjs +0 -35
  431. package/dist/nodes/core/NodeFunctionInput.js +0 -12
  432. package/dist/nodes/core/NodeFunctionInput.mjs +0 -13
  433. package/dist/nodes/core/NodeKeywords.js +0 -43
  434. package/dist/nodes/core/NodeKeywords.mjs +0 -44
  435. package/dist/nodes/core/NodeUniform.js +0 -17
  436. package/dist/nodes/core/NodeUniform.mjs +0 -18
  437. package/dist/nodes/core/NodeUtils.js +0 -57
  438. package/dist/nodes/core/NodeUtils.mjs +0 -57
  439. package/dist/nodes/core/NodeVar.js +0 -9
  440. package/dist/nodes/core/NodeVar.mjs +0 -10
  441. package/dist/nodes/core/NodeVary.js +0 -9
  442. package/dist/nodes/core/NodeVary.mjs +0 -10
  443. package/dist/nodes/core/PropertyNode.js +0 -20
  444. package/dist/nodes/core/PropertyNode.mjs +0 -21
  445. package/dist/nodes/core/TempNode.js +0 -24
  446. package/dist/nodes/core/TempNode.mjs +0 -25
  447. package/dist/nodes/core/UniformNode.js +0 -22
  448. package/dist/nodes/core/UniformNode.mjs +0 -23
  449. package/dist/nodes/core/VarNode.js +0 -30
  450. package/dist/nodes/core/VarNode.mjs +0 -31
  451. package/dist/nodes/core/VaryNode.js +0 -29
  452. package/dist/nodes/core/VaryNode.mjs +0 -30
  453. package/dist/nodes/core/constants.js +0 -24
  454. package/dist/nodes/core/constants.mjs +0 -24
  455. package/dist/nodes/display/ColorSpaceNode.js +0 -62
  456. package/dist/nodes/display/ColorSpaceNode.mjs +0 -62
  457. package/dist/nodes/display/NormalMapNode.js +0 -53
  458. package/dist/nodes/display/NormalMapNode.mjs +0 -54
  459. package/dist/nodes/fog/FogNode.js +0 -14
  460. package/dist/nodes/fog/FogNode.mjs +0 -15
  461. package/dist/nodes/fog/FogRangeNode.js +0 -16
  462. package/dist/nodes/fog/FogRangeNode.mjs +0 -17
  463. package/dist/nodes/functions/BSDFs.js +0 -64
  464. package/dist/nodes/functions/BSDFs.mjs +0 -64
  465. package/dist/nodes/lights/LightContextNode.js +0 -34
  466. package/dist/nodes/lights/LightContextNode.mjs +0 -35
  467. package/dist/nodes/lights/LightNode.js +0 -57
  468. package/dist/nodes/lights/LightNode.mjs +0 -58
  469. package/dist/nodes/lights/LightsNode.js +0 -58
  470. package/dist/nodes/lights/LightsNode.mjs +0 -59
  471. package/dist/nodes/loaders/NodeLoader.js +0 -195
  472. package/dist/nodes/loaders/NodeLoader.mjs +0 -196
  473. package/dist/nodes/loaders/NodeMaterialLoader.js +0 -23
  474. package/dist/nodes/loaders/NodeMaterialLoader.mjs +0 -24
  475. package/dist/nodes/loaders/NodeObjectLoader.js +0 -39
  476. package/dist/nodes/loaders/NodeObjectLoader.mjs +0 -40
  477. package/dist/nodes/materials/LineBasicNodeMaterial.js +0 -26
  478. package/dist/nodes/materials/LineBasicNodeMaterial.mjs +0 -27
  479. package/dist/nodes/materials/Materials.js +0 -24
  480. package/dist/nodes/materials/Materials.mjs +0 -24
  481. package/dist/nodes/materials/MeshBasicNodeMaterial.js +0 -27
  482. package/dist/nodes/materials/MeshBasicNodeMaterial.mjs +0 -28
  483. package/dist/nodes/materials/MeshStandardNodeMaterial.js +0 -40
  484. package/dist/nodes/materials/MeshStandardNodeMaterial.mjs +0 -41
  485. package/dist/nodes/materials/NodeMaterial.js +0 -63
  486. package/dist/nodes/materials/NodeMaterial.mjs +0 -64
  487. package/dist/nodes/materials/PointsNodeMaterial.js +0 -29
  488. package/dist/nodes/materials/PointsNodeMaterial.mjs +0 -30
  489. package/dist/nodes/math/CondNode.js +0 -40
  490. package/dist/nodes/math/CondNode.mjs +0 -41
  491. package/dist/nodes/math/MathNode.js +0 -165
  492. package/dist/nodes/math/MathNode.mjs +0 -166
  493. package/dist/nodes/math/OperatorNode.js +0 -102
  494. package/dist/nodes/math/OperatorNode.mjs +0 -103
  495. package/dist/nodes/procedural/CheckerNode.js +0 -20
  496. package/dist/nodes/procedural/CheckerNode.mjs +0 -21
  497. package/dist/nodes/utils/ArrayElementNode.js +0 -18
  498. package/dist/nodes/utils/ArrayElementNode.mjs +0 -19
  499. package/dist/nodes/utils/ConvertNode.js +0 -24
  500. package/dist/nodes/utils/ConvertNode.mjs +0 -25
  501. package/dist/nodes/utils/JoinNode.js +0 -25
  502. package/dist/nodes/utils/JoinNode.mjs +0 -26
  503. package/dist/nodes/utils/MatcapUVNode.js +0 -15
  504. package/dist/nodes/utils/MatcapUVNode.mjs +0 -16
  505. package/dist/nodes/utils/OscNode.js +0 -49
  506. package/dist/nodes/utils/OscNode.mjs +0 -50
  507. package/dist/nodes/utils/SplitNode.js +0 -44
  508. package/dist/nodes/utils/SplitNode.mjs +0 -45
  509. package/dist/nodes/utils/SpriteSheetUVNode.js +0 -39
  510. package/dist/nodes/utils/SpriteSheetUVNode.mjs +0 -40
  511. package/dist/nodes/utils/TimerNode.js +0 -43
  512. package/dist/nodes/utils/TimerNode.mjs +0 -44
  513. package/dist/offscreen/jank.js +0 -26
  514. package/dist/offscreen/jank.mjs +0 -27
  515. package/dist/offscreen/offscreen.js +0 -8
  516. package/dist/offscreen/offscreen.mjs +0 -7
  517. package/dist/offscreen/scene.js +0 -68
  518. package/dist/offscreen/scene.mjs +0 -52
  519. package/dist/renderers/nodes/accessors/CameraNode.js +0 -62
  520. package/dist/renderers/nodes/accessors/CameraNode.mjs +0 -63
  521. package/dist/renderers/nodes/accessors/ModelNode.js +0 -60
  522. package/dist/renderers/nodes/accessors/ModelNode.mjs +0 -61
  523. package/dist/renderers/nodes/accessors/ModelViewProjectionNode.js +0 -20
  524. package/dist/renderers/nodes/accessors/ModelViewProjectionNode.mjs +0 -21
  525. package/dist/renderers/nodes/accessors/NormalNode.js +0 -60
  526. package/dist/renderers/nodes/accessors/NormalNode.mjs +0 -61
  527. package/dist/renderers/nodes/accessors/PositionNode.js +0 -29
  528. package/dist/renderers/nodes/accessors/PositionNode.mjs +0 -30
  529. package/dist/renderers/nodes/accessors/UVNode.js +0 -12
  530. package/dist/renderers/nodes/accessors/UVNode.mjs +0 -13
  531. package/dist/renderers/nodes/core/AttributeNode.js +0 -34
  532. package/dist/renderers/nodes/core/AttributeNode.mjs +0 -35
  533. package/dist/renderers/nodes/core/InputNode.js +0 -30
  534. package/dist/renderers/nodes/core/InputNode.mjs +0 -31
  535. package/dist/renderers/nodes/core/Node.js +0 -33
  536. package/dist/renderers/nodes/core/Node.mjs +0 -34
  537. package/dist/renderers/nodes/core/NodeAttribute.js +0 -9
  538. package/dist/renderers/nodes/core/NodeAttribute.mjs +0 -10
  539. package/dist/renderers/nodes/core/NodeBuilder.js +0 -248
  540. package/dist/renderers/nodes/core/NodeBuilder.mjs +0 -249
  541. package/dist/renderers/nodes/core/NodeFrame.js +0 -34
  542. package/dist/renderers/nodes/core/NodeFrame.mjs +0 -35
  543. package/dist/renderers/nodes/core/NodeSlot.js +0 -9
  544. package/dist/renderers/nodes/core/NodeSlot.mjs +0 -10
  545. package/dist/renderers/nodes/core/NodeUniform.js +0 -17
  546. package/dist/renderers/nodes/core/NodeUniform.mjs +0 -18
  547. package/dist/renderers/nodes/core/NodeVary.js +0 -10
  548. package/dist/renderers/nodes/core/NodeVary.mjs +0 -11
  549. package/dist/renderers/nodes/core/VaryNode.js +0 -21
  550. package/dist/renderers/nodes/core/VaryNode.mjs +0 -22
  551. package/dist/renderers/nodes/core/constants.js +0 -22
  552. package/dist/renderers/nodes/core/constants.mjs +0 -22
  553. package/dist/renderers/nodes/inputs/ColorNode.js +0 -10
  554. package/dist/renderers/nodes/inputs/ColorNode.mjs +0 -11
  555. package/dist/renderers/nodes/inputs/FloatNode.js +0 -10
  556. package/dist/renderers/nodes/inputs/FloatNode.mjs +0 -11
  557. package/dist/renderers/nodes/inputs/Matrix3Node.js +0 -11
  558. package/dist/renderers/nodes/inputs/Matrix3Node.mjs +0 -12
  559. package/dist/renderers/nodes/inputs/Matrix4Node.js +0 -11
  560. package/dist/renderers/nodes/inputs/Matrix4Node.mjs +0 -12
  561. package/dist/renderers/nodes/inputs/TextureNode.js +0 -19
  562. package/dist/renderers/nodes/inputs/TextureNode.mjs +0 -20
  563. package/dist/renderers/nodes/inputs/Vector2Node.js +0 -10
  564. package/dist/renderers/nodes/inputs/Vector2Node.mjs +0 -11
  565. package/dist/renderers/nodes/inputs/Vector3Node.js +0 -11
  566. package/dist/renderers/nodes/inputs/Vector3Node.mjs +0 -12
  567. package/dist/renderers/nodes/inputs/Vector4Node.js +0 -11
  568. package/dist/renderers/nodes/inputs/Vector4Node.mjs +0 -12
  569. package/dist/renderers/nodes/math/MathNode.js +0 -54
  570. package/dist/renderers/nodes/math/MathNode.mjs +0 -55
  571. package/dist/renderers/nodes/math/OperatorNode.js +0 -41
  572. package/dist/renderers/nodes/math/OperatorNode.mjs +0 -42
  573. package/dist/renderers/nodes/utils/SwitchNode.js +0 -19
  574. package/dist/renderers/nodes/utils/SwitchNode.mjs +0 -20
  575. package/dist/renderers/nodes/utils/TimerNode.js +0 -13
  576. package/dist/renderers/nodes/utils/TimerNode.mjs +0 -14
  577. package/dist/renderers/webgpu/WebGPU.js +0 -23
  578. package/dist/renderers/webgpu/WebGPU.mjs +0 -24
  579. package/dist/renderers/webgpu/WebGPUAttributes.js +0 -68
  580. package/dist/renderers/webgpu/WebGPUAttributes.mjs +0 -69
  581. package/dist/renderers/webgpu/WebGPUBackground.js +0 -60
  582. package/dist/renderers/webgpu/WebGPUBackground.mjs +0 -61
  583. package/dist/renderers/webgpu/WebGPUBinding.js +0 -13
  584. package/dist/renderers/webgpu/WebGPUBinding.mjs +0 -14
  585. package/dist/renderers/webgpu/WebGPUBindings.js +0 -154
  586. package/dist/renderers/webgpu/WebGPUBindings.mjs +0 -155
  587. package/dist/renderers/webgpu/WebGPUComputePipelines.js +0 -43
  588. package/dist/renderers/webgpu/WebGPUComputePipelines.mjs +0 -44
  589. package/dist/renderers/webgpu/WebGPUGeometries.js +0 -40
  590. package/dist/renderers/webgpu/WebGPUGeometries.mjs +0 -41
  591. package/dist/renderers/webgpu/WebGPUInfo.js +0 -45
  592. package/dist/renderers/webgpu/WebGPUInfo.mjs +0 -46
  593. package/dist/renderers/webgpu/WebGPUObjects.js +0 -24
  594. package/dist/renderers/webgpu/WebGPUObjects.mjs +0 -25
  595. package/dist/renderers/webgpu/WebGPUProperties.js +0 -21
  596. package/dist/renderers/webgpu/WebGPUProperties.mjs +0 -22
  597. package/dist/renderers/webgpu/WebGPURenderLists.js +0 -118
  598. package/dist/renderers/webgpu/WebGPURenderLists.mjs +0 -119
  599. package/dist/renderers/webgpu/WebGPURenderPipelines.js +0 -545
  600. package/dist/renderers/webgpu/WebGPURenderPipelines.mjs +0 -546
  601. package/dist/renderers/webgpu/WebGPURenderer.js +0 -596
  602. package/dist/renderers/webgpu/WebGPURenderer.mjs +0 -575
  603. package/dist/renderers/webgpu/WebGPUSampledTexture.js +0 -40
  604. package/dist/renderers/webgpu/WebGPUSampledTexture.mjs +0 -40
  605. package/dist/renderers/webgpu/WebGPUSampler.js +0 -14
  606. package/dist/renderers/webgpu/WebGPUSampler.mjs +0 -15
  607. package/dist/renderers/webgpu/WebGPUStorageBuffer.js +0 -14
  608. package/dist/renderers/webgpu/WebGPUStorageBuffer.mjs +0 -15
  609. package/dist/renderers/webgpu/WebGPUTextureRenderer.js +0 -22
  610. package/dist/renderers/webgpu/WebGPUTextureRenderer.mjs +0 -23
  611. package/dist/renderers/webgpu/WebGPUTextureUtils.js +0 -97
  612. package/dist/renderers/webgpu/WebGPUTextureUtils.mjs +0 -98
  613. package/dist/renderers/webgpu/WebGPUTextures.js +0 -483
  614. package/dist/renderers/webgpu/WebGPUTextures.mjs +0 -484
  615. package/dist/renderers/webgpu/WebGPUUniform.js +0 -81
  616. package/dist/renderers/webgpu/WebGPUUniform.mjs +0 -81
  617. package/dist/renderers/webgpu/WebGPUUniformsGroup.js +0 -175
  618. package/dist/renderers/webgpu/WebGPUUniformsGroup.mjs +0 -176
  619. package/dist/renderers/webgpu/constants.js +0 -241
  620. package/dist/renderers/webgpu/constants.mjs +0 -241
  621. package/dist/renderers/webgpu/nodes/ShaderLib.js +0 -41
  622. package/dist/renderers/webgpu/nodes/ShaderLib.mjs +0 -42
  623. package/dist/renderers/webgpu/nodes/WebGPUNodeBuilder.js +0 -164
  624. package/dist/renderers/webgpu/nodes/WebGPUNodeBuilder.mjs +0 -165
  625. package/dist/renderers/webgpu/nodes/WebGPUNodeUniform.js +0 -73
  626. package/dist/renderers/webgpu/nodes/WebGPUNodeUniform.mjs +0 -73
  627. package/dist/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.js +0 -14
  628. package/dist/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.mjs +0 -15
  629. package/dist/renderers/webgpu/nodes/WebGPUNodes.js +0 -39
  630. package/dist/renderers/webgpu/nodes/WebGPUNodes.mjs +0 -40
@@ -1,270 +1,270 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const THREE = require("three");
4
- var RenderableObject = function() {
5
- this.id = 0;
6
- this.object = null;
7
- this.z = 0;
8
- this.renderOrder = 0;
9
- };
10
- var RenderableFace = function() {
11
- this.id = 0;
12
- this.v1 = new RenderableVertex();
13
- this.v2 = new RenderableVertex();
14
- this.v3 = new RenderableVertex();
15
- this.normalModel = new THREE.Vector3();
16
- this.vertexNormalsModel = [new THREE.Vector3(), new THREE.Vector3(), new THREE.Vector3()];
17
- this.vertexNormalsLength = 0;
18
- this.color = new THREE.Color();
19
- this.material = null;
20
- this.uvs = [new THREE.Vector2(), new THREE.Vector2(), new THREE.Vector2()];
21
- this.z = 0;
22
- this.renderOrder = 0;
23
- };
24
- var RenderableVertex = function() {
25
- this.position = new THREE.Vector3();
26
- this.positionWorld = new THREE.Vector3();
27
- this.positionScreen = new THREE.Vector4();
28
- this.visible = true;
29
- };
30
- RenderableVertex.prototype.copy = function(vertex) {
31
- this.positionWorld.copy(vertex.positionWorld);
32
- this.positionScreen.copy(vertex.positionScreen);
33
- };
34
- var RenderableLine = function() {
35
- this.id = 0;
36
- this.v1 = new RenderableVertex();
37
- this.v2 = new RenderableVertex();
38
- this.vertexColors = [new THREE.Color(), new THREE.Color()];
39
- this.material = null;
40
- this.z = 0;
41
- this.renderOrder = 0;
42
- };
43
- var RenderableSprite = function() {
44
- this.id = 0;
45
- this.object = null;
46
- this.x = 0;
47
- this.y = 0;
48
- this.z = 0;
49
- this.rotation = 0;
50
- this.scale = new THREE.Vector2();
51
- this.material = null;
52
- this.renderOrder = 0;
53
- };
54
- var Projector = function() {
55
- var _object, _objectCount, _objectPool = [], _objectPoolLength = 0, _vertex, _vertexCount, _vertexPool = [], _vertexPoolLength = 0, _face, _faceCount, _facePool = [], _facePoolLength = 0, _line, _lineCount, _linePool = [], _linePoolLength = 0, _sprite, _spriteCount, _spritePool = [], _spritePoolLength = 0, _renderData = { objects: [], lights: [], elements: [] }, _vector3 = new THREE.Vector3(), _vector4 = new THREE.Vector4(), _clipBox = new THREE.Box3(new THREE.Vector3(-1, -1, -1), new THREE.Vector3(1, 1, 1)), _boundingBox = new THREE.Box3(), _points3 = new Array(3), _viewMatrix = new THREE.Matrix4(), _viewProjectionMatrix = new THREE.Matrix4(), _modelMatrix, _modelViewProjectionMatrix = new THREE.Matrix4(), _frustum = new THREE.Frustum();
56
- this.projectVector = function(vector, camera) {
57
- console.warn("THREE.Projector: .projectVector() is now vector.project().");
58
- vector.project(camera);
59
- };
60
- this.unprojectVector = function(vector, camera) {
61
- console.warn("THREE.Projector: .unprojectVector() is now vector.unproject().");
62
- vector.unproject(camera);
63
- };
64
- this.pickingRay = function() {
65
- console.error("THREE.Projector: .pickingRay() is now raycaster.setFromCamera().");
66
- };
67
- var RenderList = function() {
68
- var normals = [];
69
- var colors = [];
70
- var uvs = [];
71
- var object = null;
72
- var normalMatrix = new THREE.Matrix3();
73
- function setObject(value) {
74
- object = value;
75
- normalMatrix.getNormalMatrix(object.matrixWorld);
76
- normals.length = 0;
77
- colors.length = 0;
78
- uvs.length = 0;
79
- }
80
- function projectVertex(vertex) {
81
- var position = vertex.position;
82
- var positionWorld = vertex.positionWorld;
83
- var positionScreen = vertex.positionScreen;
84
- positionWorld.copy(position).applyMatrix4(_modelMatrix);
85
- positionScreen.copy(positionWorld).applyMatrix4(_viewProjectionMatrix);
86
- var invW = 1 / positionScreen.w;
87
- positionScreen.x *= invW;
88
- positionScreen.y *= invW;
89
- positionScreen.z *= invW;
90
- vertex.visible = positionScreen.x >= -1 && positionScreen.x <= 1 && positionScreen.y >= -1 && positionScreen.y <= 1 && positionScreen.z >= -1 && positionScreen.z <= 1;
91
- }
92
- function pushVertex(x, y, z) {
93
- _vertex = getNextVertexInPool();
94
- _vertex.position.set(x, y, z);
95
- projectVertex(_vertex);
96
- }
97
- function pushNormal(x, y, z) {
98
- normals.push(x, y, z);
99
- }
100
- function pushColor(r, g, b) {
101
- colors.push(r, g, b);
102
- }
103
- function pushUv(x, y) {
104
- uvs.push(x, y);
105
- }
106
- function checkTriangleVisibility(v1, v2, v3) {
107
- if (v1.visible === true || v2.visible === true || v3.visible === true)
108
- return true;
109
- _points3[0] = v1.positionScreen;
110
- _points3[1] = v2.positionScreen;
111
- _points3[2] = v3.positionScreen;
112
- return _clipBox.intersectsBox(_boundingBox.setFromPoints(_points3));
113
- }
114
- function checkBackfaceCulling(v1, v2, v3) {
115
- return (v3.positionScreen.x - v1.positionScreen.x) * (v2.positionScreen.y - v1.positionScreen.y) - (v3.positionScreen.y - v1.positionScreen.y) * (v2.positionScreen.x - v1.positionScreen.x) < 0;
116
- }
117
- function pushLine(a, b) {
118
- var v1 = _vertexPool[a];
119
- var v2 = _vertexPool[b];
120
- v1.positionScreen.copy(v1.position).applyMatrix4(_modelViewProjectionMatrix);
121
- v2.positionScreen.copy(v2.position).applyMatrix4(_modelViewProjectionMatrix);
122
- if (clipLine(v1.positionScreen, v2.positionScreen) === true) {
123
- v1.positionScreen.multiplyScalar(1 / v1.positionScreen.w);
124
- v2.positionScreen.multiplyScalar(1 / v2.positionScreen.w);
125
- _line = getNextLineInPool();
126
- _line.id = object.id;
127
- _line.v1.copy(v1);
128
- _line.v2.copy(v2);
129
- _line.z = Math.max(v1.positionScreen.z, v2.positionScreen.z);
130
- _line.renderOrder = object.renderOrder;
131
- _line.material = object.material;
132
- if (object.material.vertexColors) {
133
- _line.vertexColors[0].fromArray(colors, a * 3);
134
- _line.vertexColors[1].fromArray(colors, b * 3);
135
- }
136
- _renderData.elements.push(_line);
4
+ class RenderableObject {
5
+ constructor() {
6
+ this.id = 0;
7
+ this.object = null;
8
+ this.z = 0;
9
+ this.renderOrder = 0;
10
+ }
11
+ }
12
+ class RenderableFace {
13
+ constructor() {
14
+ this.id = 0;
15
+ this.v1 = new RenderableVertex();
16
+ this.v2 = new RenderableVertex();
17
+ this.v3 = new RenderableVertex();
18
+ this.normalModel = new THREE.Vector3();
19
+ this.vertexNormalsModel = [new THREE.Vector3(), new THREE.Vector3(), new THREE.Vector3()];
20
+ this.vertexNormalsLength = 0;
21
+ this.color = new THREE.Color();
22
+ this.material = null;
23
+ this.uvs = [new THREE.Vector2(), new THREE.Vector2(), new THREE.Vector2()];
24
+ this.z = 0;
25
+ this.renderOrder = 0;
26
+ }
27
+ }
28
+ class RenderableVertex {
29
+ constructor() {
30
+ this.position = new THREE.Vector3();
31
+ this.positionWorld = new THREE.Vector3();
32
+ this.positionScreen = new THREE.Vector4();
33
+ this.visible = true;
34
+ }
35
+ copy(vertex) {
36
+ this.positionWorld.copy(vertex.positionWorld);
37
+ this.positionScreen.copy(vertex.positionScreen);
38
+ }
39
+ }
40
+ class RenderableLine {
41
+ constructor() {
42
+ this.id = 0;
43
+ this.v1 = new RenderableVertex();
44
+ this.v2 = new RenderableVertex();
45
+ this.vertexColors = [new THREE.Color(), new THREE.Color()];
46
+ this.material = null;
47
+ this.z = 0;
48
+ this.renderOrder = 0;
49
+ }
50
+ }
51
+ class RenderableSprite {
52
+ constructor() {
53
+ this.id = 0;
54
+ this.object = null;
55
+ this.x = 0;
56
+ this.y = 0;
57
+ this.z = 0;
58
+ this.rotation = 0;
59
+ this.scale = new THREE.Vector2();
60
+ this.material = null;
61
+ this.renderOrder = 0;
62
+ }
63
+ }
64
+ class Projector {
65
+ constructor() {
66
+ let _object, _objectCount, _objectPoolLength = 0, _vertex, _vertexCount, _vertexPoolLength = 0, _face, _faceCount, _facePoolLength = 0, _line, _lineCount, _linePoolLength = 0, _sprite, _spriteCount, _spritePoolLength = 0, _modelMatrix;
67
+ const _renderData = { objects: [], lights: [], elements: [] }, _vector3 = new THREE.Vector3(), _vector4 = new THREE.Vector4(), _clipBox = new THREE.Box3(new THREE.Vector3(-1, -1, -1), new THREE.Vector3(1, 1, 1)), _boundingBox = new THREE.Box3(), _points3 = new Array(3), _viewMatrix = new THREE.Matrix4(), _viewProjectionMatrix = new THREE.Matrix4(), _modelViewProjectionMatrix = new THREE.Matrix4(), _frustum = new THREE.Frustum(), _objectPool = [], _vertexPool = [], _facePool = [], _linePool = [], _spritePool = [];
68
+ function RenderList() {
69
+ const normals = [];
70
+ const colors = [];
71
+ const uvs = [];
72
+ let object = null;
73
+ const normalMatrix = new THREE.Matrix3();
74
+ function setObject(value) {
75
+ object = value;
76
+ normalMatrix.getNormalMatrix(object.matrixWorld);
77
+ normals.length = 0;
78
+ colors.length = 0;
79
+ uvs.length = 0;
137
80
  }
138
- }
139
- function pushTriangle(a, b, c, material) {
140
- var v1 = _vertexPool[a];
141
- var v2 = _vertexPool[b];
142
- var v3 = _vertexPool[c];
143
- if (checkTriangleVisibility(v1, v2, v3) === false)
144
- return;
145
- if (material.side === THREE.DoubleSide || checkBackfaceCulling(v1, v2, v3) === true) {
146
- _face = getNextFaceInPool();
147
- _face.id = object.id;
148
- _face.v1.copy(v1);
149
- _face.v2.copy(v2);
150
- _face.v3.copy(v3);
151
- _face.z = (v1.positionScreen.z + v2.positionScreen.z + v3.positionScreen.z) / 3;
152
- _face.renderOrder = object.renderOrder;
153
- _vector3.subVectors(v3.position, v2.position);
154
- _vector4.subVectors(v1.position, v2.position);
155
- _vector3.cross(_vector4);
156
- _face.normalModel.copy(_vector3);
157
- _face.normalModel.applyMatrix3(normalMatrix).normalize();
158
- for (let i = 0; i < 3; i++) {
159
- var normal = _face.vertexNormalsModel[i];
160
- normal.fromArray(normals, arguments[i] * 3);
161
- normal.applyMatrix3(normalMatrix).normalize();
162
- var uv = _face.uvs[i];
163
- uv.fromArray(uvs, arguments[i] * 2);
81
+ function projectVertex(vertex) {
82
+ const position = vertex.position;
83
+ const positionWorld = vertex.positionWorld;
84
+ const positionScreen = vertex.positionScreen;
85
+ positionWorld.copy(position).applyMatrix4(_modelMatrix);
86
+ positionScreen.copy(positionWorld).applyMatrix4(_viewProjectionMatrix);
87
+ const invW = 1 / positionScreen.w;
88
+ positionScreen.x *= invW;
89
+ positionScreen.y *= invW;
90
+ positionScreen.z *= invW;
91
+ vertex.visible = positionScreen.x >= -1 && positionScreen.x <= 1 && positionScreen.y >= -1 && positionScreen.y <= 1 && positionScreen.z >= -1 && positionScreen.z <= 1;
92
+ }
93
+ function pushVertex(x, y, z) {
94
+ _vertex = getNextVertexInPool();
95
+ _vertex.position.set(x, y, z);
96
+ projectVertex(_vertex);
97
+ }
98
+ function pushNormal(x, y, z) {
99
+ normals.push(x, y, z);
100
+ }
101
+ function pushColor(r, g, b) {
102
+ colors.push(r, g, b);
103
+ }
104
+ function pushUv(x, y) {
105
+ uvs.push(x, y);
106
+ }
107
+ function checkTriangleVisibility(v1, v2, v3) {
108
+ if (v1.visible === true || v2.visible === true || v3.visible === true)
109
+ return true;
110
+ _points3[0] = v1.positionScreen;
111
+ _points3[1] = v2.positionScreen;
112
+ _points3[2] = v3.positionScreen;
113
+ return _clipBox.intersectsBox(_boundingBox.setFromPoints(_points3));
114
+ }
115
+ function checkBackfaceCulling(v1, v2, v3) {
116
+ return (v3.positionScreen.x - v1.positionScreen.x) * (v2.positionScreen.y - v1.positionScreen.y) - (v3.positionScreen.y - v1.positionScreen.y) * (v2.positionScreen.x - v1.positionScreen.x) < 0;
117
+ }
118
+ function pushLine(a, b) {
119
+ const v1 = _vertexPool[a];
120
+ const v2 = _vertexPool[b];
121
+ v1.positionScreen.copy(v1.position).applyMatrix4(_modelViewProjectionMatrix);
122
+ v2.positionScreen.copy(v2.position).applyMatrix4(_modelViewProjectionMatrix);
123
+ if (clipLine(v1.positionScreen, v2.positionScreen) === true) {
124
+ v1.positionScreen.multiplyScalar(1 / v1.positionScreen.w);
125
+ v2.positionScreen.multiplyScalar(1 / v2.positionScreen.w);
126
+ _line = getNextLineInPool();
127
+ _line.id = object.id;
128
+ _line.v1.copy(v1);
129
+ _line.v2.copy(v2);
130
+ _line.z = Math.max(v1.positionScreen.z, v2.positionScreen.z);
131
+ _line.renderOrder = object.renderOrder;
132
+ _line.material = object.material;
133
+ if (object.material.vertexColors) {
134
+ _line.vertexColors[0].fromArray(colors, a * 3);
135
+ _line.vertexColors[1].fromArray(colors, b * 3);
136
+ }
137
+ _renderData.elements.push(_line);
164
138
  }
165
- _face.vertexNormalsLength = 3;
166
- _face.material = material;
167
- if (material.vertexColors) {
168
- _face.color.fromArray(colors, a * 3);
139
+ }
140
+ function pushTriangle(a, b, c, material) {
141
+ const v1 = _vertexPool[a];
142
+ const v2 = _vertexPool[b];
143
+ const v3 = _vertexPool[c];
144
+ if (checkTriangleVisibility(v1, v2, v3) === false)
145
+ return;
146
+ if (material.side === THREE.DoubleSide || checkBackfaceCulling(v1, v2, v3) === true) {
147
+ _face = getNextFaceInPool();
148
+ _face.id = object.id;
149
+ _face.v1.copy(v1);
150
+ _face.v2.copy(v2);
151
+ _face.v3.copy(v3);
152
+ _face.z = (v1.positionScreen.z + v2.positionScreen.z + v3.positionScreen.z) / 3;
153
+ _face.renderOrder = object.renderOrder;
154
+ _vector3.subVectors(v3.position, v2.position);
155
+ _vector4.subVectors(v1.position, v2.position);
156
+ _vector3.cross(_vector4);
157
+ _face.normalModel.copy(_vector3);
158
+ _face.normalModel.applyMatrix3(normalMatrix).normalize();
159
+ for (let i = 0; i < 3; i++) {
160
+ const normal = _face.vertexNormalsModel[i];
161
+ normal.fromArray(normals, arguments[i] * 3);
162
+ normal.applyMatrix3(normalMatrix).normalize();
163
+ const uv = _face.uvs[i];
164
+ uv.fromArray(uvs, arguments[i] * 2);
165
+ }
166
+ _face.vertexNormalsLength = 3;
167
+ _face.material = material;
168
+ if (material.vertexColors) {
169
+ _face.color.fromArray(colors, a * 3);
170
+ }
171
+ _renderData.elements.push(_face);
169
172
  }
170
- _renderData.elements.push(_face);
171
173
  }
174
+ return {
175
+ setObject,
176
+ projectVertex,
177
+ checkTriangleVisibility,
178
+ checkBackfaceCulling,
179
+ pushVertex,
180
+ pushNormal,
181
+ pushColor,
182
+ pushUv,
183
+ pushLine,
184
+ pushTriangle
185
+ };
172
186
  }
173
- return {
174
- setObject,
175
- projectVertex,
176
- checkTriangleVisibility,
177
- checkBackfaceCulling,
178
- pushVertex,
179
- pushNormal,
180
- pushColor,
181
- pushUv,
182
- pushLine,
183
- pushTriangle
184
- };
185
- };
186
- var renderList = new RenderList();
187
- function projectObject(object) {
188
- if (object.visible === false)
189
- return;
190
- if (object.isLight) {
191
- _renderData.lights.push(object);
192
- } else if (object.isMesh || object.isLine || object.isPoints) {
193
- if (object.material.visible === false)
194
- return;
195
- if (object.frustumCulled === true && _frustum.intersectsObject(object) === false)
196
- return;
197
- addObject(object);
198
- } else if (object.isSprite) {
199
- if (object.material.visible === false)
187
+ const renderList = new RenderList();
188
+ function projectObject(object) {
189
+ if (object.visible === false)
200
190
  return;
201
- if (object.frustumCulled === true && _frustum.intersectsSprite(object) === false)
202
- return;
203
- addObject(object);
204
- }
205
- var children = object.children;
206
- for (let i = 0, l = children.length; i < l; i++) {
207
- projectObject(children[i]);
191
+ if (object.isLight) {
192
+ _renderData.lights.push(object);
193
+ } else if (object.isMesh || object.isLine || object.isPoints) {
194
+ if (object.material.visible === false)
195
+ return;
196
+ if (object.frustumCulled === true && _frustum.intersectsObject(object) === false)
197
+ return;
198
+ addObject(object);
199
+ } else if (object.isSprite) {
200
+ if (object.material.visible === false)
201
+ return;
202
+ if (object.frustumCulled === true && _frustum.intersectsSprite(object) === false)
203
+ return;
204
+ addObject(object);
205
+ }
206
+ const children = object.children;
207
+ for (let i = 0, l = children.length; i < l; i++) {
208
+ projectObject(children[i]);
209
+ }
208
210
  }
209
- }
210
- function addObject(object) {
211
- _object = getNextObjectInPool();
212
- _object.id = object.id;
213
- _object.object = object;
214
- _vector3.setFromMatrixPosition(object.matrixWorld);
215
- _vector3.applyMatrix4(_viewProjectionMatrix);
216
- _object.z = _vector3.z;
217
- _object.renderOrder = object.renderOrder;
218
- _renderData.objects.push(_object);
219
- }
220
- this.projectScene = function(scene, camera, sortObjects, sortElements) {
221
- _faceCount = 0;
222
- _lineCount = 0;
223
- _spriteCount = 0;
224
- _renderData.elements.length = 0;
225
- if (scene.autoUpdate === true)
226
- scene.updateMatrixWorld();
227
- if (camera.parent === null)
228
- camera.updateMatrixWorld();
229
- _viewMatrix.copy(camera.matrixWorldInverse);
230
- _viewProjectionMatrix.multiplyMatrices(camera.projectionMatrix, _viewMatrix);
231
- _frustum.setFromProjectionMatrix(_viewProjectionMatrix);
232
- _objectCount = 0;
233
- _renderData.objects.length = 0;
234
- _renderData.lights.length = 0;
235
- projectObject(scene);
236
- if (sortObjects === true) {
237
- _renderData.objects.sort(painterSort);
211
+ function addObject(object) {
212
+ _object = getNextObjectInPool();
213
+ _object.id = object.id;
214
+ _object.object = object;
215
+ _vector3.setFromMatrixPosition(object.matrixWorld);
216
+ _vector3.applyMatrix4(_viewProjectionMatrix);
217
+ _object.z = _vector3.z;
218
+ _object.renderOrder = object.renderOrder;
219
+ _renderData.objects.push(_object);
238
220
  }
239
- var objects = _renderData.objects;
240
- for (let o = 0, ol = objects.length; o < ol; o++) {
241
- var object = objects[o].object;
242
- var geometry = object.geometry;
243
- renderList.setObject(object);
244
- _modelMatrix = object.matrixWorld;
245
- _vertexCount = 0;
246
- if (object.isMesh) {
247
- if (geometry.isBufferGeometry) {
248
- var material = object.material;
249
- var isMultiMaterial = Array.isArray(material);
250
- var attributes = geometry.attributes;
251
- var groups = geometry.groups;
221
+ this.projectScene = function(scene, camera, sortObjects, sortElements) {
222
+ _faceCount = 0;
223
+ _lineCount = 0;
224
+ _spriteCount = 0;
225
+ _renderData.elements.length = 0;
226
+ if (scene.matrixWorldAutoUpdate === true)
227
+ scene.updateMatrixWorld();
228
+ if (camera.parent === null && camera.matrixWorldAutoUpdate === true)
229
+ camera.updateMatrixWorld();
230
+ _viewMatrix.copy(camera.matrixWorldInverse);
231
+ _viewProjectionMatrix.multiplyMatrices(camera.projectionMatrix, _viewMatrix);
232
+ _frustum.setFromProjectionMatrix(_viewProjectionMatrix);
233
+ _objectCount = 0;
234
+ _renderData.objects.length = 0;
235
+ _renderData.lights.length = 0;
236
+ projectObject(scene);
237
+ if (sortObjects === true) {
238
+ _renderData.objects.sort(painterSort);
239
+ }
240
+ const objects = _renderData.objects;
241
+ for (let o = 0, ol = objects.length; o < ol; o++) {
242
+ const object = objects[o].object;
243
+ const geometry = object.geometry;
244
+ renderList.setObject(object);
245
+ _modelMatrix = object.matrixWorld;
246
+ _vertexCount = 0;
247
+ if (object.isMesh) {
248
+ let material = object.material;
249
+ const isMultiMaterial = Array.isArray(material);
250
+ const attributes = geometry.attributes;
251
+ const groups = geometry.groups;
252
252
  if (attributes.position === void 0)
253
253
  continue;
254
- var positions = attributes.position.array;
254
+ const positions = attributes.position.array;
255
255
  for (let i = 0, l = positions.length; i < l; i += 3) {
256
- var x = positions[i];
257
- var y = positions[i + 1];
258
- var z = positions[i + 2];
259
- if (material.morphTargets === true) {
260
- var morphTargets = geometry.morphAttributes.position;
261
- var morphTargetsRelative = geometry.morphTargetsRelative;
262
- var morphInfluences = object.morphTargetInfluences;
256
+ let x = positions[i];
257
+ let y = positions[i + 1];
258
+ let z = positions[i + 2];
259
+ const morphTargets = geometry.morphAttributes.position;
260
+ if (morphTargets !== void 0) {
261
+ const morphTargetsRelative = geometry.morphTargetsRelative;
262
+ const morphInfluences = object.morphTargetInfluences;
263
263
  for (let t = 0, tl = morphTargets.length; t < tl; t++) {
264
- var influence = morphInfluences[t];
264
+ const influence = morphInfluences[t];
265
265
  if (influence === 0)
266
266
  continue;
267
- var target = morphTargets[t];
267
+ const target = morphTargets[t];
268
268
  if (morphTargetsRelative) {
269
269
  x += target.getX(i / 3) * influence;
270
270
  y += target.getY(i / 3) * influence;
@@ -279,28 +279,28 @@ var Projector = function() {
279
279
  renderList.pushVertex(x, y, z);
280
280
  }
281
281
  if (attributes.normal !== void 0) {
282
- var normals = attributes.normal.array;
282
+ const normals = attributes.normal.array;
283
283
  for (let i = 0, l = normals.length; i < l; i += 3) {
284
284
  renderList.pushNormal(normals[i], normals[i + 1], normals[i + 2]);
285
285
  }
286
286
  }
287
287
  if (attributes.color !== void 0) {
288
- var colors = attributes.color.array;
288
+ const colors = attributes.color.array;
289
289
  for (let i = 0, l = colors.length; i < l; i += 3) {
290
290
  renderList.pushColor(colors[i], colors[i + 1], colors[i + 2]);
291
291
  }
292
292
  }
293
293
  if (attributes.uv !== void 0) {
294
- var uvs = attributes.uv.array;
294
+ const uvs = attributes.uv.array;
295
295
  for (let i = 0, l = uvs.length; i < l; i += 2) {
296
296
  renderList.pushUv(uvs[i], uvs[i + 1]);
297
297
  }
298
298
  }
299
299
  if (geometry.index !== null) {
300
- var indices = geometry.index.array;
300
+ const indices = geometry.index.array;
301
301
  if (groups.length > 0) {
302
302
  for (let g = 0; g < groups.length; g++) {
303
- var group = groups[g];
303
+ const group = groups[g];
304
304
  material = isMultiMaterial === true ? object.material[group.materialIndex] : object.material;
305
305
  if (material === void 0)
306
306
  continue;
@@ -316,7 +316,7 @@ var Projector = function() {
316
316
  } else {
317
317
  if (groups.length > 0) {
318
318
  for (let g = 0; g < groups.length; g++) {
319
- var group = groups[g];
319
+ const group = groups[g];
320
320
  material = isMultiMaterial === true ? object.material[group.materialIndex] : object.material;
321
321
  if (material === void 0)
322
322
  continue;
@@ -330,179 +330,167 @@ var Projector = function() {
330
330
  }
331
331
  }
332
332
  }
333
- } else if (geometry.isGeometry) {
334
- console.error("THREE.Projector no longer supports Geometry. Use THREE.BufferGeometry instead.");
335
- return;
336
- }
337
- } else if (object.isLine) {
338
- _modelViewProjectionMatrix.multiplyMatrices(_viewProjectionMatrix, _modelMatrix);
339
- if (geometry.isBufferGeometry) {
340
- var attributes = geometry.attributes;
333
+ } else if (object.isLine) {
334
+ _modelViewProjectionMatrix.multiplyMatrices(_viewProjectionMatrix, _modelMatrix);
335
+ const attributes = geometry.attributes;
341
336
  if (attributes.position !== void 0) {
342
- var positions = attributes.position.array;
337
+ const positions = attributes.position.array;
343
338
  for (let i = 0, l = positions.length; i < l; i += 3) {
344
339
  renderList.pushVertex(positions[i], positions[i + 1], positions[i + 2]);
345
340
  }
346
341
  if (attributes.color !== void 0) {
347
- var colors = attributes.color.array;
342
+ const colors = attributes.color.array;
348
343
  for (let i = 0, l = colors.length; i < l; i += 3) {
349
344
  renderList.pushColor(colors[i], colors[i + 1], colors[i + 2]);
350
345
  }
351
346
  }
352
347
  if (geometry.index !== null) {
353
- var indices = geometry.index.array;
348
+ const indices = geometry.index.array;
354
349
  for (let i = 0, l = indices.length; i < l; i += 2) {
355
350
  renderList.pushLine(indices[i], indices[i + 1]);
356
351
  }
357
352
  } else {
358
- var step = object.isLineSegments ? 2 : 1;
353
+ const step = object.isLineSegments ? 2 : 1;
359
354
  for (let i = 0, l = positions.length / 3 - 1; i < l; i += step) {
360
355
  renderList.pushLine(i, i + 1);
361
356
  }
362
357
  }
363
358
  }
364
- } else if (geometry.isGeometry) {
365
- console.error("THREE.Projector no longer supports Geometry. Use THREE.BufferGeometry instead.");
366
- return;
367
- }
368
- } else if (object.isPoints) {
369
- _modelViewProjectionMatrix.multiplyMatrices(_viewProjectionMatrix, _modelMatrix);
370
- if (geometry.isGeometry) {
371
- console.error("THREE.Projector no longer supports Geometry. Use THREE.BufferGeometry instead.");
372
- return;
373
- } else if (geometry.isBufferGeometry) {
374
- var attributes = geometry.attributes;
359
+ } else if (object.isPoints) {
360
+ _modelViewProjectionMatrix.multiplyMatrices(_viewProjectionMatrix, _modelMatrix);
361
+ const attributes = geometry.attributes;
375
362
  if (attributes.position !== void 0) {
376
- var positions = attributes.position.array;
363
+ const positions = attributes.position.array;
377
364
  for (let i = 0, l = positions.length; i < l; i += 3) {
378
365
  _vector4.set(positions[i], positions[i + 1], positions[i + 2], 1);
379
366
  _vector4.applyMatrix4(_modelViewProjectionMatrix);
380
367
  pushPoint(_vector4, object, camera);
381
368
  }
382
369
  }
370
+ } else if (object.isSprite) {
371
+ object.modelViewMatrix.multiplyMatrices(camera.matrixWorldInverse, object.matrixWorld);
372
+ _vector4.set(_modelMatrix.elements[12], _modelMatrix.elements[13], _modelMatrix.elements[14], 1);
373
+ _vector4.applyMatrix4(_viewProjectionMatrix);
374
+ pushPoint(_vector4, object, camera);
383
375
  }
384
- } else if (object.isSprite) {
385
- object.modelViewMatrix.multiplyMatrices(camera.matrixWorldInverse, object.matrixWorld);
386
- _vector4.set(_modelMatrix.elements[12], _modelMatrix.elements[13], _modelMatrix.elements[14], 1);
387
- _vector4.applyMatrix4(_viewProjectionMatrix);
388
- pushPoint(_vector4, object, camera);
376
+ }
377
+ if (sortElements === true) {
378
+ _renderData.elements.sort(painterSort);
379
+ }
380
+ return _renderData;
381
+ };
382
+ function pushPoint(_vector42, object, camera) {
383
+ const invW = 1 / _vector42.w;
384
+ _vector42.z *= invW;
385
+ if (_vector42.z >= -1 && _vector42.z <= 1) {
386
+ _sprite = getNextSpriteInPool();
387
+ _sprite.id = object.id;
388
+ _sprite.x = _vector42.x * invW;
389
+ _sprite.y = _vector42.y * invW;
390
+ _sprite.z = _vector42.z;
391
+ _sprite.renderOrder = object.renderOrder;
392
+ _sprite.object = object;
393
+ _sprite.rotation = object.rotation;
394
+ _sprite.scale.x = object.scale.x * Math.abs(
395
+ _sprite.x - (_vector42.x + camera.projectionMatrix.elements[0]) / (_vector42.w + camera.projectionMatrix.elements[12])
396
+ );
397
+ _sprite.scale.y = object.scale.y * Math.abs(
398
+ _sprite.y - (_vector42.y + camera.projectionMatrix.elements[5]) / (_vector42.w + camera.projectionMatrix.elements[13])
399
+ );
400
+ _sprite.material = object.material;
401
+ _renderData.elements.push(_sprite);
389
402
  }
390
403
  }
391
- if (sortElements === true) {
392
- _renderData.elements.sort(painterSort);
393
- }
394
- return _renderData;
395
- };
396
- function pushPoint(_vector42, object, camera) {
397
- var invW = 1 / _vector42.w;
398
- _vector42.z *= invW;
399
- if (_vector42.z >= -1 && _vector42.z <= 1) {
400
- _sprite = getNextSpriteInPool();
401
- _sprite.id = object.id;
402
- _sprite.x = _vector42.x * invW;
403
- _sprite.y = _vector42.y * invW;
404
- _sprite.z = _vector42.z;
405
- _sprite.renderOrder = object.renderOrder;
406
- _sprite.object = object;
407
- _sprite.rotation = object.rotation;
408
- _sprite.scale.x = object.scale.x * Math.abs(
409
- _sprite.x - (_vector42.x + camera.projectionMatrix.elements[0]) / (_vector42.w + camera.projectionMatrix.elements[12])
410
- );
411
- _sprite.scale.y = object.scale.y * Math.abs(
412
- _sprite.y - (_vector42.y + camera.projectionMatrix.elements[5]) / (_vector42.w + camera.projectionMatrix.elements[13])
413
- );
414
- _sprite.material = object.material;
415
- _renderData.elements.push(_sprite);
416
- }
417
- }
418
- function getNextObjectInPool() {
419
- if (_objectCount === _objectPoolLength) {
420
- var object = new RenderableObject();
421
- _objectPool.push(object);
422
- _objectPoolLength++;
423
- _objectCount++;
424
- return object;
425
- }
426
- return _objectPool[_objectCount++];
427
- }
428
- function getNextVertexInPool() {
429
- if (_vertexCount === _vertexPoolLength) {
430
- var vertex = new RenderableVertex();
431
- _vertexPool.push(vertex);
432
- _vertexPoolLength++;
433
- _vertexCount++;
434
- return vertex;
435
- }
436
- return _vertexPool[_vertexCount++];
437
- }
438
- function getNextFaceInPool() {
439
- if (_faceCount === _facePoolLength) {
440
- var face = new RenderableFace();
441
- _facePool.push(face);
442
- _facePoolLength++;
443
- _faceCount++;
444
- return face;
404
+ function getNextObjectInPool() {
405
+ if (_objectCount === _objectPoolLength) {
406
+ const object = new RenderableObject();
407
+ _objectPool.push(object);
408
+ _objectPoolLength++;
409
+ _objectCount++;
410
+ return object;
411
+ }
412
+ return _objectPool[_objectCount++];
445
413
  }
446
- return _facePool[_faceCount++];
447
- }
448
- function getNextLineInPool() {
449
- if (_lineCount === _linePoolLength) {
450
- var line = new RenderableLine();
451
- _linePool.push(line);
452
- _linePoolLength++;
453
- _lineCount++;
454
- return line;
414
+ function getNextVertexInPool() {
415
+ if (_vertexCount === _vertexPoolLength) {
416
+ const vertex = new RenderableVertex();
417
+ _vertexPool.push(vertex);
418
+ _vertexPoolLength++;
419
+ _vertexCount++;
420
+ return vertex;
421
+ }
422
+ return _vertexPool[_vertexCount++];
455
423
  }
456
- return _linePool[_lineCount++];
457
- }
458
- function getNextSpriteInPool() {
459
- if (_spriteCount === _spritePoolLength) {
460
- var sprite = new RenderableSprite();
461
- _spritePool.push(sprite);
462
- _spritePoolLength++;
463
- _spriteCount++;
464
- return sprite;
424
+ function getNextFaceInPool() {
425
+ if (_faceCount === _facePoolLength) {
426
+ const face = new RenderableFace();
427
+ _facePool.push(face);
428
+ _facePoolLength++;
429
+ _faceCount++;
430
+ return face;
431
+ }
432
+ return _facePool[_faceCount++];
465
433
  }
466
- return _spritePool[_spriteCount++];
467
- }
468
- function painterSort(a, b) {
469
- if (a.renderOrder !== b.renderOrder) {
470
- return a.renderOrder - b.renderOrder;
471
- } else if (a.z !== b.z) {
472
- return b.z - a.z;
473
- } else if (a.id !== b.id) {
474
- return a.id - b.id;
475
- } else {
476
- return 0;
434
+ function getNextLineInPool() {
435
+ if (_lineCount === _linePoolLength) {
436
+ const line = new RenderableLine();
437
+ _linePool.push(line);
438
+ _linePoolLength++;
439
+ _lineCount++;
440
+ return line;
441
+ }
442
+ return _linePool[_lineCount++];
477
443
  }
478
- }
479
- function clipLine(s1, s2) {
480
- var alpha1 = 0, alpha2 = 1, bc1near = s1.z + s1.w, bc2near = s2.z + s2.w, bc1far = -s1.z + s1.w, bc2far = -s2.z + s2.w;
481
- if (bc1near >= 0 && bc2near >= 0 && bc1far >= 0 && bc2far >= 0) {
482
- return true;
483
- } else if (bc1near < 0 && bc2near < 0 || bc1far < 0 && bc2far < 0) {
484
- return false;
485
- } else {
486
- if (bc1near < 0) {
487
- alpha1 = Math.max(alpha1, bc1near / (bc1near - bc2near));
488
- } else if (bc2near < 0) {
489
- alpha2 = Math.min(alpha2, bc1near / (bc1near - bc2near));
444
+ function getNextSpriteInPool() {
445
+ if (_spriteCount === _spritePoolLength) {
446
+ const sprite = new RenderableSprite();
447
+ _spritePool.push(sprite);
448
+ _spritePoolLength++;
449
+ _spriteCount++;
450
+ return sprite;
490
451
  }
491
- if (bc1far < 0) {
492
- alpha1 = Math.max(alpha1, bc1far / (bc1far - bc2far));
493
- } else if (bc2far < 0) {
494
- alpha2 = Math.min(alpha2, bc1far / (bc1far - bc2far));
452
+ return _spritePool[_spriteCount++];
453
+ }
454
+ function painterSort(a, b) {
455
+ if (a.renderOrder !== b.renderOrder) {
456
+ return a.renderOrder - b.renderOrder;
457
+ } else if (a.z !== b.z) {
458
+ return b.z - a.z;
459
+ } else if (a.id !== b.id) {
460
+ return a.id - b.id;
461
+ } else {
462
+ return 0;
495
463
  }
496
- if (alpha2 < alpha1) {
464
+ }
465
+ function clipLine(s1, s2) {
466
+ let alpha1 = 0, alpha2 = 1;
467
+ const bc1near = s1.z + s1.w, bc2near = s2.z + s2.w, bc1far = -s1.z + s1.w, bc2far = -s2.z + s2.w;
468
+ if (bc1near >= 0 && bc2near >= 0 && bc1far >= 0 && bc2far >= 0) {
469
+ return true;
470
+ } else if (bc1near < 0 && bc2near < 0 || bc1far < 0 && bc2far < 0) {
497
471
  return false;
498
472
  } else {
499
- s1.lerp(s2, alpha1);
500
- s2.lerp(s1, 1 - alpha2);
501
- return true;
473
+ if (bc1near < 0) {
474
+ alpha1 = Math.max(alpha1, bc1near / (bc1near - bc2near));
475
+ } else if (bc2near < 0) {
476
+ alpha2 = Math.min(alpha2, bc1near / (bc1near - bc2near));
477
+ }
478
+ if (bc1far < 0) {
479
+ alpha1 = Math.max(alpha1, bc1far / (bc1far - bc2far));
480
+ } else if (bc2far < 0) {
481
+ alpha2 = Math.min(alpha2, bc1far / (bc1far - bc2far));
482
+ }
483
+ if (alpha2 < alpha1) {
484
+ return false;
485
+ } else {
486
+ s1.lerp(s2, alpha1);
487
+ s2.lerp(s1, 1 - alpha2);
488
+ return true;
489
+ }
502
490
  }
503
491
  }
504
492
  }
505
- };
493
+ }
506
494
  exports.Projector = Projector;
507
495
  exports.RenderableFace = RenderableFace;
508
496
  exports.RenderableLine = RenderableLine;