#include "BlockDefinitionMacros.h"

#define DEFAULT_BLOCK_MARKER_SIZE 23.f

// Victor Active Block #1 (w/ circle markers)
START_BLOCK_DEFINITION(LIGHTCUBE1, (44.f,44.f,44.f), ORANGE)
ADD_FACE_CODE(FRONT_FACE,  DEFAULT_BLOCK_MARKER_SIZE, Vision::MARKER_LIGHTCUBE_CIRCLE_FRONT,  PreActionOrientation::UP | PreActionOrientation::DOWN)
ADD_FACE_CODE(BACK_FACE,   DEFAULT_BLOCK_MARKER_SIZE, Vision::MARKER_LIGHTCUBE_CIRCLE_BACK,   PreActionOrientation::UP | PreActionOrientation::DOWN)
ADD_FACE_CODE(LEFT_FACE,   DEFAULT_BLOCK_MARKER_SIZE, Vision::MARKER_LIGHTCUBE_CIRCLE_LEFT,   PreActionOrientation::UP | PreActionOrientation::DOWN)
ADD_FACE_CODE(RIGHT_FACE,  DEFAULT_BLOCK_MARKER_SIZE, Vision::MARKER_LIGHTCUBE_CIRCLE_RIGHT,  PreActionOrientation::UP | PreActionOrientation::DOWN)
ADD_FACE_CODE(TOP_FACE,    DEFAULT_BLOCK_MARKER_SIZE, Vision::MARKER_LIGHTCUBE_CIRCLE_TOP,    PreActionOrientation::NONE)
ADD_FACE_CODE(BOTTOM_FACE, DEFAULT_BLOCK_MARKER_SIZE, Vision::MARKER_LIGHTCUBE_CIRCLE_BOTTOM, PreActionOrientation::ALL)
END_BLOCK_DEFINITION

// Victor Active Block #2 (w/ square markers)
START_BLOCK_DEFINITION(LIGHTCUBE2, (44.f,44.f,44.f), YELLOW)
ADD_FACE_CODE(FRONT_FACE,  DEFAULT_BLOCK_MARKER_SIZE, Vision::MARKER_LIGHTCUBE_SQUARE_FRONT,  PreActionOrientation::UP | PreActionOrientation::DOWN)
ADD_FACE_CODE(BACK_FACE,   DEFAULT_BLOCK_MARKER_SIZE, Vision::MARKER_LIGHTCUBE_SQUARE_BACK,   PreActionOrientation::UP | PreActionOrientation::DOWN)
ADD_FACE_CODE(LEFT_FACE,   DEFAULT_BLOCK_MARKER_SIZE, Vision::MARKER_LIGHTCUBE_SQUARE_LEFT,   PreActionOrientation::UP | PreActionOrientation::DOWN)
ADD_FACE_CODE(RIGHT_FACE,  DEFAULT_BLOCK_MARKER_SIZE, Vision::MARKER_LIGHTCUBE_SQUARE_RIGHT,  PreActionOrientation::UP | PreActionOrientation::DOWN)
ADD_FACE_CODE(TOP_FACE,    DEFAULT_BLOCK_MARKER_SIZE, Vision::MARKER_LIGHTCUBE_SQUARE_TOP,    PreActionOrientation::NONE)
ADD_FACE_CODE(BOTTOM_FACE, DEFAULT_BLOCK_MARKER_SIZE, Vision::MARKER_LIGHTCUBE_SQUARE_BOTTOM, PreActionOrientation::ALL)
END_BLOCK_DEFINITION

// Victor Active Block #3 (light-on-dark markers)
START_BLOCK_DEFINITION(LIGHTCUBE3, (44.f,44.f,44.f), RED)
ADD_FACE_CODE(FRONT_FACE,  DEFAULT_BLOCK_MARKER_SIZE, Vision::MARKER_LIGHTCUBEK_LIGHTONDARK_FRONT,  PreActionOrientation::UP | PreActionOrientation::DOWN)
ADD_FACE_CODE(BACK_FACE,   DEFAULT_BLOCK_MARKER_SIZE, Vision::MARKER_LIGHTCUBEK_LIGHTONDARK_BACK,   PreActionOrientation::UP | PreActionOrientation::DOWN)
ADD_FACE_CODE(LEFT_FACE,   DEFAULT_BLOCK_MARKER_SIZE, Vision::MARKER_LIGHTCUBEK_LIGHTONDARK_LEFT,   PreActionOrientation::UP | PreActionOrientation::DOWN)
ADD_FACE_CODE(RIGHT_FACE,  DEFAULT_BLOCK_MARKER_SIZE, Vision::MARKER_LIGHTCUBEK_LIGHTONDARK_RIGHT,  PreActionOrientation::UP | PreActionOrientation::DOWN)
ADD_FACE_CODE(TOP_FACE,    DEFAULT_BLOCK_MARKER_SIZE, Vision::MARKER_LIGHTCUBEK_LIGHTONDARK_TOP,    PreActionOrientation::NONE)
ADD_FACE_CODE(BOTTOM_FACE, DEFAULT_BLOCK_MARKER_SIZE, Vision::MARKER_LIGHTCUBEK_LIGHTONDARK_BOTTOM, PreActionOrientation::ALL)
END_BLOCK_DEFINITION

// "Ghost" Active Block - NOT FOR USE IN BLOCKWORLD
START_BLOCK_DEFINITION(LIGHTCUBE_GHOST, (44.f,44.f,44.f), WHITE)
ADD_ALL_FACES(DEFAULT_BLOCK_MARKER_SIZE, Vision::MARKER_UNKNOWN)
END_BLOCK_DEFINITION

#undef DEFAULT_BLOCK_MARKER_SIZE
