]> git.gag.com Git - sw/motorsim/commitdiff
Limit to 200 points in graph
authorBill Kuker <bkuker@billkuker.com>
Tue, 21 Apr 2009 17:00:48 +0000 (17:00 +0000)
committerBill Kuker <bkuker@billkuker.com>
Tue, 21 Apr 2009 17:00:48 +0000 (17:00 +0000)
src/com/billkuker/rocketry/motorsim/visual/Chart.java

index 997b030fd0e17619f08850228d13dc94bbb26192..5f5a6487479cfd78eb4de907573b5478343b22c1 100644 (file)
@@ -3,6 +3,7 @@ import java.awt.BorderLayout;
 import java.awt.Color;\r
 import java.lang.reflect.InvocationTargetException;\r
 import java.lang.reflect.Method;\r
+import java.util.Collection;\r
 import java.util.Iterator;\r
 \r
 import javax.measure.quantity.Area;\r
@@ -124,17 +125,22 @@ public class Chart<X extends Quantity, Y extends Quantity> extends JPanel  {
 \r
        @SuppressWarnings("unchecked")\r
        public void setDomain(Iterable<Amount<X>> d) {\r
-\r
-               //double low = d.low.doubleValue(xUnit);\r
-               //double high = d.high.doubleValue(xUnit);\r
-               //double step = (high - low) / 50;\r
-               //for (double x = low; x < high; x += step) {\r
-                       //Amount<X> ax = Amount.valueOf(x, xUnit);\r
+               int skip = 1;\r
+               int sz = 0;\r
+               if ( d instanceof Collection ){\r
+                       sz = ((Collection)d).size();\r
+                       if ( sz > 200 )\r
+                               skip = sz / 200;\r
+               }\r
                series.clear();\r
+               int cnt = 0;\r
                for( Amount<X> ax: d){\r
                        try {\r
-                               Amount<Y> y = (Amount<Y>)f.invoke(source, ax);\r
-                               add(ax, y);\r
+                               if ( cnt % skip == 0 || cnt == sz-1 ){\r
+                                       Amount<Y> y = (Amount<Y>)f.invoke(source, ax);\r
+                                       add(ax, y);\r
+                               }\r
+                               cnt++;\r
                        } catch (IllegalArgumentException e) {\r
                                // TODO Auto-generated catch block\r
                                e.printStackTrace();\r