@babylonjs/core 5.49.0 → 5.49.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/Engines/Native/nativeInterfaces.d.ts +1 -0
  2. package/Engines/Native/nativeInterfaces.js.map +1 -1
  3. package/Engines/Native/nativePipelineContext.d.ts +6 -2
  4. package/Engines/Native/nativePipelineContext.js +12 -3
  5. package/Engines/Native/nativePipelineContext.js.map +1 -1
  6. package/Engines/WebGPU/webgpuTextureHelper.js +2 -2
  7. package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
  8. package/Engines/WebGPU/webgpuTintWASM.js +1 -1
  9. package/Engines/WebGPU/webgpuTintWASM.js.map +1 -1
  10. package/Engines/engine.d.ts +53 -0
  11. package/Engines/nativeEngine.d.ts +2 -5
  12. package/Engines/nativeEngine.js +44 -12
  13. package/Engines/nativeEngine.js.map +1 -1
  14. package/Engines/thinEngine.js +2 -2
  15. package/Engines/thinEngine.js.map +1 -1
  16. package/Materials/PBR/pbrBaseMaterial.js +1 -0
  17. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  18. package/Materials/PBR/pbrMaterial.decalMap.d.ts +12 -0
  19. package/Materials/PBR/pbrMaterial.decalMap.js +18 -0
  20. package/Materials/PBR/pbrMaterial.decalMap.js.map +1 -0
  21. package/Materials/Textures/renderTargetTexture.js +2 -4
  22. package/Materials/Textures/renderTargetTexture.js.map +1 -1
  23. package/Materials/index.d.ts +2 -0
  24. package/Materials/index.js +2 -0
  25. package/Materials/index.js.map +1 -1
  26. package/Materials/material.decalMap.d.ts +3 -0
  27. package/Materials/material.decalMap.js +4 -0
  28. package/Materials/material.decalMap.js.map +1 -0
  29. package/Materials/material.decalMapConfiguration.d.ts +63 -0
  30. package/Materials/material.decalMapConfiguration.js +119 -0
  31. package/Materials/material.decalMapConfiguration.js.map +1 -0
  32. package/Materials/materialFlags.d.ts +6 -0
  33. package/Materials/materialFlags.js +14 -0
  34. package/Materials/materialFlags.js.map +1 -1
  35. package/Materials/standardMaterial.decalMap.d.ts +12 -0
  36. package/Materials/standardMaterial.decalMap.js +18 -0
  37. package/Materials/standardMaterial.decalMap.js.map +1 -0
  38. package/Materials/standardMaterial.js +1 -0
  39. package/Materials/standardMaterial.js.map +1 -1
  40. package/Maths/math.vector.d.ts +10 -0
  41. package/Maths/math.vector.js +14 -0
  42. package/Maths/math.vector.js.map +1 -1
  43. package/Meshes/abstractMesh.decalMap.d.ts +12 -0
  44. package/Meshes/abstractMesh.decalMap.js +12 -0
  45. package/Meshes/abstractMesh.decalMap.js.map +1 -0
  46. package/Meshes/index.d.ts +2 -0
  47. package/Meshes/index.js +2 -0
  48. package/Meshes/index.js.map +1 -1
  49. package/Meshes/meshUVSpaceRenderer.d.ts +94 -0
  50. package/Meshes/meshUVSpaceRenderer.js +141 -0
  51. package/Meshes/meshUVSpaceRenderer.js.map +1 -0
  52. package/Particles/gpuParticleSystem.js +1 -1
  53. package/Particles/gpuParticleSystem.js.map +1 -1
  54. package/Physics/v2/physicsAggregate.d.ts +4 -0
  55. package/Physics/v2/physicsAggregate.js +4 -4
  56. package/Physics/v2/physicsAggregate.js.map +1 -1
  57. package/Physics/v2/physicsBody.d.ts +18 -2
  58. package/Physics/v2/physicsBody.js +66 -1
  59. package/Physics/v2/physicsBody.js.map +1 -1
  60. package/Rendering/fluidRenderer/fluidRenderer.js +2 -1
  61. package/Rendering/fluidRenderer/fluidRenderer.js.map +1 -1
  62. package/Rendering/renderingManager.js +4 -2
  63. package/Rendering/renderingManager.js.map +1 -1
  64. package/Shaders/ShadersInclude/decalFragment.d.ts +5 -0
  65. package/Shaders/ShadersInclude/decalFragment.js +15 -0
  66. package/Shaders/ShadersInclude/decalFragment.js.map +1 -0
  67. package/Shaders/ShadersInclude/decalFragmentDeclaration.d.ts +5 -0
  68. package/Shaders/ShadersInclude/decalFragmentDeclaration.js +11 -0
  69. package/Shaders/ShadersInclude/decalFragmentDeclaration.js.map +1 -0
  70. package/Shaders/ShadersInclude/decalVertexDeclaration.d.ts +5 -0
  71. package/Shaders/ShadersInclude/decalVertexDeclaration.js +11 -0
  72. package/Shaders/ShadersInclude/decalVertexDeclaration.js.map +1 -0
  73. package/Shaders/ShadersInclude/defaultFragmentDeclaration.d.ts +1 -0
  74. package/Shaders/ShadersInclude/defaultFragmentDeclaration.js +2 -0
  75. package/Shaders/ShadersInclude/defaultFragmentDeclaration.js.map +1 -1
  76. package/Shaders/ShadersInclude/defaultVertexDeclaration.d.ts +1 -0
  77. package/Shaders/ShadersInclude/defaultVertexDeclaration.js +2 -0
  78. package/Shaders/ShadersInclude/defaultVertexDeclaration.js.map +1 -1
  79. package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.d.ts +1 -0
  80. package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js +4 -0
  81. package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js.map +1 -1
  82. package/Shaders/ShadersInclude/pbrFragmentDeclaration.d.ts +1 -0
  83. package/Shaders/ShadersInclude/pbrFragmentDeclaration.js +2 -0
  84. package/Shaders/ShadersInclude/pbrFragmentDeclaration.js.map +1 -1
  85. package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js +1 -0
  86. package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js.map +1 -1
  87. package/Shaders/ShadersInclude/pbrVertexDeclaration.d.ts +1 -0
  88. package/Shaders/ShadersInclude/pbrVertexDeclaration.js +2 -0
  89. package/Shaders/ShadersInclude/pbrVertexDeclaration.js.map +1 -1
  90. package/Shaders/default.fragment.d.ts +1 -0
  91. package/Shaders/default.fragment.js +5 -0
  92. package/Shaders/default.fragment.js.map +1 -1
  93. package/Shaders/default.vertex.js +2 -0
  94. package/Shaders/default.vertex.js.map +1 -1
  95. package/Shaders/geometry.fragment.js +1 -1
  96. package/Shaders/geometry.fragment.js.map +1 -1
  97. package/Shaders/meshUVSpaceRenderer.fragment.d.ts +5 -0
  98. package/Shaders/meshUVSpaceRenderer.fragment.js +9 -0
  99. package/Shaders/meshUVSpaceRenderer.fragment.js.map +1 -0
  100. package/Shaders/meshUVSpaceRenderer.vertex.d.ts +15 -0
  101. package/Shaders/meshUVSpaceRenderer.vertex.js +34 -0
  102. package/Shaders/meshUVSpaceRenderer.vertex.js.map +1 -0
  103. package/Shaders/pbr.fragment.js +4 -0
  104. package/Shaders/pbr.fragment.js.map +1 -1
  105. package/Shaders/pbr.vertex.js +2 -0
  106. package/Shaders/pbr.vertex.js.map +1 -1
  107. package/Shaders/screenSpaceReflection2.fragment.js +1 -1
  108. package/Shaders/screenSpaceReflection2.fragment.js.map +1 -1
  109. package/ShadersWGSL/gpuUpdateParticles.compute.js +1 -1
  110. package/ShadersWGSL/gpuUpdateParticles.compute.js.map +1 -1
  111. package/Sprites/spriteManager.js +5 -3
  112. package/Sprites/spriteManager.js.map +1 -1
  113. package/Sprites/spriteSceneComponent.d.ts +1 -1
  114. package/Sprites/spriteSceneComponent.js +7 -4
  115. package/Sprites/spriteSceneComponent.js.map +1 -1
  116. package/XR/features/WebXRDepthSensing.d.ts +118 -0
  117. package/XR/features/WebXRDepthSensing.js +268 -0
  118. package/XR/features/WebXRDepthSensing.js.map +1 -0
  119. package/XR/features/index.d.ts +1 -0
  120. package/XR/features/index.js +1 -0
  121. package/XR/features/index.js.map +1 -1
  122. package/XR/native/nativeXRFrame.d.ts +1 -0
  123. package/XR/native/nativeXRFrame.js +4 -0
  124. package/XR/native/nativeXRFrame.js.map +1 -1
  125. package/XR/webXRCamera.d.ts +1 -0
  126. package/XR/webXRCamera.js +4 -0
  127. package/XR/webXRCamera.js.map +1 -1
  128. package/XR/webXRFeaturesManager.d.ts +4 -0
  129. package/XR/webXRFeaturesManager.js +4 -0
  130. package/XR/webXRFeaturesManager.js.map +1 -1
  131. package/assetContainer.js +13 -5
  132. package/assetContainer.js.map +1 -1
  133. package/package.json +1 -1
@@ -0,0 +1,119 @@
1
+ import { __decorate } from "../tslib.es6.js";
2
+ import { serialize, expandToProperty } from "../Misc/decorators.js";
3
+ import { MaterialDefines } from "./materialDefines.js";
4
+ import { MaterialPluginBase } from "./materialPluginBase.js";
5
+
6
+ import { MaterialFlags } from "./materialFlags.js";
7
+ import { MaterialHelper } from "./materialHelper.js";
8
+ /**
9
+ * @internal
10
+ */
11
+ export class DecalMapDefines extends MaterialDefines {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.DECAL = false;
15
+ this.DECALDIRECTUV = 0;
16
+ this.DECAL_SMOOTHALPHA = false;
17
+ this.GAMMADECAL = false;
18
+ }
19
+ }
20
+ /**
21
+ * Plugin that implements the decal map component of a material
22
+ * @since 5.49.1
23
+ */
24
+ export class DecalMapConfiguration extends MaterialPluginBase {
25
+ /** @internal */
26
+ _markAllSubMeshesAsTexturesDirty() {
27
+ this._enable(this._isEnabled);
28
+ this._internalMarkAllSubMeshesAsTexturesDirty();
29
+ }
30
+ /**
31
+ * Creates a new DecalMapConfiguration
32
+ * @param material The material to attach the decal map plugin to
33
+ * @param addToPluginList If the plugin should be added to the material plugin list
34
+ */
35
+ constructor(material, addToPluginList = true) {
36
+ super(material, "DecalMap", 150, new DecalMapDefines(), addToPluginList);
37
+ this._isEnabled = false;
38
+ /**
39
+ * Enables or disables the decal map on this material
40
+ */
41
+ this.isEnabled = false;
42
+ this._smoothAlpha = false;
43
+ /**
44
+ * Enables or disables the smooth alpha mode on this material. Default: false.
45
+ * When enabled, the alpha value used to blend the decal map will be the squared value and will produce a smoother result.
46
+ */
47
+ this.smoothAlpha = false;
48
+ this.registerForExtraEvents = true; // because we override the hardBindForSubMesh method
49
+ this._internalMarkAllSubMeshesAsTexturesDirty = material._dirtyCallbacks[1];
50
+ }
51
+ isReadyForSubMesh(defines, scene, engine, subMesh) {
52
+ const decalMap = subMesh.getMesh().decalMap;
53
+ if (!this._isEnabled || !(decalMap === null || decalMap === void 0 ? void 0 : decalMap.texture) || !MaterialFlags.DecalMapEnabled || !scene.texturesEnabled) {
54
+ return true;
55
+ }
56
+ return decalMap.isReady();
57
+ }
58
+ prepareDefines(defines, scene, mesh) {
59
+ const decalMap = mesh.decalMap;
60
+ if (!this._isEnabled || !(decalMap === null || decalMap === void 0 ? void 0 : decalMap.texture) || !MaterialFlags.DecalMapEnabled || !scene.texturesEnabled) {
61
+ const isDirty = defines.DECAL;
62
+ if (isDirty) {
63
+ defines.markAsTexturesDirty();
64
+ }
65
+ defines.DECAL = false;
66
+ }
67
+ else {
68
+ const isDirty = !defines.DECAL || defines.GAMMADECAL !== decalMap.texture.gammaSpace;
69
+ if (isDirty) {
70
+ defines.markAsTexturesDirty();
71
+ }
72
+ defines.DECAL = true;
73
+ defines.GAMMADECAL = decalMap.texture.gammaSpace;
74
+ defines.DECAL_SMOOTHALPHA = this._smoothAlpha;
75
+ MaterialHelper.PrepareDefinesForMergedUV(decalMap.texture, defines, "DECAL");
76
+ }
77
+ }
78
+ /**
79
+ * Note that we override hardBindForSubMesh and not bindForSubMesh because the material can be shared by multiple meshes,
80
+ * in which case mustRebind could return false even though the decal map is different for each mesh: that's because the decal map
81
+ * is not part of the material but hosted by the decalMap of the mesh instead.
82
+ */
83
+ hardBindForSubMesh(uniformBuffer, scene, _engine, subMesh) {
84
+ const decalMap = subMesh.getMesh().decalMap;
85
+ if (!this._isEnabled || !(decalMap === null || decalMap === void 0 ? void 0 : decalMap.texture) || !MaterialFlags.DecalMapEnabled || !scene.texturesEnabled) {
86
+ return;
87
+ }
88
+ const isFrozen = this._material.isFrozen;
89
+ const texture = decalMap.texture;
90
+ if (!uniformBuffer.useUbo || !isFrozen || !uniformBuffer.isSync) {
91
+ uniformBuffer.updateFloat4("vDecalInfos", texture.coordinatesIndex, 0, 0, 0);
92
+ MaterialHelper.BindTextureMatrix(texture, uniformBuffer, "decal");
93
+ }
94
+ uniformBuffer.setTexture("decalSampler", texture);
95
+ }
96
+ getClassName() {
97
+ return "DecalMapConfiguration";
98
+ }
99
+ getSamplers(samplers) {
100
+ samplers.push("decalSampler");
101
+ }
102
+ getUniforms() {
103
+ return {
104
+ ubo: [
105
+ { name: "vDecalInfos", size: 4, type: "vec4" },
106
+ { name: "decalMatrix", size: 16, type: "mat4" },
107
+ ],
108
+ };
109
+ }
110
+ }
111
+ __decorate([
112
+ serialize(),
113
+ expandToProperty("_markAllSubMeshesAsTexturesDirty")
114
+ ], DecalMapConfiguration.prototype, "isEnabled", void 0);
115
+ __decorate([
116
+ serialize(),
117
+ expandToProperty("_markAllSubMeshesAsTexturesDirty")
118
+ ], DecalMapConfiguration.prototype, "smoothAlpha", void 0);
119
+ //# sourceMappingURL=material.decalMapConfiguration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"material.decalMapConfiguration.js","sourceRoot":"","sources":["../../../../lts/core/generated/Materials/material.decalMapConfiguration.ts"],"names":[],"mappings":"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","sourcesContent":["import { serialize, expandToProperty } from \"../Misc/decorators\";\r\nimport { MaterialDefines } from \"./materialDefines\";\r\nimport { MaterialPluginBase } from \"./materialPluginBase\";\r\nimport { Constants } from \"../Engines/constants\";\r\nimport { MaterialFlags } from \"./materialFlags\";\r\nimport type { Scene } from \"core/scene\";\r\nimport type { Engine } from \"core/Engines/engine\";\r\nimport type { SubMesh } from \"core/Meshes/subMesh\";\r\nimport type { AbstractMesh } from \"core/Meshes/abstractMesh\";\r\nimport { MaterialHelper } from \"./materialHelper\";\r\nimport type { UniformBuffer } from \"./uniformBuffer\";\r\nimport type { PBRBaseMaterial } from \"./PBR/pbrBaseMaterial\";\r\nimport type { StandardMaterial } from \"./standardMaterial\";\r\n\r\n/**\r\n * @internal\r\n */\r\nexport class DecalMapDefines extends MaterialDefines {\r\n DECAL = false;\r\n DECALDIRECTUV = 0;\r\n DECAL_SMOOTHALPHA = false;\r\n GAMMADECAL = false;\r\n}\r\n\r\n/**\r\n * Plugin that implements the decal map component of a material\r\n * @since 5.49.1\r\n */\r\nexport class DecalMapConfiguration extends MaterialPluginBase {\r\n private _isEnabled = false;\r\n /**\r\n * Enables or disables the decal map on this material\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public isEnabled = false;\r\n\r\n private _smoothAlpha = false;\r\n\r\n /**\r\n * Enables or disables the smooth alpha mode on this material. Default: false.\r\n * When enabled, the alpha value used to blend the decal map will be the squared value and will produce a smoother result.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public smoothAlpha = false;\r\n\r\n private _internalMarkAllSubMeshesAsTexturesDirty: () => void;\r\n\r\n /** @internal */\r\n public _markAllSubMeshesAsTexturesDirty(): void {\r\n this._enable(this._isEnabled);\r\n this._internalMarkAllSubMeshesAsTexturesDirty();\r\n }\r\n\r\n /**\r\n * Creates a new DecalMapConfiguration\r\n * @param material The material to attach the decal map plugin to\r\n * @param addToPluginList If the plugin should be added to the material plugin list\r\n */\r\n constructor(material: PBRBaseMaterial | StandardMaterial, addToPluginList = true) {\r\n super(material, \"DecalMap\", 150, new DecalMapDefines(), addToPluginList);\r\n\r\n this.registerForExtraEvents = true; // because we override the hardBindForSubMesh method\r\n this._internalMarkAllSubMeshesAsTexturesDirty = material._dirtyCallbacks[Constants.MATERIAL_TextureDirtyFlag];\r\n }\r\n\r\n public isReadyForSubMesh(defines: DecalMapDefines, scene: Scene, engine: Engine, subMesh: SubMesh): boolean {\r\n const decalMap = subMesh.getMesh().decalMap;\r\n\r\n if (!this._isEnabled || !decalMap?.texture || !MaterialFlags.DecalMapEnabled || !scene.texturesEnabled) {\r\n return true;\r\n }\r\n\r\n return decalMap.isReady();\r\n }\r\n\r\n public prepareDefines(defines: DecalMapDefines, scene: Scene, mesh: AbstractMesh): void {\r\n const decalMap = mesh.decalMap;\r\n\r\n if (!this._isEnabled || !decalMap?.texture || !MaterialFlags.DecalMapEnabled || !scene.texturesEnabled) {\r\n const isDirty = defines.DECAL;\r\n if (isDirty) {\r\n defines.markAsTexturesDirty();\r\n }\r\n defines.DECAL = false;\r\n } else {\r\n const isDirty = !defines.DECAL || defines.GAMMADECAL !== decalMap.texture.gammaSpace;\r\n if (isDirty) {\r\n defines.markAsTexturesDirty();\r\n }\r\n defines.DECAL = true;\r\n defines.GAMMADECAL = decalMap.texture.gammaSpace;\r\n defines.DECAL_SMOOTHALPHA = this._smoothAlpha;\r\n MaterialHelper.PrepareDefinesForMergedUV(decalMap.texture, defines, \"DECAL\");\r\n }\r\n }\r\n\r\n /**\r\n * Note that we override hardBindForSubMesh and not bindForSubMesh because the material can be shared by multiple meshes,\r\n * in which case mustRebind could return false even though the decal map is different for each mesh: that's because the decal map\r\n * is not part of the material but hosted by the decalMap of the mesh instead.\r\n */\r\n public hardBindForSubMesh(uniformBuffer: UniformBuffer, scene: Scene, _engine: Engine, subMesh: SubMesh): void {\r\n const decalMap = subMesh.getMesh().decalMap;\r\n\r\n if (!this._isEnabled || !decalMap?.texture || !MaterialFlags.DecalMapEnabled || !scene.texturesEnabled) {\r\n return;\r\n }\r\n\r\n const isFrozen = this._material.isFrozen;\r\n const texture = decalMap.texture;\r\n\r\n if (!uniformBuffer.useUbo || !isFrozen || !uniformBuffer.isSync) {\r\n uniformBuffer.updateFloat4(\"vDecalInfos\", texture.coordinatesIndex, 0, 0, 0);\r\n MaterialHelper.BindTextureMatrix(texture, uniformBuffer, \"decal\");\r\n }\r\n\r\n uniformBuffer.setTexture(\"decalSampler\", texture);\r\n }\r\n\r\n public getClassName(): string {\r\n return \"DecalMapConfiguration\";\r\n }\r\n\r\n public getSamplers(samplers: string[]): void {\r\n samplers.push(\"decalSampler\");\r\n }\r\n\r\n public getUniforms(): { ubo?: Array<{ name: string; size: number; type: string }>; vertex?: string; fragment?: string } {\r\n return {\r\n ubo: [\r\n { name: \"vDecalInfos\", size: 4, type: \"vec4\" },\r\n { name: \"decalMatrix\", size: 16, type: \"mat4\" },\r\n ],\r\n };\r\n }\r\n}\r\n"]}
@@ -14,6 +14,12 @@ export declare class MaterialFlags {
14
14
  */
15
15
  static get DetailTextureEnabled(): boolean;
16
16
  static set DetailTextureEnabled(value: boolean);
17
+ private static _DecalMapEnabled;
18
+ /**
19
+ * Are decal maps enabled in the application.
20
+ */
21
+ static get DecalMapEnabled(): boolean;
22
+ static set DecalMapEnabled(value: boolean);
17
23
  private static _AmbientTextureEnabled;
18
24
  /**
19
25
  * Are ambient textures enabled in the application.
@@ -30,6 +30,19 @@ export class MaterialFlags {
30
30
  this._DetailTextureEnabled = value;
31
31
  Engine.MarkAllMaterialsAsDirty(1);
32
32
  }
33
+ /**
34
+ * Are decal maps enabled in the application.
35
+ */
36
+ static get DecalMapEnabled() {
37
+ return this._DecalMapEnabled;
38
+ }
39
+ static set DecalMapEnabled(value) {
40
+ if (this._DecalMapEnabled === value) {
41
+ return;
42
+ }
43
+ this._DecalMapEnabled = value;
44
+ Engine.MarkAllMaterialsAsDirty(1);
45
+ }
33
46
  /**
34
47
  * Are ambient textures enabled in the application.
35
48
  */
@@ -281,6 +294,7 @@ export class MaterialFlags {
281
294
  // Flags used to enable or disable a type of texture for all Standard Materials
282
295
  MaterialFlags._DiffuseTextureEnabled = true;
283
296
  MaterialFlags._DetailTextureEnabled = true;
297
+ MaterialFlags._DecalMapEnabled = true;
284
298
  MaterialFlags._AmbientTextureEnabled = true;
285
299
  MaterialFlags._OpacityTextureEnabled = true;
286
300
  MaterialFlags._ReflectionTextureEnabled = true;
@@ -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 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"]}
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 _DecalMapEnabled = true;\r\n /**\r\n * Are decal maps enabled in the application.\r\n */\r\n public static get DecalMapEnabled(): boolean {\r\n return this._DecalMapEnabled;\r\n }\r\n public static set DecalMapEnabled(value: boolean) {\r\n if (this._DecalMapEnabled === value) {\r\n return;\r\n }\r\n\r\n this._DecalMapEnabled = 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"]}
@@ -0,0 +1,12 @@
1
+ import type { Nullable } from "../types.js";
2
+ import { DecalMapConfiguration } from "./material.decalMapConfiguration";
3
+ declare module "./standardMaterial" {
4
+ interface StandardMaterial {
5
+ /** @internal */
6
+ _decalMap: Nullable<DecalMapConfiguration>;
7
+ /**
8
+ * Defines the decal map parameters for the material.
9
+ */
10
+ decalMap: Nullable<DecalMapConfiguration>;
11
+ }
12
+ }
@@ -0,0 +1,18 @@
1
+ import { DecalMapConfiguration } from "./material.decalMapConfiguration.js";
2
+ import { StandardMaterial } from "./standardMaterial.js";
3
+ Object.defineProperty(StandardMaterial.prototype, "decalMap", {
4
+ get: function () {
5
+ if (!this._decalMap) {
6
+ if (this._uniformBufferLayoutBuilt) {
7
+ // Material already used to display a mesh, so it's invalid to add the decal map plugin at that point
8
+ // Returns null instead of having new DecalMapConfiguration throws an exception
9
+ return null;
10
+ }
11
+ this._decalMap = new DecalMapConfiguration(this);
12
+ }
13
+ return this._decalMap;
14
+ },
15
+ enumerable: true,
16
+ configurable: true,
17
+ });
18
+ //# sourceMappingURL=standardMaterial.decalMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standardMaterial.decalMap.js","sourceRoot":"","sources":["../../../../lts/core/generated/Materials/standardMaterial.decalMap.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AActD,MAAM,CAAC,cAAc,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAU,EAAE;IAC1D,GAAG,EAAE;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACjB,IAAI,IAAI,CAAC,yBAAyB,EAAE;gBAChC,qGAAqG;gBACrG,+EAA+E;gBAC/E,OAAO,IAAI,CAAC;aACf;YAED,IAAI,CAAC,SAAS,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC;SACpD;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IACD,UAAU,EAAE,IAAI;IAChB,YAAY,EAAE,IAAI;CACrB,CAAC,CAAC","sourcesContent":["import type { Nullable } from \"core/types\";\r\nimport { DecalMapConfiguration } from \"./material.decalMapConfiguration\";\r\nimport { StandardMaterial } from \"./standardMaterial\";\r\n\r\ndeclare module \"./standardMaterial\" {\r\n export interface StandardMaterial {\r\n /** @internal */\r\n _decalMap: Nullable<DecalMapConfiguration>;\r\n\r\n /**\r\n * Defines the decal map parameters for the material.\r\n */\r\n decalMap: Nullable<DecalMapConfiguration>;\r\n }\r\n}\r\n\r\nObject.defineProperty(StandardMaterial.prototype, \"decalMap\", {\r\n get: function (this: StandardMaterial) {\r\n if (!this._decalMap) {\r\n if (this._uniformBufferLayoutBuilt) {\r\n // Material already used to display a mesh, so it's invalid to add the decal map plugin at that point\r\n // Returns null instead of having new DecalMapConfiguration throws an exception\r\n return null;\r\n }\r\n\r\n this._decalMap = new DecalMapConfiguration(this);\r\n }\r\n return this._decalMap;\r\n },\r\n enumerable: true,\r\n configurable: true,\r\n});\r\n"]}
@@ -756,6 +756,7 @@ export class StandardMaterial extends PushMaterial {
756
756
  }
757
757
  this._eventInfo.isReadyForSubMesh = true;
758
758
  this._eventInfo.defines = defines;
759
+ this._eventInfo.subMesh = subMesh;
759
760
  this._callbackPluginEventIsReadyForSubMesh(this._eventInfo);
760
761
  if (!this._eventInfo.isReadyForSubMesh) {
761
762
  return false;