@babylonjs/inspector 5.0.0-beta.7 → 5.0.0-rc.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.
@@ -7,7 +7,7 @@
7
7
  exports["babylonjs-inspector"] = factory(require("@babylonjs/core"), require("@babylonjs/gui"), require("@babylonjs/loaders"), require("@babylonjs/materials"), require("@babylonjs/serializers"));
8
8
  else
9
9
  root["INSPECTOR"] = factory(root["BABYLON"], root["BABYLON"]["GUI"], root["BABYLON"], root["BABYLON"]["MATERIALS"], root["BABYLON"]);
10
- })((typeof self !== "undefined" ? self : typeof global !== "undefined" ? global : this), function(__WEBPACK_EXTERNAL_MODULE__babylonjs_core_Misc_observable__, __WEBPACK_EXTERNAL_MODULE__babylonjs_gui_2D_controls_image__, __WEBPACK_EXTERNAL_MODULE__babylonjs_loaders_glTF_index__, __WEBPACK_EXTERNAL_MODULE__babylonjs_materials_grid_gridMaterial__, __WEBPACK_EXTERNAL_MODULE__babylonjs_serializers_glTF_2_0_index__) {
10
+ })((typeof self !== "undefined" ? self : typeof global !== "undefined" ? global : this), function(__WEBPACK_EXTERNAL_MODULE__babylonjs_core_Misc_observable__, __WEBPACK_EXTERNAL_MODULE__babylonjs_gui_2D_controls_control__, __WEBPACK_EXTERNAL_MODULE__babylonjs_loaders_glTF_index__, __WEBPACK_EXTERNAL_MODULE__babylonjs_materials_grid_gridMaterial__, __WEBPACK_EXTERNAL_MODULE__babylonjs_serializers_glTF_2_0_index__) {
11
11
  return /******/ (function(modules) { // webpackBootstrap
12
12
  /******/ // The module cache
13
13
  /******/ var installedModules = {};
@@ -45814,6 +45814,7 @@ __webpack_require__.r(__webpack_exports__);
45814
45814
 
45815
45815
 
45816
45816
 
45817
+
45817
45818
  var DebugTabComponent = /** @class */ (function (_super) {
45818
45819
  Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(DebugTabComponent, _super);
45819
45820
  function DebugTabComponent(props) {
@@ -47158,7 +47159,7 @@ var AnimationCurveEditorComponent = /** @class */ (function (_super) {
47158
47159
  }
47159
47160
  this.setState({ isOpen: false });
47160
47161
  this.props.context.activeAnimations = [];
47161
- this.props.context.onActiveAnimationChanged.notifyObservers();
47162
+ this.props.context.onActiveAnimationChanged.notifyObservers({});
47162
47163
  };
47163
47164
  AnimationCurveEditorComponent.prototype.shouldComponentUpdate = function (newProps, newState) {
47164
47165
  var _this = this;
@@ -47170,7 +47171,7 @@ var AnimationCurveEditorComponent = /** @class */ (function (_super) {
47170
47171
  _this.props.context.activeAnimations.push(_this.props.context.useTargetAnimations
47171
47172
  ? _this.props.context.animations[0].animation
47172
47173
  : _this.props.context.animations[0]);
47173
- _this.props.context.onActiveAnimationChanged.notifyObservers();
47174
+ _this.props.context.onActiveAnimationChanged.notifyObservers({});
47174
47175
  });
47175
47176
  }
47176
47177
  }
@@ -48023,9 +48024,11 @@ var RangeSelectorComponent = /** @class */ (function (_super) {
48023
48024
  "use strict";
48024
48025
  __webpack_require__.r(__webpack_exports__);
48025
48026
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Context", function() { return Context; });
48026
- /* harmony import */ var _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babylonjs/core/Misc/observable */ "@babylonjs/core/Misc/observable");
48027
- /* harmony import */ var _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__);
48027
+ /* harmony import */ var _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babylonjs/core/Animations/animation */ "@babylonjs/core/Misc/observable");
48028
+ /* harmony import */ var _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__);
48029
+
48028
48030
 
48031
+ ;
48029
48032
  var Context = /** @class */ (function () {
48030
48033
  function Context() {
48031
48034
  this.activeAnimations = [];
@@ -48035,43 +48038,43 @@ var Context = /** @class */ (function () {
48035
48038
  this.referenceMinFrame = 0;
48036
48039
  this.referenceMaxFrame = 100;
48037
48040
  this.focusedInput = false;
48038
- this.onActiveAnimationChanged = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48039
- this.onActiveKeyPointChanged = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48040
- this.onHostWindowResized = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48041
- this.onSelectAllKeys = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48042
- this.onActiveKeyFrameChanged = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48043
- this.onFrameSet = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48044
- this.onFrameManuallyEntered = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48045
- this.onMainKeyPointSet = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48046
- this.onMainKeyPointMoved = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48047
- this.onValueSet = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48048
- this.onValueManuallyEntered = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48049
- this.onFrameRequired = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48050
- this.onCreateOrUpdateKeyPointRequired = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48051
- this.onFlattenTangentRequired = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48052
- this.onLinearTangentRequired = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48053
- this.onBreakTangentRequired = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48054
- this.onUnifyTangentRequired = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48055
- this.onStepTangentRequired = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48056
- this.onDeleteAnimation = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48057
- this.onGraphMoved = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48058
- this.onGraphScaled = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48059
- this.onRangeUpdated = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48060
- this.onMoveToFrameRequired = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48061
- this.onAnimationStateChanged = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48062
- this.onDeleteKeyActiveKeyPoints = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48063
- this.onSelectionRectangleMoved = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48064
- this.onAnimationsLoaded = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48065
- this.onEditAnimationRequired = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48066
- this.onEditAnimationUIClosed = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48067
- this.onClipLengthIncreased = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48068
- this.onClipLengthDecreased = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48069
- this.onInterpolationModeSet = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48070
- this.onSelectToActivated = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48041
+ this.onActiveAnimationChanged = new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48042
+ this.onActiveKeyPointChanged = new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48043
+ this.onHostWindowResized = new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48044
+ this.onSelectAllKeys = new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48045
+ this.onActiveKeyFrameChanged = new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48046
+ this.onFrameSet = new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48047
+ this.onFrameManuallyEntered = new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48048
+ this.onMainKeyPointSet = new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48049
+ this.onMainKeyPointMoved = new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48050
+ this.onValueSet = new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48051
+ this.onValueManuallyEntered = new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48052
+ this.onFrameRequired = new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48053
+ this.onCreateOrUpdateKeyPointRequired = new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48054
+ this.onFlattenTangentRequired = new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48055
+ this.onLinearTangentRequired = new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48056
+ this.onBreakTangentRequired = new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48057
+ this.onUnifyTangentRequired = new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48058
+ this.onStepTangentRequired = new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48059
+ this.onDeleteAnimation = new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48060
+ this.onGraphMoved = new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48061
+ this.onGraphScaled = new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48062
+ this.onRangeUpdated = new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48063
+ this.onMoveToFrameRequired = new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48064
+ this.onAnimationStateChanged = new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48065
+ this.onDeleteKeyActiveKeyPoints = new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48066
+ this.onSelectionRectangleMoved = new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48067
+ this.onAnimationsLoaded = new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48068
+ this.onEditAnimationRequired = new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48069
+ this.onEditAnimationUIClosed = new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48070
+ this.onClipLengthIncreased = new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48071
+ this.onClipLengthDecreased = new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48072
+ this.onInterpolationModeSet = new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48073
+ this.onSelectToActivated = new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48071
48074
  this.lockLastFrameValue = false;
48072
48075
  this.lockLastFrameFrame = false;
48073
48076
  // value frame inTangent outTangent
48074
- this.onActiveKeyDataChanged = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48077
+ this.onActiveKeyDataChanged = new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48075
48078
  }
48076
48079
  Context.prototype.prepare = function () {
48077
48080
  this.isPlaying = false;
@@ -48264,6 +48267,13 @@ var Context = /** @class */ (function () {
48264
48267
  }
48265
48268
  return null;
48266
48269
  };
48270
+ Context.prototype.hasActiveQuaternionAnimationKeyPoints = function () {
48271
+ var _a;
48272
+ var activeAnimData = (_a = this.activeKeyPoints) === null || _a === void 0 ? void 0 : _a.map(function (keyPointComponent) { return keyPointComponent.props.curve.animation.dataType; });
48273
+ var quaternionAnimData = activeAnimData === null || activeAnimData === void 0 ? void 0 : activeAnimData.filter(function (type) { return (type === _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__["Animation"].ANIMATIONTYPE_QUATERNION); });
48274
+ var hasActiveQuaternionAnimation = ((quaternionAnimData === null || quaternionAnimData === void 0 ? void 0 : quaternionAnimData.length) || 0) > 0;
48275
+ return hasActiveQuaternionAnimation;
48276
+ };
48267
48277
  return Context;
48268
48278
  }());
48269
48279
 
@@ -48490,14 +48500,15 @@ var CanvasComponent = /** @class */ (function (_super) {
48490
48500
  "use strict";
48491
48501
  __webpack_require__.r(__webpack_exports__);
48492
48502
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Curve", function() { return Curve; });
48493
- /* harmony import */ var _babylonjs_core_Animations_animationKey__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babylonjs/core/Animations/animationKey */ "@babylonjs/core/Misc/observable");
48494
- /* harmony import */ var _babylonjs_core_Animations_animationKey__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babylonjs_core_Animations_animationKey__WEBPACK_IMPORTED_MODULE_0__);
48503
+ /* harmony import */ var _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babylonjs/core/Animations/animation */ "@babylonjs/core/Misc/observable");
48504
+ /* harmony import */ var _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__);
48505
+
48495
48506
 
48496
48507
 
48497
48508
  var Curve = /** @class */ (function () {
48498
48509
  function Curve(color, animation, property, tangentBuilder, setDefaultInTangent, setDefaultOutTangent) {
48499
48510
  this.keys = new Array();
48500
- this.onDataUpdatedObservable = new _babylonjs_core_Animations_animationKey__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48511
+ this.onDataUpdatedObservable = new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48501
48512
  this.color = color;
48502
48513
  this.animation = animation;
48503
48514
  this.property = property;
@@ -48511,6 +48522,7 @@ var Curve = /** @class */ (function () {
48511
48522
  return "";
48512
48523
  }
48513
48524
  var pathData = "M".concat(convertX(keys[0].frame), " ").concat(convertY(keys[0].value));
48525
+ var dataType = this.animation.dataType;
48514
48526
  for (var keyIndex = 1; keyIndex < keys.length; keyIndex++) {
48515
48527
  var outTangent = keys[keyIndex - 1].outTangent;
48516
48528
  var inTangent = keys[keyIndex].inTangent;
@@ -48520,12 +48532,12 @@ var Curve = /** @class */ (function () {
48520
48532
  var prevValue = keys[keyIndex - 1].value;
48521
48533
  var frameDist = currentFrame - prevFrame;
48522
48534
  var prevInterpolation = keys[keyIndex - 1].interpolation;
48523
- if (prevInterpolation === _babylonjs_core_Animations_animationKey__WEBPACK_IMPORTED_MODULE_0__["AnimationKeyInterpolation"].STEP) { // Draw a stepped curve
48535
+ if (prevInterpolation === _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__["AnimationKeyInterpolation"].STEP) { // Draw a stepped curve
48524
48536
  pathData += "L ".concat(convertX(currentFrame), " ").concat(convertY(prevValue));
48525
48537
  pathData += "L ".concat(convertX(currentFrame), " ").concat(convertY(currentValue));
48526
48538
  continue;
48527
48539
  }
48528
- if (outTangent === undefined && inTangent === undefined) { // Draw a straight line
48540
+ if (outTangent === undefined && inTangent === undefined && dataType !== _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_0__["Animation"].ANIMATIONTYPE_QUATERNION) { // Draw a straight line
48529
48541
  pathData += " L".concat(convertX(currentFrame), " ").concat(convertY(currentValue));
48530
48542
  continue;
48531
48543
  }
@@ -48721,6 +48733,9 @@ __webpack_require__.r(__webpack_exports__);
48721
48733
  /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "../../../../node_modules/tslib/tslib.es6.js");
48722
48734
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "../../../../node_modules/react/index.js");
48723
48735
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
48736
+ /* harmony import */ var _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babylonjs/core/Animations/animation */ "@babylonjs/core/Misc/observable");
48737
+ /* harmony import */ var _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__);
48738
+
48724
48739
 
48725
48740
 
48726
48741
  var CurveComponent = /** @class */ (function (_super) {
@@ -48764,12 +48779,17 @@ var CurveComponent = /** @class */ (function (_super) {
48764
48779
  if (!this.props.context.isChannelEnabled(this.props.curve.animation, this.props.curve.color)) {
48765
48780
  return null;
48766
48781
  }
48782
+ var pathStyle = {
48783
+ stroke: this.props.curve.color,
48784
+ fill: "none",
48785
+ strokeWidth: "1",
48786
+ };
48787
+ if (this.props.curve.animation.dataType === _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Animation"].ANIMATIONTYPE_QUATERNION) {
48788
+ pathStyle['stroke-dasharray'] = '5';
48789
+ pathStyle['stroke-opacity'] = '0.5';
48790
+ }
48767
48791
  return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("svg", { style: { cursor: "pointer", overflow: "auto" } },
48768
- react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("path", { d: this.props.curve.getPathData(this.props.convertX, this.props.convertY), style: {
48769
- stroke: this.props.curve.color,
48770
- fill: "none",
48771
- strokeWidth: "1",
48772
- } })));
48792
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("path", { d: this.props.curve.getPathData(this.props.convertX, this.props.convertY), style: pathStyle })));
48773
48793
  };
48774
48794
  return CurveComponent;
48775
48795
  }(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));
@@ -48935,13 +48955,16 @@ var GraphComponent = /** @class */ (function (_super) {
48935
48955
  _this.props.context.onHostWindowResized.add(function () {
48936
48956
  _this._computeSizes();
48937
48957
  });
48938
- _this._onActiveAnimationChangedObserver = _this.props.context.onActiveAnimationChanged.add(function () {
48939
- _this._evaluateKeys();
48958
+ _this._onActiveAnimationChangedObserver = _this.props.context.onActiveAnimationChanged.add(function (_a) {
48959
+ var _b = _a.evaluateKeys, evaluateKeys = _b === void 0 ? true : _b, _c = _a.frame, frame = _c === void 0 ? true : _c, _d = _a.range, range = _d === void 0 ? true : _d;
48960
+ if (evaluateKeys) {
48961
+ _this._evaluateKeys(frame, range);
48962
+ }
48940
48963
  _this._computeSizes();
48941
48964
  _this.forceUpdate();
48942
48965
  });
48943
48966
  _this.props.context.onFrameRequired.add(function () {
48944
- _this._frame();
48967
+ _this._frameFromActiveKeys();
48945
48968
  _this.forceUpdate();
48946
48969
  });
48947
48970
  _this.props.context.onRangeUpdated.add(function () {
@@ -48977,9 +49000,12 @@ var GraphComponent = /** @class */ (function (_super) {
48977
49000
  if (deletedFrame !== null) {
48978
49001
  _this.props.context.moveToFrame(deletedFrame);
48979
49002
  }
48980
- _this.props.context.activeKeyPoints = [];
48981
49003
  }
48982
- _this.props.context.onActiveAnimationChanged.notifyObservers();
49004
+ _this._evaluateKeys(false, false);
49005
+ _this.props.context.activeKeyPoints = [];
49006
+ _this.props.context.onActiveKeyPointChanged.notifyObservers();
49007
+ _this.props.context.onActiveAnimationChanged.notifyObservers({ evaluateKeys: false });
49008
+ _this.forceUpdate();
48983
49009
  });
48984
49010
  // Create or Update keypoint
48985
49011
  _this.props.context.onCreateOrUpdateKeyPointRequired.add(function () {
@@ -48988,6 +49014,9 @@ var GraphComponent = /** @class */ (function (_super) {
48988
49014
  }
48989
49015
  for (var _i = 0, _a = _this.props.context.activeAnimations; _i < _a.length; _i++) {
48990
49016
  var currentAnimation = _a[_i];
49017
+ if (currentAnimation.dataType === _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Animation"].ANIMATIONTYPE_QUATERNION) {
49018
+ continue;
49019
+ }
48991
49020
  var keys = currentAnimation.getKeys();
48992
49021
  var currentFrame = _this.props.context.activeFrame;
48993
49022
  var indexToAdd = -1;
@@ -49049,10 +49078,6 @@ var GraphComponent = /** @class */ (function (_super) {
49049
49078
  derivative = _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Vector3"].Hermite1stDerivative(leftKey.value.scale(invFrameDelta), leftKey.outTangent, rightKey.value.scale(invFrameDelta), rightKey.inTangent, cutTime);
49050
49079
  break;
49051
49080
  }
49052
- case _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Animation"].ANIMATIONTYPE_QUATERNION: {
49053
- derivative = _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Quaternion"].Hermite1stDerivative(leftKey.value.scale(invFrameDelta), leftKey.outTangent, rightKey.value.scale(invFrameDelta), rightKey.inTangent, cutTime);
49054
- break;
49055
- }
49056
49081
  case _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Animation"].ANIMATIONTYPE_COLOR3:
49057
49082
  derivative = _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Color3"].Hermite1stDerivative(leftKey.value.scale(invFrameDelta), leftKey.outTangent, rightKey.value.scale(invFrameDelta), rightKey.inTangent, cutTime);
49058
49083
  break;
@@ -49072,7 +49097,7 @@ var GraphComponent = /** @class */ (function (_super) {
49072
49097
  _this._evaluateKeys(false, false);
49073
49098
  _this.props.context.activeKeyPoints = [];
49074
49099
  _this.props.context.onActiveKeyPointChanged.notifyObservers();
49075
- _this.props.context.onActiveAnimationChanged.notifyObservers();
49100
+ _this.props.context.onActiveAnimationChanged.notifyObservers({ evaluateKeys: false });
49076
49101
  _this.forceUpdate();
49077
49102
  });
49078
49103
  return _this;
@@ -49113,10 +49138,6 @@ var GraphComponent = /** @class */ (function (_super) {
49113
49138
  return;
49114
49139
  }
49115
49140
  this._curves = [];
49116
- this._minValue = Number.MAX_VALUE;
49117
- this._maxValue = -Number.MAX_VALUE;
49118
- this._minFrame = Number.MAX_VALUE;
49119
- this._maxFrame = -Number.MAX_VALUE;
49120
49141
  for (var _i = 0, _b = this.props.context.activeAnimations; _i < _b.length; _i++) {
49121
49142
  var animation = _b[_i];
49122
49143
  var keys = animation.getKeys();
@@ -49162,7 +49183,7 @@ var GraphComponent = /** @class */ (function (_super) {
49162
49183
  }
49163
49184
  }
49164
49185
  if (frame) {
49165
- this._frame();
49186
+ this._frameFromActiveKeys();
49166
49187
  }
49167
49188
  };
49168
49189
  GraphComponent.prototype._extractValuesFromKeys = function (keys, dataType, curvesToPushTo, propertyFilter) {
@@ -49511,16 +49532,17 @@ var GraphComponent = /** @class */ (function (_super) {
49511
49532
  } }, text)));
49512
49533
  });
49513
49534
  };
49514
- GraphComponent.prototype._frame = function () {
49535
+ GraphComponent.prototype._frameFromActiveKeys = function () {
49515
49536
  if (this.props.context.activeAnimations.length === 0) {
49516
49537
  return;
49517
49538
  }
49518
49539
  this._offsetX = 20;
49519
49540
  this._offsetY = 20;
49520
- this._minValue = Number.MAX_VALUE;
49521
- this._maxValue = -Number.MAX_VALUE;
49522
- this._minFrame = Number.MAX_VALUE;
49523
- this._maxFrame = -Number.MAX_VALUE;
49541
+ var minValue = Number.MAX_VALUE;
49542
+ var maxValue = -Number.MAX_VALUE;
49543
+ var minFrame = Number.MAX_VALUE;
49544
+ var maxFrame = -Number.MAX_VALUE;
49545
+ var hasRange = false;
49524
49546
  var _loop_1 = function (animation) {
49525
49547
  var propertyFilter = undefined;
49526
49548
  var activeChannel = this_1.props.context.getActiveChannel(animation);
@@ -49531,13 +49553,19 @@ var GraphComponent = /** @class */ (function (_super) {
49531
49553
  }
49532
49554
  }
49533
49555
  var keys = animation.getKeys();
49534
- // Only keep selected keys
49535
- if (this_1.props.context.activeKeyPoints && this_1.props.context.activeKeyPoints.length > 1) {
49556
+ // Only keep selected keys, the previous sibling to the first key, and the next sibling of the last key
49557
+ if (this_1.props.context.activeKeyPoints && this_1.props.context.activeKeyPoints.length > 0) {
49536
49558
  var newKeys = [];
49537
- for (var _b = 0, _c = this_1.props.context.activeKeyPoints; _b < _c.length; _b++) {
49538
- var keyPoint = _c[_b];
49559
+ for (var i = 0; i < this_1.props.context.activeKeyPoints.length; i++) {
49560
+ var keyPoint = this_1.props.context.activeKeyPoints[i];
49539
49561
  if (keyPoint.props.curve.animation === animation) {
49540
49562
  newKeys.push(keys[keyPoint.props.keyId]);
49563
+ if (i === 0 && keyPoint.props.keyId >= 1) {
49564
+ newKeys.unshift(keys[keyPoint.props.keyId - 1]);
49565
+ }
49566
+ if (i === this_1.props.context.activeKeyPoints.length - 1 && keyPoint.props.keyId < keys.length - 1) {
49567
+ newKeys.push(keys[keyPoint.props.keyId + 1]);
49568
+ }
49541
49569
  }
49542
49570
  }
49543
49571
  keys = newKeys;
@@ -49546,16 +49574,24 @@ var GraphComponent = /** @class */ (function (_super) {
49546
49574
  return "continue";
49547
49575
  }
49548
49576
  var values = this_1._extractValuesFromKeys(keys, animation.dataType, undefined, propertyFilter);
49549
- this_1._minValue = Math.min(this_1._minValue, values.min);
49550
- this_1._maxValue = Math.max(this_1._maxValue, values.max);
49551
- this_1._minFrame = Math.min(this_1._minFrame, keys[0].frame);
49552
- this_1._maxFrame = Math.max(this_1._maxFrame, keys[keys.length - 1].frame);
49577
+ minValue = Math.min(minValue, values.min);
49578
+ maxValue = Math.max(maxValue, values.max);
49579
+ minFrame = Math.min(minFrame, keys[0].frame);
49580
+ maxFrame = Math.max(maxFrame, keys[keys.length - 1].frame);
49581
+ hasRange = true;
49553
49582
  };
49554
49583
  var this_1 = this;
49555
49584
  for (var _i = 0, _a = this.props.context.activeAnimations; _i < _a.length; _i++) {
49556
49585
  var animation = _a[_i];
49557
49586
  _loop_1(animation);
49558
49587
  }
49588
+ if (!hasRange) {
49589
+ return;
49590
+ }
49591
+ this._minFrame = minFrame;
49592
+ this._maxFrame = maxFrame;
49593
+ this._minValue = minValue;
49594
+ this._maxValue = maxValue;
49559
49595
  this.props.context.referenceMinFrame = this._minFrame;
49560
49596
  this.props.context.referenceMaxFrame = this._maxFrame;
49561
49597
  var frameConvert = Math.abs(this._convertX(this._maxFrame) - this._convertX(this._minFrame)) + this._offsetX * 2;
@@ -49797,6 +49833,11 @@ var KeyPointComponent = /** @class */ (function (_super) {
49797
49833
  if (!_this._keyPointSVG.current) {
49798
49834
  return;
49799
49835
  }
49836
+ var animationType = _this.props.curve.animation.dataType;
49837
+ var isQuaternionAnimation = animationType === _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_1__["Animation"].ANIMATIONTYPE_QUATERNION;
49838
+ if (isQuaternionAnimation) {
49839
+ return;
49840
+ }
49800
49841
  var rect2 = _this._keyPointSVG.current.getBoundingClientRect();
49801
49842
  var overlap = !(rect1.right < rect2.left || rect1.left > rect2.right || rect1.bottom < rect2.top || rect1.top > rect2.bottom);
49802
49843
  if (!_this.props.context.activeKeyPoints) {
@@ -50032,6 +50073,10 @@ var KeyPointComponent = /** @class */ (function (_super) {
50032
50073
  this.props.context.activeKeyPoints = [];
50033
50074
  }
50034
50075
  evt.preventDefault();
50076
+ var isQuaternionAnimation = this.props.curve.animation.dataType === _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_1__["Animation"].ANIMATIONTYPE_QUATERNION;
50077
+ if (isQuaternionAnimation) {
50078
+ return;
50079
+ }
50035
50080
  this._select(evt.nativeEvent.ctrlKey);
50036
50081
  this.props.context.onActiveKeyPointChanged.notifyObservers();
50037
50082
  this._pointerIsDown = true;
@@ -50039,15 +50084,15 @@ var KeyPointComponent = /** @class */ (function (_super) {
50039
50084
  this._sourcePointerX = evt.nativeEvent.offsetX;
50040
50085
  this._sourcePointerY = evt.nativeEvent.offsetY;
50041
50086
  var target = evt.nativeEvent.target;
50042
- if (target.tagName === "image") {
50087
+ if (target.tagName === "image" && !isQuaternionAnimation) {
50043
50088
  this._controlMode = ControlMode.Key;
50044
50089
  this.setState({ tangentSelectedIndex: -1 });
50045
50090
  }
50046
- else if (target.classList.contains("left-tangent")) {
50091
+ else if (target.classList.contains("left-tangent") && !isQuaternionAnimation) {
50047
50092
  this._controlMode = ControlMode.TangentLeft;
50048
50093
  this.setState({ tangentSelectedIndex: 0 });
50049
50094
  }
50050
- else if (target.classList.contains("right-tangent")) {
50095
+ else if (target.classList.contains("right-tangent") && !isQuaternionAnimation) {
50051
50096
  this._controlMode = ControlMode.TangentRight;
50052
50097
  this.setState({ tangentSelectedIndex: 1 });
50053
50098
  }
@@ -50083,7 +50128,7 @@ var KeyPointComponent = /** @class */ (function (_super) {
50083
50128
  };
50084
50129
  KeyPointComponent.prototype._onPointerMove = function (evt) {
50085
50130
  var _this = this;
50086
- if (!this._pointerIsDown || this.state.selectedState !== SelectionState.Selected) {
50131
+ if (!this._pointerIsDown || this.state.selectedState !== SelectionState.Selected || this.props.context.hasActiveQuaternionAnimationKeyPoints()) {
50087
50132
  return;
50088
50133
  }
50089
50134
  if (this._controlMode === ControlMode.Key) {
@@ -50200,6 +50245,7 @@ var KeyPointComponent = /** @class */ (function (_super) {
50200
50245
  }
50201
50246
  var animationType = this.props.curve.animation.dataType;
50202
50247
  var isColorAnimation = animationType === _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_1__["Animation"].ANIMATIONTYPE_COLOR3 || animationType === _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_1__["Animation"].ANIMATIONTYPE_COLOR4;
50248
+ var isQuaternionAnimation = animationType === _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_1__["Animation"].ANIMATIONTYPE_QUATERNION;
50203
50249
  var svgImageIcon = this.state.selectedState === SelectionState.Selected ? keySelected : this.state.selectedState === SelectionState.Siblings ? keyActive : keyInactive;
50204
50250
  var keys = this.props.curve.keys;
50205
50251
  var isLockedTangent = (_a = keys[this.props.keyId].lockedTangent) !== null && _a !== void 0 ? _a : true;
@@ -50229,10 +50275,10 @@ var KeyPointComponent = /** @class */ (function (_super) {
50229
50275
  this._inVec.scaleInPlace(100 * this.props.scale);
50230
50276
  this._outVec.normalize();
50231
50277
  this._outVec.scaleInPlace(100 * this.props.scale);
50232
- return (react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("svg", { ref: this._svgHost, onPointerDown: function (evt) { return _this._onPointerDown(evt); }, onPointerMove: function (evt) { return _this._onPointerMove(evt); }, onPointerUp: function (evt) { return _this._onPointerUp(evt); }, x: this.state.x, y: this.state.y, style: { cursor: "pointer", overflow: "auto" } },
50278
+ return (react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("svg", { ref: this._svgHost, onPointerDown: function (evt) { return _this._onPointerDown(evt); }, onPointerMove: function (evt) { return _this._onPointerMove(evt); }, onPointerUp: function (evt) { return _this._onPointerUp(evt); }, x: this.state.x, y: this.state.y, style: { cursor: isQuaternionAnimation ? "auto" : "pointer", overflow: "auto", opacity: isQuaternionAnimation ? "25%" : "100%" } },
50233
50279
  react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("image", { x: "-".concat(8 * this.props.scale), y: "-".concat(8 * this.props.scale), width: "".concat(16 * this.props.scale), height: "".concat(16 * this.props.scale), ref: this._keyPointSVG, href: svgImageIcon }),
50234
50280
  this.state.selectedState === SelectionState.Selected && (react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("g", null,
50235
- this.props.keyId !== 0 && !hasStepTangentIn && !isColorAnimation && hasDefinedInTangent && (react__WEBPACK_IMPORTED_MODULE_2__["createElement"](react__WEBPACK_IMPORTED_MODULE_2__["Fragment"], null,
50281
+ this.props.keyId !== 0 && !hasStepTangentIn && !isColorAnimation && !isQuaternionAnimation && hasDefinedInTangent && (react__WEBPACK_IMPORTED_MODULE_2__["createElement"](react__WEBPACK_IMPORTED_MODULE_2__["Fragment"], null,
50236
50282
  react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("line", { x1: 0, y1: 0, x2: "".concat(this._inVec.x, "px"), y2: "".concat(this._inVec.y, "px"), style: {
50237
50283
  stroke: this.state.tangentSelectedIndex === 0 || this.state.tangentSelectedIndex === -1 ? "#F9BF00" : "#AAAAAA",
50238
50284
  strokeWidth: "".concat(1 * this.props.scale),
@@ -50241,7 +50287,7 @@ var KeyPointComponent = /** @class */ (function (_super) {
50241
50287
  react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("circle", { className: "left-tangent", cx: "".concat(this._inVec.x, "px"), cy: "".concat(this._inVec.y, "px"), r: "".concat(4 * this.props.scale), style: {
50242
50288
  fill: this.state.tangentSelectedIndex === 0 || this.state.tangentSelectedIndex === -1 ? "#F9BF00" : "#AAAAAA",
50243
50289
  } }))),
50244
- this.props.keyId !== keys.length - 1 && !hasStepTangentOut && !isColorAnimation && hasDefinedOutTangent && (react__WEBPACK_IMPORTED_MODULE_2__["createElement"](react__WEBPACK_IMPORTED_MODULE_2__["Fragment"], null,
50290
+ this.props.keyId !== keys.length - 1 && !hasStepTangentOut && !isColorAnimation && !isQuaternionAnimation && hasDefinedOutTangent && (react__WEBPACK_IMPORTED_MODULE_2__["createElement"](react__WEBPACK_IMPORTED_MODULE_2__["Fragment"], null,
50245
50291
  react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("line", { x1: 0, y1: 0, x2: "".concat(this._outVec.x, "px"), y2: "".concat(this._outVec.y, "px"), style: {
50246
50292
  stroke: this.state.tangentSelectedIndex === 1 || this.state.tangentSelectedIndex === -1 ? "#F9BF00" : "#AAAAAA",
50247
50293
  strokeWidth: "".concat(1 * this.props.scale),
@@ -50714,6 +50760,16 @@ var AddAnimationComponent = /** @class */ (function (_super) {
50714
50760
  ? this.props.context.animations[0].animation.framePerSecond
50715
50761
  : this.props.context.animations[0].framePerSecond
50716
50762
  : 60;
50763
+ var minFrame = this.props.context.referenceMinFrame;
50764
+ var maxFrame = this.props.context.referenceMaxFrame;
50765
+ if (this.props.context.animations) {
50766
+ for (var _i = 0, _a = this.props.context.animations; _i < _a.length; _i++) {
50767
+ var anim = _a[_i];
50768
+ var innerAnim = this.props.context.useTargetAnimations ? anim.animation : anim;
50769
+ minFrame = Math.min(minFrame, innerAnim.getKeys()[0].frame);
50770
+ maxFrame = Math.max(maxFrame, innerAnim.getKeys()[innerAnim.getKeys().length - 1].frame);
50771
+ }
50772
+ }
50717
50773
  var dataType = 0;
50718
50774
  var loopMode = 0;
50719
50775
  var defaultValue0;
@@ -50801,13 +50857,13 @@ var AddAnimationComponent = /** @class */ (function (_super) {
50801
50857
  var animation = new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Animation"](displayName, property, fps, dataType, loopMode);
50802
50858
  var keys = [];
50803
50859
  keys.push({
50804
- frame: context.referenceMinFrame,
50860
+ frame: minFrame,
50805
50861
  value: defaultValue0,
50806
50862
  inTangent: defaultInTangent0,
50807
50863
  outTangent: defaultOutTangent0
50808
50864
  });
50809
50865
  keys.push({
50810
- frame: context.referenceMaxFrame,
50866
+ frame: maxFrame,
50811
50867
  value: defaultValue1,
50812
50868
  inTangent: defaultInTangent1,
50813
50869
  outTangent: defaultOutTangent1
@@ -50825,7 +50881,7 @@ var AddAnimationComponent = /** @class */ (function (_super) {
50825
50881
  }
50826
50882
  context.activeAnimations.push(animation);
50827
50883
  context.prepare();
50828
- context.onActiveAnimationChanged.notifyObservers();
50884
+ context.onActiveAnimationChanged.notifyObservers({});
50829
50885
  context.onAnimationsLoaded.notifyObservers();
50830
50886
  };
50831
50887
  AddAnimationComponent.prototype.getInferredType = function (activeProperty) {
@@ -51024,7 +51080,7 @@ var AnimationEntryComponent = /** @class */ (function (_super) {
51024
51080
  to: this.props.context.getAnimationSortIndex(this.props.animation),
51025
51081
  };
51026
51082
  this.props.context.onSelectToActivated.notifyObservers(payload);
51027
- this.props.context.onActiveAnimationChanged.notifyObservers();
51083
+ this.props.context.onActiveAnimationChanged.notifyObservers({});
51028
51084
  }
51029
51085
  return;
51030
51086
  }
@@ -51042,7 +51098,7 @@ var AnimationEntryComponent = /** @class */ (function (_super) {
51042
51098
  }
51043
51099
  }
51044
51100
  this.props.context.disableChannel(this.props.animation);
51045
- this.props.context.onActiveAnimationChanged.notifyObservers();
51101
+ this.props.context.onActiveAnimationChanged.notifyObservers({});
51046
51102
  };
51047
51103
  AnimationEntryComponent.prototype._expandOrCollapse = function () {
51048
51104
  this.setState({ isExpanded: !this.state.isExpanded });
@@ -51177,7 +51233,7 @@ var AnimationSubEntryComponent = /** @class */ (function (_super) {
51177
51233
  }
51178
51234
  }
51179
51235
  _this.state = { isSelected: isSelected };
51180
- _this._onActiveAnimationChangedObserver = props.context.onActiveAnimationChanged.add(function (animation) {
51236
+ _this._onActiveAnimationChangedObserver = props.context.onActiveAnimationChanged.add(function () {
51181
51237
  _this.forceUpdate();
51182
51238
  });
51183
51239
  _this._onActiveKeyPointChangedObserver = _this.props.context.onActiveKeyPointChanged.add(function () {
@@ -51220,7 +51276,7 @@ var AnimationSubEntryComponent = /** @class */ (function (_super) {
51220
51276
  }
51221
51277
  }
51222
51278
  this.props.context.enableChannel(this.props.animation, this.props.color);
51223
- this.props.context.onActiveAnimationChanged.notifyObservers();
51279
+ this.props.context.onActiveAnimationChanged.notifyObservers({});
51224
51280
  };
51225
51281
  AnimationSubEntryComponent.prototype.render = function () {
51226
51282
  var _this = this;
@@ -51398,7 +51454,7 @@ var LoadAnimationComponent = /** @class */ (function (_super) {
51398
51454
  context.activeAnimations = animations.length ? animations : [];
51399
51455
  context.prepare();
51400
51456
  context.onAnimationsLoaded.notifyObservers();
51401
- context.onActiveAnimationChanged.notifyObservers();
51457
+ context.onActiveAnimationChanged.notifyObservers({});
51402
51458
  }, undefined, true);
51403
51459
  evt.target.value = "";
51404
51460
  };
@@ -51420,7 +51476,7 @@ var LoadAnimationComponent = /** @class */ (function (_super) {
51420
51476
  context.activeAnimations = context.animations.length ? context.animations : [];
51421
51477
  context.prepare();
51422
51478
  context.onAnimationsLoaded.notifyObservers();
51423
- context.onActiveAnimationChanged.notifyObservers();
51479
+ context.onActiveAnimationChanged.notifyObservers({});
51424
51480
  })
51425
51481
  .catch(function (err) {
51426
51482
  var _a;
@@ -51629,7 +51685,7 @@ var SideBarComponent = /** @class */ (function (_super) {
51629
51685
  var indexInActiveList = _this.props.context.activeAnimations.indexOf(animationToDelete);
51630
51686
  if (indexInActiveList !== -1) {
51631
51687
  _this.props.context.activeAnimations.splice(indexInActiveList, 1);
51632
- _this.props.context.onActiveAnimationChanged.notifyObservers();
51688
+ _this.props.context.onActiveAnimationChanged.notifyObservers({});
51633
51689
  }
51634
51690
  var index = -1;
51635
51691
  if (_this.props.context.useTargetAnimations) {
@@ -51766,7 +51822,8 @@ var TopBarComponent = /** @class */ (function (_super) {
51766
51822
  var numAnims = new Set((_b = _this.props.context.activeKeyPoints) === null || _b === void 0 ? void 0 : _b.map(function (keyPointComponent) { return keyPointComponent.props.curve.animation.uniqueId; })).size;
51767
51823
  var frameControlEnabled = (numKeys === 1 && numAnims === 1) || (numKeys > 1 && numAnims > 1);
51768
51824
  var valueControlEnabled = numKeys > 0;
51769
- _this.setState({ keyFrameValue: "", keyValue: "", frameControlEnabled: frameControlEnabled, valueControlEnabled: valueControlEnabled });
51825
+ var hasActiveQuaternionAnimation = _this.props.context.hasActiveQuaternionAnimationKeyPoints();
51826
+ _this.setState({ keyFrameValue: "", keyValue: "", frameControlEnabled: frameControlEnabled && !hasActiveQuaternionAnimation, valueControlEnabled: valueControlEnabled && !hasActiveQuaternionAnimation });
51770
51827
  });
51771
51828
  return _this;
51772
51829
  }
@@ -53356,6 +53413,8 @@ __webpack_require__.r(__webpack_exports__);
53356
53413
 
53357
53414
 
53358
53415
 
53416
+
53417
+
53359
53418
  var PBRMaterialPropertyGridComponent = /** @class */ (function (_super) {
53360
53419
  Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(PBRMaterialPropertyGridComponent, _super);
53361
53420
  function PBRMaterialPropertyGridComponent(props) {
@@ -53406,7 +53465,7 @@ var PBRMaterialPropertyGridComponent = /** @class */ (function (_super) {
53406
53465
  { label: "Anisotropic Tangents", value: 12 },
53407
53466
  { label: "Anisotropic Bitangents", value: 13 },
53408
53467
  // Maps
53409
- { label: "Albdeo Map", value: 20 },
53468
+ { label: "Albedo Map", value: 20 },
53410
53469
  { label: "Ambient Map", value: 21 },
53411
53470
  { label: "Opacity Map", value: 22 },
53412
53471
  { label: "Emissive Map", value: 23 },
@@ -53842,7 +53901,7 @@ __webpack_require__.r(__webpack_exports__);
53842
53901
  /* harmony import */ var _sharedUiComponents_lines_optionsLineComponent__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../../../sharedUiComponents/lines/optionsLineComponent */ "./sharedUiComponents/lines/optionsLineComponent.tsx");
53843
53902
  /* harmony import */ var _sharedUiComponents_lines_fileButtonLineComponent__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../../../../sharedUiComponents/lines/fileButtonLineComponent */ "./sharedUiComponents/lines/fileButtonLineComponent.tsx");
53844
53903
  /* harmony import */ var _sharedUiComponents_lines_valueLineComponent__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../../../sharedUiComponents/lines/valueLineComponent */ "./sharedUiComponents/lines/valueLineComponent.tsx");
53845
- /* harmony import */ var _babylonjs_gui_2D_adtInstrumentation__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @babylonjs/gui/2D/adtInstrumentation */ "@babylonjs/gui/2D/controls/image");
53904
+ /* harmony import */ var _babylonjs_gui_2D_adtInstrumentation__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @babylonjs/gui/2D/adtInstrumentation */ "@babylonjs/gui/2D/controls/control");
53846
53905
  /* harmony import */ var _babylonjs_gui_2D_adtInstrumentation__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_babylonjs_gui_2D_adtInstrumentation__WEBPACK_IMPORTED_MODULE_12__);
53847
53906
  /* harmony import */ var _customPropertyGridComponent__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../customPropertyGridComponent */ "./components/actionTabs/tabs/propertyGrids/customPropertyGridComponent.tsx");
53848
53907
  /* harmony import */ var _sharedUiComponents_lines_buttonLineComponent__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../../../../sharedUiComponents/lines/buttonLineComponent */ "./sharedUiComponents/lines/buttonLineComponent.tsx");
@@ -56199,6 +56258,7 @@ __webpack_require__.r(__webpack_exports__);
56199
56258
 
56200
56259
 
56201
56260
 
56261
+
56202
56262
 
56203
56263
 
56204
56264
  var MeshPropertyGridComponent = /** @class */ (function (_super) {
@@ -56750,13 +56810,6 @@ var SkeletonPropertyGridComponent = /** @class */ (function (_super) {
56750
56810
  }
56751
56811
  return true;
56752
56812
  };
56753
- SkeletonPropertyGridComponent.prototype.onOverrideMeshLink = function () {
56754
- if (!this.props.globalState.onSelectionChangedObservable) {
56755
- return;
56756
- }
56757
- var skeleton = this.props.skeleton;
56758
- this.props.globalState.onSelectionChangedObservable.notifyObservers(skeleton.overrideMesh);
56759
- };
56760
56813
  SkeletonPropertyGridComponent.prototype.render = function () {
56761
56814
  var _this = this;
56762
56815
  var skeleton = this.props.skeleton;
@@ -56792,7 +56845,6 @@ var SkeletonPropertyGridComponent = /** @class */ (function (_super) {
56792
56845
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_lineContainerComponent__WEBPACK_IMPORTED_MODULE_2__["LineContainerComponent"], { title: "GENERAL", selection: this.props.globalState },
56793
56846
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_textLineComponent__WEBPACK_IMPORTED_MODULE_4__["TextLineComponent"], { label: "ID", value: skeleton.id }),
56794
56847
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_textLineComponent__WEBPACK_IMPORTED_MODULE_4__["TextLineComponent"], { label: "Bone count", value: skeleton.bones.length.toString() }),
56795
- skeleton.overrideMesh && react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_textLineComponent__WEBPACK_IMPORTED_MODULE_4__["TextLineComponent"], { label: "Override mesh", value: skeleton.overrideMesh.name, onLink: function () { return _this.onOverrideMeshLink(); } }),
56796
56848
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_checkBoxLineComponent__WEBPACK_IMPORTED_MODULE_3__["CheckBoxLineComponent"], { label: "Use texture to store matrices", target: skeleton, propertyName: "useTextureToStoreBoneMatrices", onPropertyChangedObservable: this.props.onPropertyChangedObservable }),
56797
56849
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_buttonLineComponent__WEBPACK_IMPORTED_MODULE_10__["ButtonLineComponent"], { label: "Return to rest", onClick: function () { return skeleton.returnToRest(); } })),
56798
56850
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_lineContainerComponent__WEBPACK_IMPORTED_MODULE_2__["LineContainerComponent"], { title: "DEBUG", selection: this.props.globalState },
@@ -58486,6 +58538,7 @@ __webpack_require__.r(__webpack_exports__);
58486
58538
 
58487
58539
 
58488
58540
 
58541
+
58489
58542
  var ScenePropertyGridComponent = /** @class */ (function (_super) {
58490
58543
  Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ScenePropertyGridComponent, _super);
58491
58544
  function ScenePropertyGridComponent(props) {
@@ -59393,14 +59446,20 @@ var GLTFComponent = /** @class */ (function (_super) {
59393
59446
  ];
59394
59447
  return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", null,
59395
59448
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_lineContainerComponent__WEBPACK_IMPORTED_MODULE_2__["LineContainerComponent"], { title: "GLTF LOADER", closed: true, selection: this.props.globalState },
59449
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_checkBoxLineComponent__WEBPACK_IMPORTED_MODULE_3__["CheckBoxLineComponent"], { label: "Always compute bounding box", target: loaderState, propertyName: "alwaysComputeBoundingBox" }),
59450
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_checkBoxLineComponent__WEBPACK_IMPORTED_MODULE_3__["CheckBoxLineComponent"], { label: "Always compute skeleton root node", target: loaderState, propertyName: "alwaysComputeSkeletonRootNode" }),
59396
59451
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_optionsLineComponent__WEBPACK_IMPORTED_MODULE_5__["OptionsLineComponent"], { label: "Animation start mode", options: animationStartMode, target: loaderState, propertyName: "animationStartMode" }),
59397
59452
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_checkBoxLineComponent__WEBPACK_IMPORTED_MODULE_3__["CheckBoxLineComponent"], { label: "Capture performance counters", target: loaderState, propertyName: "capturePerformanceCounters" }),
59398
59453
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_checkBoxLineComponent__WEBPACK_IMPORTED_MODULE_3__["CheckBoxLineComponent"], { label: "Compile materials", target: loaderState, propertyName: "compileMaterials" }),
59399
59454
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_checkBoxLineComponent__WEBPACK_IMPORTED_MODULE_3__["CheckBoxLineComponent"], { label: "Compile shadow generators", target: loaderState, propertyName: "compileShadowGenerators" }),
59400
59455
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_optionsLineComponent__WEBPACK_IMPORTED_MODULE_5__["OptionsLineComponent"], { label: "Coordinate system", options: coordinateSystemMode, target: loaderState, propertyName: "coordinateSystemMode" }),
59456
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_checkBoxLineComponent__WEBPACK_IMPORTED_MODULE_3__["CheckBoxLineComponent"], { label: "Create instances", target: loaderState, propertyName: "createInstances" }),
59401
59457
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_checkBoxLineComponent__WEBPACK_IMPORTED_MODULE_3__["CheckBoxLineComponent"], { label: "Enable logging", target: loaderState, propertyName: "loggingEnabled" }),
59458
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_checkBoxLineComponent__WEBPACK_IMPORTED_MODULE_3__["CheckBoxLineComponent"], { label: "Load all materials", target: loaderState, propertyName: "loadAllMaterials" }),
59459
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_floatLineComponent__WEBPACK_IMPORTED_MODULE_4__["FloatLineComponent"], { label: "Target FPS", target: loaderState, propertyName: "targetFps", isInteger: true }),
59402
59460
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_checkBoxLineComponent__WEBPACK_IMPORTED_MODULE_3__["CheckBoxLineComponent"], { label: "Transparency as coverage", target: loaderState, propertyName: "transparencyAsCoverage" }),
59403
59461
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_checkBoxLineComponent__WEBPACK_IMPORTED_MODULE_3__["CheckBoxLineComponent"], { label: "Use clip plane", target: loaderState, propertyName: "useClipPlane" }),
59462
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_checkBoxLineComponent__WEBPACK_IMPORTED_MODULE_3__["CheckBoxLineComponent"], { label: "Use sRGB buffers", target: loaderState, propertyName: "useSRGBBuffers" }),
59404
59463
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_checkBoxLineComponent__WEBPACK_IMPORTED_MODULE_3__["CheckBoxLineComponent"], { label: "Validate", target: loaderState, propertyName: "validate" }),
59405
59464
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_messageLineComponent__WEBPACK_IMPORTED_MODULE_6__["MessageLineComponent"], { text: "You need to reload your file to see these changes" })),
59406
59465
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_lineContainerComponent__WEBPACK_IMPORTED_MODULE_2__["LineContainerComponent"], { title: "GLTF EXTENSIONS", closed: true, selection: this.props.globalState },
@@ -60020,14 +60079,20 @@ var GlobalState = /** @class */ (function () {
60020
60079
  EXT_texture_webp: { enabled: true },
60021
60080
  };
60022
60081
  this.glTFLoaderDefaults = {
60082
+ alwaysComputeBoundingBox: false,
60083
+ alwaysComputeSkeletonRootNode: false,
60023
60084
  animationStartMode: typeof _babylonjs_loaders_glTF_index__WEBPACK_IMPORTED_MODULE_0__["GLTFLoaderAnimationStartMode"] !== 'undefined' ? _babylonjs_loaders_glTF_index__WEBPACK_IMPORTED_MODULE_0__["GLTFLoaderAnimationStartMode"].FIRST : 1,
60024
60085
  capturePerformanceCounters: false,
60025
60086
  compileMaterials: false,
60026
60087
  compileShadowGenerators: false,
60027
60088
  coordinateSystemMode: typeof _babylonjs_loaders_glTF_index__WEBPACK_IMPORTED_MODULE_0__["GLTFLoaderCoordinateSystemMode"] !== 'undefined' ? _babylonjs_loaders_glTF_index__WEBPACK_IMPORTED_MODULE_0__["GLTFLoaderCoordinateSystemMode"].AUTO : 0,
60089
+ createInstances: true,
60090
+ loadAllMaterials: false,
60028
60091
  loggingEnabled: false,
60092
+ targetFps: 60,
60029
60093
  transparencyAsCoverage: false,
60030
60094
  useClipPlane: false,
60095
+ useSRGBBuffers: true,
60031
60096
  };
60032
60097
  this.glTFLoaderExtensions = {};
60033
60098
  this.blockMutationUpdates = false;
@@ -61433,6 +61498,11 @@ var PopupComponent = /** @class */ (function (_super) {
61433
61498
  Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(PopupComponent, _super);
61434
61499
  function PopupComponent(props) {
61435
61500
  var _this = _super.call(this, props) || this;
61501
+ _this.onBeforeUnloadListener = function () {
61502
+ if (_this._window) {
61503
+ _this._window.close();
61504
+ }
61505
+ };
61436
61506
  _this._container = document.createElement("div");
61437
61507
  _this._container.id = _this.props.id;
61438
61508
  _this._window;
@@ -61458,6 +61528,7 @@ var PopupComponent = /** @class */ (function (_super) {
61458
61528
  this._container.appendChild(this._host);
61459
61529
  }
61460
61530
  this._window = _inspector__WEBPACK_IMPORTED_MODULE_3__["Inspector"][windowVariableName];
61531
+ window.addEventListener("beforeunload", this.onBeforeUnloadListener);
61461
61532
  if (this._window) {
61462
61533
  if (onOpen) {
61463
61534
  onOpen(this._window);
@@ -61490,6 +61561,7 @@ var PopupComponent = /** @class */ (function (_super) {
61490
61561
  }
61491
61562
  };
61492
61563
  PopupComponent.prototype.componentWillUnmount = function () {
61564
+ window.removeEventListener("beforeunload", this.onBeforeUnloadListener);
61493
61565
  if (this._window) {
61494
61566
  this._window.close();
61495
61567
  }
@@ -62142,6 +62214,9 @@ __webpack_require__.r(__webpack_exports__);
62142
62214
  /* harmony import */ var _extensionsComponent__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../extensionsComponent */ "./components/sceneExplorer/extensionsComponent.tsx");
62143
62215
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react */ "../../../../node_modules/react/index.js");
62144
62216
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_6__);
62217
+ /* harmony import */ var _babylonjs_core_Rendering_boundingBoxRenderer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @babylonjs/core/Rendering/boundingBoxRenderer */ "@babylonjs/core/Misc/observable");
62218
+ /* harmony import */ var _babylonjs_core_Rendering_boundingBoxRenderer__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_babylonjs_core_Rendering_boundingBoxRenderer__WEBPACK_IMPORTED_MODULE_7__);
62219
+
62145
62220
 
62146
62221
 
62147
62222
 
@@ -63135,6 +63210,10 @@ __webpack_require__.r(__webpack_exports__);
63135
63210
 
63136
63211
 
63137
63212
 
63213
+
63214
+ // side effects
63215
+
63216
+
63138
63217
 
63139
63218
  __webpack_require__(/*! ./sceneExplorer.scss */ "./components/sceneExplorer/sceneExplorer.scss");
63140
63219
  var SceneExplorerFilterComponent = /** @class */ (function (_super) {
@@ -64587,7 +64666,7 @@ __webpack_require__.r(__webpack_exports__);
64587
64666
  /* harmony import */ var _babylonjs_core_Materials_effect__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babylonjs_core_Materials_effect__WEBPACK_IMPORTED_MODULE_0__);
64588
64667
 
64589
64668
  var name = 'lodPixelShader';
64590
- var shader = "\n#extension GL_EXT_shader_texture_lod : enable\n\nprecision highp float;\n\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\nuniform float lod;\nuniform vec2 texSize;\nvoid main(void)\n{\n gl_FragColor = textureLod(textureSampler,vUV,lod);\n}";
64669
+ var shader = "\n#extension GL_EXT_shader_texture_lod : enable\n\nprecision highp float;\n\nconst float GammaEncodePowerApprox = 1.0 / 2.2;\n\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\nuniform float lod;\nuniform vec2 texSize;\nuniform bool gamma;\nvoid main(void)\n{\n gl_FragColor = textureLod(textureSampler,vUV,lod);\n if (!gamma) {\n gl_FragColor.rgb = pow(gl_FragColor.rgb, vec3(GammaEncodePowerApprox));\n }\n}";
64591
64670
  _babylonjs_core_Materials_effect__WEBPACK_IMPORTED_MODULE_0__["Effect"].ShadersStore[name] = shader;
64592
64671
  /** @hidden */
64593
64672
  var lodPixelShader = { name: name, shader: shader };
@@ -64609,7 +64688,7 @@ __webpack_require__.r(__webpack_exports__);
64609
64688
  /* harmony import */ var _babylonjs_core_Materials_effect__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babylonjs_core_Materials_effect__WEBPACK_IMPORTED_MODULE_0__);
64610
64689
 
64611
64690
  var name = 'lodCubePixelShader';
64612
- var shader = "\nprecision highp float;\n\nvarying vec2 vUV;\nuniform samplerCube textureSampler;\nuniform float lod;\nvoid main(void)\n{\n vec2 uv=vUV*2.0-1.0;\n #ifdef POSITIVEX\n gl_FragColor=textureCube(textureSampler,vec3(1.001,uv.y,uv.x),lod);\n #endif\n #ifdef NEGATIVEX\n gl_FragColor=textureCube(textureSampler,vec3(-1.001,uv.y,uv.x),lod);\n #endif\n #ifdef POSITIVEY\n gl_FragColor=textureCube(textureSampler,vec3(uv.y,1.001,uv.x),lod);\n #endif\n #ifdef NEGATIVEY\n gl_FragColor=textureCube(textureSampler,vec3(uv.y,-1.001,uv.x),lod);\n #endif\n #ifdef POSITIVEZ\n gl_FragColor=textureCube(textureSampler,vec3(uv,1.001),lod);\n #endif\n #ifdef NEGATIVEZ\n gl_FragColor=textureCube(textureSampler,vec3(uv,-1.001),lod);\n #endif\n}";
64691
+ var shader = "\nprecision highp float;\n\nconst float GammaEncodePowerApprox = 1.0 / 2.2;\n\nvarying vec2 vUV;\nuniform samplerCube textureSampler;\nuniform float lod;\nuniform bool gamma;\nvoid main(void)\n{\n vec2 uv=vUV*2.0-1.0;\n #ifdef POSITIVEX\n gl_FragColor=textureCube(textureSampler,vec3(1.001,uv.y,uv.x),lod);\n #endif\n #ifdef NEGATIVEX\n gl_FragColor=textureCube(textureSampler,vec3(-1.001,uv.y,uv.x),lod);\n #endif\n #ifdef POSITIVEY\n gl_FragColor=textureCube(textureSampler,vec3(uv.y,1.001,uv.x),lod);\n #endif\n #ifdef NEGATIVEY\n gl_FragColor=textureCube(textureSampler,vec3(uv.y,-1.001,uv.x),lod);\n #endif\n #ifdef POSITIVEZ\n gl_FragColor=textureCube(textureSampler,vec3(uv,1.001),lod);\n #endif\n #ifdef NEGATIVEZ\n gl_FragColor=textureCube(textureSampler,vec3(uv,-1.001),lod);\n #endif\n if (!gamma) {\n gl_FragColor.rgb = pow(gl_FragColor.rgb, vec3(GammaEncodePowerApprox));\n }\n}";
64613
64692
  _babylonjs_core_Materials_effect__WEBPACK_IMPORTED_MODULE_0__["Effect"].ShadersStore[name] = shader;
64614
64693
  /** @hidden */
64615
64694
  var lodCubePixelShader = { name: name, shader: shader };
@@ -65065,7 +65144,9 @@ var CheckBoxLineComponent = /** @class */ (function (_super) {
65065
65144
  initialValue: this.state.isSelected,
65066
65145
  });
65067
65146
  }
65068
- this.props.target[this.props.propertyName] = !this.state.isSelected;
65147
+ if (this.props.target && this.props.propertyName) {
65148
+ this.props.target[this.props.propertyName] = !this.state.isSelected;
65149
+ }
65069
65150
  }
65070
65151
  if (this.props.onValueChanged) {
65071
65152
  this.props.onValueChanged();
@@ -65371,7 +65452,7 @@ var ColorLineComponent = /** @class */ (function (_super) {
65371
65452
  _this.setColorFromString(newValue);
65372
65453
  }, onPropertyChangedObservable: this.props.onPropertyChangedObservable })),
65373
65454
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "copy hoverIcon", onClick: function () { return _this.copyToClipboard(); }, title: "Copy to clipboard" },
65374
- react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("img", { src: copyIcon, alt: "" })),
65455
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("img", { src: copyIcon, alt: "Copy" })),
65375
65456
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "expand hoverIcon", onClick: function () { return _this.switchExpandState(); }, title: "Expand" }, chevron)),
65376
65457
  this.state.isExpanded && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "secondLine" },
65377
65458
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_numericInputComponent__WEBPACK_IMPORTED_MODULE_3__["NumericInputComponent"], { label: "r", value: this.state.color.r, onChange: function (value) { return _this.updateStateR(value); } }),
@@ -65741,7 +65822,9 @@ var FloatLineComponent = /** @class */ (function (_super) {
65741
65822
  if (_this.props.onEnter) {
65742
65823
  _this.props.onEnter(_this._store);
65743
65824
  }
65744
- }, placeholder: placeholder, onFocus: function () { return _this.lock(); }, onChange: function (evt) { return _this.updateValue(evt.target.value); } })))),
65825
+ }, placeholder: placeholder, onFocus: function () { return _this.lock(); }, onChange: function (evt) { return _this.updateValue(evt.target.value); } })),
65826
+ this.props.unit && react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("button", { className: this.props.unitLocked ? "unit disabled" : "unit", onClick: function () { if (_this.props.onUnitClicked && !_this.props.unitLocked)
65827
+ _this.props.onUnitClicked(); } }, this.props.unit))),
65745
65828
  this.props.useEuler && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sliderLineComponent__WEBPACK_IMPORTED_MODULE_2__["SliderLineComponent"], { label: this.props.label, minimum: 0, maximum: 360, step: 0.1, directValue: _babylonjs_core_Misc_tools__WEBPACK_IMPORTED_MODULE_3__["Tools"].ToDegrees(valueAsNumber), onChange: function (value) { return _this.updateValue(_babylonjs_core_Misc_tools__WEBPACK_IMPORTED_MODULE_3__["Tools"].ToRadians(value).toString()); } }))));
65746
65829
  };
65747
65830
  return FloatLineComponent;
@@ -65943,6 +66026,59 @@ var IndentedTextLineComponent = /** @class */ (function (_super) {
65943
66026
 
65944
66027
 
65945
66028
 
66029
+ /***/ }),
66030
+
66031
+ /***/ "./sharedUiComponents/lines/inputArrowsComponent.tsx":
66032
+ /*!***********************************************************!*\
66033
+ !*** ./sharedUiComponents/lines/inputArrowsComponent.tsx ***!
66034
+ \***********************************************************/
66035
+ /*! exports provided: InputArrowsComponent */
66036
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
66037
+
66038
+ "use strict";
66039
+ __webpack_require__.r(__webpack_exports__);
66040
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InputArrowsComponent", function() { return InputArrowsComponent; });
66041
+ /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "../../../../node_modules/tslib/tslib.es6.js");
66042
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "../../../../node_modules/react/index.js");
66043
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
66044
+
66045
+
66046
+ var upArrowIcon = __webpack_require__(/*! ./valueUpArrowIcon.svg */ "./sharedUiComponents/lines/valueUpArrowIcon.svg");
66047
+ var downArrowIcon = __webpack_require__(/*! ./valueDownArrowIcon.svg */ "./sharedUiComponents/lines/valueDownArrowIcon.svg");
66048
+ var InputArrowsComponent = /** @class */ (function (_super) {
66049
+ Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(InputArrowsComponent, _super);
66050
+ function InputArrowsComponent() {
66051
+ var _this = _super !== null && _super.apply(this, arguments) || this;
66052
+ _this._arrowsRef = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
66053
+ _this._drag = function (event) {
66054
+ _this.props.incrementValue(event.movementY);
66055
+ };
66056
+ _this._releaseListener = function () {
66057
+ var _a, _b;
66058
+ _this.props.setDragging(false);
66059
+ (_a = _this._arrowsRef.current) === null || _a === void 0 ? void 0 : _a.ownerDocument.exitPointerLock();
66060
+ window.removeEventListener("pointerup", _this._releaseListener);
66061
+ (_b = _this._arrowsRef.current) === null || _b === void 0 ? void 0 : _b.ownerDocument.removeEventListener("mousemove", _this._drag);
66062
+ };
66063
+ return _this;
66064
+ }
66065
+ InputArrowsComponent.prototype.render = function () {
66066
+ var _this = this;
66067
+ return react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "arrows", ref: this._arrowsRef, onPointerDown: function (event) {
66068
+ var _a, _b;
66069
+ _this.props.setDragging(true);
66070
+ (_a = _this._arrowsRef.current) === null || _a === void 0 ? void 0 : _a.requestPointerLock();
66071
+ window.addEventListener("pointerup", _this._releaseListener);
66072
+ (_b = _this._arrowsRef.current) === null || _b === void 0 ? void 0 : _b.ownerDocument.addEventListener("mousemove", _this._drag);
66073
+ }, onDragStart: function (evt) { return evt.preventDefault(); } },
66074
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("img", { className: "upArrowIcon", src: upArrowIcon, alt: "Increase Value" }),
66075
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("img", { className: "downArrowIcon", src: downArrowIcon, alt: "Increase Value" }));
66076
+ };
66077
+ return InputArrowsComponent;
66078
+ }(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));
66079
+
66080
+
66081
+
65946
66082
  /***/ }),
65947
66083
 
65948
66084
  /***/ "./sharedUiComponents/lines/lineContainerComponent.tsx":
@@ -66431,7 +66567,7 @@ var SliderLineComponent = /** @class */ (function (_super) {
66431
66567
  }, onChange: function (evt) {
66432
66568
  var changed = _this.prepareDataToRead(_this.state.value);
66433
66569
  _this.onChange(changed);
66434
- } }),
66570
+ }, onPropertyChangedObservable: this.props.onPropertyChangedObservable }),
66435
66571
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "slider" },
66436
66572
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("input", { className: "range", type: "range", step: this.props.step, min: this.prepareDataToRead(this.props.minimum), max: this.prepareDataToRead(this.props.maximum), value: this.prepareDataToRead(this.state.value), onInput: function (evt) { return _this.onInput(evt.target.value); }, onChange: function (evt) { return _this.onChange(evt.target.value); } }))));
66437
66573
  };
@@ -66462,15 +66598,17 @@ var conflictingValuesPlaceholder = "—";
66462
66598
  * @param setter an optional setter function to override the default setter behavior
66463
66599
  * @returns a proxy object that can be passed as a target into the input
66464
66600
  */
66465
- function makeTargetsProxy(targets, onPropertyChangedObservable) {
66601
+ function makeTargetsProxy(targets, onPropertyChangedObservable, getProperty) {
66602
+ if (getProperty === void 0) { getProperty = function (target, property) { return target[property]; }; }
66466
66603
  return new Proxy({}, {
66467
66604
  get: function (_, name) {
66605
+ var property = name;
66468
66606
  if (targets.length === 0)
66469
66607
  return conflictingValuesPlaceholder;
66470
- var firstValue = targets[0][name];
66608
+ var firstValue = getProperty(targets[0], property);
66471
66609
  for (var _i = 0, targets_1 = targets; _i < targets_1.length; _i++) {
66472
66610
  var target = targets_1[_i];
66473
- if (target[name] !== firstValue) {
66611
+ if (getProperty(target, property) !== firstValue) {
66474
66612
  return conflictingValuesPlaceholder;
66475
66613
  }
66476
66614
  }
@@ -66479,15 +66617,16 @@ function makeTargetsProxy(targets, onPropertyChangedObservable) {
66479
66617
  set: function (_, name, value) {
66480
66618
  if (value === "—")
66481
66619
  return true;
66620
+ var property = name;
66482
66621
  for (var _i = 0, targets_2 = targets; _i < targets_2.length; _i++) {
66483
66622
  var target = targets_2[_i];
66484
- var initialValue = target[name];
66485
- target[name] = value;
66623
+ var initialValue = target[property];
66624
+ target[property] = value;
66486
66625
  if (onPropertyChangedObservable) {
66487
66626
  onPropertyChangedObservable.notifyObservers({
66488
66627
  object: target,
66489
66628
  property: name,
66490
- value: target[name],
66629
+ value: target[property],
66491
66630
  initialValue: initialValue
66492
66631
  });
66493
66632
  }
@@ -66514,6 +66653,8 @@ __webpack_require__.r(__webpack_exports__);
66514
66653
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "../../../../node_modules/react/index.js");
66515
66654
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
66516
66655
  /* harmony import */ var _targetsProxy__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./targetsProxy */ "./sharedUiComponents/lines/targetsProxy.tsx");
66656
+ /* harmony import */ var _inputArrowsComponent__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./inputArrowsComponent */ "./sharedUiComponents/lines/inputArrowsComponent.tsx");
66657
+
66517
66658
 
66518
66659
 
66519
66660
 
@@ -66522,7 +66663,10 @@ var TextInputLineComponent = /** @class */ (function (_super) {
66522
66663
  function TextInputLineComponent(props) {
66523
66664
  var _this = _super.call(this, props) || this;
66524
66665
  _this._localChange = false;
66525
- _this.state = { value: (_this.props.value !== undefined ? _this.props.value : _this.props.target[_this.props.propertyName]) || "" };
66666
+ _this.state = {
66667
+ value: (_this.props.value !== undefined ? _this.props.value : _this.props.target[_this.props.propertyName]) || "",
66668
+ dragging: false
66669
+ };
66526
66670
  return _this;
66527
66671
  }
66528
66672
  TextInputLineComponent.prototype.componentWillUnmount = function () {
@@ -66538,6 +66682,8 @@ var TextInputLineComponent = /** @class */ (function (_super) {
66538
66682
  nextState.value = newValue || "";
66539
66683
  return true;
66540
66684
  }
66685
+ if (nextState.dragging != this.state.dragging)
66686
+ return true;
66541
66687
  return false;
66542
66688
  };
66543
66689
  TextInputLineComponent.prototype.raiseOnPropertyChanged = function (newValue, previousValue) {
@@ -66576,18 +66722,45 @@ var TextInputLineComponent = /** @class */ (function (_super) {
66576
66722
  }
66577
66723
  this.raiseOnPropertyChanged(value, store);
66578
66724
  };
66725
+ TextInputLineComponent.prototype.incrementValue = function (amount) {
66726
+ if (this.props.step) {
66727
+ amount *= this.props.step;
66728
+ }
66729
+ if (this.props.arrowsIncrement) {
66730
+ this.props.arrowsIncrement(amount);
66731
+ return;
66732
+ }
66733
+ var currentValue = parseFloat(this.state.value);
66734
+ this.updateValue((currentValue + amount).toFixed(2));
66735
+ };
66736
+ TextInputLineComponent.prototype.onKeyDown = function (event) {
66737
+ if (this.props.arrows) {
66738
+ if (event.key === "ArrowUp") {
66739
+ this.incrementValue(-1);
66740
+ event.preventDefault();
66741
+ }
66742
+ if (event.key === "ArrowDown") {
66743
+ this.incrementValue(1);
66744
+ event.preventDefault();
66745
+ }
66746
+ }
66747
+ };
66579
66748
  TextInputLineComponent.prototype.render = function () {
66580
66749
  var _this = this;
66581
66750
  var value = this.state.value === _targetsProxy__WEBPACK_IMPORTED_MODULE_2__["conflictingValuesPlaceholder"] ? "" : this.state.value;
66582
66751
  var placeholder = this.state.value === _targetsProxy__WEBPACK_IMPORTED_MODULE_2__["conflictingValuesPlaceholder"] ? _targetsProxy__WEBPACK_IMPORTED_MODULE_2__["conflictingValuesPlaceholder"] : "";
66583
- return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "textInputLine" },
66752
+ return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this.props.unit !== undefined ? "textInputLine withUnits" : "textInputLine" },
66584
66753
  this.props.icon && react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("img", { src: this.props.icon, title: this.props.iconLabel, alt: this.props.iconLabel, color: "black", className: "icon" }),
66585
66754
  (!this.props.icon || (this.props.icon && this.props.label != "")) && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "label", title: this.props.label }, this.props.label)),
66586
- react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "value" + (this.props.noUnderline === true ? " noUnderline" : "") },
66755
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "value".concat(this.props.noUnderline === true ? " noUnderline" : "").concat(this.props.arrows ? " hasArrows" : "").concat(this.state.dragging ? " dragging" : "") },
66587
66756
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("input", { value: value, onBlur: function () {
66588
66757
  _this.props.lockObject.lock = false;
66589
66758
  _this.updateValue((_this.props.value !== undefined ? _this.props.value : _this.props.target[_this.props.propertyName]) || "");
66590
- }, onFocus: function () { return (_this.props.lockObject.lock = true); }, onChange: function (evt) { return _this.updateValue(evt.target.value); }, placeholder: placeholder }))));
66759
+ }, onFocus: function () { return (_this.props.lockObject.lock = true); }, onChange: function (evt) { return _this.updateValue(evt.target.value); }, onKeyDown: function (evt) { return _this.onKeyDown(evt); }, placeholder: placeholder }),
66760
+ this.props.arrows &&
66761
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_inputArrowsComponent__WEBPACK_IMPORTED_MODULE_3__["InputArrowsComponent"], { incrementValue: function (amount) { return _this.incrementValue(amount); }, setDragging: function (dragging) { return _this.setState({ dragging: dragging }); } })),
66762
+ this.props.unit !== undefined && react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("button", { className: this.props.unitLocked ? "unit disabled" : "unit", onClick: function () { if (_this.props.onUnitClicked && !_this.props.unitLocked)
66763
+ _this.props.onUnitClicked(_this.props.unit || ""); } }, this.props.unit)));
66591
66764
  };
66592
66765
  return TextInputLineComponent;
66593
66766
  }(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));
@@ -66648,6 +66821,17 @@ var TextLineComponent = /** @class */ (function (_super) {
66648
66821
 
66649
66822
 
66650
66823
 
66824
+ /***/ }),
66825
+
66826
+ /***/ "./sharedUiComponents/lines/valueDownArrowIcon.svg":
66827
+ /*!*********************************************************!*\
66828
+ !*** ./sharedUiComponents/lines/valueDownArrowIcon.svg ***!
66829
+ \*********************************************************/
66830
+ /*! no static exports found */
66831
+ /***/ (function(module, exports) {
66832
+
66833
+ module.exports = "data:image/svg+xml,%3Csvg id='icons' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15 15'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23333;%7D%3C/style%3E%3C/defs%3E%3Cpath class='cls-1' d='M4.09,5.55a.61.61,0,0,1,.85,0l2,2V1.79a.6.6,0,1,1,1.2,0V7.52l2-2a.61.61,0,0,1,.85,0,.6.6,0,0,1,0,.84l-3,3a.6.6,0,0,1-.84,0l-3-3A.6.6,0,0,1,4.09,5.55Z'/%3E%3C/svg%3E"
66834
+
66651
66835
  /***/ }),
66652
66836
 
66653
66837
  /***/ "./sharedUiComponents/lines/valueLineComponent.tsx":
@@ -66683,6 +66867,17 @@ var ValueLineComponent = /** @class */ (function (_super) {
66683
66867
 
66684
66868
 
66685
66869
 
66870
+ /***/ }),
66871
+
66872
+ /***/ "./sharedUiComponents/lines/valueUpArrowIcon.svg":
66873
+ /*!*******************************************************!*\
66874
+ !*** ./sharedUiComponents/lines/valueUpArrowIcon.svg ***!
66875
+ \*******************************************************/
66876
+ /*! no static exports found */
66877
+ /***/ (function(module, exports) {
66878
+
66879
+ module.exports = "data:image/svg+xml,%3Csvg id='icons' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15 15'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23333;%7D%3C/style%3E%3C/defs%3E%3Cpath class='cls-1' d='M4.09,9.45a.6.6,0,0,1,0-.84l3-3a.6.6,0,0,1,.84,0l3,3a.6.6,0,0,1,0,.84.61.61,0,0,1-.85,0l-2-2v5.73a.6.6,0,0,1-1.2,0V7.48l-2,2A.61.61,0,0,1,4.09,9.45Z'/%3E%3C/svg%3E"
66880
+
66686
66881
  /***/ }),
66687
66882
 
66688
66883
  /***/ "./sharedUiComponents/lines/vector2LineComponent.tsx":
@@ -67207,7 +67402,7 @@ __webpack_require__.r(__webpack_exports__);
67207
67402
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
67208
67403
  /* harmony import */ var _lines_lineContainerComponent__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../lines/lineContainerComponent */ "./sharedUiComponents/lines/lineContainerComponent.tsx");
67209
67404
  /* harmony import */ var _lines_textLineComponent__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../lines/textLineComponent */ "./sharedUiComponents/lines/textLineComponent.tsx");
67210
- /* harmony import */ var _babylonjs_gui_2D_controls_control__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babylonjs/gui/2D/controls/control */ "@babylonjs/gui/2D/controls/image");
67405
+ /* harmony import */ var _babylonjs_gui_2D_controls_control__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babylonjs/gui/2D/controls/control */ "@babylonjs/gui/2D/controls/control");
67211
67406
  /* harmony import */ var _babylonjs_gui_2D_controls_control__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babylonjs_gui_2D_controls_control__WEBPACK_IMPORTED_MODULE_4__);
67212
67407
  /* harmony import */ var _lines_sliderLineComponent__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../lines/sliderLineComponent */ "./sharedUiComponents/lines/sliderLineComponent.tsx");
67213
67408
  /* harmony import */ var _lines_floatLineComponent__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../lines/floatLineComponent */ "./sharedUiComponents/lines/floatLineComponent.tsx");
@@ -67523,7 +67718,7 @@ __webpack_require__.r(__webpack_exports__);
67523
67718
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
67524
67719
  /* harmony import */ var _tabs_propertyGrids_gui_commonControlPropertyGridComponent__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../tabs/propertyGrids/gui/commonControlPropertyGridComponent */ "./sharedUiComponents/tabs/propertyGrids/gui/commonControlPropertyGridComponent.tsx");
67525
67720
  /* harmony import */ var _lines_lineContainerComponent__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../lines/lineContainerComponent */ "./sharedUiComponents/lines/lineContainerComponent.tsx");
67526
- /* harmony import */ var _babylonjs_gui_2D_controls_image__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babylonjs/gui/2D/controls/image */ "@babylonjs/gui/2D/controls/image");
67721
+ /* harmony import */ var _babylonjs_gui_2D_controls_image__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babylonjs/gui/2D/controls/image */ "@babylonjs/gui/2D/controls/control");
67527
67722
  /* harmony import */ var _babylonjs_gui_2D_controls_image__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babylonjs_gui_2D_controls_image__WEBPACK_IMPORTED_MODULE_4__);
67528
67723
  /* harmony import */ var _lines_floatLineComponent__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../lines/floatLineComponent */ "./sharedUiComponents/lines/floatLineComponent.tsx");
67529
67724
  /* harmony import */ var _lines_checkBoxLineComponent__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../lines/checkBoxLineComponent */ "./sharedUiComponents/lines/checkBoxLineComponent.tsx");
@@ -67942,7 +68137,7 @@ __webpack_require__.r(__webpack_exports__);
67942
68137
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "../../../../node_modules/react/index.js");
67943
68138
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
67944
68139
  /* harmony import */ var _tabs_propertyGrids_gui_commonControlPropertyGridComponent__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../tabs/propertyGrids/gui/commonControlPropertyGridComponent */ "./sharedUiComponents/tabs/propertyGrids/gui/commonControlPropertyGridComponent.tsx");
67945
- /* harmony import */ var _babylonjs_gui_2D_controls_textBlock__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babylonjs/gui/2D/controls/textBlock */ "@babylonjs/gui/2D/controls/image");
68140
+ /* harmony import */ var _babylonjs_gui_2D_controls_textBlock__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babylonjs/gui/2D/controls/textBlock */ "@babylonjs/gui/2D/controls/control");
67946
68141
  /* harmony import */ var _babylonjs_gui_2D_controls_textBlock__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babylonjs_gui_2D_controls_textBlock__WEBPACK_IMPORTED_MODULE_3__);
67947
68142
  /* harmony import */ var _lines_lineContainerComponent__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../lines/lineContainerComponent */ "./sharedUiComponents/lines/lineContainerComponent.tsx");
67948
68143
  /* harmony import */ var _lines_textInputLineComponent__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../lines/textInputLineComponent */ "./sharedUiComponents/lines/textInputLineComponent.tsx");
@@ -68062,7 +68257,7 @@ var TextureHelper = /** @class */ (function () {
68062
68257
  scene = texture.getScene();
68063
68258
  engine = scene.getEngine();
68064
68259
  if (!texture.isCube) {
68065
- lodPostProcess = new _babylonjs_core_PostProcesses_postProcess__WEBPACK_IMPORTED_MODULE_1__["PostProcess"]("lod", "lod", ["lod"], null, 1.0, null, _babylonjs_core_PostProcesses_postProcess__WEBPACK_IMPORTED_MODULE_1__["Texture"].NEAREST_NEAREST_MIPNEAREST, engine);
68260
+ lodPostProcess = new _babylonjs_core_PostProcesses_postProcess__WEBPACK_IMPORTED_MODULE_1__["PostProcess"]("lod", "lod", ["lod", "gamma"], null, 1.0, null, _babylonjs_core_PostProcesses_postProcess__WEBPACK_IMPORTED_MODULE_1__["Texture"].NEAREST_NEAREST_MIPNEAREST, engine);
68066
68261
  }
68067
68262
  else {
68068
68263
  faceDefines = [
@@ -68073,7 +68268,7 @@ var TextureHelper = /** @class */ (function () {
68073
68268
  "#define POSITIVEZ",
68074
68269
  "#define NEGATIVEZ",
68075
68270
  ];
68076
- lodPostProcess = new _babylonjs_core_PostProcesses_postProcess__WEBPACK_IMPORTED_MODULE_1__["PostProcess"]("lodCube", "lodCube", ["lod"], null, 1.0, null, _babylonjs_core_PostProcesses_postProcess__WEBPACK_IMPORTED_MODULE_1__["Texture"].NEAREST_NEAREST_MIPNEAREST, engine, false, faceDefines[face]);
68271
+ lodPostProcess = new _babylonjs_core_PostProcesses_postProcess__WEBPACK_IMPORTED_MODULE_1__["PostProcess"]("lodCube", "lodCube", ["lod", "gamma"], null, 1.0, null, _babylonjs_core_PostProcesses_postProcess__WEBPACK_IMPORTED_MODULE_1__["Texture"].NEAREST_NEAREST_MIPNEAREST, engine, false, faceDefines[face]);
68077
68272
  }
68078
68273
  if (!lodPostProcess.getEffect().isReady()) {
68079
68274
  // Try again later
@@ -68090,6 +68285,7 @@ var TextureHelper = /** @class */ (function () {
68090
68285
  lodPostProcess.onApply = function (effect) {
68091
68286
  effect.setTexture("textureSampler", texture);
68092
68287
  effect.setFloat("lod", lod);
68288
+ effect.setBool("gamma", texture.gammaSpace);
68093
68289
  };
68094
68290
  internalTexture = texture.getInternalTexture();
68095
68291
  if (!(rtt.renderTarget && internalTexture)) return [3 /*break*/, 2];
@@ -68291,14 +68487,14 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__babylonjs_core_Misc_observable__;
68291
68487
 
68292
68488
  /***/ }),
68293
68489
 
68294
- /***/ "@babylonjs/gui/2D/controls/image":
68490
+ /***/ "@babylonjs/gui/2D/controls/control":
68295
68491
  /*!***************************************************************************************************************************!*\
68296
68492
  !*** external {"root":["BABYLON","GUI"],"commonjs":"@babylonjs/gui","commonjs2":"@babylonjs/gui","amd":"@babylonjs/gui"} ***!
68297
68493
  \***************************************************************************************************************************/
68298
68494
  /*! no static exports found */
68299
68495
  /***/ (function(module, exports) {
68300
68496
 
68301
- module.exports = __WEBPACK_EXTERNAL_MODULE__babylonjs_gui_2D_controls_image__;
68497
+ module.exports = __WEBPACK_EXTERNAL_MODULE__babylonjs_gui_2D_controls_control__;
68302
68498
 
68303
68499
  /***/ }),
68304
68500