@woosh/meep-engine
Version:
Pure JavaScript game engine. Fully featured and production ready.
39 lines (31 loc) • 1.4 kB
JavaScript
const _lut_array_buffer = new ArrayBuffer(84);
/**
* Mapping from 3 plane bitfield, corresponding to intersection point of the planes
* @type {number[]}
*/
export const triplanar_corner_mapping = new Uint8Array(_lut_array_buffer, 0, 43);
triplanar_corner_mapping[0b010101] = 0;
triplanar_corner_mapping[0b100101] = 1;
triplanar_corner_mapping[0b011001] = 2;
triplanar_corner_mapping[0b101001] = 3;
triplanar_corner_mapping[0b010110] = 4;
triplanar_corner_mapping[0b100110] = 5;
triplanar_corner_mapping[0b011010] = 6;
triplanar_corner_mapping[0b101010] = 7;
/**
* Mapping from 2 plane bitfield to 2 corner bitfield, corresponding to corner indices of intersecting planes
* @type {number[]}
*/
export const biplanar_edge_mapping = new Uint8Array(_lut_array_buffer, 43, 41);
biplanar_edge_mapping[0b000101] = 0 | (1 << 3);
biplanar_edge_mapping[0b000110] = 4 | (5 << 3);
biplanar_edge_mapping[0b001001] = 2 | (3 << 3);
biplanar_edge_mapping[0b001010] = 6 | (7 << 3);
biplanar_edge_mapping[0b010100] = 0 | (4 << 3);
biplanar_edge_mapping[0b011000] = 2 | (6 << 3);
biplanar_edge_mapping[0b100100] = 1 | (5 << 3);
biplanar_edge_mapping[0b101000] = 3 | (7 << 3);
biplanar_edge_mapping[0b010001] = 0 | (2 << 3);
biplanar_edge_mapping[0b010010] = 4 | (6 << 3);
biplanar_edge_mapping[0b100001] = 1 | (3 << 3);
biplanar_edge_mapping[0b100010] = 5 | (7 << 3);