@babylonjs/core 5.22.1 → 5.23.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/Animations/animatable.js +2 -1
- package/Animations/animatable.js.map +1 -1
- package/Animations/animation.js +137 -139
- package/Animations/animation.js.map +1 -1
- package/Animations/runtimeAnimation.js +6 -7
- package/Animations/runtimeAnimation.js.map +1 -1
- package/Audio/sound.d.ts +2 -1
- package/Audio/sound.js +21 -9
- package/Audio/sound.js.map +1 -1
- package/Bones/skeleton.js +9 -3
- package/Bones/skeleton.js.map +1 -1
- package/Cameras/Inputs/BaseCameraMouseWheelInput.js +3 -22
- package/Cameras/Inputs/BaseCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/BaseCameraPointersInput.js +3 -3
- package/Cameras/Inputs/BaseCameraPointersInput.js.map +1 -1
- package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js +1 -11
- package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/flyCameraMouseInput.js +3 -3
- package/Cameras/Inputs/flyCameraMouseInput.js.map +1 -1
- package/Cameras/Inputs/followCameraMouseWheelInput.js +1 -4
- package/Cameras/Inputs/followCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraMouseInput.js +3 -3
- package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
- package/DeviceInput/webDeviceInputSystem.js +20 -2
- package/DeviceInput/webDeviceInputSystem.js.map +1 -1
- package/Engines/thinEngine.js +2 -2
- package/Engines/thinEngine.js.map +1 -1
- package/Events/deviceInputEvents.d.ts +11 -4
- package/Events/deviceInputEvents.js.map +1 -1
- package/Inputs/scene.inputManager.js +4 -4
- package/Inputs/scene.inputManager.js.map +1 -1
- package/Loading/Plugins/babylonFileLoader.js +3 -0
- package/Loading/Plugins/babylonFileLoader.js.map +1 -1
- package/Materials/Background/backgroundMaterial.js +4 -0
- package/Materials/Background/backgroundMaterial.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js +4 -1
- package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js.map +1 -1
- package/Materials/Node/nodeMaterial.js +4 -0
- package/Materials/Node/nodeMaterial.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.js +4 -1
- package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
- package/Materials/standardMaterial.js +4 -1
- package/Materials/standardMaterial.js.map +1 -1
- package/Meshes/abstractMesh.js +7 -1
- package/Meshes/abstractMesh.js.map +1 -1
- package/Meshes/groundMesh.d.ts +5 -4
- package/Meshes/groundMesh.js +5 -4
- package/Meshes/groundMesh.js.map +1 -1
- package/Meshes/transformNode.js +3 -0
- package/Meshes/transformNode.js.map +1 -1
- package/Misc/basis.js +16 -2
- package/Misc/basis.js.map +1 -1
- package/Misc/logger.js +1 -1
- package/Misc/logger.js.map +1 -1
- package/Offline/database.js +3 -3
- package/Offline/database.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.js +3 -3
- package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.js.map +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js +1 -2
- package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js.map +1 -1
- package/Sprites/spriteSceneComponent.js +4 -1
- package/Sprites/spriteSceneComponent.js.map +1 -1
- package/package.json +1 -1
- package/readme.md +0 -4
- package/scene.d.ts +19 -2
- package/scene.js +34 -0
- package/scene.js.map +1 -1
- package/sceneComponent.d.ts +1 -1
- package/sceneComponent.js.map +1 -1
package/Animations/animation.js
CHANGED
|
@@ -745,158 +745,156 @@ export class Animation {
|
|
|
745
745
|
return state.highLimitValue.clone ? state.highLimitValue.clone() : state.highLimitValue;
|
|
746
746
|
}
|
|
747
747
|
const keys = this._keys;
|
|
748
|
-
|
|
748
|
+
const keysLength = keys.length;
|
|
749
|
+
let key = state.key;
|
|
750
|
+
while (key >= 0 && currentFrame < keys[key].frame) {
|
|
751
|
+
--key;
|
|
752
|
+
}
|
|
753
|
+
while (key + 1 <= keysLength - 1 && currentFrame >= keys[key + 1].frame) {
|
|
754
|
+
++key;
|
|
755
|
+
}
|
|
756
|
+
state.key = key;
|
|
757
|
+
if (key < 0) {
|
|
749
758
|
return this._getKeyValue(keys[0].value);
|
|
750
759
|
}
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
760
|
+
else if (key + 1 > keysLength - 1) {
|
|
761
|
+
return this._getKeyValue(keys[keysLength - 1].value);
|
|
762
|
+
}
|
|
763
|
+
const startKey = keys[key];
|
|
764
|
+
const endKey = keys[key + 1];
|
|
765
|
+
const startValue = this._getKeyValue(startKey.value);
|
|
766
|
+
const endValue = this._getKeyValue(endKey.value);
|
|
767
|
+
if (startKey.interpolation === AnimationKeyInterpolation.STEP) {
|
|
768
|
+
if (endKey.frame > currentFrame) {
|
|
769
|
+
return startValue;
|
|
770
|
+
}
|
|
771
|
+
else {
|
|
772
|
+
return endValue;
|
|
755
773
|
}
|
|
756
774
|
}
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
if (easingFunction !== null) {
|
|
779
|
-
gradient = easingFunction.ease(gradient);
|
|
775
|
+
const useTangent = startKey.outTangent !== undefined && endKey.inTangent !== undefined;
|
|
776
|
+
const frameDelta = endKey.frame - startKey.frame;
|
|
777
|
+
// gradient : percent of currentFrame between the frame inf and the frame sup
|
|
778
|
+
let gradient = (currentFrame - startKey.frame) / frameDelta;
|
|
779
|
+
// check for easingFunction and correction of gradient
|
|
780
|
+
const easingFunction = this.getEasingFunction();
|
|
781
|
+
if (easingFunction !== null) {
|
|
782
|
+
gradient = easingFunction.ease(gradient);
|
|
783
|
+
}
|
|
784
|
+
switch (this.dataType) {
|
|
785
|
+
// Float
|
|
786
|
+
case Animation.ANIMATIONTYPE_FLOAT: {
|
|
787
|
+
const floatValue = useTangent
|
|
788
|
+
? this.floatInterpolateFunctionWithTangents(startValue, startKey.outTangent * frameDelta, endValue, endKey.inTangent * frameDelta, gradient)
|
|
789
|
+
: this.floatInterpolateFunction(startValue, endValue, gradient);
|
|
790
|
+
switch (state.loopMode) {
|
|
791
|
+
case Animation.ANIMATIONLOOPMODE_CYCLE:
|
|
792
|
+
case Animation.ANIMATIONLOOPMODE_CONSTANT:
|
|
793
|
+
return floatValue;
|
|
794
|
+
case Animation.ANIMATIONLOOPMODE_RELATIVE:
|
|
795
|
+
return state.offsetValue * state.repeatCount + floatValue;
|
|
780
796
|
}
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
case Animation.ANIMATIONLOOPMODE_RELATIVE:
|
|
792
|
-
return state.offsetValue * state.repeatCount + floatValue;
|
|
793
|
-
}
|
|
794
|
-
break;
|
|
795
|
-
}
|
|
796
|
-
// Quaternion
|
|
797
|
-
case Animation.ANIMATIONTYPE_QUATERNION: {
|
|
798
|
-
const quatValue = useTangent
|
|
799
|
-
? this.quaternionInterpolateFunctionWithTangents(startValue, startKey.outTangent.scale(frameDelta), endValue, endKey.inTangent.scale(frameDelta), gradient)
|
|
800
|
-
: this.quaternionInterpolateFunction(startValue, endValue, gradient);
|
|
801
|
-
switch (state.loopMode) {
|
|
802
|
-
case Animation.ANIMATIONLOOPMODE_CYCLE:
|
|
803
|
-
case Animation.ANIMATIONLOOPMODE_CONSTANT:
|
|
804
|
-
return quatValue;
|
|
805
|
-
case Animation.ANIMATIONLOOPMODE_RELATIVE:
|
|
806
|
-
return quatValue.addInPlace(state.offsetValue.scale(state.repeatCount));
|
|
807
|
-
}
|
|
797
|
+
break;
|
|
798
|
+
}
|
|
799
|
+
// Quaternion
|
|
800
|
+
case Animation.ANIMATIONTYPE_QUATERNION: {
|
|
801
|
+
const quatValue = useTangent
|
|
802
|
+
? this.quaternionInterpolateFunctionWithTangents(startValue, startKey.outTangent.scale(frameDelta), endValue, endKey.inTangent.scale(frameDelta), gradient)
|
|
803
|
+
: this.quaternionInterpolateFunction(startValue, endValue, gradient);
|
|
804
|
+
switch (state.loopMode) {
|
|
805
|
+
case Animation.ANIMATIONLOOPMODE_CYCLE:
|
|
806
|
+
case Animation.ANIMATIONLOOPMODE_CONSTANT:
|
|
808
807
|
return quatValue;
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
808
|
+
case Animation.ANIMATIONLOOPMODE_RELATIVE:
|
|
809
|
+
return quatValue.addInPlace(state.offsetValue.scale(state.repeatCount));
|
|
810
|
+
}
|
|
811
|
+
return quatValue;
|
|
812
|
+
}
|
|
813
|
+
// Vector3
|
|
814
|
+
case Animation.ANIMATIONTYPE_VECTOR3: {
|
|
815
|
+
const vec3Value = useTangent
|
|
816
|
+
? this.vector3InterpolateFunctionWithTangents(startValue, startKey.outTangent.scale(frameDelta), endValue, endKey.inTangent.scale(frameDelta), gradient)
|
|
817
|
+
: this.vector3InterpolateFunction(startValue, endValue, gradient);
|
|
818
|
+
switch (state.loopMode) {
|
|
819
|
+
case Animation.ANIMATIONLOOPMODE_CYCLE:
|
|
820
|
+
case Animation.ANIMATIONLOOPMODE_CONSTANT:
|
|
821
|
+
return vec3Value;
|
|
822
|
+
case Animation.ANIMATIONLOOPMODE_RELATIVE:
|
|
823
|
+
return vec3Value.add(state.offsetValue.scale(state.repeatCount));
|
|
824
|
+
}
|
|
825
|
+
break;
|
|
826
|
+
}
|
|
827
|
+
// Vector2
|
|
828
|
+
case Animation.ANIMATIONTYPE_VECTOR2: {
|
|
829
|
+
const vec2Value = useTangent
|
|
830
|
+
? this.vector2InterpolateFunctionWithTangents(startValue, startKey.outTangent.scale(frameDelta), endValue, endKey.inTangent.scale(frameDelta), gradient)
|
|
831
|
+
: this.vector2InterpolateFunction(startValue, endValue, gradient);
|
|
832
|
+
switch (state.loopMode) {
|
|
833
|
+
case Animation.ANIMATIONLOOPMODE_CYCLE:
|
|
834
|
+
case Animation.ANIMATIONLOOPMODE_CONSTANT:
|
|
835
|
+
return vec2Value;
|
|
836
|
+
case Animation.ANIMATIONLOOPMODE_RELATIVE:
|
|
837
|
+
return vec2Value.add(state.offsetValue.scale(state.repeatCount));
|
|
838
|
+
}
|
|
839
|
+
break;
|
|
840
|
+
}
|
|
841
|
+
// Size
|
|
842
|
+
case Animation.ANIMATIONTYPE_SIZE: {
|
|
843
|
+
switch (state.loopMode) {
|
|
844
|
+
case Animation.ANIMATIONLOOPMODE_CYCLE:
|
|
845
|
+
case Animation.ANIMATIONLOOPMODE_CONSTANT:
|
|
846
|
+
return this.sizeInterpolateFunction(startValue, endValue, gradient);
|
|
847
|
+
case Animation.ANIMATIONLOOPMODE_RELATIVE:
|
|
848
|
+
return this.sizeInterpolateFunction(startValue, endValue, gradient).add(state.offsetValue.scale(state.repeatCount));
|
|
849
|
+
}
|
|
850
|
+
break;
|
|
851
|
+
}
|
|
852
|
+
// Color3
|
|
853
|
+
case Animation.ANIMATIONTYPE_COLOR3: {
|
|
854
|
+
const color3Value = useTangent
|
|
855
|
+
? this.color3InterpolateFunctionWithTangents(startValue, startKey.outTangent.scale(frameDelta), endValue, endKey.inTangent.scale(frameDelta), gradient)
|
|
856
|
+
: this.color3InterpolateFunction(startValue, endValue, gradient);
|
|
857
|
+
switch (state.loopMode) {
|
|
858
|
+
case Animation.ANIMATIONLOOPMODE_CYCLE:
|
|
859
|
+
case Animation.ANIMATIONLOOPMODE_CONSTANT:
|
|
860
|
+
return color3Value;
|
|
861
|
+
case Animation.ANIMATIONLOOPMODE_RELATIVE:
|
|
862
|
+
return color3Value.add(state.offsetValue.scale(state.repeatCount));
|
|
863
|
+
}
|
|
864
|
+
break;
|
|
865
|
+
}
|
|
866
|
+
// Color4
|
|
867
|
+
case Animation.ANIMATIONTYPE_COLOR4: {
|
|
868
|
+
const color4Value = useTangent
|
|
869
|
+
? this.color4InterpolateFunctionWithTangents(startValue, startKey.outTangent.scale(frameDelta), endValue, endKey.inTangent.scale(frameDelta), gradient)
|
|
870
|
+
: this.color4InterpolateFunction(startValue, endValue, gradient);
|
|
871
|
+
switch (state.loopMode) {
|
|
872
|
+
case Animation.ANIMATIONLOOPMODE_CYCLE:
|
|
873
|
+
case Animation.ANIMATIONLOOPMODE_CONSTANT:
|
|
874
|
+
return color4Value;
|
|
875
|
+
case Animation.ANIMATIONLOOPMODE_RELATIVE:
|
|
876
|
+
return color4Value.add(state.offsetValue.scale(state.repeatCount));
|
|
877
|
+
}
|
|
878
|
+
break;
|
|
879
|
+
}
|
|
880
|
+
// Matrix
|
|
881
|
+
case Animation.ANIMATIONTYPE_MATRIX: {
|
|
882
|
+
switch (state.loopMode) {
|
|
883
|
+
case Animation.ANIMATIONLOOPMODE_CYCLE:
|
|
884
|
+
case Animation.ANIMATIONLOOPMODE_CONSTANT: {
|
|
885
|
+
if (Animation.AllowMatricesInterpolation) {
|
|
886
|
+
return this.matrixInterpolateFunction(startValue, endValue, gradient, state.workValue);
|
|
874
887
|
}
|
|
875
|
-
|
|
888
|
+
return startValue;
|
|
876
889
|
}
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
switch (state.loopMode) {
|
|
880
|
-
case Animation.ANIMATIONLOOPMODE_CYCLE:
|
|
881
|
-
case Animation.ANIMATIONLOOPMODE_CONSTANT: {
|
|
882
|
-
if (Animation.AllowMatricesInterpolation) {
|
|
883
|
-
return this.matrixInterpolateFunction(startValue, endValue, gradient, state.workValue);
|
|
884
|
-
}
|
|
885
|
-
return startValue;
|
|
886
|
-
}
|
|
887
|
-
case Animation.ANIMATIONLOOPMODE_RELATIVE: {
|
|
888
|
-
return startValue;
|
|
889
|
-
}
|
|
890
|
-
}
|
|
891
|
-
break;
|
|
890
|
+
case Animation.ANIMATIONLOOPMODE_RELATIVE: {
|
|
891
|
+
return startValue;
|
|
892
892
|
}
|
|
893
|
-
default:
|
|
894
|
-
break;
|
|
895
893
|
}
|
|
896
894
|
break;
|
|
897
895
|
}
|
|
898
896
|
}
|
|
899
|
-
return
|
|
897
|
+
return 0;
|
|
900
898
|
}
|
|
901
899
|
/**
|
|
902
900
|
* Defines the function to use to interpolate matrices
|