three-stdlib 2.35.3 → 2.35.4

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 (514) hide show
  1. package/_polyfill/CapsuleGeometry.cjs +20 -17
  2. package/_polyfill/CapsuleGeometry.cjs.map +1 -1
  3. package/_polyfill/CapsuleGeometry.js +20 -17
  4. package/_polyfill/CapsuleGeometry.js.map +1 -1
  5. package/_polyfill/constants.cjs +1 -1
  6. package/_polyfill/constants.cjs.map +1 -1
  7. package/_polyfill/constants.js +1 -1
  8. package/_polyfill/constants.js.map +1 -1
  9. package/animation/AnimationClipCreator.cjs +13 -13
  10. package/animation/AnimationClipCreator.cjs.map +1 -1
  11. package/animation/AnimationClipCreator.js +13 -13
  12. package/animation/AnimationClipCreator.js.map +1 -1
  13. package/animation/CCDIKSolver.cjs +11 -11
  14. package/animation/CCDIKSolver.cjs.map +1 -1
  15. package/animation/CCDIKSolver.js +12 -12
  16. package/animation/CCDIKSolver.js.map +1 -1
  17. package/animation/MMDAnimationHelper.cjs +1 -1
  18. package/animation/MMDAnimationHelper.cjs.map +1 -1
  19. package/animation/MMDAnimationHelper.js +1 -1
  20. package/animation/MMDAnimationHelper.js.map +1 -1
  21. package/animation/MMDPhysics.cjs +4 -4
  22. package/animation/MMDPhysics.cjs.map +1 -1
  23. package/animation/MMDPhysics.js +4 -4
  24. package/animation/MMDPhysics.js.map +1 -1
  25. package/controls/ArcballControls.cjs +2 -2
  26. package/controls/ArcballControls.cjs.map +1 -1
  27. package/controls/ArcballControls.js +3 -3
  28. package/controls/ArcballControls.js.map +1 -1
  29. package/controls/FirstPersonControls.cjs +1 -1
  30. package/controls/FirstPersonControls.cjs.map +1 -1
  31. package/controls/FirstPersonControls.js +1 -1
  32. package/controls/FirstPersonControls.js.map +1 -1
  33. package/controls/OrbitControls.cjs +2 -2
  34. package/controls/OrbitControls.cjs.map +1 -1
  35. package/controls/OrbitControls.js +3 -3
  36. package/controls/OrbitControls.js.map +1 -1
  37. package/controls/PointerLockControls.cjs +2 -2
  38. package/controls/PointerLockControls.cjs.map +1 -1
  39. package/controls/PointerLockControls.js +3 -3
  40. package/controls/PointerLockControls.js.map +1 -1
  41. package/csm/CSM.cjs +4 -4
  42. package/csm/CSM.cjs.map +1 -1
  43. package/csm/CSM.js +5 -5
  44. package/csm/CSM.js.map +1 -1
  45. package/csm/CSMFrustum.cjs +1 -1
  46. package/csm/CSMFrustum.cjs.map +1 -1
  47. package/csm/CSMFrustum.js +2 -2
  48. package/csm/CSMFrustum.js.map +1 -1
  49. package/deprecated/Geometry.cjs +722 -715
  50. package/deprecated/Geometry.cjs.map +1 -1
  51. package/deprecated/Geometry.js +723 -716
  52. package/deprecated/Geometry.js.map +1 -1
  53. package/effects/AnaglyphEffect.cjs +2 -1
  54. package/effects/AnaglyphEffect.cjs.map +1 -1
  55. package/effects/AnaglyphEffect.js +3 -2
  56. package/effects/AnaglyphEffect.js.map +1 -1
  57. package/effects/OutlineEffect.cjs +2 -1
  58. package/effects/OutlineEffect.cjs.map +1 -1
  59. package/effects/OutlineEffect.js +3 -2
  60. package/effects/OutlineEffect.js.map +1 -1
  61. package/effects/ParallaxBarrierEffect.cjs +2 -1
  62. package/effects/ParallaxBarrierEffect.cjs.map +1 -1
  63. package/effects/ParallaxBarrierEffect.js +3 -2
  64. package/effects/ParallaxBarrierEffect.js.map +1 -1
  65. package/exporters/DRACOExporter.cjs +133 -122
  66. package/exporters/DRACOExporter.cjs.map +1 -1
  67. package/exporters/DRACOExporter.d.ts +23 -21
  68. package/exporters/DRACOExporter.js +133 -122
  69. package/exporters/DRACOExporter.js.map +1 -1
  70. package/exporters/GLTFExporter.cjs +170 -167
  71. package/exporters/GLTFExporter.cjs.map +1 -1
  72. package/exporters/GLTFExporter.js +170 -167
  73. package/exporters/GLTFExporter.js.map +1 -1
  74. package/geometries/LightningStrike.cjs +524 -515
  75. package/geometries/LightningStrike.cjs.map +1 -1
  76. package/geometries/LightningStrike.js +524 -515
  77. package/geometries/LightningStrike.js.map +1 -1
  78. package/geometries/RoundedBoxGeometry.cjs +1 -1
  79. package/geometries/RoundedBoxGeometry.cjs.map +1 -1
  80. package/geometries/RoundedBoxGeometry.js +2 -2
  81. package/geometries/RoundedBoxGeometry.js.map +1 -1
  82. package/helpers/RaycasterHelper.cjs +2 -2
  83. package/helpers/RaycasterHelper.cjs.map +1 -1
  84. package/helpers/RaycasterHelper.js +3 -3
  85. package/helpers/RaycasterHelper.js.map +1 -1
  86. package/helpers/VertexNormalsHelper.cjs +3 -3
  87. package/helpers/VertexNormalsHelper.cjs.map +1 -1
  88. package/helpers/VertexNormalsHelper.js +4 -4
  89. package/helpers/VertexNormalsHelper.js.map +1 -1
  90. package/helpers/VertexTangentsHelper.cjs +2 -2
  91. package/helpers/VertexTangentsHelper.cjs.map +1 -1
  92. package/helpers/VertexTangentsHelper.js +3 -3
  93. package/helpers/VertexTangentsHelper.js.map +1 -1
  94. package/interactive/InteractiveGroup.cjs +1 -1
  95. package/interactive/InteractiveGroup.cjs.map +1 -1
  96. package/interactive/InteractiveGroup.js +2 -2
  97. package/interactive/InteractiveGroup.js.map +1 -1
  98. package/interactive/SelectionBox.cjs +15 -15
  99. package/interactive/SelectionBox.cjs.map +1 -1
  100. package/interactive/SelectionBox.js +16 -16
  101. package/interactive/SelectionBox.js.map +1 -1
  102. package/libs/chevrotain.cjs +1 -1
  103. package/libs/chevrotain.cjs.map +1 -1
  104. package/libs/chevrotain.js +1 -1
  105. package/libs/chevrotain.js.map +1 -1
  106. package/libs/lottie.cjs +1 -1
  107. package/libs/lottie.cjs.map +1 -1
  108. package/libs/lottie.js +1 -1
  109. package/libs/lottie.js.map +1 -1
  110. package/libs/opentype.cjs +1 -1
  111. package/libs/opentype.cjs.map +1 -1
  112. package/libs/opentype.js +1 -1
  113. package/libs/opentype.js.map +1 -1
  114. package/lights/LightProbeGenerator.cjs +5 -5
  115. package/lights/LightProbeGenerator.cjs.map +1 -1
  116. package/lights/LightProbeGenerator.js +5 -5
  117. package/lights/LightProbeGenerator.js.map +1 -1
  118. package/lights/RectAreaLightUniformsLib.cjs +3 -3
  119. package/lights/RectAreaLightUniformsLib.cjs.map +1 -1
  120. package/lights/RectAreaLightUniformsLib.js +3 -3
  121. package/lights/RectAreaLightUniformsLib.js.map +1 -1
  122. package/lines/LineMaterial.cjs +2 -1
  123. package/lines/LineMaterial.cjs.map +1 -1
  124. package/lines/LineMaterial.js +3 -2
  125. package/lines/LineMaterial.js.map +1 -1
  126. package/lines/LineSegments2.cjs +13 -13
  127. package/lines/LineSegments2.cjs.map +1 -1
  128. package/lines/LineSegments2.js +14 -14
  129. package/lines/LineSegments2.js.map +1 -1
  130. package/lines/LineSegmentsGeometry.cjs +2 -2
  131. package/lines/LineSegmentsGeometry.cjs.map +1 -1
  132. package/lines/LineSegmentsGeometry.js +3 -3
  133. package/lines/LineSegmentsGeometry.js.map +1 -1
  134. package/lines/Wireframe.cjs +3 -3
  135. package/lines/Wireframe.cjs.map +1 -1
  136. package/lines/Wireframe.js +4 -4
  137. package/lines/Wireframe.js.map +1 -1
  138. package/loaders/BasisTextureLoader.cjs +441 -435
  139. package/loaders/BasisTextureLoader.cjs.map +1 -1
  140. package/loaders/BasisTextureLoader.js +441 -435
  141. package/loaders/BasisTextureLoader.js.map +1 -1
  142. package/loaders/EXRLoader.cjs +2 -1
  143. package/loaders/EXRLoader.cjs.map +1 -1
  144. package/loaders/EXRLoader.js +3 -2
  145. package/loaders/EXRLoader.js.map +1 -1
  146. package/loaders/FBXLoader.cjs +2 -2
  147. package/loaders/FBXLoader.cjs.map +1 -1
  148. package/loaders/FBXLoader.js +2 -2
  149. package/loaders/FBXLoader.js.map +1 -1
  150. package/loaders/FontLoader.cjs +2 -2
  151. package/loaders/FontLoader.cjs.map +1 -1
  152. package/loaders/FontLoader.d.ts +2 -2
  153. package/loaders/FontLoader.js +2 -2
  154. package/loaders/FontLoader.js.map +1 -1
  155. package/loaders/GLTFLoader.cjs +2 -2
  156. package/loaders/GLTFLoader.cjs.map +1 -1
  157. package/loaders/GLTFLoader.js +2 -2
  158. package/loaders/GLTFLoader.js.map +1 -1
  159. package/loaders/KTX2Loader.cjs +377 -374
  160. package/loaders/KTX2Loader.cjs.map +1 -1
  161. package/loaders/KTX2Loader.js +377 -374
  162. package/loaders/KTX2Loader.js.map +1 -1
  163. package/loaders/LDrawLoader.cjs +5 -4
  164. package/loaders/LDrawLoader.cjs.map +1 -1
  165. package/loaders/LDrawLoader.js +6 -5
  166. package/loaders/LDrawLoader.js.map +1 -1
  167. package/loaders/OBJLoader.cjs +5 -5
  168. package/loaders/OBJLoader.cjs.map +1 -1
  169. package/loaders/OBJLoader.js +6 -6
  170. package/loaders/OBJLoader.js.map +1 -1
  171. package/loaders/PRWMLoader.cjs +46 -43
  172. package/loaders/PRWMLoader.cjs.map +1 -1
  173. package/loaders/PRWMLoader.js +46 -43
  174. package/loaders/PRWMLoader.js.map +1 -1
  175. package/loaders/SVGLoader.cjs +1694 -1688
  176. package/loaders/SVGLoader.cjs.map +1 -1
  177. package/loaders/SVGLoader.js +1694 -1688
  178. package/loaders/SVGLoader.js.map +1 -1
  179. package/loaders/XLoader.cjs +1 -1
  180. package/loaders/XLoader.cjs.map +1 -1
  181. package/loaders/XLoader.js +1 -1
  182. package/loaders/XLoader.js.map +1 -1
  183. package/math/Capsule.cjs +3 -3
  184. package/math/Capsule.cjs.map +1 -1
  185. package/math/Capsule.js +3 -3
  186. package/math/Capsule.js.map +1 -1
  187. package/math/ColorConverter.cjs +9 -9
  188. package/math/ColorConverter.cjs.map +1 -1
  189. package/math/ColorConverter.js +9 -9
  190. package/math/ColorConverter.js.map +1 -1
  191. package/math/ConvexHull.cjs +53 -50
  192. package/math/ConvexHull.cjs.map +1 -1
  193. package/math/ConvexHull.js +53 -50
  194. package/math/ConvexHull.js.map +1 -1
  195. package/math/ImprovedNoise.cjs +1 -1
  196. package/math/ImprovedNoise.cjs.map +1 -1
  197. package/math/ImprovedNoise.js +1 -1
  198. package/math/ImprovedNoise.js.map +1 -1
  199. package/math/MeshSurfaceSampler.cjs +2 -2
  200. package/math/MeshSurfaceSampler.cjs.map +1 -1
  201. package/math/MeshSurfaceSampler.js +2 -2
  202. package/math/MeshSurfaceSampler.js.map +1 -1
  203. package/math/OBB.cjs +14 -14
  204. package/math/OBB.cjs.map +1 -1
  205. package/math/OBB.js +15 -15
  206. package/math/OBB.js.map +1 -1
  207. package/math/Octree.cjs +7 -7
  208. package/math/Octree.cjs.map +1 -1
  209. package/math/Octree.js +8 -8
  210. package/math/Octree.js.map +1 -1
  211. package/misc/ConvexObjectBreaker.cjs +271 -268
  212. package/misc/ConvexObjectBreaker.cjs.map +1 -1
  213. package/misc/ConvexObjectBreaker.js +272 -269
  214. package/misc/ConvexObjectBreaker.js.map +1 -1
  215. package/misc/Gyroscope.cjs +6 -6
  216. package/misc/Gyroscope.cjs.map +1 -1
  217. package/misc/Gyroscope.js +7 -7
  218. package/misc/Gyroscope.js.map +1 -1
  219. package/modifiers/CurveModifier.cjs +1 -1
  220. package/modifiers/CurveModifier.cjs.map +1 -1
  221. package/modifiers/CurveModifier.js +2 -2
  222. package/modifiers/CurveModifier.js.map +1 -1
  223. package/modifiers/SimplifyModifier.cjs +2 -2
  224. package/modifiers/SimplifyModifier.cjs.map +1 -1
  225. package/modifiers/SimplifyModifier.js +2 -2
  226. package/modifiers/SimplifyModifier.js.map +1 -1
  227. package/objects/BatchedMesh.cjs +2 -2
  228. package/objects/BatchedMesh.cjs.map +1 -1
  229. package/objects/BatchedMesh.js +3 -3
  230. package/objects/BatchedMesh.js.map +1 -1
  231. package/objects/GroundProjectedEnv.cjs +2 -1
  232. package/objects/GroundProjectedEnv.cjs.map +1 -1
  233. package/objects/GroundProjectedEnv.js +3 -2
  234. package/objects/GroundProjectedEnv.js.map +1 -1
  235. package/objects/Lensflare.cjs +209 -206
  236. package/objects/Lensflare.cjs.map +1 -1
  237. package/objects/Lensflare.js +209 -206
  238. package/objects/Lensflare.js.map +1 -1
  239. package/objects/Reflector.cjs +154 -146
  240. package/objects/Reflector.cjs.map +1 -1
  241. package/objects/Reflector.js +154 -146
  242. package/objects/Reflector.js.map +1 -1
  243. package/objects/ReflectorForSSRPass.cjs +183 -180
  244. package/objects/ReflectorForSSRPass.cjs.map +1 -1
  245. package/objects/ReflectorForSSRPass.js +183 -180
  246. package/objects/ReflectorForSSRPass.js.map +1 -1
  247. package/objects/Refractor.cjs +164 -161
  248. package/objects/Refractor.cjs.map +1 -1
  249. package/objects/Refractor.js +164 -161
  250. package/objects/Refractor.js.map +1 -1
  251. package/objects/ShadowMesh.cjs +1 -1
  252. package/objects/ShadowMesh.cjs.map +1 -1
  253. package/objects/ShadowMesh.js +2 -2
  254. package/objects/ShadowMesh.js.map +1 -1
  255. package/objects/Sky.cjs +35 -32
  256. package/objects/Sky.cjs.map +1 -1
  257. package/objects/Sky.d.ts +100 -6
  258. package/objects/Sky.js +35 -32
  259. package/objects/Sky.js.map +1 -1
  260. package/objects/Water.cjs +2 -1
  261. package/objects/Water.cjs.map +1 -1
  262. package/objects/Water.js +3 -2
  263. package/objects/Water.js.map +1 -1
  264. package/objects/Water2.cjs +143 -140
  265. package/objects/Water2.cjs.map +1 -1
  266. package/objects/Water2.js +143 -140
  267. package/objects/Water2.js.map +1 -1
  268. package/package.json +1 -1
  269. package/postprocessing/SAOPass.cjs +267 -264
  270. package/postprocessing/SAOPass.cjs.map +1 -1
  271. package/postprocessing/SAOPass.js +267 -264
  272. package/postprocessing/SAOPass.js.map +1 -1
  273. package/postprocessing/SSAOPass.cjs +253 -250
  274. package/postprocessing/SSAOPass.cjs.map +1 -1
  275. package/postprocessing/SSAOPass.js +253 -250
  276. package/postprocessing/SSAOPass.js.map +1 -1
  277. package/postprocessing/SSRPass.cjs +379 -376
  278. package/postprocessing/SSRPass.cjs.map +1 -1
  279. package/postprocessing/SSRPass.js +379 -376
  280. package/postprocessing/SSRPass.js.map +1 -1
  281. package/postprocessing/UnrealBloomPass.cjs +205 -202
  282. package/postprocessing/UnrealBloomPass.cjs.map +1 -1
  283. package/postprocessing/UnrealBloomPass.js +205 -202
  284. package/postprocessing/UnrealBloomPass.js.map +1 -1
  285. package/renderers/CSS2DRenderer.cjs +5 -5
  286. package/renderers/CSS2DRenderer.cjs.map +1 -1
  287. package/renderers/CSS2DRenderer.js +5 -5
  288. package/renderers/CSS2DRenderer.js.map +1 -1
  289. package/renderers/CSS3DRenderer.cjs +5 -5
  290. package/renderers/CSS3DRenderer.cjs.map +1 -1
  291. package/renderers/CSS3DRenderer.js +6 -6
  292. package/renderers/CSS3DRenderer.js.map +1 -1
  293. package/shaders/ACESFilmicToneMappingShader.cjs +71 -46
  294. package/shaders/ACESFilmicToneMappingShader.cjs.map +1 -1
  295. package/shaders/ACESFilmicToneMappingShader.js +71 -46
  296. package/shaders/ACESFilmicToneMappingShader.js.map +1 -1
  297. package/shaders/AfterimageShader.cjs +41 -22
  298. package/shaders/AfterimageShader.cjs.map +1 -1
  299. package/shaders/AfterimageShader.js +41 -22
  300. package/shaders/AfterimageShader.js.map +1 -1
  301. package/shaders/BasicShader.cjs +20 -6
  302. package/shaders/BasicShader.cjs.map +1 -1
  303. package/shaders/BasicShader.js +20 -6
  304. package/shaders/BasicShader.js.map +1 -1
  305. package/shaders/BleachBypassShader.cjs +46 -26
  306. package/shaders/BleachBypassShader.cjs.map +1 -1
  307. package/shaders/BleachBypassShader.js +46 -26
  308. package/shaders/BleachBypassShader.js.map +1 -1
  309. package/shaders/BlendShader.cjs +33 -19
  310. package/shaders/BlendShader.cjs.map +1 -1
  311. package/shaders/BlendShader.js +33 -19
  312. package/shaders/BlendShader.js.map +1 -1
  313. package/shaders/BokehShader.cjs +117 -90
  314. package/shaders/BokehShader.cjs.map +1 -1
  315. package/shaders/BokehShader.js +117 -90
  316. package/shaders/BokehShader.js.map +1 -1
  317. package/shaders/BokehShader2.cjs +333 -232
  318. package/shaders/BokehShader2.cjs.map +1 -1
  319. package/shaders/BokehShader2.js +333 -232
  320. package/shaders/BokehShader2.js.map +1 -1
  321. package/shaders/BrightnessContrastShader.cjs +38 -22
  322. package/shaders/BrightnessContrastShader.cjs.map +1 -1
  323. package/shaders/BrightnessContrastShader.js +38 -22
  324. package/shaders/BrightnessContrastShader.js.map +1 -1
  325. package/shaders/ColorCorrectionShader.cjs +35 -21
  326. package/shaders/ColorCorrectionShader.cjs.map +1 -1
  327. package/shaders/ColorCorrectionShader.js +35 -21
  328. package/shaders/ColorCorrectionShader.js.map +1 -1
  329. package/shaders/ColorifyShader.cjs +34 -19
  330. package/shaders/ColorifyShader.cjs.map +1 -1
  331. package/shaders/ColorifyShader.js +34 -19
  332. package/shaders/ColorifyShader.js.map +1 -1
  333. package/shaders/ConvolutionShader.cjs +43 -24
  334. package/shaders/ConvolutionShader.cjs.map +1 -1
  335. package/shaders/ConvolutionShader.js +43 -24
  336. package/shaders/ConvolutionShader.js.map +1 -1
  337. package/shaders/CopyShader.cjs +30 -16
  338. package/shaders/CopyShader.cjs.map +1 -1
  339. package/shaders/CopyShader.js +30 -16
  340. package/shaders/CopyShader.js.map +1 -1
  341. package/shaders/DOFMipMapShader.cjs +38 -21
  342. package/shaders/DOFMipMapShader.cjs.map +1 -1
  343. package/shaders/DOFMipMapShader.js +38 -21
  344. package/shaders/DOFMipMapShader.js.map +1 -1
  345. package/shaders/DepthLimitedBlurShader.cjs +98 -69
  346. package/shaders/DepthLimitedBlurShader.cjs.map +1 -1
  347. package/shaders/DepthLimitedBlurShader.js +98 -69
  348. package/shaders/DepthLimitedBlurShader.js.map +1 -1
  349. package/shaders/DigitalGlitch.cjs +70 -59
  350. package/shaders/DigitalGlitch.cjs.map +1 -1
  351. package/shaders/DigitalGlitch.js +70 -59
  352. package/shaders/DigitalGlitch.js.map +1 -1
  353. package/shaders/DotScreenShader.cjs +49 -28
  354. package/shaders/DotScreenShader.cjs.map +1 -1
  355. package/shaders/DotScreenShader.js +49 -28
  356. package/shaders/DotScreenShader.js.map +1 -1
  357. package/shaders/FXAAShader.cjs +1098 -1089
  358. package/shaders/FXAAShader.cjs.map +1 -1
  359. package/shaders/FXAAShader.js +1098 -1089
  360. package/shaders/FXAAShader.js.map +1 -1
  361. package/shaders/FilmShader.cjs +57 -29
  362. package/shaders/FilmShader.cjs.map +1 -1
  363. package/shaders/FilmShader.js +57 -29
  364. package/shaders/FilmShader.js.map +1 -1
  365. package/shaders/FocusShader.cjs +70 -43
  366. package/shaders/FocusShader.cjs.map +1 -1
  367. package/shaders/FocusShader.js +70 -43
  368. package/shaders/FocusShader.js.map +1 -1
  369. package/shaders/FreiChenShader.cjs +74 -53
  370. package/shaders/FreiChenShader.cjs.map +1 -1
  371. package/shaders/FreiChenShader.js +74 -53
  372. package/shaders/FreiChenShader.js.map +1 -1
  373. package/shaders/FresnelShader.cjs +55 -35
  374. package/shaders/FresnelShader.cjs.map +1 -1
  375. package/shaders/FresnelShader.js +55 -35
  376. package/shaders/FresnelShader.js.map +1 -1
  377. package/shaders/GammaCorrectionShader.cjs +33 -19
  378. package/shaders/GammaCorrectionShader.cjs.map +1 -1
  379. package/shaders/GammaCorrectionShader.js +33 -19
  380. package/shaders/GammaCorrectionShader.js.map +1 -1
  381. package/shaders/GodRaysShader.cjs +193 -116
  382. package/shaders/GodRaysShader.cjs.map +1 -1
  383. package/shaders/GodRaysShader.js +193 -116
  384. package/shaders/GodRaysShader.js.map +1 -1
  385. package/shaders/HalftoneShader.cjs +270 -192
  386. package/shaders/HalftoneShader.cjs.map +1 -1
  387. package/shaders/HalftoneShader.js +270 -192
  388. package/shaders/HalftoneShader.js.map +1 -1
  389. package/shaders/HorizontalTiltShiftShader.cjs +43 -27
  390. package/shaders/HorizontalTiltShiftShader.cjs.map +1 -1
  391. package/shaders/HorizontalTiltShiftShader.js +43 -27
  392. package/shaders/HorizontalTiltShiftShader.js.map +1 -1
  393. package/shaders/HueSaturationShader.cjs +47 -31
  394. package/shaders/HueSaturationShader.cjs.map +1 -1
  395. package/shaders/HueSaturationShader.js +47 -31
  396. package/shaders/HueSaturationShader.js.map +1 -1
  397. package/shaders/KaleidoShader.cjs +37 -24
  398. package/shaders/KaleidoShader.cjs.map +1 -1
  399. package/shaders/KaleidoShader.js +37 -24
  400. package/shaders/KaleidoShader.js.map +1 -1
  401. package/shaders/LuminosityHighPassShader.cjs +43 -24
  402. package/shaders/LuminosityHighPassShader.cjs.map +1 -1
  403. package/shaders/LuminosityHighPassShader.js +43 -24
  404. package/shaders/LuminosityHighPassShader.js.map +1 -1
  405. package/shaders/LuminosityShader.cjs +34 -17
  406. package/shaders/LuminosityShader.cjs.map +1 -1
  407. package/shaders/LuminosityShader.js +34 -17
  408. package/shaders/LuminosityShader.js.map +1 -1
  409. package/shaders/MirrorShader.cjs +39 -26
  410. package/shaders/MirrorShader.cjs.map +1 -1
  411. package/shaders/MirrorShader.js +39 -26
  412. package/shaders/MirrorShader.js.map +1 -1
  413. package/shaders/NormalMapShader.cjs +36 -21
  414. package/shaders/NormalMapShader.cjs.map +1 -1
  415. package/shaders/NormalMapShader.js +36 -21
  416. package/shaders/NormalMapShader.js.map +1 -1
  417. package/shaders/ParallaxShader.cjs +147 -97
  418. package/shaders/ParallaxShader.cjs.map +1 -1
  419. package/shaders/ParallaxShader.js +147 -97
  420. package/shaders/ParallaxShader.js.map +1 -1
  421. package/shaders/PixelShader.cjs +31 -18
  422. package/shaders/PixelShader.cjs.map +1 -1
  423. package/shaders/PixelShader.js +31 -18
  424. package/shaders/PixelShader.js.map +1 -1
  425. package/shaders/RGBShiftShader.cjs +33 -20
  426. package/shaders/RGBShiftShader.cjs.map +1 -1
  427. package/shaders/RGBShiftShader.js +33 -20
  428. package/shaders/RGBShiftShader.js.map +1 -1
  429. package/shaders/SAOShader.cjs +154 -117
  430. package/shaders/SAOShader.cjs.map +1 -1
  431. package/shaders/SAOShader.js +154 -117
  432. package/shaders/SAOShader.js.map +1 -1
  433. package/shaders/SMAAShader.cjs +358 -270
  434. package/shaders/SMAAShader.cjs.map +1 -1
  435. package/shaders/SMAAShader.js +358 -270
  436. package/shaders/SMAAShader.js.map +1 -1
  437. package/shaders/SSAOShader.cjs +236 -142
  438. package/shaders/SSAOShader.cjs.map +1 -1
  439. package/shaders/SSAOShader.js +236 -142
  440. package/shaders/SSAOShader.js.map +1 -1
  441. package/shaders/SSRShader.cjs +4 -4
  442. package/shaders/SSRShader.cjs.map +1 -1
  443. package/shaders/SSRShader.js +4 -4
  444. package/shaders/SSRShader.js.map +1 -1
  445. package/shaders/SepiaShader.cjs +36 -20
  446. package/shaders/SepiaShader.cjs.map +1 -1
  447. package/shaders/SepiaShader.js +36 -20
  448. package/shaders/SepiaShader.js.map +1 -1
  449. package/shaders/SobelOperatorShader.cjs +64 -37
  450. package/shaders/SobelOperatorShader.cjs.map +1 -1
  451. package/shaders/SobelOperatorShader.js +64 -37
  452. package/shaders/SobelOperatorShader.js.map +1 -1
  453. package/shaders/TechnicolorShader.cjs +29 -16
  454. package/shaders/TechnicolorShader.cjs.map +1 -1
  455. package/shaders/TechnicolorShader.js +29 -16
  456. package/shaders/TechnicolorShader.js.map +1 -1
  457. package/shaders/ToneMapShader.cjs +55 -35
  458. package/shaders/ToneMapShader.cjs.map +1 -1
  459. package/shaders/ToneMapShader.js +55 -35
  460. package/shaders/ToneMapShader.js.map +1 -1
  461. package/shaders/ToonShader.cjs +275 -165
  462. package/shaders/ToonShader.cjs.map +1 -1
  463. package/shaders/ToonShader.js +275 -165
  464. package/shaders/ToonShader.js.map +1 -1
  465. package/shaders/TriangleBlurShader.cjs +50 -27
  466. package/shaders/TriangleBlurShader.cjs.map +1 -1
  467. package/shaders/TriangleBlurShader.js +50 -27
  468. package/shaders/TriangleBlurShader.js.map +1 -1
  469. package/shaders/UnpackDepthRGBAShader.cjs +32 -17
  470. package/shaders/UnpackDepthRGBAShader.cjs.map +1 -1
  471. package/shaders/UnpackDepthRGBAShader.js +32 -17
  472. package/shaders/UnpackDepthRGBAShader.js.map +1 -1
  473. package/shaders/VerticalTiltShiftShader.cjs +43 -27
  474. package/shaders/VerticalTiltShiftShader.cjs.map +1 -1
  475. package/shaders/VerticalTiltShiftShader.js +43 -27
  476. package/shaders/VerticalTiltShiftShader.js.map +1 -1
  477. package/shaders/VignetteShader.cjs +43 -27
  478. package/shaders/VignetteShader.cjs.map +1 -1
  479. package/shaders/VignetteShader.js +43 -27
  480. package/shaders/VignetteShader.js.map +1 -1
  481. package/shaders/VolumeShader.cjs +264 -213
  482. package/shaders/VolumeShader.cjs.map +1 -1
  483. package/shaders/VolumeShader.js +264 -213
  484. package/shaders/VolumeShader.js.map +1 -1
  485. package/shaders/WaterRefractionShader.cjs +63 -35
  486. package/shaders/WaterRefractionShader.cjs.map +1 -1
  487. package/shaders/WaterRefractionShader.js +63 -35
  488. package/shaders/WaterRefractionShader.js.map +1 -1
  489. package/utils/GeometryCompressionUtils.cjs +2 -1
  490. package/utils/GeometryCompressionUtils.cjs.map +1 -1
  491. package/utils/GeometryCompressionUtils.js +3 -2
  492. package/utils/GeometryCompressionUtils.js.map +1 -1
  493. package/utils/RoughnessMipmapper.cjs +3 -3
  494. package/utils/RoughnessMipmapper.cjs.map +1 -1
  495. package/utils/RoughnessMipmapper.js +4 -4
  496. package/utils/RoughnessMipmapper.js.map +1 -1
  497. package/webxr/ARButton.cjs +109 -106
  498. package/webxr/ARButton.cjs.map +1 -1
  499. package/webxr/ARButton.d.ts +4 -3
  500. package/webxr/ARButton.js +109 -106
  501. package/webxr/ARButton.js.map +1 -1
  502. package/webxr/OculusHandPointerModel.cjs +2 -2
  503. package/webxr/OculusHandPointerModel.cjs.map +1 -1
  504. package/webxr/OculusHandPointerModel.js +2 -2
  505. package/webxr/OculusHandPointerModel.js.map +1 -1
  506. package/webxr/VRButton.cjs +98 -95
  507. package/webxr/VRButton.cjs.map +1 -1
  508. package/webxr/VRButton.d.ts +6 -5
  509. package/webxr/VRButton.js +98 -95
  510. package/webxr/VRButton.js.map +1 -1
  511. package/webxr/XRHandPrimitiveModel.cjs +2 -2
  512. package/webxr/XRHandPrimitiveModel.cjs.map +1 -1
  513. package/webxr/XRHandPrimitiveModel.js +3 -3
  514. package/webxr/XRHandPrimitiveModel.js.map +1 -1
@@ -1,225 +1,207 @@
1
- import { Matrix4, Object3D, Vector3, EventDispatcher, BufferGeometry, Float32BufferAttribute, MathUtils, Matrix3, Color, Box3, Sphere, BufferAttribute, Vector2 } from "three";
2
- const _m1 = new Matrix4();
3
- const _obj = new Object3D();
4
- const _offset = new Vector3();
5
- class Geometry extends EventDispatcher {
6
- static createBufferGeometryFromObject(object) {
7
- let buffergeometry = new BufferGeometry();
8
- const geometry = object.geometry;
9
- if (object.isPoints || object.isLine) {
10
- const positions = new Float32BufferAttribute(geometry.vertices.length * 3, 3);
11
- const colors = new Float32BufferAttribute(geometry.colors.length * 3, 3);
12
- buffergeometry.setAttribute("position", positions.copyVector3sArray(geometry.vertices));
13
- buffergeometry.setAttribute("color", colors.copyColorsArray(geometry.colors));
14
- if (geometry.lineDistances && geometry.lineDistances.length === geometry.vertices.length) {
15
- const lineDistances = new Float32BufferAttribute(geometry.lineDistances.length, 1);
16
- buffergeometry.setAttribute("lineDistance", lineDistances.copyArray(geometry.lineDistances));
1
+ import { Vector3, Color, EventDispatcher, BufferGeometry, Float32BufferAttribute, MathUtils, Matrix3, Matrix4, Box3, Sphere, BufferAttribute, Vector2, Object3D } from "three";
2
+ const _m1 = /* @__PURE__ */ new Matrix4();
3
+ const _obj = /* @__PURE__ */ new Object3D();
4
+ const _offset = /* @__PURE__ */ new Vector3();
5
+ const Geometry = /* @__PURE__ */ (() => {
6
+ class Geometry2 extends EventDispatcher {
7
+ static createBufferGeometryFromObject(object) {
8
+ let buffergeometry = new BufferGeometry();
9
+ const geometry = object.geometry;
10
+ if (object.isPoints || object.isLine) {
11
+ const positions = new Float32BufferAttribute(geometry.vertices.length * 3, 3);
12
+ const colors = new Float32BufferAttribute(geometry.colors.length * 3, 3);
13
+ buffergeometry.setAttribute("position", positions.copyVector3sArray(geometry.vertices));
14
+ buffergeometry.setAttribute("color", colors.copyColorsArray(geometry.colors));
15
+ if (geometry.lineDistances && geometry.lineDistances.length === geometry.vertices.length) {
16
+ const lineDistances = new Float32BufferAttribute(geometry.lineDistances.length, 1);
17
+ buffergeometry.setAttribute("lineDistance", lineDistances.copyArray(geometry.lineDistances));
18
+ }
19
+ if (geometry.boundingSphere !== null) {
20
+ buffergeometry.boundingSphere = geometry.boundingSphere.clone();
21
+ }
22
+ if (geometry.boundingBox !== null) {
23
+ buffergeometry.boundingBox = geometry.boundingBox.clone();
24
+ }
25
+ } else if (object.isMesh) {
26
+ buffergeometry = geometry.toBufferGeometry();
27
+ }
28
+ return buffergeometry;
29
+ }
30
+ constructor() {
31
+ super();
32
+ this.isGeometry = true;
33
+ this.uuid = MathUtils.generateUUID();
34
+ this.name = "";
35
+ this.type = "Geometry";
36
+ this.vertices = [];
37
+ this.colors = [];
38
+ this.faces = [];
39
+ this.faceVertexUvs = [[]];
40
+ this.morphTargets = [];
41
+ this.morphNormals = [];
42
+ this.skinWeights = [];
43
+ this.skinIndices = [];
44
+ this.lineDistances = [];
45
+ this.boundingBox = null;
46
+ this.boundingSphere = null;
47
+ this.elementsNeedUpdate = false;
48
+ this.verticesNeedUpdate = false;
49
+ this.uvsNeedUpdate = false;
50
+ this.normalsNeedUpdate = false;
51
+ this.colorsNeedUpdate = false;
52
+ this.lineDistancesNeedUpdate = false;
53
+ this.groupsNeedUpdate = false;
54
+ }
55
+ applyMatrix4(matrix) {
56
+ const normalMatrix = new Matrix3().getNormalMatrix(matrix);
57
+ for (let i = 0, il = this.vertices.length; i < il; i++) {
58
+ const vertex = this.vertices[i];
59
+ vertex.applyMatrix4(matrix);
60
+ }
61
+ for (let i = 0, il = this.faces.length; i < il; i++) {
62
+ const face = this.faces[i];
63
+ face.normal.applyMatrix3(normalMatrix).normalize();
64
+ for (let j = 0, jl = face.vertexNormals.length; j < jl; j++) {
65
+ face.vertexNormals[j].applyMatrix3(normalMatrix).normalize();
66
+ }
17
67
  }
18
- if (geometry.boundingSphere !== null) {
19
- buffergeometry.boundingSphere = geometry.boundingSphere.clone();
68
+ if (this.boundingBox !== null) {
69
+ this.computeBoundingBox();
20
70
  }
21
- if (geometry.boundingBox !== null) {
22
- buffergeometry.boundingBox = geometry.boundingBox.clone();
71
+ if (this.boundingSphere !== null) {
72
+ this.computeBoundingSphere();
23
73
  }
24
- } else if (object.isMesh) {
25
- buffergeometry = geometry.toBufferGeometry();
74
+ this.verticesNeedUpdate = true;
75
+ this.normalsNeedUpdate = true;
76
+ return this;
26
77
  }
27
- return buffergeometry;
28
- }
29
- constructor() {
30
- super();
31
- this.isGeometry = true;
32
- this.uuid = MathUtils.generateUUID();
33
- this.name = "";
34
- this.type = "Geometry";
35
- this.vertices = [];
36
- this.colors = [];
37
- this.faces = [];
38
- this.faceVertexUvs = [[]];
39
- this.morphTargets = [];
40
- this.morphNormals = [];
41
- this.skinWeights = [];
42
- this.skinIndices = [];
43
- this.lineDistances = [];
44
- this.boundingBox = null;
45
- this.boundingSphere = null;
46
- this.elementsNeedUpdate = false;
47
- this.verticesNeedUpdate = false;
48
- this.uvsNeedUpdate = false;
49
- this.normalsNeedUpdate = false;
50
- this.colorsNeedUpdate = false;
51
- this.lineDistancesNeedUpdate = false;
52
- this.groupsNeedUpdate = false;
53
- }
54
- applyMatrix4(matrix) {
55
- const normalMatrix = new Matrix3().getNormalMatrix(matrix);
56
- for (let i = 0, il = this.vertices.length; i < il; i++) {
57
- const vertex = this.vertices[i];
58
- vertex.applyMatrix4(matrix);
78
+ rotateX(angle) {
79
+ _m1.makeRotationX(angle);
80
+ this.applyMatrix4(_m1);
81
+ return this;
59
82
  }
60
- for (let i = 0, il = this.faces.length; i < il; i++) {
61
- const face = this.faces[i];
62
- face.normal.applyMatrix3(normalMatrix).normalize();
63
- for (let j = 0, jl = face.vertexNormals.length; j < jl; j++) {
64
- face.vertexNormals[j].applyMatrix3(normalMatrix).normalize();
65
- }
83
+ rotateY(angle) {
84
+ _m1.makeRotationY(angle);
85
+ this.applyMatrix4(_m1);
86
+ return this;
66
87
  }
67
- if (this.boundingBox !== null) {
68
- this.computeBoundingBox();
88
+ rotateZ(angle) {
89
+ _m1.makeRotationZ(angle);
90
+ this.applyMatrix4(_m1);
91
+ return this;
69
92
  }
70
- if (this.boundingSphere !== null) {
71
- this.computeBoundingSphere();
93
+ translate(x, y, z) {
94
+ _m1.makeTranslation(x, y, z);
95
+ this.applyMatrix4(_m1);
96
+ return this;
72
97
  }
73
- this.verticesNeedUpdate = true;
74
- this.normalsNeedUpdate = true;
75
- return this;
76
- }
77
- rotateX(angle) {
78
- _m1.makeRotationX(angle);
79
- this.applyMatrix4(_m1);
80
- return this;
81
- }
82
- rotateY(angle) {
83
- _m1.makeRotationY(angle);
84
- this.applyMatrix4(_m1);
85
- return this;
86
- }
87
- rotateZ(angle) {
88
- _m1.makeRotationZ(angle);
89
- this.applyMatrix4(_m1);
90
- return this;
91
- }
92
- translate(x, y, z) {
93
- _m1.makeTranslation(x, y, z);
94
- this.applyMatrix4(_m1);
95
- return this;
96
- }
97
- scale(x, y, z) {
98
- _m1.makeScale(x, y, z);
99
- this.applyMatrix4(_m1);
100
- return this;
101
- }
102
- lookAt(vector) {
103
- _obj.lookAt(vector);
104
- _obj.updateMatrix();
105
- this.applyMatrix4(_obj.matrix);
106
- return this;
107
- }
108
- fromBufferGeometry(geometry) {
109
- const scope = this;
110
- const index = geometry.index !== null ? geometry.index : void 0;
111
- const attributes = geometry.attributes;
112
- if (attributes.position === void 0) {
113
- console.error("THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion.");
98
+ scale(x, y, z) {
99
+ _m1.makeScale(x, y, z);
100
+ this.applyMatrix4(_m1);
114
101
  return this;
115
102
  }
116
- const position = attributes.position;
117
- const normal = attributes.normal;
118
- const color = attributes.color;
119
- const uv = attributes.uv;
120
- const uv2 = attributes.uv2;
121
- if (uv2 !== void 0)
122
- this.faceVertexUvs[1] = [];
123
- for (let i = 0; i < position.count; i++) {
124
- scope.vertices.push(new Vector3().fromBufferAttribute(position, i));
125
- if (color !== void 0) {
126
- scope.colors.push(new Color().fromBufferAttribute(color, i));
127
- }
128
- }
129
- function addFace(a, b, c, materialIndex) {
130
- const vertexColors = color === void 0 ? [] : [scope.colors[a].clone(), scope.colors[b].clone(), scope.colors[c].clone()];
131
- const vertexNormals = normal === void 0 ? [] : [
132
- new Vector3().fromBufferAttribute(normal, a),
133
- new Vector3().fromBufferAttribute(normal, b),
134
- new Vector3().fromBufferAttribute(normal, c)
135
- ];
136
- const face = new Face3(a, b, c, vertexNormals, vertexColors, materialIndex);
137
- scope.faces.push(face);
138
- if (uv !== void 0) {
139
- scope.faceVertexUvs[0].push([
140
- new Vector2().fromBufferAttribute(uv, a),
141
- new Vector2().fromBufferAttribute(uv, b),
142
- new Vector2().fromBufferAttribute(uv, c)
143
- ]);
144
- }
145
- if (uv2 !== void 0) {
146
- scope.faceVertexUvs[1].push([
147
- new Vector2().fromBufferAttribute(uv2, a),
148
- new Vector2().fromBufferAttribute(uv2, b),
149
- new Vector2().fromBufferAttribute(uv2, c)
150
- ]);
151
- }
152
- }
153
- const groups = geometry.groups;
154
- if (groups.length > 0) {
155
- for (let i = 0; i < groups.length; i++) {
156
- const group = groups[i];
157
- const start = group.start;
158
- const count = group.count;
159
- for (let j = start, jl = start + count; j < jl; j += 3) {
160
- if (index !== void 0) {
161
- addFace(index.getX(j), index.getX(j + 1), index.getX(j + 2), group.materialIndex);
162
- } else {
163
- addFace(j, j + 1, j + 2, group.materialIndex);
164
- }
103
+ lookAt(vector) {
104
+ _obj.lookAt(vector);
105
+ _obj.updateMatrix();
106
+ this.applyMatrix4(_obj.matrix);
107
+ return this;
108
+ }
109
+ fromBufferGeometry(geometry) {
110
+ const scope = this;
111
+ const index = geometry.index !== null ? geometry.index : void 0;
112
+ const attributes = geometry.attributes;
113
+ if (attributes.position === void 0) {
114
+ console.error("THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion.");
115
+ return this;
116
+ }
117
+ const position = attributes.position;
118
+ const normal = attributes.normal;
119
+ const color = attributes.color;
120
+ const uv = attributes.uv;
121
+ const uv2 = attributes.uv2;
122
+ if (uv2 !== void 0)
123
+ this.faceVertexUvs[1] = [];
124
+ for (let i = 0; i < position.count; i++) {
125
+ scope.vertices.push(new Vector3().fromBufferAttribute(position, i));
126
+ if (color !== void 0) {
127
+ scope.colors.push(new Color().fromBufferAttribute(color, i));
165
128
  }
166
129
  }
167
- } else {
168
- if (index !== void 0) {
169
- for (let i = 0; i < index.count; i += 3) {
170
- addFace(index.getX(i), index.getX(i + 1), index.getX(i + 2));
130
+ function addFace(a, b, c, materialIndex) {
131
+ const vertexColors = color === void 0 ? [] : [scope.colors[a].clone(), scope.colors[b].clone(), scope.colors[c].clone()];
132
+ const vertexNormals = normal === void 0 ? [] : [
133
+ new Vector3().fromBufferAttribute(normal, a),
134
+ new Vector3().fromBufferAttribute(normal, b),
135
+ new Vector3().fromBufferAttribute(normal, c)
136
+ ];
137
+ const face = new Face3(a, b, c, vertexNormals, vertexColors, materialIndex);
138
+ scope.faces.push(face);
139
+ if (uv !== void 0) {
140
+ scope.faceVertexUvs[0].push([
141
+ new Vector2().fromBufferAttribute(uv, a),
142
+ new Vector2().fromBufferAttribute(uv, b),
143
+ new Vector2().fromBufferAttribute(uv, c)
144
+ ]);
145
+ }
146
+ if (uv2 !== void 0) {
147
+ scope.faceVertexUvs[1].push([
148
+ new Vector2().fromBufferAttribute(uv2, a),
149
+ new Vector2().fromBufferAttribute(uv2, b),
150
+ new Vector2().fromBufferAttribute(uv2, c)
151
+ ]);
152
+ }
153
+ }
154
+ const groups = geometry.groups;
155
+ if (groups.length > 0) {
156
+ for (let i = 0; i < groups.length; i++) {
157
+ const group = groups[i];
158
+ const start = group.start;
159
+ const count = group.count;
160
+ for (let j = start, jl = start + count; j < jl; j += 3) {
161
+ if (index !== void 0) {
162
+ addFace(index.getX(j), index.getX(j + 1), index.getX(j + 2), group.materialIndex);
163
+ } else {
164
+ addFace(j, j + 1, j + 2, group.materialIndex);
165
+ }
166
+ }
171
167
  }
172
168
  } else {
173
- for (let i = 0; i < position.count; i += 3) {
174
- addFace(i, i + 1, i + 2);
169
+ if (index !== void 0) {
170
+ for (let i = 0; i < index.count; i += 3) {
171
+ addFace(index.getX(i), index.getX(i + 1), index.getX(i + 2));
172
+ }
173
+ } else {
174
+ for (let i = 0; i < position.count; i += 3) {
175
+ addFace(i, i + 1, i + 2);
176
+ }
175
177
  }
176
178
  }
179
+ this.computeFaceNormals();
180
+ if (geometry.boundingBox !== null) {
181
+ this.boundingBox = geometry.boundingBox.clone();
182
+ }
183
+ if (geometry.boundingSphere !== null) {
184
+ this.boundingSphere = geometry.boundingSphere.clone();
185
+ }
186
+ return this;
177
187
  }
178
- this.computeFaceNormals();
179
- if (geometry.boundingBox !== null) {
180
- this.boundingBox = geometry.boundingBox.clone();
181
- }
182
- if (geometry.boundingSphere !== null) {
183
- this.boundingSphere = geometry.boundingSphere.clone();
184
- }
185
- return this;
186
- }
187
- center() {
188
- this.computeBoundingBox();
189
- this.boundingBox.getCenter(_offset).negate();
190
- this.translate(_offset.x, _offset.y, _offset.z);
191
- return this;
192
- }
193
- normalize() {
194
- this.computeBoundingSphere();
195
- const center = this.boundingSphere.center;
196
- const radius = this.boundingSphere.radius;
197
- const s = radius === 0 ? 1 : 1 / radius;
198
- const matrix = new Matrix4();
199
- matrix.set(s, 0, 0, -s * center.x, 0, s, 0, -s * center.y, 0, 0, s, -s * center.z, 0, 0, 0, 1);
200
- this.applyMatrix4(matrix);
201
- return this;
202
- }
203
- computeFaceNormals() {
204
- const cb = new Vector3(), ab = new Vector3();
205
- for (let f = 0, fl = this.faces.length; f < fl; f++) {
206
- const face = this.faces[f];
207
- const vA = this.vertices[face.a];
208
- const vB = this.vertices[face.b];
209
- const vC = this.vertices[face.c];
210
- cb.subVectors(vC, vB);
211
- ab.subVectors(vA, vB);
212
- cb.cross(ab);
213
- cb.normalize();
214
- face.normal.copy(cb);
188
+ center() {
189
+ this.computeBoundingBox();
190
+ this.boundingBox.getCenter(_offset).negate();
191
+ this.translate(_offset.x, _offset.y, _offset.z);
192
+ return this;
215
193
  }
216
- }
217
- computeVertexNormals(areaWeighted = true) {
218
- const vertices = new Array(this.vertices.length);
219
- for (let v = 0, vl = this.vertices.length; v < vl; v++) {
220
- vertices[v] = new Vector3();
194
+ normalize() {
195
+ this.computeBoundingSphere();
196
+ const center = this.boundingSphere.center;
197
+ const radius = this.boundingSphere.radius;
198
+ const s = radius === 0 ? 1 : 1 / radius;
199
+ const matrix = new Matrix4();
200
+ matrix.set(s, 0, 0, -s * center.x, 0, s, 0, -s * center.y, 0, 0, s, -s * center.z, 0, 0, 0, 1);
201
+ this.applyMatrix4(matrix);
202
+ return this;
221
203
  }
222
- if (areaWeighted) {
204
+ computeFaceNormals() {
223
205
  const cb = new Vector3(), ab = new Vector3();
224
206
  for (let f = 0, fl = this.faces.length; f < fl; f++) {
225
207
  const face = this.faces[f];
@@ -229,564 +211,589 @@ class Geometry extends EventDispatcher {
229
211
  cb.subVectors(vC, vB);
230
212
  ab.subVectors(vA, vB);
231
213
  cb.cross(ab);
232
- vertices[face.a].add(cb);
233
- vertices[face.b].add(cb);
234
- vertices[face.c].add(cb);
214
+ cb.normalize();
215
+ face.normal.copy(cb);
216
+ }
217
+ }
218
+ computeVertexNormals(areaWeighted = true) {
219
+ const vertices = new Array(this.vertices.length);
220
+ for (let v = 0, vl = this.vertices.length; v < vl; v++) {
221
+ vertices[v] = new Vector3();
222
+ }
223
+ if (areaWeighted) {
224
+ const cb = new Vector3(), ab = new Vector3();
225
+ for (let f = 0, fl = this.faces.length; f < fl; f++) {
226
+ const face = this.faces[f];
227
+ const vA = this.vertices[face.a];
228
+ const vB = this.vertices[face.b];
229
+ const vC = this.vertices[face.c];
230
+ cb.subVectors(vC, vB);
231
+ ab.subVectors(vA, vB);
232
+ cb.cross(ab);
233
+ vertices[face.a].add(cb);
234
+ vertices[face.b].add(cb);
235
+ vertices[face.c].add(cb);
236
+ }
237
+ } else {
238
+ this.computeFaceNormals();
239
+ for (let f = 0, fl = this.faces.length; f < fl; f++) {
240
+ const face = this.faces[f];
241
+ vertices[face.a].add(face.normal);
242
+ vertices[face.b].add(face.normal);
243
+ vertices[face.c].add(face.normal);
244
+ }
245
+ }
246
+ for (let v = 0, vl = this.vertices.length; v < vl; v++) {
247
+ vertices[v].normalize();
235
248
  }
236
- } else {
237
- this.computeFaceNormals();
238
249
  for (let f = 0, fl = this.faces.length; f < fl; f++) {
239
250
  const face = this.faces[f];
240
- vertices[face.a].add(face.normal);
241
- vertices[face.b].add(face.normal);
242
- vertices[face.c].add(face.normal);
251
+ const vertexNormals = face.vertexNormals;
252
+ if (vertexNormals.length === 3) {
253
+ vertexNormals[0].copy(vertices[face.a]);
254
+ vertexNormals[1].copy(vertices[face.b]);
255
+ vertexNormals[2].copy(vertices[face.c]);
256
+ } else {
257
+ vertexNormals[0] = vertices[face.a].clone();
258
+ vertexNormals[1] = vertices[face.b].clone();
259
+ vertexNormals[2] = vertices[face.c].clone();
260
+ }
243
261
  }
244
- }
245
- for (let v = 0, vl = this.vertices.length; v < vl; v++) {
246
- vertices[v].normalize();
247
- }
248
- for (let f = 0, fl = this.faces.length; f < fl; f++) {
249
- const face = this.faces[f];
250
- const vertexNormals = face.vertexNormals;
251
- if (vertexNormals.length === 3) {
252
- vertexNormals[0].copy(vertices[face.a]);
253
- vertexNormals[1].copy(vertices[face.b]);
254
- vertexNormals[2].copy(vertices[face.c]);
255
- } else {
256
- vertexNormals[0] = vertices[face.a].clone();
257
- vertexNormals[1] = vertices[face.b].clone();
258
- vertexNormals[2] = vertices[face.c].clone();
262
+ if (this.faces.length > 0) {
263
+ this.normalsNeedUpdate = true;
259
264
  }
260
265
  }
261
- if (this.faces.length > 0) {
262
- this.normalsNeedUpdate = true;
263
- }
264
- }
265
- computeFlatVertexNormals() {
266
- this.computeFaceNormals();
267
- for (let f = 0, fl = this.faces.length; f < fl; f++) {
268
- const face = this.faces[f];
269
- const vertexNormals = face.vertexNormals;
270
- if (vertexNormals.length === 3) {
271
- vertexNormals[0].copy(face.normal);
272
- vertexNormals[1].copy(face.normal);
273
- vertexNormals[2].copy(face.normal);
274
- } else {
275
- vertexNormals[0] = face.normal.clone();
276
- vertexNormals[1] = face.normal.clone();
277
- vertexNormals[2] = face.normal.clone();
266
+ computeFlatVertexNormals() {
267
+ this.computeFaceNormals();
268
+ for (let f = 0, fl = this.faces.length; f < fl; f++) {
269
+ const face = this.faces[f];
270
+ const vertexNormals = face.vertexNormals;
271
+ if (vertexNormals.length === 3) {
272
+ vertexNormals[0].copy(face.normal);
273
+ vertexNormals[1].copy(face.normal);
274
+ vertexNormals[2].copy(face.normal);
275
+ } else {
276
+ vertexNormals[0] = face.normal.clone();
277
+ vertexNormals[1] = face.normal.clone();
278
+ vertexNormals[2] = face.normal.clone();
279
+ }
278
280
  }
279
- }
280
- if (this.faces.length > 0) {
281
- this.normalsNeedUpdate = true;
282
- }
283
- }
284
- computeMorphNormals() {
285
- for (let f = 0, fl = this.faces.length; f < fl; f++) {
286
- const face = this.faces[f];
287
- if (!face.__originalFaceNormal) {
288
- face.__originalFaceNormal = face.normal.clone();
289
- } else {
290
- face.__originalFaceNormal.copy(face.normal);
281
+ if (this.faces.length > 0) {
282
+ this.normalsNeedUpdate = true;
291
283
  }
292
- if (!face.__originalVertexNormals)
293
- face.__originalVertexNormals = [];
294
- for (let i = 0, il = face.vertexNormals.length; i < il; i++) {
295
- if (!face.__originalVertexNormals[i]) {
296
- face.__originalVertexNormals[i] = face.vertexNormals[i].clone();
284
+ }
285
+ computeMorphNormals() {
286
+ for (let f = 0, fl = this.faces.length; f < fl; f++) {
287
+ const face = this.faces[f];
288
+ if (!face.__originalFaceNormal) {
289
+ face.__originalFaceNormal = face.normal.clone();
297
290
  } else {
298
- face.__originalVertexNormals[i].copy(face.vertexNormals[i]);
291
+ face.__originalFaceNormal.copy(face.normal);
292
+ }
293
+ if (!face.__originalVertexNormals)
294
+ face.__originalVertexNormals = [];
295
+ for (let i = 0, il = face.vertexNormals.length; i < il; i++) {
296
+ if (!face.__originalVertexNormals[i]) {
297
+ face.__originalVertexNormals[i] = face.vertexNormals[i].clone();
298
+ } else {
299
+ face.__originalVertexNormals[i].copy(face.vertexNormals[i]);
300
+ }
299
301
  }
300
302
  }
301
- }
302
- const tmpGeo = new Geometry();
303
- tmpGeo.faces = this.faces;
304
- for (let i = 0, il = this.morphTargets.length; i < il; i++) {
305
- if (!this.morphNormals[i]) {
306
- this.morphNormals[i] = {};
307
- this.morphNormals[i].faceNormals = [];
308
- this.morphNormals[i].vertexNormals = [];
309
- const dstNormalsFace = this.morphNormals[i].faceNormals;
310
- const dstNormalsVertex = this.morphNormals[i].vertexNormals;
303
+ const tmpGeo = new Geometry2();
304
+ tmpGeo.faces = this.faces;
305
+ for (let i = 0, il = this.morphTargets.length; i < il; i++) {
306
+ if (!this.morphNormals[i]) {
307
+ this.morphNormals[i] = {};
308
+ this.morphNormals[i].faceNormals = [];
309
+ this.morphNormals[i].vertexNormals = [];
310
+ const dstNormalsFace = this.morphNormals[i].faceNormals;
311
+ const dstNormalsVertex = this.morphNormals[i].vertexNormals;
312
+ for (let f = 0, fl = this.faces.length; f < fl; f++) {
313
+ const faceNormal = new Vector3();
314
+ const vertexNormals = {
315
+ a: new Vector3(),
316
+ b: new Vector3(),
317
+ c: new Vector3()
318
+ };
319
+ dstNormalsFace.push(faceNormal);
320
+ dstNormalsVertex.push(vertexNormals);
321
+ }
322
+ }
323
+ const morphNormals = this.morphNormals[i];
324
+ tmpGeo.vertices = this.morphTargets[i].vertices;
325
+ tmpGeo.computeFaceNormals();
326
+ tmpGeo.computeVertexNormals();
311
327
  for (let f = 0, fl = this.faces.length; f < fl; f++) {
312
- const faceNormal = new Vector3();
313
- const vertexNormals = {
314
- a: new Vector3(),
315
- b: new Vector3(),
316
- c: new Vector3()
317
- };
318
- dstNormalsFace.push(faceNormal);
319
- dstNormalsVertex.push(vertexNormals);
320
- }
321
- }
322
- const morphNormals = this.morphNormals[i];
323
- tmpGeo.vertices = this.morphTargets[i].vertices;
324
- tmpGeo.computeFaceNormals();
325
- tmpGeo.computeVertexNormals();
328
+ const face = this.faces[f];
329
+ const faceNormal = morphNormals.faceNormals[f];
330
+ const vertexNormals = morphNormals.vertexNormals[f];
331
+ faceNormal.copy(face.normal);
332
+ vertexNormals.a.copy(face.vertexNormals[0]);
333
+ vertexNormals.b.copy(face.vertexNormals[1]);
334
+ vertexNormals.c.copy(face.vertexNormals[2]);
335
+ }
336
+ }
326
337
  for (let f = 0, fl = this.faces.length; f < fl; f++) {
327
338
  const face = this.faces[f];
328
- const faceNormal = morphNormals.faceNormals[f];
329
- const vertexNormals = morphNormals.vertexNormals[f];
330
- faceNormal.copy(face.normal);
331
- vertexNormals.a.copy(face.vertexNormals[0]);
332
- vertexNormals.b.copy(face.vertexNormals[1]);
333
- vertexNormals.c.copy(face.vertexNormals[2]);
339
+ face.normal = face.__originalFaceNormal;
340
+ face.vertexNormals = face.__originalVertexNormals;
334
341
  }
335
342
  }
336
- for (let f = 0, fl = this.faces.length; f < fl; f++) {
337
- const face = this.faces[f];
338
- face.normal = face.__originalFaceNormal;
339
- face.vertexNormals = face.__originalVertexNormals;
340
- }
341
- }
342
- computeBoundingBox() {
343
- if (this.boundingBox === null) {
344
- this.boundingBox = new Box3();
343
+ computeBoundingBox() {
344
+ if (this.boundingBox === null) {
345
+ this.boundingBox = new Box3();
346
+ }
347
+ this.boundingBox.setFromPoints(this.vertices);
345
348
  }
346
- this.boundingBox.setFromPoints(this.vertices);
347
- }
348
- computeBoundingSphere() {
349
- if (this.boundingSphere === null) {
350
- this.boundingSphere = new Sphere();
349
+ computeBoundingSphere() {
350
+ if (this.boundingSphere === null) {
351
+ this.boundingSphere = new Sphere();
352
+ }
353
+ this.boundingSphere.setFromPoints(this.vertices);
351
354
  }
352
- this.boundingSphere.setFromPoints(this.vertices);
353
- }
354
- merge(geometry, matrix, materialIndexOffset = 0) {
355
- if (!(geometry && geometry.isGeometry)) {
356
- console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.", geometry);
357
- return;
358
- }
359
- let normalMatrix;
360
- const vertexOffset = this.vertices.length, vertices1 = this.vertices, vertices2 = geometry.vertices, faces1 = this.faces, faces2 = geometry.faces, colors1 = this.colors, colors2 = geometry.colors;
361
- if (matrix !== void 0) {
362
- normalMatrix = new Matrix3().getNormalMatrix(matrix);
363
- }
364
- for (let i = 0, il = vertices2.length; i < il; i++) {
365
- const vertex = vertices2[i];
366
- const vertexCopy = vertex.clone();
367
- if (matrix !== void 0)
368
- vertexCopy.applyMatrix4(matrix);
369
- vertices1.push(vertexCopy);
370
- }
371
- for (let i = 0, il = colors2.length; i < il; i++) {
372
- colors1.push(colors2[i].clone());
373
- }
374
- for (let i = 0, il = faces2.length; i < il; i++) {
375
- const face = faces2[i];
376
- let normal, color;
377
- const faceVertexNormals = face.vertexNormals, faceVertexColors = face.vertexColors;
378
- const faceCopy = new Face3(face.a + vertexOffset, face.b + vertexOffset, face.c + vertexOffset);
379
- faceCopy.normal.copy(face.normal);
380
- if (normalMatrix !== void 0) {
381
- faceCopy.normal.applyMatrix3(normalMatrix).normalize();
382
- }
383
- for (let j = 0, jl = faceVertexNormals.length; j < jl; j++) {
384
- normal = faceVertexNormals[j].clone();
355
+ merge(geometry, matrix, materialIndexOffset = 0) {
356
+ if (!(geometry && geometry.isGeometry)) {
357
+ console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.", geometry);
358
+ return;
359
+ }
360
+ let normalMatrix;
361
+ const vertexOffset = this.vertices.length, vertices1 = this.vertices, vertices2 = geometry.vertices, faces1 = this.faces, faces2 = geometry.faces, colors1 = this.colors, colors2 = geometry.colors;
362
+ if (matrix !== void 0) {
363
+ normalMatrix = new Matrix3().getNormalMatrix(matrix);
364
+ }
365
+ for (let i = 0, il = vertices2.length; i < il; i++) {
366
+ const vertex = vertices2[i];
367
+ const vertexCopy = vertex.clone();
368
+ if (matrix !== void 0)
369
+ vertexCopy.applyMatrix4(matrix);
370
+ vertices1.push(vertexCopy);
371
+ }
372
+ for (let i = 0, il = colors2.length; i < il; i++) {
373
+ colors1.push(colors2[i].clone());
374
+ }
375
+ for (let i = 0, il = faces2.length; i < il; i++) {
376
+ const face = faces2[i];
377
+ let normal, color;
378
+ const faceVertexNormals = face.vertexNormals, faceVertexColors = face.vertexColors;
379
+ const faceCopy = new Face3(face.a + vertexOffset, face.b + vertexOffset, face.c + vertexOffset);
380
+ faceCopy.normal.copy(face.normal);
385
381
  if (normalMatrix !== void 0) {
386
- normal.applyMatrix3(normalMatrix).normalize();
382
+ faceCopy.normal.applyMatrix3(normalMatrix).normalize();
383
+ }
384
+ for (let j = 0, jl = faceVertexNormals.length; j < jl; j++) {
385
+ normal = faceVertexNormals[j].clone();
386
+ if (normalMatrix !== void 0) {
387
+ normal.applyMatrix3(normalMatrix).normalize();
388
+ }
389
+ faceCopy.vertexNormals.push(normal);
390
+ }
391
+ faceCopy.color.copy(face.color);
392
+ for (let j = 0, jl = faceVertexColors.length; j < jl; j++) {
393
+ color = faceVertexColors[j];
394
+ faceCopy.vertexColors.push(color.clone());
395
+ }
396
+ faceCopy.materialIndex = face.materialIndex + materialIndexOffset;
397
+ faces1.push(faceCopy);
398
+ }
399
+ for (let i = 0, il = geometry.faceVertexUvs.length; i < il; i++) {
400
+ const faceVertexUvs2 = geometry.faceVertexUvs[i];
401
+ if (this.faceVertexUvs[i] === void 0)
402
+ this.faceVertexUvs[i] = [];
403
+ for (let j = 0, jl = faceVertexUvs2.length; j < jl; j++) {
404
+ const uvs2 = faceVertexUvs2[j], uvsCopy = [];
405
+ for (let k = 0, kl = uvs2.length; k < kl; k++) {
406
+ uvsCopy.push(uvs2[k].clone());
407
+ }
408
+ this.faceVertexUvs[i].push(uvsCopy);
387
409
  }
388
- faceCopy.vertexNormals.push(normal);
389
- }
390
- faceCopy.color.copy(face.color);
391
- for (let j = 0, jl = faceVertexColors.length; j < jl; j++) {
392
- color = faceVertexColors[j];
393
- faceCopy.vertexColors.push(color.clone());
394
410
  }
395
- faceCopy.materialIndex = face.materialIndex + materialIndexOffset;
396
- faces1.push(faceCopy);
397
411
  }
398
- for (let i = 0, il = geometry.faceVertexUvs.length; i < il; i++) {
399
- const faceVertexUvs2 = geometry.faceVertexUvs[i];
400
- if (this.faceVertexUvs[i] === void 0)
401
- this.faceVertexUvs[i] = [];
402
- for (let j = 0, jl = faceVertexUvs2.length; j < jl; j++) {
403
- const uvs2 = faceVertexUvs2[j], uvsCopy = [];
404
- for (let k = 0, kl = uvs2.length; k < kl; k++) {
405
- uvsCopy.push(uvs2[k].clone());
412
+ mergeMesh(mesh) {
413
+ if (!(mesh && mesh.isMesh)) {
414
+ console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.", mesh);
415
+ return;
416
+ }
417
+ if (mesh.matrixAutoUpdate)
418
+ mesh.updateMatrix();
419
+ this.merge(mesh.geometry, mesh.matrix);
420
+ }
421
+ /*
422
+ * Checks for duplicate vertices with hashmap.
423
+ * Duplicated vertices are removed
424
+ * and faces' vertices are updated.
425
+ */
426
+ mergeVertices(precisionPoints = 4) {
427
+ const verticesMap = {};
428
+ const unique = [], changes = [];
429
+ const precision = Math.pow(10, precisionPoints);
430
+ for (let i = 0, il = this.vertices.length; i < il; i++) {
431
+ const v = this.vertices[i];
432
+ const key = `${Math.round(v.x * precision)}_${Math.round(v.y * precision)}_${Math.round(v.z * precision)}`;
433
+ if (verticesMap[key] === void 0) {
434
+ verticesMap[key] = i;
435
+ unique.push(this.vertices[i]);
436
+ changes[i] = unique.length - 1;
437
+ } else {
438
+ changes[i] = changes[verticesMap[key]];
406
439
  }
407
- this.faceVertexUvs[i].push(uvsCopy);
408
440
  }
409
- }
410
- }
411
- mergeMesh(mesh) {
412
- if (!(mesh && mesh.isMesh)) {
413
- console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.", mesh);
414
- return;
415
- }
416
- if (mesh.matrixAutoUpdate)
417
- mesh.updateMatrix();
418
- this.merge(mesh.geometry, mesh.matrix);
419
- }
420
- /*
421
- * Checks for duplicate vertices with hashmap.
422
- * Duplicated vertices are removed
423
- * and faces' vertices are updated.
424
- */
425
- mergeVertices(precisionPoints = 4) {
426
- const verticesMap = {};
427
- const unique = [], changes = [];
428
- const precision = Math.pow(10, precisionPoints);
429
- for (let i = 0, il = this.vertices.length; i < il; i++) {
430
- const v = this.vertices[i];
431
- const key = `${Math.round(v.x * precision)}_${Math.round(v.y * precision)}_${Math.round(v.z * precision)}`;
432
- if (verticesMap[key] === void 0) {
433
- verticesMap[key] = i;
434
- unique.push(this.vertices[i]);
435
- changes[i] = unique.length - 1;
436
- } else {
437
- changes[i] = changes[verticesMap[key]];
441
+ const faceIndicesToRemove = [];
442
+ for (let i = 0, il = this.faces.length; i < il; i++) {
443
+ const face = this.faces[i];
444
+ face.a = changes[face.a];
445
+ face.b = changes[face.b];
446
+ face.c = changes[face.c];
447
+ const indices = [face.a, face.b, face.c];
448
+ for (let n = 0; n < 3; n++) {
449
+ if (indices[n] === indices[(n + 1) % 3]) {
450
+ faceIndicesToRemove.push(i);
451
+ break;
452
+ }
453
+ }
438
454
  }
439
- }
440
- const faceIndicesToRemove = [];
441
- for (let i = 0, il = this.faces.length; i < il; i++) {
442
- const face = this.faces[i];
443
- face.a = changes[face.a];
444
- face.b = changes[face.b];
445
- face.c = changes[face.c];
446
- const indices = [face.a, face.b, face.c];
447
- for (let n = 0; n < 3; n++) {
448
- if (indices[n] === indices[(n + 1) % 3]) {
449
- faceIndicesToRemove.push(i);
450
- break;
455
+ for (let i = faceIndicesToRemove.length - 1; i >= 0; i--) {
456
+ const idx = faceIndicesToRemove[i];
457
+ this.faces.splice(idx, 1);
458
+ for (let j = 0, jl = this.faceVertexUvs.length; j < jl; j++) {
459
+ this.faceVertexUvs[j].splice(idx, 1);
451
460
  }
452
461
  }
462
+ const diff = this.vertices.length - unique.length;
463
+ this.vertices = unique;
464
+ return diff;
453
465
  }
454
- for (let i = faceIndicesToRemove.length - 1; i >= 0; i--) {
455
- const idx = faceIndicesToRemove[i];
456
- this.faces.splice(idx, 1);
457
- for (let j = 0, jl = this.faceVertexUvs.length; j < jl; j++) {
458
- this.faceVertexUvs[j].splice(idx, 1);
466
+ setFromPoints(points) {
467
+ this.vertices = [];
468
+ for (let i = 0, l = points.length; i < l; i++) {
469
+ const point = points[i];
470
+ this.vertices.push(new Vector3(point.x, point.y, point.z || 0));
459
471
  }
472
+ return this;
460
473
  }
461
- const diff = this.vertices.length - unique.length;
462
- this.vertices = unique;
463
- return diff;
464
- }
465
- setFromPoints(points) {
466
- this.vertices = [];
467
- for (let i = 0, l = points.length; i < l; i++) {
468
- const point = points[i];
469
- this.vertices.push(new Vector3(point.x, point.y, point.z || 0));
470
- }
471
- return this;
472
- }
473
- sortFacesByMaterialIndex() {
474
- const faces = this.faces;
475
- const length = faces.length;
476
- for (let i = 0; i < length; i++) {
477
- faces[i]._id = i;
478
- }
479
- function materialIndexSort(a, b) {
480
- return a.materialIndex - b.materialIndex;
481
- }
482
- faces.sort(materialIndexSort);
483
- const uvs1 = this.faceVertexUvs[0];
484
- const uvs2 = this.faceVertexUvs[1];
485
- let newUvs1, newUvs2;
486
- if (uvs1 && uvs1.length === length)
487
- newUvs1 = [];
488
- if (uvs2 && uvs2.length === length)
489
- newUvs2 = [];
490
- for (let i = 0; i < length; i++) {
491
- const id = faces[i]._id;
474
+ sortFacesByMaterialIndex() {
475
+ const faces = this.faces;
476
+ const length = faces.length;
477
+ for (let i = 0; i < length; i++) {
478
+ faces[i]._id = i;
479
+ }
480
+ function materialIndexSort(a, b) {
481
+ return a.materialIndex - b.materialIndex;
482
+ }
483
+ faces.sort(materialIndexSort);
484
+ const uvs1 = this.faceVertexUvs[0];
485
+ const uvs2 = this.faceVertexUvs[1];
486
+ let newUvs1, newUvs2;
487
+ if (uvs1 && uvs1.length === length)
488
+ newUvs1 = [];
489
+ if (uvs2 && uvs2.length === length)
490
+ newUvs2 = [];
491
+ for (let i = 0; i < length; i++) {
492
+ const id = faces[i]._id;
493
+ if (newUvs1)
494
+ newUvs1.push(uvs1[id]);
495
+ if (newUvs2)
496
+ newUvs2.push(uvs2[id]);
497
+ }
492
498
  if (newUvs1)
493
- newUvs1.push(uvs1[id]);
499
+ this.faceVertexUvs[0] = newUvs1;
494
500
  if (newUvs2)
495
- newUvs2.push(uvs2[id]);
496
- }
497
- if (newUvs1)
498
- this.faceVertexUvs[0] = newUvs1;
499
- if (newUvs2)
500
- this.faceVertexUvs[1] = newUvs2;
501
- }
502
- toJSON() {
503
- const data = {
504
- metadata: {
505
- version: 4.5,
506
- type: "Geometry",
507
- generator: "Geometry.toJSON"
508
- }
509
- };
510
- data.uuid = this.uuid;
511
- data.type = this.type;
512
- if (this.name !== "")
513
- data.name = this.name;
514
- if (this.parameters !== void 0) {
515
- const parameters = this.parameters;
516
- for (let key in parameters) {
517
- if (parameters[key] !== void 0)
518
- data[key] = parameters[key];
501
+ this.faceVertexUvs[1] = newUvs2;
502
+ }
503
+ toJSON() {
504
+ const data = {
505
+ metadata: {
506
+ version: 4.5,
507
+ type: "Geometry",
508
+ generator: "Geometry.toJSON"
509
+ }
510
+ };
511
+ data.uuid = this.uuid;
512
+ data.type = this.type;
513
+ if (this.name !== "")
514
+ data.name = this.name;
515
+ if (this.parameters !== void 0) {
516
+ const parameters = this.parameters;
517
+ for (let key in parameters) {
518
+ if (parameters[key] !== void 0)
519
+ data[key] = parameters[key];
520
+ }
521
+ return data;
522
+ }
523
+ const vertices = [];
524
+ for (let i = 0; i < this.vertices.length; i++) {
525
+ const vertex = this.vertices[i];
526
+ vertices.push(vertex.x, vertex.y, vertex.z);
527
+ }
528
+ const faces = [];
529
+ const normals = [];
530
+ const normalsHash = {};
531
+ const colors = [];
532
+ const colorsHash = {};
533
+ const uvs = [];
534
+ const uvsHash = {};
535
+ for (let i = 0; i < this.faces.length; i++) {
536
+ const face = this.faces[i];
537
+ const hasMaterial = true;
538
+ const hasFaceUv = false;
539
+ const hasFaceVertexUv = this.faceVertexUvs[0][i] !== void 0;
540
+ const hasFaceNormal = face.normal.length() > 0;
541
+ const hasFaceVertexNormal = face.vertexNormals.length > 0;
542
+ const hasFaceColor = face.color.r !== 1 || face.color.g !== 1 || face.color.b !== 1;
543
+ const hasFaceVertexColor = face.vertexColors.length > 0;
544
+ let faceType = 0;
545
+ faceType = setBit(faceType, 0, 0);
546
+ faceType = setBit(faceType, 1, hasMaterial);
547
+ faceType = setBit(faceType, 2, hasFaceUv);
548
+ faceType = setBit(faceType, 3, hasFaceVertexUv);
549
+ faceType = setBit(faceType, 4, hasFaceNormal);
550
+ faceType = setBit(faceType, 5, hasFaceVertexNormal);
551
+ faceType = setBit(faceType, 6, hasFaceColor);
552
+ faceType = setBit(faceType, 7, hasFaceVertexColor);
553
+ faces.push(faceType);
554
+ faces.push(face.a, face.b, face.c);
555
+ faces.push(face.materialIndex);
556
+ if (hasFaceVertexUv) {
557
+ const faceVertexUvs = this.faceVertexUvs[0][i];
558
+ faces.push(getUvIndex(faceVertexUvs[0]), getUvIndex(faceVertexUvs[1]), getUvIndex(faceVertexUvs[2]));
559
+ }
560
+ if (hasFaceNormal) {
561
+ faces.push(getNormalIndex(face.normal));
562
+ }
563
+ if (hasFaceVertexNormal) {
564
+ const vertexNormals = face.vertexNormals;
565
+ faces.push(
566
+ getNormalIndex(vertexNormals[0]),
567
+ getNormalIndex(vertexNormals[1]),
568
+ getNormalIndex(vertexNormals[2])
569
+ );
570
+ }
571
+ if (hasFaceColor) {
572
+ faces.push(getColorIndex(face.color));
573
+ }
574
+ if (hasFaceVertexColor) {
575
+ const vertexColors = face.vertexColors;
576
+ faces.push(getColorIndex(vertexColors[0]), getColorIndex(vertexColors[1]), getColorIndex(vertexColors[2]));
577
+ }
519
578
  }
520
- return data;
521
- }
522
- const vertices = [];
523
- for (let i = 0; i < this.vertices.length; i++) {
524
- const vertex = this.vertices[i];
525
- vertices.push(vertex.x, vertex.y, vertex.z);
526
- }
527
- const faces = [];
528
- const normals = [];
529
- const normalsHash = {};
530
- const colors = [];
531
- const colorsHash = {};
532
- const uvs = [];
533
- const uvsHash = {};
534
- for (let i = 0; i < this.faces.length; i++) {
535
- const face = this.faces[i];
536
- const hasMaterial = true;
537
- const hasFaceUv = false;
538
- const hasFaceVertexUv = this.faceVertexUvs[0][i] !== void 0;
539
- const hasFaceNormal = face.normal.length() > 0;
540
- const hasFaceVertexNormal = face.vertexNormals.length > 0;
541
- const hasFaceColor = face.color.r !== 1 || face.color.g !== 1 || face.color.b !== 1;
542
- const hasFaceVertexColor = face.vertexColors.length > 0;
543
- let faceType = 0;
544
- faceType = setBit(faceType, 0, 0);
545
- faceType = setBit(faceType, 1, hasMaterial);
546
- faceType = setBit(faceType, 2, hasFaceUv);
547
- faceType = setBit(faceType, 3, hasFaceVertexUv);
548
- faceType = setBit(faceType, 4, hasFaceNormal);
549
- faceType = setBit(faceType, 5, hasFaceVertexNormal);
550
- faceType = setBit(faceType, 6, hasFaceColor);
551
- faceType = setBit(faceType, 7, hasFaceVertexColor);
552
- faces.push(faceType);
553
- faces.push(face.a, face.b, face.c);
554
- faces.push(face.materialIndex);
555
- if (hasFaceVertexUv) {
556
- const faceVertexUvs = this.faceVertexUvs[0][i];
557
- faces.push(getUvIndex(faceVertexUvs[0]), getUvIndex(faceVertexUvs[1]), getUvIndex(faceVertexUvs[2]));
558
- }
559
- if (hasFaceNormal) {
560
- faces.push(getNormalIndex(face.normal));
561
- }
562
- if (hasFaceVertexNormal) {
563
- const vertexNormals = face.vertexNormals;
564
- faces.push(getNormalIndex(vertexNormals[0]), getNormalIndex(vertexNormals[1]), getNormalIndex(vertexNormals[2]));
579
+ function setBit(value, position, enabled) {
580
+ return enabled ? value | 1 << position : value & ~(1 << position);
565
581
  }
566
- if (hasFaceColor) {
567
- faces.push(getColorIndex(face.color));
582
+ function getNormalIndex(normal) {
583
+ const hash = normal.x.toString() + normal.y.toString() + normal.z.toString();
584
+ if (normalsHash[hash] !== void 0) {
585
+ return normalsHash[hash];
586
+ }
587
+ normalsHash[hash] = normals.length / 3;
588
+ normals.push(normal.x, normal.y, normal.z);
589
+ return normalsHash[hash];
568
590
  }
569
- if (hasFaceVertexColor) {
570
- const vertexColors = face.vertexColors;
571
- faces.push(getColorIndex(vertexColors[0]), getColorIndex(vertexColors[1]), getColorIndex(vertexColors[2]));
591
+ function getColorIndex(color) {
592
+ const hash = color.r.toString() + color.g.toString() + color.b.toString();
593
+ if (colorsHash[hash] !== void 0) {
594
+ return colorsHash[hash];
595
+ }
596
+ colorsHash[hash] = colors.length;
597
+ colors.push(color.getHex());
598
+ return colorsHash[hash];
572
599
  }
573
- }
574
- function setBit(value, position, enabled) {
575
- return enabled ? value | 1 << position : value & ~(1 << position);
576
- }
577
- function getNormalIndex(normal) {
578
- const hash = normal.x.toString() + normal.y.toString() + normal.z.toString();
579
- if (normalsHash[hash] !== void 0) {
580
- return normalsHash[hash];
600
+ function getUvIndex(uv) {
601
+ const hash = uv.x.toString() + uv.y.toString();
602
+ if (uvsHash[hash] !== void 0) {
603
+ return uvsHash[hash];
604
+ }
605
+ uvsHash[hash] = uvs.length / 2;
606
+ uvs.push(uv.x, uv.y);
607
+ return uvsHash[hash];
581
608
  }
582
- normalsHash[hash] = normals.length / 3;
583
- normals.push(normal.x, normal.y, normal.z);
584
- return normalsHash[hash];
609
+ data.data = {};
610
+ data.data.vertices = vertices;
611
+ data.data.normals = normals;
612
+ if (colors.length > 0)
613
+ data.data.colors = colors;
614
+ if (uvs.length > 0)
615
+ data.data.uvs = [uvs];
616
+ data.data.faces = faces;
617
+ return data;
585
618
  }
586
- function getColorIndex(color) {
587
- const hash = color.r.toString() + color.g.toString() + color.b.toString();
588
- if (colorsHash[hash] !== void 0) {
589
- return colorsHash[hash];
619
+ clone() {
620
+ return new Geometry2().copy(this);
621
+ }
622
+ copy(source) {
623
+ this.vertices = [];
624
+ this.colors = [];
625
+ this.faces = [];
626
+ this.faceVertexUvs = [[]];
627
+ this.morphTargets = [];
628
+ this.morphNormals = [];
629
+ this.skinWeights = [];
630
+ this.skinIndices = [];
631
+ this.lineDistances = [];
632
+ this.boundingBox = null;
633
+ this.boundingSphere = null;
634
+ this.name = source.name;
635
+ const vertices = source.vertices;
636
+ for (let i = 0, il = vertices.length; i < il; i++) {
637
+ this.vertices.push(vertices[i].clone());
638
+ }
639
+ const colors = source.colors;
640
+ for (let i = 0, il = colors.length; i < il; i++) {
641
+ this.colors.push(colors[i].clone());
642
+ }
643
+ const faces = source.faces;
644
+ for (let i = 0, il = faces.length; i < il; i++) {
645
+ this.faces.push(faces[i].clone());
646
+ }
647
+ for (let i = 0, il = source.faceVertexUvs.length; i < il; i++) {
648
+ const faceVertexUvs = source.faceVertexUvs[i];
649
+ if (this.faceVertexUvs[i] === void 0) {
650
+ this.faceVertexUvs[i] = [];
651
+ }
652
+ for (let j = 0, jl = faceVertexUvs.length; j < jl; j++) {
653
+ const uvs = faceVertexUvs[j], uvsCopy = [];
654
+ for (let k = 0, kl = uvs.length; k < kl; k++) {
655
+ const uv = uvs[k];
656
+ uvsCopy.push(uv.clone());
657
+ }
658
+ this.faceVertexUvs[i].push(uvsCopy);
659
+ }
590
660
  }
591
- colorsHash[hash] = colors.length;
592
- colors.push(color.getHex());
593
- return colorsHash[hash];
661
+ const morphTargets = source.morphTargets;
662
+ for (let i = 0, il = morphTargets.length; i < il; i++) {
663
+ const morphTarget = {};
664
+ morphTarget.name = morphTargets[i].name;
665
+ if (morphTargets[i].vertices !== void 0) {
666
+ morphTarget.vertices = [];
667
+ for (let j = 0, jl = morphTargets[i].vertices.length; j < jl; j++) {
668
+ morphTarget.vertices.push(morphTargets[i].vertices[j].clone());
669
+ }
670
+ }
671
+ if (morphTargets[i].normals !== void 0) {
672
+ morphTarget.normals = [];
673
+ for (let j = 0, jl = morphTargets[i].normals.length; j < jl; j++) {
674
+ morphTarget.normals.push(morphTargets[i].normals[j].clone());
675
+ }
676
+ }
677
+ this.morphTargets.push(morphTarget);
678
+ }
679
+ const morphNormals = source.morphNormals;
680
+ for (let i = 0, il = morphNormals.length; i < il; i++) {
681
+ const morphNormal = {};
682
+ if (morphNormals[i].vertexNormals !== void 0) {
683
+ morphNormal.vertexNormals = [];
684
+ for (let j = 0, jl = morphNormals[i].vertexNormals.length; j < jl; j++) {
685
+ const srcVertexNormal = morphNormals[i].vertexNormals[j];
686
+ const destVertexNormal = {};
687
+ destVertexNormal.a = srcVertexNormal.a.clone();
688
+ destVertexNormal.b = srcVertexNormal.b.clone();
689
+ destVertexNormal.c = srcVertexNormal.c.clone();
690
+ morphNormal.vertexNormals.push(destVertexNormal);
691
+ }
692
+ }
693
+ if (morphNormals[i].faceNormals !== void 0) {
694
+ morphNormal.faceNormals = [];
695
+ for (let j = 0, jl = morphNormals[i].faceNormals.length; j < jl; j++) {
696
+ morphNormal.faceNormals.push(morphNormals[i].faceNormals[j].clone());
697
+ }
698
+ }
699
+ this.morphNormals.push(morphNormal);
700
+ }
701
+ const skinWeights = source.skinWeights;
702
+ for (let i = 0, il = skinWeights.length; i < il; i++) {
703
+ this.skinWeights.push(skinWeights[i].clone());
704
+ }
705
+ const skinIndices = source.skinIndices;
706
+ for (let i = 0, il = skinIndices.length; i < il; i++) {
707
+ this.skinIndices.push(skinIndices[i].clone());
708
+ }
709
+ const lineDistances = source.lineDistances;
710
+ for (let i = 0, il = lineDistances.length; i < il; i++) {
711
+ this.lineDistances.push(lineDistances[i]);
712
+ }
713
+ const boundingBox = source.boundingBox;
714
+ if (boundingBox !== null) {
715
+ this.boundingBox = boundingBox.clone();
716
+ }
717
+ const boundingSphere = source.boundingSphere;
718
+ if (boundingSphere !== null) {
719
+ this.boundingSphere = boundingSphere.clone();
720
+ }
721
+ this.elementsNeedUpdate = source.elementsNeedUpdate;
722
+ this.verticesNeedUpdate = source.verticesNeedUpdate;
723
+ this.uvsNeedUpdate = source.uvsNeedUpdate;
724
+ this.normalsNeedUpdate = source.normalsNeedUpdate;
725
+ this.colorsNeedUpdate = source.colorsNeedUpdate;
726
+ this.lineDistancesNeedUpdate = source.lineDistancesNeedUpdate;
727
+ this.groupsNeedUpdate = source.groupsNeedUpdate;
728
+ return this;
594
729
  }
595
- function getUvIndex(uv) {
596
- const hash = uv.x.toString() + uv.y.toString();
597
- if (uvsHash[hash] !== void 0) {
598
- return uvsHash[hash];
730
+ toBufferGeometry() {
731
+ const geometry = new DirectGeometry().fromGeometry(this);
732
+ const buffergeometry = new BufferGeometry();
733
+ const positions = new Float32Array(geometry.vertices.length * 3);
734
+ buffergeometry.setAttribute("position", new BufferAttribute(positions, 3).copyVector3sArray(geometry.vertices));
735
+ if (geometry.normals.length > 0) {
736
+ const normals = new Float32Array(geometry.normals.length * 3);
737
+ buffergeometry.setAttribute("normal", new BufferAttribute(normals, 3).copyVector3sArray(geometry.normals));
738
+ }
739
+ if (geometry.colors.length > 0) {
740
+ const colors = new Float32Array(geometry.colors.length * 3);
741
+ buffergeometry.setAttribute("color", new BufferAttribute(colors, 3).copyColorsArray(geometry.colors));
742
+ }
743
+ if (geometry.uvs.length > 0) {
744
+ const uvs = new Float32Array(geometry.uvs.length * 2);
745
+ buffergeometry.setAttribute("uv", new BufferAttribute(uvs, 2).copyVector2sArray(geometry.uvs));
746
+ }
747
+ if (geometry.uvs2.length > 0) {
748
+ const uvs2 = new Float32Array(geometry.uvs2.length * 2);
749
+ buffergeometry.setAttribute("uv2", new BufferAttribute(uvs2, 2).copyVector2sArray(geometry.uvs2));
750
+ }
751
+ buffergeometry.groups = geometry.groups;
752
+ for (let name in geometry.morphTargets) {
753
+ const array = [];
754
+ const morphTargets = geometry.morphTargets[name];
755
+ for (let i = 0, l = morphTargets.length; i < l; i++) {
756
+ const morphTarget = morphTargets[i];
757
+ const attribute = new Float32BufferAttribute(morphTarget.data.length * 3, 3);
758
+ attribute.name = morphTarget.name;
759
+ array.push(attribute.copyVector3sArray(morphTarget.data));
760
+ }
761
+ buffergeometry.morphAttributes[name] = array;
599
762
  }
600
- uvsHash[hash] = uvs.length / 2;
601
- uvs.push(uv.x, uv.y);
602
- return uvsHash[hash];
603
- }
604
- data.data = {};
605
- data.data.vertices = vertices;
606
- data.data.normals = normals;
607
- if (colors.length > 0)
608
- data.data.colors = colors;
609
- if (uvs.length > 0)
610
- data.data.uvs = [uvs];
611
- data.data.faces = faces;
612
- return data;
613
- }
614
- clone() {
615
- return new Geometry().copy(this);
616
- }
617
- copy(source) {
618
- this.vertices = [];
619
- this.colors = [];
620
- this.faces = [];
621
- this.faceVertexUvs = [[]];
622
- this.morphTargets = [];
623
- this.morphNormals = [];
624
- this.skinWeights = [];
625
- this.skinIndices = [];
626
- this.lineDistances = [];
627
- this.boundingBox = null;
628
- this.boundingSphere = null;
629
- this.name = source.name;
630
- const vertices = source.vertices;
631
- for (let i = 0, il = vertices.length; i < il; i++) {
632
- this.vertices.push(vertices[i].clone());
633
- }
634
- const colors = source.colors;
635
- for (let i = 0, il = colors.length; i < il; i++) {
636
- this.colors.push(colors[i].clone());
637
- }
638
- const faces = source.faces;
639
- for (let i = 0, il = faces.length; i < il; i++) {
640
- this.faces.push(faces[i].clone());
641
- }
642
- for (let i = 0, il = source.faceVertexUvs.length; i < il; i++) {
643
- const faceVertexUvs = source.faceVertexUvs[i];
644
- if (this.faceVertexUvs[i] === void 0) {
645
- this.faceVertexUvs[i] = [];
646
- }
647
- for (let j = 0, jl = faceVertexUvs.length; j < jl; j++) {
648
- const uvs = faceVertexUvs[j], uvsCopy = [];
649
- for (let k = 0, kl = uvs.length; k < kl; k++) {
650
- const uv = uvs[k];
651
- uvsCopy.push(uv.clone());
652
- }
653
- this.faceVertexUvs[i].push(uvsCopy);
654
- }
655
- }
656
- const morphTargets = source.morphTargets;
657
- for (let i = 0, il = morphTargets.length; i < il; i++) {
658
- const morphTarget = {};
659
- morphTarget.name = morphTargets[i].name;
660
- if (morphTargets[i].vertices !== void 0) {
661
- morphTarget.vertices = [];
662
- for (let j = 0, jl = morphTargets[i].vertices.length; j < jl; j++) {
663
- morphTarget.vertices.push(morphTargets[i].vertices[j].clone());
664
- }
665
- }
666
- if (morphTargets[i].normals !== void 0) {
667
- morphTarget.normals = [];
668
- for (let j = 0, jl = morphTargets[i].normals.length; j < jl; j++) {
669
- morphTarget.normals.push(morphTargets[i].normals[j].clone());
670
- }
671
- }
672
- this.morphTargets.push(morphTarget);
673
- }
674
- const morphNormals = source.morphNormals;
675
- for (let i = 0, il = morphNormals.length; i < il; i++) {
676
- const morphNormal = {};
677
- if (morphNormals[i].vertexNormals !== void 0) {
678
- morphNormal.vertexNormals = [];
679
- for (let j = 0, jl = morphNormals[i].vertexNormals.length; j < jl; j++) {
680
- const srcVertexNormal = morphNormals[i].vertexNormals[j];
681
- const destVertexNormal = {};
682
- destVertexNormal.a = srcVertexNormal.a.clone();
683
- destVertexNormal.b = srcVertexNormal.b.clone();
684
- destVertexNormal.c = srcVertexNormal.c.clone();
685
- morphNormal.vertexNormals.push(destVertexNormal);
686
- }
687
- }
688
- if (morphNormals[i].faceNormals !== void 0) {
689
- morphNormal.faceNormals = [];
690
- for (let j = 0, jl = morphNormals[i].faceNormals.length; j < jl; j++) {
691
- morphNormal.faceNormals.push(morphNormals[i].faceNormals[j].clone());
692
- }
693
- }
694
- this.morphNormals.push(morphNormal);
695
- }
696
- const skinWeights = source.skinWeights;
697
- for (let i = 0, il = skinWeights.length; i < il; i++) {
698
- this.skinWeights.push(skinWeights[i].clone());
699
- }
700
- const skinIndices = source.skinIndices;
701
- for (let i = 0, il = skinIndices.length; i < il; i++) {
702
- this.skinIndices.push(skinIndices[i].clone());
703
- }
704
- const lineDistances = source.lineDistances;
705
- for (let i = 0, il = lineDistances.length; i < il; i++) {
706
- this.lineDistances.push(lineDistances[i]);
707
- }
708
- const boundingBox = source.boundingBox;
709
- if (boundingBox !== null) {
710
- this.boundingBox = boundingBox.clone();
711
- }
712
- const boundingSphere = source.boundingSphere;
713
- if (boundingSphere !== null) {
714
- this.boundingSphere = boundingSphere.clone();
715
- }
716
- this.elementsNeedUpdate = source.elementsNeedUpdate;
717
- this.verticesNeedUpdate = source.verticesNeedUpdate;
718
- this.uvsNeedUpdate = source.uvsNeedUpdate;
719
- this.normalsNeedUpdate = source.normalsNeedUpdate;
720
- this.colorsNeedUpdate = source.colorsNeedUpdate;
721
- this.lineDistancesNeedUpdate = source.lineDistancesNeedUpdate;
722
- this.groupsNeedUpdate = source.groupsNeedUpdate;
723
- return this;
724
- }
725
- toBufferGeometry() {
726
- const geometry = new DirectGeometry().fromGeometry(this);
727
- const buffergeometry = new BufferGeometry();
728
- const positions = new Float32Array(geometry.vertices.length * 3);
729
- buffergeometry.setAttribute("position", new BufferAttribute(positions, 3).copyVector3sArray(geometry.vertices));
730
- if (geometry.normals.length > 0) {
731
- const normals = new Float32Array(geometry.normals.length * 3);
732
- buffergeometry.setAttribute("normal", new BufferAttribute(normals, 3).copyVector3sArray(geometry.normals));
733
- }
734
- if (geometry.colors.length > 0) {
735
- const colors = new Float32Array(geometry.colors.length * 3);
736
- buffergeometry.setAttribute("color", new BufferAttribute(colors, 3).copyColorsArray(geometry.colors));
737
- }
738
- if (geometry.uvs.length > 0) {
739
- const uvs = new Float32Array(geometry.uvs.length * 2);
740
- buffergeometry.setAttribute("uv", new BufferAttribute(uvs, 2).copyVector2sArray(geometry.uvs));
741
- }
742
- if (geometry.uvs2.length > 0) {
743
- const uvs2 = new Float32Array(geometry.uvs2.length * 2);
744
- buffergeometry.setAttribute("uv2", new BufferAttribute(uvs2, 2).copyVector2sArray(geometry.uvs2));
745
- }
746
- buffergeometry.groups = geometry.groups;
747
- for (let name in geometry.morphTargets) {
748
- const array = [];
749
- const morphTargets = geometry.morphTargets[name];
750
- for (let i = 0, l = morphTargets.length; i < l; i++) {
751
- const morphTarget = morphTargets[i];
752
- const attribute = new Float32BufferAttribute(morphTarget.data.length * 3, 3);
753
- attribute.name = morphTarget.name;
754
- array.push(attribute.copyVector3sArray(morphTarget.data));
755
- }
756
- buffergeometry.morphAttributes[name] = array;
757
- }
758
- if (geometry.skinIndices.length > 0) {
759
- const skinIndices = new Float32BufferAttribute(geometry.skinIndices.length * 4, 4);
760
- buffergeometry.setAttribute("skinIndex", skinIndices.copyVector4sArray(geometry.skinIndices));
761
- }
762
- if (geometry.skinWeights.length > 0) {
763
- const skinWeights = new Float32BufferAttribute(geometry.skinWeights.length * 4, 4);
764
- buffergeometry.setAttribute("skinWeight", skinWeights.copyVector4sArray(geometry.skinWeights));
763
+ if (geometry.skinIndices.length > 0) {
764
+ const skinIndices = new Float32BufferAttribute(geometry.skinIndices.length * 4, 4);
765
+ buffergeometry.setAttribute("skinIndex", skinIndices.copyVector4sArray(geometry.skinIndices));
766
+ }
767
+ if (geometry.skinWeights.length > 0) {
768
+ const skinWeights = new Float32BufferAttribute(geometry.skinWeights.length * 4, 4);
769
+ buffergeometry.setAttribute("skinWeight", skinWeights.copyVector4sArray(geometry.skinWeights));
770
+ }
771
+ if (geometry.boundingSphere !== null) {
772
+ buffergeometry.boundingSphere = geometry.boundingSphere.clone();
773
+ }
774
+ if (geometry.boundingBox !== null) {
775
+ buffergeometry.boundingBox = geometry.boundingBox.clone();
776
+ }
777
+ return buffergeometry;
765
778
  }
766
- if (geometry.boundingSphere !== null) {
767
- buffergeometry.boundingSphere = geometry.boundingSphere.clone();
779
+ computeTangents() {
780
+ console.error("THREE.Geometry: .computeTangents() has been removed.");
768
781
  }
769
- if (geometry.boundingBox !== null) {
770
- buffergeometry.boundingBox = geometry.boundingBox.clone();
782
+ computeLineDistances() {
783
+ console.error(
784
+ "THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead."
785
+ );
786
+ }
787
+ applyMatrix(matrix) {
788
+ console.warn("THREE.Geometry: .applyMatrix() has been renamed to .applyMatrix4().");
789
+ return this.applyMatrix4(matrix);
790
+ }
791
+ dispose() {
792
+ this.dispatchEvent({ type: "dispose" });
771
793
  }
772
- return buffergeometry;
773
- }
774
- computeTangents() {
775
- console.error("THREE.Geometry: .computeTangents() has been removed.");
776
- }
777
- computeLineDistances() {
778
- console.error(
779
- "THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead."
780
- );
781
- }
782
- applyMatrix(matrix) {
783
- console.warn("THREE.Geometry: .applyMatrix() has been renamed to .applyMatrix4().");
784
- return this.applyMatrix4(matrix);
785
- }
786
- dispose() {
787
- this.dispatchEvent({ type: "dispose" });
788
794
  }
789
- }
795
+ return Geometry2;
796
+ })();
790
797
  class DirectGeometry {
791
798
  constructor() {
792
799
  this.vertices = [];