Ver código fonte

Fix types augmentation issues.

sebavan 5 anos atrás
pai
commit
734c875c14

+ 10 - 10
loaders/src/glTF/2.0/Extensions/KHR_materials_transmission.ts

@@ -13,13 +13,11 @@ import { Texture } from "babylonjs/Materials/Textures/texture";
 import { RenderTargetTexture } from "babylonjs/Materials/Textures/renderTargetTexture";
 import { Observable } from "babylonjs/Misc/observable";
 
-declare module "babylonjs/scene" {
-    interface Scene {
-        /**
-         * @hidden
-         */
-        _transmissionHelper: TransmissionHelper | undefined;
-    }
+interface TransmissionHelperHolder {
+    /**
+     * @hidden
+     */
+    _transmissionHelper: TransmissionHelper | undefined;
 }
 
 interface ITransmissionHelperOptions {
@@ -46,7 +44,8 @@ class TransmissionHelper {
     /**
      * Stores the creation options.
      */
-    private readonly _scene: Scene;
+    private readonly _scene: Scene & TransmissionHelperHolder;
+
     private _options: ITransmissionHelperOptions;
 
     private _opaqueRenderTarget: Nullable<RenderTargetTexture> = null;
@@ -69,8 +68,9 @@ class TransmissionHelper {
             ...TransmissionHelper._getDefaultOptions(),
             ...options
         };
-        this._scene = scene;
+        this._scene = scene as any;
         this._scene._transmissionHelper = this;
+
         this.onErrorObservable = new Observable();
         this._scene.onDisposeObservable.addOnce((scene) => {
             this.dispose();
@@ -313,7 +313,7 @@ export class KHR_materials_transmission implements IGLTFLoaderExtension {
 
         if (extension.transmissionFactor !== undefined) {
             pbrMaterial.subSurface.refractionIntensity = extension.transmissionFactor;
-            const scene = pbrMaterial.getScene();
+            const scene = pbrMaterial.getScene() as unknown as TransmissionHelperHolder;
             if (pbrMaterial.subSurface.refractionIntensity && !scene._transmissionHelper) {
                 new TransmissionHelper({}, pbrMaterial.getScene());
             }