85 lines
1.7 KiB
TypeScript
85 lines
1.7 KiB
TypeScript
/** * A hand-written 3d model of a cube.
|
|
*
|
|
* If this ever needs to be more than this, consider moving it to a
|
|
* proper .obj model.
|
|
*/
|
|
const Cube = {
|
|
// prettier-ignore
|
|
vertices: new Float32Array([
|
|
-1.0, -1.0, 1.0,
|
|
1.0, -1.0, 1.0,
|
|
1.0, 1.0, 1.0,
|
|
-1.0, 1.0, 1.0,
|
|
|
|
-1.0, -1.0, -1.0,
|
|
-1.0, 1.0, -1.0,
|
|
1.0, 1.0, -1.0,
|
|
1.0, -1.0, -1.0,
|
|
|
|
-1.0, 1.0, -1.0,
|
|
-1.0, 1.0, 1.0,
|
|
1.0, 1.0, 1.0,
|
|
1.0, 1.0, -1.0,
|
|
|
|
-1.0, -1.0, -1.0,
|
|
1.0, -1.0, -1.0,
|
|
1.0, -1.0, 1.0,
|
|
-1.0, -1.0, 1.0,
|
|
|
|
1.0, -1.0, -1.0,
|
|
1.0, 1.0, -1.0,
|
|
1.0, 1.0, 1.0,
|
|
1.0, -1.0, 1.0,
|
|
|
|
-1.0, -1.0, -1.0,
|
|
-1.0, -1.0, 1.0,
|
|
-1.0, 1.0, 1.0,
|
|
-1.0, 1.0, -1.0,
|
|
]),
|
|
|
|
// prettier-ignore
|
|
indices: new Uint16Array([
|
|
0, 1, 2, 0, 2, 3,
|
|
4, 5, 6, 4, 6, 7,
|
|
8, 9, 10, 8, 10, 11,
|
|
12, 13, 14, 12, 14, 15,
|
|
16, 17, 18, 16, 18, 19,
|
|
20, 21, 22, 20, 22, 23,
|
|
]),
|
|
|
|
// prettier-ignore
|
|
normals: new Float32Array([
|
|
0.0, 0.0, 1.0,
|
|
0.0, 0.0, 1.0,
|
|
0.0, 0.0, 1.0,
|
|
0.0, 0.0, 1.0,
|
|
|
|
0.0, 0.0, -1.0,
|
|
0.0, 0.0, -1.0,
|
|
0.0, 0.0, -1.0,
|
|
0.0, 0.0, -1.0,
|
|
|
|
0.0, 1.0, 0.0,
|
|
0.0, 1.0, 0.0,
|
|
0.0, 1.0, 0.0,
|
|
0.0, 1.0, 0.0,
|
|
|
|
0.0, -1.0, 0.0,
|
|
0.0, -1.0, 0.0,
|
|
0.0, -1.0, 0.0,
|
|
0.0, -1.0, 0.0,
|
|
|
|
1.0, 0.0, 0.0,
|
|
1.0, 0.0, 0.0,
|
|
1.0, 0.0, 0.0,
|
|
1.0, 0.0, 0.0,
|
|
|
|
-1.0, 0.0, 0.0,
|
|
-1.0, 0.0, 0.0,
|
|
-1.0, 0.0, 0.0,
|
|
-1.0, 0.0, 0.0
|
|
]),
|
|
};
|
|
|
|
export { Cube };
|