UNPKG

bytev-charts-beta

Version:

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

175 lines (143 loc) 6.93 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.uint16-array.js"; import "core-js/modules/es.typed-array.int8-array.js"; import "core-js/modules/es.array-buffer.constructor.js"; console.warn("THREE.DRACOExporter: 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."); /** * Export draco compressed files from threejs geometry objects. * * Draco files are compressed and usually are smaller than conventional 3D file formats. * * The exporter receives a options object containing * - decodeSpeed, indicates how to tune the encoder regarding decode speed (0 gives better speed but worst quality) * - encodeSpeed, indicates how to tune the encoder parameters (0 gives better speed but worst quality) * - encoderMethod * - quantization, indicates the presision of each type of data stored in the draco file in the order (POSITION, NORMAL, COLOR, TEX_COORD, GENERIC) * - exportUvs * - exportNormals */ /* global DracoEncoderModule */ THREE.DRACOExporter = function () {}; THREE.DRACOExporter.prototype = { constructor: THREE.DRACOExporter, parse: function parse(geometry, options) { if (DracoEncoderModule === undefined) { throw new Error('THREE.DRACOExporter: required the draco_decoder to work.'); } if (options === undefined) { options = { decodeSpeed: 5, encodeSpeed: 5, encoderMethod: THREE.DRACOExporter.MESH_EDGEBREAKER_ENCODING, quantization: [16, 8, 8, 8, 8], exportUvs: true, exportNormals: true, exportColor: false }; } var dracoEncoder = DracoEncoderModule(); var encoder = new dracoEncoder.Encoder(); var builder = new dracoEncoder.MeshBuilder(); var mesh = new dracoEncoder.Mesh(); if (geometry.isGeometry === true) { var bufferGeometry = new THREE.BufferGeometry(); bufferGeometry.fromGeometry(geometry); geometry = bufferGeometry; } if (geometry.isBufferGeometry !== true) { throw new Error('THREE.DRACOExporter.parse(geometry, options): geometry is not a THREE.Geometry or THREE.BufferGeometry instance.'); } var vertices = geometry.getAttribute('position'); builder.AddFloatAttributeToMesh(mesh, dracoEncoder.POSITION, vertices.count, vertices.itemSize, vertices.array); var faces = geometry.getIndex(); if (faces !== null) { builder.AddFacesToMesh(mesh, faces.count / 3, faces.array); } else { var faces = new (vertices.count > 65535 ? Uint32Array : Uint16Array)(vertices.count); for (var i = 0; i < faces.length; i++) { faces[i] = i; } builder.AddFacesToMesh(mesh, vertices.count, faces); } if (options.exportNormals === true) { var normals = geometry.getAttribute('normal'); if (normals !== undefined) { builder.AddFloatAttributeToMesh(mesh, dracoEncoder.NORMAL, normals.count, normals.itemSize, normals.array); } } if (options.exportUvs === true) { var uvs = geometry.getAttribute('uv'); if (uvs !== undefined) { builder.AddFloatAttributeToMesh(mesh, dracoEncoder.TEX_COORD, uvs.count, uvs.itemSize, uvs.array); } } if (options.exportColor === true) { var colors = geometry.getAttribute('color'); if (colors !== undefined) { builder.AddFloatAttributeToMesh(mesh, dracoEncoder.COLOR, colors.count, colors.itemSize, colors.array); } } //Compress using draco encoder var encodedData = new dracoEncoder.DracoInt8Array(); //Sets the desired encoding and decoding speed for the given options from 0 (slowest speed, but the best compression) to 10 (fastest, but the worst compression). encoder.SetSpeedOptions(options.encodeSpeed || 5, options.decodeSpeed || 5); // Sets the desired encoding method for a given geometry. if (options.encoderMethod !== undefined) { encoder.SetEncodingMethod(options.encoderMethod); } // Sets the quantization (number of bits used to represent) compression options for a named attribute. // The attribute values will be quantized in a box defined by the maximum extent of the attribute values. if (options.quantization !== undefined) { for (var i = 0; i < 5; i++) { if (options.quantization[i] !== undefined) { encoder.SetAttributeQuantization(i, options.quantization[i]); } } } var length = encoder.EncodeMeshToDracoBuffer(mesh, encodedData); dracoEncoder.destroy(mesh); if (length === 0) { throw new Error('THREE.DRACOExporter: Draco encoding failed.'); } //Copy encoded data to buffer. var outputData = new Int8Array(new ArrayBuffer(length)); for (var i = 0; i < length; i++) { outputData[i] = encodedData.GetValue(i); } dracoEncoder.destroy(encodedData); dracoEncoder.destroy(encoder); dracoEncoder.destroy(builder); return outputData; } }; // Encoder methods THREE.DRACOExporter.MESH_EDGEBREAKER_ENCODING = 1; THREE.DRACOExporter.MESH_SEQUENTIAL_ENCODING = 0; // Geometry type THREE.DRACOExporter.POINT_CLOUD = 0; THREE.DRACOExporter.TRIANGULAR_MESH = 1; // Attribute type THREE.DRACOExporter.INVALID = -1; THREE.DRACOExporter.POSITION = 0; THREE.DRACOExporter.NORMAL = 1; THREE.DRACOExporter.COLOR = 2; THREE.DRACOExporter.TEX_COORD = 3; THREE.DRACOExporter.GENERIC = 4;