Created Matrix Panels Support (markdown)

Michael Miller
2016-03-20 14:39:09 -07:00
parent 7844f608c8
commit 0cd0369528

80
Matrix-Panels-Support.md Normal file

@@ -0,0 +1,80 @@
(under construction)
## Layouts
### RowMajorLayout
The first item is in the upper left. Then the numbering within the layout moves through the row, then continues on the left of the next row.
```
00 01 02 03
04 05 06 07
08 09 10 11
12 13 14 15
```
There are three related objects with the same layout, but they are rotated 90, 180, and 270 degrees clockwise.
RowMajor90Layout -
RowMajor180Layout -
RowMajor270Layout -
### RowMajorAlternatingLayout
The first item is in the upper left. Then the number within the layout moves through the row, then continues on the right of the next row moving toward the left; repeating this alternating pattern through the layout.
```
00 01 02 03
07 06 05 04
08 09 10 11
15 14 13 12
```
There are three related objects with the same layout, but they are rotated 90, 180, and 270 degrees clockwise.
RowMajorAlternating90Layout -
RowMajorAlternating180Layout -
RowMajorAlternating270Layout -
### ColumnMajorLayout
The first item in in the upper left. Then the number within the layout moves down the column, then continues on the top of the next column moving downward again.
```
00 04 08 12
01 05 09 13
02 06 10 14
03 07 11 15
```
There are three related objects with the same layout, but they are rotated 90, 180, and 270 degrees clockwise.
ColumnMajor90Layout -
ColumnMajor180Layout -
ColumnMajor270Layout -
### ColumnMajorAlternatingLayout
The first item is in the upper left. Then the number within the layout moves down the column, then continues on the bottom of the next column moving upward toward the top; repeating this alternating pattern through the layout.
```
00 07 08 15
01 06 09 14
02 05 10 13
03 04 11 12
```
There are three related objects with the same layout, but they are rotated 90, 180, and 270 degrees clockwise.
ColumnMajorAlternating90Layout -
ColumnMajorAlternating180Layout -
ColumnMajorAlternating270Layout -
## [NeoTopology]()
This object is constructed with a method from above to provide the mapping from the 2d coordinate system to index that the NeoPixelBus requires.
```
NeoTopology<RowMajorAlternatingLayout> topo(PanelWidth, PanelHeight);
```
## [NeoTiles]()
This object is constructed with two methods from above to provide the mapping from the 2d coordinate system to index that the NeoPixelBus requires. One method defines an individual layout of a panel, the other defines how the panels are arranged. All panels within the collection are oriented in the same way.
```
NeoTiles <ColumnMajorAlternatingLayout, RowMajorAlternatingLayout> tiles(
PanelWidth,
PanelHeight,
TileWidth,
TileHeight);
```
## [NeoMosaic]()
This object is constructed with a method from above to provide the mapping from the 2d coordinate system to index that the NeoPixelBus requires. The method defines the layout of the physical panel but the orientation is ignored. The mosaic will automatically rotate the panels to provide the shortest interconnections between panels.
```
NeoMosaic <ColumnMajorAlternatingLayout> mosaic(
PanelWidth,
PanelHeight,
TileWidth,
TileHeight);
```