forked from uyras/partsEngine
-
Notifications
You must be signed in to change notification settings - Fork 0
/
honeycombspinicecell.cpp
63 lines (52 loc) · 1.26 KB
/
honeycombspinicecell.cpp
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include "honeycombspinicecell.h"
HoneycombSpinIceCell::HoneycombSpinIceCell()
{
}
HoneycombSpinIceCell::~HoneycombSpinIceCell()
{
}
void HoneycombSpinIceCell::rotateClockWise()
{
Part *part1 = this->parts[5], *part2 = this->parts[0];
int i=0;
do {
if (part2->m.scalar((part1->pos) - (part2->pos))<0){
part2->rotate();
}
i++;
part1 = this->parts[i-1];
part2 = this->parts[i];
} while (i<6);
}
void HoneycombSpinIceCell::rotateAntiClockWise()
{
Part *part1 = this->parts[5], *part2 = this->parts[0];
int i=0;
do {
if (part2->m.scalar(part1->pos - part2->pos)>0){
part2->rotate();
}
i++;
part1 = this->parts[i-1];
part2 = this->parts[i];
} while (i<6);
}
void HoneycombSpinIceCell::rotateChaotic()
{
Part *part1 = this->parts[5], *part2 = this->parts[0];
int i=0;
do {
if (i%2==0){
if (part2->m.scalar(part1->pos - part2->pos)>0){
part2->rotate();
}
} else {
if (part2->m.scalar(part1->pos - part2->pos)<0){
part2->rotate();
}
}
i++;
part1 = this->parts[i-1];
part2 = this->parts[i];
} while (i<6);
}