c22873addebeba721d283167ed5748db.json 11 KB
{"ast":null,"code":"var _interopRequireDefault=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=spring;var _base=require(\"../base\");var _derived=require(\"../derived\");var _InternalAnimatedValue=_interopRequireDefault(require(\"../core/InternalAnimatedValue\"));var MAX_STEPS_MS=64;function spring(clock,state,config){var lastTime=(0,_base.cond)(state.time,state.time,clock);var deltaTime=(0,_derived.min)((0,_base.sub)(clock,lastTime),MAX_STEPS_MS);var c=config.damping;var m=config.mass;var k=config.stiffness;var v0=(0,_base.multiply)(-1,state.velocity);var x0=(0,_base.sub)(config.toValue,state.position);var zeta=(0,_base.divide)(c,(0,_base.multiply)(2,(0,_base.sqrt)((0,_base.multiply)(k,m))));var omega0=(0,_base.sqrt)((0,_base.divide)(k,m));var omega1=(0,_base.multiply)(omega0,(0,_base.sqrt)((0,_base.sub)(1,(0,_base.multiply)(zeta,zeta))));var t=(0,_base.divide)(deltaTime,1000);var sin1=(0,_base.sin)((0,_base.multiply)(omega1,t));var cos1=(0,_base.cos)((0,_base.multiply)(omega1,t));var underDampedEnvelope=(0,_base.exp)((0,_base.multiply)(-1,zeta,omega0,t));var underDampedFrag1=(0,_base.multiply)(underDampedEnvelope,(0,_base.add)((0,_base.multiply)(sin1,(0,_base.divide)((0,_base.add)(v0,(0,_base.multiply)(zeta,omega0,x0)),omega1)),(0,_base.multiply)(x0,cos1)));var underDampedPosition=(0,_base.sub)(config.toValue,underDampedFrag1);var underDampedVelocity=(0,_base.sub)((0,_base.multiply)(zeta,omega0,underDampedFrag1),(0,_base.multiply)(underDampedEnvelope,(0,_base.sub)((0,_base.multiply)(cos1,(0,_base.add)(v0,(0,_base.multiply)(zeta,omega0,x0))),(0,_base.multiply)(omega1,x0,sin1))));var criticallyDampedEnvelope=(0,_base.exp)((0,_base.multiply)(-1,omega0,t));var criticallyDampedPosition=(0,_base.sub)(config.toValue,(0,_base.multiply)(criticallyDampedEnvelope,(0,_base.add)(x0,(0,_base.multiply)((0,_base.add)(v0,(0,_base.multiply)(omega0,x0)),t))));var criticallyDampedVelocity=(0,_base.multiply)(criticallyDampedEnvelope,(0,_base.add)((0,_base.multiply)(v0,(0,_base.sub)((0,_base.multiply)(t,omega0),1)),(0,_base.multiply)(t,x0,omega0,omega0)));var prevPosition=state.prevPosition?state.prevPosition:new _InternalAnimatedValue.default(0);var isOvershooting=(0,_base.cond)((0,_base.and)(config.overshootClamping,(0,_base.neq)(config.stiffness,0)),(0,_base.cond)((0,_base.lessThan)(prevPosition,config.toValue),(0,_base.greaterThan)(state.position,config.toValue),(0,_base.lessThan)(state.position,config.toValue)));var isVelocity=(0,_base.lessThan)((0,_derived.abs)(state.velocity),config.restSpeedThreshold);var isDisplacement=(0,_base.or)((0,_base.eq)(config.stiffness,0),(0,_base.lessThan)((0,_derived.abs)((0,_base.sub)(config.toValue,state.position)),config.restDisplacementThreshold));return(0,_base.block)([(0,_base.set)(prevPosition,state.position),(0,_base.cond)((0,_base.lessThan)(zeta,1),[(0,_base.set)(state.position,underDampedPosition),(0,_base.set)(state.velocity,underDampedVelocity)],[(0,_base.set)(state.position,criticallyDampedPosition),(0,_base.set)(state.velocity,criticallyDampedVelocity)]),(0,_base.set)(state.time,clock),(0,_base.cond)((0,_base.or)(isOvershooting,(0,_base.and)(isVelocity,isDisplacement)),[(0,_base.cond)((0,_base.neq)(config.stiffness,0),[(0,_base.set)(state.velocity,0),(0,_base.set)(state.position,config.toValue)]),(0,_base.set)(state.finished,1)])]);}","map":{"version":3,"sources":["C:/Users/bluej/Desktop/2_2/searchGuide/searchGuide/node_modules/react-native-reanimated/src/animations/spring.js"],"names":["MAX_STEPS_MS","spring","clock","state","config","lastTime","time","deltaTime","c","damping","m","mass","k","stiffness","v0","velocity","x0","toValue","position","zeta","omega0","omega1","t","sin1","cos1","underDampedEnvelope","underDampedFrag1","underDampedPosition","underDampedVelocity","criticallyDampedEnvelope","criticallyDampedPosition","criticallyDampedVelocity","prevPosition","AnimatedValue","isOvershooting","overshootClamping","isVelocity","restSpeedThreshold","isDisplacement","restDisplacementThreshold","finished"],"mappings":"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","sourcesContent":["import {\n  cond,\n  sub,\n  divide,\n  multiply,\n  sqrt,\n  add,\n  block,\n  set,\n  exp,\n  sin,\n  cos,\n  eq,\n  or,\n  neq,\n  and,\n  lessThan,\n  greaterThan,\n} from '../base';\nimport { min, abs } from '../derived';\nimport AnimatedValue from '../core/InternalAnimatedValue';\n\nconst MAX_STEPS_MS = 64;\n\nexport default function spring(clock, state, config) {\n  const lastTime = cond(state.time, state.time, clock);\n\n  const deltaTime = min(sub(clock, lastTime), MAX_STEPS_MS);\n\n  const c = config.damping;\n  const m = config.mass;\n  const k = config.stiffness;\n\n  const v0 = multiply(-1, state.velocity);\n  const x0 = sub(config.toValue, state.position);\n\n  const zeta = divide(c, multiply(2, sqrt(multiply(k, m)))); // damping ratio\n  const omega0 = sqrt(divide(k, m)); // undamped angular frequency of the oscillator (rad/ms)\n  const omega1 = multiply(omega0, sqrt(sub(1, multiply(zeta, zeta)))); // exponential decay\n\n  const t = divide(deltaTime, 1000); // in seconds\n\n  const sin1 = sin(multiply(omega1, t));\n  const cos1 = cos(multiply(omega1, t));\n\n  // under damped\n  const underDampedEnvelope = exp(multiply(-1, zeta, omega0, t));\n  const underDampedFrag1 = multiply(\n    underDampedEnvelope,\n    add(\n      multiply(sin1, divide(add(v0, multiply(zeta, omega0, x0)), omega1)),\n      multiply(x0, cos1)\n    )\n  );\n  const underDampedPosition = sub(config.toValue, underDampedFrag1);\n  // This looks crazy -- it's actually just the derivative of the oscillation function\n  const underDampedVelocity = sub(\n    multiply(zeta, omega0, underDampedFrag1),\n    multiply(\n      underDampedEnvelope,\n      sub(\n        multiply(cos1, add(v0, multiply(zeta, omega0, x0))),\n        multiply(omega1, x0, sin1)\n      )\n    )\n  );\n\n  // critically damped\n  const criticallyDampedEnvelope = exp(multiply(-1, omega0, t));\n  const criticallyDampedPosition = sub(\n    config.toValue,\n    multiply(\n      criticallyDampedEnvelope,\n      add(x0, multiply(add(v0, multiply(omega0, x0)), t))\n    )\n  );\n  const criticallyDampedVelocity = multiply(\n    criticallyDampedEnvelope,\n    add(\n      multiply(v0, sub(multiply(t, omega0), 1)),\n      multiply(t, x0, omega0, omega0)\n    )\n  );\n\n  // conditions for stopping the spring animations\n  const prevPosition = state.prevPosition\n    ? state.prevPosition\n    : new AnimatedValue(0);\n\n  const isOvershooting = cond(\n    and(config.overshootClamping, neq(config.stiffness, 0)),\n    cond(\n      lessThan(prevPosition, config.toValue),\n      greaterThan(state.position, config.toValue),\n      lessThan(state.position, config.toValue)\n    )\n  );\n  const isVelocity = lessThan(abs(state.velocity), config.restSpeedThreshold);\n  const isDisplacement = or(\n    eq(config.stiffness, 0),\n    lessThan(\n      abs(sub(config.toValue, state.position)),\n      config.restDisplacementThreshold\n    )\n  );\n\n  return block([\n    set(prevPosition, state.position),\n    cond(\n      lessThan(zeta, 1),\n      [\n        set(state.position, underDampedPosition),\n        set(state.velocity, underDampedVelocity),\n      ],\n      [\n        set(state.position, criticallyDampedPosition),\n        set(state.velocity, criticallyDampedVelocity),\n      ]\n    ),\n    set(state.time, clock),\n    cond(or(isOvershooting, and(isVelocity, isDisplacement)), [\n      cond(neq(config.stiffness, 0), [\n        set(state.velocity, 0),\n        set(state.position, config.toValue),\n      ]),\n      set(state.finished, 1),\n    ]),\n  ]);\n}\n"]},"metadata":{},"sourceType":"script"}