1 /**
  2  * Abstract; see an implementing class.
  3  *
  4  * @class Represents a constraint that acts on particles. Note that this
  5  * interface does not specify how to bind a constraint to specific particles; in
  6  * general, constraints are applied globally to all particles. However, some
  7  * constraints may be applied to specific particles or between particles, such
  8  * as position constraints, through additional specialization.
  9  *
 10  * @see pv.Simulation
 11  * @see pv.Particle
 12  * @see pv.Constraint.bound
 13  * @see pv.Constraint.collision
 14  * @see pv.Constraint.position
 15  */
 16 pv.Constraint = {};
 17 
 18 /**
 19  * Applies this constraint to the specified particles.
 20  *
 21  * @function
 22  * @name pv.Constraint.prototype.apply
 23  * @param {pv.Particle} particles particles to which to apply this constraint.
 24  * @param {pv.Quadtree} q a quadtree for spatial acceleration.
 25  * @returns {pv.Constraint} this.
 26  */
 27