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