speeduino/table.h

48 lines
837 B
C
Raw Normal View History

2013-02-04 13:05:35 -08:00
/*
This file is used for everything related to maps/tables including their definition, functions etc
*/
2013-07-09 05:12:35 -07:00
#include <Arduino.h>
2014-01-07 00:01:14 -08:00
struct table2D {
static byte xSize;
2014-01-07 00:01:14 -08:00
byte *values;
int *axisX;
2014-01-07 00:01:14 -08:00
};
void table2D_setSize(struct table2D targetTable, byte newSize);
2014-01-07 00:01:14 -08:00
struct table2Dx10 {
const static byte xSize = 10;
byte values[xSize];
int axisX[xSize];
};
struct table3D {
2013-02-04 13:05:35 -08:00
//All tables must be the same size for simplicity
const static byte xSize = 8;
const static byte ySize = 8;
2013-02-04 13:05:35 -08:00
2013-07-09 05:12:35 -07:00
byte values[ySize][xSize];
2013-02-10 16:34:30 -08:00
int axisX[xSize];
int axisY[ySize];
2013-02-04 13:05:35 -08:00
};
/*
2014-01-07 00:01:14 -08:00
3D Tables have an origin (0,0) in the top left hand corner. Vertical axis is expressed first.
Eg: 2x2 table
-----
|2 7|
|1 4|
-----
(0,1) = 7
(0,0) = 2
(1,0) = 1
*/
2014-01-07 00:01:14 -08:00
int get3DTableValue(struct table3D, int, int);
int table2D_getValue(struct table2D, int);