aboutsummaryrefslogtreecommitdiff
path: root/src/compileAndRun/pythonSupportFiles/LuxcenaNeo/Matrix.py
diff options
context:
space:
mode:
authorJakob Stendahl <jakob.stendahl@outlook.com>2018-12-01 00:26:50 +0100
committerJakob Stendahl <jakob.stendahl@outlook.com>2018-12-01 00:26:50 +0100
commit227b9e7d22cddb45deee1558e51d9b792b31f12b (patch)
tree1791216bb7163aa1128a1df4f41449739e4a48a6 /src/compileAndRun/pythonSupportFiles/LuxcenaNeo/Matrix.py
parentbf3ff628acf6e597d76f57c9a908f7136027187c (diff)
downloadLuxcena-Neo-227b9e7d22cddb45deee1558e51d9b792b31f12b.tar.gz
Luxcena-Neo-227b9e7d22cddb45deee1558e51d9b792b31f12b.zip
:memo: Written docs for supportlib
Diffstat (limited to 'src/compileAndRun/pythonSupportFiles/LuxcenaNeo/Matrix.py')
-rw-r--r--src/compileAndRun/pythonSupportFiles/LuxcenaNeo/Matrix.py49
1 files changed, 49 insertions, 0 deletions
diff --git a/src/compileAndRun/pythonSupportFiles/LuxcenaNeo/Matrix.py b/src/compileAndRun/pythonSupportFiles/LuxcenaNeo/Matrix.py
new file mode 100644
index 0000000..0986b45
--- /dev/null
+++ b/src/compileAndRun/pythonSupportFiles/LuxcenaNeo/Matrix.py
@@ -0,0 +1,49 @@
+def getSegmentRange(segments, n):
+ """ Return a list of all the actual led-numbers in a segment """
+ # Sum all the segments prior to the one we are looking for
+ i = 0
+ start = 0
+ while True:
+ if i >= n: break
+ start += segments[i] # Add number of leds in this segment to the start-index
+ i += 1
+
+ # Add all numbers in the segment we are looking for to a list
+ i = start
+ breakPoint = i + segments[n]
+ range = []
+ while True:
+ range.append(i)
+ i += 1
+ if i >= breakPoint: break
+ return range
+
+
+class Matrix:
+
+ def __init__(self, segments, matrix):
+ self.matrix = []
+ for yPos in range(len(matrix)):
+ yVal = matrix[yPos]
+
+ thisY = []
+ for xPos in range(len(yVal)):
+ if matrix[yPos][xPos][1] == True:
+ thisY += reversed(getSegmentRange(segments, matrix[yPos][xPos][0]))
+ else:
+ thisY += getSegmentRange(segments, matrix[yPos][xPos][0])
+ self.matrix.append(thisY)
+
+ def get(self, x, y):
+ """ Return the value of a place in the matrix given x and y coordinates """
+ return self.matrix[y][x]
+
+if __name__ == "__main__":
+ testMatrix = Matrix(
+ [2, 2, 2, 2, 2, 2, 2, 2, 2],
+ [
+ [[0, False], [1, True], [2, False]],
+ [[3, True], [4, False], [5, True]],
+ [[6, False], [7, True], [8, False]]
+ ]
+ )