Merge pull request #1429 from HansMuller/add_clamped_simulation
Add clamped simulation
This commit is contained in:
commit
8a46b15b94
@ -10,6 +10,7 @@ library animation;
|
||||
export 'src/animation/animated_simulation.dart';
|
||||
export 'src/animation/animated_value.dart';
|
||||
export 'src/animation/animation_performance.dart';
|
||||
export 'src/animation/clamped_simulation.dart';
|
||||
export 'src/animation/curves.dart';
|
||||
export 'src/animation/forces.dart';
|
||||
export 'src/animation/scheduler.dart';
|
||||
|
28
packages/flutter/lib/src/animation/clamped_simulation.dart
Normal file
28
packages/flutter/lib/src/animation/clamped_simulation.dart
Normal file
@ -0,0 +1,28 @@
|
||||
// Copyright 2015 The Chromium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
import 'package:newton/newton.dart';
|
||||
|
||||
class ClampedSimulation extends Simulation {
|
||||
ClampedSimulation(this.simulation, {
|
||||
this.xMin: double.NEGATIVE_INFINITY,
|
||||
this.xMax: double.INFINITY,
|
||||
this.dxMin: double.NEGATIVE_INFINITY,
|
||||
this.dxMax: double.INFINITY
|
||||
}) {
|
||||
assert(simulation != null);
|
||||
assert(xMax >= xMin);
|
||||
assert(dxMax >= dxMin);
|
||||
}
|
||||
|
||||
final Simulation simulation;
|
||||
final double xMin;
|
||||
final double xMax;
|
||||
final double dxMin;
|
||||
final double dxMax;
|
||||
|
||||
double x(double time) => simulation.x(time).clamp(xMin, xMax);
|
||||
double dx(double time) => simulation.dx(time).clamp(dxMin, dxMax);
|
||||
bool isDone(double time) => simulation.isDone(time);
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user