1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
#include "stdafx.h"
#include "FacingEnum.h"
FacingEnum *FacingEnum::DOWN = new FacingEnum(0, 1, 0, -1, 0);
FacingEnum *FacingEnum::UP = new FacingEnum(1, 0, 0, 1, 0);
FacingEnum *FacingEnum::NORTH = new FacingEnum(2, 3, 0, 0, -1);
FacingEnum *FacingEnum::SOUTH = new FacingEnum(3, 2, 0, 0, 1);
FacingEnum *FacingEnum::EAST = new FacingEnum(4, 5, -1, 0, 0);
FacingEnum *FacingEnum::WEST = new FacingEnum(5, 4, 1, 0, 0);
FacingEnum *FacingEnum::BY_DATA[6] = {FacingEnum::DOWN,FacingEnum::UP,FacingEnum::NORTH,FacingEnum::SOUTH,FacingEnum::EAST,FacingEnum::WEST};
FacingEnum::FacingEnum(int dataValue, int oppositeIndex, int stepX, int stepY, int stepZ)
: dataValue(dataValue), oppositeIndex(oppositeIndex), stepX(stepX), stepY(stepY), stepZ(stepZ)
{
}
int FacingEnum::getDataValue()
{
return dataValue;
}
FacingEnum *FacingEnum::getOpposite()
{
return BY_DATA[oppositeIndex];
}
int FacingEnum::getStepX()
{
return stepX;
}
int FacingEnum::getStepY()
{
return stepY;
}
int FacingEnum::getStepZ()
{
return stepZ;
}
FacingEnum *FacingEnum::fromData(int data)
{
return BY_DATA[data % 6];
}
|