// 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);
}
-
Hans Muller authored30a8e04b