From 2750bc0277c3d929603daceee2e8a1e88368a306 Mon Sep 17 00:00:00 2001 From: Jakob Odersky Date: Fri, 26 Aug 2011 20:29:25 +0200 Subject: import from local directory --- .../sims/dynamics/constraints/Constraining.scala | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/main/scala/sims/dynamics/constraints/Constraining.scala (limited to 'src/main/scala/sims/dynamics/constraints/Constraining.scala') diff --git a/src/main/scala/sims/dynamics/constraints/Constraining.scala b/src/main/scala/sims/dynamics/constraints/Constraining.scala new file mode 100644 index 0000000..f1834a2 --- /dev/null +++ b/src/main/scala/sims/dynamics/constraints/Constraining.scala @@ -0,0 +1,28 @@ +/* _____ _ __ ________ ___ *\ +** / ___/(_) |/ / ___/ |__ \ Simple Mechanics Simulator 2 ** +** \__ \/ / /|_/ /\__ \ __/ / copyright (c) 2011 Jakob Odersky ** +** ___/ / / / / /___/ / / __/ ** +** /____/_/_/ /_//____/ /____/ ** +\* */ + +package sims.dynamics.constraints + +import sims.dynamics._ + +/**A base trait implemented by objects representing constraints (such as joints or collisions). + * @see sims.dynamics.constraints.Constraint + */ +trait Constraining { + + /**All constraints represented by this constraining object.*/ + def constraints: Seq[Constraint] + + /**Invoke `preSolve()` on each constraint. + * @see sims.dynamics.constraints.Constraint*/ + def preSolve() = for (c <- constraints) c.preSolve() + + /**Solves all constraints of this constraining object. + * @see sims.dynamics.constraints.Constraint*/ + def correctVelocity(h: Double, erp: Double): Unit = for (c <- constraints) c.correctVelocity(h, erp) + +} \ No newline at end of file -- cgit v1.2.3