UNPKG

bytev-charts

Version:

基于echarts和JavaScript及ES6封装的一个可以直接调用的图表组件库,内置主题设计,简单快捷,且支持用户自定义配置; npm 安装方式: npm install bytev-charts 若启动提示还需额外install插件,则运行 npm install @babel/runtime-corejs2 即可;

219 lines (196 loc) 6.91 kB
import "core-js/modules/es.array.iterator.js"; import "core-js/modules/es.array-buffer.slice.js"; import "core-js/modules/es.object.to-string.js"; import "core-js/modules/es.typed-array.uint32-array.js"; import "core-js/modules/es.typed-array.copy-within.js"; import "core-js/modules/es.typed-array.every.js"; import "core-js/modules/es.typed-array.fill.js"; import "core-js/modules/es.typed-array.filter.js"; import "core-js/modules/es.typed-array.find.js"; import "core-js/modules/es.typed-array.find-index.js"; import "core-js/modules/es.typed-array.for-each.js"; import "core-js/modules/es.typed-array.includes.js"; import "core-js/modules/es.typed-array.index-of.js"; import "core-js/modules/es.typed-array.iterator.js"; import "core-js/modules/es.typed-array.join.js"; import "core-js/modules/es.typed-array.last-index-of.js"; import "core-js/modules/es.typed-array.map.js"; import "core-js/modules/es.typed-array.reduce.js"; import "core-js/modules/es.typed-array.reduce-right.js"; import "core-js/modules/es.typed-array.reverse.js"; import "core-js/modules/es.typed-array.set.js"; import "core-js/modules/es.typed-array.slice.js"; import "core-js/modules/es.typed-array.some.js"; import "core-js/modules/es.typed-array.sort.js"; import "core-js/modules/es.typed-array.subarray.js"; import "core-js/modules/es.typed-array.to-locale-string.js"; import "core-js/modules/es.typed-array.to-string.js"; import "core-js/modules/es.typed-array.uint8-array.js"; import _Object$assign from "@babel/runtime-corejs2/core-js/object/assign"; import _Object$create from "@babel/runtime-corejs2/core-js/object/create"; console.warn("THREE.PVRLoader: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/#manual/en/introduction/Installation."); /* * PVR v2 (legacy) parser * TODO : Add Support for PVR v3 format * TODO : implement loadMipmaps option */ THREE.PVRLoader = function (manager) { THREE.CompressedTextureLoader.call(this, manager); }; THREE.PVRLoader.prototype = _Object$assign(_Object$create(THREE.CompressedTextureLoader.prototype), { constructor: THREE.PVRLoader, parse: function parse(buffer, loadMipmaps) { var headerLengthInt = 13; var header = new Uint32Array(buffer, 0, headerLengthInt); var pvrDatas = { buffer: buffer, header: header, loadMipmaps: loadMipmaps }; if (header[0] === 0x03525650) { // PVR v3 return THREE.PVRLoader._parseV3(pvrDatas); } else if (header[11] === 0x21525650) { // PVR v2 return THREE.PVRLoader._parseV2(pvrDatas); } else { console.error('THREE.PVRLoader: Unknown PVR format.'); } } }); THREE.PVRLoader._parseV3 = function (pvrDatas) { var header = pvrDatas.header; var bpp, format; var metaLen = header[12], pixelFormat = header[2], height = header[6], width = header[7], // numSurfs = header[ 9 ], numFaces = header[10], numMipmaps = header[11]; switch (pixelFormat) { case 0: // PVRTC 2bpp RGB bpp = 2; format = THREE.RGB_PVRTC_2BPPV1_Format; break; case 1: // PVRTC 2bpp RGBA bpp = 2; format = THREE.RGBA_PVRTC_2BPPV1_Format; break; case 2: // PVRTC 4bpp RGB bpp = 4; format = THREE.RGB_PVRTC_4BPPV1_Format; break; case 3: // PVRTC 4bpp RGBA bpp = 4; format = THREE.RGBA_PVRTC_4BPPV1_Format; break; default: console.error('THREE.PVRLoader: Unsupported PVR format:', pixelFormat); } pvrDatas.dataPtr = 52 + metaLen; pvrDatas.bpp = bpp; pvrDatas.format = format; pvrDatas.width = width; pvrDatas.height = height; pvrDatas.numSurfaces = numFaces; pvrDatas.numMipmaps = numMipmaps; pvrDatas.isCubemap = numFaces === 6; return THREE.PVRLoader._extract(pvrDatas); }; THREE.PVRLoader._parseV2 = function (pvrDatas) { var header = pvrDatas.header; var headerLength = header[0], height = header[1], width = header[2], numMipmaps = header[3], flags = header[4], // dataLength = header[ 5 ], // bpp = header[ 6 ], // bitmaskRed = header[ 7 ], // bitmaskGreen = header[ 8 ], // bitmaskBlue = header[ 9 ], bitmaskAlpha = header[10], // pvrTag = header[ 11 ], numSurfs = header[12]; var TYPE_MASK = 0xff; var PVRTC_2 = 24, PVRTC_4 = 25; var formatFlags = flags & TYPE_MASK; var bpp, format; var _hasAlpha = bitmaskAlpha > 0; if (formatFlags === PVRTC_4) { format = _hasAlpha ? THREE.RGBA_PVRTC_4BPPV1_Format : THREE.RGB_PVRTC_4BPPV1_Format; bpp = 4; } else if (formatFlags === PVRTC_2) { format = _hasAlpha ? THREE.RGBA_PVRTC_2BPPV1_Format : THREE.RGB_PVRTC_2BPPV1_Format; bpp = 2; } else { console.error('THREE.PVRLoader: Unknown PVR format:', formatFlags); } pvrDatas.dataPtr = headerLength; pvrDatas.bpp = bpp; pvrDatas.format = format; pvrDatas.width = width; pvrDatas.height = height; pvrDatas.numSurfaces = numSurfs; pvrDatas.numMipmaps = numMipmaps + 1; // guess cubemap type seems tricky in v2 // it juste a pvr containing 6 surface (no explicit cubemap type) pvrDatas.isCubemap = numSurfs === 6; return THREE.PVRLoader._extract(pvrDatas); }; THREE.PVRLoader._extract = function (pvrDatas) { var pvr = { mipmaps: [], width: pvrDatas.width, height: pvrDatas.height, format: pvrDatas.format, mipmapCount: pvrDatas.numMipmaps, isCubemap: pvrDatas.isCubemap }; var buffer = pvrDatas.buffer; var dataOffset = pvrDatas.dataPtr, bpp = pvrDatas.bpp, numSurfs = pvrDatas.numSurfaces, dataSize = 0, blockSize = 0, blockWidth = 0, blockHeight = 0, widthBlocks = 0, heightBlocks = 0; if (bpp === 2) { blockWidth = 8; blockHeight = 4; } else { blockWidth = 4; blockHeight = 4; } blockSize = blockWidth * blockHeight * bpp / 8; pvr.mipmaps.length = pvrDatas.numMipmaps * numSurfs; var mipLevel = 0; while (mipLevel < pvrDatas.numMipmaps) { var sWidth = pvrDatas.width >> mipLevel, sHeight = pvrDatas.height >> mipLevel; widthBlocks = sWidth / blockWidth; heightBlocks = sHeight / blockHeight; // Clamp to minimum number of blocks if (widthBlocks < 2) widthBlocks = 2; if (heightBlocks < 2) heightBlocks = 2; dataSize = widthBlocks * heightBlocks * blockSize; for (var surfIndex = 0; surfIndex < numSurfs; surfIndex++) { var byteArray = new Uint8Array(buffer, dataOffset, dataSize); var mipmap = { data: byteArray, width: sWidth, height: sHeight }; pvr.mipmaps[surfIndex * pvrDatas.numMipmaps + mipLevel] = mipmap; dataOffset += dataSize; } mipLevel++; } return pvr; };