@babylonjs/gui 5.40.1 → 5.42.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/2D/advancedDynamicTexture.js +3 -0
- package/2D/advancedDynamicTexture.js.map +1 -1
- package/2D/controls/control.d.ts +2 -2
- package/2D/controls/control.js.map +1 -1
- package/2D/controls/image.d.ts +9 -0
- package/2D/controls/image.js +29 -0
- package/2D/controls/image.js.map +1 -1
- package/2D/controls/inputText.d.ts +4 -0
- package/2D/controls/inputText.js +48 -35
- package/2D/controls/inputText.js.map +1 -1
- package/2D/controls/inputTextArea.d.ts +2 -3
- package/2D/controls/inputTextArea.js +11 -11
- package/2D/controls/inputTextArea.js.map +1 -1
- package/2D/controls/line.d.ts +13 -6
- package/2D/controls/line.js +6 -0
- package/2D/controls/line.js.map +1 -1
- package/3D/controls/slider3D.js +4 -2
- package/3D/controls/slider3D.js.map +1 -1
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.js +3 -0
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.js.map +1 -1
- package/package.json +2 -2
package/3D/controls/slider3D.js
CHANGED
@@ -137,6 +137,10 @@ export class Slider3D extends Control3D {
|
|
137
137
|
sliderBackplate.visibility = 0;
|
138
138
|
sliderBackplate.scaling = new Vector3(1, 0.5, 0.8);
|
139
139
|
SceneLoader.ImportMeshAsync(undefined, Slider3D.MODEL_BASE_URL, Slider3D.MODEL_FILENAME, scene).then((result) => {
|
140
|
+
// make all meshes not pickable. Required meshes' pickable state will be set later.
|
141
|
+
result.meshes.forEach((m) => {
|
142
|
+
m.isPickable = false;
|
143
|
+
});
|
140
144
|
const sliderBackplateModel = result.meshes[1];
|
141
145
|
const sliderBarModel = result.meshes[1].clone(`${this.name}_sliderbar`, sliderBackplate);
|
142
146
|
const sliderThumbModel = result.meshes[1].clone(`${this.name}_sliderthumb`, sliderBackplate);
|
@@ -144,7 +148,6 @@ export class Slider3D extends Control3D {
|
|
144
148
|
if (this._sliderBackplateVisible) {
|
145
149
|
sliderBackplateModel.visibility = 1;
|
146
150
|
sliderBackplateModel.name = `${this.name}_sliderbackplate`;
|
147
|
-
sliderBackplateModel.isPickable = false;
|
148
151
|
sliderBackplateModel.scaling.x = 1;
|
149
152
|
sliderBackplateModel.scaling.z = 0.2;
|
150
153
|
sliderBackplateModel.parent = sliderBackplate;
|
@@ -157,7 +160,6 @@ export class Slider3D extends Control3D {
|
|
157
160
|
sliderBarModel.parent = sliderBackplate;
|
158
161
|
sliderBarModel.position.z = -0.1;
|
159
162
|
sliderBarModel.scaling = new Vector3(SLIDER_SCALING - SLIDER_MARGIN, 0.04, 0.3);
|
160
|
-
sliderBarModel.isPickable = false;
|
161
163
|
if (this._sliderBarMaterial) {
|
162
164
|
sliderBarModel.material = this._sliderBarMaterial;
|
163
165
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"slider3D.js","sourceRoot":"","sources":["../../../../../lts/gui/generated/3D/controls/slider3D.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nimport type { Nullable } from \"core/types\";\r\nimport { Observable } from \"core/Misc/observable\";\r\nimport { Vector3 } from \"core/Maths/math.vector\";\r\nimport type { TransformNode } from \"core/Meshes/transformNode\";\r\nimport type { Scene } from \"core/scene\";\r\nimport { Control3D } from \"./control3D\";\r\nimport { CreateBox } from \"core/Meshes/Builders/boxBuilder\";\r\nimport { PointerDragBehavior } from \"core/Behaviors/Meshes/pointerDragBehavior\";\r\nimport type { AbstractMesh } from \"core/Meshes/abstractMesh\";\r\nimport { SceneLoader } from \"core/Loading/sceneLoader\";\r\nimport { MRDLSliderBarMaterial } from \"../materials/mrdl/mrdlSliderBarMaterial\";\r\nimport { MRDLSliderThumbMaterial } from \"../materials/mrdl/mrdlSliderThumbMaterial\";\r\nimport { MRDLBackplateMaterial } from \"../materials/mrdl/mrdlBackplateMaterial\";\r\n\r\nconst SLIDER_MIN: number = 0;\r\nconst SLIDER_MAX: number = 100;\r\nconst SLIDER_VAL: number = 50;\r\nconst SLIDER_STEP: number = 0;\r\nconst SLIDER_SCALING: number = 1.0;\r\nconst SLIDER_MARGIN: number = 0.2;\r\n\r\n/**\r\n * Class used to create a slider in 3D\r\n */\r\nexport class Slider3D extends Control3D {\r\n /**\r\n * Base Url for the models.\r\n */\r\n public static MODEL_BASE_URL: string = \"https://assets.babylonjs.com/meshes/MRTK/\";\r\n\r\n /**\r\n * File name for the 8x4 model.\r\n */\r\n public static MODEL_FILENAME: string = \"mrtk-fluent-backplate.glb\";\r\n\r\n private _sliderBackplate: AbstractMesh;\r\n private _sliderBackplateMaterial: MRDLBackplateMaterial;\r\n private _sliderBarMaterial: MRDLSliderBarMaterial;\r\n private _sliderThumbMaterial: MRDLSliderThumbMaterial;\r\n private _sliderThumb: AbstractMesh;\r\n private _sliderBar: AbstractMesh;\r\n private _sliderBackplateVisible: boolean;\r\n\r\n private _minimum: number;\r\n private _maximum: number;\r\n private _value: number;\r\n private _step: number;\r\n\r\n private _draggedPosition: number;\r\n\r\n /** Observable raised when the sldier value changes */\r\n public onValueChangedObservable = new Observable<number>();\r\n\r\n /**\r\n * Creates a new slider\r\n * @param name defines the control name\r\n * @param sliderBackplateVisible defines if the control has a backplate, default is false\r\n */\r\n constructor(name?: string, sliderBackplateVisible?: boolean) {\r\n super(name);\r\n this._sliderBackplateVisible = sliderBackplateVisible || false;\r\n\r\n this._minimum = SLIDER_MIN;\r\n this._maximum = SLIDER_MAX;\r\n this._step = SLIDER_STEP;\r\n this._value = SLIDER_VAL;\r\n }\r\n\r\n /**\r\n * Gets the mesh used to render this control\r\n */\r\n public get mesh(): Nullable<AbstractMesh> {\r\n if (this.node) {\r\n return this._sliderThumb;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /** Gets or sets minimum value */\r\n public get minimum(): number {\r\n return this._minimum;\r\n }\r\n\r\n public set minimum(value: number) {\r\n if (this._minimum === value) {\r\n return;\r\n }\r\n\r\n this._minimum = Math.max(value, SLIDER_MIN);\r\n this._value = Math.max(Math.min(this._value, this._maximum), this._minimum);\r\n }\r\n\r\n /** Gets or sets maximum value */\r\n public get maximum(): number {\r\n return this._maximum;\r\n }\r\n\r\n public set maximum(value: number) {\r\n if (this._maximum === value) {\r\n return;\r\n }\r\n\r\n this._maximum = Math.max(value, this._minimum);\r\n this._value = Math.max(Math.min(this._value, this._maximum), this._minimum);\r\n }\r\n\r\n /** Gets or sets step value */\r\n public get step(): number {\r\n return this._step;\r\n }\r\n\r\n public set step(value: number) {\r\n if (this._step === value) {\r\n return;\r\n }\r\n\r\n this._step = Math.max(Math.min(value, this._maximum - this._minimum), SLIDER_STEP);\r\n }\r\n\r\n /** Gets or sets current value */\r\n public get value(): number {\r\n return this._value;\r\n }\r\n\r\n public set value(value: number) {\r\n if (this._value === value) {\r\n return;\r\n }\r\n\r\n this._value = Math.max(Math.min(value, this._maximum), this._minimum);\r\n if (this._sliderThumb) {\r\n this._sliderThumb.position.x = this._convertToPosition(this.value);\r\n }\r\n this.onValueChangedObservable.notifyObservers(this._value);\r\n }\r\n\r\n protected get start(): number {\r\n if (!this.node) {\r\n return -SLIDER_SCALING / 2;\r\n }\r\n\r\n return this._sliderBar.position.x - this._sliderBar.scaling.x / 2;\r\n }\r\n\r\n protected get end(): number {\r\n if (!this.node) {\r\n return SLIDER_SCALING / 2;\r\n }\r\n\r\n return this._sliderBar.position.x + this._sliderBar.scaling.x / 2;\r\n }\r\n\r\n /**\r\n * Gets the slider bar material used by this control\r\n */\r\n public get sliderBarMaterial(): MRDLSliderBarMaterial {\r\n return this._sliderBarMaterial;\r\n }\r\n\r\n /**\r\n * Gets the slider thumb material used by this control\r\n */\r\n public get sliderThumbMaterial(): MRDLSliderThumbMaterial {\r\n return this._sliderThumbMaterial;\r\n }\r\n\r\n /**\r\n * Gets the slider backplate material used by this control\r\n */\r\n public get sliderBackplateMaterial(): MRDLBackplateMaterial {\r\n return this._sliderBackplateMaterial;\r\n }\r\n\r\n /** Sets a boolean indicating if the control is visible */\r\n public set isVisible(value: boolean) {\r\n if (this._isVisible === value) {\r\n return;\r\n }\r\n\r\n this._isVisible = value;\r\n\r\n this.node?.setEnabled(value);\r\n }\r\n\r\n // Mesh association\r\n protected _createNode(scene: Scene): TransformNode {\r\n const sliderBackplate = CreateBox(\r\n `${this.name}_sliderbackplate`,\r\n {\r\n width: 1.0,\r\n height: 1.0,\r\n depth: 1.0,\r\n },\r\n scene\r\n );\r\n sliderBackplate.isPickable = false;\r\n sliderBackplate.visibility = 0;\r\n sliderBackplate.scaling = new Vector3(1, 0.5, 0.8);\r\n\r\n SceneLoader.ImportMeshAsync(undefined, Slider3D.MODEL_BASE_URL, Slider3D.MODEL_FILENAME, scene).then((result) => {\r\n const sliderBackplateModel = result.meshes[1];\r\n const sliderBarModel = result.meshes[1].clone(`${this.name}_sliderbar`, sliderBackplate);\r\n const sliderThumbModel = result.meshes[1].clone(`${this.name}_sliderthumb`, sliderBackplate);\r\n sliderBackplateModel.visibility = 0;\r\n\r\n if (this._sliderBackplateVisible) {\r\n sliderBackplateModel.visibility = 1;\r\n sliderBackplateModel.name = `${this.name}_sliderbackplate`;\r\n sliderBackplateModel.isPickable = false;\r\n sliderBackplateModel.scaling.x = 1;\r\n sliderBackplateModel.scaling.z = 0.2;\r\n sliderBackplateModel.parent = sliderBackplate;\r\n if (this._sliderBackplateMaterial) {\r\n sliderBackplateModel.material = this._sliderBackplateMaterial;\r\n }\r\n this._sliderBackplate = sliderBackplateModel;\r\n }\r\n\r\n if (sliderBarModel) {\r\n sliderBarModel.parent = sliderBackplate;\r\n sliderBarModel.position.z = -0.1;\r\n sliderBarModel.scaling = new Vector3(SLIDER_SCALING - SLIDER_MARGIN, 0.04, 0.3);\r\n sliderBarModel.isPickable = false;\r\n if (this._sliderBarMaterial) {\r\n sliderBarModel.material = this._sliderBarMaterial;\r\n }\r\n this._sliderBar = sliderBarModel;\r\n }\r\n\r\n if (sliderThumbModel) {\r\n sliderThumbModel.parent = sliderBackplate;\r\n sliderThumbModel.isPickable = true;\r\n sliderThumbModel.position.z = -0.115;\r\n sliderThumbModel.scaling = new Vector3(0.025, 0.3, 0.6);\r\n sliderThumbModel.position.x = this._convertToPosition(this.value);\r\n sliderThumbModel.addBehavior(this._createBehavior());\r\n if (this._sliderThumbMaterial) {\r\n sliderThumbModel.material = this._sliderThumbMaterial;\r\n }\r\n this._sliderThumb = sliderThumbModel;\r\n }\r\n\r\n this._injectGUI3DReservedDataStore(sliderBackplate).control = this;\r\n sliderBackplate.getChildMeshes().forEach((mesh) => {\r\n this._injectGUI3DReservedDataStore(mesh).control = this;\r\n });\r\n });\r\n\r\n this._affectMaterial(sliderBackplate);\r\n return sliderBackplate;\r\n }\r\n\r\n protected _affectMaterial(mesh: AbstractMesh) {\r\n this._sliderBackplateMaterial = this._sliderBackplateMaterial ?? new MRDLBackplateMaterial(`${this.name}_sliderbackplate_material`, mesh.getScene());\r\n this._sliderBarMaterial = this._sliderBarMaterial ?? new MRDLSliderBarMaterial(`${this.name}_sliderbar_material`, mesh.getScene());\r\n this._sliderThumbMaterial = this._sliderThumbMaterial ?? new MRDLSliderThumbMaterial(`${this.name}_sliderthumb_material`, mesh.getScene());\r\n }\r\n\r\n private _createBehavior(): PointerDragBehavior {\r\n const pointerDragBehavior = new PointerDragBehavior({ dragAxis: Vector3.Right() });\r\n pointerDragBehavior.moveAttached = false;\r\n\r\n pointerDragBehavior.onDragStartObservable.add(() => {\r\n this._draggedPosition = this._sliderThumb.position.x;\r\n });\r\n\r\n pointerDragBehavior.onDragObservable.add((event) => {\r\n this._draggedPosition += event.dragDistance / this.scaling.x;\r\n this.value = this._convertToValue(this._draggedPosition);\r\n });\r\n\r\n return pointerDragBehavior;\r\n }\r\n\r\n private _convertToPosition(value: number): number {\r\n const position = ((value - this.minimum) / (this.maximum - this.minimum)) * (this.end - this.start) + this.start;\r\n return Math.min(Math.max(position, this.start), this.end);\r\n }\r\n\r\n private _convertToValue(position: number): number {\r\n let value = ((position - this.start) / (this.end - this.start)) * (this.maximum - this.minimum);\r\n value = this.step ? Math.round(value / this.step) * this.step : value;\r\n\r\n return Math.max(Math.min(this.minimum + value, this._maximum), this._minimum);\r\n }\r\n\r\n /**\r\n * Releases all associated resources\r\n */\r\n public dispose() {\r\n super.dispose();\r\n this._sliderBar?.dispose();\r\n this._sliderThumb?.dispose();\r\n this._sliderBarMaterial?.dispose();\r\n this._sliderThumbMaterial?.dispose();\r\n this._sliderBackplate?.dispose();\r\n this._sliderBackplateMaterial?.dispose();\r\n }\r\n}\r\n"]}
|
1
|
+
{"version":3,"file":"slider3D.js","sourceRoot":"","sources":["../../../../../lts/gui/generated/3D/controls/slider3D.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nimport type { Nullable } from \"core/types\";\r\nimport { Observable } from \"core/Misc/observable\";\r\nimport { Vector3 } from \"core/Maths/math.vector\";\r\nimport type { TransformNode } from \"core/Meshes/transformNode\";\r\nimport type { Scene } from \"core/scene\";\r\nimport { Control3D } from \"./control3D\";\r\nimport { CreateBox } from \"core/Meshes/Builders/boxBuilder\";\r\nimport { PointerDragBehavior } from \"core/Behaviors/Meshes/pointerDragBehavior\";\r\nimport type { AbstractMesh } from \"core/Meshes/abstractMesh\";\r\nimport { SceneLoader } from \"core/Loading/sceneLoader\";\r\nimport { MRDLSliderBarMaterial } from \"../materials/mrdl/mrdlSliderBarMaterial\";\r\nimport { MRDLSliderThumbMaterial } from \"../materials/mrdl/mrdlSliderThumbMaterial\";\r\nimport { MRDLBackplateMaterial } from \"../materials/mrdl/mrdlBackplateMaterial\";\r\n\r\nconst SLIDER_MIN: number = 0;\r\nconst SLIDER_MAX: number = 100;\r\nconst SLIDER_VAL: number = 50;\r\nconst SLIDER_STEP: number = 0;\r\nconst SLIDER_SCALING: number = 1.0;\r\nconst SLIDER_MARGIN: number = 0.2;\r\n\r\n/**\r\n * Class used to create a slider in 3D\r\n */\r\nexport class Slider3D extends Control3D {\r\n /**\r\n * Base Url for the models.\r\n */\r\n public static MODEL_BASE_URL: string = \"https://assets.babylonjs.com/meshes/MRTK/\";\r\n\r\n /**\r\n * File name for the 8x4 model.\r\n */\r\n public static MODEL_FILENAME: string = \"mrtk-fluent-backplate.glb\";\r\n\r\n private _sliderBackplate: AbstractMesh;\r\n private _sliderBackplateMaterial: MRDLBackplateMaterial;\r\n private _sliderBarMaterial: MRDLSliderBarMaterial;\r\n private _sliderThumbMaterial: MRDLSliderThumbMaterial;\r\n private _sliderThumb: AbstractMesh;\r\n private _sliderBar: AbstractMesh;\r\n private _sliderBackplateVisible: boolean;\r\n\r\n private _minimum: number;\r\n private _maximum: number;\r\n private _value: number;\r\n private _step: number;\r\n\r\n private _draggedPosition: number;\r\n\r\n /** Observable raised when the sldier value changes */\r\n public onValueChangedObservable = new Observable<number>();\r\n\r\n /**\r\n * Creates a new slider\r\n * @param name defines the control name\r\n * @param sliderBackplateVisible defines if the control has a backplate, default is false\r\n */\r\n constructor(name?: string, sliderBackplateVisible?: boolean) {\r\n super(name);\r\n this._sliderBackplateVisible = sliderBackplateVisible || false;\r\n\r\n this._minimum = SLIDER_MIN;\r\n this._maximum = SLIDER_MAX;\r\n this._step = SLIDER_STEP;\r\n this._value = SLIDER_VAL;\r\n }\r\n\r\n /**\r\n * Gets the mesh used to render this control\r\n */\r\n public get mesh(): Nullable<AbstractMesh> {\r\n if (this.node) {\r\n return this._sliderThumb;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /** Gets or sets minimum value */\r\n public get minimum(): number {\r\n return this._minimum;\r\n }\r\n\r\n public set minimum(value: number) {\r\n if (this._minimum === value) {\r\n return;\r\n }\r\n\r\n this._minimum = Math.max(value, SLIDER_MIN);\r\n this._value = Math.max(Math.min(this._value, this._maximum), this._minimum);\r\n }\r\n\r\n /** Gets or sets maximum value */\r\n public get maximum(): number {\r\n return this._maximum;\r\n }\r\n\r\n public set maximum(value: number) {\r\n if (this._maximum === value) {\r\n return;\r\n }\r\n\r\n this._maximum = Math.max(value, this._minimum);\r\n this._value = Math.max(Math.min(this._value, this._maximum), this._minimum);\r\n }\r\n\r\n /** Gets or sets step value */\r\n public get step(): number {\r\n return this._step;\r\n }\r\n\r\n public set step(value: number) {\r\n if (this._step === value) {\r\n return;\r\n }\r\n\r\n this._step = Math.max(Math.min(value, this._maximum - this._minimum), SLIDER_STEP);\r\n }\r\n\r\n /** Gets or sets current value */\r\n public get value(): number {\r\n return this._value;\r\n }\r\n\r\n public set value(value: number) {\r\n if (this._value === value) {\r\n return;\r\n }\r\n\r\n this._value = Math.max(Math.min(value, this._maximum), this._minimum);\r\n if (this._sliderThumb) {\r\n this._sliderThumb.position.x = this._convertToPosition(this.value);\r\n }\r\n this.onValueChangedObservable.notifyObservers(this._value);\r\n }\r\n\r\n protected get start(): number {\r\n if (!this.node) {\r\n return -SLIDER_SCALING / 2;\r\n }\r\n\r\n return this._sliderBar.position.x - this._sliderBar.scaling.x / 2;\r\n }\r\n\r\n protected get end(): number {\r\n if (!this.node) {\r\n return SLIDER_SCALING / 2;\r\n }\r\n\r\n return this._sliderBar.position.x + this._sliderBar.scaling.x / 2;\r\n }\r\n\r\n /**\r\n * Gets the slider bar material used by this control\r\n */\r\n public get sliderBarMaterial(): MRDLSliderBarMaterial {\r\n return this._sliderBarMaterial;\r\n }\r\n\r\n /**\r\n * Gets the slider thumb material used by this control\r\n */\r\n public get sliderThumbMaterial(): MRDLSliderThumbMaterial {\r\n return this._sliderThumbMaterial;\r\n }\r\n\r\n /**\r\n * Gets the slider backplate material used by this control\r\n */\r\n public get sliderBackplateMaterial(): MRDLBackplateMaterial {\r\n return this._sliderBackplateMaterial;\r\n }\r\n\r\n /** Sets a boolean indicating if the control is visible */\r\n public set isVisible(value: boolean) {\r\n if (this._isVisible === value) {\r\n return;\r\n }\r\n\r\n this._isVisible = value;\r\n\r\n this.node?.setEnabled(value);\r\n }\r\n\r\n // Mesh association\r\n protected _createNode(scene: Scene): TransformNode {\r\n const sliderBackplate = CreateBox(\r\n `${this.name}_sliderbackplate`,\r\n {\r\n width: 1.0,\r\n height: 1.0,\r\n depth: 1.0,\r\n },\r\n scene\r\n );\r\n sliderBackplate.isPickable = false;\r\n sliderBackplate.visibility = 0;\r\n sliderBackplate.scaling = new Vector3(1, 0.5, 0.8);\r\n\r\n SceneLoader.ImportMeshAsync(undefined, Slider3D.MODEL_BASE_URL, Slider3D.MODEL_FILENAME, scene).then((result) => {\r\n // make all meshes not pickable. Required meshes' pickable state will be set later.\r\n result.meshes.forEach((m) => {\r\n m.isPickable = false;\r\n });\r\n const sliderBackplateModel = result.meshes[1];\r\n const sliderBarModel = result.meshes[1].clone(`${this.name}_sliderbar`, sliderBackplate);\r\n const sliderThumbModel = result.meshes[1].clone(`${this.name}_sliderthumb`, sliderBackplate);\r\n sliderBackplateModel.visibility = 0;\r\n\r\n if (this._sliderBackplateVisible) {\r\n sliderBackplateModel.visibility = 1;\r\n sliderBackplateModel.name = `${this.name}_sliderbackplate`;\r\n sliderBackplateModel.scaling.x = 1;\r\n sliderBackplateModel.scaling.z = 0.2;\r\n sliderBackplateModel.parent = sliderBackplate;\r\n if (this._sliderBackplateMaterial) {\r\n sliderBackplateModel.material = this._sliderBackplateMaterial;\r\n }\r\n this._sliderBackplate = sliderBackplateModel;\r\n }\r\n\r\n if (sliderBarModel) {\r\n sliderBarModel.parent = sliderBackplate;\r\n sliderBarModel.position.z = -0.1;\r\n sliderBarModel.scaling = new Vector3(SLIDER_SCALING - SLIDER_MARGIN, 0.04, 0.3);\r\n if (this._sliderBarMaterial) {\r\n sliderBarModel.material = this._sliderBarMaterial;\r\n }\r\n this._sliderBar = sliderBarModel;\r\n }\r\n\r\n if (sliderThumbModel) {\r\n sliderThumbModel.parent = sliderBackplate;\r\n sliderThumbModel.isPickable = true;\r\n sliderThumbModel.position.z = -0.115;\r\n sliderThumbModel.scaling = new Vector3(0.025, 0.3, 0.6);\r\n sliderThumbModel.position.x = this._convertToPosition(this.value);\r\n sliderThumbModel.addBehavior(this._createBehavior());\r\n if (this._sliderThumbMaterial) {\r\n sliderThumbModel.material = this._sliderThumbMaterial;\r\n }\r\n this._sliderThumb = sliderThumbModel;\r\n }\r\n\r\n this._injectGUI3DReservedDataStore(sliderBackplate).control = this;\r\n sliderBackplate.getChildMeshes().forEach((mesh) => {\r\n this._injectGUI3DReservedDataStore(mesh).control = this;\r\n });\r\n });\r\n\r\n this._affectMaterial(sliderBackplate);\r\n return sliderBackplate;\r\n }\r\n\r\n protected _affectMaterial(mesh: AbstractMesh) {\r\n this._sliderBackplateMaterial = this._sliderBackplateMaterial ?? new MRDLBackplateMaterial(`${this.name}_sliderbackplate_material`, mesh.getScene());\r\n this._sliderBarMaterial = this._sliderBarMaterial ?? new MRDLSliderBarMaterial(`${this.name}_sliderbar_material`, mesh.getScene());\r\n this._sliderThumbMaterial = this._sliderThumbMaterial ?? new MRDLSliderThumbMaterial(`${this.name}_sliderthumb_material`, mesh.getScene());\r\n }\r\n\r\n private _createBehavior(): PointerDragBehavior {\r\n const pointerDragBehavior = new PointerDragBehavior({ dragAxis: Vector3.Right() });\r\n pointerDragBehavior.moveAttached = false;\r\n\r\n pointerDragBehavior.onDragStartObservable.add(() => {\r\n this._draggedPosition = this._sliderThumb.position.x;\r\n });\r\n\r\n pointerDragBehavior.onDragObservable.add((event) => {\r\n this._draggedPosition += event.dragDistance / this.scaling.x;\r\n this.value = this._convertToValue(this._draggedPosition);\r\n });\r\n\r\n return pointerDragBehavior;\r\n }\r\n\r\n private _convertToPosition(value: number): number {\r\n const position = ((value - this.minimum) / (this.maximum - this.minimum)) * (this.end - this.start) + this.start;\r\n return Math.min(Math.max(position, this.start), this.end);\r\n }\r\n\r\n private _convertToValue(position: number): number {\r\n let value = ((position - this.start) / (this.end - this.start)) * (this.maximum - this.minimum);\r\n value = this.step ? Math.round(value / this.step) * this.step : value;\r\n\r\n return Math.max(Math.min(this.minimum + value, this._maximum), this._minimum);\r\n }\r\n\r\n /**\r\n * Releases all associated resources\r\n */\r\n public dispose() {\r\n super.dispose();\r\n this._sliderBar?.dispose();\r\n this._sliderThumb?.dispose();\r\n this._sliderBarMaterial?.dispose();\r\n this._sliderThumbMaterial?.dispose();\r\n this._sliderBackplate?.dispose();\r\n this._sliderBackplateMaterial?.dispose();\r\n }\r\n}\r\n"]}
|
@@ -330,6 +330,9 @@ export class MRDLSliderThumbMaterial extends PushMaterial {
|
|
330
330
|
this.alphaMode = Constants.ALPHA_DISABLE;
|
331
331
|
this.backFaceCulling = false;
|
332
332
|
this._blueGradientTexture = new Texture(MRDLSliderThumbMaterial.BLUE_GRADIENT_TEXTURE_URL, scene, true, false, Texture.NEAREST_SAMPLINGMODE);
|
333
|
+
this._decalTexture = new Texture("", this.getScene());
|
334
|
+
this._reflectionMapTexture = new Texture("", this.getScene());
|
335
|
+
this._indirectEnvTexture = new Texture("", this.getScene());
|
333
336
|
}
|
334
337
|
needAlphaBlending() {
|
335
338
|
return false;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"mrdlSliderThumbMaterial.js","sourceRoot":"","sources":["../../../../../../lts/gui/generated/3D/materials/mrdl/mrdlSliderThumbMaterial.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nimport type { Nullable } from \"core/types\";\r\nimport { SerializationHelper, serialize } from \"core/Misc/decorators\";\r\nimport type { Matrix } from \"core/Maths/math.vector\";\r\nimport { Vector2, Vector3, Vector4 } from \"core/Maths/math.vector\";\r\nimport type { IAnimatable } from \"core/Animations/animatable.interface\";\r\nimport type { BaseTexture } from \"core/Materials/Textures/baseTexture\";\r\nimport { Texture } from \"core/Materials/Textures/texture\";\r\nimport { MaterialDefines } from \"core/Materials/materialDefines\";\r\nimport { MaterialHelper } from \"core/Materials/materialHelper\";\r\nimport type { IEffectCreationOptions } from \"core/Materials/effect\";\r\nimport { PushMaterial } from \"core/Materials/pushMaterial\";\r\nimport { VertexBuffer } from \"core/Buffers/buffer\";\r\nimport type { AbstractMesh } from \"core/Meshes/abstractMesh\";\r\nimport type { SubMesh } from \"core/Meshes/subMesh\";\r\nimport type { Mesh } from \"core/Meshes/mesh\";\r\nimport type { Scene } from \"core/scene\";\r\nimport { RegisterClass } from \"core/Misc/typeStore\";\r\nimport { Color4 } from \"core/Maths/math.color\";\r\nimport { EffectFallbacks } from \"core/Materials/effectFallbacks\";\r\nimport { Constants } from \"core/Engines/constants\";\r\n\r\nimport \"./shaders/mrdlSliderThumb.fragment\";\r\nimport \"./shaders/mrdlSliderThumb.vertex\";\r\n\r\n/** @internal */\r\nclass MRDLSliderThumbMaterialDefines extends MaterialDefines {\r\n /*\r\n \"SKY_ENABLED\", \"BLOB_ENABLE_2\", \"IRIDESCENCE_ENABLED\"\r\n */\r\n public SKY_ENABLED = true;\r\n public BLOB_ENABLE_2 = true;\r\n public IRIDESCENCE_ENABLED = true;\r\n\r\n constructor() {\r\n super();\r\n this._needNormals = true;\r\n this._needUVs = true;\r\n this.rebuild();\r\n }\r\n}\r\n\r\n/**\r\n * Class used to render Slider Thumb material with MRDL\r\n */\r\nexport class MRDLSliderThumbMaterial extends PushMaterial {\r\n /**\r\n * URL pointing to the texture used to define the coloring for the Iridescent Map effect.\r\n */\r\n public static BLUE_GRADIENT_TEXTURE_URL = \"https://assets.babylonjs.com/meshes/MRTK/MRDL/mrtk-mrdl-blue-gradient.png\";\r\n private _blueGradientTexture: Texture;\r\n private _decalTexture: Texture;\r\n private _reflectionMapTexture: Texture;\r\n private _indirectEnvTexture: Texture;\r\n\r\n /**\r\n * Gets or sets the corner Radius on the slider thumb.\r\n */\r\n @serialize()\r\n public radius = 0.157;\r\n\r\n /**\r\n * Gets or sets the Bevel Front on the slider thumb.\r\n */\r\n @serialize()\r\n public bevelFront = 0.065;\r\n\r\n /**\r\n * Gets or sets the Bevel Front Stretch on the slider thumb.\r\n */\r\n @serialize()\r\n public bevelFrontStretch = 0.077;\r\n\r\n /**\r\n * Gets or sets the Bevel Back on the slider thumb.\r\n */\r\n @serialize()\r\n public bevelBack = 0.031;\r\n\r\n /**\r\n * Gets or sets the Bevel Back Stretch on the slider thumb.\r\n */\r\n @serialize()\r\n public bevelBackStretch = 0;\r\n\r\n /**\r\n * Gets or sets the top left Radii Multiplier.\r\n */\r\n @serialize()\r\n public radiusTopLeft = 1.0;\r\n\r\n /**\r\n * Gets or sets the top left Radii Multiplier.\r\n */\r\n @serialize()\r\n public radiusTopRight = 1.0;\r\n\r\n /**\r\n * Gets or sets the top left Radii Multiplier.\r\n */\r\n @serialize()\r\n public radiusBottomLeft = 1.0;\r\n\r\n /**\r\n * Gets or sets the top left Radii Multiplier.\r\n */\r\n @serialize()\r\n public radiusBottomRight = 1.0;\r\n\r\n /**\r\n * Gets or sets whether Bulge is enabled.\r\n * Default is false.\r\n */\r\n @serialize()\r\n public bulgeEnabled = false;\r\n\r\n /**\r\n * Gets or sets the Bulge Height.\r\n */\r\n @serialize()\r\n public bulgeHeight = -0.323;\r\n\r\n /**\r\n * Gets or sets the Bulge Radius.\r\n */\r\n @serialize()\r\n public bulgeRadius = 0.73;\r\n\r\n /**\r\n * Gets or sets the Sun Intensity.\r\n */\r\n @serialize()\r\n public sunIntensity = 2;\r\n\r\n /**\r\n * Gets or sets the Sun Theta.\r\n */\r\n @serialize()\r\n public sunTheta = 0.937;\r\n\r\n /**\r\n * Gets or sets the Sun Phi.\r\n */\r\n @serialize()\r\n public sunPhi = 0.555;\r\n\r\n /**\r\n * Gets or sets the Indirect Diffuse.\r\n */\r\n @serialize()\r\n public indirectDiffuse = 1;\r\n\r\n /**\r\n * Gets or sets the base albedo.\r\n */\r\n @serialize()\r\n public albedo = new Color4(0.0117647, 0.505882, 0.996078, 1);\r\n\r\n /**\r\n * Gets or sets the Specular value.\r\n */\r\n @serialize()\r\n public specular = 0;\r\n\r\n /**\r\n * Gets or sets the Shininess value.\r\n */\r\n @serialize()\r\n public shininess = 10;\r\n\r\n /**\r\n * Gets or sets the Sharpness value.\r\n */\r\n @serialize()\r\n public sharpness = 0;\r\n\r\n /**\r\n * Gets or sets the Subsurface value.\r\n */\r\n @serialize()\r\n public subsurface = 0.31;\r\n\r\n /**\r\n * Gets or sets the left gradient color.\r\n */\r\n @serialize()\r\n public leftGradientColor = new Color4(0.0117647, 0.505882, 0.996078, 1);\r\n\r\n /**\r\n * Gets or sets the right gradient color.\r\n */\r\n @serialize()\r\n public rightGradientColor = new Color4(0.0117647, 0.505882, 0.996078, 1);\r\n\r\n /**\r\n * Gets or sets the reflection value.\r\n */\r\n @serialize()\r\n public reflection = 0.749;\r\n\r\n /**\r\n * Gets or sets the front reflect value.\r\n */\r\n @serialize()\r\n public frontReflect = 0;\r\n\r\n /**\r\n * Gets or sets the edge reflect value.\r\n */\r\n @serialize()\r\n public edgeReflect = 0.09;\r\n\r\n /**\r\n * Gets or sets the power value.\r\n */\r\n @serialize()\r\n public power = 8.1;\r\n\r\n /**\r\n * Gets or sets the sky color.\r\n */\r\n @serialize()\r\n public skyColor = new Color4(0.0117647, 0.960784, 0.996078, 1);\r\n\r\n /**\r\n * Gets or sets the horizon color.\r\n */\r\n @serialize()\r\n public horizonColor = new Color4(0.0117647, 0.333333, 0.996078, 1);\r\n\r\n /**\r\n * Gets or sets the ground color.\r\n */\r\n @serialize()\r\n public groundColor = new Color4(0, 0.254902, 0.996078, 1);\r\n\r\n /**\r\n * Gets or sets the horizon power value.\r\n */\r\n @serialize()\r\n public horizonPower = 1;\r\n\r\n /**\r\n * Gets or sets the finger occlusion width value.\r\n */\r\n @serialize()\r\n public width = 0.02;\r\n\r\n /**\r\n * Gets or sets the finger occlusion fuzz value.\r\n */\r\n @serialize()\r\n public fuzz = 0.5;\r\n\r\n /**\r\n * Gets or sets the minimum finger occlusion fuzz value.\r\n */\r\n @serialize()\r\n public minFuzz = 0.001;\r\n\r\n /**\r\n * Gets or sets the finger occlusion clip fade value.\r\n */\r\n @serialize()\r\n public clipFade = 0.01;\r\n\r\n /**\r\n * Gets or sets the hue shift value.\r\n */\r\n @serialize()\r\n public hueShift = 0;\r\n\r\n /**\r\n * Gets or sets the saturation shift value.\r\n */\r\n @serialize()\r\n public saturationShift = 0;\r\n\r\n /**\r\n * Gets or sets the value shift.\r\n */\r\n @serialize()\r\n public valueShift = 0;\r\n\r\n /**\r\n * Gets or sets the position of the hover glow effect.\r\n */\r\n @serialize()\r\n public blobPosition = new Vector3(0, 0, 0.1);\r\n\r\n /**\r\n * Gets or sets the intensity of the hover glow effect.\r\n */\r\n @serialize()\r\n public blobIntensity = 0.5;\r\n\r\n /**\r\n * Gets or sets the near size of the hover glow effect.\r\n */\r\n @serialize()\r\n public blobNearSize = 0.01;\r\n\r\n /**\r\n * Gets or sets the far size of the hover glow effect.\r\n */\r\n @serialize()\r\n public blobFarSize = 0.03;\r\n\r\n /**\r\n * Gets or sets the distance considered \"near\" to the mesh, which controls the size of the hover glow effect (see blobNearSize).\r\n */\r\n @serialize()\r\n public blobNearDistance = 0;\r\n\r\n /**\r\n * Gets or sets the distance considered \"far\" from the mesh, which controls the size of the hover glow effect (see blobFarSize).\r\n */\r\n @serialize()\r\n public blobFarDistance = 0.08;\r\n\r\n /**\r\n * Gets or sets the length of the hover glow effect fade.\r\n */\r\n @serialize()\r\n public blobFadeLength = 0.576;\r\n\r\n /**\r\n * Gets or sets the progress of the hover glow effect selection animation corresponding to the left pointer (0.0 - 1.0).\r\n */\r\n @serialize()\r\n public blobPulse = 0;\r\n\r\n /**\r\n * Gets or sets the opacity of the hover glow effect corresponding to the left pointer (0.0 - 1.0). Default is 0.\r\n */\r\n @serialize()\r\n public blobFade = 1;\r\n\r\n /**\r\n * Gets or sets the position of the hover glow effect.\r\n */\r\n @serialize()\r\n public blobPosition2 = new Vector3(0.2, 0, 0.1);\r\n\r\n /**\r\n * Gets or sets the size of the hover glow effect when the right pointer is considered \"near\" to the mesh (see blobNearDistance).\r\n */\r\n @serialize()\r\n public blobNearSize2 = 0.01;\r\n\r\n /**\r\n * Gets or sets the progress of the hover glow effect selection animation corresponding to the right pointer (0.0 - 1.0).\r\n */\r\n @serialize()\r\n public blobPulse2 = 0;\r\n\r\n /**\r\n * Gets or sets the opacity of the hover glow effect corresponding to the right pointer (0.0 - 1.0). Default is 1.\r\n */\r\n @serialize()\r\n public blobFade2 = 1;\r\n\r\n /**\r\n * Gets or sets the texture of the hover glow effect.\r\n */\r\n @serialize()\r\n public blobTexture = new Texture(\"\", this.getScene());\r\n\r\n /**\r\n * Gets or sets the finger position for left index.\r\n */\r\n @serialize()\r\n public leftIndexPosition = new Vector3(0, 0, 1);\r\n\r\n /**\r\n * Gets or sets the finger position for right index.\r\n */\r\n @serialize()\r\n public rightIndexPosition = new Vector3(-1, -1, -1);\r\n\r\n /**\r\n * Gets or sets the finger position for left index middle position.\r\n */\r\n @serialize()\r\n public leftIndexMiddlePosition = new Vector3(0, 0, 0);\r\n\r\n /**\r\n * Gets or sets the finger position for right index middle position.\r\n */\r\n @serialize()\r\n public rightIndexMiddlePosition = new Vector3(0, 0, 0);\r\n\r\n /**\r\n * Gets or sets the Decal Scale for XY.\r\n */\r\n @serialize()\r\n public decalScaleXY = new Vector2(1.5, 1.5);\r\n\r\n /**\r\n * Gets or sets decalFrontOnly\r\n * Default is true\r\n */\r\n @serialize()\r\n public decalFrontOnly = true;\r\n\r\n /**\r\n * Gets or sets the Rim Light intensity.\r\n */\r\n @serialize()\r\n public rimIntensity = 0.287;\r\n\r\n /**\r\n * Gets or sets the Rim Light hue shift value.\r\n */\r\n @serialize()\r\n public rimHueShift = 0;\r\n\r\n /**\r\n * Gets or sets the Rim Light saturation shift value.\r\n */\r\n @serialize()\r\n public rimSaturationShift = 0;\r\n\r\n /**\r\n * Gets or sets the Rim Light value shift.\r\n */\r\n @serialize()\r\n public rimValueShift = -1;\r\n\r\n /**\r\n * Gets or sets the intensity of the iridescence effect.\r\n */\r\n @serialize()\r\n public iridescenceIntensity = 0;\r\n\r\n /**\r\n * @internal\r\n */\r\n public useGlobalLeftIndex = 1.0;\r\n\r\n /**\r\n * @internal\r\n */\r\n public useGlobalRightIndex = 1.0;\r\n\r\n /**\r\n * @internal\r\n */\r\n public globalLeftIndexTipProximity = 0.0;\r\n\r\n /**\r\n * @internal\r\n */\r\n public globalRightIndexTipProximity = 0.0;\r\n\r\n /**\r\n * @internal\r\n */\r\n public globalLeftIndexTipPosition = new Vector4(0.5, 0.0, -0.55, 1.0);\r\n\r\n /**\r\n * @internal\r\n */\r\n public globaRightIndexTipPosition = new Vector4(0.0, 0.0, 0.0, 1.0);\r\n\r\n /**\r\n * @internal\r\n */\r\n public globalLeftThumbTipPosition = new Vector4(0.5, 0.0, -0.55, 1.0);\r\n\r\n /**\r\n * @internal\r\n */\r\n public globalRightThumbTipPosition = new Vector4(0.0, 0.0, 0.0, 1.0);\r\n\r\n /**\r\n * @internal\r\n */\r\n public globalLeftIndexMiddlePosition = new Vector4(0.5, 0.0, -0.55, 1.0);\r\n\r\n /**\r\n * @internal\r\n */\r\n public globalRightIndexMiddlePosition = new Vector4(0.0, 0.0, 0.0, 1.0);\r\n\r\n constructor(name: string, scene?: Scene) {\r\n super(name, scene);\r\n this.alphaMode = Constants.ALPHA_DISABLE;\r\n this.backFaceCulling = false;\r\n this._blueGradientTexture = new Texture(MRDLSliderThumbMaterial.BLUE_GRADIENT_TEXTURE_URL, scene, true, false, Texture.NEAREST_SAMPLINGMODE);\r\n }\r\n\r\n public needAlphaBlending(): boolean {\r\n return false;\r\n }\r\n\r\n public needAlphaTesting(): boolean {\r\n return false;\r\n }\r\n\r\n public getAlphaTestTexture(): Nullable<BaseTexture> {\r\n return null;\r\n }\r\n\r\n // Methods\r\n public isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh): boolean {\r\n if (this.isFrozen) {\r\n if (subMesh.effect && subMesh.effect._wasPreviouslyReady) {\r\n return true;\r\n }\r\n }\r\n\r\n if (!subMesh.materialDefines) {\r\n subMesh.materialDefines = new MRDLSliderThumbMaterialDefines();\r\n }\r\n\r\n const defines = <MRDLSliderThumbMaterialDefines>subMesh.materialDefines;\r\n const scene = this.getScene();\r\n\r\n if (this._isReadyForSubMesh(subMesh)) {\r\n return true;\r\n }\r\n\r\n const engine = scene.getEngine();\r\n\r\n // Attribs\r\n MaterialHelper.PrepareDefinesForAttributes(mesh, defines, false, false);\r\n\r\n // Get correct effect\r\n if (defines.isDirty) {\r\n defines.markAsProcessed();\r\n\r\n scene.resetCachedMaterial();\r\n\r\n // Fallbacks\r\n const fallbacks = new EffectFallbacks();\r\n if (defines.FOG) {\r\n fallbacks.addFallback(1, \"FOG\");\r\n }\r\n\r\n MaterialHelper.HandleFallbacksForShadows(defines, fallbacks);\r\n\r\n defines.IMAGEPROCESSINGPOSTPROCESS = scene.imageProcessingConfiguration.applyByPostProcess;\r\n\r\n //Attributes\r\n const attribs = [VertexBuffer.PositionKind];\r\n\r\n if (defines.NORMAL) {\r\n attribs.push(VertexBuffer.NormalKind);\r\n }\r\n\r\n if (defines.UV1) {\r\n attribs.push(VertexBuffer.UVKind);\r\n }\r\n\r\n if (defines.UV2) {\r\n attribs.push(VertexBuffer.UV2Kind);\r\n }\r\n\r\n if (defines.VERTEXCOLOR) {\r\n attribs.push(VertexBuffer.ColorKind);\r\n }\r\n\r\n if (defines.TANGENT) {\r\n attribs.push(VertexBuffer.TangentKind);\r\n }\r\n\r\n MaterialHelper.PrepareAttributesForInstances(attribs, defines);\r\n\r\n // Legacy browser patch\r\n const shaderName = \"mrdlSliderThumb\";\r\n const join = defines.toString();\r\n\r\n const uniforms = [\r\n \"world\",\r\n \"viewProjection\",\r\n \"cameraPosition\",\r\n \"_Radius_\",\r\n \"_Bevel_Front_\",\r\n \"_Bevel_Front_Stretch_\",\r\n \"_Bevel_Back_\",\r\n \"_Bevel_Back_Stretch_\",\r\n \"_Radius_Top_Left_\",\r\n \"_Radius_Top_Right_\",\r\n \"_Radius_Bottom_Left_\",\r\n \"_Radius_Bottom_Right_\",\r\n \"_Bulge_Enabled_\",\r\n \"_Bulge_Height_\",\r\n \"_Bulge_Radius_\",\r\n \"_Sun_Intensity_\",\r\n \"_Sun_Theta_\",\r\n \"_Sun_Phi_\",\r\n \"_Indirect_Diffuse_\",\r\n \"_Albedo_\",\r\n \"_Specular_\",\r\n \"_Shininess_\",\r\n \"_Sharpness_\",\r\n \"_Subsurface_\",\r\n \"_Left_Color_\",\r\n \"_Right_Color_\",\r\n \"_Reflection_\",\r\n \"_Front_Reflect_\",\r\n \"_Edge_Reflect_\",\r\n \"_Power_\",\r\n \"_Sky_Color_\",\r\n \"_Horizon_Color_\",\r\n \"_Ground_Color_\",\r\n \"_Horizon_Power_\",\r\n \"_Reflection_Map_\",\r\n \"_Indirect_Environment_\",\r\n \"_Width_\",\r\n \"_Fuzz_\",\r\n \"_Min_Fuzz_\",\r\n \"_Clip_Fade_\",\r\n \"_Hue_Shift_\",\r\n \"_Saturation_Shift_\",\r\n \"_Value_Shift_\",\r\n \"_Blob_Position_\",\r\n \"_Blob_Intensity_\",\r\n \"_Blob_Near_Size_\",\r\n \"_Blob_Far_Size_\",\r\n \"_Blob_Near_Distance_\",\r\n \"_Blob_Far_Distance_\",\r\n \"_Blob_Fade_Length_\",\r\n \"_Blob_Pulse_\",\r\n \"_Blob_Fade_\",\r\n \"_Blob_Texture_\",\r\n \"_Blob_Position_2_\",\r\n \"_Blob_Near_Size_2_\",\r\n \"_Blob_Pulse_2_\",\r\n \"_Blob_Fade_2_\",\r\n \"_Left_Index_Pos_\",\r\n \"_Right_Index_Pos_\",\r\n \"_Left_Index_Middle_Pos_\",\r\n \"_Right_Index_Middle_Pos_\",\r\n \"_Decal_\",\r\n \"_Decal_Scale_XY_\",\r\n \"_Decal_Front_Only_\",\r\n \"_Rim_Intensity_\",\r\n \"_Rim_Texture_\",\r\n \"_Rim_Hue_Shift_\",\r\n \"_Rim_Saturation_Shift_\",\r\n \"_Rim_Value_Shift_\",\r\n \"_Iridescence_Intensity_\",\r\n \"_Iridescence_Texture_\",\r\n \"Use_Global_Left_Index\",\r\n \"Use_Global_Right_Index\",\r\n \"Global_Left_Index_Tip_Position\",\r\n \"Global_Right_Index_Tip_Position\",\r\n \"Global_Left_Thumb_Tip_Position\",\r\n \"Global_Right_Thumb_Tip_Position\",\r\n \"Global_Left_Index_Middle_Position;\",\r\n \"Global_Right_Index_Middle_Position\",\r\n \"Global_Left_Index_Tip_Proximity\",\r\n \"Global_Right_Index_Tip_Proximity\",\r\n ];\r\n const samplers: string[] = [\"_Rim_Texture_\", \"_Iridescence_Texture_\"];\r\n const uniformBuffers = new Array<string>();\r\n\r\n MaterialHelper.PrepareUniformsAndSamplersList(<IEffectCreationOptions>{\r\n uniformsNames: uniforms,\r\n uniformBuffersNames: uniformBuffers,\r\n samplers: samplers,\r\n defines: defines,\r\n maxSimultaneousLights: 4,\r\n });\r\n\r\n subMesh.setEffect(\r\n scene.getEngine().createEffect(\r\n shaderName,\r\n <IEffectCreationOptions>{\r\n attributes: attribs,\r\n uniformsNames: uniforms,\r\n uniformBuffersNames: uniformBuffers,\r\n samplers: samplers,\r\n defines: join,\r\n fallbacks: fallbacks,\r\n onCompiled: this.onCompiled,\r\n onError: this.onError,\r\n indexParameters: { maxSimultaneousLights: 4 },\r\n },\r\n engine\r\n ),\r\n defines\r\n );\r\n }\r\n if (!subMesh.effect || !subMesh.effect.isReady()) {\r\n return false;\r\n }\r\n\r\n defines._renderId = scene.getRenderId();\r\n subMesh.effect._wasPreviouslyReady = true;\r\n\r\n return true;\r\n }\r\n\r\n public bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void {\r\n const defines = <MRDLSliderThumbMaterialDefines>subMesh.materialDefines;\r\n if (!defines) {\r\n return;\r\n }\r\n\r\n const effect = subMesh.effect;\r\n if (!effect) {\r\n return;\r\n }\r\n\r\n this._activeEffect = effect;\r\n\r\n // Matrices\r\n this.bindOnlyWorldMatrix(world);\r\n this._activeEffect.setMatrix(\"viewProjection\", this.getScene().getTransformMatrix());\r\n this._activeEffect.setVector3(\"cameraPosition\", this.getScene().activeCamera!.position);\r\n\r\n // \"Round Rect\"\r\n this._activeEffect.setFloat(\"_Radius_\", this.radius);\r\n this._activeEffect.setFloat(\"_Bevel_Front_\", this.bevelFront);\r\n this._activeEffect.setFloat(\"_Bevel_Front_Stretch_\", this.bevelFrontStretch);\r\n this._activeEffect.setFloat(\"_Bevel_Back_\", this.bevelBack);\r\n this._activeEffect.setFloat(\"_Bevel_Back_Stretch_\", this.bevelBackStretch);\r\n\r\n // \"Radii Multipliers\"\r\n this._activeEffect.setFloat(\"_Radius_Top_Left_\", this.radiusTopLeft);\r\n this._activeEffect.setFloat(\"_Radius_Top_Right_\", this.radiusTopRight);\r\n this._activeEffect.setFloat(\"_Radius_Bottom_Left_\", this.radiusBottomLeft);\r\n this._activeEffect.setFloat(\"_Radius_Bottom_Right_\", this.radiusBottomRight);\r\n\r\n // \"Bulge\"\r\n this._activeEffect.setFloat(\"_Bulge_Enabled_\", this.bulgeEnabled ? 1.0 : 0.0);\r\n this._activeEffect.setFloat(\"_Bulge_Height_\", this.bulgeHeight);\r\n this._activeEffect.setFloat(\"_Bulge_Radius_\", this.bulgeRadius);\r\n\r\n // \"Sun\"\r\n this._activeEffect.setFloat(\"_Sun_Intensity_\", this.sunIntensity);\r\n this._activeEffect.setFloat(\"_Sun_Theta_\", this.sunTheta);\r\n this._activeEffect.setFloat(\"_Sun_Phi_\", this.sunPhi);\r\n this._activeEffect.setFloat(\"_Indirect_Diffuse_\", this.indirectDiffuse);\r\n\r\n // \"Diffuse And Specular\"\r\n this._activeEffect.setDirectColor4(\"_Albedo_\", this.albedo);\r\n this._activeEffect.setFloat(\"_Specular_\", this.specular);\r\n this._activeEffect.setFloat(\"_Shininess_\", this.shininess);\r\n this._activeEffect.setFloat(\"_Sharpness_\", this.sharpness);\r\n this._activeEffect.setFloat(\"_Subsurface_\", this.subsurface);\r\n\r\n // \"Gradient\"\r\n this._activeEffect.setDirectColor4(\"_Left_Color_\", this.leftGradientColor);\r\n this._activeEffect.setDirectColor4(\"_Right_Color_\", this.rightGradientColor);\r\n\r\n // \"Reflection\"\r\n this._activeEffect.setFloat(\"_Reflection_\", this.reflection);\r\n this._activeEffect.setFloat(\"_Front_Reflect_\", this.frontReflect);\r\n this._activeEffect.setFloat(\"_Edge_Reflect_\", this.edgeReflect);\r\n this._activeEffect.setFloat(\"_Power_\", this.power);\r\n\r\n // \"Sky Environment\"\r\n //define SKY_ENABLED true;\r\n this._activeEffect.setDirectColor4(\"_Sky_Color_\", this.skyColor);\r\n this._activeEffect.setDirectColor4(\"_Horizon_Color_\", this.horizonColor);\r\n this._activeEffect.setDirectColor4(\"_Ground_Color_\", this.groundColor);\r\n this._activeEffect.setFloat(\"_Horizon_Power_\", this.horizonPower);\r\n\r\n // \"Mapped Environment\"\r\n //define ENV_ENABLE false;\r\n this._activeEffect.setTexture(\"_Reflection_Map_\", this._reflectionMapTexture);\r\n this._activeEffect.setTexture(\"_Indirect_Environment_\", this._indirectEnvTexture);\r\n\r\n // \"FingerOcclusion\"\r\n //define OCCLUSION_ENABLED false;\r\n this._activeEffect.setFloat(\"_Width_\", this.width);\r\n this._activeEffect.setFloat(\"_Fuzz_\", this.fuzz);\r\n this._activeEffect.setFloat(\"_Min_Fuzz_\", this.minFuzz);\r\n this._activeEffect.setFloat(\"_Clip_Fade_\", this.clipFade);\r\n\r\n // \"View Based Color Shift\"\r\n this._activeEffect.setFloat(\"_Hue_Shift_\", this.hueShift);\r\n this._activeEffect.setFloat(\"_Saturation_Shift_\", this.saturationShift);\r\n this._activeEffect.setFloat(\"_Value_Shift_\", this.valueShift);\r\n\r\n // \"Blob\"\r\n //define BLOB_ENABLE false;\r\n this._activeEffect.setVector3(\"_Blob_Position_\", this.blobPosition);\r\n this._activeEffect.setFloat(\"_Blob_Intensity_\", this.blobIntensity);\r\n this._activeEffect.setFloat(\"_Blob_Near_Size_\", this.blobNearSize);\r\n this._activeEffect.setFloat(\"_Blob_Far_Size_\", this.blobFarSize);\r\n this._activeEffect.setFloat(\"_Blob_Near_Distance_\", this.blobNearDistance);\r\n this._activeEffect.setFloat(\"_Blob_Far_Distance_\", this.blobFarDistance);\r\n this._activeEffect.setFloat(\"_Blob_Fade_Length_\", this.blobFadeLength);\r\n this._activeEffect.setFloat(\"_Blob_Pulse_\", this.blobPulse);\r\n this._activeEffect.setFloat(\"_Blob_Fade_\", this.blobFade);\r\n\r\n // \"Blob Texture\"\r\n this._activeEffect.setTexture(\"_Blob_Texture_\", this.blobTexture);\r\n\r\n // \"Blob 2\"\r\n //define BLOB_ENABLE_2 true;\r\n this._activeEffect.setVector3(\"_Blob_Position_2_\", this.blobPosition2);\r\n this._activeEffect.setFloat(\"_Blob_Near_Size_2_\", this.blobNearSize2);\r\n this._activeEffect.setFloat(\"_Blob_Pulse_2_\", this.blobPulse2);\r\n this._activeEffect.setFloat(\"_Blob_Fade_2_\", this.blobFade2);\r\n\r\n // \"Finger Positions\"\r\n this._activeEffect.setVector3(\"_Left_Index_Pos_\", this.leftIndexPosition);\r\n this._activeEffect.setVector3(\"_Right_Index_Pos_\", this.rightIndexPosition);\r\n this._activeEffect.setVector3(\"_Left_Index_Middle_Pos_\", this.leftIndexMiddlePosition);\r\n this._activeEffect.setVector3(\"_Right_Index_Middle_Pos_\", this.rightIndexMiddlePosition);\r\n\r\n // \"Decal Texture\"\r\n //define DECAL_ENABLE false;\r\n this._activeEffect.setTexture(\"_Decal_\", this._decalTexture);\r\n this._activeEffect.setVector2(\"_Decal_Scale_XY_\", this.decalScaleXY);\r\n this._activeEffect.setFloat(\"_Decal_Front_Only_\", this.decalFrontOnly ? 1.0 : 0.0);\r\n\r\n // \"Rim Light\"\r\n this._activeEffect.setFloat(\"_Rim_Intensity_\", this.rimIntensity);\r\n this._activeEffect.setTexture(\"_Rim_Texture_\", this._blueGradientTexture);\r\n this._activeEffect.setFloat(\"_Rim_Hue_Shift_\", this.rimHueShift);\r\n this._activeEffect.setFloat(\"_Rim_Saturation_Shift_\", this.rimSaturationShift);\r\n this._activeEffect.setFloat(\"_Rim_Value_Shift_\", this.rimValueShift);\r\n\r\n // \"Iridescence\"\r\n //define IRIDESCENCE_ENABLED true;\r\n this._activeEffect.setFloat(\"_Iridescence_Intensity_\", this.iridescenceIntensity);\r\n this._activeEffect.setTexture(\"_Iridescence_Texture_\", this._blueGradientTexture);\r\n\r\n // Global inputs\r\n this._activeEffect.setFloat(\"Use_Global_Left_Index\", this.useGlobalLeftIndex);\r\n this._activeEffect.setFloat(\"Use_Global_Right_Index\", this.useGlobalRightIndex);\r\n\r\n this._activeEffect.setVector4(\"Global_Left_Index_Tip_Position\", this.globalLeftIndexTipPosition);\r\n this._activeEffect.setVector4(\"Global_Right_Index_Tip_Position\", this.globaRightIndexTipPosition);\r\n\r\n this._activeEffect.setVector4(\"Global_Left_Thumb_Tip_Position\", this.globalLeftThumbTipPosition);\r\n this._activeEffect.setVector4(\"Global_Right_Thumb_Tip_Position\", this.globalRightThumbTipPosition);\r\n\r\n this._activeEffect.setVector4(\"Global_Left_Index_Middle_Position\", this.globalLeftIndexMiddlePosition);\r\n this._activeEffect.setVector4(\"Global_Right_Index_Middle_Position\", this.globalRightIndexMiddlePosition);\r\n\r\n this._activeEffect.setFloat(\"Global_Left_Index_Tip_Proximity\", this.globalLeftIndexTipProximity);\r\n this._activeEffect.setFloat(\"Global_Right_Index_Tip_Proximity\", this.globalRightIndexTipProximity);\r\n\r\n this._afterBind(mesh, this._activeEffect);\r\n }\r\n\r\n /**\r\n * Get the list of animatables in the material.\r\n * @returns the list of animatables object used in the material\r\n */\r\n public getAnimatables(): IAnimatable[] {\r\n return [];\r\n }\r\n\r\n public dispose(forceDisposeEffect?: boolean): void {\r\n super.dispose(forceDisposeEffect);\r\n this._reflectionMapTexture.dispose();\r\n this._indirectEnvTexture.dispose();\r\n this._blueGradientTexture.dispose();\r\n this._decalTexture.dispose();\r\n }\r\n\r\n public clone(name: string): MRDLSliderThumbMaterial {\r\n return SerializationHelper.Clone(() => new MRDLSliderThumbMaterial(name, this.getScene()), this);\r\n }\r\n\r\n public serialize(): any {\r\n const serializationObject = super.serialize();\r\n serializationObject.customType = \"BABYLON.MRDLSliderThumbMaterial\";\r\n return serializationObject;\r\n }\r\n\r\n public getClassName(): string {\r\n return \"MRDLSliderThumbMaterial\";\r\n }\r\n\r\n // Statics\r\n public static Parse(source: any, scene: Scene, rootUrl: string): MRDLSliderThumbMaterial {\r\n return SerializationHelper.Parse(() => new MRDLSliderThumbMaterial(source.name, scene), source, scene, rootUrl);\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.GUI.MRDLSliderThumbMaterial\", MRDLSliderThumbMaterial);\r\n"]}
|
1
|
+
{"version":3,"file":"mrdlSliderThumbMaterial.js","sourceRoot":"","sources":["../../../../../../lts/gui/generated/3D/materials/mrdl/mrdlSliderThumbMaterial.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nimport type { Nullable } from \"core/types\";\r\nimport { SerializationHelper, serialize } from \"core/Misc/decorators\";\r\nimport type { Matrix } from \"core/Maths/math.vector\";\r\nimport { Vector2, Vector3, Vector4 } from \"core/Maths/math.vector\";\r\nimport type { IAnimatable } from \"core/Animations/animatable.interface\";\r\nimport type { BaseTexture } from \"core/Materials/Textures/baseTexture\";\r\nimport { Texture } from \"core/Materials/Textures/texture\";\r\nimport { MaterialDefines } from \"core/Materials/materialDefines\";\r\nimport { MaterialHelper } from \"core/Materials/materialHelper\";\r\nimport type { IEffectCreationOptions } from \"core/Materials/effect\";\r\nimport { PushMaterial } from \"core/Materials/pushMaterial\";\r\nimport { VertexBuffer } from \"core/Buffers/buffer\";\r\nimport type { AbstractMesh } from \"core/Meshes/abstractMesh\";\r\nimport type { SubMesh } from \"core/Meshes/subMesh\";\r\nimport type { Mesh } from \"core/Meshes/mesh\";\r\nimport type { Scene } from \"core/scene\";\r\nimport { RegisterClass } from \"core/Misc/typeStore\";\r\nimport { Color4 } from \"core/Maths/math.color\";\r\nimport { EffectFallbacks } from \"core/Materials/effectFallbacks\";\r\nimport { Constants } from \"core/Engines/constants\";\r\n\r\nimport \"./shaders/mrdlSliderThumb.fragment\";\r\nimport \"./shaders/mrdlSliderThumb.vertex\";\r\n\r\n/** @internal */\r\nclass MRDLSliderThumbMaterialDefines extends MaterialDefines {\r\n /*\r\n \"SKY_ENABLED\", \"BLOB_ENABLE_2\", \"IRIDESCENCE_ENABLED\"\r\n */\r\n public SKY_ENABLED = true;\r\n public BLOB_ENABLE_2 = true;\r\n public IRIDESCENCE_ENABLED = true;\r\n\r\n constructor() {\r\n super();\r\n this._needNormals = true;\r\n this._needUVs = true;\r\n this.rebuild();\r\n }\r\n}\r\n\r\n/**\r\n * Class used to render Slider Thumb material with MRDL\r\n */\r\nexport class MRDLSliderThumbMaterial extends PushMaterial {\r\n /**\r\n * URL pointing to the texture used to define the coloring for the Iridescent Map effect.\r\n */\r\n public static BLUE_GRADIENT_TEXTURE_URL = \"https://assets.babylonjs.com/meshes/MRTK/MRDL/mrtk-mrdl-blue-gradient.png\";\r\n private _blueGradientTexture: Texture;\r\n private _decalTexture: Texture;\r\n private _reflectionMapTexture: Texture;\r\n private _indirectEnvTexture: Texture;\r\n\r\n /**\r\n * Gets or sets the corner Radius on the slider thumb.\r\n */\r\n @serialize()\r\n public radius = 0.157;\r\n\r\n /**\r\n * Gets or sets the Bevel Front on the slider thumb.\r\n */\r\n @serialize()\r\n public bevelFront = 0.065;\r\n\r\n /**\r\n * Gets or sets the Bevel Front Stretch on the slider thumb.\r\n */\r\n @serialize()\r\n public bevelFrontStretch = 0.077;\r\n\r\n /**\r\n * Gets or sets the Bevel Back on the slider thumb.\r\n */\r\n @serialize()\r\n public bevelBack = 0.031;\r\n\r\n /**\r\n * Gets or sets the Bevel Back Stretch on the slider thumb.\r\n */\r\n @serialize()\r\n public bevelBackStretch = 0;\r\n\r\n /**\r\n * Gets or sets the top left Radii Multiplier.\r\n */\r\n @serialize()\r\n public radiusTopLeft = 1.0;\r\n\r\n /**\r\n * Gets or sets the top left Radii Multiplier.\r\n */\r\n @serialize()\r\n public radiusTopRight = 1.0;\r\n\r\n /**\r\n * Gets or sets the top left Radii Multiplier.\r\n */\r\n @serialize()\r\n public radiusBottomLeft = 1.0;\r\n\r\n /**\r\n * Gets or sets the top left Radii Multiplier.\r\n */\r\n @serialize()\r\n public radiusBottomRight = 1.0;\r\n\r\n /**\r\n * Gets or sets whether Bulge is enabled.\r\n * Default is false.\r\n */\r\n @serialize()\r\n public bulgeEnabled = false;\r\n\r\n /**\r\n * Gets or sets the Bulge Height.\r\n */\r\n @serialize()\r\n public bulgeHeight = -0.323;\r\n\r\n /**\r\n * Gets or sets the Bulge Radius.\r\n */\r\n @serialize()\r\n public bulgeRadius = 0.73;\r\n\r\n /**\r\n * Gets or sets the Sun Intensity.\r\n */\r\n @serialize()\r\n public sunIntensity = 2;\r\n\r\n /**\r\n * Gets or sets the Sun Theta.\r\n */\r\n @serialize()\r\n public sunTheta = 0.937;\r\n\r\n /**\r\n * Gets or sets the Sun Phi.\r\n */\r\n @serialize()\r\n public sunPhi = 0.555;\r\n\r\n /**\r\n * Gets or sets the Indirect Diffuse.\r\n */\r\n @serialize()\r\n public indirectDiffuse = 1;\r\n\r\n /**\r\n * Gets or sets the base albedo.\r\n */\r\n @serialize()\r\n public albedo = new Color4(0.0117647, 0.505882, 0.996078, 1);\r\n\r\n /**\r\n * Gets or sets the Specular value.\r\n */\r\n @serialize()\r\n public specular = 0;\r\n\r\n /**\r\n * Gets or sets the Shininess value.\r\n */\r\n @serialize()\r\n public shininess = 10;\r\n\r\n /**\r\n * Gets or sets the Sharpness value.\r\n */\r\n @serialize()\r\n public sharpness = 0;\r\n\r\n /**\r\n * Gets or sets the Subsurface value.\r\n */\r\n @serialize()\r\n public subsurface = 0.31;\r\n\r\n /**\r\n * Gets or sets the left gradient color.\r\n */\r\n @serialize()\r\n public leftGradientColor = new Color4(0.0117647, 0.505882, 0.996078, 1);\r\n\r\n /**\r\n * Gets or sets the right gradient color.\r\n */\r\n @serialize()\r\n public rightGradientColor = new Color4(0.0117647, 0.505882, 0.996078, 1);\r\n\r\n /**\r\n * Gets or sets the reflection value.\r\n */\r\n @serialize()\r\n public reflection = 0.749;\r\n\r\n /**\r\n * Gets or sets the front reflect value.\r\n */\r\n @serialize()\r\n public frontReflect = 0;\r\n\r\n /**\r\n * Gets or sets the edge reflect value.\r\n */\r\n @serialize()\r\n public edgeReflect = 0.09;\r\n\r\n /**\r\n * Gets or sets the power value.\r\n */\r\n @serialize()\r\n public power = 8.1;\r\n\r\n /**\r\n * Gets or sets the sky color.\r\n */\r\n @serialize()\r\n public skyColor = new Color4(0.0117647, 0.960784, 0.996078, 1);\r\n\r\n /**\r\n * Gets or sets the horizon color.\r\n */\r\n @serialize()\r\n public horizonColor = new Color4(0.0117647, 0.333333, 0.996078, 1);\r\n\r\n /**\r\n * Gets or sets the ground color.\r\n */\r\n @serialize()\r\n public groundColor = new Color4(0, 0.254902, 0.996078, 1);\r\n\r\n /**\r\n * Gets or sets the horizon power value.\r\n */\r\n @serialize()\r\n public horizonPower = 1;\r\n\r\n /**\r\n * Gets or sets the finger occlusion width value.\r\n */\r\n @serialize()\r\n public width = 0.02;\r\n\r\n /**\r\n * Gets or sets the finger occlusion fuzz value.\r\n */\r\n @serialize()\r\n public fuzz = 0.5;\r\n\r\n /**\r\n * Gets or sets the minimum finger occlusion fuzz value.\r\n */\r\n @serialize()\r\n public minFuzz = 0.001;\r\n\r\n /**\r\n * Gets or sets the finger occlusion clip fade value.\r\n */\r\n @serialize()\r\n public clipFade = 0.01;\r\n\r\n /**\r\n * Gets or sets the hue shift value.\r\n */\r\n @serialize()\r\n public hueShift = 0;\r\n\r\n /**\r\n * Gets or sets the saturation shift value.\r\n */\r\n @serialize()\r\n public saturationShift = 0;\r\n\r\n /**\r\n * Gets or sets the value shift.\r\n */\r\n @serialize()\r\n public valueShift = 0;\r\n\r\n /**\r\n * Gets or sets the position of the hover glow effect.\r\n */\r\n @serialize()\r\n public blobPosition = new Vector3(0, 0, 0.1);\r\n\r\n /**\r\n * Gets or sets the intensity of the hover glow effect.\r\n */\r\n @serialize()\r\n public blobIntensity = 0.5;\r\n\r\n /**\r\n * Gets or sets the near size of the hover glow effect.\r\n */\r\n @serialize()\r\n public blobNearSize = 0.01;\r\n\r\n /**\r\n * Gets or sets the far size of the hover glow effect.\r\n */\r\n @serialize()\r\n public blobFarSize = 0.03;\r\n\r\n /**\r\n * Gets or sets the distance considered \"near\" to the mesh, which controls the size of the hover glow effect (see blobNearSize).\r\n */\r\n @serialize()\r\n public blobNearDistance = 0;\r\n\r\n /**\r\n * Gets or sets the distance considered \"far\" from the mesh, which controls the size of the hover glow effect (see blobFarSize).\r\n */\r\n @serialize()\r\n public blobFarDistance = 0.08;\r\n\r\n /**\r\n * Gets or sets the length of the hover glow effect fade.\r\n */\r\n @serialize()\r\n public blobFadeLength = 0.576;\r\n\r\n /**\r\n * Gets or sets the progress of the hover glow effect selection animation corresponding to the left pointer (0.0 - 1.0).\r\n */\r\n @serialize()\r\n public blobPulse = 0;\r\n\r\n /**\r\n * Gets or sets the opacity of the hover glow effect corresponding to the left pointer (0.0 - 1.0). Default is 0.\r\n */\r\n @serialize()\r\n public blobFade = 1;\r\n\r\n /**\r\n * Gets or sets the position of the hover glow effect.\r\n */\r\n @serialize()\r\n public blobPosition2 = new Vector3(0.2, 0, 0.1);\r\n\r\n /**\r\n * Gets or sets the size of the hover glow effect when the right pointer is considered \"near\" to the mesh (see blobNearDistance).\r\n */\r\n @serialize()\r\n public blobNearSize2 = 0.01;\r\n\r\n /**\r\n * Gets or sets the progress of the hover glow effect selection animation corresponding to the right pointer (0.0 - 1.0).\r\n */\r\n @serialize()\r\n public blobPulse2 = 0;\r\n\r\n /**\r\n * Gets or sets the opacity of the hover glow effect corresponding to the right pointer (0.0 - 1.0). Default is 1.\r\n */\r\n @serialize()\r\n public blobFade2 = 1;\r\n\r\n /**\r\n * Gets or sets the texture of the hover glow effect.\r\n */\r\n @serialize()\r\n public blobTexture = new Texture(\"\", this.getScene());\r\n\r\n /**\r\n * Gets or sets the finger position for left index.\r\n */\r\n @serialize()\r\n public leftIndexPosition = new Vector3(0, 0, 1);\r\n\r\n /**\r\n * Gets or sets the finger position for right index.\r\n */\r\n @serialize()\r\n public rightIndexPosition = new Vector3(-1, -1, -1);\r\n\r\n /**\r\n * Gets or sets the finger position for left index middle position.\r\n */\r\n @serialize()\r\n public leftIndexMiddlePosition = new Vector3(0, 0, 0);\r\n\r\n /**\r\n * Gets or sets the finger position for right index middle position.\r\n */\r\n @serialize()\r\n public rightIndexMiddlePosition = new Vector3(0, 0, 0);\r\n\r\n /**\r\n * Gets or sets the Decal Scale for XY.\r\n */\r\n @serialize()\r\n public decalScaleXY = new Vector2(1.5, 1.5);\r\n\r\n /**\r\n * Gets or sets decalFrontOnly\r\n * Default is true\r\n */\r\n @serialize()\r\n public decalFrontOnly = true;\r\n\r\n /**\r\n * Gets or sets the Rim Light intensity.\r\n */\r\n @serialize()\r\n public rimIntensity = 0.287;\r\n\r\n /**\r\n * Gets or sets the Rim Light hue shift value.\r\n */\r\n @serialize()\r\n public rimHueShift = 0;\r\n\r\n /**\r\n * Gets or sets the Rim Light saturation shift value.\r\n */\r\n @serialize()\r\n public rimSaturationShift = 0;\r\n\r\n /**\r\n * Gets or sets the Rim Light value shift.\r\n */\r\n @serialize()\r\n public rimValueShift = -1;\r\n\r\n /**\r\n * Gets or sets the intensity of the iridescence effect.\r\n */\r\n @serialize()\r\n public iridescenceIntensity = 0;\r\n\r\n /**\r\n * @internal\r\n */\r\n public useGlobalLeftIndex = 1.0;\r\n\r\n /**\r\n * @internal\r\n */\r\n public useGlobalRightIndex = 1.0;\r\n\r\n /**\r\n * @internal\r\n */\r\n public globalLeftIndexTipProximity = 0.0;\r\n\r\n /**\r\n * @internal\r\n */\r\n public globalRightIndexTipProximity = 0.0;\r\n\r\n /**\r\n * @internal\r\n */\r\n public globalLeftIndexTipPosition = new Vector4(0.5, 0.0, -0.55, 1.0);\r\n\r\n /**\r\n * @internal\r\n */\r\n public globaRightIndexTipPosition = new Vector4(0.0, 0.0, 0.0, 1.0);\r\n\r\n /**\r\n * @internal\r\n */\r\n public globalLeftThumbTipPosition = new Vector4(0.5, 0.0, -0.55, 1.0);\r\n\r\n /**\r\n * @internal\r\n */\r\n public globalRightThumbTipPosition = new Vector4(0.0, 0.0, 0.0, 1.0);\r\n\r\n /**\r\n * @internal\r\n */\r\n public globalLeftIndexMiddlePosition = new Vector4(0.5, 0.0, -0.55, 1.0);\r\n\r\n /**\r\n * @internal\r\n */\r\n public globalRightIndexMiddlePosition = new Vector4(0.0, 0.0, 0.0, 1.0);\r\n\r\n constructor(name: string, scene?: Scene) {\r\n super(name, scene);\r\n this.alphaMode = Constants.ALPHA_DISABLE;\r\n this.backFaceCulling = false;\r\n this._blueGradientTexture = new Texture(MRDLSliderThumbMaterial.BLUE_GRADIENT_TEXTURE_URL, scene, true, false, Texture.NEAREST_SAMPLINGMODE);\r\n this._decalTexture = new Texture(\"\", this.getScene());\r\n this._reflectionMapTexture = new Texture(\"\", this.getScene());\r\n this._indirectEnvTexture = new Texture(\"\", this.getScene());\r\n }\r\n\r\n public needAlphaBlending(): boolean {\r\n return false;\r\n }\r\n\r\n public needAlphaTesting(): boolean {\r\n return false;\r\n }\r\n\r\n public getAlphaTestTexture(): Nullable<BaseTexture> {\r\n return null;\r\n }\r\n\r\n // Methods\r\n public isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh): boolean {\r\n if (this.isFrozen) {\r\n if (subMesh.effect && subMesh.effect._wasPreviouslyReady) {\r\n return true;\r\n }\r\n }\r\n\r\n if (!subMesh.materialDefines) {\r\n subMesh.materialDefines = new MRDLSliderThumbMaterialDefines();\r\n }\r\n\r\n const defines = <MRDLSliderThumbMaterialDefines>subMesh.materialDefines;\r\n const scene = this.getScene();\r\n\r\n if (this._isReadyForSubMesh(subMesh)) {\r\n return true;\r\n }\r\n\r\n const engine = scene.getEngine();\r\n\r\n // Attribs\r\n MaterialHelper.PrepareDefinesForAttributes(mesh, defines, false, false);\r\n\r\n // Get correct effect\r\n if (defines.isDirty) {\r\n defines.markAsProcessed();\r\n\r\n scene.resetCachedMaterial();\r\n\r\n // Fallbacks\r\n const fallbacks = new EffectFallbacks();\r\n if (defines.FOG) {\r\n fallbacks.addFallback(1, \"FOG\");\r\n }\r\n\r\n MaterialHelper.HandleFallbacksForShadows(defines, fallbacks);\r\n\r\n defines.IMAGEPROCESSINGPOSTPROCESS = scene.imageProcessingConfiguration.applyByPostProcess;\r\n\r\n //Attributes\r\n const attribs = [VertexBuffer.PositionKind];\r\n\r\n if (defines.NORMAL) {\r\n attribs.push(VertexBuffer.NormalKind);\r\n }\r\n\r\n if (defines.UV1) {\r\n attribs.push(VertexBuffer.UVKind);\r\n }\r\n\r\n if (defines.UV2) {\r\n attribs.push(VertexBuffer.UV2Kind);\r\n }\r\n\r\n if (defines.VERTEXCOLOR) {\r\n attribs.push(VertexBuffer.ColorKind);\r\n }\r\n\r\n if (defines.TANGENT) {\r\n attribs.push(VertexBuffer.TangentKind);\r\n }\r\n\r\n MaterialHelper.PrepareAttributesForInstances(attribs, defines);\r\n\r\n // Legacy browser patch\r\n const shaderName = \"mrdlSliderThumb\";\r\n const join = defines.toString();\r\n\r\n const uniforms = [\r\n \"world\",\r\n \"viewProjection\",\r\n \"cameraPosition\",\r\n \"_Radius_\",\r\n \"_Bevel_Front_\",\r\n \"_Bevel_Front_Stretch_\",\r\n \"_Bevel_Back_\",\r\n \"_Bevel_Back_Stretch_\",\r\n \"_Radius_Top_Left_\",\r\n \"_Radius_Top_Right_\",\r\n \"_Radius_Bottom_Left_\",\r\n \"_Radius_Bottom_Right_\",\r\n \"_Bulge_Enabled_\",\r\n \"_Bulge_Height_\",\r\n \"_Bulge_Radius_\",\r\n \"_Sun_Intensity_\",\r\n \"_Sun_Theta_\",\r\n \"_Sun_Phi_\",\r\n \"_Indirect_Diffuse_\",\r\n \"_Albedo_\",\r\n \"_Specular_\",\r\n \"_Shininess_\",\r\n \"_Sharpness_\",\r\n \"_Subsurface_\",\r\n \"_Left_Color_\",\r\n \"_Right_Color_\",\r\n \"_Reflection_\",\r\n \"_Front_Reflect_\",\r\n \"_Edge_Reflect_\",\r\n \"_Power_\",\r\n \"_Sky_Color_\",\r\n \"_Horizon_Color_\",\r\n \"_Ground_Color_\",\r\n \"_Horizon_Power_\",\r\n \"_Reflection_Map_\",\r\n \"_Indirect_Environment_\",\r\n \"_Width_\",\r\n \"_Fuzz_\",\r\n \"_Min_Fuzz_\",\r\n \"_Clip_Fade_\",\r\n \"_Hue_Shift_\",\r\n \"_Saturation_Shift_\",\r\n \"_Value_Shift_\",\r\n \"_Blob_Position_\",\r\n \"_Blob_Intensity_\",\r\n \"_Blob_Near_Size_\",\r\n \"_Blob_Far_Size_\",\r\n \"_Blob_Near_Distance_\",\r\n \"_Blob_Far_Distance_\",\r\n \"_Blob_Fade_Length_\",\r\n \"_Blob_Pulse_\",\r\n \"_Blob_Fade_\",\r\n \"_Blob_Texture_\",\r\n \"_Blob_Position_2_\",\r\n \"_Blob_Near_Size_2_\",\r\n \"_Blob_Pulse_2_\",\r\n \"_Blob_Fade_2_\",\r\n \"_Left_Index_Pos_\",\r\n \"_Right_Index_Pos_\",\r\n \"_Left_Index_Middle_Pos_\",\r\n \"_Right_Index_Middle_Pos_\",\r\n \"_Decal_\",\r\n \"_Decal_Scale_XY_\",\r\n \"_Decal_Front_Only_\",\r\n \"_Rim_Intensity_\",\r\n \"_Rim_Texture_\",\r\n \"_Rim_Hue_Shift_\",\r\n \"_Rim_Saturation_Shift_\",\r\n \"_Rim_Value_Shift_\",\r\n \"_Iridescence_Intensity_\",\r\n \"_Iridescence_Texture_\",\r\n \"Use_Global_Left_Index\",\r\n \"Use_Global_Right_Index\",\r\n \"Global_Left_Index_Tip_Position\",\r\n \"Global_Right_Index_Tip_Position\",\r\n \"Global_Left_Thumb_Tip_Position\",\r\n \"Global_Right_Thumb_Tip_Position\",\r\n \"Global_Left_Index_Middle_Position;\",\r\n \"Global_Right_Index_Middle_Position\",\r\n \"Global_Left_Index_Tip_Proximity\",\r\n \"Global_Right_Index_Tip_Proximity\",\r\n ];\r\n const samplers: string[] = [\"_Rim_Texture_\", \"_Iridescence_Texture_\"];\r\n const uniformBuffers = new Array<string>();\r\n\r\n MaterialHelper.PrepareUniformsAndSamplersList(<IEffectCreationOptions>{\r\n uniformsNames: uniforms,\r\n uniformBuffersNames: uniformBuffers,\r\n samplers: samplers,\r\n defines: defines,\r\n maxSimultaneousLights: 4,\r\n });\r\n\r\n subMesh.setEffect(\r\n scene.getEngine().createEffect(\r\n shaderName,\r\n <IEffectCreationOptions>{\r\n attributes: attribs,\r\n uniformsNames: uniforms,\r\n uniformBuffersNames: uniformBuffers,\r\n samplers: samplers,\r\n defines: join,\r\n fallbacks: fallbacks,\r\n onCompiled: this.onCompiled,\r\n onError: this.onError,\r\n indexParameters: { maxSimultaneousLights: 4 },\r\n },\r\n engine\r\n ),\r\n defines\r\n );\r\n }\r\n if (!subMesh.effect || !subMesh.effect.isReady()) {\r\n return false;\r\n }\r\n\r\n defines._renderId = scene.getRenderId();\r\n subMesh.effect._wasPreviouslyReady = true;\r\n\r\n return true;\r\n }\r\n\r\n public bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void {\r\n const defines = <MRDLSliderThumbMaterialDefines>subMesh.materialDefines;\r\n if (!defines) {\r\n return;\r\n }\r\n\r\n const effect = subMesh.effect;\r\n if (!effect) {\r\n return;\r\n }\r\n\r\n this._activeEffect = effect;\r\n\r\n // Matrices\r\n this.bindOnlyWorldMatrix(world);\r\n this._activeEffect.setMatrix(\"viewProjection\", this.getScene().getTransformMatrix());\r\n this._activeEffect.setVector3(\"cameraPosition\", this.getScene().activeCamera!.position);\r\n\r\n // \"Round Rect\"\r\n this._activeEffect.setFloat(\"_Radius_\", this.radius);\r\n this._activeEffect.setFloat(\"_Bevel_Front_\", this.bevelFront);\r\n this._activeEffect.setFloat(\"_Bevel_Front_Stretch_\", this.bevelFrontStretch);\r\n this._activeEffect.setFloat(\"_Bevel_Back_\", this.bevelBack);\r\n this._activeEffect.setFloat(\"_Bevel_Back_Stretch_\", this.bevelBackStretch);\r\n\r\n // \"Radii Multipliers\"\r\n this._activeEffect.setFloat(\"_Radius_Top_Left_\", this.radiusTopLeft);\r\n this._activeEffect.setFloat(\"_Radius_Top_Right_\", this.radiusTopRight);\r\n this._activeEffect.setFloat(\"_Radius_Bottom_Left_\", this.radiusBottomLeft);\r\n this._activeEffect.setFloat(\"_Radius_Bottom_Right_\", this.radiusBottomRight);\r\n\r\n // \"Bulge\"\r\n this._activeEffect.setFloat(\"_Bulge_Enabled_\", this.bulgeEnabled ? 1.0 : 0.0);\r\n this._activeEffect.setFloat(\"_Bulge_Height_\", this.bulgeHeight);\r\n this._activeEffect.setFloat(\"_Bulge_Radius_\", this.bulgeRadius);\r\n\r\n // \"Sun\"\r\n this._activeEffect.setFloat(\"_Sun_Intensity_\", this.sunIntensity);\r\n this._activeEffect.setFloat(\"_Sun_Theta_\", this.sunTheta);\r\n this._activeEffect.setFloat(\"_Sun_Phi_\", this.sunPhi);\r\n this._activeEffect.setFloat(\"_Indirect_Diffuse_\", this.indirectDiffuse);\r\n\r\n // \"Diffuse And Specular\"\r\n this._activeEffect.setDirectColor4(\"_Albedo_\", this.albedo);\r\n this._activeEffect.setFloat(\"_Specular_\", this.specular);\r\n this._activeEffect.setFloat(\"_Shininess_\", this.shininess);\r\n this._activeEffect.setFloat(\"_Sharpness_\", this.sharpness);\r\n this._activeEffect.setFloat(\"_Subsurface_\", this.subsurface);\r\n\r\n // \"Gradient\"\r\n this._activeEffect.setDirectColor4(\"_Left_Color_\", this.leftGradientColor);\r\n this._activeEffect.setDirectColor4(\"_Right_Color_\", this.rightGradientColor);\r\n\r\n // \"Reflection\"\r\n this._activeEffect.setFloat(\"_Reflection_\", this.reflection);\r\n this._activeEffect.setFloat(\"_Front_Reflect_\", this.frontReflect);\r\n this._activeEffect.setFloat(\"_Edge_Reflect_\", this.edgeReflect);\r\n this._activeEffect.setFloat(\"_Power_\", this.power);\r\n\r\n // \"Sky Environment\"\r\n //define SKY_ENABLED true;\r\n this._activeEffect.setDirectColor4(\"_Sky_Color_\", this.skyColor);\r\n this._activeEffect.setDirectColor4(\"_Horizon_Color_\", this.horizonColor);\r\n this._activeEffect.setDirectColor4(\"_Ground_Color_\", this.groundColor);\r\n this._activeEffect.setFloat(\"_Horizon_Power_\", this.horizonPower);\r\n\r\n // \"Mapped Environment\"\r\n //define ENV_ENABLE false;\r\n this._activeEffect.setTexture(\"_Reflection_Map_\", this._reflectionMapTexture);\r\n this._activeEffect.setTexture(\"_Indirect_Environment_\", this._indirectEnvTexture);\r\n\r\n // \"FingerOcclusion\"\r\n //define OCCLUSION_ENABLED false;\r\n this._activeEffect.setFloat(\"_Width_\", this.width);\r\n this._activeEffect.setFloat(\"_Fuzz_\", this.fuzz);\r\n this._activeEffect.setFloat(\"_Min_Fuzz_\", this.minFuzz);\r\n this._activeEffect.setFloat(\"_Clip_Fade_\", this.clipFade);\r\n\r\n // \"View Based Color Shift\"\r\n this._activeEffect.setFloat(\"_Hue_Shift_\", this.hueShift);\r\n this._activeEffect.setFloat(\"_Saturation_Shift_\", this.saturationShift);\r\n this._activeEffect.setFloat(\"_Value_Shift_\", this.valueShift);\r\n\r\n // \"Blob\"\r\n //define BLOB_ENABLE false;\r\n this._activeEffect.setVector3(\"_Blob_Position_\", this.blobPosition);\r\n this._activeEffect.setFloat(\"_Blob_Intensity_\", this.blobIntensity);\r\n this._activeEffect.setFloat(\"_Blob_Near_Size_\", this.blobNearSize);\r\n this._activeEffect.setFloat(\"_Blob_Far_Size_\", this.blobFarSize);\r\n this._activeEffect.setFloat(\"_Blob_Near_Distance_\", this.blobNearDistance);\r\n this._activeEffect.setFloat(\"_Blob_Far_Distance_\", this.blobFarDistance);\r\n this._activeEffect.setFloat(\"_Blob_Fade_Length_\", this.blobFadeLength);\r\n this._activeEffect.setFloat(\"_Blob_Pulse_\", this.blobPulse);\r\n this._activeEffect.setFloat(\"_Blob_Fade_\", this.blobFade);\r\n\r\n // \"Blob Texture\"\r\n this._activeEffect.setTexture(\"_Blob_Texture_\", this.blobTexture);\r\n\r\n // \"Blob 2\"\r\n //define BLOB_ENABLE_2 true;\r\n this._activeEffect.setVector3(\"_Blob_Position_2_\", this.blobPosition2);\r\n this._activeEffect.setFloat(\"_Blob_Near_Size_2_\", this.blobNearSize2);\r\n this._activeEffect.setFloat(\"_Blob_Pulse_2_\", this.blobPulse2);\r\n this._activeEffect.setFloat(\"_Blob_Fade_2_\", this.blobFade2);\r\n\r\n // \"Finger Positions\"\r\n this._activeEffect.setVector3(\"_Left_Index_Pos_\", this.leftIndexPosition);\r\n this._activeEffect.setVector3(\"_Right_Index_Pos_\", this.rightIndexPosition);\r\n this._activeEffect.setVector3(\"_Left_Index_Middle_Pos_\", this.leftIndexMiddlePosition);\r\n this._activeEffect.setVector3(\"_Right_Index_Middle_Pos_\", this.rightIndexMiddlePosition);\r\n\r\n // \"Decal Texture\"\r\n //define DECAL_ENABLE false;\r\n this._activeEffect.setTexture(\"_Decal_\", this._decalTexture);\r\n this._activeEffect.setVector2(\"_Decal_Scale_XY_\", this.decalScaleXY);\r\n this._activeEffect.setFloat(\"_Decal_Front_Only_\", this.decalFrontOnly ? 1.0 : 0.0);\r\n\r\n // \"Rim Light\"\r\n this._activeEffect.setFloat(\"_Rim_Intensity_\", this.rimIntensity);\r\n this._activeEffect.setTexture(\"_Rim_Texture_\", this._blueGradientTexture);\r\n this._activeEffect.setFloat(\"_Rim_Hue_Shift_\", this.rimHueShift);\r\n this._activeEffect.setFloat(\"_Rim_Saturation_Shift_\", this.rimSaturationShift);\r\n this._activeEffect.setFloat(\"_Rim_Value_Shift_\", this.rimValueShift);\r\n\r\n // \"Iridescence\"\r\n //define IRIDESCENCE_ENABLED true;\r\n this._activeEffect.setFloat(\"_Iridescence_Intensity_\", this.iridescenceIntensity);\r\n this._activeEffect.setTexture(\"_Iridescence_Texture_\", this._blueGradientTexture);\r\n\r\n // Global inputs\r\n this._activeEffect.setFloat(\"Use_Global_Left_Index\", this.useGlobalLeftIndex);\r\n this._activeEffect.setFloat(\"Use_Global_Right_Index\", this.useGlobalRightIndex);\r\n\r\n this._activeEffect.setVector4(\"Global_Left_Index_Tip_Position\", this.globalLeftIndexTipPosition);\r\n this._activeEffect.setVector4(\"Global_Right_Index_Tip_Position\", this.globaRightIndexTipPosition);\r\n\r\n this._activeEffect.setVector4(\"Global_Left_Thumb_Tip_Position\", this.globalLeftThumbTipPosition);\r\n this._activeEffect.setVector4(\"Global_Right_Thumb_Tip_Position\", this.globalRightThumbTipPosition);\r\n\r\n this._activeEffect.setVector4(\"Global_Left_Index_Middle_Position\", this.globalLeftIndexMiddlePosition);\r\n this._activeEffect.setVector4(\"Global_Right_Index_Middle_Position\", this.globalRightIndexMiddlePosition);\r\n\r\n this._activeEffect.setFloat(\"Global_Left_Index_Tip_Proximity\", this.globalLeftIndexTipProximity);\r\n this._activeEffect.setFloat(\"Global_Right_Index_Tip_Proximity\", this.globalRightIndexTipProximity);\r\n\r\n this._afterBind(mesh, this._activeEffect);\r\n }\r\n\r\n /**\r\n * Get the list of animatables in the material.\r\n * @returns the list of animatables object used in the material\r\n */\r\n public getAnimatables(): IAnimatable[] {\r\n return [];\r\n }\r\n\r\n public dispose(forceDisposeEffect?: boolean): void {\r\n super.dispose(forceDisposeEffect);\r\n this._reflectionMapTexture.dispose();\r\n this._indirectEnvTexture.dispose();\r\n this._blueGradientTexture.dispose();\r\n this._decalTexture.dispose();\r\n }\r\n\r\n public clone(name: string): MRDLSliderThumbMaterial {\r\n return SerializationHelper.Clone(() => new MRDLSliderThumbMaterial(name, this.getScene()), this);\r\n }\r\n\r\n public serialize(): any {\r\n const serializationObject = super.serialize();\r\n serializationObject.customType = \"BABYLON.MRDLSliderThumbMaterial\";\r\n return serializationObject;\r\n }\r\n\r\n public getClassName(): string {\r\n return \"MRDLSliderThumbMaterial\";\r\n }\r\n\r\n // Statics\r\n public static Parse(source: any, scene: Scene, rootUrl: string): MRDLSliderThumbMaterial {\r\n return SerializationHelper.Parse(() => new MRDLSliderThumbMaterial(source.name, scene), source, scene, rootUrl);\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.GUI.MRDLSliderThumbMaterial\", MRDLSliderThumbMaterial);\r\n"]}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@babylonjs/gui",
|
3
|
-
"version": "5.
|
3
|
+
"version": "5.42.0",
|
4
4
|
"main": "index.js",
|
5
5
|
"module": "index.js",
|
6
6
|
"types": "index.d.ts",
|
@@ -18,7 +18,7 @@
|
|
18
18
|
"postcompile": "build-tools -c add-js-to-es6"
|
19
19
|
},
|
20
20
|
"devDependencies": {
|
21
|
-
"@babylonjs/core": "^5.
|
21
|
+
"@babylonjs/core": "^5.42.0",
|
22
22
|
"@dev/build-tools": "^1.0.0",
|
23
23
|
"@lts/gui": "1.0.0",
|
24
24
|
"rimraf": "^3.0.2",
|