From e76480d4b65c6aa439e20c3d56bca2e9332371e8 Mon Sep 17 00:00:00 2001 From: Mark Slee Date: Tue, 20 Aug 2013 01:57:31 -0700 Subject: [PATCH] Speakers in the model and mapping --- _Internals.pde | 36 +++++++++++++++++++- _Mappings.pde | 85 +++++++++++++++++++++++++---------------------- code/GLucose.jar | Bin 22320 -> 23895 bytes 3 files changed, 80 insertions(+), 41 deletions(-) diff --git a/_Internals.pde b/_Internals.pde index 9f75baf..fbe7435 100644 --- a/_Internals.pde +++ b/_Internals.pde @@ -176,8 +176,10 @@ void draw() { endShape(); noStroke(); - fill(#393939); drawBassBox(glucose.model.bassBox); + for (Speaker s : glucose.model.speakers) { + drawSpeaker(s); + } for (Cube c : glucose.model.cubes) { drawCube(c); } @@ -211,6 +213,16 @@ void draw() { void drawBassBox(BassBox b) { float in = .15; + + noStroke(); + fill(#191919); + pushMatrix(); + translate(b.x + BassBox.EDGE_WIDTH/2., b.y + BassBox.EDGE_HEIGHT/2, b.z + BassBox.EDGE_DEPTH/2.); + box(BassBox.EDGE_WIDTH-20*in, BassBox.EDGE_HEIGHT-20*in, BassBox.EDGE_DEPTH-20*in); + popMatrix(); + + noStroke(); + fill(#393939); drawBox(b.x+in, b.y+in, b.z+in, 0, 0, 0, BassBox.EDGE_WIDTH-in*2, BassBox.EDGE_HEIGHT-in*2, BassBox.EDGE_DEPTH-in*2, Cube.CHANNEL_WIDTH-in); pushMatrix(); @@ -232,13 +244,35 @@ void drawBassBox(BassBox b) { translate(BassBox.EDGE_WIDTH-2*in, 0, 0); box(0, BassBox.EDGE_HEIGHT - in*2, Cube.CHANNEL_WIDTH-in); popMatrix(); + } void drawCube(Cube c) { float in = .15; + noStroke(); + fill(#393939); drawBox(c.x+in, c.y+in, c.z+in, c.rx, c.ry, c.rz, Cube.EDGE_WIDTH-in*2, Cube.EDGE_HEIGHT-in*2, Cube.EDGE_WIDTH-in*2, Cube.CHANNEL_WIDTH-in); } +void drawSpeaker(Speaker s) { + float in = .15; + + noStroke(); + fill(#191919); + pushMatrix(); + translate(s.x, s.y, s.z); + rotate(s.ry / 180. * PI, 0, -1, 0); + translate(Speaker.EDGE_WIDTH/2., Speaker.EDGE_HEIGHT/2., Speaker.EDGE_DEPTH/2.); + box(Speaker.EDGE_WIDTH-20*in, Speaker.EDGE_HEIGHT-20*in, Speaker.EDGE_DEPTH-20*in); + popMatrix(); + + + noStroke(); + fill(#393939); + drawBox(s.x+in, s.y+in, s.z+in, 0, s.ry, 0, Speaker.EDGE_WIDTH-in*2, Speaker.EDGE_HEIGHT-in*2, Speaker.EDGE_DEPTH-in*2, Cube.CHANNEL_WIDTH-in); +} + + void drawBox(float x, float y, float z, float rx, float ry, float rz, float xd, float yd, float zd, float sw) { pushMatrix(); translate(x, y, z); diff --git a/_Mappings.pde b/_Mappings.pde index 133a621..78f7b0e 100644 --- a/_Mappings.pde +++ b/_Mappings.pde @@ -45,19 +45,20 @@ public Model buildModel() { TowerMapping[] mapping = new TowerMapping[] { - new TowerMapping(0, 0, 0, new float[][] { - {STACKED_RELATIVE, 0, 0}, - {STACKED_RELATIVE, 5, -10, 20}, - {STACKED_RELATIVE, 0, -6}, - {STACKED_RELATIVE, -5, -2, -20}, - }), - - new TowerMapping(Cube.EDGE_WIDTH + 2, 0, 0, new float[][] { - {STACKED_RELATIVE, 0, 0}, - {STACKED_RELATIVE, 0, 5, 10}, - {STACKED_RELATIVE, 0, 2, 20}, - {STACKED_RELATIVE, 0, 0, 30}, - }), + // Front left cubes +// new TowerMapping(0, 0, 0, new float[][] { +// {STACKED_RELATIVE, 0, 0}, +// {STACKED_RELATIVE, 5, -10, 20}, +// {STACKED_RELATIVE, 0, -6}, +// {STACKED_RELATIVE, -5, -2, -20}, +// }), +// +// new TowerMapping(Cube.EDGE_WIDTH + 2, 0, 0, new float[][] { +// {STACKED_RELATIVE, 0, 0}, +// {STACKED_RELATIVE, 0, 5, 10}, +// {STACKED_RELATIVE, 0, 2, 20}, +// {STACKED_RELATIVE, 0, 0, 30}, +// }), // Back Cubes behind DJ platform (in order of increasing x) new TowerMapping(50, 5, BASS_DEPTH, new float[][] { @@ -148,21 +149,21 @@ public Model buildModel() { {STACKED_RELATIVE, 0, 2, 20}, }), - new TowerMapping(200, 0, 0, new float[][] { - {STACKED_RELATIVE, 0, 10}, - {STACKED_RELATIVE, 5, 0, 20}, - {STACKED_RELATIVE, 0, 4}, - {STACKED_RELATIVE, -5, 8, -20}, - {STACKED_RELATIVE, 0, 3}, - }), +// new TowerMapping(200, 0, 0, new float[][] { +// {STACKED_RELATIVE, 0, 10}, +// {STACKED_RELATIVE, 5, 0, 20}, +// {STACKED_RELATIVE, 0, 4}, +// {STACKED_RELATIVE, -5, 8, -20}, +// {STACKED_RELATIVE, 0, 3}, +// }), - new TowerMapping(0, 0, Cube.EDGE_HEIGHT + 10, new float[][] { - {STACKED_RELATIVE, 10, 0, 40}, - {STACKED_RELATIVE, 3, -2, 20}, - {STACKED_RELATIVE, 0, 0, 40}, - {STACKED_RELATIVE, 0, 0, 60}, - {STACKED_RELATIVE, 0, 0, 40}, - }), +// new TowerMapping(0, 0, Cube.EDGE_HEIGHT + 10, new float[][] { +// {STACKED_RELATIVE, 10, 0, 40}, +// {STACKED_RELATIVE, 3, -2, 20}, +// {STACKED_RELATIVE, 0, 0, 40}, +// {STACKED_RELATIVE, 0, 0, 60}, +// {STACKED_RELATIVE, 0, 0, 40}, +// }), new TowerMapping(20, 0, 2*Cube.EDGE_HEIGHT + 18, new float[][] { {STACKED_RELATIVE, 0, 0, 40}, @@ -172,13 +173,13 @@ public Model buildModel() { {STACKED_RELATIVE, 12, 0, 40}, }), - new TowerMapping(210, 0, Cube.EDGE_HEIGHT + 15, new float[][] { - {STACKED_RELATIVE, 0, 0, 40}, - {STACKED_RELATIVE, 5, 0, 20}, - {STACKED_RELATIVE, 8, 0, 40}, - {STACKED_RELATIVE, 3, 0, 60}, - {STACKED_RELATIVE, 0, 0, 40}, - }), +// new TowerMapping(210, 0, Cube.EDGE_HEIGHT + 15, new float[][] { +// {STACKED_RELATIVE, 0, 0, 40}, +// {STACKED_RELATIVE, 5, 0, 20}, +// {STACKED_RELATIVE, 8, 0, 40}, +// {STACKED_RELATIVE, 3, 0, 60}, +// {STACKED_RELATIVE, 0, 0, 40}, +// }), new TowerMapping(210, 0, 2*Cube.EDGE_HEIGHT + 25, new float[][] { {STACKED_RELATIVE, 0, 0, 40}, @@ -218,8 +219,12 @@ public Model buildModel() { } BassBox bassBox = new BassBox(56, 0, 2); - - return new Model(towerList, cubes, bassBox); + + List speakers = new ArrayList(); + speakers.add(new Speaker(0, 6, 0, 15)); + speakers.add(new Speaker(TRAILER_WIDTH - Speaker.EDGE_WIDTH, 6, 6, -15)); + + return new Model(towerList, cubes, bassBox, speakers); } public PandaMapping[] buildPandaList() { @@ -242,10 +247,10 @@ public PandaMapping[] buildPandaList() { { 37, 38, 39, 40 }, // ch10 { 41, 42, 43, 44 }, // ch11 { 45, 46, 47, 48 }, // ch12 - { 49, 50, 51, 52 }, // ch13 - { 53, 54, 55, 56 }, // ch14 - { 57, 58, 59, 60 }, // ch15 - { 61, 62, 63, 64 }, // ch16 + { 33, 34, 35, 36 }, // ch13 + { 37, 38, 39, 40 }, // ch14 + { 41, 42, 43, 44 }, // ch15 + { 45, 46, 47, 48 }, // ch16 }), }; diff --git a/code/GLucose.jar b/code/GLucose.jar index 14710c1e4205d90f629bac80c02cb947c34a1ddd..34e8f52e067abe2550b99da8fc76fd6a24442089 100644 GIT binary patch delta 3789 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 delta 2101 zcmZ9Nc|25mAIHxOBgR}?BPOFzcc$#i*s~6kCChCFW5)8>%hE=rnrnp6gl0NQmI#xj zT!lf8@(87b35CparErU+ERjk)=gfWe$9>Kp=l%Px=e*8&y*{6j7Q~%e1jgH4LJ|!C z(f}Zo=3#at`=oj17m?8Ui6$~pnm4->x`T=cT^M!<9jF4vBDDWbZUyTRO7O7@p$}sP zVF1+|h{zEsi1ji82{>%RXiLJJQ22&``ATU;%wa4N3CE%>ZsM4rY6*`uglw}%$_b^h zWI6d>`7RUyd_{xvL@fA}j&A7F=tsdlB?Pi~W{MarDenE`K#5d#VSi!3QNl%Ws_e+IgEDD+LS_H3Y)WEVaMWks z(GRln#?LXdDAf|yyx;1ymjWd#X09mxWxAquck_Q5m;PuR5k<{CA75XeAtWcU%C%C+ z=njkC`Le7X+AItHn_W4(=@%#2y+MQX#-4^nxgk3J++5y%1t$iD(k?luO*qP-hT}X< z@KG+t{NGjdY1(KO>`d5l!ZmK74Js&!i~K;+bKmVb5}JccM>MjB!w2 z{}fgj#rai6FRXGd{=~Qd>|4%`a2F;^M(nZ9Z@xAYO6m9(VJDyC@s?ddJ-5H&Q>^B- z?q&5Uk^~w1mzM|8B=^V|+bN4%v(+%9@*`2h(^#>ec8oJxJ;+uu6}Ch_p=lPL{J10B zZq_NYNZ@|sO-GhwSbpT)ZxRPtCg)>=Qm{lTovOpN(UD3kS#)fqr>d9R1Km#iP(p`I zbxv4zPP%03C~FvZ=?+^bz;9U?I#8_aRTc8mCOR8mW=uKY>UiYOI%<^C$_oeU{GLn) z3#~AxE;VEQ%z;F(E0;j)s7qHHpB>#8Kg}ST$i<{b$-jKJcWDMway*eVxJnYawDK>g zaPGV5@mRFS`T;MDvJ};s^MbS$DQD_oEB!Zm>V^H~lg6(qY}v=}r=C21KjVw#2It`O z8O|5)7AfkDu=v!Hho3W3*X$o>th!`8DvS$XRb@u7$|k9-iplucp#@ZD-UmwlBULF? zDO{5g#wa%GW&0iQjSj1|O!WSs?kz&Qi#fB1A{2V9%()i}`S^mn>GIBwOKk?5;^I$+ zyy(WpReI;X{)N5td`UDzia18(>;JHys!FqOA_S}FWc{(P)BHnjpr|nas1t>=@YlJ9 zXxHEp@I*^t7@ylS5Zc6jr!taI-15XT{8Yg$pOYDRZM|ALlG+=PqE z%NdgkE=8s+f8yK3YlrXTMRLz@JOtlGG8eUK%+$>+yPmN(8@AKc#rn@4~NJlkJV?q5WV@T+iRB}6@@OD5;joZ@Y zg;yv6ZAbMvM)>tD)!zL57X+sdU2n`X>-j7*cql)~!I$kH32LZc*)3boxF98{Dsvt( z+i`QiuktWgE@pYLB4@Y&{m3!Bt8dQ{iAb7B!drRck!+16)816dgP{b9MEXRuRXL}$ zr9fC^75wi|90M14r8IAW8zI?~_|g~|u_qMghKtc7>y;OhC>prlyoFsdzc}|lc8RM> zu}#XRII}w%(o{!-X9$8M`F;rvshh*!9YKnpb!D{0HJO*|Fx= zrO!&{H&B;-50&3bv5_9rsocB9Q@EQAe!P}gjJ8TX>R1pUc+SbFx!P&^!wy+Ck($`9 zoHcOZ`;(PR*MINR8a_46A0gf+2jY(|p{>jeXWnlR5bL$K@>)sC?8Mu{BDsz;oAh2> z61+ECdtmod@1-HVZAuZM1jv3QVoGtc(Ih9 zu^ERY8w{}TgjHD6AxW(4rOr3RWf#|Ev7$e9w-v8Nd+3PO+I+t?9D@l|OUPfq+f;iv zTA&)irm>So61#~H9y~$QfR9&c)^L4@X7zVr4-79KTNoF8?BH6zj{}U&zQ4hU^!0+# z>`R4#@uR^A_49*q&(9Tx6n!rYFSoku^0hO_4iI~K4HRkY g1)l~O!f&_+MIQUWt$_w|T7VXCNd^EiJ>Z@H14w>%aR2}S -- 2.34.1