merged slee's lx changes
[SugarCubes.git] / BenMorrow.pde
CommitLineData
467c8c60
BM
1class TowerParams extends SCPattern
2{
130802e3
BM
3 BasicParameter hueoff = new BasicParameter("Hueoff", 0.0);
4 BasicParameter hueSpan = new BasicParameter("HueRange", 0.0);
467c8c60
BM
5 BasicParameter t1 = new BasicParameter("T1", 0.0);
6 BasicParameter t2 = new BasicParameter("T2", 0.0);
7 BasicParameter t3 = new BasicParameter("T3", 0.0);
8 BasicParameter t4 = new BasicParameter("T4", 0.0);
9 BasicParameter t5 = new BasicParameter("T5", 0.0);
10 BasicParameter t6 = new BasicParameter("T6", 0.0);
11 BasicParameter t7 = new BasicParameter("T7", 0.0);
12 BasicParameter t8 = new BasicParameter("T8", 0.0);
13 BasicParameter t9 = new BasicParameter("T9", 0.0);
14 BasicParameter t10 = new BasicParameter("T10", 0.0);
15 BasicParameter t11 = new BasicParameter("T11", 0.0);
16 BasicParameter t12 = new BasicParameter("T12", 0.0);
17 BasicParameter t13 = new BasicParameter("T13", 0.0);
18 BasicParameter t14 = new BasicParameter("T14", 0.0);
19 BasicParameter t15 = new BasicParameter("T15", 0.0);
20 BasicParameter t16 = new BasicParameter("T16", 0.0);
21
22 ArrayList<BasicParameter> towerParams;
23 int towerSize;
c6ba29cf 24 int colorSpan;
467c8c60
BM
25 TowerParams(GLucose glucose) {
26 super(glucose);
27
28 towerParams = new ArrayList<BasicParameter>();
130802e3
BM
29 addParameter(hueoff);
30 addParameter(hueSpan);
467c8c60
BM
31 towerParams.add(t1);
32 towerParams.add(t2);
33 towerParams.add(t3);
34 towerParams.add(t4);
35 towerParams.add(t5);
36 towerParams.add(t6);
37 towerParams.add(t7);
38 towerParams.add(t8);
39 towerParams.add(t9);
40 towerParams.add(t10);
41 towerParams.add(t11);
42 towerParams.add(t12);
43 towerParams.add(t13);
44 towerParams.add(t14);
45 towerParams.add(t15);
46 towerParams.add(t16);
47 for(BasicParameter p : towerParams)
48 {
49 addParameter(p);
50 }
51 towerSize = model.towers.size();
c6ba29cf 52 colorSpan = 255 / towerSize;
467c8c60
BM
53 }
54
34327c96 55 void run(double deltaMs)
467c8c60
BM
56 {
57 clearALL();
58 Tower t;
59 for(int i=0; i<towerSize ;i++)
60 {
61 t= model.towers.get(i);
2bb56822 62 for(LXPoint p : t.points)
467c8c60
BM
63 {
64 if(p.y<towerParams.get(i).getValuef()*200)
65 {
a41f334c 66 colors[p.index]=lx.hsb(255 * hueoff.getValuef()+colorSpan * hueSpan.getValuef() * i, 255, 255);
467c8c60
BM
67 }
68 }
69 }
70
71 }
72
73 public void clearALL()
74 {
2bb56822 75 for(LXPoint p : model.points)
467c8c60
BM
76 {
77 colors[p.index] = 0;
78 }
79 }
80
81}
a68abe8c
BM
82class Sandbox extends SCPattern
83{
fe0cb084
BM
84 int c=0;
85 int prevC=0;
86 int huerange=255;
87 int pointrange= model.points.size();
88 int striprange= model.strips.size();
89 int facerange= model.faces.size();
90 int cuberange = model.cubes.size();
91 int towerrange = model.towers.size();
92 int counter=0;
a68abe8c 93
47011215 94 Sandbox(GLucose glucose) {
a68abe8c 95 super(glucose);
fe0cb084
BM
96 println("points "+pointrange);
97 println("strips "+striprange);
98 println("faces "+facerange);
99 println("cubes "+cuberange);
100 println("towers "+towerrange);
a68abe8c 101 }
fe0cb084 102
34327c96 103 public void run(double deltaMs) {
fe0cb084
BM
104
105
106 if(counter % 10 ==0)
a68abe8c 107 {
fe0cb084
BM
108 doDraw(c,0);
109 c = (c + 1) % towerrange;
a41f334c 110 long col = lx.hsb(Math.round(Math.random()*255),255,255) ;
fe0cb084 111 doDraw(c,col);
a68abe8c
BM
112 }
113 counter++;
fe0cb084
BM
114
115 }
116
117 public void doDraw(int c,long col)
118 {
119 Tower t= model.towers.get((int) c);
2bb56822 120 for(LXPoint p : t.points)
fe0cb084
BM
121 {
122 colors[p.index] = (int) col;
123 }
a68abe8c 124 }
fe0cb084
BM
125};
126
127class GranimTestPattern extends GranimPattern
128{
129 GranimTestPattern(GLucose glucose)
130 {
131 super(glucose);
3b85aef4
BM
132 addGraphic("myReds",new RedsGraphic(100));
133 int[] dots = {0,128,0,128,0,128,0,128,0,128,0,128};
134 addGraphic("myOtherColors",new ColorDotsGraphic(dots));
135
136 getGraphicByName("myOtherColors").position=100;
27e9754c
BM
137 }
138 int counter=0;
34327c96 139 public void run(double deltaMs)
27e9754c 140 {
3b85aef4 141 clearALL();
27e9754c 142 super.run(deltaMs);
3b85aef4 143
27e9754c
BM
144 if(counter % 3 ==0)
145 {
3b85aef4
BM
146 Graphic reds = getGraphicByName("myReds");
147 Graphic others = getGraphicByName("myOtherColors");
148 reds.position = reds.position + 1 % 19000;
149 others.position = others.position + 10 % 19000;
150 }
151 }
152 public void clearALL()
153 {
cd059b79 154 for(int i = 0; i < colors.length; i++)
3b85aef4 155 {
cd059b79 156 colors[i] = 0;
3b85aef4
BM
157 }
158 }
159
160
161}
162
163class GranimTestPattern2 extends GranimPattern
164{
165 GranimTestPattern2(GLucose glucose)
166 {
167 super(glucose);
168 /*for(int i = 0;i < 100; i++)
169 {
170 Graphic g = addGraphic("myReds_"+i,new RedsGraphic(Math.round(Math.random() * 100)));
171
172 }*/
173 Graphic g = addGraphic("myRandoms",new RandomsGranim(50));
174 g.position = 200;
175
176 }
177 int counter=0;
178 float count=0;
34327c96 179 public void run(double deltaMs)
3b85aef4
BM
180 {
181 clearALL();
182 super.run(deltaMs);
183 Graphic randomsGraphic = getGraphicByName("myRandoms");
184 randomsGraphic.position = Math.round(sin(count)*1000)+5000;
cd059b79 185 count+= 0.005;
3b85aef4
BM
186 }
187 public void clearALL()
188 {
2bb56822 189 for(LXPoint p : model.points)
3b85aef4
BM
190 {
191 colors[p.index] = 0;
27e9754c 192 }
fe0cb084
BM
193 }
194
195
a1d396e5
BM
196};
197
198class DriveableCrossSections extends CrossSections
199{
e1635ff6
BM
200 BasicParameter xd;
201 BasicParameter yd;
202 BasicParameter zd;
203 BasicParameter mode;
a1d396e5
BM
204
205 DriveableCrossSections(GLucose glucose) {
206 super(glucose);
207 }
208
209 public void addParams()
210 {
e1635ff6
BM
211 mode = new BasicParameter("Mode", 0.0);
212 xd = new BasicParameter("XD", 0.0);
213 yd = new BasicParameter("YD", 0.0);
214 zd = new BasicParameter("ZD", 0.0);
215 addParameter(mode);
a1d396e5
BM
216 addParameter(xd);
217 addParameter(yd);
218 addParameter(zd);
1692ded2
BM
219
220 super.addParams();
a1d396e5
BM
221 }
222
e1635ff6
BM
223 public void onParameterChanged(LXParameter p) {
224 if(p == mode)
225 {
226 if(interactive())
227 {
efa0f27b
BM
228 copyValuesToKnobs();
229 }else{
230 copyKnobsToValues();
e1635ff6
BM
231 }
232 }
233 }
a1d396e5 234
efa0f27b
BM
235 void copyValuesToKnobs()
236 {
237 xd.setValue(x.getValue()/200);
238 yd.setValue(y.getValue()/115);
239 zd.setValue(z.getValue()/100);
240 }
241
242 void copyKnobsToValues()
243 {
244 x.setValue(xd.getValue()*200);
245 y.setValue(yd.getValue()*115);
246 z.setValue(zd.getValue()*100);
247 }
248
e1635ff6
BM
249 boolean interactive()
250 {
251 return Math.round(mode.getValuef())>0.5;
252 }
a1d396e5
BM
253
254 public void updateXYZVals()
255 {
e1635ff6
BM
256 if(interactive())
257 {
258 xv = xd.getValuef()*200;
efa0f27b 259 yv = yd.getValuef()*115;
e1635ff6
BM
260 zv = zd.getValuef()*100;
261 }else{
262 super.updateXYZVals();
efa0f27b 263 copyValuesToKnobs();
e1635ff6 264 }
a1d396e5
BM
265 }
266
e28f168c 267}