KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > prefuse > util > force > DragForce


1 package prefuse.util.force;
2
3 /**
4  * Implements a viscosity/drag force to help stabilize items.
5  *
6  * @author <a HREF="http://jheer.org">jeffrey heer</a>
7  */

8 public class DragForce extends AbstractForce {
9
10     private static String JavaDoc[] pnames = new String JavaDoc[] { "DragCoefficient" };
11     
12     public static final float DEFAULT_DRAG_COEFF = 0.01f;
13     public static final float DEFAULT_MIN_DRAG_COEFF = 0.0f;
14     public static final float DEFAULT_MAX_DRAG_COEFF = 0.1f;
15     public static final int DRAG_COEFF = 0;
16
17     /**
18      * Create a new DragForce.
19      * @param dragCoeff the drag co-efficient
20      */

21     public DragForce(float dragCoeff) {
22         params = new float[] { dragCoeff };
23         minValues = new float[] { DEFAULT_MIN_DRAG_COEFF };
24         maxValues = new float[] { DEFAULT_MAX_DRAG_COEFF };
25     }
26
27     /**
28      * Create a new DragForce with default drag co-efficient.
29      */

30     public DragForce() {
31         this(DEFAULT_DRAG_COEFF);
32     }
33
34     /**
35      * Returns true.
36      * @see prefuse.util.force.Force#isItemForce()
37      */

38     public boolean isItemForce() {
39         return true;
40     }
41     
42     /**
43      * @see prefuse.util.force.AbstractForce#getParameterNames()
44      */

45     protected String JavaDoc[] getParameterNames() {
46         return pnames;
47     }
48     
49     /**
50      * @see prefuse.util.force.Force#getForce(prefuse.util.force.ForceItem)
51      */

52     public void getForce(ForceItem item) {
53         item.force[0] -= params[DRAG_COEFF]*item.velocity[0];
54         item.force[1] -= params[DRAG_COEFF]*item.velocity[1];
55     }
56
57 } // end of class DragForce
58
Popular Tags