1 | import {ccw} from '../counter-clockwise';
|
2 | import {centroid} from '../centroid';
|
3 | import {point as pt} from './point';
|
4 |
|
5 | export function cube(cubes, options, point, angles){
|
6 | for (var i = cubes.length - 1; i >= 0; i--) {
|
7 |
|
8 | var cube = cubes[i];
|
9 |
|
10 | var vertices = pt([
|
11 | cube[0],
|
12 | cube[1],
|
13 | cube[2],
|
14 | cube[3],
|
15 | cube[4],
|
16 | cube[5],
|
17 | cube[6],
|
18 | cube[7]
|
19 | ], options, point, angles);
|
20 |
|
21 | var v1 = vertices[0];
|
22 | var v2 = vertices[1];
|
23 | var v3 = vertices[2];
|
24 | var v4 = vertices[3];
|
25 | var v5 = vertices[4];
|
26 | var v6 = vertices[5];
|
27 | var v7 = vertices[6];
|
28 | var v8 = vertices[7];
|
29 |
|
30 | var front = [v1, v2, v3, v4];
|
31 | var back = [v8, v7, v6, v5];
|
32 | var left = [v5, v6, v2, v1];
|
33 | var right = [v4, v3, v7, v8];
|
34 | var top = [v5, v1, v4, v8];
|
35 | var bottom = [v2, v6, v7, v3];
|
36 |
|
37 | front.centroid = centroid(front);
|
38 | back.centroid = centroid(back);
|
39 | left.centroid = centroid(left);
|
40 | right.centroid = centroid(right);
|
41 | top.centroid = centroid(top);
|
42 | bottom.centroid = centroid(bottom);
|
43 |
|
44 | front.ccw = ccw(front);
|
45 | back.ccw = ccw(back);
|
46 | left.ccw = ccw(left);
|
47 | right.ccw = ccw(right);
|
48 | top.ccw = ccw(top);
|
49 | bottom.ccw = ccw(bottom);
|
50 |
|
51 | front.face = 'front';
|
52 | back.face = 'back';
|
53 | left.face = 'left';
|
54 | right.face = 'right';
|
55 | top.face = 'top';
|
56 | bottom.face = 'bottom';
|
57 |
|
58 | var faces = [front, back, left, right, top, bottom];
|
59 |
|
60 | cube.faces = faces;
|
61 | cube.centroid = {x: (left.centroid.x + right.centroid.x)/2, y: (top.centroid.y + bottom.centroid.y)/2, z: (front.centroid.z + back.centroid.z/2)};
|
62 | }
|
63 | return cubes;
|
64 | }
|