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,268 +1,268 @@
1
1
  import { Vector3, Color, Vector2, Vector4, Box3, Matrix4, Frustum, Matrix3, DoubleSide } from "three";
2
- var RenderableObject = function() {
3
- this.id = 0;
4
- this.object = null;
5
- this.z = 0;
6
- this.renderOrder = 0;
7
- };
8
- var RenderableFace = function() {
9
- this.id = 0;
10
- this.v1 = new RenderableVertex();
11
- this.v2 = new RenderableVertex();
12
- this.v3 = new RenderableVertex();
13
- this.normalModel = new Vector3();
14
- this.vertexNormalsModel = [new Vector3(), new Vector3(), new Vector3()];
15
- this.vertexNormalsLength = 0;
16
- this.color = new Color();
17
- this.material = null;
18
- this.uvs = [new Vector2(), new Vector2(), new Vector2()];
19
- this.z = 0;
20
- this.renderOrder = 0;
21
- };
22
- var RenderableVertex = function() {
23
- this.position = new Vector3();
24
- this.positionWorld = new Vector3();
25
- this.positionScreen = new Vector4();
26
- this.visible = true;
27
- };
28
- RenderableVertex.prototype.copy = function(vertex) {
29
- this.positionWorld.copy(vertex.positionWorld);
30
- this.positionScreen.copy(vertex.positionScreen);
31
- };
32
- var RenderableLine = function() {
33
- this.id = 0;
34
- this.v1 = new RenderableVertex();
35
- this.v2 = new RenderableVertex();
36
- this.vertexColors = [new Color(), new Color()];
37
- this.material = null;
38
- this.z = 0;
39
- this.renderOrder = 0;
40
- };
41
- var RenderableSprite = function() {
42
- this.id = 0;
43
- this.object = null;
44
- this.x = 0;
45
- this.y = 0;
46
- this.z = 0;
47
- this.rotation = 0;
48
- this.scale = new Vector2();
49
- this.material = null;
50
- this.renderOrder = 0;
51
- };
52
- var Projector = function() {
53
- 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 Vector3(), _vector4 = new Vector4(), _clipBox = new Box3(new Vector3(-1, -1, -1), new Vector3(1, 1, 1)), _boundingBox = new Box3(), _points3 = new Array(3), _viewMatrix = new Matrix4(), _viewProjectionMatrix = new Matrix4(), _modelMatrix, _modelViewProjectionMatrix = new Matrix4(), _frustum = new Frustum();
54
- this.projectVector = function(vector, camera) {
55
- console.warn("THREE.Projector: .projectVector() is now vector.project().");
56
- vector.project(camera);
57
- };
58
- this.unprojectVector = function(vector, camera) {
59
- console.warn("THREE.Projector: .unprojectVector() is now vector.unproject().");
60
- vector.unproject(camera);
61
- };
62
- this.pickingRay = function() {
63
- console.error("THREE.Projector: .pickingRay() is now raycaster.setFromCamera().");
64
- };
65
- var RenderList = function() {
66
- var normals = [];
67
- var colors = [];
68
- var uvs = [];
69
- var object = null;
70
- var normalMatrix = new Matrix3();
71
- function setObject(value) {
72
- object = value;
73
- normalMatrix.getNormalMatrix(object.matrixWorld);
74
- normals.length = 0;
75
- colors.length = 0;
76
- uvs.length = 0;
77
- }
78
- function projectVertex(vertex) {
79
- var position = vertex.position;
80
- var positionWorld = vertex.positionWorld;
81
- var positionScreen = vertex.positionScreen;
82
- positionWorld.copy(position).applyMatrix4(_modelMatrix);
83
- positionScreen.copy(positionWorld).applyMatrix4(_viewProjectionMatrix);
84
- var invW = 1 / positionScreen.w;
85
- positionScreen.x *= invW;
86
- positionScreen.y *= invW;
87
- positionScreen.z *= invW;
88
- vertex.visible = positionScreen.x >= -1 && positionScreen.x <= 1 && positionScreen.y >= -1 && positionScreen.y <= 1 && positionScreen.z >= -1 && positionScreen.z <= 1;
89
- }
90
- function pushVertex(x, y, z) {
91
- _vertex = getNextVertexInPool();
92
- _vertex.position.set(x, y, z);
93
- projectVertex(_vertex);
94
- }
95
- function pushNormal(x, y, z) {
96
- normals.push(x, y, z);
97
- }
98
- function pushColor(r, g, b) {
99
- colors.push(r, g, b);
100
- }
101
- function pushUv(x, y) {
102
- uvs.push(x, y);
103
- }
104
- function checkTriangleVisibility(v1, v2, v3) {
105
- if (v1.visible === true || v2.visible === true || v3.visible === true)
106
- return true;
107
- _points3[0] = v1.positionScreen;
108
- _points3[1] = v2.positionScreen;
109
- _points3[2] = v3.positionScreen;
110
- return _clipBox.intersectsBox(_boundingBox.setFromPoints(_points3));
111
- }
112
- function checkBackfaceCulling(v1, v2, v3) {
113
- 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;
114
- }
115
- function pushLine(a, b) {
116
- var v1 = _vertexPool[a];
117
- var v2 = _vertexPool[b];
118
- v1.positionScreen.copy(v1.position).applyMatrix4(_modelViewProjectionMatrix);
119
- v2.positionScreen.copy(v2.position).applyMatrix4(_modelViewProjectionMatrix);
120
- if (clipLine(v1.positionScreen, v2.positionScreen) === true) {
121
- v1.positionScreen.multiplyScalar(1 / v1.positionScreen.w);
122
- v2.positionScreen.multiplyScalar(1 / v2.positionScreen.w);
123
- _line = getNextLineInPool();
124
- _line.id = object.id;
125
- _line.v1.copy(v1);
126
- _line.v2.copy(v2);
127
- _line.z = Math.max(v1.positionScreen.z, v2.positionScreen.z);
128
- _line.renderOrder = object.renderOrder;
129
- _line.material = object.material;
130
- if (object.material.vertexColors) {
131
- _line.vertexColors[0].fromArray(colors, a * 3);
132
- _line.vertexColors[1].fromArray(colors, b * 3);
133
- }
134
- _renderData.elements.push(_line);
2
+ class RenderableObject {
3
+ constructor() {
4
+ this.id = 0;
5
+ this.object = null;
6
+ this.z = 0;
7
+ this.renderOrder = 0;
8
+ }
9
+ }
10
+ class RenderableFace {
11
+ constructor() {
12
+ this.id = 0;
13
+ this.v1 = new RenderableVertex();
14
+ this.v2 = new RenderableVertex();
15
+ this.v3 = new RenderableVertex();
16
+ this.normalModel = new Vector3();
17
+ this.vertexNormalsModel = [new Vector3(), new Vector3(), new Vector3()];
18
+ this.vertexNormalsLength = 0;
19
+ this.color = new Color();
20
+ this.material = null;
21
+ this.uvs = [new Vector2(), new Vector2(), new Vector2()];
22
+ this.z = 0;
23
+ this.renderOrder = 0;
24
+ }
25
+ }
26
+ class RenderableVertex {
27
+ constructor() {
28
+ this.position = new Vector3();
29
+ this.positionWorld = new Vector3();
30
+ this.positionScreen = new Vector4();
31
+ this.visible = true;
32
+ }
33
+ copy(vertex) {
34
+ this.positionWorld.copy(vertex.positionWorld);
35
+ this.positionScreen.copy(vertex.positionScreen);
36
+ }
37
+ }
38
+ class RenderableLine {
39
+ constructor() {
40
+ this.id = 0;
41
+ this.v1 = new RenderableVertex();
42
+ this.v2 = new RenderableVertex();
43
+ this.vertexColors = [new Color(), new Color()];
44
+ this.material = null;
45
+ this.z = 0;
46
+ this.renderOrder = 0;
47
+ }
48
+ }
49
+ class RenderableSprite {
50
+ constructor() {
51
+ this.id = 0;
52
+ this.object = null;
53
+ this.x = 0;
54
+ this.y = 0;
55
+ this.z = 0;
56
+ this.rotation = 0;
57
+ this.scale = new Vector2();
58
+ this.material = null;
59
+ this.renderOrder = 0;
60
+ }
61
+ }
62
+ class Projector {
63
+ constructor() {
64
+ let _object, _objectCount, _objectPoolLength = 0, _vertex, _vertexCount, _vertexPoolLength = 0, _face, _faceCount, _facePoolLength = 0, _line, _lineCount, _linePoolLength = 0, _sprite, _spriteCount, _spritePoolLength = 0, _modelMatrix;
65
+ const _renderData = { objects: [], lights: [], elements: [] }, _vector3 = new Vector3(), _vector4 = new Vector4(), _clipBox = new Box3(new Vector3(-1, -1, -1), new Vector3(1, 1, 1)), _boundingBox = new Box3(), _points3 = new Array(3), _viewMatrix = new Matrix4(), _viewProjectionMatrix = new Matrix4(), _modelViewProjectionMatrix = new Matrix4(), _frustum = new Frustum(), _objectPool = [], _vertexPool = [], _facePool = [], _linePool = [], _spritePool = [];
66
+ function RenderList() {
67
+ const normals = [];
68
+ const colors = [];
69
+ const uvs = [];
70
+ let object = null;
71
+ const normalMatrix = new Matrix3();
72
+ function setObject(value) {
73
+ object = value;
74
+ normalMatrix.getNormalMatrix(object.matrixWorld);
75
+ normals.length = 0;
76
+ colors.length = 0;
77
+ uvs.length = 0;
135
78
  }
136
- }
137
- function pushTriangle(a, b, c, material) {
138
- var v1 = _vertexPool[a];
139
- var v2 = _vertexPool[b];
140
- var v3 = _vertexPool[c];
141
- if (checkTriangleVisibility(v1, v2, v3) === false)
142
- return;
143
- if (material.side === DoubleSide || checkBackfaceCulling(v1, v2, v3) === true) {
144
- _face = getNextFaceInPool();
145
- _face.id = object.id;
146
- _face.v1.copy(v1);
147
- _face.v2.copy(v2);
148
- _face.v3.copy(v3);
149
- _face.z = (v1.positionScreen.z + v2.positionScreen.z + v3.positionScreen.z) / 3;
150
- _face.renderOrder = object.renderOrder;
151
- _vector3.subVectors(v3.position, v2.position);
152
- _vector4.subVectors(v1.position, v2.position);
153
- _vector3.cross(_vector4);
154
- _face.normalModel.copy(_vector3);
155
- _face.normalModel.applyMatrix3(normalMatrix).normalize();
156
- for (let i = 0; i < 3; i++) {
157
- var normal = _face.vertexNormalsModel[i];
158
- normal.fromArray(normals, arguments[i] * 3);
159
- normal.applyMatrix3(normalMatrix).normalize();
160
- var uv = _face.uvs[i];
161
- uv.fromArray(uvs, arguments[i] * 2);
79
+ function projectVertex(vertex) {
80
+ const position = vertex.position;
81
+ const positionWorld = vertex.positionWorld;
82
+ const positionScreen = vertex.positionScreen;
83
+ positionWorld.copy(position).applyMatrix4(_modelMatrix);
84
+ positionScreen.copy(positionWorld).applyMatrix4(_viewProjectionMatrix);
85
+ const invW = 1 / positionScreen.w;
86
+ positionScreen.x *= invW;
87
+ positionScreen.y *= invW;
88
+ positionScreen.z *= invW;
89
+ vertex.visible = positionScreen.x >= -1 && positionScreen.x <= 1 && positionScreen.y >= -1 && positionScreen.y <= 1 && positionScreen.z >= -1 && positionScreen.z <= 1;
90
+ }
91
+ function pushVertex(x, y, z) {
92
+ _vertex = getNextVertexInPool();
93
+ _vertex.position.set(x, y, z);
94
+ projectVertex(_vertex);
95
+ }
96
+ function pushNormal(x, y, z) {
97
+ normals.push(x, y, z);
98
+ }
99
+ function pushColor(r, g, b) {
100
+ colors.push(r, g, b);
101
+ }
102
+ function pushUv(x, y) {
103
+ uvs.push(x, y);
104
+ }
105
+ function checkTriangleVisibility(v1, v2, v3) {
106
+ if (v1.visible === true || v2.visible === true || v3.visible === true)
107
+ return true;
108
+ _points3[0] = v1.positionScreen;
109
+ _points3[1] = v2.positionScreen;
110
+ _points3[2] = v3.positionScreen;
111
+ return _clipBox.intersectsBox(_boundingBox.setFromPoints(_points3));
112
+ }
113
+ function checkBackfaceCulling(v1, v2, v3) {
114
+ 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;
115
+ }
116
+ function pushLine(a, b) {
117
+ const v1 = _vertexPool[a];
118
+ const v2 = _vertexPool[b];
119
+ v1.positionScreen.copy(v1.position).applyMatrix4(_modelViewProjectionMatrix);
120
+ v2.positionScreen.copy(v2.position).applyMatrix4(_modelViewProjectionMatrix);
121
+ if (clipLine(v1.positionScreen, v2.positionScreen) === true) {
122
+ v1.positionScreen.multiplyScalar(1 / v1.positionScreen.w);
123
+ v2.positionScreen.multiplyScalar(1 / v2.positionScreen.w);
124
+ _line = getNextLineInPool();
125
+ _line.id = object.id;
126
+ _line.v1.copy(v1);
127
+ _line.v2.copy(v2);
128
+ _line.z = Math.max(v1.positionScreen.z, v2.positionScreen.z);
129
+ _line.renderOrder = object.renderOrder;
130
+ _line.material = object.material;
131
+ if (object.material.vertexColors) {
132
+ _line.vertexColors[0].fromArray(colors, a * 3);
133
+ _line.vertexColors[1].fromArray(colors, b * 3);
134
+ }
135
+ _renderData.elements.push(_line);
162
136
  }
163
- _face.vertexNormalsLength = 3;
164
- _face.material = material;
165
- if (material.vertexColors) {
166
- _face.color.fromArray(colors, a * 3);
137
+ }
138
+ function pushTriangle(a, b, c, material) {
139
+ const v1 = _vertexPool[a];
140
+ const v2 = _vertexPool[b];
141
+ const v3 = _vertexPool[c];
142
+ if (checkTriangleVisibility(v1, v2, v3) === false)
143
+ return;
144
+ if (material.side === DoubleSide || checkBackfaceCulling(v1, v2, v3) === true) {
145
+ _face = getNextFaceInPool();
146
+ _face.id = object.id;
147
+ _face.v1.copy(v1);
148
+ _face.v2.copy(v2);
149
+ _face.v3.copy(v3);
150
+ _face.z = (v1.positionScreen.z + v2.positionScreen.z + v3.positionScreen.z) / 3;
151
+ _face.renderOrder = object.renderOrder;
152
+ _vector3.subVectors(v3.position, v2.position);
153
+ _vector4.subVectors(v1.position, v2.position);
154
+ _vector3.cross(_vector4);
155
+ _face.normalModel.copy(_vector3);
156
+ _face.normalModel.applyMatrix3(normalMatrix).normalize();
157
+ for (let i = 0; i < 3; i++) {
158
+ const normal = _face.vertexNormalsModel[i];
159
+ normal.fromArray(normals, arguments[i] * 3);
160
+ normal.applyMatrix3(normalMatrix).normalize();
161
+ const uv = _face.uvs[i];
162
+ uv.fromArray(uvs, arguments[i] * 2);
163
+ }
164
+ _face.vertexNormalsLength = 3;
165
+ _face.material = material;
166
+ if (material.vertexColors) {
167
+ _face.color.fromArray(colors, a * 3);
168
+ }
169
+ _renderData.elements.push(_face);
167
170
  }
168
- _renderData.elements.push(_face);
169
171
  }
172
+ return {
173
+ setObject,
174
+ projectVertex,
175
+ checkTriangleVisibility,
176
+ checkBackfaceCulling,
177
+ pushVertex,
178
+ pushNormal,
179
+ pushColor,
180
+ pushUv,
181
+ pushLine,
182
+ pushTriangle
183
+ };
170
184
  }
171
- return {
172
- setObject,
173
- projectVertex,
174
- checkTriangleVisibility,
175
- checkBackfaceCulling,
176
- pushVertex,
177
- pushNormal,
178
- pushColor,
179
- pushUv,
180
- pushLine,
181
- pushTriangle
182
- };
183
- };
184
- var renderList = new RenderList();
185
- function projectObject(object) {
186
- if (object.visible === false)
187
- return;
188
- if (object.isLight) {
189
- _renderData.lights.push(object);
190
- } else if (object.isMesh || object.isLine || object.isPoints) {
191
- if (object.material.visible === false)
185
+ const renderList = new RenderList();
186
+ function projectObject(object) {
187
+ if (object.visible === false)
192
188
  return;
193
- if (object.frustumCulled === true && _frustum.intersectsObject(object) === false)
194
- return;
195
- addObject(object);
196
- } else if (object.isSprite) {
197
- if (object.material.visible === false)
198
- return;
199
- if (object.frustumCulled === true && _frustum.intersectsSprite(object) === false)
200
- return;
201
- addObject(object);
202
- }
203
- var children = object.children;
204
- for (let i = 0, l = children.length; i < l; i++) {
205
- projectObject(children[i]);
189
+ if (object.isLight) {
190
+ _renderData.lights.push(object);
191
+ } else if (object.isMesh || object.isLine || object.isPoints) {
192
+ if (object.material.visible === false)
193
+ return;
194
+ if (object.frustumCulled === true && _frustum.intersectsObject(object) === false)
195
+ return;
196
+ addObject(object);
197
+ } else if (object.isSprite) {
198
+ if (object.material.visible === false)
199
+ return;
200
+ if (object.frustumCulled === true && _frustum.intersectsSprite(object) === false)
201
+ return;
202
+ addObject(object);
203
+ }
204
+ const children = object.children;
205
+ for (let i = 0, l = children.length; i < l; i++) {
206
+ projectObject(children[i]);
207
+ }
206
208
  }
207
- }
208
- function addObject(object) {
209
- _object = getNextObjectInPool();
210
- _object.id = object.id;
211
- _object.object = object;
212
- _vector3.setFromMatrixPosition(object.matrixWorld);
213
- _vector3.applyMatrix4(_viewProjectionMatrix);
214
- _object.z = _vector3.z;
215
- _object.renderOrder = object.renderOrder;
216
- _renderData.objects.push(_object);
217
- }
218
- this.projectScene = function(scene, camera, sortObjects, sortElements) {
219
- _faceCount = 0;
220
- _lineCount = 0;
221
- _spriteCount = 0;
222
- _renderData.elements.length = 0;
223
- if (scene.autoUpdate === true)
224
- scene.updateMatrixWorld();
225
- if (camera.parent === null)
226
- camera.updateMatrixWorld();
227
- _viewMatrix.copy(camera.matrixWorldInverse);
228
- _viewProjectionMatrix.multiplyMatrices(camera.projectionMatrix, _viewMatrix);
229
- _frustum.setFromProjectionMatrix(_viewProjectionMatrix);
230
- _objectCount = 0;
231
- _renderData.objects.length = 0;
232
- _renderData.lights.length = 0;
233
- projectObject(scene);
234
- if (sortObjects === true) {
235
- _renderData.objects.sort(painterSort);
209
+ function addObject(object) {
210
+ _object = getNextObjectInPool();
211
+ _object.id = object.id;
212
+ _object.object = object;
213
+ _vector3.setFromMatrixPosition(object.matrixWorld);
214
+ _vector3.applyMatrix4(_viewProjectionMatrix);
215
+ _object.z = _vector3.z;
216
+ _object.renderOrder = object.renderOrder;
217
+ _renderData.objects.push(_object);
236
218
  }
237
- var objects = _renderData.objects;
238
- for (let o = 0, ol = objects.length; o < ol; o++) {
239
- var object = objects[o].object;
240
- var geometry = object.geometry;
241
- renderList.setObject(object);
242
- _modelMatrix = object.matrixWorld;
243
- _vertexCount = 0;
244
- if (object.isMesh) {
245
- if (geometry.isBufferGeometry) {
246
- var material = object.material;
247
- var isMultiMaterial = Array.isArray(material);
248
- var attributes = geometry.attributes;
249
- var groups = geometry.groups;
219
+ this.projectScene = function(scene, camera, sortObjects, sortElements) {
220
+ _faceCount = 0;
221
+ _lineCount = 0;
222
+ _spriteCount = 0;
223
+ _renderData.elements.length = 0;
224
+ if (scene.matrixWorldAutoUpdate === true)
225
+ scene.updateMatrixWorld();
226
+ if (camera.parent === null && camera.matrixWorldAutoUpdate === true)
227
+ camera.updateMatrixWorld();
228
+ _viewMatrix.copy(camera.matrixWorldInverse);
229
+ _viewProjectionMatrix.multiplyMatrices(camera.projectionMatrix, _viewMatrix);
230
+ _frustum.setFromProjectionMatrix(_viewProjectionMatrix);
231
+ _objectCount = 0;
232
+ _renderData.objects.length = 0;
233
+ _renderData.lights.length = 0;
234
+ projectObject(scene);
235
+ if (sortObjects === true) {
236
+ _renderData.objects.sort(painterSort);
237
+ }
238
+ const objects = _renderData.objects;
239
+ for (let o = 0, ol = objects.length; o < ol; o++) {
240
+ const object = objects[o].object;
241
+ const geometry = object.geometry;
242
+ renderList.setObject(object);
243
+ _modelMatrix = object.matrixWorld;
244
+ _vertexCount = 0;
245
+ if (object.isMesh) {
246
+ let material = object.material;
247
+ const isMultiMaterial = Array.isArray(material);
248
+ const attributes = geometry.attributes;
249
+ const groups = geometry.groups;
250
250
  if (attributes.position === void 0)
251
251
  continue;
252
- var positions = attributes.position.array;
252
+ const positions = attributes.position.array;
253
253
  for (let i = 0, l = positions.length; i < l; i += 3) {
254
- var x = positions[i];
255
- var y = positions[i + 1];
256
- var z = positions[i + 2];
257
- if (material.morphTargets === true) {
258
- var morphTargets = geometry.morphAttributes.position;
259
- var morphTargetsRelative = geometry.morphTargetsRelative;
260
- var morphInfluences = object.morphTargetInfluences;
254
+ let x = positions[i];
255
+ let y = positions[i + 1];
256
+ let z = positions[i + 2];
257
+ const morphTargets = geometry.morphAttributes.position;
258
+ if (morphTargets !== void 0) {
259
+ const morphTargetsRelative = geometry.morphTargetsRelative;
260
+ const morphInfluences = object.morphTargetInfluences;
261
261
  for (let t = 0, tl = morphTargets.length; t < tl; t++) {
262
- var influence = morphInfluences[t];
262
+ const influence = morphInfluences[t];
263
263
  if (influence === 0)
264
264
  continue;
265
- var target = morphTargets[t];
265
+ const target = morphTargets[t];
266
266
  if (morphTargetsRelative) {
267
267
  x += target.getX(i / 3) * influence;
268
268
  y += target.getY(i / 3) * influence;
@@ -277,28 +277,28 @@ var Projector = function() {
277
277
  renderList.pushVertex(x, y, z);
278
278
  }
279
279
  if (attributes.normal !== void 0) {
280
- var normals = attributes.normal.array;
280
+ const normals = attributes.normal.array;
281
281
  for (let i = 0, l = normals.length; i < l; i += 3) {
282
282
  renderList.pushNormal(normals[i], normals[i + 1], normals[i + 2]);
283
283
  }
284
284
  }
285
285
  if (attributes.color !== void 0) {
286
- var colors = attributes.color.array;
286
+ const colors = attributes.color.array;
287
287
  for (let i = 0, l = colors.length; i < l; i += 3) {
288
288
  renderList.pushColor(colors[i], colors[i + 1], colors[i + 2]);
289
289
  }
290
290
  }
291
291
  if (attributes.uv !== void 0) {
292
- var uvs = attributes.uv.array;
292
+ const uvs = attributes.uv.array;
293
293
  for (let i = 0, l = uvs.length; i < l; i += 2) {
294
294
  renderList.pushUv(uvs[i], uvs[i + 1]);
295
295
  }
296
296
  }
297
297
  if (geometry.index !== null) {
298
- var indices = geometry.index.array;
298
+ const indices = geometry.index.array;
299
299
  if (groups.length > 0) {
300
300
  for (let g = 0; g < groups.length; g++) {
301
- var group = groups[g];
301
+ const group = groups[g];
302
302
  material = isMultiMaterial === true ? object.material[group.materialIndex] : object.material;
303
303
  if (material === void 0)
304
304
  continue;
@@ -314,7 +314,7 @@ var Projector = function() {
314
314
  } else {
315
315
  if (groups.length > 0) {
316
316
  for (let g = 0; g < groups.length; g++) {
317
- var group = groups[g];
317
+ const group = groups[g];
318
318
  material = isMultiMaterial === true ? object.material[group.materialIndex] : object.material;
319
319
  if (material === void 0)
320
320
  continue;
@@ -328,179 +328,167 @@ var Projector = function() {
328
328
  }
329
329
  }
330
330
  }
331
- } else if (geometry.isGeometry) {
332
- console.error("THREE.Projector no longer supports Geometry. Use THREE.BufferGeometry instead.");
333
- return;
334
- }
335
- } else if (object.isLine) {
336
- _modelViewProjectionMatrix.multiplyMatrices(_viewProjectionMatrix, _modelMatrix);
337
- if (geometry.isBufferGeometry) {
338
- var attributes = geometry.attributes;
331
+ } else if (object.isLine) {
332
+ _modelViewProjectionMatrix.multiplyMatrices(_viewProjectionMatrix, _modelMatrix);
333
+ const attributes = geometry.attributes;
339
334
  if (attributes.position !== void 0) {
340
- var positions = attributes.position.array;
335
+ const positions = attributes.position.array;
341
336
  for (let i = 0, l = positions.length; i < l; i += 3) {
342
337
  renderList.pushVertex(positions[i], positions[i + 1], positions[i + 2]);
343
338
  }
344
339
  if (attributes.color !== void 0) {
345
- var colors = attributes.color.array;
340
+ const colors = attributes.color.array;
346
341
  for (let i = 0, l = colors.length; i < l; i += 3) {
347
342
  renderList.pushColor(colors[i], colors[i + 1], colors[i + 2]);
348
343
  }
349
344
  }
350
345
  if (geometry.index !== null) {
351
- var indices = geometry.index.array;
346
+ const indices = geometry.index.array;
352
347
  for (let i = 0, l = indices.length; i < l; i += 2) {
353
348
  renderList.pushLine(indices[i], indices[i + 1]);
354
349
  }
355
350
  } else {
356
- var step = object.isLineSegments ? 2 : 1;
351
+ const step = object.isLineSegments ? 2 : 1;
357
352
  for (let i = 0, l = positions.length / 3 - 1; i < l; i += step) {
358
353
  renderList.pushLine(i, i + 1);
359
354
  }
360
355
  }
361
356
  }
362
- } else if (geometry.isGeometry) {
363
- console.error("THREE.Projector no longer supports Geometry. Use THREE.BufferGeometry instead.");
364
- return;
365
- }
366
- } else if (object.isPoints) {
367
- _modelViewProjectionMatrix.multiplyMatrices(_viewProjectionMatrix, _modelMatrix);
368
- if (geometry.isGeometry) {
369
- console.error("THREE.Projector no longer supports Geometry. Use THREE.BufferGeometry instead.");
370
- return;
371
- } else if (geometry.isBufferGeometry) {
372
- var attributes = geometry.attributes;
357
+ } else if (object.isPoints) {
358
+ _modelViewProjectionMatrix.multiplyMatrices(_viewProjectionMatrix, _modelMatrix);
359
+ const attributes = geometry.attributes;
373
360
  if (attributes.position !== void 0) {
374
- var positions = attributes.position.array;
361
+ const positions = attributes.position.array;
375
362
  for (let i = 0, l = positions.length; i < l; i += 3) {
376
363
  _vector4.set(positions[i], positions[i + 1], positions[i + 2], 1);
377
364
  _vector4.applyMatrix4(_modelViewProjectionMatrix);
378
365
  pushPoint(_vector4, object, camera);
379
366
  }
380
367
  }
368
+ } else if (object.isSprite) {
369
+ object.modelViewMatrix.multiplyMatrices(camera.matrixWorldInverse, object.matrixWorld);
370
+ _vector4.set(_modelMatrix.elements[12], _modelMatrix.elements[13], _modelMatrix.elements[14], 1);
371
+ _vector4.applyMatrix4(_viewProjectionMatrix);
372
+ pushPoint(_vector4, object, camera);
381
373
  }
382
- } else if (object.isSprite) {
383
- object.modelViewMatrix.multiplyMatrices(camera.matrixWorldInverse, object.matrixWorld);
384
- _vector4.set(_modelMatrix.elements[12], _modelMatrix.elements[13], _modelMatrix.elements[14], 1);
385
- _vector4.applyMatrix4(_viewProjectionMatrix);
386
- pushPoint(_vector4, object, camera);
374
+ }
375
+ if (sortElements === true) {
376
+ _renderData.elements.sort(painterSort);
377
+ }
378
+ return _renderData;
379
+ };
380
+ function pushPoint(_vector42, object, camera) {
381
+ const invW = 1 / _vector42.w;
382
+ _vector42.z *= invW;
383
+ if (_vector42.z >= -1 && _vector42.z <= 1) {
384
+ _sprite = getNextSpriteInPool();
385
+ _sprite.id = object.id;
386
+ _sprite.x = _vector42.x * invW;
387
+ _sprite.y = _vector42.y * invW;
388
+ _sprite.z = _vector42.z;
389
+ _sprite.renderOrder = object.renderOrder;
390
+ _sprite.object = object;
391
+ _sprite.rotation = object.rotation;
392
+ _sprite.scale.x = object.scale.x * Math.abs(
393
+ _sprite.x - (_vector42.x + camera.projectionMatrix.elements[0]) / (_vector42.w + camera.projectionMatrix.elements[12])
394
+ );
395
+ _sprite.scale.y = object.scale.y * Math.abs(
396
+ _sprite.y - (_vector42.y + camera.projectionMatrix.elements[5]) / (_vector42.w + camera.projectionMatrix.elements[13])
397
+ );
398
+ _sprite.material = object.material;
399
+ _renderData.elements.push(_sprite);
387
400
  }
388
401
  }
389
- if (sortElements === true) {
390
- _renderData.elements.sort(painterSort);
391
- }
392
- return _renderData;
393
- };
394
- function pushPoint(_vector42, object, camera) {
395
- var invW = 1 / _vector42.w;
396
- _vector42.z *= invW;
397
- if (_vector42.z >= -1 && _vector42.z <= 1) {
398
- _sprite = getNextSpriteInPool();
399
- _sprite.id = object.id;
400
- _sprite.x = _vector42.x * invW;
401
- _sprite.y = _vector42.y * invW;
402
- _sprite.z = _vector42.z;
403
- _sprite.renderOrder = object.renderOrder;
404
- _sprite.object = object;
405
- _sprite.rotation = object.rotation;
406
- _sprite.scale.x = object.scale.x * Math.abs(
407
- _sprite.x - (_vector42.x + camera.projectionMatrix.elements[0]) / (_vector42.w + camera.projectionMatrix.elements[12])
408
- );
409
- _sprite.scale.y = object.scale.y * Math.abs(
410
- _sprite.y - (_vector42.y + camera.projectionMatrix.elements[5]) / (_vector42.w + camera.projectionMatrix.elements[13])
411
- );
412
- _sprite.material = object.material;
413
- _renderData.elements.push(_sprite);
414
- }
415
- }
416
- function getNextObjectInPool() {
417
- if (_objectCount === _objectPoolLength) {
418
- var object = new RenderableObject();
419
- _objectPool.push(object);
420
- _objectPoolLength++;
421
- _objectCount++;
422
- return object;
423
- }
424
- return _objectPool[_objectCount++];
425
- }
426
- function getNextVertexInPool() {
427
- if (_vertexCount === _vertexPoolLength) {
428
- var vertex = new RenderableVertex();
429
- _vertexPool.push(vertex);
430
- _vertexPoolLength++;
431
- _vertexCount++;
432
- return vertex;
433
- }
434
- return _vertexPool[_vertexCount++];
435
- }
436
- function getNextFaceInPool() {
437
- if (_faceCount === _facePoolLength) {
438
- var face = new RenderableFace();
439
- _facePool.push(face);
440
- _facePoolLength++;
441
- _faceCount++;
442
- return face;
402
+ function getNextObjectInPool() {
403
+ if (_objectCount === _objectPoolLength) {
404
+ const object = new RenderableObject();
405
+ _objectPool.push(object);
406
+ _objectPoolLength++;
407
+ _objectCount++;
408
+ return object;
409
+ }
410
+ return _objectPool[_objectCount++];
443
411
  }
444
- return _facePool[_faceCount++];
445
- }
446
- function getNextLineInPool() {
447
- if (_lineCount === _linePoolLength) {
448
- var line = new RenderableLine();
449
- _linePool.push(line);
450
- _linePoolLength++;
451
- _lineCount++;
452
- return line;
412
+ function getNextVertexInPool() {
413
+ if (_vertexCount === _vertexPoolLength) {
414
+ const vertex = new RenderableVertex();
415
+ _vertexPool.push(vertex);
416
+ _vertexPoolLength++;
417
+ _vertexCount++;
418
+ return vertex;
419
+ }
420
+ return _vertexPool[_vertexCount++];
453
421
  }
454
- return _linePool[_lineCount++];
455
- }
456
- function getNextSpriteInPool() {
457
- if (_spriteCount === _spritePoolLength) {
458
- var sprite = new RenderableSprite();
459
- _spritePool.push(sprite);
460
- _spritePoolLength++;
461
- _spriteCount++;
462
- return sprite;
422
+ function getNextFaceInPool() {
423
+ if (_faceCount === _facePoolLength) {
424
+ const face = new RenderableFace();
425
+ _facePool.push(face);
426
+ _facePoolLength++;
427
+ _faceCount++;
428
+ return face;
429
+ }
430
+ return _facePool[_faceCount++];
463
431
  }
464
- return _spritePool[_spriteCount++];
465
- }
466
- function painterSort(a, b) {
467
- if (a.renderOrder !== b.renderOrder) {
468
- return a.renderOrder - b.renderOrder;
469
- } else if (a.z !== b.z) {
470
- return b.z - a.z;
471
- } else if (a.id !== b.id) {
472
- return a.id - b.id;
473
- } else {
474
- return 0;
432
+ function getNextLineInPool() {
433
+ if (_lineCount === _linePoolLength) {
434
+ const line = new RenderableLine();
435
+ _linePool.push(line);
436
+ _linePoolLength++;
437
+ _lineCount++;
438
+ return line;
439
+ }
440
+ return _linePool[_lineCount++];
475
441
  }
476
- }
477
- function clipLine(s1, s2) {
478
- 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;
479
- if (bc1near >= 0 && bc2near >= 0 && bc1far >= 0 && bc2far >= 0) {
480
- return true;
481
- } else if (bc1near < 0 && bc2near < 0 || bc1far < 0 && bc2far < 0) {
482
- return false;
483
- } else {
484
- if (bc1near < 0) {
485
- alpha1 = Math.max(alpha1, bc1near / (bc1near - bc2near));
486
- } else if (bc2near < 0) {
487
- alpha2 = Math.min(alpha2, bc1near / (bc1near - bc2near));
442
+ function getNextSpriteInPool() {
443
+ if (_spriteCount === _spritePoolLength) {
444
+ const sprite = new RenderableSprite();
445
+ _spritePool.push(sprite);
446
+ _spritePoolLength++;
447
+ _spriteCount++;
448
+ return sprite;
488
449
  }
489
- if (bc1far < 0) {
490
- alpha1 = Math.max(alpha1, bc1far / (bc1far - bc2far));
491
- } else if (bc2far < 0) {
492
- alpha2 = Math.min(alpha2, bc1far / (bc1far - bc2far));
450
+ return _spritePool[_spriteCount++];
451
+ }
452
+ function painterSort(a, b) {
453
+ if (a.renderOrder !== b.renderOrder) {
454
+ return a.renderOrder - b.renderOrder;
455
+ } else if (a.z !== b.z) {
456
+ return b.z - a.z;
457
+ } else if (a.id !== b.id) {
458
+ return a.id - b.id;
459
+ } else {
460
+ return 0;
493
461
  }
494
- if (alpha2 < alpha1) {
462
+ }
463
+ function clipLine(s1, s2) {
464
+ let alpha1 = 0, alpha2 = 1;
465
+ const bc1near = s1.z + s1.w, bc2near = s2.z + s2.w, bc1far = -s1.z + s1.w, bc2far = -s2.z + s2.w;
466
+ if (bc1near >= 0 && bc2near >= 0 && bc1far >= 0 && bc2far >= 0) {
467
+ return true;
468
+ } else if (bc1near < 0 && bc2near < 0 || bc1far < 0 && bc2far < 0) {
495
469
  return false;
496
470
  } else {
497
- s1.lerp(s2, alpha1);
498
- s2.lerp(s1, 1 - alpha2);
499
- return true;
471
+ if (bc1near < 0) {
472
+ alpha1 = Math.max(alpha1, bc1near / (bc1near - bc2near));
473
+ } else if (bc2near < 0) {
474
+ alpha2 = Math.min(alpha2, bc1near / (bc1near - bc2near));
475
+ }
476
+ if (bc1far < 0) {
477
+ alpha1 = Math.max(alpha1, bc1far / (bc1far - bc2far));
478
+ } else if (bc2far < 0) {
479
+ alpha2 = Math.min(alpha2, bc1far / (bc1far - bc2far));
480
+ }
481
+ if (alpha2 < alpha1) {
482
+ return false;
483
+ } else {
484
+ s1.lerp(s2, alpha1);
485
+ s2.lerp(s1, 1 - alpha2);
486
+ return true;
487
+ }
500
488
  }
501
489
  }
502
490
  }
503
- };
491
+ }
504
492
  export {
505
493
  Projector,
506
494
  RenderableFace,