@lampdotdev/lamp 0.0.0-stage → 0.36.2-nightly.16

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 (470) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +397 -2
  3. package/Resources/Devices/roku.json +410 -0
  4. package/Resources/Devices/xbox-one.json +367 -0
  5. package/Resources/GameKit/NOTICE.md +63 -0
  6. package/Resources/GameKit/apple/LampPage.swift +1813 -0
  7. package/Resources/GameKit/apple/LampPlayer.swift +46 -0
  8. package/Resources/GameKit/apple/LampWebApp.swift +63 -0
  9. package/Resources/GameKit/apple/LampWebGame.swift +87 -0
  10. package/Resources/GameKit/apple/Native.swift +12 -0
  11. package/Resources/GameKit/build.sh +55 -0
  12. package/Resources/GameKit/lamp_game.h +116 -0
  13. package/Resources/GameKit/lamp_host.h +19 -0
  14. package/Resources/GameKit/lamp_kit.cpp +61 -0
  15. package/Resources/GameKit/lamp_sound.cpp +455 -0
  16. package/Resources/GameKit/lamp_xbox.cpp +374 -0
  17. package/Resources/GameKit/libraries/HandmadeMath.h +3940 -0
  18. package/Resources/GameKit/libraries/cgltf.h +7240 -0
  19. package/Resources/GameKit/libraries/dr_mp3.h +5430 -0
  20. package/Resources/GameKit/libraries/dr_wav.h +9209 -0
  21. package/Resources/GameKit/libraries/sokol_debugtext.h +4754 -0
  22. package/Resources/GameKit/libraries/sokol_gfx.h +29558 -0
  23. package/Resources/GameKit/libraries/sokol_gl.h +4538 -0
  24. package/Resources/GameKit/libraries/sokol_log.h +335 -0
  25. package/Resources/GameKit/libraries/sokol_shape.h +1531 -0
  26. package/Resources/GameKit/libraries/stb_image.h +7988 -0
  27. package/Resources/GameKit/libraries/stb_vorbis.c +5584 -0
  28. package/Resources/GameKit/page/lamp-live.js +672 -0
  29. package/Resources/GameKit/scaffold/Game/game.cpp +142 -0
  30. package/Resources/GameKit/scaffold/Game/scene.glsl +49 -0
  31. package/Resources/GameKit/scaffold-web/Web/game.js +31 -0
  32. package/Resources/GameKit/scaffold-web/Web/index.html +13 -0
  33. package/Resources/GameKit/scaffold-web/Web/making.js +33 -0
  34. package/Resources/GameKit/scaffold-web/Web/world.js +33 -0
  35. package/Resources/GameKit/web/lamp-game.js +3042 -0
  36. package/Resources/GameKit/web/lamp-phaser.js +128 -0
  37. package/Resources/WebHost/App.exe +0 -0
  38. package/Resources/WebHost/Microsoft.Web.WebView2.Core.dll +0 -0
  39. package/Resources/WebHost/WebView2-LICENSE.txt +27 -0
  40. package/Resources/WebHost/lamp_controllers.h +1506 -0
  41. package/Resources/WebHost/lamp_web_host.cpp +1173 -0
  42. package/Resources/WebLibraries/earlier.txt +318 -0
  43. package/Resources/WebLibraries/phaser/LICENSE.md +20 -0
  44. package/Resources/WebLibraries/phaser/NOTICE.md +2 -0
  45. package/Resources/WebLibraries/phaser/phaser.esm.min.js +1 -0
  46. package/Resources/WebLibraries/qrcode/LICENSE +21 -0
  47. package/Resources/WebLibraries/qrcode/NOTICE.md +4 -0
  48. package/Resources/WebLibraries/qrcode/qrcode.js +2297 -0
  49. package/Resources/WebLibraries/rapier/LICENSE +201 -0
  50. package/Resources/WebLibraries/rapier/NOTICE.md +3 -0
  51. package/Resources/WebLibraries/rapier/rapier.js +2 -0
  52. package/Resources/WebLibraries/three/LICENSE +21 -0
  53. package/Resources/WebLibraries/three/NOTICE.md +4 -0
  54. package/Resources/WebLibraries/three/addons/animation/AnimationClipCreator.js +168 -0
  55. package/Resources/WebLibraries/three/addons/animation/CCDIKSolver.js +607 -0
  56. package/Resources/WebLibraries/three/addons/controls/ArcballControls.js +3543 -0
  57. package/Resources/WebLibraries/three/addons/controls/DragControls.js +452 -0
  58. package/Resources/WebLibraries/three/addons/controls/FirstPersonControls.js +512 -0
  59. package/Resources/WebLibraries/three/addons/controls/FlyControls.js +384 -0
  60. package/Resources/WebLibraries/three/addons/controls/MapControls.js +116 -0
  61. package/Resources/WebLibraries/three/addons/controls/OrbitControls.js +1985 -0
  62. package/Resources/WebLibraries/three/addons/controls/PointerLockControls.js +264 -0
  63. package/Resources/WebLibraries/three/addons/controls/TrackballControls.js +1106 -0
  64. package/Resources/WebLibraries/three/addons/controls/TransformControls.js +2003 -0
  65. package/Resources/WebLibraries/three/addons/curves/CurveExtras.js +694 -0
  66. package/Resources/WebLibraries/three/addons/curves/NURBSCurve.js +169 -0
  67. package/Resources/WebLibraries/three/addons/curves/NURBSSurface.js +98 -0
  68. package/Resources/WebLibraries/three/addons/curves/NURBSUtils.js +532 -0
  69. package/Resources/WebLibraries/three/addons/curves/NURBSVolume.js +82 -0
  70. package/Resources/WebLibraries/three/addons/effects/AnaglyphEffect.js +274 -0
  71. package/Resources/WebLibraries/three/addons/effects/AsciiEffect.js +323 -0
  72. package/Resources/WebLibraries/three/addons/effects/OutlineEffect.js +489 -0
  73. package/Resources/WebLibraries/three/addons/effects/ParallaxBarrierEffect.js +155 -0
  74. package/Resources/WebLibraries/three/addons/effects/StereoEffect.js +91 -0
  75. package/Resources/WebLibraries/three/addons/environments/ColorEnvironment.js +59 -0
  76. package/Resources/WebLibraries/three/addons/environments/DebugEnvironment.js +102 -0
  77. package/Resources/WebLibraries/three/addons/environments/RoomEnvironment.js +185 -0
  78. package/Resources/WebLibraries/three/addons/geometries/BoxLineGeometry.js +92 -0
  79. package/Resources/WebLibraries/three/addons/geometries/ConvexGeometry.js +72 -0
  80. package/Resources/WebLibraries/three/addons/geometries/DecalGeometry.js +420 -0
  81. package/Resources/WebLibraries/three/addons/geometries/LoftGeometry.js +355 -0
  82. package/Resources/WebLibraries/three/addons/geometries/ParametricFunctions.js +100 -0
  83. package/Resources/WebLibraries/three/addons/geometries/ParametricGeometry.js +172 -0
  84. package/Resources/WebLibraries/three/addons/geometries/RoundedBoxGeometry.js +216 -0
  85. package/Resources/WebLibraries/three/addons/geometries/TeapotGeometry.js +689 -0
  86. package/Resources/WebLibraries/three/addons/geometries/TextGeometry.js +102 -0
  87. package/Resources/WebLibraries/three/addons/helpers/AnimationPathHelper.js +302 -0
  88. package/Resources/WebLibraries/three/addons/helpers/LightProbeGridHelper.js +166 -0
  89. package/Resources/WebLibraries/three/addons/helpers/LightProbeGridHelperWebGL.js +221 -0
  90. package/Resources/WebLibraries/three/addons/helpers/LightProbeHelper.js +166 -0
  91. package/Resources/WebLibraries/three/addons/helpers/LightProbeHelperGPU.js +102 -0
  92. package/Resources/WebLibraries/three/addons/helpers/OctreeHelper.js +109 -0
  93. package/Resources/WebLibraries/three/addons/helpers/PositionalAudioHelper.js +169 -0
  94. package/Resources/WebLibraries/three/addons/helpers/RapierHelper.js +59 -0
  95. package/Resources/WebLibraries/three/addons/helpers/RectAreaLightHelper.js +118 -0
  96. package/Resources/WebLibraries/three/addons/helpers/TextureHelper.js +265 -0
  97. package/Resources/WebLibraries/three/addons/helpers/TextureHelperGPU.js +214 -0
  98. package/Resources/WebLibraries/three/addons/helpers/VertexNormalsHelper.js +155 -0
  99. package/Resources/WebLibraries/three/addons/helpers/VertexTangentsHelper.js +133 -0
  100. package/Resources/WebLibraries/three/addons/helpers/ViewHelper.js +529 -0
  101. package/Resources/WebLibraries/three/addons/interactive/HTMLMesh.js +617 -0
  102. package/Resources/WebLibraries/three/addons/interactive/InteractiveGroup.js +224 -0
  103. package/Resources/WebLibraries/three/addons/interactive/SelectionBox.js +324 -0
  104. package/Resources/WebLibraries/three/addons/interactive/SelectionHelper.js +150 -0
  105. package/Resources/WebLibraries/three/addons/libs/fflate.module.js +2699 -0
  106. package/Resources/WebLibraries/three/addons/libs/lil-gui.module.min.js +8 -0
  107. package/Resources/WebLibraries/three/addons/libs/meshopt_decoder.module.js +196 -0
  108. package/Resources/WebLibraries/three/addons/libs/potpack.module.js +125 -0
  109. package/Resources/WebLibraries/three/addons/libs/stats.module.js +167 -0
  110. package/Resources/WebLibraries/three/addons/libs/tween.module.js +876 -0
  111. package/Resources/WebLibraries/three/addons/lighting/ClusteredLighting.js +153 -0
  112. package/Resources/WebLibraries/three/addons/lighting/DynamicLighting.js +82 -0
  113. package/Resources/WebLibraries/three/addons/lighting/LightMapper.js +295 -0
  114. package/Resources/WebLibraries/three/addons/lighting/LightProbeGrid.js +923 -0
  115. package/Resources/WebLibraries/three/addons/lighting/LightProbeGridUtils.js +107 -0
  116. package/Resources/WebLibraries/three/addons/lighting/LightProbeGridWebGL.js +846 -0
  117. package/Resources/WebLibraries/three/addons/lighting/vxgi/VXGIConeTracer.js +243 -0
  118. package/Resources/WebLibraries/three/addons/lighting/vxgi/VXGIIrradiance.js +43 -0
  119. package/Resources/WebLibraries/three/addons/lighting/vxgi/VXGINode.js +617 -0
  120. package/Resources/WebLibraries/three/addons/lighting/vxgi/VXGISceneCollector.js +793 -0
  121. package/Resources/WebLibraries/three/addons/lighting/vxgi/VXGIVolume.js +1440 -0
  122. package/Resources/WebLibraries/three/addons/lights/LightProbeGenerator.js +337 -0
  123. package/Resources/WebLibraries/three/addons/lights/RectAreaLightTexturesLib.js +127 -0
  124. package/Resources/WebLibraries/three/addons/lights/RectAreaLightUniformsLib.js +40 -0
  125. package/Resources/WebLibraries/three/addons/lights/SunLight.js +100 -0
  126. package/Resources/WebLibraries/three/addons/lights/SunLightNode.js +56 -0
  127. package/Resources/WebLibraries/three/addons/lights/SunLightShadow.js +319 -0
  128. package/Resources/WebLibraries/three/addons/lights/SunShadowNode.js +312 -0
  129. package/Resources/WebLibraries/three/addons/lines/Line2.js +56 -0
  130. package/Resources/WebLibraries/three/addons/lines/LineGeometry.js +157 -0
  131. package/Resources/WebLibraries/three/addons/lines/LineMaterial.js +742 -0
  132. package/Resources/WebLibraries/three/addons/lines/LineSegments2.js +434 -0
  133. package/Resources/WebLibraries/three/addons/lines/LineSegmentsGeometry.js +298 -0
  134. package/Resources/WebLibraries/three/addons/lines/Wireframe.js +108 -0
  135. package/Resources/WebLibraries/three/addons/lines/WireframeGeometry2.js +49 -0
  136. package/Resources/WebLibraries/three/addons/lines/webgpu/Line2.js +46 -0
  137. package/Resources/WebLibraries/three/addons/lines/webgpu/LineSegments2.js +419 -0
  138. package/Resources/WebLibraries/three/addons/lines/webgpu/Wireframe.js +86 -0
  139. package/Resources/WebLibraries/three/addons/loaders/EXRLoader.js +3411 -0
  140. package/Resources/WebLibraries/three/addons/loaders/FBXLoader.js +4660 -0
  141. package/Resources/WebLibraries/three/addons/loaders/FontLoader.js +262 -0
  142. package/Resources/WebLibraries/three/addons/loaders/GLTFLoader.js +5006 -0
  143. package/Resources/WebLibraries/three/addons/loaders/HDRLoader.js +463 -0
  144. package/Resources/WebLibraries/three/addons/loaders/MTLLoader.js +601 -0
  145. package/Resources/WebLibraries/three/addons/loaders/OBJLoader.js +961 -0
  146. package/Resources/WebLibraries/three/addons/loaders/PLYLoader.js +992 -0
  147. package/Resources/WebLibraries/three/addons/loaders/RGBELoader.js +18 -0
  148. package/Resources/WebLibraries/three/addons/loaders/STLLoader.js +423 -0
  149. package/Resources/WebLibraries/three/addons/loaders/SVGLoader.js +3297 -0
  150. package/Resources/WebLibraries/three/addons/loaders/TGALoader.js +539 -0
  151. package/Resources/WebLibraries/three/addons/loaders/UltraHDRLoader.js +757 -0
  152. package/Resources/WebLibraries/three/addons/math/Capsule.js +159 -0
  153. package/Resources/WebLibraries/three/addons/math/ColorConverter.js +62 -0
  154. package/Resources/WebLibraries/three/addons/math/ColorSpaces.js +147 -0
  155. package/Resources/WebLibraries/three/addons/math/ConvexHull.js +1695 -0
  156. package/Resources/WebLibraries/three/addons/math/ImprovedNoise.js +88 -0
  157. package/Resources/WebLibraries/three/addons/math/Lut.js +317 -0
  158. package/Resources/WebLibraries/three/addons/math/MeshSurfaceSampler.js +315 -0
  159. package/Resources/WebLibraries/three/addons/math/OBB.js +535 -0
  160. package/Resources/WebLibraries/three/addons/math/Octree.js +825 -0
  161. package/Resources/WebLibraries/three/addons/math/SimplexNoise.js +470 -0
  162. package/Resources/WebLibraries/three/addons/misc/ConvexObjectBreaker.js +539 -0
  163. package/Resources/WebLibraries/three/addons/misc/GPUComputationRenderer.js +508 -0
  164. package/Resources/WebLibraries/three/addons/misc/Gyroscope.js +78 -0
  165. package/Resources/WebLibraries/three/addons/misc/MorphAnimMesh.js +119 -0
  166. package/Resources/WebLibraries/three/addons/misc/MorphBlendMesh.js +425 -0
  167. package/Resources/WebLibraries/three/addons/misc/ProgressiveLightMap.js +370 -0
  168. package/Resources/WebLibraries/three/addons/misc/ProgressiveLightMapGPU.js +322 -0
  169. package/Resources/WebLibraries/three/addons/misc/RollerCoaster.js +661 -0
  170. package/Resources/WebLibraries/three/addons/misc/Sculptor.js +1679 -0
  171. package/Resources/WebLibraries/three/addons/misc/SculptorMesh.js +1504 -0
  172. package/Resources/WebLibraries/three/addons/misc/SculptorTools.js +1180 -0
  173. package/Resources/WebLibraries/three/addons/misc/SculptorUtils.js +345 -0
  174. package/Resources/WebLibraries/three/addons/misc/TileCreasedNormalsPlugin.js +270 -0
  175. package/Resources/WebLibraries/three/addons/misc/TubePainter.js +611 -0
  176. package/Resources/WebLibraries/three/addons/misc/Volume.js +520 -0
  177. package/Resources/WebLibraries/three/addons/misc/VolumeSlice.js +275 -0
  178. package/Resources/WebLibraries/three/addons/modifiers/CurveModifier.js +374 -0
  179. package/Resources/WebLibraries/three/addons/modifiers/CurveModifierGPU.js +256 -0
  180. package/Resources/WebLibraries/three/addons/modifiers/EdgeSplitModifier.js +299 -0
  181. package/Resources/WebLibraries/three/addons/modifiers/TessellateModifier.js +340 -0
  182. package/Resources/WebLibraries/three/addons/objects/GroundedSkybox.js +69 -0
  183. package/Resources/WebLibraries/three/addons/objects/Lensflare.js +489 -0
  184. package/Resources/WebLibraries/three/addons/objects/LensflareMesh.js +376 -0
  185. package/Resources/WebLibraries/three/addons/objects/MarchingCubes.js +1261 -0
  186. package/Resources/WebLibraries/three/addons/objects/Reflector.js +390 -0
  187. package/Resources/WebLibraries/three/addons/objects/ReflectorForSSRPass.js +393 -0
  188. package/Resources/WebLibraries/three/addons/objects/Refractor.js +389 -0
  189. package/Resources/WebLibraries/three/addons/objects/ShadowMesh.js +130 -0
  190. package/Resources/WebLibraries/three/addons/objects/Sky.js +342 -0
  191. package/Resources/WebLibraries/three/addons/objects/SkyMesh.js +403 -0
  192. package/Resources/WebLibraries/three/addons/objects/Water.js +374 -0
  193. package/Resources/WebLibraries/three/addons/objects/Water2.js +403 -0
  194. package/Resources/WebLibraries/three/addons/objects/Water2Mesh.js +199 -0
  195. package/Resources/WebLibraries/three/addons/objects/WaterMesh.js +194 -0
  196. package/Resources/WebLibraries/three/addons/postprocessing/AfterimagePass.js +187 -0
  197. package/Resources/WebLibraries/three/addons/postprocessing/BloomPass.js +274 -0
  198. package/Resources/WebLibraries/three/addons/postprocessing/BokehPass.js +218 -0
  199. package/Resources/WebLibraries/three/addons/postprocessing/ClearPass.js +97 -0
  200. package/Resources/WebLibraries/three/addons/postprocessing/CubeTexturePass.js +146 -0
  201. package/Resources/WebLibraries/three/addons/postprocessing/DotScreenPass.js +114 -0
  202. package/Resources/WebLibraries/three/addons/postprocessing/EffectComposer.js +365 -0
  203. package/Resources/WebLibraries/three/addons/postprocessing/FXAAPass.js +40 -0
  204. package/Resources/WebLibraries/three/addons/postprocessing/FilmPass.js +113 -0
  205. package/Resources/WebLibraries/three/addons/postprocessing/GTAOPass.js +735 -0
  206. package/Resources/WebLibraries/three/addons/postprocessing/GlitchPass.js +177 -0
  207. package/Resources/WebLibraries/three/addons/postprocessing/HalftonePass.js +134 -0
  208. package/Resources/WebLibraries/three/addons/postprocessing/LUTPass.js +138 -0
  209. package/Resources/WebLibraries/three/addons/postprocessing/MaskPass.js +195 -0
  210. package/Resources/WebLibraries/three/addons/postprocessing/OutlinePass.js +776 -0
  211. package/Resources/WebLibraries/three/addons/postprocessing/OutputPass.js +148 -0
  212. package/Resources/WebLibraries/three/addons/postprocessing/Pass.js +191 -0
  213. package/Resources/WebLibraries/three/addons/postprocessing/RenderPass.js +193 -0
  214. package/Resources/WebLibraries/three/addons/postprocessing/RenderPixelatedPass.js +314 -0
  215. package/Resources/WebLibraries/three/addons/postprocessing/RenderTransitionPass.js +267 -0
  216. package/Resources/WebLibraries/three/addons/postprocessing/SAOPass.js +407 -0
  217. package/Resources/WebLibraries/three/addons/postprocessing/SMAAPass.js +230 -0
  218. package/Resources/WebLibraries/three/addons/postprocessing/SSAARenderPass.js +313 -0
  219. package/Resources/WebLibraries/three/addons/postprocessing/SSAOPass.js +527 -0
  220. package/Resources/WebLibraries/three/addons/postprocessing/SSRPass.js +858 -0
  221. package/Resources/WebLibraries/three/addons/postprocessing/SavePass.js +132 -0
  222. package/Resources/WebLibraries/three/addons/postprocessing/ShaderPass.js +135 -0
  223. package/Resources/WebLibraries/three/addons/postprocessing/TAARenderPass.js +243 -0
  224. package/Resources/WebLibraries/three/addons/postprocessing/TexturePass.js +131 -0
  225. package/Resources/WebLibraries/three/addons/postprocessing/UnrealBloomPass.js +541 -0
  226. package/Resources/WebLibraries/three/addons/shaders/ACESFilmicToneMappingShader.js +96 -0
  227. package/Resources/WebLibraries/three/addons/shaders/AfterimageShader.js +63 -0
  228. package/Resources/WebLibraries/three/addons/shaders/BasicShader.js +36 -0
  229. package/Resources/WebLibraries/three/addons/shaders/BleachBypassShader.js +68 -0
  230. package/Resources/WebLibraries/three/addons/shaders/BlendShader.js +56 -0
  231. package/Resources/WebLibraries/three/addons/shaders/BokehShader.js +151 -0
  232. package/Resources/WebLibraries/three/addons/shaders/BokehShader2.js +404 -0
  233. package/Resources/WebLibraries/three/addons/shaders/BrightnessContrastShader.js +62 -0
  234. package/Resources/WebLibraries/three/addons/shaders/ColorCorrectionShader.js +59 -0
  235. package/Resources/WebLibraries/three/addons/shaders/ColorifyShader.js +57 -0
  236. package/Resources/WebLibraries/three/addons/shaders/ConvolutionShader.js +74 -0
  237. package/Resources/WebLibraries/three/addons/shaders/CopyShader.js +52 -0
  238. package/Resources/WebLibraries/three/addons/shaders/DOFMipMapShader.js +63 -0
  239. package/Resources/WebLibraries/three/addons/shaders/DepthLimitedBlurShader.js +183 -0
  240. package/Resources/WebLibraries/three/addons/shaders/DigitalGlitch.js +104 -0
  241. package/Resources/WebLibraries/three/addons/shaders/DotScreenShader.js +75 -0
  242. package/Resources/WebLibraries/three/addons/shaders/ExposureShader.js +51 -0
  243. package/Resources/WebLibraries/three/addons/shaders/FXAAShader.js +298 -0
  244. package/Resources/WebLibraries/three/addons/shaders/FilmShader.js +73 -0
  245. package/Resources/WebLibraries/three/addons/shaders/FocusShader.js +94 -0
  246. package/Resources/WebLibraries/three/addons/shaders/FreiChenShader.js +103 -0
  247. package/Resources/WebLibraries/three/addons/shaders/GTAOShader.js +437 -0
  248. package/Resources/WebLibraries/three/addons/shaders/GammaCorrectionShader.js +52 -0
  249. package/Resources/WebLibraries/three/addons/shaders/HalftoneShader.js +332 -0
  250. package/Resources/WebLibraries/three/addons/shaders/HorizontalBlurShader.js +68 -0
  251. package/Resources/WebLibraries/three/addons/shaders/HorizontalTiltShiftShader.js +70 -0
  252. package/Resources/WebLibraries/three/addons/shaders/HueSaturationShader.js +74 -0
  253. package/Resources/WebLibraries/three/addons/shaders/KaleidoShader.js +65 -0
  254. package/Resources/WebLibraries/three/addons/shaders/LuminosityHighPassShader.js +68 -0
  255. package/Resources/WebLibraries/three/addons/shaders/LuminosityShader.js +54 -0
  256. package/Resources/WebLibraries/three/addons/shaders/MirrorShader.js +62 -0
  257. package/Resources/WebLibraries/three/addons/shaders/NormalMapShader.js +60 -0
  258. package/Resources/WebLibraries/three/addons/shaders/OutputShader.js +103 -0
  259. package/Resources/WebLibraries/three/addons/shaders/PoissonDenoiseShader.js +230 -0
  260. package/Resources/WebLibraries/three/addons/shaders/RGBShiftShader.js +61 -0
  261. package/Resources/WebLibraries/three/addons/shaders/SAOShader.js +201 -0
  262. package/Resources/WebLibraries/three/addons/shaders/SMAAShader.js +489 -0
  263. package/Resources/WebLibraries/three/addons/shaders/SSAOShader.js +331 -0
  264. package/Resources/WebLibraries/three/addons/shaders/SSRShader.js +396 -0
  265. package/Resources/WebLibraries/three/addons/shaders/SepiaShader.js +57 -0
  266. package/Resources/WebLibraries/three/addons/shaders/SobelOperatorShader.js +98 -0
  267. package/Resources/WebLibraries/three/addons/shaders/SubsurfaceScatteringShader.js +95 -0
  268. package/Resources/WebLibraries/three/addons/shaders/TechnicolorShader.js +51 -0
  269. package/Resources/WebLibraries/three/addons/shaders/ToonShader.js +349 -0
  270. package/Resources/WebLibraries/three/addons/shaders/TriangleBlurShader.js +79 -0
  271. package/Resources/WebLibraries/three/addons/shaders/UnpackDepthRGBAShader.js +60 -0
  272. package/Resources/WebLibraries/three/addons/shaders/VelocityShader.js +137 -0
  273. package/Resources/WebLibraries/three/addons/shaders/VerticalBlurShader.js +66 -0
  274. package/Resources/WebLibraries/three/addons/shaders/VerticalTiltShiftShader.js +70 -0
  275. package/Resources/WebLibraries/three/addons/shaders/VignetteShader.js +56 -0
  276. package/Resources/WebLibraries/three/addons/shaders/VolumeShader.js +285 -0
  277. package/Resources/WebLibraries/three/addons/shaders/WaterRefractionShader.js +106 -0
  278. package/Resources/WebLibraries/three/addons/textures/FlakesTexture.js +54 -0
  279. package/Resources/WebLibraries/three/addons/tsl/WebGLNodesHandler.js +607 -0
  280. package/Resources/WebLibraries/three/addons/tsl/display/AfterImageNode.js +256 -0
  281. package/Resources/WebLibraries/three/addons/tsl/display/AnaglyphPassNode.js +550 -0
  282. package/Resources/WebLibraries/three/addons/tsl/display/BilateralBlurNode.js +377 -0
  283. package/Resources/WebLibraries/three/addons/tsl/display/BleachBypass.js +33 -0
  284. package/Resources/WebLibraries/three/addons/tsl/display/BloomNode.js +599 -0
  285. package/Resources/WebLibraries/three/addons/tsl/display/CRT.js +150 -0
  286. package/Resources/WebLibraries/three/addons/tsl/display/ChromaticAberrationNode.js +163 -0
  287. package/Resources/WebLibraries/three/addons/tsl/display/DenoiseNode.js +354 -0
  288. package/Resources/WebLibraries/three/addons/tsl/display/DepthOfFieldNode.js +572 -0
  289. package/Resources/WebLibraries/three/addons/tsl/display/DotScreenNode.js +104 -0
  290. package/Resources/WebLibraries/three/addons/tsl/display/FSR1Node.js +481 -0
  291. package/Resources/WebLibraries/three/addons/tsl/display/FXAANode.js +357 -0
  292. package/Resources/WebLibraries/three/addons/tsl/display/FilmNode.js +101 -0
  293. package/Resources/WebLibraries/three/addons/tsl/display/GTAONode.js +727 -0
  294. package/Resources/WebLibraries/three/addons/tsl/display/GaussianBlurNode.js +412 -0
  295. package/Resources/WebLibraries/three/addons/tsl/display/GodraysNode.js +604 -0
  296. package/Resources/WebLibraries/three/addons/tsl/display/ImportanceSampledEnvironment.js +564 -0
  297. package/Resources/WebLibraries/three/addons/tsl/display/LensflareNode.js +282 -0
  298. package/Resources/WebLibraries/three/addons/tsl/display/Lut3DNode.js +109 -0
  299. package/Resources/WebLibraries/three/addons/tsl/display/MotionBlur.js +33 -0
  300. package/Resources/WebLibraries/three/addons/tsl/display/OITPassNode.js +341 -0
  301. package/Resources/WebLibraries/three/addons/tsl/display/OutlineNode.js +916 -0
  302. package/Resources/WebLibraries/three/addons/tsl/display/ParallaxBarrierPassNode.js +90 -0
  303. package/Resources/WebLibraries/three/addons/tsl/display/PixelationPassNode.js +227 -0
  304. package/Resources/WebLibraries/three/addons/tsl/display/RGBShiftNode.js +96 -0
  305. package/Resources/WebLibraries/three/addons/tsl/display/RecurrentDenoiseNode.js +812 -0
  306. package/Resources/WebLibraries/three/addons/tsl/display/RetroPassNode.js +263 -0
  307. package/Resources/WebLibraries/three/addons/tsl/display/SMAANode.js +729 -0
  308. package/Resources/WebLibraries/three/addons/tsl/display/SSAAPassNode.js +344 -0
  309. package/Resources/WebLibraries/three/addons/tsl/display/SSAONode.js +422 -0
  310. package/Resources/WebLibraries/three/addons/tsl/display/SSGINode.js +698 -0
  311. package/Resources/WebLibraries/three/addons/tsl/display/SSRNode.js +1430 -0
  312. package/Resources/WebLibraries/three/addons/tsl/display/SSSNode.js +479 -0
  313. package/Resources/WebLibraries/three/addons/tsl/display/Sepia.js +24 -0
  314. package/Resources/WebLibraries/three/addons/tsl/display/Shape.js +29 -0
  315. package/Resources/WebLibraries/three/addons/tsl/display/SharpenNode.js +284 -0
  316. package/Resources/WebLibraries/three/addons/tsl/display/SobelOperatorNode.js +168 -0
  317. package/Resources/WebLibraries/three/addons/tsl/display/StereoCompositePassNode.js +190 -0
  318. package/Resources/WebLibraries/three/addons/tsl/display/StereoPassNode.js +117 -0
  319. package/Resources/WebLibraries/three/addons/tsl/display/TAAUNode.js +700 -0
  320. package/Resources/WebLibraries/three/addons/tsl/display/TRAANode.js +609 -0
  321. package/Resources/WebLibraries/three/addons/tsl/display/TemporalReprojectNode.js +1024 -0
  322. package/Resources/WebLibraries/three/addons/tsl/display/TransitionNode.js +141 -0
  323. package/Resources/WebLibraries/three/addons/tsl/display/boxBlur.js +65 -0
  324. package/Resources/WebLibraries/three/addons/tsl/display/depthAwareBlend.js +80 -0
  325. package/Resources/WebLibraries/three/addons/tsl/display/depthAwareBlur.js +63 -0
  326. package/Resources/WebLibraries/three/addons/tsl/display/hashBlur.js +55 -0
  327. package/Resources/WebLibraries/three/addons/tsl/display/lensDirt.js +30 -0
  328. package/Resources/WebLibraries/three/addons/tsl/display/radialBlur.js +68 -0
  329. package/Resources/WebLibraries/three/addons/tsl/lighting/ClusteredLightsNode.js +994 -0
  330. package/Resources/WebLibraries/three/addons/tsl/lighting/DynamicLightsNode.js +201 -0
  331. package/Resources/WebLibraries/three/addons/tsl/lighting/LightProbeGridNode.js +183 -0
  332. package/Resources/WebLibraries/three/addons/tsl/lighting/data/AmbientLightDataNode.js +67 -0
  333. package/Resources/WebLibraries/three/addons/tsl/lighting/data/DirectionalLightDataNode.js +117 -0
  334. package/Resources/WebLibraries/three/addons/tsl/lighting/data/HemisphereLightDataNode.js +105 -0
  335. package/Resources/WebLibraries/three/addons/tsl/lighting/data/PointLightDataNode.js +140 -0
  336. package/Resources/WebLibraries/three/addons/tsl/lighting/data/SpotLightDataNode.js +167 -0
  337. package/Resources/WebLibraries/three/addons/tsl/math/Bayer.js +84 -0
  338. package/Resources/WebLibraries/three/addons/tsl/math/curlNoise.js +107 -0
  339. package/Resources/WebLibraries/three/addons/tsl/math/voronoiNoise.js +112 -0
  340. package/Resources/WebLibraries/three/addons/tsl/shadows/TileShadowNode.js +542 -0
  341. package/Resources/WebLibraries/three/addons/tsl/shadows/TileShadowNodeHelper.js +212 -0
  342. package/Resources/WebLibraries/three/addons/tsl/utils/GroundedSkybox.js +62 -0
  343. package/Resources/WebLibraries/three/addons/tsl/utils/RNoise.js +51 -0
  344. package/Resources/WebLibraries/three/addons/tsl/utils/Raymarching.js +70 -0
  345. package/Resources/WebLibraries/three/addons/tsl/utils/SoftParticles.js +53 -0
  346. package/Resources/WebLibraries/three/addons/tsl/utils/SpecularHelpers.js +302 -0
  347. package/Resources/WebLibraries/three/addons/tsl/utils/TAAUtils.js +184 -0
  348. package/Resources/WebLibraries/three/addons/utils/BufferGeometryUtils.js +1523 -0
  349. package/Resources/WebLibraries/three/addons/utils/CameraUtils.js +82 -0
  350. package/Resources/WebLibraries/three/addons/utils/ColorUtils.js +76 -0
  351. package/Resources/WebLibraries/three/addons/utils/GaussianSplatUtils.js +229 -0
  352. package/Resources/WebLibraries/three/addons/utils/GeometryCompressionUtils.js +547 -0
  353. package/Resources/WebLibraries/three/addons/utils/GeometryUtils.js +226 -0
  354. package/Resources/WebLibraries/three/addons/utils/LDrawUtils.js +211 -0
  355. package/Resources/WebLibraries/three/addons/utils/SceneOptimizer.js +459 -0
  356. package/Resources/WebLibraries/three/addons/utils/SceneUtils.js +363 -0
  357. package/Resources/WebLibraries/three/addons/utils/ShadowMapViewer.js +244 -0
  358. package/Resources/WebLibraries/three/addons/utils/ShadowMapViewerGPU.js +233 -0
  359. package/Resources/WebLibraries/three/addons/utils/SkeletonUtils.js +496 -0
  360. package/Resources/WebLibraries/three/addons/utils/SortUtils.js +175 -0
  361. package/Resources/WebLibraries/three/addons/utils/UVsDebug.js +173 -0
  362. package/Resources/WebLibraries/three/addons/utils/WebGLTextureUtils.js +115 -0
  363. package/Resources/WebLibraries/three/addons/utils/WebGPUTextureUtils.js +81 -0
  364. package/Resources/WebLibraries/three/addons/utils/WorkerPool.js +167 -0
  365. package/Resources/WebLibraries/three/addons/utils/unwrapUVs.js +865 -0
  366. package/Resources/WebLibraries/three/three.core.js +61162 -0
  367. package/Resources/WebLibraries/three/three.module.js +19537 -0
  368. package/Resources/WebLibraries/three/three.tsl.js +41903 -0
  369. package/Resources/WebLibraries/three/three.webgpu.js +53714 -0
  370. package/Resources/share-rules.json +64 -0
  371. package/Resources/skills/2d-game/SKILL.md +305 -0
  372. package/Resources/skills/3d-game/SKILL.md +274 -0
  373. package/Resources/skills/accounts/SKILL.md +41 -0
  374. package/Resources/skills/android-design/SKILL.md +159 -0
  375. package/Resources/skills/app-ai/SKILL.md +154 -0
  376. package/Resources/skills/app-intents/SKILL.md +31 -0
  377. package/Resources/skills/app-kinds/SKILL.md +122 -0
  378. package/Resources/skills/apple-watch/SKILL.md +43 -0
  379. package/Resources/skills/assets/SKILL.md +183 -0
  380. package/Resources/skills/building-blocks/SKILL.md +97 -0
  381. package/Resources/skills/device-control/SKILL.md +56 -0
  382. package/Resources/skills/device-integrations/SKILL.md +278 -0
  383. package/Resources/skills/finder-files/SKILL.md +19 -0
  384. package/Resources/skills/game/SKILL.md +416 -0
  385. package/Resources/skills/game-3d/SKILL.md +12 -0
  386. package/Resources/skills/game-art/SKILL.md +11 -0
  387. package/Resources/skills/game-feel/SKILL.md +13 -0
  388. package/Resources/skills/game-levels/SKILL.md +12 -0
  389. package/Resources/skills/game-live/SKILL.md +12 -0
  390. package/Resources/skills/game-physics/SKILL.md +13 -0
  391. package/Resources/skills/game-playtest/SKILL.md +26 -0
  392. package/Resources/skills/game-ui/SKILL.md +278 -0
  393. package/Resources/skills/github-projects/SKILL.md +62 -0
  394. package/Resources/skills/icloud-sync/SKILL.md +30 -0
  395. package/Resources/skills/iphone-hardware/SKILL.md +57 -0
  396. package/Resources/skills/iphone-widgets/SKILL.md +53 -0
  397. package/Resources/skills/lg-developer-mode/SKILL.md +152 -0
  398. package/Resources/skills/mac-widgets/SKILL.md +60 -0
  399. package/Resources/skills/maps/SKILL.md +8 -0
  400. package/Resources/skills/menu-bar/SKILL.md +36 -0
  401. package/Resources/skills/more-apps/SKILL.md +53 -0
  402. package/Resources/skills/phone-controllers/SKILL.md +79 -0
  403. package/Resources/skills/phone-pages/SKILL.md +173 -0
  404. package/Resources/skills/roku-developer-mode/SKILL.md +106 -0
  405. package/Resources/skills/scene-3d/SKILL.md +27 -0
  406. package/Resources/skills/scripting/SKILL.md +17 -0
  407. package/Resources/skills/share-extension/SKILL.md +22 -0
  408. package/Resources/skills/tv-design/SKILL.md +72 -0
  409. package/Resources/skills/web-app/SKILL.md +170 -0
  410. package/Resources/skills/web-game/SKILL.md +95 -0
  411. package/Resources/skills/web-or-native/SKILL.md +108 -0
  412. package/Resources/skills/wish-links/SKILL.md +156 -0
  413. package/THIRD_PARTY_NOTICES.md +170 -0
  414. package/cli/ai.mjs +237 -0
  415. package/cli/android.mjs +941 -0
  416. package/cli/app-ai.mjs +473 -0
  417. package/cli/browser.mjs +284 -0
  418. package/cli/calls.mjs +594 -0
  419. package/cli/dev.mjs +820 -0
  420. package/cli/devices.mjs +984 -0
  421. package/cli/lamp.mjs +1326 -0
  422. package/cli/lampapp.mjs +332 -0
  423. package/cli/lamps/android-host/LampPageGateway.kt +345 -0
  424. package/cli/lamps/android-host/app/build.gradle.kts +40 -0
  425. package/cli/lamps/android-host/build.gradle.kts +4 -0
  426. package/cli/lamps/android-host/game/AndroidManifest.xml +33 -0
  427. package/cli/lamps/android-host/game/MainActivity.kt +173 -0
  428. package/cli/lamps/android-host/gradle/libs.versions.toml +39 -0
  429. package/cli/lamps/android-host/gradle.properties +8 -0
  430. package/cli/lamps/android-host/page/AndroidManifest.xml +35 -0
  431. package/cli/lamps/android-host/page/MainActivity.kt +193 -0
  432. package/cli/lamps/android-host/settings.gradle.kts +30 -0
  433. package/cli/lamps/android-host/tools.json +43 -0
  434. package/cli/lamps/lamp-controllers.js +2 -0
  435. package/cli/lamps/lamp-for-games.js +6922 -0
  436. package/cli/lamps/lamp.js +7082 -0
  437. package/cli/lamps/mac-starter/.lamp/meta.json +1 -0
  438. package/cli/lamps/mac-starter/APP.md +12 -0
  439. package/cli/lamps/mac-starter/Package.swift +8 -0
  440. package/cli/lamps/mac-starter/Sources/App.swift +11 -0
  441. package/cli/lamps/mac-starter/Sources/ContentView.swift +17 -0
  442. package/cli/lamps/mac-starter/Sources/LampSupport.swift +18215 -0
  443. package/cli/lamps/mac-starter/build.sh +336 -0
  444. package/cli/lamps/mac-starter/gitignore +3 -0
  445. package/cli/lamps/mac-starter/lamp-starter.json +6 -0
  446. package/cli/lamps/web-starter/APP.md +8 -0
  447. package/cli/lamps/web-starter/app.js +1 -0
  448. package/cli/lamps/web-starter/index.html +17 -0
  449. package/cli/lamps/web-starter/lamp-starter.json +5 -0
  450. package/cli/lamps/web-starter/lamp.js +7082 -0
  451. package/cli/lamps/web-starter/style.css +25 -0
  452. package/cli/link.mjs +202 -0
  453. package/cli/local-ai.mjs +193 -0
  454. package/cli/mac.mjs +621 -0
  455. package/cli/mdns.mjs +205 -0
  456. package/cli/msix.mjs +413 -0
  457. package/cli/network.mjs +209 -0
  458. package/cli/openrouter.mjs +133 -0
  459. package/cli/outside.mjs +203 -0
  460. package/cli/page.js +317 -0
  461. package/cli/place.mjs +298 -0
  462. package/cli/png.mjs +184 -0
  463. package/cli/share.mjs +270 -0
  464. package/cli/skill/SKILL.md +280 -0
  465. package/cli/skills.mjs +71 -0
  466. package/cli/state.mjs +176 -0
  467. package/cli/update.mjs +162 -0
  468. package/package.json +20 -4
  469. package/site/lib/quota.js +59 -0
  470. package/site/lib/shared-wishes.js +1727 -0
@@ -0,0 +1,689 @@
1
+ import {
2
+ BufferAttribute,
3
+ BufferGeometry,
4
+ Matrix4,
5
+ Vector3,
6
+ Vector4
7
+ } from 'three';
8
+
9
+ /**
10
+ * Tessellates the famous Utah teapot database by Martin Newell into triangles.
11
+ *
12
+ * The teapot should normally be rendered as a double sided object, since for some
13
+ * patches both sides can be seen, e.g., the gap around the lid and inside the spout.
14
+ *
15
+ * Segments 'n' determines the number of triangles output. Total triangles = 32*2*n*n - 8*n
16
+ * (degenerates at the top and bottom cusps are deleted).
17
+ *
18
+ * Code based on [SPD software](http://tog.acm.org/resources/SPD/)
19
+ * Created for the Udacity course [Interactive Rendering](http://bit.ly/ericity)
20
+ *
21
+ * ```js
22
+ * const geometry = new TeapotGeometry( 50, 18 );
23
+ * const material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );
24
+ * const teapot = new THREE.Mesh( geometry, material );
25
+ * scene.add( teapot );
26
+ * ```
27
+ *
28
+ * @augments BufferGeometry
29
+ * @three_import import { TeapotGeometry } from 'three/addons/geometries/TeapotGeometry.js';
30
+ */
31
+ class TeapotGeometry extends BufferGeometry {
32
+
33
+ /**
34
+ * Constructs a new teapot geometry.
35
+ *
36
+ * @param {number} [size=50] - Relative scale of the teapot.
37
+ * @param {number} [segments=10] - Number of line segments to subdivide each patch edge.
38
+ * @param {boolean} [bottom=true] - Whether the bottom of the teapot is generated or not.
39
+ * @param {boolean} [lid=true] - Whether the lid is generated or not.
40
+ * @param {boolean} [body=true] - Whether the body is generated or not.
41
+ * @param {boolean} [fitLid=true] - Whether the lid is slightly stretched to prevent gaps between the body and lid or not.
42
+ * @param {boolean} [blinn=true] - Whether the teapot is scaled vertically for better aesthetics or not.
43
+ */
44
+ constructor( size = 50, segments = 10, bottom = true, lid = true, body = true, fitLid = true, blinn = true ) {
45
+
46
+ // 32 * 4 * 4 Bezier spline patches
47
+ const teapotPatches = [
48
+ /*rim*/
49
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
50
+ 3, 16, 17, 18, 7, 19, 20, 21, 11, 22, 23, 24, 15, 25, 26, 27,
51
+ 18, 28, 29, 30, 21, 31, 32, 33, 24, 34, 35, 36, 27, 37, 38, 39,
52
+ 30, 40, 41, 0, 33, 42, 43, 4, 36, 44, 45, 8, 39, 46, 47, 12,
53
+ /*body*/
54
+ 12, 13, 14, 15, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
55
+ 15, 25, 26, 27, 51, 60, 61, 62, 55, 63, 64, 65, 59, 66, 67, 68,
56
+ 27, 37, 38, 39, 62, 69, 70, 71, 65, 72, 73, 74, 68, 75, 76, 77,
57
+ 39, 46, 47, 12, 71, 78, 79, 48, 74, 80, 81, 52, 77, 82, 83, 56,
58
+ 56, 57, 58, 59, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
59
+ 59, 66, 67, 68, 87, 96, 97, 98, 91, 99, 100, 101, 95, 102, 103, 104,
60
+ 68, 75, 76, 77, 98, 105, 106, 107, 101, 108, 109, 110, 104, 111, 112, 113,
61
+ 77, 82, 83, 56, 107, 114, 115, 84, 110, 116, 117, 88, 113, 118, 119, 92,
62
+ /*handle*/
63
+ 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
64
+ 123, 136, 137, 120, 127, 138, 139, 124, 131, 140, 141, 128, 135, 142, 143, 132,
65
+ 132, 133, 134, 135, 144, 145, 146, 147, 148, 149, 150, 151, 68, 152, 153, 154,
66
+ 135, 142, 143, 132, 147, 155, 156, 144, 151, 157, 158, 148, 154, 159, 160, 68,
67
+ /*spout*/
68
+ 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
69
+ 164, 177, 178, 161, 168, 179, 180, 165, 172, 181, 182, 169, 176, 183, 184, 173,
70
+ 173, 174, 175, 176, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
71
+ 176, 183, 184, 173, 188, 197, 198, 185, 192, 199, 200, 189, 196, 201, 202, 193,
72
+ /*lid*/
73
+ 203, 203, 203, 203, 204, 205, 206, 207, 208, 208, 208, 208, 209, 210, 211, 212,
74
+ 203, 203, 203, 203, 207, 213, 214, 215, 208, 208, 208, 208, 212, 216, 217, 218,
75
+ 203, 203, 203, 203, 215, 219, 220, 221, 208, 208, 208, 208, 218, 222, 223, 224,
76
+ 203, 203, 203, 203, 221, 225, 226, 204, 208, 208, 208, 208, 224, 227, 228, 209,
77
+ 209, 210, 211, 212, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
78
+ 212, 216, 217, 218, 232, 241, 242, 243, 236, 244, 245, 246, 240, 247, 248, 249,
79
+ 218, 222, 223, 224, 243, 250, 251, 252, 246, 253, 254, 255, 249, 256, 257, 258,
80
+ 224, 227, 228, 209, 252, 259, 260, 229, 255, 261, 262, 233, 258, 263, 264, 237,
81
+ /*bottom*/
82
+ 265, 265, 265, 265, 266, 267, 268, 269, 270, 271, 272, 273, 92, 119, 118, 113,
83
+ 265, 265, 265, 265, 269, 274, 275, 276, 273, 277, 278, 279, 113, 112, 111, 104,
84
+ 265, 265, 265, 265, 276, 280, 281, 282, 279, 283, 284, 285, 104, 103, 102, 95,
85
+ 265, 265, 265, 265, 282, 286, 287, 266, 285, 288, 289, 270, 95, 94, 93, 92
86
+ ];
87
+
88
+ const teapotVertices = [
89
+ 1.4, 0, 2.4,
90
+ 1.4, - 0.784, 2.4,
91
+ 0.784, - 1.4, 2.4,
92
+ 0, - 1.4, 2.4,
93
+ 1.3375, 0, 2.53125,
94
+ 1.3375, - 0.749, 2.53125,
95
+ 0.749, - 1.3375, 2.53125,
96
+ 0, - 1.3375, 2.53125,
97
+ 1.4375, 0, 2.53125,
98
+ 1.4375, - 0.805, 2.53125,
99
+ 0.805, - 1.4375, 2.53125,
100
+ 0, - 1.4375, 2.53125,
101
+ 1.5, 0, 2.4,
102
+ 1.5, - 0.84, 2.4,
103
+ 0.84, - 1.5, 2.4,
104
+ 0, - 1.5, 2.4,
105
+ - 0.784, - 1.4, 2.4,
106
+ - 1.4, - 0.784, 2.4,
107
+ - 1.4, 0, 2.4,
108
+ - 0.749, - 1.3375, 2.53125,
109
+ - 1.3375, - 0.749, 2.53125,
110
+ - 1.3375, 0, 2.53125,
111
+ - 0.805, - 1.4375, 2.53125,
112
+ - 1.4375, - 0.805, 2.53125,
113
+ - 1.4375, 0, 2.53125,
114
+ - 0.84, - 1.5, 2.4,
115
+ - 1.5, - 0.84, 2.4,
116
+ - 1.5, 0, 2.4,
117
+ - 1.4, 0.784, 2.4,
118
+ - 0.784, 1.4, 2.4,
119
+ 0, 1.4, 2.4,
120
+ - 1.3375, 0.749, 2.53125,
121
+ - 0.749, 1.3375, 2.53125,
122
+ 0, 1.3375, 2.53125,
123
+ - 1.4375, 0.805, 2.53125,
124
+ - 0.805, 1.4375, 2.53125,
125
+ 0, 1.4375, 2.53125,
126
+ - 1.5, 0.84, 2.4,
127
+ - 0.84, 1.5, 2.4,
128
+ 0, 1.5, 2.4,
129
+ 0.784, 1.4, 2.4,
130
+ 1.4, 0.784, 2.4,
131
+ 0.749, 1.3375, 2.53125,
132
+ 1.3375, 0.749, 2.53125,
133
+ 0.805, 1.4375, 2.53125,
134
+ 1.4375, 0.805, 2.53125,
135
+ 0.84, 1.5, 2.4,
136
+ 1.5, 0.84, 2.4,
137
+ 1.75, 0, 1.875,
138
+ 1.75, - 0.98, 1.875,
139
+ 0.98, - 1.75, 1.875,
140
+ 0, - 1.75, 1.875,
141
+ 2, 0, 1.35,
142
+ 2, - 1.12, 1.35,
143
+ 1.12, - 2, 1.35,
144
+ 0, - 2, 1.35,
145
+ 2, 0, 0.9,
146
+ 2, - 1.12, 0.9,
147
+ 1.12, - 2, 0.9,
148
+ 0, - 2, 0.9,
149
+ - 0.98, - 1.75, 1.875,
150
+ - 1.75, - 0.98, 1.875,
151
+ - 1.75, 0, 1.875,
152
+ - 1.12, - 2, 1.35,
153
+ - 2, - 1.12, 1.35,
154
+ - 2, 0, 1.35,
155
+ - 1.12, - 2, 0.9,
156
+ - 2, - 1.12, 0.9,
157
+ - 2, 0, 0.9,
158
+ - 1.75, 0.98, 1.875,
159
+ - 0.98, 1.75, 1.875,
160
+ 0, 1.75, 1.875,
161
+ - 2, 1.12, 1.35,
162
+ - 1.12, 2, 1.35,
163
+ 0, 2, 1.35,
164
+ - 2, 1.12, 0.9,
165
+ - 1.12, 2, 0.9,
166
+ 0, 2, 0.9,
167
+ 0.98, 1.75, 1.875,
168
+ 1.75, 0.98, 1.875,
169
+ 1.12, 2, 1.35,
170
+ 2, 1.12, 1.35,
171
+ 1.12, 2, 0.9,
172
+ 2, 1.12, 0.9,
173
+ 2, 0, 0.45,
174
+ 2, - 1.12, 0.45,
175
+ 1.12, - 2, 0.45,
176
+ 0, - 2, 0.45,
177
+ 1.5, 0, 0.225,
178
+ 1.5, - 0.84, 0.225,
179
+ 0.84, - 1.5, 0.225,
180
+ 0, - 1.5, 0.225,
181
+ 1.5, 0, 0.15,
182
+ 1.5, - 0.84, 0.15,
183
+ 0.84, - 1.5, 0.15,
184
+ 0, - 1.5, 0.15,
185
+ - 1.12, - 2, 0.45,
186
+ - 2, - 1.12, 0.45,
187
+ - 2, 0, 0.45,
188
+ - 0.84, - 1.5, 0.225,
189
+ - 1.5, - 0.84, 0.225,
190
+ - 1.5, 0, 0.225,
191
+ - 0.84, - 1.5, 0.15,
192
+ - 1.5, - 0.84, 0.15,
193
+ - 1.5, 0, 0.15,
194
+ - 2, 1.12, 0.45,
195
+ - 1.12, 2, 0.45,
196
+ 0, 2, 0.45,
197
+ - 1.5, 0.84, 0.225,
198
+ - 0.84, 1.5, 0.225,
199
+ 0, 1.5, 0.225,
200
+ - 1.5, 0.84, 0.15,
201
+ - 0.84, 1.5, 0.15,
202
+ 0, 1.5, 0.15,
203
+ 1.12, 2, 0.45,
204
+ 2, 1.12, 0.45,
205
+ 0.84, 1.5, 0.225,
206
+ 1.5, 0.84, 0.225,
207
+ 0.84, 1.5, 0.15,
208
+ 1.5, 0.84, 0.15,
209
+ - 1.6, 0, 2.025,
210
+ - 1.6, - 0.3, 2.025,
211
+ - 1.5, - 0.3, 2.25,
212
+ - 1.5, 0, 2.25,
213
+ - 2.3, 0, 2.025,
214
+ - 2.3, - 0.3, 2.025,
215
+ - 2.5, - 0.3, 2.25,
216
+ - 2.5, 0, 2.25,
217
+ - 2.7, 0, 2.025,
218
+ - 2.7, - 0.3, 2.025,
219
+ - 3, - 0.3, 2.25,
220
+ - 3, 0, 2.25,
221
+ - 2.7, 0, 1.8,
222
+ - 2.7, - 0.3, 1.8,
223
+ - 3, - 0.3, 1.8,
224
+ - 3, 0, 1.8,
225
+ - 1.5, 0.3, 2.25,
226
+ - 1.6, 0.3, 2.025,
227
+ - 2.5, 0.3, 2.25,
228
+ - 2.3, 0.3, 2.025,
229
+ - 3, 0.3, 2.25,
230
+ - 2.7, 0.3, 2.025,
231
+ - 3, 0.3, 1.8,
232
+ - 2.7, 0.3, 1.8,
233
+ - 2.7, 0, 1.575,
234
+ - 2.7, - 0.3, 1.575,
235
+ - 3, - 0.3, 1.35,
236
+ - 3, 0, 1.35,
237
+ - 2.5, 0, 1.125,
238
+ - 2.5, - 0.3, 1.125,
239
+ - 2.65, - 0.3, 0.9375,
240
+ - 2.65, 0, 0.9375,
241
+ - 2, - 0.3, 0.9,
242
+ - 1.9, - 0.3, 0.6,
243
+ - 1.9, 0, 0.6,
244
+ - 3, 0.3, 1.35,
245
+ - 2.7, 0.3, 1.575,
246
+ - 2.65, 0.3, 0.9375,
247
+ - 2.5, 0.3, 1.125,
248
+ - 1.9, 0.3, 0.6,
249
+ - 2, 0.3, 0.9,
250
+ 1.7, 0, 1.425,
251
+ 1.7, - 0.66, 1.425,
252
+ 1.7, - 0.66, 0.6,
253
+ 1.7, 0, 0.6,
254
+ 2.6, 0, 1.425,
255
+ 2.6, - 0.66, 1.425,
256
+ 3.1, - 0.66, 0.825,
257
+ 3.1, 0, 0.825,
258
+ 2.3, 0, 2.1,
259
+ 2.3, - 0.25, 2.1,
260
+ 2.4, - 0.25, 2.025,
261
+ 2.4, 0, 2.025,
262
+ 2.7, 0, 2.4,
263
+ 2.7, - 0.25, 2.4,
264
+ 3.3, - 0.25, 2.4,
265
+ 3.3, 0, 2.4,
266
+ 1.7, 0.66, 0.6,
267
+ 1.7, 0.66, 1.425,
268
+ 3.1, 0.66, 0.825,
269
+ 2.6, 0.66, 1.425,
270
+ 2.4, 0.25, 2.025,
271
+ 2.3, 0.25, 2.1,
272
+ 3.3, 0.25, 2.4,
273
+ 2.7, 0.25, 2.4,
274
+ 2.8, 0, 2.475,
275
+ 2.8, - 0.25, 2.475,
276
+ 3.525, - 0.25, 2.49375,
277
+ 3.525, 0, 2.49375,
278
+ 2.9, 0, 2.475,
279
+ 2.9, - 0.15, 2.475,
280
+ 3.45, - 0.15, 2.5125,
281
+ 3.45, 0, 2.5125,
282
+ 2.8, 0, 2.4,
283
+ 2.8, - 0.15, 2.4,
284
+ 3.2, - 0.15, 2.4,
285
+ 3.2, 0, 2.4,
286
+ 3.525, 0.25, 2.49375,
287
+ 2.8, 0.25, 2.475,
288
+ 3.45, 0.15, 2.5125,
289
+ 2.9, 0.15, 2.475,
290
+ 3.2, 0.15, 2.4,
291
+ 2.8, 0.15, 2.4,
292
+ 0, 0, 3.15,
293
+ 0.8, 0, 3.15,
294
+ 0.8, - 0.45, 3.15,
295
+ 0.45, - 0.8, 3.15,
296
+ 0, - 0.8, 3.15,
297
+ 0, 0, 2.85,
298
+ 0.2, 0, 2.7,
299
+ 0.2, - 0.112, 2.7,
300
+ 0.112, - 0.2, 2.7,
301
+ 0, - 0.2, 2.7,
302
+ - 0.45, - 0.8, 3.15,
303
+ - 0.8, - 0.45, 3.15,
304
+ - 0.8, 0, 3.15,
305
+ - 0.112, - 0.2, 2.7,
306
+ - 0.2, - 0.112, 2.7,
307
+ - 0.2, 0, 2.7,
308
+ - 0.8, 0.45, 3.15,
309
+ - 0.45, 0.8, 3.15,
310
+ 0, 0.8, 3.15,
311
+ - 0.2, 0.112, 2.7,
312
+ - 0.112, 0.2, 2.7,
313
+ 0, 0.2, 2.7,
314
+ 0.45, 0.8, 3.15,
315
+ 0.8, 0.45, 3.15,
316
+ 0.112, 0.2, 2.7,
317
+ 0.2, 0.112, 2.7,
318
+ 0.4, 0, 2.55,
319
+ 0.4, - 0.224, 2.55,
320
+ 0.224, - 0.4, 2.55,
321
+ 0, - 0.4, 2.55,
322
+ 1.3, 0, 2.55,
323
+ 1.3, - 0.728, 2.55,
324
+ 0.728, - 1.3, 2.55,
325
+ 0, - 1.3, 2.55,
326
+ 1.3, 0, 2.4,
327
+ 1.3, - 0.728, 2.4,
328
+ 0.728, - 1.3, 2.4,
329
+ 0, - 1.3, 2.4,
330
+ - 0.224, - 0.4, 2.55,
331
+ - 0.4, - 0.224, 2.55,
332
+ - 0.4, 0, 2.55,
333
+ - 0.728, - 1.3, 2.55,
334
+ - 1.3, - 0.728, 2.55,
335
+ - 1.3, 0, 2.55,
336
+ - 0.728, - 1.3, 2.4,
337
+ - 1.3, - 0.728, 2.4,
338
+ - 1.3, 0, 2.4,
339
+ - 0.4, 0.224, 2.55,
340
+ - 0.224, 0.4, 2.55,
341
+ 0, 0.4, 2.55,
342
+ - 1.3, 0.728, 2.55,
343
+ - 0.728, 1.3, 2.55,
344
+ 0, 1.3, 2.55,
345
+ - 1.3, 0.728, 2.4,
346
+ - 0.728, 1.3, 2.4,
347
+ 0, 1.3, 2.4,
348
+ 0.224, 0.4, 2.55,
349
+ 0.4, 0.224, 2.55,
350
+ 0.728, 1.3, 2.55,
351
+ 1.3, 0.728, 2.55,
352
+ 0.728, 1.3, 2.4,
353
+ 1.3, 0.728, 2.4,
354
+ 0, 0, 0,
355
+ 1.425, 0, 0,
356
+ 1.425, 0.798, 0,
357
+ 0.798, 1.425, 0,
358
+ 0, 1.425, 0,
359
+ 1.5, 0, 0.075,
360
+ 1.5, 0.84, 0.075,
361
+ 0.84, 1.5, 0.075,
362
+ 0, 1.5, 0.075,
363
+ - 0.798, 1.425, 0,
364
+ - 1.425, 0.798, 0,
365
+ - 1.425, 0, 0,
366
+ - 0.84, 1.5, 0.075,
367
+ - 1.5, 0.84, 0.075,
368
+ - 1.5, 0, 0.075,
369
+ - 1.425, - 0.798, 0,
370
+ - 0.798, - 1.425, 0,
371
+ 0, - 1.425, 0,
372
+ - 1.5, - 0.84, 0.075,
373
+ - 0.84, - 1.5, 0.075,
374
+ 0, - 1.5, 0.075,
375
+ 0.798, - 1.425, 0,
376
+ 1.425, - 0.798, 0,
377
+ 0.84, - 1.5, 0.075,
378
+ 1.5, - 0.84, 0.075
379
+ ];
380
+
381
+ super();
382
+
383
+ // number of segments per patch
384
+ segments = Math.max( 2, Math.floor( segments ) );
385
+
386
+ // Jim Blinn scaled the teapot down in size by about 1.3 for
387
+ // some rendering tests. He liked the new proportions that he kept
388
+ // the data in this form. The model was distributed with these new
389
+ // proportions and became the norm. Trivia: comparing images of the
390
+ // real teapot and the computer model, the ratio for the bowl of the
391
+ // real teapot is more like 1.25, but since 1.3 is the traditional
392
+ // value given, we use it here.
393
+ const blinnScale = 1.3;
394
+
395
+ // scale the size to be the real scaling factor
396
+ const maxHeight = 3.15 * ( blinn ? 1 : blinnScale );
397
+
398
+ const maxHeight2 = maxHeight / 2;
399
+ const trueSize = size / maxHeight2;
400
+
401
+ // Number of elements depends on what is needed. Subtract degenerate
402
+ // triangles at tip of bottom and lid out in advance.
403
+ let numTriangles = bottom ? ( 8 * segments - 4 ) * segments : 0;
404
+ numTriangles += lid ? ( 16 * segments - 4 ) * segments : 0;
405
+ numTriangles += body ? 40 * segments * segments : 0;
406
+
407
+ const indices = new Uint32Array( numTriangles * 3 );
408
+
409
+ let numVertices = bottom ? 4 : 0;
410
+ numVertices += lid ? 8 : 0;
411
+ numVertices += body ? 20 : 0;
412
+ numVertices *= ( segments + 1 ) * ( segments + 1 );
413
+
414
+ const vertices = new Float32Array( numVertices * 3 );
415
+ const normals = new Float32Array( numVertices * 3 );
416
+ const uvs = new Float32Array( numVertices * 2 );
417
+
418
+ // Bezier form
419
+ const ms = new Matrix4();
420
+ ms.set(
421
+ - 1.0, 3.0, - 3.0, 1.0,
422
+ 3.0, - 6.0, 3.0, 0.0,
423
+ - 3.0, 3.0, 0.0, 0.0,
424
+ 1.0, 0.0, 0.0, 0.0 );
425
+
426
+ const g = [];
427
+
428
+ const sp = [];
429
+ const tp = [];
430
+ const dsp = [];
431
+ const dtp = [];
432
+
433
+ // M * G * M matrix, sort of see
434
+ // http://www.cs.helsinki.fi/group/goa/mallinnus/curves/surfaces.html
435
+ const mgm = [];
436
+
437
+ const vert = [];
438
+ const sdir = [];
439
+ const tdir = [];
440
+
441
+ const norm = new Vector3();
442
+
443
+ let tcoord;
444
+
445
+ let sval;
446
+ let tval;
447
+ let p;
448
+ let dsval = 0;
449
+ let dtval = 0;
450
+
451
+ const normOut = new Vector3();
452
+
453
+ const gmx = new Matrix4();
454
+ const tmtx = new Matrix4();
455
+
456
+ const vsp = new Vector4();
457
+ const vtp = new Vector4();
458
+ const vdsp = new Vector4();
459
+ const vdtp = new Vector4();
460
+
461
+ const vsdir = new Vector3();
462
+ const vtdir = new Vector3();
463
+
464
+ const mst = ms.clone();
465
+ mst.transpose();
466
+
467
+ // internal function: test if triangle has any matching vertices;
468
+ // if so, don't save triangle, since it won't display anything.
469
+ const notDegenerate = ( vtx1, vtx2, vtx3 ) => // if any vertex matches, return false
470
+ ! ( ( ( vertices[ vtx1 * 3 ] === vertices[ vtx2 * 3 ] ) &&
471
+ ( vertices[ vtx1 * 3 + 1 ] === vertices[ vtx2 * 3 + 1 ] ) &&
472
+ ( vertices[ vtx1 * 3 + 2 ] === vertices[ vtx2 * 3 + 2 ] ) ) ||
473
+ ( ( vertices[ vtx1 * 3 ] === vertices[ vtx3 * 3 ] ) &&
474
+ ( vertices[ vtx1 * 3 + 1 ] === vertices[ vtx3 * 3 + 1 ] ) &&
475
+ ( vertices[ vtx1 * 3 + 2 ] === vertices[ vtx3 * 3 + 2 ] ) ) || ( vertices[ vtx2 * 3 ] === vertices[ vtx3 * 3 ] ) &&
476
+ ( vertices[ vtx2 * 3 + 1 ] === vertices[ vtx3 * 3 + 1 ] ) &&
477
+ ( vertices[ vtx2 * 3 + 2 ] === vertices[ vtx3 * 3 + 2 ] ) );
478
+
479
+
480
+ for ( let i = 0; i < 3; i ++ ) {
481
+
482
+ mgm[ i ] = new Matrix4();
483
+
484
+ }
485
+
486
+ const minPatches = body ? 0 : 20;
487
+ const maxPatches = bottom ? 32 : 28;
488
+
489
+ const vertPerRow = segments + 1;
490
+
491
+ let surfCount = 0;
492
+
493
+ let vertCount = 0;
494
+ let normCount = 0;
495
+ let uvCount = 0;
496
+
497
+ let indexCount = 0;
498
+
499
+ for ( let surf = minPatches; surf < maxPatches; surf ++ ) {
500
+
501
+ // lid is in the middle of the data, patches 20-27,
502
+ // so ignore it for this part of the loop if the lid is not desired
503
+ if ( lid || ( surf < 20 || surf >= 28 ) ) {
504
+
505
+ // get M * G * M matrix for x,y,z
506
+ for ( let i = 0; i < 3; i ++ ) {
507
+
508
+ // get control patches
509
+ for ( let r = 0; r < 4; r ++ ) {
510
+
511
+ for ( let c = 0; c < 4; c ++ ) {
512
+
513
+ // transposed
514
+ g[ c * 4 + r ] = teapotVertices[ teapotPatches[ surf * 16 + r * 4 + c ] * 3 + i ];
515
+
516
+ // is the lid to be made larger, and is this a point on the lid
517
+ // that is X or Y?
518
+ if ( fitLid && ( surf >= 20 && surf < 28 ) && ( i !== 2 ) ) {
519
+
520
+ // increase XY size by 7.7%, found empirically. I don't
521
+ // increase Z so that the teapot will continue to fit in the
522
+ // space -1 to 1 for Y (Y is up for the final model).
523
+ g[ c * 4 + r ] *= 1.077;
524
+
525
+ }
526
+
527
+ // Blinn "fixed" the teapot by dividing Z by blinnScale, and that's the
528
+ // data we now use. The original teapot is taller. Fix it:
529
+ if ( ! blinn && ( i === 2 ) ) {
530
+
531
+ g[ c * 4 + r ] *= blinnScale;
532
+
533
+ }
534
+
535
+ }
536
+
537
+ }
538
+
539
+ gmx.set( g[ 0 ], g[ 1 ], g[ 2 ], g[ 3 ], g[ 4 ], g[ 5 ], g[ 6 ], g[ 7 ], g[ 8 ], g[ 9 ], g[ 10 ], g[ 11 ], g[ 12 ], g[ 13 ], g[ 14 ], g[ 15 ] );
540
+
541
+ tmtx.multiplyMatrices( gmx, ms );
542
+ mgm[ i ].multiplyMatrices( mst, tmtx );
543
+
544
+ }
545
+
546
+ // step along, get points, and output
547
+ for ( let sstep = 0; sstep <= segments; sstep ++ ) {
548
+
549
+ const s = sstep / segments;
550
+
551
+ for ( let tstep = 0; tstep <= segments; tstep ++ ) {
552
+
553
+ const t = tstep / segments;
554
+
555
+ // point from basis
556
+ // get power vectors and their derivatives
557
+ for ( p = 4, sval = tval = 1.0; p --; ) {
558
+
559
+ sp[ p ] = sval;
560
+ tp[ p ] = tval;
561
+ sval *= s;
562
+ tval *= t;
563
+
564
+ if ( p === 3 ) {
565
+
566
+ dsp[ p ] = dtp[ p ] = 0.0;
567
+ dsval = dtval = 1.0;
568
+
569
+ } else {
570
+
571
+ dsp[ p ] = dsval * ( 3 - p );
572
+ dtp[ p ] = dtval * ( 3 - p );
573
+ dsval *= s;
574
+ dtval *= t;
575
+
576
+ }
577
+
578
+ }
579
+
580
+ vsp.fromArray( sp );
581
+ vtp.fromArray( tp );
582
+ vdsp.fromArray( dsp );
583
+ vdtp.fromArray( dtp );
584
+
585
+ // do for x,y,z
586
+ for ( let i = 0; i < 3; i ++ ) {
587
+
588
+ // multiply power vectors times matrix to get value
589
+ tcoord = vsp.clone();
590
+ tcoord.applyMatrix4( mgm[ i ] );
591
+ vert[ i ] = tcoord.dot( vtp );
592
+
593
+ // get s and t tangent vectors
594
+ tcoord = vdsp.clone();
595
+ tcoord.applyMatrix4( mgm[ i ] );
596
+ sdir[ i ] = tcoord.dot( vtp );
597
+
598
+ tcoord = vsp.clone();
599
+ tcoord.applyMatrix4( mgm[ i ] );
600
+ tdir[ i ] = tcoord.dot( vdtp );
601
+
602
+ }
603
+
604
+ // find normal
605
+ vsdir.fromArray( sdir );
606
+ vtdir.fromArray( tdir );
607
+ norm.crossVectors( vtdir, vsdir );
608
+ norm.normalize();
609
+
610
+ // if X and Z length is 0, at the cusp, so point the normal up or down, depending on patch number
611
+ if ( vert[ 0 ] === 0 && vert[ 1 ] === 0 ) {
612
+
613
+ // if above the middle of the teapot, normal points up, else down
614
+ normOut.set( 0, vert[ 2 ] > maxHeight2 ? 1 : - 1, 0 );
615
+
616
+ } else {
617
+
618
+ // standard output: rotate on X axis
619
+ normOut.set( norm.x, norm.z, - norm.y );
620
+
621
+ }
622
+
623
+ // store it all
624
+ vertices[ vertCount ++ ] = trueSize * vert[ 0 ];
625
+ vertices[ vertCount ++ ] = trueSize * ( vert[ 2 ] - maxHeight2 );
626
+ vertices[ vertCount ++ ] = - trueSize * vert[ 1 ];
627
+
628
+ normals[ normCount ++ ] = normOut.x;
629
+ normals[ normCount ++ ] = normOut.y;
630
+ normals[ normCount ++ ] = normOut.z;
631
+
632
+ uvs[ uvCount ++ ] = 1 - t;
633
+ uvs[ uvCount ++ ] = 1 - s;
634
+
635
+ }
636
+
637
+ }
638
+
639
+ // save the faces
640
+ for ( let sstep = 0; sstep < segments; sstep ++ ) {
641
+
642
+ for ( let tstep = 0; tstep < segments; tstep ++ ) {
643
+
644
+ const v1 = surfCount * vertPerRow * vertPerRow + sstep * vertPerRow + tstep;
645
+ const v2 = v1 + 1;
646
+ const v3 = v2 + vertPerRow;
647
+ const v4 = v1 + vertPerRow;
648
+
649
+ // Normals and UVs cannot be shared. Without clone(), you can see the consequences
650
+ // of sharing if you call geometry.applyMatrix4( matrix ).
651
+ if ( notDegenerate( v1, v2, v3 ) ) {
652
+
653
+ indices[ indexCount ++ ] = v1;
654
+ indices[ indexCount ++ ] = v2;
655
+ indices[ indexCount ++ ] = v3;
656
+
657
+ }
658
+
659
+ if ( notDegenerate( v1, v3, v4 ) ) {
660
+
661
+ indices[ indexCount ++ ] = v1;
662
+ indices[ indexCount ++ ] = v3;
663
+ indices[ indexCount ++ ] = v4;
664
+
665
+ }
666
+
667
+ }
668
+
669
+ }
670
+
671
+ // increment only if a surface was used
672
+ surfCount ++;
673
+
674
+ }
675
+
676
+ }
677
+
678
+ this.setIndex( new BufferAttribute( indices, 1 ) );
679
+ this.setAttribute( 'position', new BufferAttribute( vertices, 3 ) );
680
+ this.setAttribute( 'normal', new BufferAttribute( normals, 3 ) );
681
+ this.setAttribute( 'uv', new BufferAttribute( uvs, 2 ) );
682
+
683
+ this.computeBoundingSphere();
684
+
685
+ }
686
+
687
+ }
688
+
689
+ export { TeapotGeometry };