@babylonjs/core 5.0.0-alpha.61 → 5.0.0-alpha.65
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.
- package/Animations/animation.js +42 -2
- package/Animations/animation.js.map +1 -1
- package/Animations/animationGroup.d.ts +5 -1
- package/Animations/animationGroup.js +19 -1
- package/Animations/animationGroup.js.map +1 -1
- package/Audio/sound.js +15 -1
- package/Audio/sound.js.map +1 -1
- package/Behaviors/Cameras/autoRotationBehavior.d.ts +5 -0
- package/Behaviors/Cameras/autoRotationBehavior.js +7 -0
- package/Behaviors/Cameras/autoRotationBehavior.js.map +1 -1
- package/Behaviors/Meshes/followBehavior.js +1 -1
- package/Behaviors/Meshes/followBehavior.js.map +1 -1
- package/Behaviors/Meshes/handConstraintBehavior.js +16 -12
- package/Behaviors/Meshes/handConstraintBehavior.js.map +1 -1
- package/Cameras/VR/vrDeviceOrientationArcRotateCamera.js +1 -1
- package/Cameras/VR/vrDeviceOrientationArcRotateCamera.js.map +1 -1
- package/Cameras/VR/vrExperienceHelper.d.ts +1 -1
- package/Cameras/VR/vrExperienceHelper.js +1 -1
- package/Cameras/VR/vrExperienceHelper.js.map +1 -1
- package/Cameras/camera.js +2 -2
- package/Cameras/camera.js.map +1 -1
- package/DeviceInput/Implementations/{nativeDeviceInputWrapper.d.ts → nativeDeviceInputSystem.d.ts} +5 -21
- package/DeviceInput/Implementations/{nativeDeviceInputWrapper.js → nativeDeviceInputSystem.js} +19 -20
- package/DeviceInput/Implementations/nativeDeviceInputSystem.js.map +1 -0
- package/DeviceInput/Implementations/webDeviceInputSystem.d.ts +7 -20
- package/DeviceInput/Implementations/webDeviceInputSystem.js +79 -71
- package/DeviceInput/Implementations/webDeviceInputSystem.js.map +1 -1
- package/DeviceInput/InputDevices/deviceSourceManager.d.ts +3 -2
- package/DeviceInput/InputDevices/deviceSourceManager.js +5 -1
- package/DeviceInput/InputDevices/deviceSourceManager.js.map +1 -1
- package/DeviceInput/Interfaces/inputInterfaces.d.ts +6 -13
- package/DeviceInput/Interfaces/inputInterfaces.js.map +1 -1
- package/DeviceInput/deviceInputSystem.d.ts +49 -5
- package/DeviceInput/deviceInputSystem.js +62 -10
- package/DeviceInput/deviceInputSystem.js.map +1 -1
- package/DeviceInput/index.d.ts +1 -1
- package/DeviceInput/index.js +1 -1
- package/DeviceInput/index.js.map +1 -1
- package/Engines/Extensions/engine.dynamicTexture.d.ts +2 -1
- package/Engines/Extensions/engine.dynamicTexture.js +2 -1
- package/Engines/Extensions/engine.dynamicTexture.js.map +1 -1
- package/Engines/Extensions/engine.views.d.ts +1 -1
- package/Engines/Extensions/engine.views.js +1 -1
- package/Engines/Extensions/engine.views.js.map +1 -1
- package/Engines/Processors/iShaderProcessor.d.ts +1 -1
- package/Engines/Processors/iShaderProcessor.js.map +1 -1
- package/Engines/Processors/shaderProcessingOptions.d.ts +5 -0
- package/Engines/Processors/shaderProcessingOptions.js.map +1 -1
- package/Engines/Processors/shaderProcessor.js +8 -2
- package/Engines/Processors/shaderProcessor.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.dynamicTexture.js +3 -11
- package/Engines/WebGPU/Extensions/engine.dynamicTexture.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.multiRender.js +19 -9
- package/Engines/WebGPU/Extensions/engine.multiRender.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.renderTarget.js +9 -6
- package/Engines/WebGPU/Extensions/engine.renderTarget.js.map +1 -1
- package/Engines/WebGPU/webgpuBufferManager.d.ts +1 -1
- package/Engines/WebGPU/webgpuBufferManager.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheBindGroups.js +3 -3
- package/Engines/WebGPU/webgpuCacheBindGroups.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipeline.d.ts +4 -1
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js +37 -83
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheSampler.js +6 -4
- package/Engines/WebGPU/webgpuCacheSampler.js.map +1 -1
- package/Engines/WebGPU/webgpuClearQuad.d.ts +1 -1
- package/Engines/WebGPU/webgpuClearQuad.js +29 -11
- package/Engines/WebGPU/webgpuClearQuad.js.map +1 -1
- package/Engines/WebGPU/webgpuComputeContext.js +2 -2
- package/Engines/WebGPU/webgpuComputeContext.js.map +1 -1
- package/Engines/WebGPU/webgpuConstants.d.ts +57 -13
- package/Engines/WebGPU/webgpuConstants.js +62 -13
- package/Engines/WebGPU/webgpuConstants.js.map +1 -1
- package/Engines/WebGPU/webgpuHardwareTexture.d.ts +24 -4
- package/Engines/WebGPU/webgpuHardwareTexture.js +12 -2
- package/Engines/WebGPU/webgpuHardwareTexture.js.map +1 -1
- package/Engines/WebGPU/webgpuRenderTargetWrapper.d.ts +6 -0
- package/Engines/WebGPU/webgpuRenderTargetWrapper.js +12 -0
- package/Engines/WebGPU/webgpuRenderTargetWrapper.js.map +1 -0
- package/Engines/WebGPU/webgpuShaderProcessingContext.js +2 -0
- package/Engines/WebGPU/webgpuShaderProcessingContext.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessor.d.ts +2 -0
- package/Engines/WebGPU/webgpuShaderProcessor.js +23 -0
- package/Engines/WebGPU/webgpuShaderProcessor.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsGLSL.d.ts +1 -0
- package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js +17 -1
- package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.d.ts +1 -2
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +11 -30
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
- package/Engines/WebGPU/webgpuTextureHelper.d.ts +9 -2
- package/Engines/WebGPU/webgpuTextureHelper.js +291 -66
- package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
- package/Engines/engine.d.ts +145 -45
- package/Engines/engine.js +5 -1
- package/Engines/engine.js.map +1 -1
- package/Engines/nativeEngine.d.ts +11 -0
- package/Engines/nativeEngine.js +78 -18
- package/Engines/nativeEngine.js.map +1 -1
- package/Engines/renderTargetWrapper.d.ts +1 -1
- package/Engines/renderTargetWrapper.js +1 -1
- package/Engines/renderTargetWrapper.js.map +1 -1
- package/Engines/thinEngine.js +2 -2
- package/Engines/thinEngine.js.map +1 -1
- package/Engines/webgpuEngine.d.ts +5 -13
- package/Engines/webgpuEngine.js +37 -75
- package/Engines/webgpuEngine.js.map +1 -1
- package/Gizmos/positionGizmo.js +1 -1
- package/Gizmos/positionGizmo.js.map +1 -1
- package/Inputs/scene.inputManager.js +6 -1
- package/Inputs/scene.inputManager.js.map +1 -1
- package/Layers/effectLayer.d.ts +4 -0
- package/Layers/effectLayer.js +10 -0
- package/Layers/effectLayer.js.map +1 -1
- package/Layers/glowLayer.d.ts +8 -0
- package/Layers/glowLayer.js +7 -3
- package/Layers/glowLayer.js.map +1 -1
- package/Layers/highlightLayer.js +2 -0
- package/Layers/highlightLayer.js.map +1 -1
- package/Lights/Shadows/shadowGenerator.js +1 -1
- package/Lights/Shadows/shadowGenerator.js.map +1 -1
- package/Lights/light.js +4 -1
- package/Lights/light.js.map +1 -1
- package/Lights/pointLight.js +1 -1
- package/Lights/pointLight.js.map +1 -1
- package/Lights/spotLight.js +1 -1
- package/Lights/spotLight.js.map +1 -1
- package/Loading/Plugins/babylonFileLoader.js +10 -7
- package/Loading/Plugins/babylonFileLoader.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/index.d.ts +1 -0
- package/Materials/Node/Blocks/Fragment/index.js +1 -0
- package/Materials/Node/Blocks/Fragment/index.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/screenSpaceBlock.js +1 -3
- package/Materials/Node/Blocks/Fragment/screenSpaceBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/twirlBlock.d.ts +49 -0
- package/Materials/Node/Blocks/Fragment/twirlBlock.js +145 -0
- package/Materials/Node/Blocks/Fragment/twirlBlock.js.map +1 -0
- package/Materials/Node/Blocks/customBlock.d.ts +31 -0
- package/Materials/Node/Blocks/customBlock.js +144 -0
- package/Materials/Node/Blocks/customBlock.js.map +1 -0
- package/Materials/Node/Blocks/index.d.ts +1 -0
- package/Materials/Node/Blocks/index.js +1 -0
- package/Materials/Node/Blocks/index.js.map +1 -1
- package/Materials/Node/nodeMaterial.js +8 -0
- package/Materials/Node/nodeMaterial.js.map +1 -1
- package/Materials/Node/nodeMaterialBlock.js +1 -1
- package/Materials/Node/nodeMaterialBlock.js.map +1 -1
- package/Materials/PBR/index.d.ts +4 -0
- package/Materials/PBR/index.js +4 -0
- package/Materials/PBR/index.js.map +1 -1
- package/Materials/PBR/pbrAnisotropicConfiguration.d.ts +28 -96
- package/Materials/PBR/pbrAnisotropicConfiguration.js +50 -111
- package/Materials/PBR/pbrAnisotropicConfiguration.js.map +1 -1
- package/Materials/PBR/pbrBRDFConfiguration.d.ts +11 -37
- package/Materials/PBR/pbrBRDFConfiguration.js +39 -52
- package/Materials/PBR/pbrBRDFConfiguration.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.d.ts +15 -74
- package/Materials/PBR/pbrBaseMaterial.js +67 -182
- package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
- package/Materials/PBR/pbrBaseSimpleMaterial.js.map +1 -1
- package/Materials/PBR/pbrClearCoatConfiguration.d.ts +23 -98
- package/Materials/PBR/pbrClearCoatConfiguration.js +91 -143
- package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
- package/Materials/PBR/pbrSheenConfiguration.d.ts +25 -93
- package/Materials/PBR/pbrSheenConfiguration.js +71 -126
- package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
- package/Materials/PBR/pbrSubSurfaceConfiguration.d.ts +28 -114
- package/Materials/PBR/pbrSubSurfaceConfiguration.js +150 -211
- package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
- package/Materials/Textures/dynamicTexture.d.ts +3 -2
- package/Materials/Textures/dynamicTexture.js +5 -3
- package/Materials/Textures/dynamicTexture.js.map +1 -1
- package/Materials/Textures/multiRenderTarget.js +3 -0
- package/Materials/Textures/multiRenderTarget.js.map +1 -1
- package/Materials/Textures/renderTargetTexture.js +1 -1
- package/Materials/Textures/renderTargetTexture.js.map +1 -1
- package/Materials/Textures/thinRenderTargetTexture.js +1 -1
- package/Materials/Textures/thinRenderTargetTexture.js.map +1 -1
- package/Materials/Textures/thinTexture.d.ts +1 -2
- package/Materials/Textures/thinTexture.js +2 -4
- package/Materials/Textures/thinTexture.js.map +1 -1
- package/Materials/Textures/videoTexture.d.ts +1 -1
- package/Materials/Textures/videoTexture.js +1 -1
- package/Materials/Textures/videoTexture.js.map +1 -1
- package/Materials/effect.d.ts +6 -1
- package/Materials/effect.js +4 -1
- package/Materials/effect.js.map +1 -1
- package/Materials/fresnelParameters.d.ts +1 -1
- package/Materials/fresnelParameters.js +1 -1
- package/Materials/fresnelParameters.js.map +1 -1
- package/Materials/index.d.ts +4 -0
- package/Materials/index.js +4 -0
- package/Materials/index.js.map +1 -1
- package/Materials/material.d.ts +43 -2
- package/Materials/material.detailMapConfiguration.d.ts +29 -87
- package/Materials/material.detailMapConfiguration.js +50 -106
- package/Materials/material.detailMapConfiguration.js.map +1 -1
- package/Materials/material.js +99 -8
- package/Materials/material.js.map +1 -1
- package/Materials/materialDefines.d.ts +16 -0
- package/Materials/materialDefines.js +17 -5
- package/Materials/materialDefines.js.map +1 -1
- package/Materials/materialPluginBase.d.ts +182 -0
- package/Materials/materialPluginBase.js +209 -0
- package/Materials/materialPluginBase.js.map +1 -0
- package/Materials/materialPluginEvent.d.ts +98 -0
- package/Materials/materialPluginEvent.js +21 -0
- package/Materials/materialPluginEvent.js.map +1 -0
- package/Materials/materialPluginFactoryExport.d.ts +40 -0
- package/Materials/materialPluginFactoryExport.js +75 -0
- package/Materials/materialPluginFactoryExport.js.map +1 -0
- package/Materials/materialPluginManager.d.ts +90 -0
- package/Materials/materialPluginManager.js +323 -0
- package/Materials/materialPluginManager.js.map +1 -0
- package/Materials/shaderMaterial.d.ts +1 -1
- package/Materials/shaderMaterial.js +13 -1
- package/Materials/shaderMaterial.js.map +1 -1
- package/Materials/standardMaterial.d.ts +13 -10
- package/Materials/standardMaterial.js +45 -51
- package/Materials/standardMaterial.js.map +1 -1
- package/Materials/uniformBuffer.d.ts +7 -0
- package/Materials/uniformBuffer.js +22 -0
- package/Materials/uniformBuffer.js.map +1 -1
- package/Maths/math.vector.d.ts +12 -8
- package/Maths/math.vector.js +22 -14
- package/Maths/math.vector.js.map +1 -1
- package/Meshes/Builders/capsuleBuilder.d.ts +1 -1
- package/Meshes/Builders/capsuleBuilder.js +1 -1
- package/Meshes/Builders/capsuleBuilder.js.map +1 -1
- package/Meshes/abstractMesh.d.ts +1 -1
- package/Meshes/abstractMesh.js +24 -23
- package/Meshes/abstractMesh.js.map +1 -1
- package/Meshes/geometry.js +2 -2
- package/Meshes/geometry.js.map +1 -1
- package/Meshes/linesMesh.d.ts +1 -1
- package/Meshes/linesMesh.js +3 -2
- package/Meshes/linesMesh.js.map +1 -1
- package/Meshes/mesh.d.ts +12 -0
- package/Meshes/mesh.js +184 -115
- package/Meshes/mesh.js.map +1 -1
- package/Meshes/mesh.lts.d.ts +8 -8
- package/Meshes/mesh.lts.js.map +1 -1
- package/Meshes/mesh.vertexData.d.ts +6 -1
- package/Meshes/mesh.vertexData.js +295 -114
- package/Meshes/mesh.vertexData.js.map +1 -1
- package/Meshes/transformNode.js +20 -13
- package/Meshes/transformNode.js.map +1 -1
- package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.d.ts +2 -1
- package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.js +38 -33
- package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.js.map +1 -1
- package/Misc/PerformanceViewer/performanceViewerCollector.d.ts +29 -4
- package/Misc/PerformanceViewer/performanceViewerCollector.js +36 -12
- package/Misc/PerformanceViewer/performanceViewerCollector.js.map +1 -1
- package/Misc/assetsManager.d.ts +4 -4
- package/Misc/assetsManager.js +2 -2
- package/Misc/assetsManager.js.map +1 -1
- package/Misc/basis.js +1 -0
- package/Misc/basis.js.map +1 -1
- package/Misc/coroutine.d.ts +41 -0
- package/Misc/coroutine.js +136 -0
- package/Misc/coroutine.js.map +1 -0
- package/Misc/index.d.ts +1 -0
- package/Misc/index.js +1 -0
- package/Misc/index.js.map +1 -1
- package/Misc/interfaces/iPerfViewer.d.ts +4 -0
- package/Misc/interfaces/iPerfViewer.js.map +1 -1
- package/Misc/observableCoroutine.d.ts +9 -10
- package/Misc/observableCoroutine.js +34 -39
- package/Misc/observableCoroutine.js.map +1 -1
- package/Misc/sceneSerializer.js +1 -0
- package/Misc/sceneSerializer.js.map +1 -1
- package/Particles/particleSystem.js +3 -0
- package/Particles/particleSystem.js.map +1 -1
- package/Particles/subEmitter.js +1 -0
- package/Particles/subEmitter.js.map +1 -1
- package/PostProcesses/screenSpaceReflectionPostProcess.d.ts +1 -0
- package/PostProcesses/screenSpaceReflectionPostProcess.js +4 -0
- package/PostProcesses/screenSpaceReflectionPostProcess.js.map +1 -1
- package/Rendering/depthPeelingRenderer.d.ts +4 -1
- package/Rendering/depthPeelingRenderer.js +34 -9
- package/Rendering/depthPeelingRenderer.js.map +1 -1
- package/Rendering/depthRenderer.js +1 -1
- package/Rendering/depthRenderer.js.map +1 -1
- package/Rendering/outlineRenderer.js +24 -1
- package/Rendering/outlineRenderer.js.map +1 -1
- package/Rendering/prePassRenderer.js +7 -7
- package/Rendering/prePassRenderer.js.map +1 -1
- package/Rendering/renderingGroup.js +5 -1
- package/Rendering/renderingGroup.js.map +1 -1
- package/Shaders/ShadersInclude/defaultFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/defaultFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/defaultUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/defaultUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/defaultVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/defaultVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/pbrFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/pbrUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/pbrVertexDeclaration.js.map +1 -1
- package/Shaders/anaglyph.fragment.js +1 -1
- package/Shaders/anaglyph.fragment.js.map +1 -1
- package/Shaders/background.fragment.js +1 -1
- package/Shaders/background.fragment.js.map +1 -1
- package/Shaders/background.vertex.js +1 -1
- package/Shaders/background.vertex.js.map +1 -1
- package/Shaders/blackAndWhite.fragment.js +1 -1
- package/Shaders/blackAndWhite.fragment.js.map +1 -1
- package/Shaders/bloomMerge.fragment.js +1 -1
- package/Shaders/bloomMerge.fragment.js.map +1 -1
- package/Shaders/blur.fragment.js +1 -1
- package/Shaders/blur.fragment.js.map +1 -1
- package/Shaders/boundingBoxRenderer.fragment.js +1 -1
- package/Shaders/boundingBoxRenderer.fragment.js.map +1 -1
- package/Shaders/boundingBoxRenderer.vertex.js +1 -1
- package/Shaders/boundingBoxRenderer.vertex.js.map +1 -1
- package/Shaders/chromaticAberration.fragment.js +1 -1
- package/Shaders/chromaticAberration.fragment.js.map +1 -1
- package/Shaders/circleOfConfusion.fragment.js +1 -1
- package/Shaders/circleOfConfusion.fragment.js.map +1 -1
- package/Shaders/clearQuad.vertex.js +1 -1
- package/Shaders/clearQuad.vertex.js.map +1 -1
- package/Shaders/color.fragment.js +1 -1
- package/Shaders/color.fragment.js.map +1 -1
- package/Shaders/color.vertex.js +1 -1
- package/Shaders/color.vertex.js.map +1 -1
- package/Shaders/colorCorrection.fragment.js +1 -1
- package/Shaders/colorCorrection.fragment.js.map +1 -1
- package/Shaders/convolution.fragment.js +1 -1
- package/Shaders/convolution.fragment.js.map +1 -1
- package/Shaders/default.fragment.js +1 -1
- package/Shaders/default.fragment.js.map +1 -1
- package/Shaders/depth.fragment.js +1 -1
- package/Shaders/depth.fragment.js.map +1 -1
- package/Shaders/depth.vertex.js +1 -1
- package/Shaders/depth.vertex.js.map +1 -1
- package/Shaders/depthBoxBlur.fragment.js +1 -1
- package/Shaders/depthBoxBlur.fragment.js.map +1 -1
- package/Shaders/depthOfField.fragment.js +1 -1
- package/Shaders/depthOfField.fragment.js.map +1 -1
- package/Shaders/depthOfFieldMerge.fragment.js +1 -1
- package/Shaders/depthOfFieldMerge.fragment.js.map +1 -1
- package/Shaders/displayPass.fragment.js +1 -1
- package/Shaders/displayPass.fragment.js.map +1 -1
- package/Shaders/extractHighlights.fragment.js +1 -1
- package/Shaders/extractHighlights.fragment.js.map +1 -1
- package/Shaders/filter.fragment.js +1 -1
- package/Shaders/filter.fragment.js.map +1 -1
- package/Shaders/fxaa.vertex.js +1 -1
- package/Shaders/fxaa.vertex.js.map +1 -1
- package/Shaders/geometry.vertex.js +1 -1
- package/Shaders/geometry.vertex.js.map +1 -1
- package/Shaders/glowBlurPostProcess.fragment.js +1 -1
- package/Shaders/glowBlurPostProcess.fragment.js.map +1 -1
- package/Shaders/glowMapGeneration.fragment.js +1 -1
- package/Shaders/glowMapGeneration.fragment.js.map +1 -1
- package/Shaders/glowMapGeneration.vertex.js +1 -1
- package/Shaders/glowMapGeneration.vertex.js.map +1 -1
- package/Shaders/glowMapMerge.fragment.js +1 -1
- package/Shaders/glowMapMerge.fragment.js.map +1 -1
- package/Shaders/glowMapMerge.vertex.js +1 -1
- package/Shaders/glowMapMerge.vertex.js.map +1 -1
- package/Shaders/grain.fragment.js +1 -1
- package/Shaders/grain.fragment.js.map +1 -1
- package/Shaders/hdrFiltering.vertex.js +1 -1
- package/Shaders/hdrFiltering.vertex.js.map +1 -1
- package/Shaders/highlights.fragment.js +1 -1
- package/Shaders/highlights.fragment.js.map +1 -1
- package/Shaders/imageProcessing.fragment.js +1 -1
- package/Shaders/imageProcessing.fragment.js.map +1 -1
- package/Shaders/kernelBlur.fragment.js +1 -1
- package/Shaders/kernelBlur.fragment.js.map +1 -1
- package/Shaders/kernelBlur.vertex.js +1 -1
- package/Shaders/kernelBlur.vertex.js.map +1 -1
- package/Shaders/layer.fragment.js +1 -1
- package/Shaders/layer.fragment.js.map +1 -1
- package/Shaders/layer.vertex.js +1 -1
- package/Shaders/layer.vertex.js.map +1 -1
- package/Shaders/lensFlare.fragment.js +1 -1
- package/Shaders/lensFlare.fragment.js.map +1 -1
- package/Shaders/lensFlare.vertex.js +1 -1
- package/Shaders/lensFlare.vertex.js.map +1 -1
- package/Shaders/lensHighlights.fragment.js +1 -1
- package/Shaders/lensHighlights.fragment.js.map +1 -1
- package/Shaders/line.fragment.js +1 -1
- package/Shaders/line.fragment.js.map +1 -1
- package/Shaders/line.vertex.js +1 -1
- package/Shaders/line.vertex.js.map +1 -1
- package/Shaders/minmaxRedux.fragment.js +1 -1
- package/Shaders/minmaxRedux.fragment.js.map +1 -1
- package/Shaders/motionBlur.fragment.js +1 -1
- package/Shaders/motionBlur.fragment.js.map +1 -1
- package/Shaders/noise.fragment.js +1 -1
- package/Shaders/noise.fragment.js.map +1 -1
- package/Shaders/outline.fragment.d.ts +2 -0
- package/Shaders/outline.fragment.js +3 -1
- package/Shaders/outline.fragment.js.map +1 -1
- package/Shaders/outline.vertex.d.ts +2 -0
- package/Shaders/outline.vertex.js +3 -1
- package/Shaders/outline.vertex.js.map +1 -1
- package/Shaders/particles.fragment.js +1 -1
- package/Shaders/particles.fragment.js.map +1 -1
- package/Shaders/particles.vertex.js +1 -1
- package/Shaders/particles.vertex.js.map +1 -1
- package/Shaders/pass.fragment.js +1 -1
- package/Shaders/pass.fragment.js.map +1 -1
- package/Shaders/passCube.fragment.js +1 -1
- package/Shaders/passCube.fragment.js.map +1 -1
- package/Shaders/pbr.fragment.js +1 -1
- package/Shaders/pbr.fragment.js.map +1 -1
- package/Shaders/postprocess.vertex.js +1 -1
- package/Shaders/postprocess.vertex.js.map +1 -1
- package/Shaders/procedural.vertex.js +1 -1
- package/Shaders/procedural.vertex.js.map +1 -1
- package/Shaders/rgbdDecode.fragment.js +1 -1
- package/Shaders/rgbdDecode.fragment.js.map +1 -1
- package/Shaders/rgbdEncode.fragment.js +1 -1
- package/Shaders/rgbdEncode.fragment.js.map +1 -1
- package/Shaders/screenSpaceCurvature.fragment.js +1 -1
- package/Shaders/screenSpaceCurvature.fragment.js.map +1 -1
- package/Shaders/screenSpaceReflection.fragment.js +1 -1
- package/Shaders/screenSpaceReflection.fragment.js.map +1 -1
- package/Shaders/shadowMap.fragment.js +1 -1
- package/Shaders/shadowMap.fragment.js.map +1 -1
- package/Shaders/shadowMap.vertex.js +1 -1
- package/Shaders/shadowMap.vertex.js.map +1 -1
- package/Shaders/sharpen.fragment.js +1 -1
- package/Shaders/sharpen.fragment.js.map +1 -1
- package/Shaders/sprites.fragment.js +1 -1
- package/Shaders/sprites.fragment.js.map +1 -1
- package/Shaders/sprites.vertex.js +1 -1
- package/Shaders/sprites.vertex.js.map +1 -1
- package/Shaders/ssaoCombine.fragment.js +1 -1
- package/Shaders/ssaoCombine.fragment.js.map +1 -1
- package/Shaders/standard.fragment.js +1 -1
- package/Shaders/standard.fragment.js.map +1 -1
- package/Shaders/stereoscopicInterlace.fragment.js +1 -1
- package/Shaders/stereoscopicInterlace.fragment.js.map +1 -1
- package/Shaders/subSurfaceScattering.fragment.js +1 -1
- package/Shaders/subSurfaceScattering.fragment.js.map +1 -1
- package/Shaders/tonemap.fragment.js +1 -1
- package/Shaders/tonemap.fragment.js.map +1 -1
- package/Shaders/volumetricLightScattering.fragment.js +1 -1
- package/Shaders/volumetricLightScattering.fragment.js.map +1 -1
- package/Shaders/volumetricLightScatteringPass.fragment.js +1 -1
- package/Shaders/volumetricLightScatteringPass.fragment.js.map +1 -1
- package/Shaders/volumetricLightScatteringPass.vertex.js +1 -1
- package/Shaders/volumetricLightScatteringPass.vertex.js.map +1 -1
- package/Shaders/vrDistortionCorrection.fragment.js +1 -1
- package/Shaders/vrDistortionCorrection.fragment.js.map +1 -1
- package/Shaders/vrMultiviewToSingleview.fragment.js +1 -1
- package/Shaders/vrMultiviewToSingleview.fragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/meshUboDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/meshUboDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.js.map +1 -1
- package/ShadersWGSL/gpuUpdateParticles.compute.js +1 -1
- package/ShadersWGSL/gpuUpdateParticles.compute.js.map +1 -1
- package/XR/features/WebXRControllerPointerSelection.d.ts +14 -0
- package/XR/features/WebXRControllerPointerSelection.js +55 -21
- package/XR/features/WebXRControllerPointerSelection.js.map +1 -1
- package/XR/features/WebXRHandTracking.d.ts +2 -0
- package/XR/features/WebXRHandTracking.js +34 -14
- package/XR/features/WebXRHandTracking.js.map +1 -1
- package/XR/features/WebXRLayers.d.ts +78 -0
- package/XR/features/WebXRLayers.js +243 -0
- package/XR/features/WebXRLayers.js.map +1 -0
- package/XR/features/WebXRPlaneDetector.js +8 -12
- package/XR/features/WebXRPlaneDetector.js.map +1 -1
- package/XR/features/index.d.ts +1 -0
- package/XR/features/index.js +1 -0
- package/XR/features/index.js.map +1 -1
- package/XR/index.d.ts +1 -0
- package/XR/index.js +1 -0
- package/XR/index.js.map +1 -1
- package/XR/native/index.d.ts +2 -0
- package/XR/native/index.js +3 -0
- package/XR/native/index.js.map +1 -0
- package/XR/native/nativeXRFrame.d.ts +27 -0
- package/XR/native/nativeXRFrame.js +81 -0
- package/XR/native/nativeXRFrame.js.map +1 -0
- package/XR/native/nativeXRRenderTarget.d.ts +44 -0
- package/XR/native/nativeXRRenderTarget.js +81 -0
- package/XR/native/nativeXRRenderTarget.js.map +1 -0
- package/XR/webXRCamera.js +2 -10
- package/XR/webXRCamera.js.map +1 -1
- package/XR/webXRExperienceHelper.js +15 -13
- package/XR/webXRExperienceHelper.js.map +1 -1
- package/XR/webXRFeaturesManager.d.ts +4 -0
- package/XR/webXRFeaturesManager.js +5 -1
- package/XR/webXRFeaturesManager.js.map +1 -1
- package/XR/webXRLayerWrapper.d.ts +48 -0
- package/XR/webXRLayerWrapper.js +60 -0
- package/XR/webXRLayerWrapper.js.map +1 -0
- package/XR/webXRManagedOutputCanvas.d.ts +2 -1
- package/XR/webXRManagedOutputCanvas.js +36 -29
- package/XR/webXRManagedOutputCanvas.js.map +1 -1
- package/XR/webXRRenderTargetTextureProvider.d.ts +55 -0
- package/XR/webXRRenderTargetTextureProvider.js +63 -0
- package/XR/webXRRenderTargetTextureProvider.js.map +1 -0
- package/XR/webXRSessionManager.d.ts +30 -7
- package/XR/webXRSessionManager.js +62 -64
- package/XR/webXRSessionManager.js.map +1 -1
- package/XR/webXRTypes.d.ts +1 -1
- package/XR/webXRTypes.js.map +1 -1
- package/XR/webXRWebGLLayer.d.ts +36 -0
- package/XR/webXRWebGLLayer.js +69 -0
- package/XR/webXRWebGLLayer.js.map +1 -0
- package/abstractScene.d.ts +1 -1
- package/abstractScene.js +1 -1
- package/abstractScene.js.map +1 -1
- package/assetContainer.js +3 -0
- package/assetContainer.js.map +1 -1
- package/package.json +51 -6
- package/scene.d.ts +4 -0
- package/scene.js +4 -0
- package/scene.js.map +1 -1
- package/DeviceInput/Implementations/nativeDeviceInputWrapper.js.map +0 -1
package/Meshes/linesMesh.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linesMesh.js","sourceRoot":"","sources":["../../../sourceES6/core/Meshes/linesMesh.ts"],"names":[],"mappings":"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","sourcesContent":["import { Nullable } from \"../types\";\r\nimport { Scene } from \"../scene\";\r\nimport { Color3, Color4 } from \"../Maths/math.color\";\r\nimport { Node } from \"../node\";\r\nimport { VertexBuffer } from \"../Buffers/buffer\";\r\nimport { SubMesh } from \"../Meshes/subMesh\";\r\nimport { Mesh } from \"../Meshes/mesh\";\r\nimport { InstancedMesh } from \"../Meshes/instancedMesh\";\r\nimport { Effect } from \"../Materials/effect\";\r\nimport { Material } from \"../Materials/material\";\r\nimport { ShaderMaterial } from \"../Materials/shaderMaterial\";\r\n\r\nimport \"../Shaders/color.fragment\";\r\nimport \"../Shaders/color.vertex\";\r\n\r\nMesh._LinesMeshParser = (parsedMesh: any, scene: Scene): Mesh => {\r\n return LinesMesh.Parse(parsedMesh, scene);\r\n};\r\n\r\n/**\r\n * Line mesh\r\n * @see https://doc.babylonjs.com/babylon101/parametric_shapes\r\n */\r\nexport class LinesMesh extends Mesh {\r\n /**\r\n * Color of the line (Default: White)\r\n */\r\n public color = new Color3(1, 1, 1);\r\n\r\n /**\r\n * Alpha of the line (Default: 1)\r\n */\r\n public alpha = 1;\r\n\r\n /**\r\n * The intersection Threshold is the margin applied when intersection a segment of the LinesMesh with a Ray.\r\n * This margin is expressed in world space coordinates, so its value may vary.\r\n * Default value is 0.1\r\n */\r\n public intersectionThreshold: number;\r\n\r\n private _lineMaterial: Material;\r\n\r\n private _isShaderMaterial(shader: Material): shader is ShaderMaterial {\r\n return shader.getClassName() === \"ShaderMaterial\";\r\n }\r\n\r\n private color4: Color4;\r\n\r\n /**\r\n * Creates a new LinesMesh\r\n * @param name defines the name\r\n * @param scene defines the hosting scene\r\n * @param parent defines the parent mesh if any\r\n * @param source defines the optional source LinesMesh used to clone data from\r\n * @param doNotCloneChildren When cloning, skip cloning child meshes of source, default False.\r\n * When false, achieved by calling a clone(), also passing False.\r\n * This will make creation of children, recursive.\r\n * @param useVertexColor defines if this LinesMesh supports vertex color\r\n * @param useVertexAlpha defines if this LinesMesh supports vertex alpha\r\n * @param material material to use to draw the line. If not provided, will create a new one\r\n */\r\n constructor(\r\n name: string,\r\n scene: Nullable<Scene> = null,\r\n parent: Nullable<Node> = null,\r\n source: Nullable<LinesMesh> = null,\r\n doNotCloneChildren?: boolean,\r\n /**\r\n * If vertex color should be applied to the mesh\r\n */\r\n public readonly useVertexColor?: boolean,\r\n /**\r\n * If vertex alpha should be applied to the mesh\r\n */\r\n public readonly useVertexAlpha?: boolean,\r\n material?: Material\r\n ) {\r\n super(name, scene, parent, source, doNotCloneChildren);\r\n\r\n if (source) {\r\n this.color = source.color.clone();\r\n this.alpha = source.alpha;\r\n this.useVertexColor = source.useVertexColor;\r\n this.useVertexAlpha = source.useVertexAlpha;\r\n }\r\n\r\n this.intersectionThreshold = 0.1;\r\n\r\n var defines: string[] = [];\r\n var options = {\r\n attributes: [VertexBuffer.PositionKind],\r\n uniforms: [\"vClipPlane\", \"vClipPlane2\", \"vClipPlane3\", \"vClipPlane4\", \"vClipPlane5\", \"vClipPlane6\", \"world\", \"viewProjection\"],\r\n needAlphaBlending: true,\r\n defines: defines,\r\n useClipPlane: null,\r\n };\r\n\r\n if (useVertexAlpha === false) {\r\n options.needAlphaBlending = false;\r\n }\r\n\r\n if (!useVertexColor) {\r\n options.uniforms.push(\"color\");\r\n this.color4 = new Color4();\r\n }\r\n else {\r\n options.defines.push(\"#define VERTEXCOLOR\");\r\n options.attributes.push(VertexBuffer.ColorKind);\r\n }\r\n\r\n if (material) {\r\n this.material = material;\r\n } else {\r\n this._lineMaterial = new ShaderMaterial(\"colorShader\", this.getScene(), \"color\", options, false);\r\n }\r\n }\r\n\r\n public isReady() {\r\n if (!this._lineMaterial.isReady(this, !!this._userInstancedBuffersStorage)) {\r\n return false;\r\n }\r\n\r\n return super.isReady();\r\n }\r\n\r\n /**\r\n * Returns the string \"LineMesh\"\r\n */\r\n public getClassName(): string {\r\n return \"LinesMesh\";\r\n }\r\n\r\n /**\r\n * @hidden\r\n */\r\n public get material(): Material {\r\n return this._lineMaterial;\r\n }\r\n\r\n /**\r\n * @hidden\r\n */\r\n public set material(value: Material) {\r\n this._lineMaterial = value;\r\n }\r\n\r\n /**\r\n * @hidden\r\n */\r\n public get checkCollisions(): boolean {\r\n return false;\r\n }\r\n\r\n public set checkCollisions(value: boolean) {\r\n // Just ignore it\r\n }\r\n\r\n /** @hidden */\r\n public _bind(subMesh: SubMesh, effect: Effect, fillMode: number): Mesh {\r\n if (!this._geometry) {\r\n return this;\r\n }\r\n const colorEffect = this._lineMaterial.getEffect();\r\n\r\n // VBOs\r\n const indexToBind = this.isUnIndexed ? null : this._geometry.getIndexBuffer();\r\n if (!this._userInstancedBuffersStorage) {\r\n this._geometry._bind(colorEffect, indexToBind);\r\n } else {\r\n this._geometry._bind(colorEffect, indexToBind, this._userInstancedBuffersStorage.vertexBuffers, this._userInstancedBuffersStorage.vertexArrayObjects);\r\n }\r\n\r\n // Color\r\n if (!this.useVertexColor && this._isShaderMaterial(this._lineMaterial)) {\r\n const { r, g, b } = this.color;\r\n this.color4.set(r, g, b, this.alpha);\r\n this._lineMaterial.setColor4(\"color\", this.color4);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /** @hidden */\r\n public _draw(subMesh: SubMesh, fillMode: number, instancesCount?: number): Mesh {\r\n if (!this._geometry || !this._geometry.getVertexBuffers() || (!this._unIndexed && !this._geometry.getIndexBuffer())) {\r\n return this;\r\n }\r\n\r\n var engine = this.getScene().getEngine();\r\n\r\n // Draw order\r\n\r\n if (this._unIndexed) {\r\n engine.drawArraysType(Material.LineListDrawMode, subMesh.verticesStart, subMesh.verticesCount, instancesCount);\r\n }\r\n else {\r\n engine.drawElementsType(Material.LineListDrawMode, subMesh.indexStart, subMesh.indexCount, instancesCount);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Disposes of the line mesh\r\n * @param doNotRecurse If children should be disposed\r\n */\r\n public dispose(doNotRecurse?: boolean): void {\r\n this._lineMaterial.dispose(false, false, true);\r\n super.dispose(doNotRecurse);\r\n }\r\n\r\n /**\r\n * Returns a new LineMesh object cloned from the current one.\r\n */\r\n public clone(name: string, newParent: Nullable<Node> = null, doNotCloneChildren?: boolean): LinesMesh {\r\n return new LinesMesh(name, this.getScene(), newParent, this, doNotCloneChildren);\r\n }\r\n\r\n /**\r\n * Creates a new InstancedLinesMesh object from the mesh model.\r\n * @see https://doc.babylonjs.com/how_to/how_to_use_instances\r\n * @param name defines the name of the new instance\r\n * @returns a new InstancedLinesMesh\r\n */\r\n public createInstance(name: string): InstancedLinesMesh {\r\n const instance = new InstancedLinesMesh(name, this);\r\n\r\n if (this.instancedBuffers) {\r\n instance.instancedBuffers = {};\r\n\r\n for (const key in this.instancedBuffers) {\r\n instance.instancedBuffers[key] = this.instancedBuffers[key];\r\n }\r\n }\r\n\r\n return instance;\r\n }\r\n\r\n /**\r\n * Serializes this ground mesh\r\n * @param serializationObject object to write serialization to\r\n */\r\n public serialize(serializationObject: any): void {\r\n super.serialize(serializationObject);\r\n serializationObject.color = this.color.asArray();\r\n serializationObject.alpha = this.alpha;\r\n }\r\n\r\n /**\r\n * Parses a serialized ground mesh\r\n * @param parsedMesh the serialized mesh\r\n * @param scene the scene to create the ground mesh in\r\n * @returns the created ground mesh\r\n */\r\n public static Parse(parsedMesh: any, scene: Scene): LinesMesh {\r\n var result = new LinesMesh(parsedMesh.name, scene);\r\n\r\n result.color = Color3.FromArray(parsedMesh.color);\r\n result.alpha = parsedMesh.alpha;\r\n\r\n return result;\r\n }\r\n}\r\n\r\n/**\r\n * Creates an instance based on a source LinesMesh\r\n */\r\nexport class InstancedLinesMesh extends InstancedMesh {\r\n /**\r\n * The intersection Threshold is the margin applied when intersection a segment of the LinesMesh with a Ray.\r\n * This margin is expressed in world space coordinates, so its value may vary.\r\n * Initialized with the intersectionThreshold value of the source LinesMesh\r\n */\r\n public intersectionThreshold: number;\r\n\r\n constructor(name: string, source: LinesMesh) {\r\n super(name, source);\r\n this.intersectionThreshold = source.intersectionThreshold;\r\n }\r\n\r\n /**\r\n * Returns the string \"InstancedLinesMesh\".\r\n */\r\n public getClassName(): string {\r\n return \"InstancedLinesMesh\";\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"linesMesh.js","sourceRoot":"","sources":["../../../sourceES6/core/Meshes/linesMesh.ts"],"names":[],"mappings":"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","sourcesContent":["import { Nullable } from \"../types\";\r\nimport { Scene } from \"../scene\";\r\nimport { Color3, Color4 } from \"../Maths/math.color\";\r\nimport { Node } from \"../node\";\r\nimport { VertexBuffer } from \"../Buffers/buffer\";\r\nimport { SubMesh } from \"../Meshes/subMesh\";\r\nimport { Mesh } from \"../Meshes/mesh\";\r\nimport { InstancedMesh } from \"../Meshes/instancedMesh\";\r\nimport { Effect } from \"../Materials/effect\";\r\nimport { Material } from \"../Materials/material\";\r\nimport { ShaderMaterial } from \"../Materials/shaderMaterial\";\r\n\r\nimport \"../Shaders/color.fragment\";\r\nimport \"../Shaders/color.vertex\";\r\n\r\nMesh._LinesMeshParser = (parsedMesh: any, scene: Scene): Mesh => {\r\n return LinesMesh.Parse(parsedMesh, scene);\r\n};\r\n\r\n/**\r\n * Line mesh\r\n * @see https://doc.babylonjs.com/babylon101/parametric_shapes\r\n */\r\nexport class LinesMesh extends Mesh {\r\n /**\r\n * Color of the line (Default: White)\r\n */\r\n public color = new Color3(1, 1, 1);\r\n\r\n /**\r\n * Alpha of the line (Default: 1)\r\n */\r\n public alpha = 1;\r\n\r\n /**\r\n * The intersection Threshold is the margin applied when intersection a segment of the LinesMesh with a Ray.\r\n * This margin is expressed in world space coordinates, so its value may vary.\r\n * Default value is 0.1\r\n */\r\n public intersectionThreshold: number;\r\n\r\n private _lineMaterial: Material;\r\n\r\n private _isShaderMaterial(shader: Material): shader is ShaderMaterial {\r\n return shader.getClassName() === \"ShaderMaterial\";\r\n }\r\n\r\n private color4: Color4;\r\n\r\n /**\r\n * Creates a new LinesMesh\r\n * @param name defines the name\r\n * @param scene defines the hosting scene\r\n * @param parent defines the parent mesh if any\r\n * @param source defines the optional source LinesMesh used to clone data from\r\n * @param doNotCloneChildren When cloning, skip cloning child meshes of source, default False.\r\n * When false, achieved by calling a clone(), also passing False.\r\n * This will make creation of children, recursive.\r\n * @param useVertexColor defines if this LinesMesh supports vertex color\r\n * @param useVertexAlpha defines if this LinesMesh supports vertex alpha\r\n * @param material material to use to draw the line. If not provided, will create a new one\r\n */\r\n constructor(\r\n name: string,\r\n scene: Nullable<Scene> = null,\r\n parent: Nullable<Node> = null,\r\n source: Nullable<LinesMesh> = null,\r\n doNotCloneChildren?: boolean,\r\n /**\r\n * If vertex color should be applied to the mesh\r\n */\r\n public readonly useVertexColor?: boolean,\r\n /**\r\n * If vertex alpha should be applied to the mesh\r\n */\r\n public readonly useVertexAlpha?: boolean,\r\n material?: Material\r\n ) {\r\n super(name, scene, parent, source, doNotCloneChildren);\r\n\r\n if (source) {\r\n this.color = source.color.clone();\r\n this.alpha = source.alpha;\r\n this.useVertexColor = source.useVertexColor;\r\n this.useVertexAlpha = source.useVertexAlpha;\r\n }\r\n\r\n this.intersectionThreshold = 0.1;\r\n\r\n var defines: string[] = [];\r\n var options = {\r\n attributes: [VertexBuffer.PositionKind],\r\n uniforms: [\"vClipPlane\", \"vClipPlane2\", \"vClipPlane3\", \"vClipPlane4\", \"vClipPlane5\", \"vClipPlane6\", \"world\", \"viewProjection\"],\r\n needAlphaBlending: true,\r\n defines: defines,\r\n useClipPlane: null,\r\n };\r\n\r\n if (useVertexAlpha === false) {\r\n options.needAlphaBlending = false;\r\n }\r\n\r\n if (!useVertexColor) {\r\n options.uniforms.push(\"color\");\r\n this.color4 = new Color4();\r\n }\r\n else {\r\n options.defines.push(\"#define VERTEXCOLOR\");\r\n options.attributes.push(VertexBuffer.ColorKind);\r\n }\r\n\r\n if (material) {\r\n this.material = material;\r\n } else {\r\n this.material = new ShaderMaterial(\"colorShader\", this.getScene(), \"color\", options, false);\r\n }\r\n }\r\n\r\n public isReady() {\r\n if (!this._lineMaterial.isReady(this, !!this._userInstancedBuffersStorage)) {\r\n return false;\r\n }\r\n\r\n return super.isReady();\r\n }\r\n\r\n /**\r\n * Returns the string \"LineMesh\"\r\n */\r\n public getClassName(): string {\r\n return \"LinesMesh\";\r\n }\r\n\r\n /**\r\n * @hidden\r\n */\r\n public get material(): Material {\r\n return this._lineMaterial;\r\n }\r\n\r\n /**\r\n * @hidden\r\n */\r\n public set material(value: Material) {\r\n this._lineMaterial = value;\r\n this._lineMaterial.fillMode = Material.LineListDrawMode;\r\n }\r\n\r\n /**\r\n * @hidden\r\n */\r\n public get checkCollisions(): boolean {\r\n return false;\r\n }\r\n\r\n public set checkCollisions(value: boolean) {\r\n // Just ignore it\r\n }\r\n\r\n /** @hidden */\r\n public _bind(subMesh: SubMesh, effect: Effect, fillMode: number): Mesh {\r\n if (!this._geometry) {\r\n return this;\r\n }\r\n const colorEffect = this._lineMaterial.getEffect();\r\n\r\n // VBOs\r\n const indexToBind = this.isUnIndexed ? null : this._geometry.getIndexBuffer();\r\n if (!this._userInstancedBuffersStorage) {\r\n this._geometry._bind(colorEffect, indexToBind);\r\n } else {\r\n this._geometry._bind(colorEffect, indexToBind, this._userInstancedBuffersStorage.vertexBuffers, this._userInstancedBuffersStorage.vertexArrayObjects);\r\n }\r\n\r\n // Color\r\n if (!this.useVertexColor && this._isShaderMaterial(this._lineMaterial)) {\r\n const { r, g, b } = this.color;\r\n this.color4.set(r, g, b, this.alpha);\r\n this._lineMaterial.setColor4(\"color\", this.color4);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /** @hidden */\r\n public _draw(subMesh: SubMesh, fillMode: number, instancesCount?: number): Mesh {\r\n if (!this._geometry || !this._geometry.getVertexBuffers() || (!this._unIndexed && !this._geometry.getIndexBuffer())) {\r\n return this;\r\n }\r\n\r\n var engine = this.getScene().getEngine();\r\n\r\n // Draw order\r\n\r\n if (this._unIndexed) {\r\n engine.drawArraysType(Material.LineListDrawMode, subMesh.verticesStart, subMesh.verticesCount, instancesCount);\r\n }\r\n else {\r\n engine.drawElementsType(Material.LineListDrawMode, subMesh.indexStart, subMesh.indexCount, instancesCount);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Disposes of the line mesh\r\n * @param doNotRecurse If children should be disposed\r\n */\r\n public dispose(doNotRecurse?: boolean): void {\r\n this._lineMaterial.dispose(false, false, true);\r\n super.dispose(doNotRecurse);\r\n }\r\n\r\n /**\r\n * Returns a new LineMesh object cloned from the current one.\r\n */\r\n public clone(name: string, newParent: Nullable<Node> = null, doNotCloneChildren?: boolean): LinesMesh {\r\n return new LinesMesh(name, this.getScene(), newParent, this, doNotCloneChildren);\r\n }\r\n\r\n /**\r\n * Creates a new InstancedLinesMesh object from the mesh model.\r\n * @see https://doc.babylonjs.com/divingDeeper/mesh/copies/instances\r\n * @param name defines the name of the new instance\r\n * @returns a new InstancedLinesMesh\r\n */\r\n public createInstance(name: string): InstancedLinesMesh {\r\n const instance = new InstancedLinesMesh(name, this);\r\n\r\n if (this.instancedBuffers) {\r\n instance.instancedBuffers = {};\r\n\r\n for (const key in this.instancedBuffers) {\r\n instance.instancedBuffers[key] = this.instancedBuffers[key];\r\n }\r\n }\r\n\r\n return instance;\r\n }\r\n\r\n /**\r\n * Serializes this ground mesh\r\n * @param serializationObject object to write serialization to\r\n */\r\n public serialize(serializationObject: any): void {\r\n super.serialize(serializationObject);\r\n serializationObject.color = this.color.asArray();\r\n serializationObject.alpha = this.alpha;\r\n }\r\n\r\n /**\r\n * Parses a serialized ground mesh\r\n * @param parsedMesh the serialized mesh\r\n * @param scene the scene to create the ground mesh in\r\n * @returns the created ground mesh\r\n */\r\n public static Parse(parsedMesh: any, scene: Scene): LinesMesh {\r\n var result = new LinesMesh(parsedMesh.name, scene);\r\n\r\n result.color = Color3.FromArray(parsedMesh.color);\r\n result.alpha = parsedMesh.alpha;\r\n\r\n return result;\r\n }\r\n}\r\n\r\n/**\r\n * Creates an instance based on a source LinesMesh\r\n */\r\nexport class InstancedLinesMesh extends InstancedMesh {\r\n /**\r\n * The intersection Threshold is the margin applied when intersection a segment of the LinesMesh with a Ray.\r\n * This margin is expressed in world space coordinates, so its value may vary.\r\n * Initialized with the intersectionThreshold value of the source LinesMesh\r\n */\r\n public intersectionThreshold: number;\r\n\r\n constructor(name: string, source: LinesMesh) {\r\n super(name, source);\r\n this.intersectionThreshold = source.intersectionThreshold;\r\n }\r\n\r\n /**\r\n * Returns the string \"InstancedLinesMesh\".\r\n */\r\n public getClassName(): string {\r\n return \"InstancedLinesMesh\";\r\n }\r\n}\r\n"]}
|
package/Meshes/mesh.d.ts
CHANGED
|
@@ -949,6 +949,18 @@ export declare class Mesh extends AbstractMesh implements IGetSetVerticesData {
|
|
|
949
949
|
* @returns a new mesh
|
|
950
950
|
*/
|
|
951
951
|
static MergeMeshes(meshes: Array<Mesh>, disposeSource?: boolean, allow32BitsIndices?: boolean, meshSubclass?: Mesh, subdivideWithSubMeshes?: boolean, multiMultiMaterials?: boolean): Nullable<Mesh>;
|
|
952
|
+
/**
|
|
953
|
+
* Merge the array of meshes into a single mesh for performance reasons.
|
|
954
|
+
* @param meshes defines he vertices source. They should all be of the same material. Entries can empty
|
|
955
|
+
* @param disposeSource when true (default), dispose of the vertices from the source meshes
|
|
956
|
+
* @param allow32BitsIndices when the sum of the vertices > 64k, this must be set to true
|
|
957
|
+
* @param meshSubclass when set, vertices inserted into this Mesh. Meshes can then be merged into a Mesh sub-class.
|
|
958
|
+
* @param subdivideWithSubMeshes when true (false default), subdivide mesh to his subMesh array with meshes source.
|
|
959
|
+
* @param multiMultiMaterials when true (false default), subdivide mesh and accept multiple multi materials, ignores subdivideWithSubMeshes.
|
|
960
|
+
* @returns a new mesh
|
|
961
|
+
*/
|
|
962
|
+
static MergeMeshesAsync(meshes: Array<Mesh>, disposeSource?: boolean, allow32BitsIndices?: boolean, meshSubclass?: Mesh, subdivideWithSubMeshes?: boolean, multiMultiMaterials?: boolean): Promise<any>;
|
|
963
|
+
private static _MergeMeshesCoroutine;
|
|
952
964
|
/** @hidden */
|
|
953
965
|
addInstance(instance: InstancedMesh): void;
|
|
954
966
|
/** @hidden */
|
package/Meshes/mesh.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { __extends } from "tslib";
|
|
1
|
+
import { __extends, __generator } from "tslib";
|
|
2
2
|
import { Observable } from "../Misc/observable.js";
|
|
3
3
|
import { Tools, AsyncLoop } from "../Misc/tools.js";
|
|
4
4
|
import { DeepCopier } from "../Misc/deepCopier.js";
|
|
5
5
|
import { Tags } from "../Misc/tags.js";
|
|
6
|
+
import { runCoroutineSync, runCoroutineAsync, createYieldingScheduler } from "../Misc/coroutine.js";
|
|
6
7
|
import { Quaternion, Matrix, Vector3, Vector2 } from "../Maths/math.vector.js";
|
|
7
8
|
import { Color3 } from "../Maths/math.color.js";
|
|
8
9
|
import { Node } from "../node.js";
|
|
@@ -1840,10 +1841,9 @@ var Mesh = /** @class */ (function (_super) {
|
|
|
1840
1841
|
return this;
|
|
1841
1842
|
}
|
|
1842
1843
|
var engine = scene.getEngine();
|
|
1843
|
-
var useReverseDepthBuffer = engine.useReverseDepthBuffer;
|
|
1844
1844
|
var oldCameraMaxZ = 0;
|
|
1845
1845
|
var oldCamera = null;
|
|
1846
|
-
if (
|
|
1846
|
+
if (this.ignoreCameraMaxZ && scene.activeCamera && !scene._isInIntermediateRendering()) {
|
|
1847
1847
|
oldCameraMaxZ = scene.activeCamera.maxZ;
|
|
1848
1848
|
oldCamera = scene.activeCamera;
|
|
1849
1849
|
scene.activeCamera.maxZ = 0;
|
|
@@ -3264,7 +3264,7 @@ var Mesh = /** @class */ (function (_super) {
|
|
|
3264
3264
|
mesh._waitingData.freezeWorldMatrix = parsedMesh.freezeWorldMatrix;
|
|
3265
3265
|
}
|
|
3266
3266
|
// Parent
|
|
3267
|
-
if (parsedMesh.parentId) {
|
|
3267
|
+
if (parsedMesh.parentId !== undefined) {
|
|
3268
3268
|
mesh._waitingParentId = parsedMesh.parentId;
|
|
3269
3269
|
}
|
|
3270
3270
|
// Actions
|
|
@@ -3398,7 +3398,7 @@ var Mesh = /** @class */ (function (_super) {
|
|
|
3398
3398
|
if (parsedInstance.metadata !== undefined) {
|
|
3399
3399
|
instance.metadata = parsedInstance.metadata;
|
|
3400
3400
|
}
|
|
3401
|
-
if (parsedInstance.parentId) {
|
|
3401
|
+
if (parsedInstance.parentId !== undefined) {
|
|
3402
3402
|
instance._waitingParentId = parsedInstance.parentId;
|
|
3403
3403
|
}
|
|
3404
3404
|
if (parsedInstance.isEnabled !== undefined && parsedInstance.isEnabled !== null) {
|
|
@@ -3660,125 +3660,194 @@ var Mesh = /** @class */ (function (_super) {
|
|
|
3660
3660
|
*/
|
|
3661
3661
|
Mesh.MergeMeshes = function (meshes, disposeSource, allow32BitsIndices, meshSubclass, subdivideWithSubMeshes, multiMultiMaterials) {
|
|
3662
3662
|
if (disposeSource === void 0) { disposeSource = true; }
|
|
3663
|
-
|
|
3664
|
-
|
|
3665
|
-
|
|
3666
|
-
|
|
3667
|
-
|
|
3668
|
-
|
|
3669
|
-
|
|
3670
|
-
|
|
3671
|
-
|
|
3672
|
-
|
|
3673
|
-
|
|
3674
|
-
|
|
3675
|
-
|
|
3676
|
-
|
|
3677
|
-
|
|
3678
|
-
|
|
3679
|
-
|
|
3680
|
-
|
|
3681
|
-
|
|
3682
|
-
|
|
3683
|
-
|
|
3684
|
-
|
|
3685
|
-
|
|
3686
|
-
|
|
3687
|
-
|
|
3688
|
-
|
|
3689
|
-
|
|
3690
|
-
|
|
3691
|
-
|
|
3692
|
-
|
|
3693
|
-
|
|
3694
|
-
|
|
3695
|
-
|
|
3696
|
-
|
|
3697
|
-
|
|
3698
|
-
|
|
3699
|
-
|
|
3700
|
-
|
|
3701
|
-
|
|
3702
|
-
|
|
3703
|
-
|
|
3704
|
-
|
|
3705
|
-
|
|
3663
|
+
return runCoroutineSync(Mesh._MergeMeshesCoroutine(meshes, disposeSource, allow32BitsIndices, meshSubclass, subdivideWithSubMeshes, multiMultiMaterials, false));
|
|
3664
|
+
};
|
|
3665
|
+
/**
|
|
3666
|
+
* Merge the array of meshes into a single mesh for performance reasons.
|
|
3667
|
+
* @param meshes defines he vertices source. They should all be of the same material. Entries can empty
|
|
3668
|
+
* @param disposeSource when true (default), dispose of the vertices from the source meshes
|
|
3669
|
+
* @param allow32BitsIndices when the sum of the vertices > 64k, this must be set to true
|
|
3670
|
+
* @param meshSubclass when set, vertices inserted into this Mesh. Meshes can then be merged into a Mesh sub-class.
|
|
3671
|
+
* @param subdivideWithSubMeshes when true (false default), subdivide mesh to his subMesh array with meshes source.
|
|
3672
|
+
* @param multiMultiMaterials when true (false default), subdivide mesh and accept multiple multi materials, ignores subdivideWithSubMeshes.
|
|
3673
|
+
* @returns a new mesh
|
|
3674
|
+
*/
|
|
3675
|
+
Mesh.MergeMeshesAsync = function (meshes, disposeSource, allow32BitsIndices, meshSubclass, subdivideWithSubMeshes, multiMultiMaterials) {
|
|
3676
|
+
if (disposeSource === void 0) { disposeSource = true; }
|
|
3677
|
+
return runCoroutineAsync(Mesh._MergeMeshesCoroutine(meshes, disposeSource, allow32BitsIndices, meshSubclass, subdivideWithSubMeshes, multiMultiMaterials, true), createYieldingScheduler());
|
|
3678
|
+
};
|
|
3679
|
+
Mesh._MergeMeshesCoroutine = function (meshes, disposeSource, allow32BitsIndices, meshSubclass, subdivideWithSubMeshes, multiMultiMaterials, isAsync) {
|
|
3680
|
+
var index, totalVertices, newMultiMaterial, subIndex, matIndex, materialArray, materialIndexArray, indiceArray, mesh, material, source, getVertexDataFromMesh, sourceVertexData, meshVertexDatas, i, mergeCoroutine, mergeCoroutineStep, vertexData, applyToCoroutine, applyToCoroutineStep, offset, _i, _a, subMesh;
|
|
3681
|
+
if (disposeSource === void 0) { disposeSource = true; }
|
|
3682
|
+
return __generator(this, function (_b) {
|
|
3683
|
+
switch (_b.label) {
|
|
3684
|
+
case 0:
|
|
3685
|
+
// Remove any null/undefined entries from the mesh array
|
|
3686
|
+
meshes = meshes.filter(Boolean);
|
|
3687
|
+
if (meshes.length === 0) {
|
|
3688
|
+
return [2 /*return*/, null];
|
|
3689
|
+
}
|
|
3690
|
+
if (!allow32BitsIndices) {
|
|
3691
|
+
totalVertices = 0;
|
|
3692
|
+
// Counting vertices
|
|
3693
|
+
for (index = 0; index < meshes.length; index++) {
|
|
3694
|
+
totalVertices += meshes[index].getTotalVertices();
|
|
3695
|
+
if (totalVertices >= 65536) {
|
|
3696
|
+
Logger.Warn("Cannot merge meshes because resulting mesh will have more than 65536 vertices. Please use allow32BitsIndices = true to use 32 bits indices");
|
|
3697
|
+
return [2 /*return*/, null];
|
|
3698
|
+
}
|
|
3699
|
+
}
|
|
3700
|
+
}
|
|
3701
|
+
if (multiMultiMaterials) {
|
|
3702
|
+
newMultiMaterial = null;
|
|
3703
|
+
subdivideWithSubMeshes = false;
|
|
3704
|
+
}
|
|
3705
|
+
materialArray = new Array();
|
|
3706
|
+
materialIndexArray = new Array();
|
|
3707
|
+
indiceArray = new Array();
|
|
3708
|
+
for (index = 0; index < meshes.length; index++) {
|
|
3709
|
+
mesh = meshes[index];
|
|
3710
|
+
if (mesh.isAnInstance) {
|
|
3711
|
+
Logger.Warn("Cannot merge instance meshes.");
|
|
3712
|
+
return [2 /*return*/, null];
|
|
3713
|
+
}
|
|
3714
|
+
if (subdivideWithSubMeshes) {
|
|
3715
|
+
indiceArray.push(mesh.getTotalIndices());
|
|
3716
|
+
}
|
|
3717
|
+
if (multiMultiMaterials) {
|
|
3718
|
+
if (mesh.material) {
|
|
3719
|
+
material = mesh.material;
|
|
3720
|
+
if (material instanceof MultiMaterial) {
|
|
3721
|
+
for (matIndex = 0; matIndex < material.subMaterials.length; matIndex++) {
|
|
3722
|
+
if (materialArray.indexOf(material.subMaterials[matIndex]) < 0) {
|
|
3723
|
+
materialArray.push(material.subMaterials[matIndex]);
|
|
3724
|
+
}
|
|
3725
|
+
}
|
|
3726
|
+
for (subIndex = 0; subIndex < mesh.subMeshes.length; subIndex++) {
|
|
3727
|
+
materialIndexArray.push(materialArray.indexOf(material.subMaterials[mesh.subMeshes[subIndex].materialIndex]));
|
|
3728
|
+
indiceArray.push(mesh.subMeshes[subIndex].indexCount);
|
|
3729
|
+
}
|
|
3730
|
+
}
|
|
3731
|
+
else {
|
|
3732
|
+
if (materialArray.indexOf(material) < 0) {
|
|
3733
|
+
materialArray.push(material);
|
|
3734
|
+
}
|
|
3735
|
+
for (subIndex = 0; subIndex < mesh.subMeshes.length; subIndex++) {
|
|
3736
|
+
materialIndexArray.push(materialArray.indexOf(material));
|
|
3737
|
+
indiceArray.push(mesh.subMeshes[subIndex].indexCount);
|
|
3738
|
+
}
|
|
3739
|
+
}
|
|
3740
|
+
}
|
|
3741
|
+
else {
|
|
3742
|
+
for (subIndex = 0; subIndex < mesh.subMeshes.length; subIndex++) {
|
|
3743
|
+
materialIndexArray.push(0);
|
|
3744
|
+
indiceArray.push(mesh.subMeshes[subIndex].indexCount);
|
|
3745
|
+
}
|
|
3706
3746
|
}
|
|
3707
3747
|
}
|
|
3708
|
-
|
|
3709
|
-
|
|
3710
|
-
|
|
3748
|
+
}
|
|
3749
|
+
source = meshes[0];
|
|
3750
|
+
getVertexDataFromMesh = function (mesh) {
|
|
3751
|
+
var wm = mesh.computeWorldMatrix(true);
|
|
3752
|
+
var vertexData = VertexData.ExtractFromMesh(mesh, true, true);
|
|
3753
|
+
vertexData.transform(wm);
|
|
3754
|
+
return vertexData;
|
|
3755
|
+
};
|
|
3756
|
+
sourceVertexData = getVertexDataFromMesh(source);
|
|
3757
|
+
if (!isAsync) return [3 /*break*/, 2];
|
|
3758
|
+
return [4 /*yield*/];
|
|
3759
|
+
case 1:
|
|
3760
|
+
_b.sent();
|
|
3761
|
+
_b.label = 2;
|
|
3762
|
+
case 2:
|
|
3763
|
+
meshVertexDatas = new Array(meshes.length - 1);
|
|
3764
|
+
i = 1;
|
|
3765
|
+
_b.label = 3;
|
|
3766
|
+
case 3:
|
|
3767
|
+
if (!(i < meshes.length)) return [3 /*break*/, 6];
|
|
3768
|
+
meshVertexDatas[i - 1] = getVertexDataFromMesh(meshes[i]);
|
|
3769
|
+
if (!isAsync) return [3 /*break*/, 5];
|
|
3770
|
+
return [4 /*yield*/];
|
|
3771
|
+
case 4:
|
|
3772
|
+
_b.sent();
|
|
3773
|
+
_b.label = 5;
|
|
3774
|
+
case 5:
|
|
3775
|
+
i++;
|
|
3776
|
+
return [3 /*break*/, 3];
|
|
3777
|
+
case 6:
|
|
3778
|
+
mergeCoroutine = sourceVertexData._mergeCoroutine(meshVertexDatas, allow32BitsIndices, isAsync);
|
|
3779
|
+
mergeCoroutineStep = mergeCoroutine.next();
|
|
3780
|
+
_b.label = 7;
|
|
3781
|
+
case 7:
|
|
3782
|
+
if (!!mergeCoroutineStep.done) return [3 /*break*/, 10];
|
|
3783
|
+
if (!isAsync) return [3 /*break*/, 9];
|
|
3784
|
+
return [4 /*yield*/];
|
|
3785
|
+
case 8:
|
|
3786
|
+
_b.sent();
|
|
3787
|
+
_b.label = 9;
|
|
3788
|
+
case 9:
|
|
3789
|
+
mergeCoroutineStep = mergeCoroutine.next();
|
|
3790
|
+
return [3 /*break*/, 7];
|
|
3791
|
+
case 10:
|
|
3792
|
+
vertexData = mergeCoroutineStep.value;
|
|
3793
|
+
if (!meshSubclass) {
|
|
3794
|
+
meshSubclass = new Mesh(source.name + "_merged", source.getScene());
|
|
3795
|
+
}
|
|
3796
|
+
applyToCoroutine = vertexData._applyToCoroutine(meshSubclass, undefined, isAsync);
|
|
3797
|
+
applyToCoroutineStep = applyToCoroutine.next();
|
|
3798
|
+
_b.label = 11;
|
|
3799
|
+
case 11:
|
|
3800
|
+
if (!!applyToCoroutineStep.done) return [3 /*break*/, 14];
|
|
3801
|
+
if (!isAsync) return [3 /*break*/, 13];
|
|
3802
|
+
return [4 /*yield*/];
|
|
3803
|
+
case 12:
|
|
3804
|
+
_b.sent();
|
|
3805
|
+
_b.label = 13;
|
|
3806
|
+
case 13:
|
|
3807
|
+
applyToCoroutineStep = applyToCoroutine.next();
|
|
3808
|
+
return [3 /*break*/, 11];
|
|
3809
|
+
case 14:
|
|
3810
|
+
// Setting properties
|
|
3811
|
+
meshSubclass.checkCollisions = source.checkCollisions;
|
|
3812
|
+
meshSubclass.overrideMaterialSideOrientation = source.overrideMaterialSideOrientation;
|
|
3813
|
+
// Cleaning
|
|
3814
|
+
if (disposeSource) {
|
|
3815
|
+
for (index = 0; index < meshes.length; index++) {
|
|
3816
|
+
meshes[index].dispose();
|
|
3711
3817
|
}
|
|
3712
3818
|
}
|
|
3713
|
-
|
|
3714
|
-
|
|
3715
|
-
|
|
3819
|
+
// Subdivide
|
|
3820
|
+
if (subdivideWithSubMeshes || multiMultiMaterials) {
|
|
3821
|
+
//-- removal of global submesh
|
|
3822
|
+
meshSubclass.releaseSubMeshes();
|
|
3823
|
+
index = 0;
|
|
3824
|
+
offset = 0;
|
|
3825
|
+
//-- apply subdivision according to index table
|
|
3826
|
+
while (index < indiceArray.length) {
|
|
3827
|
+
SubMesh.CreateFromIndices(0, offset, indiceArray[index], meshSubclass, undefined, false);
|
|
3828
|
+
offset += indiceArray[index];
|
|
3829
|
+
index++;
|
|
3716
3830
|
}
|
|
3717
|
-
for (
|
|
3718
|
-
|
|
3719
|
-
|
|
3831
|
+
for (_i = 0, _a = meshSubclass.subMeshes; _i < _a.length; _i++) {
|
|
3832
|
+
subMesh = _a[_i];
|
|
3833
|
+
subMesh.refreshBoundingInfo();
|
|
3720
3834
|
}
|
|
3835
|
+
meshSubclass.computeWorldMatrix(true);
|
|
3721
3836
|
}
|
|
3722
|
-
|
|
3723
|
-
|
|
3724
|
-
|
|
3725
|
-
|
|
3726
|
-
|
|
3837
|
+
if (multiMultiMaterials) {
|
|
3838
|
+
newMultiMaterial = new MultiMaterial(source.name + "_merged", source.getScene());
|
|
3839
|
+
newMultiMaterial.subMaterials = materialArray;
|
|
3840
|
+
for (subIndex = 0; subIndex < meshSubclass.subMeshes.length; subIndex++) {
|
|
3841
|
+
meshSubclass.subMeshes[subIndex].materialIndex = materialIndexArray[subIndex];
|
|
3842
|
+
}
|
|
3843
|
+
meshSubclass.material = newMultiMaterial;
|
|
3727
3844
|
}
|
|
3728
|
-
|
|
3729
|
-
|
|
3730
|
-
|
|
3731
|
-
|
|
3732
|
-
var getVertexDataFromMesh = function (mesh) {
|
|
3733
|
-
var wm = mesh.computeWorldMatrix(true);
|
|
3734
|
-
var vertexData = VertexData.ExtractFromMesh(mesh, true, true);
|
|
3735
|
-
vertexData.transform(wm);
|
|
3736
|
-
return vertexData;
|
|
3737
|
-
};
|
|
3738
|
-
var vertexData = getVertexDataFromMesh(source).merge(meshes.slice(1).map(function (mesh) { return getVertexDataFromMesh(mesh); }), allow32BitsIndices);
|
|
3739
|
-
if (!meshSubclass) {
|
|
3740
|
-
meshSubclass = new Mesh(source.name + "_merged", source.getScene());
|
|
3741
|
-
}
|
|
3742
|
-
vertexData.applyToMesh(meshSubclass);
|
|
3743
|
-
// Setting properties
|
|
3744
|
-
meshSubclass.checkCollisions = source.checkCollisions;
|
|
3745
|
-
meshSubclass.overrideMaterialSideOrientation = source.overrideMaterialSideOrientation;
|
|
3746
|
-
// Cleaning
|
|
3747
|
-
if (disposeSource) {
|
|
3748
|
-
for (index = 0; index < meshes.length; index++) {
|
|
3749
|
-
meshes[index].dispose();
|
|
3750
|
-
}
|
|
3751
|
-
}
|
|
3752
|
-
// Subdivide
|
|
3753
|
-
if (subdivideWithSubMeshes || multiMultiMaterials) {
|
|
3754
|
-
//-- removal of global submesh
|
|
3755
|
-
meshSubclass.releaseSubMeshes();
|
|
3756
|
-
index = 0;
|
|
3757
|
-
var offset = 0;
|
|
3758
|
-
//-- apply subdivision according to index table
|
|
3759
|
-
while (index < indiceArray.length) {
|
|
3760
|
-
SubMesh.CreateFromIndices(0, offset, indiceArray[index], meshSubclass, undefined, false);
|
|
3761
|
-
offset += indiceArray[index];
|
|
3762
|
-
index++;
|
|
3763
|
-
}
|
|
3764
|
-
for (var _i = 0, _a = meshSubclass.subMeshes; _i < _a.length; _i++) {
|
|
3765
|
-
var subMesh = _a[_i];
|
|
3766
|
-
subMesh.refreshBoundingInfo();
|
|
3767
|
-
}
|
|
3768
|
-
meshSubclass.computeWorldMatrix(true);
|
|
3769
|
-
}
|
|
3770
|
-
if (multiMultiMaterials) {
|
|
3771
|
-
newMultiMaterial = new MultiMaterial(source.name + "_merged", source.getScene());
|
|
3772
|
-
newMultiMaterial.subMaterials = materialArray;
|
|
3773
|
-
for (subIndex = 0; subIndex < meshSubclass.subMeshes.length; subIndex++) {
|
|
3774
|
-
meshSubclass.subMeshes[subIndex].materialIndex = materialIndexArray[subIndex];
|
|
3845
|
+
else {
|
|
3846
|
+
meshSubclass.material = source.material;
|
|
3847
|
+
}
|
|
3848
|
+
return [2 /*return*/, meshSubclass];
|
|
3775
3849
|
}
|
|
3776
|
-
|
|
3777
|
-
}
|
|
3778
|
-
else {
|
|
3779
|
-
meshSubclass.material = source.material;
|
|
3780
|
-
}
|
|
3781
|
-
return meshSubclass;
|
|
3850
|
+
});
|
|
3782
3851
|
};
|
|
3783
3852
|
/** @hidden */
|
|
3784
3853
|
Mesh.prototype.addInstance = function (instance) {
|