@babylonjs/core 5.0.3 → 5.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Audio/audioSceneComponent.d.ts +2 -0
- package/Audio/audioSceneComponent.js +9 -7
- package/Audio/audioSceneComponent.js.map +1 -1
- package/Cameras/arcRotateCamera.d.ts +5 -0
- package/Cameras/arcRotateCamera.js +5 -0
- package/Cameras/arcRotateCamera.js.map +1 -1
- package/Cameras/camera.d.ts +5 -1
- package/Cameras/camera.js +7 -7
- package/Cameras/camera.js.map +1 -1
- package/Debug/debugLayer.d.ts +5 -0
- package/Debug/debugLayer.js +24 -0
- package/Debug/debugLayer.js.map +1 -1
- package/Engines/Processors/shaderCodeCursor.js +5 -0
- package/Engines/Processors/shaderCodeCursor.js.map +1 -1
- package/Engines/constants.d.ts +25 -1
- package/Engines/constants.js +25 -1
- package/Engines/constants.js.map +1 -1
- package/Engines/engine.d.ts +1 -1
- package/Engines/engine.js +1 -1
- package/Engines/engine.js.map +1 -1
- package/Engines/nativeEngine.d.ts +1 -1
- package/Engines/nativeEngine.js +7 -8
- package/Engines/nativeEngine.js.map +1 -1
- package/Engines/thinEngine.js +2 -2
- package/Engines/thinEngine.js.map +1 -1
- package/Engines/webgpuEngine.d.ts +4 -0
- package/Engines/webgpuEngine.js +2 -0
- package/Engines/webgpuEngine.js.map +1 -1
- package/Gizmos/boundingBoxGizmo.js +6 -6
- package/Gizmos/boundingBoxGizmo.js.map +1 -1
- package/Gizmos/gizmo.d.ts +5 -0
- package/Gizmos/gizmo.js +8 -2
- package/Gizmos/gizmo.js.map +1 -1
- package/Inputs/scene.inputManager.js +7 -1
- package/Inputs/scene.inputManager.js.map +1 -1
- package/Lights/Shadows/shadowGenerator.d.ts +5 -0
- package/Lights/Shadows/shadowGenerator.js +20 -2
- package/Lights/Shadows/shadowGenerator.js.map +1 -1
- package/Loading/Plugins/babylonFileLoader.js +8 -6
- package/Loading/Plugins/babylonFileLoader.js.map +1 -1
- package/Materials/Node/Blocks/PBR/clearCoatBlock.d.ts +4 -0
- package/Materials/Node/Blocks/PBR/clearCoatBlock.js +19 -1
- package/Materials/Node/Blocks/PBR/clearCoatBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/iridescenceBlock.d.ts +54 -0
- package/Materials/Node/Blocks/PBR/iridescenceBlock.js +135 -0
- package/Materials/Node/Blocks/PBR/iridescenceBlock.js.map +1 -0
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.d.ts +4 -0
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +42 -24
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
- package/Materials/PBR/index.d.ts +1 -0
- package/Materials/PBR/index.js +1 -0
- package/Materials/PBR/index.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.d.ts +5 -0
- package/Materials/PBR/pbrBaseMaterial.js +2 -0
- package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
- package/Materials/PBR/pbrIridescenceConfiguration.d.ts +102 -0
- package/Materials/PBR/pbrIridescenceConfiguration.js +257 -0
- package/Materials/PBR/pbrIridescenceConfiguration.js.map +1 -0
- package/Materials/Textures/Loaders/ktxTextureLoader.js +31 -0
- package/Materials/Textures/Loaders/ktxTextureLoader.js.map +1 -1
- package/Materials/Textures/MultiviewRenderTarget.js +1 -0
- package/Materials/Textures/MultiviewRenderTarget.js.map +1 -1
- package/Materials/Textures/videoTexture.js +12 -12
- package/Materials/Textures/videoTexture.js.map +1 -1
- package/Materials/materialFlags.d.ts +6 -0
- package/Materials/materialFlags.js +18 -0
- package/Materials/materialFlags.js.map +1 -1
- package/Materials/materialPluginFactoryExport.d.ts +6 -0
- package/Materials/materialPluginFactoryExport.js +12 -0
- package/Materials/materialPluginFactoryExport.js.map +1 -1
- package/Maths/math.color.d.ts +11 -2
- package/Maths/math.color.js +12 -7
- package/Maths/math.color.js.map +1 -1
- package/Meshes/abstractMesh.d.ts +1 -1
- package/Meshes/abstractMesh.js +6 -3
- package/Meshes/abstractMesh.js.map +1 -1
- package/Meshes/mesh.d.ts +2 -2
- package/Meshes/mesh.js +11 -3
- package/Meshes/mesh.js.map +1 -1
- package/Misc/khronosTextureContainer.js +1 -1
- package/Misc/khronosTextureContainer.js.map +1 -1
- package/Physics/physicsImpostor.js +1 -1
- package/Physics/physicsImpostor.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.d.ts +6 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js +13 -2
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js.map +1 -1
- package/Rendering/boundingBoxRenderer.js +4 -4
- package/Rendering/boundingBoxRenderer.js.map +1 -1
- package/Shaders/ShadersInclude/boundingBoxRendererUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/boundingBoxRendererUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/helperFunctions.js +1 -1
- package/Shaders/ShadersInclude/helperFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/lightFragment.js +1 -1
- package/Shaders/ShadersInclude/lightFragment.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBRDFFunctions.js +1 -1
- package/Shaders/ShadersInclude/pbrBRDFFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockIridescence.d.ts +5 -0
- package/Shaders/ShadersInclude/pbrBlockIridescence.js +9 -0
- package/Shaders/ShadersInclude/pbrBlockIridescence.js.map +1 -0
- package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.js +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/pbrFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js +1 -1
- package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/pbrVertexDeclaration.js.map +1 -1
- package/Shaders/pbr.fragment.d.ts +1 -0
- package/Shaders/pbr.fragment.js +2 -1
- package/Shaders/pbr.fragment.js.map +1 -1
- package/Shaders/pbr.vertex.js +1 -1
- package/Shaders/pbr.vertex.js.map +1 -1
- package/XR/features/WebXRHandTracking.js +1 -1
- package/XR/features/WebXRHandTracking.js.map +1 -1
- package/XR/features/WebXRImageTracking.d.ts +0 -5
- package/XR/features/WebXRImageTracking.js +5 -8
- package/XR/features/WebXRImageTracking.js.map +1 -1
- package/XR/native/nativeXRFrame.d.ts +2 -1
- package/XR/native/nativeXRFrame.js +5 -1
- package/XR/native/nativeXRFrame.js.map +1 -1
- package/assetContainer.d.ts +13 -1
- package/assetContainer.js +130 -17
- package/assetContainer.js.map +1 -1
- package/package.json +1 -1
- package/scene.d.ts +4 -0
- package/scene.js +4 -0
- package/scene.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"videoTexture.js","sourceRoot":"","sources":["../../../../../../lts/core/generated/Materials/Textures/videoTexture.ts"],"names":[],"mappings":"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","sourcesContent":["import { Observable } from \"../../Misc/observable\";\r\nimport { Tools } from \"../../Misc/tools\";\r\nimport { Logger } from \"../../Misc/logger\";\r\nimport type { Nullable } from \"../../types\";\r\nimport type { Scene } from \"../../scene\";\r\nimport { Texture } from \"../../Materials/Textures/texture\";\r\n\r\nimport \"../../Engines/Extensions/engine.videoTexture\";\r\nimport \"../../Engines/Extensions/engine.dynamicTexture\";\r\n\r\nfunction removeSource(video: HTMLVideoElement): void {\r\n // Remove any <source> elements, etc.\r\n while (video.firstChild) {\r\n video.removeChild(video.firstChild);\r\n }\r\n\r\n // detach srcObject\r\n video.srcObject = null;\r\n\r\n // Set a blank src (https://html.spec.whatwg.org/multipage/media.html#best-practices-for-authors-using-media-elements)\r\n video.src = \"\";\r\n\r\n // Prevent non-important errors maybe (https://twitter.com/beraliv/status/1205214277956775936)\r\n video.removeAttribute(\"src\");\r\n}\r\n\r\n/**\r\n * Settings for finer control over video usage\r\n */\r\nexport interface VideoTextureSettings {\r\n /**\r\n * Applies `autoplay` to video, if specified\r\n */\r\n autoPlay?: boolean;\r\n\r\n /**\r\n * Applies `muted` to video, if specified\r\n */\r\n muted?: boolean;\r\n\r\n /**\r\n * Applies `loop` to video, if specified\r\n */\r\n loop?: boolean;\r\n\r\n /**\r\n * Automatically updates internal texture from video at every frame in the render loop\r\n */\r\n autoUpdateTexture: boolean;\r\n\r\n /**\r\n * Image src displayed during the video loading or until the user interacts with the video.\r\n */\r\n poster?: string;\r\n}\r\n\r\n/**\r\n * If you want to display a video in your scene, this is the special texture for that.\r\n * This special texture works similar to other textures, with the exception of a few parameters.\r\n * @see https://doc.babylonjs.com/divingDeeper/materials/using/videoTexture\r\n */\r\nexport class VideoTexture extends Texture {\r\n /**\r\n * Tells whether textures will be updated automatically or user is required to call `updateTexture` manually\r\n */\r\n public readonly autoUpdateTexture: boolean;\r\n\r\n /**\r\n * The video instance used by the texture internally\r\n */\r\n public readonly video: HTMLVideoElement;\r\n\r\n private _onUserActionRequestedObservable: Nullable<Observable<Texture>> = null;\r\n\r\n /**\r\n * Event triggered when a dom action is required by the user to play the video.\r\n * This happens due to recent changes in browser policies preventing video to auto start.\r\n */\r\n public get onUserActionRequestedObservable(): Observable<Texture> {\r\n if (!this._onUserActionRequestedObservable) {\r\n this._onUserActionRequestedObservable = new Observable<Texture>();\r\n }\r\n return this._onUserActionRequestedObservable;\r\n }\r\n\r\n private _generateMipMaps: boolean;\r\n private _stillImageCaptured = false;\r\n private _displayingPosterTexture = false;\r\n private _settings: VideoTextureSettings;\r\n private _createInternalTextureOnEvent: string;\r\n private _frameId = -1;\r\n private _currentSrc: Nullable<string | string[] | HTMLVideoElement> = null;\r\n private _onError?: Nullable<(message?: string, exception?: any) => void>;\r\n private _errorFound = false;\r\n\r\n private _processError(reason: any) {\r\n this._errorFound = true;\r\n if (this._onError) {\r\n this._onError(reason?.message);\r\n } else {\r\n Logger.Error(reason?.message);\r\n }\r\n }\r\n\r\n private _handlePlay() {\r\n this._errorFound = false;\r\n this.video.play().catch((reason) => {\r\n if (reason?.name === \"NotAllowedError\") {\r\n if (this._onUserActionRequestedObservable && this._onUserActionRequestedObservable.hasObservers()) {\r\n this._onUserActionRequestedObservable.notifyObservers(this);\r\n return;\r\n } else if (!this.video.muted) {\r\n Logger.Warn(\"Unable to autoplay a video with sound. Trying again with muted turned true\");\r\n this.video.muted = true;\r\n this._errorFound = false;\r\n this.video.play().catch((otherReason) => {\r\n this._processError(otherReason);\r\n });\r\n return;\r\n }\r\n }\r\n\r\n this._processError(reason);\r\n });\r\n }\r\n\r\n /**\r\n * Creates a video texture.\r\n * If you want to display a video in your scene, this is the special texture for that.\r\n * This special texture works similar to other textures, with the exception of a few parameters.\r\n * @see https://doc.babylonjs.com/how_to/video_texture\r\n * @param name optional name, will detect from video source, if not defined\r\n * @param src can be used to provide an url, array of urls or an already setup HTML video element.\r\n * @param scene is obviously the current scene.\r\n * @param generateMipMaps can be used to turn on mipmaps (Can be expensive for videoTextures because they are often updated).\r\n * @param invertY is false by default but can be used to invert video on Y axis\r\n * @param samplingMode controls the sampling method and is set to TRILINEAR_SAMPLINGMODE by default\r\n * @param settings allows finer control over video usage\r\n * @param onError defines a callback triggered when an error occurred during the loading session\r\n */\r\n constructor(\r\n name: Nullable<string>,\r\n src: string | string[] | HTMLVideoElement,\r\n scene: Nullable<Scene>,\r\n generateMipMaps = false,\r\n invertY = false,\r\n samplingMode: number = Texture.TRILINEAR_SAMPLINGMODE,\r\n settings: Partial<VideoTextureSettings> = {},\r\n onError?: Nullable<(message?: string, exception?: any) => void>\r\n ) {\r\n super(null, scene, !generateMipMaps, invertY);\r\n\r\n this._settings = {\r\n autoPlay: true,\r\n loop: true,\r\n autoUpdateTexture: true,\r\n ...settings,\r\n };\r\n\r\n this._onError = onError;\r\n\r\n this._generateMipMaps = generateMipMaps;\r\n this._initialSamplingMode = samplingMode;\r\n this.autoUpdateTexture = this._settings.autoUpdateTexture;\r\n\r\n this._currentSrc = src;\r\n this.name = name || this._getName(src);\r\n this.video = this._getVideo(src);\r\n\r\n if (settings.poster) {\r\n this.video.poster = settings.poster;\r\n }\r\n if (settings.autoPlay !== undefined) {\r\n this.video.autoplay = settings.autoPlay;\r\n }\r\n if (settings.loop !== undefined) {\r\n this.video.loop = settings.loop;\r\n }\r\n if (settings.muted !== undefined) {\r\n this.video.muted = settings.muted;\r\n }\r\n\r\n this.video.setAttribute(\"playsinline\", \"\");\r\n this.video.addEventListener(\"paused\", this._updateInternalTexture);\r\n this.video.addEventListener(\"seeked\", this._updateInternalTexture);\r\n this.video.addEventListener(\"emptied\", this._reset);\r\n this._createInternalTextureOnEvent = settings.poster && !settings.autoPlay ? \"play\" : \"canplay\";\r\n this.video.addEventListener(this._createInternalTextureOnEvent, this._createInternalTexture);\r\n\r\n if (settings.autoPlay) {\r\n this._handlePlay();\r\n }\r\n\r\n const videoHasEnoughData = this.video.readyState >= this.video.HAVE_CURRENT_DATA;\r\n if (settings.poster && (!settings.autoPlay || !videoHasEnoughData)) {\r\n this._texture = this._getEngine()!.createTexture(settings.poster!, false, !this.invertY, scene);\r\n this._displayingPosterTexture = true;\r\n } else if (videoHasEnoughData) {\r\n this._createInternalTexture();\r\n }\r\n }\r\n\r\n /**\r\n * Get the current class name of the video texture useful for serialization or dynamic coding.\r\n * @returns \"VideoTexture\"\r\n */\r\n public getClassName(): string {\r\n return \"VideoTexture\";\r\n }\r\n\r\n private _getName(src: string | string[] | HTMLVideoElement): string {\r\n if (src instanceof HTMLVideoElement) {\r\n return src.currentSrc;\r\n }\r\n\r\n if (typeof src === \"object\") {\r\n return src.toString();\r\n }\r\n\r\n return src;\r\n }\r\n\r\n private _getVideo(src: string | string[] | HTMLVideoElement): HTMLVideoElement {\r\n if ((<any>src).isNative) {\r\n return <HTMLVideoElement>src;\r\n }\r\n if (src instanceof HTMLVideoElement) {\r\n Tools.SetCorsBehavior(src.currentSrc, src);\r\n return src;\r\n }\r\n const video: HTMLVideoElement = document.createElement(\"video\");\r\n if (typeof src === \"string\") {\r\n Tools.SetCorsBehavior(src, video);\r\n video.src = src;\r\n } else {\r\n Tools.SetCorsBehavior(src[0], video);\r\n src.forEach((url) => {\r\n const source = document.createElement(\"source\");\r\n source.src = url;\r\n video.appendChild(source);\r\n });\r\n }\r\n\r\n this.onDisposeObservable.addOnce(() => {\r\n removeSource(video);\r\n });\r\n\r\n return video;\r\n }\r\n\r\n private _createInternalTexture = (): void => {\r\n if (this._texture != null) {\r\n if (this._displayingPosterTexture) {\r\n this._texture.dispose();\r\n this._displayingPosterTexture = false;\r\n } else {\r\n return;\r\n }\r\n }\r\n\r\n if (!this._getEngine()!.needPOTTextures || (Tools.IsExponentOfTwo(this.video.videoWidth) && Tools.IsExponentOfTwo(this.video.videoHeight))) {\r\n this.wrapU = Texture.WRAP_ADDRESSMODE;\r\n this.wrapV = Texture.WRAP_ADDRESSMODE;\r\n } else {\r\n this.wrapU = Texture.CLAMP_ADDRESSMODE;\r\n this.wrapV = Texture.CLAMP_ADDRESSMODE;\r\n this._generateMipMaps = false;\r\n }\r\n\r\n this._texture = this._getEngine()!.createDynamicTexture(this.video.videoWidth, this.video.videoHeight, this._generateMipMaps, this.samplingMode);\r\n\r\n if (!this.video.autoplay && !this._settings.poster) {\r\n const oldHandler = this.video.onplaying;\r\n const oldMuted = this.video.muted;\r\n this.video.muted = true;\r\n this.video.onplaying = () => {\r\n this.video.muted = oldMuted;\r\n this.video.onplaying = oldHandler;\r\n this._updateInternalTexture();\r\n if (!this._errorFound) {\r\n this.video.pause();\r\n }\r\n if (this.onLoadObservable.hasObservers()) {\r\n this.onLoadObservable.notifyObservers(this);\r\n }\r\n };\r\n this._handlePlay();\r\n } else {\r\n this._updateInternalTexture();\r\n if (this.onLoadObservable.hasObservers()) {\r\n this.onLoadObservable.notifyObservers(this);\r\n }\r\n }\r\n };\r\n\r\n private _reset = (): void => {\r\n if (this._texture == null) {\r\n return;\r\n }\r\n\r\n if (!this._displayingPosterTexture) {\r\n this._texture.dispose();\r\n this._texture = null;\r\n }\r\n };\r\n\r\n /**\r\n * @hidden Internal method to initiate `update`.\r\n */\r\n public _rebuild(): void {\r\n this.update();\r\n }\r\n\r\n /**\r\n * Update Texture in the `auto` mode. Does not do anything if `settings.autoUpdateTexture` is false.\r\n */\r\n public update(): void {\r\n if (!this.autoUpdateTexture) {\r\n // Expecting user to call `updateTexture` manually\r\n return;\r\n }\r\n\r\n this.updateTexture(true);\r\n }\r\n\r\n /**\r\n * Update Texture in `manual` mode. Does not do anything if not visible or paused.\r\n * @param isVisible Visibility state, detected by user using `scene.getActiveMeshes()` or otherwise.\r\n */\r\n public updateTexture(isVisible: boolean): void {\r\n if (!isVisible) {\r\n return;\r\n }\r\n if (this.video.paused && this._stillImageCaptured) {\r\n return;\r\n }\r\n this._stillImageCaptured = true;\r\n this._updateInternalTexture();\r\n }\r\n\r\n protected _updateInternalTexture = (): void => {\r\n if (this._texture == null) {\r\n return;\r\n }\r\n if (this.video.readyState < this.video.HAVE_CURRENT_DATA) {\r\n return;\r\n }\r\n if (this._displayingPosterTexture) {\r\n return;\r\n }\r\n\r\n const frameId = this.getScene()!.getFrameId();\r\n if (this._frameId === frameId) {\r\n return;\r\n }\r\n\r\n this._frameId = frameId;\r\n\r\n this._getEngine()!.updateVideoTexture(this._texture, this.video, this._invertY);\r\n };\r\n\r\n /**\r\n * Change video content. Changing video instance or setting multiple urls (as in constructor) is not supported.\r\n * @param url New url.\r\n */\r\n public updateURL(url: string): void {\r\n this.video.src = url;\r\n this._currentSrc = url;\r\n }\r\n\r\n /**\r\n * Clones the texture.\r\n * @returns the cloned texture\r\n */\r\n public clone(): VideoTexture {\r\n return new VideoTexture(this.name, this._currentSrc!, this.getScene(), this._generateMipMaps, this.invertY, this.samplingMode, this._settings);\r\n }\r\n\r\n /**\r\n * Dispose the texture and release its associated resources.\r\n */\r\n public dispose(): void {\r\n super.dispose();\r\n\r\n this._currentSrc = null;\r\n\r\n if (this._onUserActionRequestedObservable) {\r\n this._onUserActionRequestedObservable.clear();\r\n this._onUserActionRequestedObservable = null;\r\n }\r\n\r\n this.video.removeEventListener(this._createInternalTextureOnEvent, this._createInternalTexture);\r\n this.video.removeEventListener(\"paused\", this._updateInternalTexture);\r\n this.video.removeEventListener(\"seeked\", this._updateInternalTexture);\r\n this.video.removeEventListener(\"emptied\", this._reset);\r\n this.video.pause();\r\n }\r\n\r\n /**\r\n * Creates a video texture straight from a stream.\r\n * @param scene Define the scene the texture should be created in\r\n * @param stream Define the stream the texture should be created from\r\n * @param constraints video constraints\r\n * @param invertY Defines if the video should be stored with invert Y set to true (true by default)\r\n * @returns The created video texture as a promise\r\n */\r\n public static CreateFromStreamAsync(scene: Scene, stream: MediaStream, constraints: any, invertY = true): Promise<VideoTexture> {\r\n const video = scene.getEngine().createVideoElement(constraints);\r\n\r\n if (scene.getEngine()._badOS) {\r\n // Yes... I know and I hope to remove it soon...\r\n document.body.appendChild(video);\r\n video.style.transform = \"scale(0.0001, 0.0001)\";\r\n video.style.opacity = \"0\";\r\n video.style.position = \"fixed\";\r\n video.style.bottom = \"0px\";\r\n video.style.right = \"0px\";\r\n }\r\n\r\n video.setAttribute(\"autoplay\", \"\");\r\n video.setAttribute(\"muted\", \"true\");\r\n video.setAttribute(\"playsinline\", \"\");\r\n video.muted = true;\r\n\r\n if (video.mozSrcObject !== undefined) {\r\n // hack for Firefox < 19\r\n video.mozSrcObject = stream;\r\n } else {\r\n if (typeof video.srcObject == \"object\") {\r\n video.srcObject = stream;\r\n } else {\r\n window.URL = window.URL || window.webkitURL || window.mozURL || window.msURL;\r\n // older API. See https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL#using_object_urls_for_media_streams\r\n video.src = window.URL && window.URL.createObjectURL(stream as any);\r\n }\r\n }\r\n\r\n return new Promise<VideoTexture>((resolve) => {\r\n const onPlaying = () => {\r\n const videoTexture = new VideoTexture(\"video\", video, scene, true, invertY);\r\n if (scene.getEngine()._badOS) {\r\n videoTexture.onDisposeObservable.addOnce(() => {\r\n video.remove();\r\n });\r\n }\r\n videoTexture.onDisposeObservable.addOnce(() => {\r\n removeSource(video);\r\n });\r\n\r\n resolve(videoTexture);\r\n video.removeEventListener(\"playing\", onPlaying);\r\n };\r\n\r\n video.addEventListener(\"playing\", onPlaying);\r\n video.play();\r\n });\r\n }\r\n\r\n /**\r\n * Creates a video texture straight from your WebCam video feed.\r\n * @param scene Define the scene the texture should be created in\r\n * @param constraints Define the constraints to use to create the web cam feed from WebRTC\r\n * @param audioConstaints Define the audio constraints to use to create the web cam feed from WebRTC\r\n * @param invertY Defines if the video should be stored with invert Y set to true (true by default)\r\n * @returns The created video texture as a promise\r\n */\r\n public static CreateFromWebCamAsync(\r\n scene: Scene,\r\n constraints: {\r\n minWidth: number;\r\n maxWidth: number;\r\n minHeight: number;\r\n maxHeight: number;\r\n deviceId: string;\r\n } & MediaTrackConstraints,\r\n audioConstaints: boolean | MediaTrackConstraints = false,\r\n invertY = true\r\n ): Promise<VideoTexture> {\r\n let constraintsDeviceId;\r\n if (constraints && constraints.deviceId) {\r\n constraintsDeviceId = {\r\n exact: constraints.deviceId,\r\n };\r\n }\r\n\r\n if (navigator.mediaDevices) {\r\n return navigator.mediaDevices\r\n .getUserMedia({\r\n video: constraints,\r\n audio: audioConstaints,\r\n })\r\n .then((stream) => {\r\n return this.CreateFromStreamAsync(scene, stream, constraints, invertY);\r\n });\r\n } else {\r\n const getUserMedia = (navigator as any).getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;\r\n\r\n if (getUserMedia) {\r\n getUserMedia(\r\n {\r\n video: {\r\n deviceId: constraintsDeviceId,\r\n width: {\r\n min: (constraints && constraints.minWidth) || 256,\r\n max: (constraints && constraints.maxWidth) || 640,\r\n },\r\n height: {\r\n min: (constraints && constraints.minHeight) || 256,\r\n max: (constraints && constraints.maxHeight) || 480,\r\n },\r\n },\r\n audio: audioConstaints,\r\n },\r\n (stream: any) => {\r\n return this.CreateFromStreamAsync(scene, stream, constraints, invertY);\r\n },\r\n function (e: any) {\r\n Logger.Error(e.name);\r\n }\r\n );\r\n }\r\n }\r\n\r\n return Promise.reject(\"No support for userMedia on this device\");\r\n }\r\n\r\n /**\r\n * Creates a video texture straight from your WebCam video feed.\r\n * @param scene Defines the scene the texture should be created in\r\n * @param onReady Defines a callback to triggered once the texture will be ready\r\n * @param constraints Defines the constraints to use to create the web cam feed from WebRTC\r\n * @param audioConstaints Defines the audio constraints to use to create the web cam feed from WebRTC\r\n * @param invertY Defines if the video should be stored with invert Y set to true (true by default)\r\n */\r\n public static CreateFromWebCam(\r\n scene: Scene,\r\n onReady: (videoTexture: VideoTexture) => void,\r\n constraints: {\r\n minWidth: number;\r\n maxWidth: number;\r\n minHeight: number;\r\n maxHeight: number;\r\n deviceId: string;\r\n } & MediaTrackConstraints,\r\n audioConstaints: boolean | MediaTrackConstraints = false,\r\n invertY = true\r\n ): void {\r\n this.CreateFromWebCamAsync(scene, constraints, audioConstaints, invertY)\r\n .then(function (videoTexture) {\r\n if (onReady) {\r\n onReady(videoTexture);\r\n }\r\n })\r\n .catch(function (err) {\r\n Logger.Error(err.name);\r\n });\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"videoTexture.js","sourceRoot":"","sources":["../../../../../../lts/core/generated/Materials/Textures/videoTexture.ts"],"names":[],"mappings":"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","sourcesContent":["import { Observable } from \"../../Misc/observable\";\r\nimport { Tools } from \"../../Misc/tools\";\r\nimport { Logger } from \"../../Misc/logger\";\r\nimport type { Nullable } from \"../../types\";\r\nimport type { Scene } from \"../../scene\";\r\nimport { Texture } from \"../../Materials/Textures/texture\";\r\n\r\nimport \"../../Engines/Extensions/engine.videoTexture\";\r\nimport \"../../Engines/Extensions/engine.dynamicTexture\";\r\n\r\nfunction removeSource(video: HTMLVideoElement): void {\r\n // Remove any <source> elements, etc.\r\n while (video.firstChild) {\r\n video.removeChild(video.firstChild);\r\n }\r\n\r\n // detach srcObject\r\n video.srcObject = null;\r\n\r\n // Set a blank src (https://html.spec.whatwg.org/multipage/media.html#best-practices-for-authors-using-media-elements)\r\n video.src = \"\";\r\n\r\n // Prevent non-important errors maybe (https://twitter.com/beraliv/status/1205214277956775936)\r\n video.removeAttribute(\"src\");\r\n}\r\n\r\n/**\r\n * Settings for finer control over video usage\r\n */\r\nexport interface VideoTextureSettings {\r\n /**\r\n * Applies `autoplay` to video, if specified\r\n */\r\n autoPlay?: boolean;\r\n\r\n /**\r\n * Applies `muted` to video, if specified\r\n */\r\n muted?: boolean;\r\n\r\n /**\r\n * Applies `loop` to video, if specified\r\n */\r\n loop?: boolean;\r\n\r\n /**\r\n * Automatically updates internal texture from video at every frame in the render loop\r\n */\r\n autoUpdateTexture: boolean;\r\n\r\n /**\r\n * Image src displayed during the video loading or until the user interacts with the video.\r\n */\r\n poster?: string;\r\n}\r\n\r\n/**\r\n * If you want to display a video in your scene, this is the special texture for that.\r\n * This special texture works similar to other textures, with the exception of a few parameters.\r\n * @see https://doc.babylonjs.com/divingDeeper/materials/using/videoTexture\r\n */\r\nexport class VideoTexture extends Texture {\r\n /**\r\n * Tells whether textures will be updated automatically or user is required to call `updateTexture` manually\r\n */\r\n public readonly autoUpdateTexture: boolean;\r\n\r\n /**\r\n * The video instance used by the texture internally\r\n */\r\n public readonly video: HTMLVideoElement;\r\n\r\n private _onUserActionRequestedObservable: Nullable<Observable<Texture>> = null;\r\n\r\n /**\r\n * Event triggered when a dom action is required by the user to play the video.\r\n * This happens due to recent changes in browser policies preventing video to auto start.\r\n */\r\n public get onUserActionRequestedObservable(): Observable<Texture> {\r\n if (!this._onUserActionRequestedObservable) {\r\n this._onUserActionRequestedObservable = new Observable<Texture>();\r\n }\r\n return this._onUserActionRequestedObservable;\r\n }\r\n\r\n private _generateMipMaps: boolean;\r\n private _stillImageCaptured = false;\r\n private _displayingPosterTexture = false;\r\n private _settings: VideoTextureSettings;\r\n private _createInternalTextureOnEvent: string;\r\n private _frameId = -1;\r\n private _currentSrc: Nullable<string | string[] | HTMLVideoElement> = null;\r\n private _onError?: Nullable<(message?: string, exception?: any) => void>;\r\n private _errorFound = false;\r\n\r\n private _processError(reason: any) {\r\n this._errorFound = true;\r\n if (this._onError) {\r\n this._onError(reason?.message);\r\n } else {\r\n Logger.Error(reason?.message);\r\n }\r\n }\r\n\r\n private _handlePlay() {\r\n this._errorFound = false;\r\n this.video.play().catch((reason) => {\r\n if (reason?.name === \"NotAllowedError\") {\r\n if (this._onUserActionRequestedObservable && this._onUserActionRequestedObservable.hasObservers()) {\r\n this._onUserActionRequestedObservable.notifyObservers(this);\r\n return;\r\n } else if (!this.video.muted) {\r\n Logger.Warn(\"Unable to autoplay a video with sound. Trying again with muted turned true\");\r\n this.video.muted = true;\r\n this._errorFound = false;\r\n this.video.play().catch((otherReason) => {\r\n this._processError(otherReason);\r\n });\r\n return;\r\n }\r\n }\r\n\r\n this._processError(reason);\r\n });\r\n }\r\n\r\n /**\r\n * Creates a video texture.\r\n * If you want to display a video in your scene, this is the special texture for that.\r\n * This special texture works similar to other textures, with the exception of a few parameters.\r\n * @see https://doc.babylonjs.com/how_to/video_texture\r\n * @param name optional name, will detect from video source, if not defined\r\n * @param src can be used to provide an url, array of urls or an already setup HTML video element.\r\n * @param scene is obviously the current scene.\r\n * @param generateMipMaps can be used to turn on mipmaps (Can be expensive for videoTextures because they are often updated).\r\n * @param invertY is false by default but can be used to invert video on Y axis\r\n * @param samplingMode controls the sampling method and is set to TRILINEAR_SAMPLINGMODE by default\r\n * @param settings allows finer control over video usage\r\n * @param onError defines a callback triggered when an error occurred during the loading session\r\n */\r\n constructor(\r\n name: Nullable<string>,\r\n src: string | string[] | HTMLVideoElement,\r\n scene: Nullable<Scene>,\r\n generateMipMaps = false,\r\n invertY = false,\r\n samplingMode: number = Texture.TRILINEAR_SAMPLINGMODE,\r\n settings: Partial<VideoTextureSettings> = {},\r\n onError?: Nullable<(message?: string, exception?: any) => void>\r\n ) {\r\n super(null, scene, !generateMipMaps, invertY);\r\n\r\n this._settings = {\r\n autoPlay: true,\r\n loop: true,\r\n autoUpdateTexture: true,\r\n ...settings,\r\n };\r\n\r\n this._onError = onError;\r\n\r\n this._generateMipMaps = generateMipMaps;\r\n this._initialSamplingMode = samplingMode;\r\n this.autoUpdateTexture = this._settings.autoUpdateTexture;\r\n\r\n this._currentSrc = src;\r\n this.name = name || this._getName(src);\r\n this.video = this._getVideo(src);\r\n\r\n if (this._settings.poster) {\r\n this.video.poster = this._settings.poster;\r\n }\r\n if (this._settings.autoPlay !== undefined) {\r\n this.video.autoplay = this._settings.autoPlay;\r\n }\r\n if (this._settings.loop !== undefined) {\r\n this.video.loop = this._settings.loop;\r\n }\r\n if (this._settings.muted !== undefined) {\r\n this.video.muted = this._settings.muted;\r\n }\r\n\r\n this.video.setAttribute(\"playsinline\", \"\");\r\n this.video.addEventListener(\"paused\", this._updateInternalTexture);\r\n this.video.addEventListener(\"seeked\", this._updateInternalTexture);\r\n this.video.addEventListener(\"emptied\", this._reset);\r\n this._createInternalTextureOnEvent = this._settings.poster && !this._settings.autoPlay ? \"play\" : \"canplay\";\r\n this.video.addEventListener(this._createInternalTextureOnEvent, this._createInternalTexture);\r\n\r\n if (this._settings.autoPlay) {\r\n this._handlePlay();\r\n }\r\n\r\n const videoHasEnoughData = this.video.readyState >= this.video.HAVE_CURRENT_DATA;\r\n if (this._settings.poster && (!this._settings.autoPlay || !videoHasEnoughData)) {\r\n this._texture = this._getEngine()!.createTexture(this._settings.poster!, false, !this.invertY, scene);\r\n this._displayingPosterTexture = true;\r\n } else if (videoHasEnoughData) {\r\n this._createInternalTexture();\r\n }\r\n }\r\n\r\n /**\r\n * Get the current class name of the video texture useful for serialization or dynamic coding.\r\n * @returns \"VideoTexture\"\r\n */\r\n public getClassName(): string {\r\n return \"VideoTexture\";\r\n }\r\n\r\n private _getName(src: string | string[] | HTMLVideoElement): string {\r\n if (src instanceof HTMLVideoElement) {\r\n return src.currentSrc;\r\n }\r\n\r\n if (typeof src === \"object\") {\r\n return src.toString();\r\n }\r\n\r\n return src;\r\n }\r\n\r\n private _getVideo(src: string | string[] | HTMLVideoElement): HTMLVideoElement {\r\n if ((<any>src).isNative) {\r\n return <HTMLVideoElement>src;\r\n }\r\n if (src instanceof HTMLVideoElement) {\r\n Tools.SetCorsBehavior(src.currentSrc, src);\r\n return src;\r\n }\r\n const video: HTMLVideoElement = document.createElement(\"video\");\r\n if (typeof src === \"string\") {\r\n Tools.SetCorsBehavior(src, video);\r\n video.src = src;\r\n } else {\r\n Tools.SetCorsBehavior(src[0], video);\r\n src.forEach((url) => {\r\n const source = document.createElement(\"source\");\r\n source.src = url;\r\n video.appendChild(source);\r\n });\r\n }\r\n\r\n this.onDisposeObservable.addOnce(() => {\r\n removeSource(video);\r\n });\r\n\r\n return video;\r\n }\r\n\r\n private _createInternalTexture = (): void => {\r\n if (this._texture != null) {\r\n if (this._displayingPosterTexture) {\r\n this._texture.dispose();\r\n this._displayingPosterTexture = false;\r\n } else {\r\n return;\r\n }\r\n }\r\n\r\n if (!this._getEngine()!.needPOTTextures || (Tools.IsExponentOfTwo(this.video.videoWidth) && Tools.IsExponentOfTwo(this.video.videoHeight))) {\r\n this.wrapU = Texture.WRAP_ADDRESSMODE;\r\n this.wrapV = Texture.WRAP_ADDRESSMODE;\r\n } else {\r\n this.wrapU = Texture.CLAMP_ADDRESSMODE;\r\n this.wrapV = Texture.CLAMP_ADDRESSMODE;\r\n this._generateMipMaps = false;\r\n }\r\n\r\n this._texture = this._getEngine()!.createDynamicTexture(this.video.videoWidth, this.video.videoHeight, this._generateMipMaps, this.samplingMode);\r\n\r\n if (!this.video.autoplay && !this._settings.poster) {\r\n const oldHandler = this.video.onplaying;\r\n const oldMuted = this.video.muted;\r\n this.video.muted = true;\r\n this.video.onplaying = () => {\r\n this.video.muted = oldMuted;\r\n this.video.onplaying = oldHandler;\r\n this._updateInternalTexture();\r\n if (!this._errorFound) {\r\n this.video.pause();\r\n }\r\n if (this.onLoadObservable.hasObservers()) {\r\n this.onLoadObservable.notifyObservers(this);\r\n }\r\n };\r\n this._handlePlay();\r\n } else {\r\n this._updateInternalTexture();\r\n if (this.onLoadObservable.hasObservers()) {\r\n this.onLoadObservable.notifyObservers(this);\r\n }\r\n }\r\n };\r\n\r\n private _reset = (): void => {\r\n if (this._texture == null) {\r\n return;\r\n }\r\n\r\n if (!this._displayingPosterTexture) {\r\n this._texture.dispose();\r\n this._texture = null;\r\n }\r\n };\r\n\r\n /**\r\n * @hidden Internal method to initiate `update`.\r\n */\r\n public _rebuild(): void {\r\n this.update();\r\n }\r\n\r\n /**\r\n * Update Texture in the `auto` mode. Does not do anything if `settings.autoUpdateTexture` is false.\r\n */\r\n public update(): void {\r\n if (!this.autoUpdateTexture) {\r\n // Expecting user to call `updateTexture` manually\r\n return;\r\n }\r\n\r\n this.updateTexture(true);\r\n }\r\n\r\n /**\r\n * Update Texture in `manual` mode. Does not do anything if not visible or paused.\r\n * @param isVisible Visibility state, detected by user using `scene.getActiveMeshes()` or otherwise.\r\n */\r\n public updateTexture(isVisible: boolean): void {\r\n if (!isVisible) {\r\n return;\r\n }\r\n if (this.video.paused && this._stillImageCaptured) {\r\n return;\r\n }\r\n this._stillImageCaptured = true;\r\n this._updateInternalTexture();\r\n }\r\n\r\n protected _updateInternalTexture = (): void => {\r\n if (this._texture == null) {\r\n return;\r\n }\r\n if (this.video.readyState < this.video.HAVE_CURRENT_DATA) {\r\n return;\r\n }\r\n if (this._displayingPosterTexture) {\r\n return;\r\n }\r\n\r\n const frameId = this.getScene()!.getFrameId();\r\n if (this._frameId === frameId) {\r\n return;\r\n }\r\n\r\n this._frameId = frameId;\r\n\r\n this._getEngine()!.updateVideoTexture(this._texture, this.video, this._invertY);\r\n };\r\n\r\n /**\r\n * Change video content. Changing video instance or setting multiple urls (as in constructor) is not supported.\r\n * @param url New url.\r\n */\r\n public updateURL(url: string): void {\r\n this.video.src = url;\r\n this._currentSrc = url;\r\n }\r\n\r\n /**\r\n * Clones the texture.\r\n * @returns the cloned texture\r\n */\r\n public clone(): VideoTexture {\r\n return new VideoTexture(this.name, this._currentSrc!, this.getScene(), this._generateMipMaps, this.invertY, this.samplingMode, this._settings);\r\n }\r\n\r\n /**\r\n * Dispose the texture and release its associated resources.\r\n */\r\n public dispose(): void {\r\n super.dispose();\r\n\r\n this._currentSrc = null;\r\n\r\n if (this._onUserActionRequestedObservable) {\r\n this._onUserActionRequestedObservable.clear();\r\n this._onUserActionRequestedObservable = null;\r\n }\r\n\r\n this.video.removeEventListener(this._createInternalTextureOnEvent, this._createInternalTexture);\r\n this.video.removeEventListener(\"paused\", this._updateInternalTexture);\r\n this.video.removeEventListener(\"seeked\", this._updateInternalTexture);\r\n this.video.removeEventListener(\"emptied\", this._reset);\r\n this.video.pause();\r\n }\r\n\r\n /**\r\n * Creates a video texture straight from a stream.\r\n * @param scene Define the scene the texture should be created in\r\n * @param stream Define the stream the texture should be created from\r\n * @param constraints video constraints\r\n * @param invertY Defines if the video should be stored with invert Y set to true (true by default)\r\n * @returns The created video texture as a promise\r\n */\r\n public static CreateFromStreamAsync(scene: Scene, stream: MediaStream, constraints: any, invertY = true): Promise<VideoTexture> {\r\n const video = scene.getEngine().createVideoElement(constraints);\r\n\r\n if (scene.getEngine()._badOS) {\r\n // Yes... I know and I hope to remove it soon...\r\n document.body.appendChild(video);\r\n video.style.transform = \"scale(0.0001, 0.0001)\";\r\n video.style.opacity = \"0\";\r\n video.style.position = \"fixed\";\r\n video.style.bottom = \"0px\";\r\n video.style.right = \"0px\";\r\n }\r\n\r\n video.setAttribute(\"autoplay\", \"\");\r\n video.setAttribute(\"muted\", \"true\");\r\n video.setAttribute(\"playsinline\", \"\");\r\n video.muted = true;\r\n\r\n if (video.mozSrcObject !== undefined) {\r\n // hack for Firefox < 19\r\n video.mozSrcObject = stream;\r\n } else {\r\n if (typeof video.srcObject == \"object\") {\r\n video.srcObject = stream;\r\n } else {\r\n window.URL = window.URL || window.webkitURL || window.mozURL || window.msURL;\r\n // older API. See https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL#using_object_urls_for_media_streams\r\n video.src = window.URL && window.URL.createObjectURL(stream as any);\r\n }\r\n }\r\n\r\n return new Promise<VideoTexture>((resolve) => {\r\n const onPlaying = () => {\r\n const videoTexture = new VideoTexture(\"video\", video, scene, true, invertY);\r\n if (scene.getEngine()._badOS) {\r\n videoTexture.onDisposeObservable.addOnce(() => {\r\n video.remove();\r\n });\r\n }\r\n videoTexture.onDisposeObservable.addOnce(() => {\r\n removeSource(video);\r\n });\r\n\r\n resolve(videoTexture);\r\n video.removeEventListener(\"playing\", onPlaying);\r\n };\r\n\r\n video.addEventListener(\"playing\", onPlaying);\r\n video.play();\r\n });\r\n }\r\n\r\n /**\r\n * Creates a video texture straight from your WebCam video feed.\r\n * @param scene Define the scene the texture should be created in\r\n * @param constraints Define the constraints to use to create the web cam feed from WebRTC\r\n * @param audioConstaints Define the audio constraints to use to create the web cam feed from WebRTC\r\n * @param invertY Defines if the video should be stored with invert Y set to true (true by default)\r\n * @returns The created video texture as a promise\r\n */\r\n public static CreateFromWebCamAsync(\r\n scene: Scene,\r\n constraints: {\r\n minWidth: number;\r\n maxWidth: number;\r\n minHeight: number;\r\n maxHeight: number;\r\n deviceId: string;\r\n } & MediaTrackConstraints,\r\n audioConstaints: boolean | MediaTrackConstraints = false,\r\n invertY = true\r\n ): Promise<VideoTexture> {\r\n let constraintsDeviceId;\r\n if (constraints && constraints.deviceId) {\r\n constraintsDeviceId = {\r\n exact: constraints.deviceId,\r\n };\r\n }\r\n\r\n if (navigator.mediaDevices) {\r\n return navigator.mediaDevices\r\n .getUserMedia({\r\n video: constraints,\r\n audio: audioConstaints,\r\n })\r\n .then((stream) => {\r\n return this.CreateFromStreamAsync(scene, stream, constraints, invertY);\r\n });\r\n } else {\r\n const getUserMedia = (navigator as any).getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;\r\n\r\n if (getUserMedia) {\r\n getUserMedia(\r\n {\r\n video: {\r\n deviceId: constraintsDeviceId,\r\n width: {\r\n min: (constraints && constraints.minWidth) || 256,\r\n max: (constraints && constraints.maxWidth) || 640,\r\n },\r\n height: {\r\n min: (constraints && constraints.minHeight) || 256,\r\n max: (constraints && constraints.maxHeight) || 480,\r\n },\r\n },\r\n audio: audioConstaints,\r\n },\r\n (stream: any) => {\r\n return this.CreateFromStreamAsync(scene, stream, constraints, invertY);\r\n },\r\n function (e: any) {\r\n Logger.Error(e.name);\r\n }\r\n );\r\n }\r\n }\r\n\r\n return Promise.reject(\"No support for userMedia on this device\");\r\n }\r\n\r\n /**\r\n * Creates a video texture straight from your WebCam video feed.\r\n * @param scene Defines the scene the texture should be created in\r\n * @param onReady Defines a callback to triggered once the texture will be ready\r\n * @param constraints Defines the constraints to use to create the web cam feed from WebRTC\r\n * @param audioConstaints Defines the audio constraints to use to create the web cam feed from WebRTC\r\n * @param invertY Defines if the video should be stored with invert Y set to true (true by default)\r\n */\r\n public static CreateFromWebCam(\r\n scene: Scene,\r\n onReady: (videoTexture: VideoTexture) => void,\r\n constraints: {\r\n minWidth: number;\r\n maxWidth: number;\r\n minHeight: number;\r\n maxHeight: number;\r\n deviceId: string;\r\n } & MediaTrackConstraints,\r\n audioConstaints: boolean | MediaTrackConstraints = false,\r\n invertY = true\r\n ): void {\r\n this.CreateFromWebCamAsync(scene, constraints, audioConstaints, invertY)\r\n .then(function (videoTexture) {\r\n if (onReady) {\r\n onReady(videoTexture);\r\n }\r\n })\r\n .catch(function (err) {\r\n Logger.Error(err.name);\r\n });\r\n }\r\n}\r\n"]}
|
|
@@ -122,4 +122,10 @@ export declare class MaterialFlags {
|
|
|
122
122
|
*/
|
|
123
123
|
static get TranslucencyIntensityTextureEnabled(): boolean;
|
|
124
124
|
static set TranslucencyIntensityTextureEnabled(value: boolean);
|
|
125
|
+
private static _IridescenceTextureEnabled;
|
|
126
|
+
/**
|
|
127
|
+
* Are translucency intensity textures enabled in the application.
|
|
128
|
+
*/
|
|
129
|
+
static get IridescenceTextureEnabled(): boolean;
|
|
130
|
+
static set IridescenceTextureEnabled(value: boolean);
|
|
125
131
|
}
|
|
@@ -346,6 +346,23 @@ var MaterialFlags = /** @class */ (function () {
|
|
|
346
346
|
enumerable: false,
|
|
347
347
|
configurable: true
|
|
348
348
|
});
|
|
349
|
+
Object.defineProperty(MaterialFlags, "IridescenceTextureEnabled", {
|
|
350
|
+
/**
|
|
351
|
+
* Are translucency intensity textures enabled in the application.
|
|
352
|
+
*/
|
|
353
|
+
get: function () {
|
|
354
|
+
return this._IridescenceTextureEnabled;
|
|
355
|
+
},
|
|
356
|
+
set: function (value) {
|
|
357
|
+
if (this._IridescenceTextureEnabled === value) {
|
|
358
|
+
return;
|
|
359
|
+
}
|
|
360
|
+
this._IridescenceTextureEnabled = value;
|
|
361
|
+
Engine.MarkAllMaterialsAsDirty(1);
|
|
362
|
+
},
|
|
363
|
+
enumerable: false,
|
|
364
|
+
configurable: true
|
|
365
|
+
});
|
|
349
366
|
// Flags used to enable or disable a type of texture for all Standard Materials
|
|
350
367
|
MaterialFlags._DiffuseTextureEnabled = true;
|
|
351
368
|
MaterialFlags._DetailTextureEnabled = true;
|
|
@@ -367,6 +384,7 @@ var MaterialFlags = /** @class */ (function () {
|
|
|
367
384
|
MaterialFlags._ThicknessTextureEnabled = true;
|
|
368
385
|
MaterialFlags._RefractionIntensityTextureEnabled = true;
|
|
369
386
|
MaterialFlags._TranslucencyIntensityTextureEnabled = true;
|
|
387
|
+
MaterialFlags._IridescenceTextureEnabled = true;
|
|
370
388
|
return MaterialFlags;
|
|
371
389
|
}());
|
|
372
390
|
export { MaterialFlags };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"materialFlags.js","sourceRoot":"","sources":["../../../../../lts/core/generated/Materials/materialFlags.ts"],"names":[],"mappings":"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","sourcesContent":["import { Engine } from \"../Engines/engine\";\r\nimport { Constants } from \"../Engines/constants\";\r\n\r\n/**\r\n * This groups all the flags used to control the materials channel.\r\n */\r\nexport class MaterialFlags {\r\n // Flags used to enable or disable a type of texture for all Standard Materials\r\n private static _DiffuseTextureEnabled = true;\r\n /**\r\n * Are diffuse textures enabled in the application.\r\n */\r\n public static get DiffuseTextureEnabled(): boolean {\r\n return this._DiffuseTextureEnabled;\r\n }\r\n public static set DiffuseTextureEnabled(value: boolean) {\r\n if (this._DiffuseTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._DiffuseTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _DetailTextureEnabled = true;\r\n /**\r\n * Are detail textures enabled in the application.\r\n */\r\n public static get DetailTextureEnabled(): boolean {\r\n return this._DetailTextureEnabled;\r\n }\r\n public static set DetailTextureEnabled(value: boolean) {\r\n if (this._DetailTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._DetailTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _AmbientTextureEnabled = true;\r\n /**\r\n * Are ambient textures enabled in the application.\r\n */\r\n public static get AmbientTextureEnabled(): boolean {\r\n return this._AmbientTextureEnabled;\r\n }\r\n public static set AmbientTextureEnabled(value: boolean) {\r\n if (this._AmbientTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._AmbientTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _OpacityTextureEnabled = true;\r\n /**\r\n * Are opacity textures enabled in the application.\r\n */\r\n public static get OpacityTextureEnabled(): boolean {\r\n return this._OpacityTextureEnabled;\r\n }\r\n public static set OpacityTextureEnabled(value: boolean) {\r\n if (this._OpacityTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._OpacityTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _ReflectionTextureEnabled = true;\r\n /**\r\n * Are reflection textures enabled in the application.\r\n */\r\n public static get ReflectionTextureEnabled(): boolean {\r\n return this._ReflectionTextureEnabled;\r\n }\r\n public static set ReflectionTextureEnabled(value: boolean) {\r\n if (this._ReflectionTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._ReflectionTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _EmissiveTextureEnabled = true;\r\n /**\r\n * Are emissive textures enabled in the application.\r\n */\r\n public static get EmissiveTextureEnabled(): boolean {\r\n return this._EmissiveTextureEnabled;\r\n }\r\n public static set EmissiveTextureEnabled(value: boolean) {\r\n if (this._EmissiveTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._EmissiveTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _SpecularTextureEnabled = true;\r\n /**\r\n * Are specular textures enabled in the application.\r\n */\r\n public static get SpecularTextureEnabled(): boolean {\r\n return this._SpecularTextureEnabled;\r\n }\r\n public static set SpecularTextureEnabled(value: boolean) {\r\n if (this._SpecularTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._SpecularTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _BumpTextureEnabled = true;\r\n /**\r\n * Are bump textures enabled in the application.\r\n */\r\n public static get BumpTextureEnabled(): boolean {\r\n return this._BumpTextureEnabled;\r\n }\r\n public static set BumpTextureEnabled(value: boolean) {\r\n if (this._BumpTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._BumpTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _LightmapTextureEnabled = true;\r\n /**\r\n * Are lightmap textures enabled in the application.\r\n */\r\n public static get LightmapTextureEnabled(): boolean {\r\n return this._LightmapTextureEnabled;\r\n }\r\n public static set LightmapTextureEnabled(value: boolean) {\r\n if (this._LightmapTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._LightmapTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _RefractionTextureEnabled = true;\r\n /**\r\n * Are refraction textures enabled in the application.\r\n */\r\n public static get RefractionTextureEnabled(): boolean {\r\n return this._RefractionTextureEnabled;\r\n }\r\n public static set RefractionTextureEnabled(value: boolean) {\r\n if (this._RefractionTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._RefractionTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _ColorGradingTextureEnabled = true;\r\n /**\r\n * Are color grading textures enabled in the application.\r\n */\r\n public static get ColorGradingTextureEnabled(): boolean {\r\n return this._ColorGradingTextureEnabled;\r\n }\r\n public static set ColorGradingTextureEnabled(value: boolean) {\r\n if (this._ColorGradingTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._ColorGradingTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _FresnelEnabled = true;\r\n /**\r\n * Are fresnels enabled in the application.\r\n */\r\n public static get FresnelEnabled(): boolean {\r\n return this._FresnelEnabled;\r\n }\r\n public static set FresnelEnabled(value: boolean) {\r\n if (this._FresnelEnabled === value) {\r\n return;\r\n }\r\n\r\n this._FresnelEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_FresnelDirtyFlag);\r\n }\r\n\r\n private static _ClearCoatTextureEnabled = true;\r\n /**\r\n * Are clear coat textures enabled in the application.\r\n */\r\n public static get ClearCoatTextureEnabled(): boolean {\r\n return this._ClearCoatTextureEnabled;\r\n }\r\n public static set ClearCoatTextureEnabled(value: boolean) {\r\n if (this._ClearCoatTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._ClearCoatTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _ClearCoatBumpTextureEnabled = true;\r\n /**\r\n * Are clear coat bump textures enabled in the application.\r\n */\r\n public static get ClearCoatBumpTextureEnabled(): boolean {\r\n return this._ClearCoatBumpTextureEnabled;\r\n }\r\n public static set ClearCoatBumpTextureEnabled(value: boolean) {\r\n if (this._ClearCoatBumpTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._ClearCoatBumpTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _ClearCoatTintTextureEnabled = true;\r\n /**\r\n * Are clear coat tint textures enabled in the application.\r\n */\r\n public static get ClearCoatTintTextureEnabled(): boolean {\r\n return this._ClearCoatTintTextureEnabled;\r\n }\r\n public static set ClearCoatTintTextureEnabled(value: boolean) {\r\n if (this._ClearCoatTintTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._ClearCoatTintTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _SheenTextureEnabled = true;\r\n /**\r\n * Are sheen textures enabled in the application.\r\n */\r\n public static get SheenTextureEnabled(): boolean {\r\n return this._SheenTextureEnabled;\r\n }\r\n public static set SheenTextureEnabled(value: boolean) {\r\n if (this._SheenTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._SheenTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _AnisotropicTextureEnabled = true;\r\n /**\r\n * Are anisotropic textures enabled in the application.\r\n */\r\n public static get AnisotropicTextureEnabled(): boolean {\r\n return this._AnisotropicTextureEnabled;\r\n }\r\n public static set AnisotropicTextureEnabled(value: boolean) {\r\n if (this._AnisotropicTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._AnisotropicTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _ThicknessTextureEnabled = true;\r\n /**\r\n * Are thickness textures enabled in the application.\r\n */\r\n public static get ThicknessTextureEnabled(): boolean {\r\n return this._ThicknessTextureEnabled;\r\n }\r\n public static set ThicknessTextureEnabled(value: boolean) {\r\n if (this._ThicknessTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._ThicknessTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _RefractionIntensityTextureEnabled = true;\r\n /**\r\n * Are refraction intensity textures enabled in the application.\r\n */\r\n public static get RefractionIntensityTextureEnabled(): boolean {\r\n return this._ThicknessTextureEnabled;\r\n }\r\n public static set RefractionIntensityTextureEnabled(value: boolean) {\r\n if (this._RefractionIntensityTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._RefractionIntensityTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _TranslucencyIntensityTextureEnabled = true;\r\n /**\r\n * Are translucency intensity textures enabled in the application.\r\n */\r\n public static get TranslucencyIntensityTextureEnabled(): boolean {\r\n return this._ThicknessTextureEnabled;\r\n }\r\n public static set TranslucencyIntensityTextureEnabled(value: boolean) {\r\n if (this._TranslucencyIntensityTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._TranslucencyIntensityTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"materialFlags.js","sourceRoot":"","sources":["../../../../../lts/core/generated/Materials/materialFlags.ts"],"names":[],"mappings":"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","sourcesContent":["import { Engine } from \"../Engines/engine\";\r\nimport { Constants } from \"../Engines/constants\";\r\n\r\n/**\r\n * This groups all the flags used to control the materials channel.\r\n */\r\nexport class MaterialFlags {\r\n // Flags used to enable or disable a type of texture for all Standard Materials\r\n private static _DiffuseTextureEnabled = true;\r\n /**\r\n * Are diffuse textures enabled in the application.\r\n */\r\n public static get DiffuseTextureEnabled(): boolean {\r\n return this._DiffuseTextureEnabled;\r\n }\r\n public static set DiffuseTextureEnabled(value: boolean) {\r\n if (this._DiffuseTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._DiffuseTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _DetailTextureEnabled = true;\r\n /**\r\n * Are detail textures enabled in the application.\r\n */\r\n public static get DetailTextureEnabled(): boolean {\r\n return this._DetailTextureEnabled;\r\n }\r\n public static set DetailTextureEnabled(value: boolean) {\r\n if (this._DetailTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._DetailTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _AmbientTextureEnabled = true;\r\n /**\r\n * Are ambient textures enabled in the application.\r\n */\r\n public static get AmbientTextureEnabled(): boolean {\r\n return this._AmbientTextureEnabled;\r\n }\r\n public static set AmbientTextureEnabled(value: boolean) {\r\n if (this._AmbientTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._AmbientTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _OpacityTextureEnabled = true;\r\n /**\r\n * Are opacity textures enabled in the application.\r\n */\r\n public static get OpacityTextureEnabled(): boolean {\r\n return this._OpacityTextureEnabled;\r\n }\r\n public static set OpacityTextureEnabled(value: boolean) {\r\n if (this._OpacityTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._OpacityTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _ReflectionTextureEnabled = true;\r\n /**\r\n * Are reflection textures enabled in the application.\r\n */\r\n public static get ReflectionTextureEnabled(): boolean {\r\n return this._ReflectionTextureEnabled;\r\n }\r\n public static set ReflectionTextureEnabled(value: boolean) {\r\n if (this._ReflectionTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._ReflectionTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _EmissiveTextureEnabled = true;\r\n /**\r\n * Are emissive textures enabled in the application.\r\n */\r\n public static get EmissiveTextureEnabled(): boolean {\r\n return this._EmissiveTextureEnabled;\r\n }\r\n public static set EmissiveTextureEnabled(value: boolean) {\r\n if (this._EmissiveTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._EmissiveTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _SpecularTextureEnabled = true;\r\n /**\r\n * Are specular textures enabled in the application.\r\n */\r\n public static get SpecularTextureEnabled(): boolean {\r\n return this._SpecularTextureEnabled;\r\n }\r\n public static set SpecularTextureEnabled(value: boolean) {\r\n if (this._SpecularTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._SpecularTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _BumpTextureEnabled = true;\r\n /**\r\n * Are bump textures enabled in the application.\r\n */\r\n public static get BumpTextureEnabled(): boolean {\r\n return this._BumpTextureEnabled;\r\n }\r\n public static set BumpTextureEnabled(value: boolean) {\r\n if (this._BumpTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._BumpTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _LightmapTextureEnabled = true;\r\n /**\r\n * Are lightmap textures enabled in the application.\r\n */\r\n public static get LightmapTextureEnabled(): boolean {\r\n return this._LightmapTextureEnabled;\r\n }\r\n public static set LightmapTextureEnabled(value: boolean) {\r\n if (this._LightmapTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._LightmapTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _RefractionTextureEnabled = true;\r\n /**\r\n * Are refraction textures enabled in the application.\r\n */\r\n public static get RefractionTextureEnabled(): boolean {\r\n return this._RefractionTextureEnabled;\r\n }\r\n public static set RefractionTextureEnabled(value: boolean) {\r\n if (this._RefractionTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._RefractionTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _ColorGradingTextureEnabled = true;\r\n /**\r\n * Are color grading textures enabled in the application.\r\n */\r\n public static get ColorGradingTextureEnabled(): boolean {\r\n return this._ColorGradingTextureEnabled;\r\n }\r\n public static set ColorGradingTextureEnabled(value: boolean) {\r\n if (this._ColorGradingTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._ColorGradingTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _FresnelEnabled = true;\r\n /**\r\n * Are fresnels enabled in the application.\r\n */\r\n public static get FresnelEnabled(): boolean {\r\n return this._FresnelEnabled;\r\n }\r\n public static set FresnelEnabled(value: boolean) {\r\n if (this._FresnelEnabled === value) {\r\n return;\r\n }\r\n\r\n this._FresnelEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_FresnelDirtyFlag);\r\n }\r\n\r\n private static _ClearCoatTextureEnabled = true;\r\n /**\r\n * Are clear coat textures enabled in the application.\r\n */\r\n public static get ClearCoatTextureEnabled(): boolean {\r\n return this._ClearCoatTextureEnabled;\r\n }\r\n public static set ClearCoatTextureEnabled(value: boolean) {\r\n if (this._ClearCoatTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._ClearCoatTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _ClearCoatBumpTextureEnabled = true;\r\n /**\r\n * Are clear coat bump textures enabled in the application.\r\n */\r\n public static get ClearCoatBumpTextureEnabled(): boolean {\r\n return this._ClearCoatBumpTextureEnabled;\r\n }\r\n public static set ClearCoatBumpTextureEnabled(value: boolean) {\r\n if (this._ClearCoatBumpTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._ClearCoatBumpTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _ClearCoatTintTextureEnabled = true;\r\n /**\r\n * Are clear coat tint textures enabled in the application.\r\n */\r\n public static get ClearCoatTintTextureEnabled(): boolean {\r\n return this._ClearCoatTintTextureEnabled;\r\n }\r\n public static set ClearCoatTintTextureEnabled(value: boolean) {\r\n if (this._ClearCoatTintTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._ClearCoatTintTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _SheenTextureEnabled = true;\r\n /**\r\n * Are sheen textures enabled in the application.\r\n */\r\n public static get SheenTextureEnabled(): boolean {\r\n return this._SheenTextureEnabled;\r\n }\r\n public static set SheenTextureEnabled(value: boolean) {\r\n if (this._SheenTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._SheenTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _AnisotropicTextureEnabled = true;\r\n /**\r\n * Are anisotropic textures enabled in the application.\r\n */\r\n public static get AnisotropicTextureEnabled(): boolean {\r\n return this._AnisotropicTextureEnabled;\r\n }\r\n public static set AnisotropicTextureEnabled(value: boolean) {\r\n if (this._AnisotropicTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._AnisotropicTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _ThicknessTextureEnabled = true;\r\n /**\r\n * Are thickness textures enabled in the application.\r\n */\r\n public static get ThicknessTextureEnabled(): boolean {\r\n return this._ThicknessTextureEnabled;\r\n }\r\n public static set ThicknessTextureEnabled(value: boolean) {\r\n if (this._ThicknessTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._ThicknessTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _RefractionIntensityTextureEnabled = true;\r\n /**\r\n * Are refraction intensity textures enabled in the application.\r\n */\r\n public static get RefractionIntensityTextureEnabled(): boolean {\r\n return this._ThicknessTextureEnabled;\r\n }\r\n public static set RefractionIntensityTextureEnabled(value: boolean) {\r\n if (this._RefractionIntensityTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._RefractionIntensityTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _TranslucencyIntensityTextureEnabled = true;\r\n /**\r\n * Are translucency intensity textures enabled in the application.\r\n */\r\n public static get TranslucencyIntensityTextureEnabled(): boolean {\r\n return this._ThicknessTextureEnabled;\r\n }\r\n public static set TranslucencyIntensityTextureEnabled(value: boolean) {\r\n if (this._TranslucencyIntensityTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._TranslucencyIntensityTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _IridescenceTextureEnabled = true;\r\n /**\r\n * Are translucency intensity textures enabled in the application.\r\n */\r\n public static get IridescenceTextureEnabled(): boolean {\r\n return this._IridescenceTextureEnabled;\r\n }\r\n public static set IridescenceTextureEnabled(value: boolean) {\r\n if (this._IridescenceTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._IridescenceTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n}\r\n"]}
|
|
@@ -19,6 +19,12 @@ export declare function createPBRBRDFPlugin(material: Material): Nullable<Materi
|
|
|
19
19
|
* @returns the plugin instance or null if the plugin is incompatible with material
|
|
20
20
|
*/
|
|
21
21
|
export declare function createPBRClearCoatPlugin(material: Material): Nullable<MaterialPluginBase>;
|
|
22
|
+
/**
|
|
23
|
+
* Creates an instance of the iridescence plugin
|
|
24
|
+
* @param material parent material the plugin will be created for
|
|
25
|
+
* @returns the plugin instance or null if the plugin is incompatible with material
|
|
26
|
+
*/
|
|
27
|
+
export declare function createPBRIridescencePlugin(material: Material): Nullable<MaterialPluginBase>;
|
|
22
28
|
/**
|
|
23
29
|
* Creates an instance of the sheen plugin
|
|
24
30
|
* @param material parent material the plugin will be created for
|
|
@@ -3,6 +3,7 @@ import { PBRAnisotropicConfiguration } from "./PBR/pbrAnisotropicConfiguration.j
|
|
|
3
3
|
import { PBRBaseMaterial } from "./PBR/pbrBaseMaterial.js";
|
|
4
4
|
import { PBRBRDFConfiguration } from "./PBR/pbrBRDFConfiguration.js";
|
|
5
5
|
import { PBRClearCoatConfiguration } from "./PBR/pbrClearCoatConfiguration.js";
|
|
6
|
+
import { PBRIridescenceConfiguration } from "./PBR/pbrIridescenceConfiguration.js";
|
|
6
7
|
import { PBRSheenConfiguration } from "./PBR/pbrSheenConfiguration.js";
|
|
7
8
|
import { PBRSubSurfaceConfiguration } from "./PBR/pbrSubSurfaceConfiguration.js";
|
|
8
9
|
import { StandardMaterial } from "./standardMaterial.js";
|
|
@@ -39,6 +40,17 @@ export function createPBRClearCoatPlugin(material) {
|
|
|
39
40
|
}
|
|
40
41
|
return null;
|
|
41
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Creates an instance of the iridescence plugin
|
|
45
|
+
* @param material parent material the plugin will be created for
|
|
46
|
+
* @returns the plugin instance or null if the plugin is incompatible with material
|
|
47
|
+
*/
|
|
48
|
+
export function createPBRIridescencePlugin(material) {
|
|
49
|
+
if (material instanceof PBRBaseMaterial) {
|
|
50
|
+
return new PBRIridescenceConfiguration(material);
|
|
51
|
+
}
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
42
54
|
/**
|
|
43
55
|
* Creates an instance of the sheen plugin
|
|
44
56
|
* @param material parent material the plugin will be created for
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"materialPluginFactoryExport.js","sourceRoot":"","sources":["../../../../../lts/core/generated/Materials/materialPluginFactoryExport.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAE3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAItD;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,QAAkB;IACzD,IAAI,QAAQ,YAAY,eAAe,EAAE;QACrC,OAAO,IAAI,2BAA2B,CAAC,QAAQ,CAAC,CAAC;KACpD;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAkB;IAClD,IAAI,QAAQ,YAAY,eAAe,EAAE;QACrC,OAAO,IAAI,oBAAoB,CAAC,QAAQ,CAAC,CAAC;KAC7C;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,QAAkB;IACvD,IAAI,QAAQ,YAAY,eAAe,EAAE;QACrC,OAAO,IAAI,yBAAyB,CAAC,QAAQ,CAAC,CAAC;KAClD;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAkB;IACnD,IAAI,QAAQ,YAAY,eAAe,EAAE;QACrC,OAAO,IAAI,qBAAqB,CAAC,QAAQ,CAAC,CAAC;KAC9C;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,QAAkB;IACxD,IAAI,QAAQ,YAAY,eAAe,EAAE;QACrC,OAAO,IAAI,0BAA0B,CAAC,QAAQ,CAAC,CAAC;KACnD;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAkB;IACpD,IAAI,QAAQ,YAAY,eAAe,IAAI,QAAQ,YAAY,gBAAgB,EAAE;QAC7E,OAAO,IAAI,sBAAsB,CAAC,QAAQ,CAAC,CAAC;KAC/C;IACD,OAAO,IAAI,CAAC;AAChB,CAAC","sourcesContent":["import type { Nullable } from \"../types\";\r\nimport { DetailMapConfiguration } from \"./material.detailMapConfiguration\";\r\nimport type { MaterialPluginBase } from \"./materialPluginBase\";\r\nimport { PBRAnisotropicConfiguration } from \"./PBR/pbrAnisotropicConfiguration\";\r\nimport { PBRBaseMaterial } from \"./PBR/pbrBaseMaterial\";\r\nimport { PBRBRDFConfiguration } from \"./PBR/pbrBRDFConfiguration\";\r\nimport { PBRClearCoatConfiguration } from \"./PBR/pbrClearCoatConfiguration\";\r\nimport { PBRSheenConfiguration } from \"./PBR/pbrSheenConfiguration\";\r\nimport { PBRSubSurfaceConfiguration } from \"./PBR/pbrSubSurfaceConfiguration\";\r\nimport { StandardMaterial } from \"./standardMaterial\";\r\n\r\ndeclare type Material = import(\"./material\").Material;\r\n\r\n/**\r\n * Creates an instance of the anisotropic plugin\r\n * @param material parent material the plugin will be created for\r\n * @returns the plugin instance or null if the plugin is incompatible with material\r\n */\r\nexport function createPBRAnisotropicPlugin(material: Material): Nullable<MaterialPluginBase> {\r\n if (material instanceof PBRBaseMaterial) {\r\n return new PBRAnisotropicConfiguration(material);\r\n }\r\n return null;\r\n}\r\n\r\n/**\r\n * Creates an instance of the brdf plugin\r\n * @param material parent material the plugin will be created for\r\n * @returns the plugin instance or null if the plugin is incompatible with material\r\n */\r\nexport function createPBRBRDFPlugin(material: Material): Nullable<MaterialPluginBase> {\r\n if (material instanceof PBRBaseMaterial) {\r\n return new PBRBRDFConfiguration(material);\r\n }\r\n return null;\r\n}\r\n\r\n/**\r\n * Creates an instance of the clear coat plugin\r\n * @param material parent material the plugin will be created for\r\n * @returns the plugin instance or null if the plugin is incompatible with material\r\n */\r\nexport function createPBRClearCoatPlugin(material: Material): Nullable<MaterialPluginBase> {\r\n if (material instanceof PBRBaseMaterial) {\r\n return new PBRClearCoatConfiguration(material);\r\n }\r\n return null;\r\n}\r\n\r\n/**\r\n * Creates an instance of the sheen plugin\r\n * @param material parent material the plugin will be created for\r\n * @returns the plugin instance or null if the plugin is incompatible with material\r\n */\r\nexport function createPBRSheenPlugin(material: Material): Nullable<MaterialPluginBase> {\r\n if (material instanceof PBRBaseMaterial) {\r\n return new PBRSheenConfiguration(material);\r\n }\r\n return null;\r\n}\r\n\r\n/**\r\n * Creates an instance of the sub surface plugin\r\n * @param material parent material the plugin will be created for\r\n * @returns the plugin instance or null if the plugin is incompatible with material\r\n */\r\nexport function createPBRSubSurfacePlugin(material: Material): Nullable<MaterialPluginBase> {\r\n if (material instanceof PBRBaseMaterial) {\r\n return new PBRSubSurfaceConfiguration(material);\r\n }\r\n return null;\r\n}\r\n\r\n/**\r\n * Creates an instance of the detail map plugin\r\n * @param material parent material the plugin will be created for\r\n * @returns the plugin instance or null if the plugin is incompatible with material\r\n */\r\nexport function createDetailMapPlugin(material: Material): Nullable<MaterialPluginBase> {\r\n if (material instanceof PBRBaseMaterial || material instanceof StandardMaterial) {\r\n return new DetailMapConfiguration(material);\r\n }\r\n return null;\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"materialPluginFactoryExport.js","sourceRoot":"","sources":["../../../../../lts/core/generated/Materials/materialPluginFactoryExport.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAE3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAItD;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,QAAkB;IACzD,IAAI,QAAQ,YAAY,eAAe,EAAE;QACrC,OAAO,IAAI,2BAA2B,CAAC,QAAQ,CAAC,CAAC;KACpD;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAkB;IAClD,IAAI,QAAQ,YAAY,eAAe,EAAE;QACrC,OAAO,IAAI,oBAAoB,CAAC,QAAQ,CAAC,CAAC;KAC7C;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,QAAkB;IACvD,IAAI,QAAQ,YAAY,eAAe,EAAE;QACrC,OAAO,IAAI,yBAAyB,CAAC,QAAQ,CAAC,CAAC;KAClD;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,QAAkB;IACzD,IAAI,QAAQ,YAAY,eAAe,EAAE;QACrC,OAAO,IAAI,2BAA2B,CAAC,QAAQ,CAAC,CAAC;KACpD;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAkB;IACnD,IAAI,QAAQ,YAAY,eAAe,EAAE;QACrC,OAAO,IAAI,qBAAqB,CAAC,QAAQ,CAAC,CAAC;KAC9C;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,QAAkB;IACxD,IAAI,QAAQ,YAAY,eAAe,EAAE;QACrC,OAAO,IAAI,0BAA0B,CAAC,QAAQ,CAAC,CAAC;KACnD;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAkB;IACpD,IAAI,QAAQ,YAAY,eAAe,IAAI,QAAQ,YAAY,gBAAgB,EAAE;QAC7E,OAAO,IAAI,sBAAsB,CAAC,QAAQ,CAAC,CAAC;KAC/C;IACD,OAAO,IAAI,CAAC;AAChB,CAAC","sourcesContent":["import type { Nullable } from \"../types\";\r\nimport { DetailMapConfiguration } from \"./material.detailMapConfiguration\";\r\nimport type { MaterialPluginBase } from \"./materialPluginBase\";\r\nimport { PBRAnisotropicConfiguration } from \"./PBR/pbrAnisotropicConfiguration\";\r\nimport { PBRBaseMaterial } from \"./PBR/pbrBaseMaterial\";\r\nimport { PBRBRDFConfiguration } from \"./PBR/pbrBRDFConfiguration\";\r\nimport { PBRClearCoatConfiguration } from \"./PBR/pbrClearCoatConfiguration\";\r\nimport { PBRIridescenceConfiguration } from \"./PBR/pbrIridescenceConfiguration\";\r\nimport { PBRSheenConfiguration } from \"./PBR/pbrSheenConfiguration\";\r\nimport { PBRSubSurfaceConfiguration } from \"./PBR/pbrSubSurfaceConfiguration\";\r\nimport { StandardMaterial } from \"./standardMaterial\";\r\n\r\ndeclare type Material = import(\"./material\").Material;\r\n\r\n/**\r\n * Creates an instance of the anisotropic plugin\r\n * @param material parent material the plugin will be created for\r\n * @returns the plugin instance or null if the plugin is incompatible with material\r\n */\r\nexport function createPBRAnisotropicPlugin(material: Material): Nullable<MaterialPluginBase> {\r\n if (material instanceof PBRBaseMaterial) {\r\n return new PBRAnisotropicConfiguration(material);\r\n }\r\n return null;\r\n}\r\n\r\n/**\r\n * Creates an instance of the brdf plugin\r\n * @param material parent material the plugin will be created for\r\n * @returns the plugin instance or null if the plugin is incompatible with material\r\n */\r\nexport function createPBRBRDFPlugin(material: Material): Nullable<MaterialPluginBase> {\r\n if (material instanceof PBRBaseMaterial) {\r\n return new PBRBRDFConfiguration(material);\r\n }\r\n return null;\r\n}\r\n\r\n/**\r\n * Creates an instance of the clear coat plugin\r\n * @param material parent material the plugin will be created for\r\n * @returns the plugin instance or null if the plugin is incompatible with material\r\n */\r\nexport function createPBRClearCoatPlugin(material: Material): Nullable<MaterialPluginBase> {\r\n if (material instanceof PBRBaseMaterial) {\r\n return new PBRClearCoatConfiguration(material);\r\n }\r\n return null;\r\n}\r\n\r\n/**\r\n * Creates an instance of the iridescence plugin\r\n * @param material parent material the plugin will be created for\r\n * @returns the plugin instance or null if the plugin is incompatible with material\r\n */\r\nexport function createPBRIridescencePlugin(material: Material): Nullable<MaterialPluginBase> {\r\n if (material instanceof PBRBaseMaterial) {\r\n return new PBRIridescenceConfiguration(material);\r\n }\r\n return null;\r\n}\r\n\r\n/**\r\n * Creates an instance of the sheen plugin\r\n * @param material parent material the plugin will be created for\r\n * @returns the plugin instance or null if the plugin is incompatible with material\r\n */\r\nexport function createPBRSheenPlugin(material: Material): Nullable<MaterialPluginBase> {\r\n if (material instanceof PBRBaseMaterial) {\r\n return new PBRSheenConfiguration(material);\r\n }\r\n return null;\r\n}\r\n\r\n/**\r\n * Creates an instance of the sub surface plugin\r\n * @param material parent material the plugin will be created for\r\n * @returns the plugin instance or null if the plugin is incompatible with material\r\n */\r\nexport function createPBRSubSurfacePlugin(material: Material): Nullable<MaterialPluginBase> {\r\n if (material instanceof PBRBaseMaterial) {\r\n return new PBRSubSurfaceConfiguration(material);\r\n }\r\n return null;\r\n}\r\n\r\n/**\r\n * Creates an instance of the detail map plugin\r\n * @param material parent material the plugin will be created for\r\n * @returns the plugin instance or null if the plugin is incompatible with material\r\n */\r\nexport function createDetailMapPlugin(material: Material): Nullable<MaterialPluginBase> {\r\n if (material instanceof PBRBaseMaterial || material instanceof StandardMaterial) {\r\n return new DetailMapConfiguration(material);\r\n }\r\n return null;\r\n}\r\n"]}
|
package/Maths/math.color.d.ts
CHANGED
|
@@ -428,7 +428,7 @@ export declare class Color4 {
|
|
|
428
428
|
* @param index defines an optional index in the target array to define where to start storing values
|
|
429
429
|
* @returns the current Color4 object
|
|
430
430
|
*/
|
|
431
|
-
toArray(array:
|
|
431
|
+
toArray(array: FloatArray, index?: number): Color4;
|
|
432
432
|
/**
|
|
433
433
|
* Update the current color with values stored in an array from the starting index of the given array
|
|
434
434
|
* @param array defines the source array
|
|
@@ -575,7 +575,16 @@ export declare class Color4 {
|
|
|
575
575
|
*/
|
|
576
576
|
toGammaSpaceToRef(convertedColor: Color4): Color4;
|
|
577
577
|
/**
|
|
578
|
-
* Creates a new Color4 from the string containing valid hexadecimal values
|
|
578
|
+
* Creates a new Color4 from the string containing valid hexadecimal values.
|
|
579
|
+
*
|
|
580
|
+
* A valid hex string is either in the format #RRGGBB or #RRGGBBAA.
|
|
581
|
+
*
|
|
582
|
+
* When a hex string without alpha is passed, the resulting Color4 has
|
|
583
|
+
* its alpha value set to 1.0.
|
|
584
|
+
*
|
|
585
|
+
* An invalid string results in a Color with all its channels set to 0.0,
|
|
586
|
+
* i.e. "transparent black".
|
|
587
|
+
*
|
|
579
588
|
* @param hex defines a string containing valid hexadecimal values
|
|
580
589
|
* @returns a new Color4 object
|
|
581
590
|
*/
|
package/Maths/math.color.js
CHANGED
|
@@ -95,9 +95,7 @@ var Color3 = /** @class */ (function () {
|
|
|
95
95
|
* @returns the new array
|
|
96
96
|
*/
|
|
97
97
|
Color3.prototype.asArray = function () {
|
|
98
|
-
|
|
99
|
-
this.toArray(result, 0);
|
|
100
|
-
return result;
|
|
98
|
+
return [this.r, this.g, this.b];
|
|
101
99
|
};
|
|
102
100
|
/**
|
|
103
101
|
* Returns the luminance value
|
|
@@ -675,9 +673,7 @@ var Color4 = /** @class */ (function () {
|
|
|
675
673
|
* @returns the new array
|
|
676
674
|
*/
|
|
677
675
|
Color4.prototype.asArray = function () {
|
|
678
|
-
|
|
679
|
-
this.toArray(result, 0);
|
|
680
|
-
return result;
|
|
676
|
+
return [this.r, this.g, this.b, this.a];
|
|
681
677
|
};
|
|
682
678
|
/**
|
|
683
679
|
* Stores from the starting index in the given array the Color4 successive values
|
|
@@ -942,7 +938,16 @@ var Color4 = /** @class */ (function () {
|
|
|
942
938
|
};
|
|
943
939
|
// Statics
|
|
944
940
|
/**
|
|
945
|
-
* Creates a new Color4 from the string containing valid hexadecimal values
|
|
941
|
+
* Creates a new Color4 from the string containing valid hexadecimal values.
|
|
942
|
+
*
|
|
943
|
+
* A valid hex string is either in the format #RRGGBB or #RRGGBBAA.
|
|
944
|
+
*
|
|
945
|
+
* When a hex string without alpha is passed, the resulting Color4 has
|
|
946
|
+
* its alpha value set to 1.0.
|
|
947
|
+
*
|
|
948
|
+
* An invalid string results in a Color with all its channels set to 0.0,
|
|
949
|
+
* i.e. "transparent black".
|
|
950
|
+
*
|
|
946
951
|
* @param hex defines a string containing valid hexadecimal values
|
|
947
952
|
* @returns a new Color4 object
|
|
948
953
|
*/
|