65 lines
No EOL
1.8 KiB
JavaScript
65 lines
No EOL
1.8 KiB
JavaScript
import { Mesh } from '../core/Mesh.js'
|
|
|
|
export const Cube = () => {
|
|
|
|
const data = [
|
|
-1.0, 1.0, -1.0, 0.5, 0.5, 0.5,
|
|
-1.0, 1.0, 1.0, 0.5, 0.5, 0.5,
|
|
1.0, 1.0, 1.0, 0.5, 0.5, 0.5,
|
|
1.0, 1.0, -1.0, 0.5, 0.5, 0.5,
|
|
-1.0, 1.0, 1.0, 0.75, 0.25, 0.5,
|
|
-1.0, -1.0, 1.0, 0.75, 0.25, 0.5,
|
|
-1.0, -1.0, -1.0, 0.75, 0.25, 0.5,
|
|
-1.0, 1.0, -1.0, 0.75, 0.25, 0.5,
|
|
1.0, 1.0, 1.0, 0.25, 0.25, 0.75,
|
|
1.0, -1.0, 1.0, 0.25, 0.25, 0.75,
|
|
1.0, -1.0, -1.0, 0.25, 0.25, 0.75,
|
|
1.0, 1.0, -1.0, 0.25, 0.25, 0.75,
|
|
1.0, 1.0, 1.0, 1.0, 0.0, 0.15,
|
|
1.0, -1.0, 1.0, 1.0, 0.0, 0.15,
|
|
-1.0, -1.0, 1.0, 1.0, 0.0, 0.15,
|
|
-1.0, 1.0, 1.0, 1.0, 0.0, 0.15,
|
|
1.0, 1.0, -1.0, 0.0, 1.0, 0.15,
|
|
1.0, -1.0, -1.0, 0.0, 1.0, 0.15,
|
|
-1.0, -1.0, -1.0, 0.0, 1.0, 0.15,
|
|
-1.0, 1.0, -1.0, 0.0, 1.0, 0.15,
|
|
-1.0, -1.0, -1.0, 0.5, 0.5, 1.0,
|
|
-1.0, -1.0, 1.0, 0.5, 0.5, 1.0,
|
|
1.0, -1.0, 1.0, 0.5, 0.5, 1.0,
|
|
1.0, -1.0, -1.0, 0.5, 0.5, 1.0,
|
|
];
|
|
|
|
const indicies = [
|
|
0, 1, 2,
|
|
0, 2, 3,
|
|
5, 4, 6,
|
|
6, 4, 7,
|
|
8, 9, 10,
|
|
8, 10, 11,
|
|
13, 12, 14,
|
|
15, 14, 12,
|
|
16, 17, 18,
|
|
16, 18, 19,
|
|
21, 20, 22,
|
|
22, 20, 23
|
|
];
|
|
|
|
const verticies = []
|
|
const colors = []
|
|
|
|
for (let x = 0; x < indicies.length; x++) {
|
|
var i = indicies[x]
|
|
verticies.push(data[i * 6 + 2])
|
|
verticies.push(data[i * 6 + 1])
|
|
verticies.push(data[i * 6 + 0])
|
|
colors.push(data[i * 6 + 3])
|
|
colors.push(data[i * 6 + 4])
|
|
colors.push(data[i * 6 + 5])
|
|
}
|
|
|
|
return new Mesh(indicies.length)
|
|
.store(verticies, 3)
|
|
.store(colors, 3)
|
|
.finish()
|
|
|
|
} |