UNPKG

awv3

Version:
159 lines (137 loc) 4.14 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _slicedToArray2 = require('babel-runtime/helpers/slicedToArray'); var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); exports.min = min; exports.max = max; exports.expand = expand; exports.cross = cross; exports.applyMatrix = applyMatrix; exports.unpack = unpack; var _pako = require('pako'); var _pako2 = _interopRequireDefault(_pako); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function min(vec, v) { vec[0] = Math.min(vec[0], v[0]); vec[1] = Math.min(vec[1], v[1]); vec[2] = Math.min(vec[2], v[2]); } function max(vec, v) { vec[0] = Math.max(vec[0], v[0]); vec[1] = Math.max(vec[1], v[1]); vec[2] = Math.max(vec[2], v[2]); } function expand(vecMin, vecMax, v) { min(vecMin, v); max(vecMax, v); } function cross(vec, v) { var _vec = (0, _slicedToArray3.default)(vec, 3), x = _vec[0], y = _vec[1], z = _vec[2]; vec[0] = y * v[2] - z * v[1]; vec[1] = z * v[0] - x * v[2]; vec[2] = x * v[1] - y * v[0]; } function applyMatrix(vec, e) { var _vec2 = (0, _slicedToArray3.default)(vec, 3), x = _vec2[0], y = _vec2[1], z = _vec2[2]; vec[0] = e[0] * x + e[4] * y + e[8] * z + e[12]; vec[1] = e[1] * x + e[5] * y + e[9] * z + e[13]; vec[2] = e[2] * x + e[6] * y + e[10] * z + e[14]; } function base128decode(buffer) { var charmap = '!#$%()*,.0123456789:;=@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_abcdefghijklmnopqrstuvwxyz{|}~¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎ', bufferSize = buffer.length; if (bufferSize <= 0) return null; var re = bufferSize % 8, size = (bufferSize - re) / 8 * 7 + re; if (re > 0) size--; var r = 0, nc = 0, r1 = 0, t = 0, loc = 0, rs = 8, ls = 7, inx = void 0, decoded = new Uint8Array(size + 1); for (inx = 0; inx < bufferSize; inx++) { loc = charmap.lastIndexOf(buffer[inx]); if (loc != -1) nc = loc; if (rs > 7) { rs = 1; ls = 7; r = nc; continue; } r1 = nc; nc = nc << ls-- & 0xFF; nc = nc | r; r = r1 >> rs++; decoded[t++] = nc; } return decoded; } function utf8ArrayToStr(array) { var out = void 0, i = void 0, len = void 0, c = void 0; var char2 = void 0, char3 = void 0; out = ""; len = array.length; i = 0; while (i < len) { c = array[i++]; switch (c >> 4) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: // 0xxxxxxx out += String.fromCharCode(c); break; case 12: case 13: // 110x xxxx 10xx xxxx char2 = array[i++]; out += String.fromCharCode((c & 0x1F) << 6 | char2 & 0x3F); break; case 14: // 1110 xxxx 10xx xxxx 10xx xxxx char2 = array[i++]; char3 = array[i++]; out += String.fromCharCode((c & 0x0F) << 12 | (char2 & 0x3F) << 6 | (char3 & 0x3F) << 0); break; } } return out; } function decodeBuffer(buffer, length) { var data = ""; if (typeof TextDecoder !== 'undefined') { var dataView = new DataView(buffer.buffer), decoder = new TextDecoder('utf-8'); data = decoder.decode(dataView); } else data = utf8ArrayToStr(buffer); return data.slice(0, length); } function unpack(blob) { var stream = blob.data; if (!(stream instanceof Uint8Array)) stream = base128decode(blob.data); stream = _pako2.default.inflate(stream, { raw: true }); stream = decodeBuffer(stream, blob.length || stream.length); blob.data = JSON.parse(stream); blob.size = stream.length; }