1 |
- {"ast":null,"code":"import { PointerEventTypes } from \"../../Events/pointerEvents.js\";\nimport { PrecisionDate } from \"../../Misc/precisionDate.js\";\nimport { Epsilon } from \"../../Maths/math.constants.js\";\n/**\n * The autoRotation behavior (AutoRotationBehavior) is designed to create a smooth rotation of an ArcRotateCamera when there is no user interaction.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/behaviors/cameraBehaviors#autorotation-behavior\n */\nexport class AutoRotationBehavior {\n constructor() {\n this._zoomStopsAnimation = false;\n this._idleRotationSpeed = 0.05;\n this._idleRotationWaitTime = 2000;\n this._idleRotationSpinupTime = 2000;\n /**\n * Target alpha\n */\n this.targetAlpha = null;\n this._isPointerDown = false;\n this._lastFrameTime = null;\n this._lastInteractionTime = -Infinity;\n this._cameraRotationSpeed = 0;\n this._lastFrameRadius = 0;\n }\n /**\n * Gets the name of the behavior.\n */\n get name() {\n return \"AutoRotation\";\n }\n /**\n * Sets the flag that indicates if user zooming should stop animation.\n */\n set zoomStopsAnimation(flag) {\n this._zoomStopsAnimation = flag;\n }\n /**\n * Gets the flag that indicates if user zooming should stop animation.\n */\n get zoomStopsAnimation() {\n return this._zoomStopsAnimation;\n }\n /**\n * Sets the default speed at which the camera rotates around the model.\n */\n set idleRotationSpeed(speed) {\n this._idleRotationSpeed = speed;\n }\n /**\n * Gets the default speed at which the camera rotates around the model.\n */\n get idleRotationSpeed() {\n return this._idleRotationSpeed;\n }\n /**\n * Sets the time (in milliseconds) to wait after user interaction before the camera starts rotating.\n */\n set idleRotationWaitTime(time) {\n this._idleRotationWaitTime = time;\n }\n /**\n * Gets the time (milliseconds) to wait after user interaction before the camera starts rotating.\n */\n get idleRotationWaitTime() {\n return this._idleRotationWaitTime;\n }\n /**\n * Sets the time (milliseconds) to take to spin up to the full idle rotation speed.\n */\n set idleRotationSpinupTime(time) {\n this._idleRotationSpinupTime = time;\n }\n /**\n * Gets the time (milliseconds) to take to spin up to the full idle rotation speed.\n */\n get idleRotationSpinupTime() {\n return this._idleRotationSpinupTime;\n }\n /**\n * Gets a value indicating if the camera is currently rotating because of this behavior\n */\n get rotationInProgress() {\n return Math.abs(this._cameraRotationSpeed) > 0;\n }\n /**\n * Initializes the behavior.\n */\n init() {\n // Do nothing\n }\n /**\n * Attaches the behavior to its arc rotate camera.\n * @param camera Defines the camera to attach the behavior to\n */\n attach(camera) {\n this._attachedCamera = camera;\n const scene = this._attachedCamera.getScene();\n this._onPrePointerObservableObserver = scene.onPrePointerObservable.add(pointerInfoPre => {\n if (pointerInfoPre.type === PointerEventTypes.POINTERDOWN) {\n this._isPointerDown = true;\n return;\n }\n if (pointerInfoPre.type === PointerEventTypes.POINTERUP) {\n this._isPointerDown = false;\n }\n });\n this._onAfterCheckInputsObserver = camera.onAfterCheckInputsObservable.add(() => {\n if (this._reachTargetAlpha()) {\n return;\n }\n const now = PrecisionDate.Now;\n let dt = 0;\n if (this._lastFrameTime != null) {\n dt = now - this._lastFrameTime;\n }\n this._lastFrameTime = now;\n // Stop the animation if there is user interaction and the animation should stop for this interaction\n this._applyUserInteraction();\n const timeToRotation = now - this._lastInteractionTime - this._idleRotationWaitTime;\n const scale = Math.max(Math.min(timeToRotation / this._idleRotationSpinupTime, 1), 0);\n this._cameraRotationSpeed = this._idleRotationSpeed * scale;\n // Step camera rotation by rotation speed\n if (this._attachedCamera) {\n this._attachedCamera.alpha -= this._cameraRotationSpeed * (dt / 1000);\n }\n });\n }\n /**\n * Detaches the behavior from its current arc rotate camera.\n */\n detach() {\n if (!this._attachedCamera) {\n return;\n }\n const scene = this._attachedCamera.getScene();\n if (this._onPrePointerObservableObserver) {\n scene.onPrePointerObservable.remove(this._onPrePointerObservableObserver);\n }\n this._attachedCamera.onAfterCheckInputsObservable.remove(this._onAfterCheckInputsObserver);\n this._attachedCamera = null;\n this._lastFrameTime = null;\n }\n /**\n * Force-reset the last interaction time\n * @param customTime an optional time that will be used instead of the current last interaction time. For example `Date.now()`\n */\n resetLastInteractionTime(customTime) {\n this._lastInteractionTime = customTime !== null && customTime !== void 0 ? customTime : PrecisionDate.Now;\n }\n /**\n * Returns true if camera alpha reaches the target alpha\n * @returns true if camera alpha reaches the target alpha\n */\n _reachTargetAlpha() {\n if (this._attachedCamera && this.targetAlpha) {\n return Math.abs(this._attachedCamera.alpha - this.targetAlpha) < Epsilon;\n }\n return false;\n }\n /**\n * Returns true if user is scrolling.\n * @returns true if user is scrolling.\n */\n _userIsZooming() {\n if (!this._attachedCamera) {\n return false;\n }\n return this._attachedCamera.inertialRadiusOffset !== 0;\n }\n _shouldAnimationStopForInteraction() {\n if (!this._attachedCamera) {\n return false;\n }\n let zoomHasHitLimit = false;\n if (this._lastFrameRadius === this._attachedCamera.radius && this._attachedCamera.inertialRadiusOffset !== 0) {\n zoomHasHitLimit = true;\n }\n // Update the record of previous radius - works as an approx. indicator of hitting radius limits\n this._lastFrameRadius = this._attachedCamera.radius;\n return this._zoomStopsAnimation ? zoomHasHitLimit : this._userIsZooming();\n }\n /**\n * Applies any current user interaction to the camera. Takes into account maximum alpha rotation.\n */\n _applyUserInteraction() {\n if (this._userIsMoving() && !this._shouldAnimationStopForInteraction()) {\n this._lastInteractionTime = PrecisionDate.Now;\n }\n }\n // Tools\n _userIsMoving() {\n if (!this._attachedCamera) {\n return false;\n }\n return this._attachedCamera.inertialAlphaOffset !== 0 || this._attachedCamera.inertialBetaOffset !== 0 || this._attachedCamera.inertialRadiusOffset !== 0 || this._attachedCamera.inertialPanningX !== 0 || this._attachedCamera.inertialPanningY !== 0 || this._isPointerDown;\n }\n}","map":{"version":3,"names":["PointerEventTypes","PrecisionDate","Epsilon","AutoRotationBehavior","constructor","_zoomStopsAnimation","_idleRotationSpeed","_idleRotationWaitTime","_idleRotationSpinupTime","targetAlpha","_isPointerDown","_lastFrameTime","_lastInteractionTime","Infinity","_cameraRotationSpeed","_lastFrameRadius","name","zoomStopsAnimation","flag","idleRotationSpeed","speed","idleRotationWaitTime","time","idleRotationSpinupTime","rotationInProgress","Math","abs","init","attach","camera","_attachedCamera","scene","getScene","_onPrePointerObservableObserver","onPrePointerObservable","add","pointerInfoPre","type","POINTERDOWN","POINTERUP","_onAfterCheckInputsObserver","onAfterCheckInputsObservable","_reachTargetAlpha","now","Now","dt","_applyUserInteraction","timeToRotation","scale","max","min","alpha","detach","remove","resetLastInteractionTime","customTime","_userIsZooming","inertialRadiusOffset","_shouldAnimationStopForInteraction","zoomHasHitLimit","radius","_userIsMoving","inertialAlphaOffset","inertialBetaOffset","inertialPanningX","inertialPanningY"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Behaviors/Cameras/autoRotationBehavior.js"],"sourcesContent":["import { PointerEventTypes } from \"../../Events/pointerEvents.js\";\nimport { PrecisionDate } from \"../../Misc/precisionDate.js\";\nimport { Epsilon } from \"../../Maths/math.constants.js\";\n/**\n * The autoRotation behavior (AutoRotationBehavior) is designed to create a smooth rotation of an ArcRotateCamera when there is no user interaction.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/behaviors/cameraBehaviors#autorotation-behavior\n */\nexport class AutoRotationBehavior {\n constructor() {\n this._zoomStopsAnimation = false;\n this._idleRotationSpeed = 0.05;\n this._idleRotationWaitTime = 2000;\n this._idleRotationSpinupTime = 2000;\n /**\n * Target alpha\n */\n this.targetAlpha = null;\n this._isPointerDown = false;\n this._lastFrameTime = null;\n this._lastInteractionTime = -Infinity;\n this._cameraRotationSpeed = 0;\n this._lastFrameRadius = 0;\n }\n /**\n * Gets the name of the behavior.\n */\n get name() {\n return \"AutoRotation\";\n }\n /**\n * Sets the flag that indicates if user zooming should stop animation.\n */\n set zoomStopsAnimation(flag) {\n this._zoomStopsAnimation = flag;\n }\n /**\n * Gets the flag that indicates if user zooming should stop animation.\n */\n get zoomStopsAnimation() {\n return this._zoomStopsAnimation;\n }\n /**\n * Sets the default speed at which the camera rotates around the model.\n */\n set idleRotationSpeed(speed) {\n this._idleRotationSpeed = speed;\n }\n /**\n * Gets the default speed at which the camera rotates around the model.\n */\n get idleRotationSpeed() {\n return this._idleRotationSpeed;\n }\n /**\n * Sets the time (in milliseconds) to wait after user interaction before the camera starts rotating.\n */\n set idleRotationWaitTime(time) {\n this._idleRotationWaitTime = time;\n }\n /**\n * Gets the time (milliseconds) to wait after user interaction before the camera starts rotating.\n */\n get idleRotationWaitTime() {\n return this._idleRotationWaitTime;\n }\n /**\n * Sets the time (milliseconds) to take to spin up to the full idle rotation speed.\n */\n set idleRotationSpinupTime(time) {\n this._idleRotationSpinupTime = time;\n }\n /**\n * Gets the time (milliseconds) to take to spin up to the full idle rotation speed.\n */\n get idleRotationSpinupTime() {\n return this._idleRotationSpinupTime;\n }\n /**\n * Gets a value indicating if the camera is currently rotating because of this behavior\n */\n get rotationInProgress() {\n return Math.abs(this._cameraRotationSpeed) > 0;\n }\n /**\n * Initializes the behavior.\n */\n init() {\n // Do nothing\n }\n /**\n * Attaches the behavior to its arc rotate camera.\n * @param camera Defines the camera to attach the behavior to\n */\n attach(camera) {\n this._attachedCamera = camera;\n const scene = this._attachedCamera.getScene();\n this._onPrePointerObservableObserver = scene.onPrePointerObservable.add((pointerInfoPre) => {\n if (pointerInfoPre.type === PointerEventTypes.POINTERDOWN) {\n this._isPointerDown = true;\n return;\n }\n if (pointerInfoPre.type === PointerEventTypes.POINTERUP) {\n this._isPointerDown = false;\n }\n });\n this._onAfterCheckInputsObserver = camera.onAfterCheckInputsObservable.add(() => {\n if (this._reachTargetAlpha()) {\n return;\n }\n const now = PrecisionDate.Now;\n let dt = 0;\n if (this._lastFrameTime != null) {\n dt = now - this._lastFrameTime;\n }\n this._lastFrameTime = now;\n // Stop the animation if there is user interaction and the animation should stop for this interaction\n this._applyUserInteraction();\n const timeToRotation = now - this._lastInteractionTime - this._idleRotationWaitTime;\n const scale = Math.max(Math.min(timeToRotation / this._idleRotationSpinupTime, 1), 0);\n this._cameraRotationSpeed = this._idleRotationSpeed * scale;\n // Step camera rotation by rotation speed\n if (this._attachedCamera) {\n this._attachedCamera.alpha -= this._cameraRotationSpeed * (dt / 1000);\n }\n });\n }\n /**\n * Detaches the behavior from its current arc rotate camera.\n */\n detach() {\n if (!this._attachedCamera) {\n return;\n }\n const scene = this._attachedCamera.getScene();\n if (this._onPrePointerObservableObserver) {\n scene.onPrePointerObservable.remove(this._onPrePointerObservableObserver);\n }\n this._attachedCamera.onAfterCheckInputsObservable.remove(this._onAfterCheckInputsObserver);\n this._attachedCamera = null;\n this._lastFrameTime = null;\n }\n /**\n * Force-reset the last interaction time\n * @param customTime an optional time that will be used instead of the current last interaction time. For example `Date.now()`\n */\n resetLastInteractionTime(customTime) {\n this._lastInteractionTime = customTime ?? PrecisionDate.Now;\n }\n /**\n * Returns true if camera alpha reaches the target alpha\n * @returns true if camera alpha reaches the target alpha\n */\n _reachTargetAlpha() {\n if (this._attachedCamera && this.targetAlpha) {\n return Math.abs(this._attachedCamera.alpha - this.targetAlpha) < Epsilon;\n }\n return false;\n }\n /**\n * Returns true if user is scrolling.\n * @returns true if user is scrolling.\n */\n _userIsZooming() {\n if (!this._attachedCamera) {\n return false;\n }\n return this._attachedCamera.inertialRadiusOffset !== 0;\n }\n _shouldAnimationStopForInteraction() {\n if (!this._attachedCamera) {\n return false;\n }\n let zoomHasHitLimit = false;\n if (this._lastFrameRadius === this._attachedCamera.radius && this._attachedCamera.inertialRadiusOffset !== 0) {\n zoomHasHitLimit = true;\n }\n // Update the record of previous radius - works as an approx. indicator of hitting radius limits\n this._lastFrameRadius = this._attachedCamera.radius;\n return this._zoomStopsAnimation ? zoomHasHitLimit : this._userIsZooming();\n }\n /**\n * Applies any current user interaction to the camera. Takes into account maximum alpha rotation.\n */\n _applyUserInteraction() {\n if (this._userIsMoving() && !this._shouldAnimationStopForInteraction()) {\n this._lastInteractionTime = PrecisionDate.Now;\n }\n }\n // Tools\n _userIsMoving() {\n if (!this._attachedCamera) {\n return false;\n }\n return (this._attachedCamera.inertialAlphaOffset !== 0 ||\n this._attachedCamera.inertialBetaOffset !== 0 ||\n this._attachedCamera.inertialRadiusOffset !== 0 ||\n this._attachedCamera.inertialPanningX !== 0 ||\n this._attachedCamera.inertialPanningY !== 0 ||\n this._isPointerDown);\n }\n}\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|