step method
推进一帧;返回 true 表示已到达平衡位置。
Implementation
bool step(double deltaTime) {
final operator = _springOperator;
if (operator == null) return false;
final dt = deltaTime.clamp(
MiuixSpringDefaults.minFrameDeltaSeconds,
MiuixSpringDefaults.maxFrameDeltaSeconds,
);
velocity = operator.updateVelocity(
currentVelocity: velocity,
deltaTime: dt,
currentPosition: currentPosition,
targetPosition: _targetPosition,
);
currentPosition += dt * velocity;
if (_isAtEquilibrium()) {
currentPosition = _targetPosition;
velocity = 0;
return true;
}
return false;
}