From 68dcffdeef2eb1cbecfda5583b56b06a301f6c8d Mon Sep 17 00:00:00 2001 From: Mark Slee Date: Sun, 18 Aug 2013 14:35:59 -0700 Subject: [PATCH] Add support for mapping to go in any of the cubes corners properly --- _PandaDriver.pde | 19 +++++++++++++++---- code/GLucose.jar | Bin 18817 -> 19604 bytes 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/_PandaDriver.pde b/_PandaDriver.pde index e62cfff..ef86dbe 100644 --- a/_PandaDriver.pde +++ b/_PandaDriver.pde @@ -62,6 +62,13 @@ public class PandaDriver { } private void buildPointList(Model model, PandaMapping pm) { + final int[][] stripOrderings = new int[][] { + { 2, 1, 0, 3, 13, 12, 15, 14, 4, 7, 6, 5, 11, 10, 9, 8 }, // FRONT_LEFT + { 6, 5, 4, 7, 1, 0, 3, 2, 8, 11, 10, 9, 15, 14, 13, 12 }, // FRONT_RIGHT + { 14, 13, 12, 15, 9, 8, 11, 10, 0, 3, 2, 1, 7, 6, 5, 4 }, // REAR_LEFT + { 10, 9, 8, 11, 5, 4, 7, 6, 12, 15, 14, 13, 3, 2, 1, 0 }, // REAR_RIGHT + }; + int pi = 0; for (int[] channel : pm.channelList) { for (int cubeNumber : channel) { @@ -74,10 +81,14 @@ public class PandaDriver { if (cube == null) { throw new RuntimeException("Non-zero, non-existing cube specified in channel mapping (" + cubeNumber + ")"); } - final int[] stripOrder = new int[] { - 2, 1, 0, 3, 13, 12, 15, 14, 4, 7, 6, 5, 11, 10, 9, 8 - }; - for (int stripIndex : stripOrder) { + int stripOrderIndex = 0; + switch (cube.wiring) { + case FRONT_LEFT: stripOrderIndex = 0; break; + case FRONT_RIGHT: stripOrderIndex = 1; break; + case REAR_LEFT: stripOrderIndex = 2; break; + case REAR_RIGHT: stripOrderIndex = 3; break; + } + for (int stripIndex : stripOrderings[stripOrderIndex]) { Strip s = cube.strips.get(stripIndex); for (int j = s.points.size() - 1; j >= 0; --j) { points[pi++] = s.points.get(j).index; diff --git a/code/GLucose.jar b/code/GLucose.jar index 04bf1fafee00298f26817c0de7878434523e6d14..54b4b706c11da63d6ebdae3b92eab06d903c732e 100644 GIT binary patch delta 2878 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 NAWU+!!r|?+e*=M-5qtmu -- 2.34.1