UNPKG

dy3dmap

Version:

1,655 lines (1,471 loc) 2.16 MB
(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(require("echarts")); else if(typeof define === 'function' && define.amd) define(["echarts"], factory); else if(typeof exports === 'object') exports["echarts-gl"] = factory(require("echarts")); else root["echarts-gl"] = factory(root["echarts"]); })(self, function(__WEBPACK_EXTERNAL_MODULE_echarts_lib_echarts__) { return /******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ var __webpack_modules__ = ({ /***/ "./src/export/all.js": /*!*****************************************!*\ !*** ./src/export/all.js + 360 modules ***! \*****************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { // ESM COMPAT FLAG __webpack_require__.r(__webpack_exports__); // EXTERNAL MODULE: external "echarts" var external_echarts_ = __webpack_require__("echarts/lib/echarts"); ;// CONCATENATED MODULE: ./node_modules/claygl/src/core/mixin/extend.js /** * Extend a sub class from base class * @param {object|Function} makeDefaultOpt default option of this sub class, method of the sub can use this.xxx to access this option * @param {Function} [initialize] Initialize after the sub class is instantiated * @param {Object} [proto] Prototype methods/properties of the sub class * @memberOf clay.core.mixin.extend * @return {Function} */ function derive(makeDefaultOpt, initialize/*optional*/, proto/*optional*/) { if (typeof initialize == 'object') { proto = initialize; initialize = null; } var _super = this; var propList; if (!(makeDefaultOpt instanceof Function)) { // Optimize the property iterate if it have been fixed propList = []; for (var propName in makeDefaultOpt) { if (makeDefaultOpt.hasOwnProperty(propName)) { propList.push(propName); } } } var sub = function(options) { // call super constructor _super.apply(this, arguments); if (makeDefaultOpt instanceof Function) { // Invoke makeDefaultOpt each time if it is a function, So we can make sure each // property in the object will not be shared by mutiple instances extend(this, makeDefaultOpt.call(this, options)); } else { extendWithPropList(this, makeDefaultOpt, propList); } if (this.constructor === sub) { // Initialize function will be called in the order of inherit var initializers = sub.__initializers__; for (var i = 0; i < initializers.length; i++) { initializers[i].apply(this, arguments); } } }; // save super constructor sub.__super__ = _super; // Initialize function will be called after all the super constructor is called if (!_super.__initializers__) { sub.__initializers__ = []; } else { sub.__initializers__ = _super.__initializers__.slice(); } if (initialize) { sub.__initializers__.push(initialize); } var Ctor = function() {}; Ctor.prototype = _super.prototype; sub.prototype = new Ctor(); sub.prototype.constructor = sub; extend(sub.prototype, proto); // extend the derive method as a static method; sub.extend = _super.extend; // DEPCRATED sub.derive = _super.extend; return sub; } function extend(target, source) { if (!source) { return; } for (var name in source) { if (source.hasOwnProperty(name)) { target[name] = source[name]; } } } function extendWithPropList(target, source, propList) { for (var i = 0; i < propList.length; i++) { var propName = propList[i]; target[propName] = source[propName]; } } /** * @alias clay.core.mixin.extend * @mixin */ /* harmony default export */ const mixin_extend = ({ extend: derive, // DEPCRATED derive: derive }); ;// CONCATENATED MODULE: ./node_modules/claygl/src/core/mixin/notifier.js function Handler(action, context) { this.action = action; this.context = context; } /** * @mixin * @alias clay.core.mixin.notifier */ var notifier = { /** * Trigger event * @param {string} name */ trigger: function(name) { if (!this.hasOwnProperty('__handlers__')) { return; } if (!this.__handlers__.hasOwnProperty(name)) { return; } var hdls = this.__handlers__[name]; var l = hdls.length, i = -1, args = arguments; // Optimize advise from backbone switch (args.length) { case 1: while (++i < l) { hdls[i].action.call(hdls[i].context); } return; case 2: while (++i < l) { hdls[i].action.call(hdls[i].context, args[1]); } return; case 3: while (++i < l) { hdls[i].action.call(hdls[i].context, args[1], args[2]); } return; case 4: while (++i < l) { hdls[i].action.call(hdls[i].context, args[1], args[2], args[3]); } return; case 5: while (++i < l) { hdls[i].action.call(hdls[i].context, args[1], args[2], args[3], args[4]); } return; default: while (++i < l) { hdls[i].action.apply(hdls[i].context, Array.prototype.slice.call(args, 1)); } return; } }, /** * Register event handler * @param {string} name * @param {Function} action * @param {Object} [context] * @chainable */ on: function(name, action, context) { if (!name || !action) { return; } var handlers = this.__handlers__ || (this.__handlers__={}); if (!handlers[name]) { handlers[name] = []; } else { if (this.has(name, action)) { return; } } var handler = new Handler(action, context || this); handlers[name].push(handler); return this; }, /** * Register event, event will only be triggered once and then removed * @param {string} name * @param {Function} action * @param {Object} [context] * @chainable */ once: function(name, action, context) { if (!name || !action) { return; } var self = this; function wrapper() { self.off(name, wrapper); action.apply(this, arguments); } return this.on(name, wrapper, context); }, /** * Alias of once('before' + name) * @param {string} name * @param {Function} action * @param {Object} [context] * @chainable */ before: function(name, action, context) { if (!name || !action) { return; } name = 'before' + name; return this.on(name, action, context); }, /** * Alias of once('after' + name) * @param {string} name * @param {Function} action * @param {Object} [context] * @chainable */ after: function(name, action, context) { if (!name || !action) { return; } name = 'after' + name; return this.on(name, action, context); }, /** * Alias of on('success') * @param {Function} action * @param {Object} [context] * @chainable */ success: function(action, context) { return this.once('success', action, context); }, /** * Alias of on('error') * @param {Function} action * @param {Object} [context] * @chainable */ error: function(action, context) { return this.once('error', action, context); }, /** * Remove event listener * @param {Function} action * @param {Object} [context] * @chainable */ off: function(name, action) { var handlers = this.__handlers__ || (this.__handlers__={}); if (!action) { handlers[name] = []; return; } if (handlers[name]) { var hdls = handlers[name]; var retains = []; for (var i = 0; i < hdls.length; i++) { if (action && hdls[i].action !== action) { retains.push(hdls[i]); } } handlers[name] = retains; } return this; }, /** * If registered the event handler * @param {string} name * @param {Function} action * @return {boolean} */ has: function(name, action) { var handlers = this.__handlers__; if (! handlers || ! handlers[name]) { return false; } var hdls = handlers[name]; for (var i = 0; i < hdls.length; i++) { if (hdls[i].action === action) { return true; } } } }; /* harmony default export */ const mixin_notifier = (notifier); ;// CONCATENATED MODULE: ./node_modules/claygl/src/core/util.js var guid = 0; var ArrayProto = Array.prototype; var nativeForEach = ArrayProto.forEach; /** * Util functions * @namespace clay.core.util */ var util = { /** * Generate GUID * @return {number} * @memberOf clay.core.util */ genGUID: function () { return ++guid; }, /** * Relative path to absolute path * @param {string} path * @param {string} basePath * @return {string} * @memberOf clay.core.util */ relative2absolute: function (path, basePath) { if (!basePath || path.match(/^\//)) { return path; } var pathParts = path.split('/'); var basePathParts = basePath.split('/'); var item = pathParts[0]; while(item === '.' || item === '..') { if (item === '..') { basePathParts.pop(); } pathParts.shift(); item = pathParts[0]; } return basePathParts.join('/') + '/' + pathParts.join('/'); }, /** * Extend target with source * @param {Object} target * @param {Object} source * @return {Object} * @memberOf clay.core.util */ extend: function (target, source) { if (source) { for (var name in source) { if (source.hasOwnProperty(name)) { target[name] = source[name]; } } } return target; }, /** * Extend properties to target if not exist. * @param {Object} target * @param {Object} source * @return {Object} * @memberOf clay.core.util */ defaults: function (target, source) { if (source) { for (var propName in source) { if (target[propName] === undefined) { target[propName] = source[propName]; } } } return target; }, /** * Extend properties with a given property list to avoid for..in.. iteration. * @param {Object} target * @param {Object} source * @param {Array.<string>} propList * @return {Object} * @memberOf clay.core.util */ extendWithPropList: function (target, source, propList) { if (source) { for (var i = 0; i < propList.length; i++) { var propName = propList[i]; target[propName] = source[propName]; } } return target; }, /** * Extend properties to target if not exist. With a given property list avoid for..in.. iteration. * @param {Object} target * @param {Object} source * @param {Array.<string>} propList * @return {Object} * @memberOf clay.core.util */ defaultsWithPropList: function (target, source, propList) { if (source) { for (var i = 0; i < propList.length; i++) { var propName = propList[i]; if (target[propName] == null) { target[propName] = source[propName]; } } } return target; }, /** * @param {Object|Array} obj * @param {Function} iterator * @param {Object} [context] * @memberOf clay.core.util */ each: function (obj, iterator, context) { if (!(obj && iterator)) { return; } if (obj.forEach && obj.forEach === nativeForEach) { obj.forEach(iterator, context); } else if (obj.length === + obj.length) { for (var i = 0, len = obj.length; i < len; i++) { iterator.call(context, obj[i], i, obj); } } else { for (var key in obj) { if (obj.hasOwnProperty(key)) { iterator.call(context, obj[key], key, obj); } } } }, /** * Is object * @param {} obj * @return {boolean} * @memberOf clay.core.util */ isObject: function (obj) { return obj === Object(obj); }, /** * Is array ? * @param {} obj * @return {boolean} * @memberOf clay.core.util */ isArray: function (obj) { return Array.isArray(obj); }, /** * Is array like, which have a length property * @param {} obj * @return {boolean} * @memberOf clay.core.util */ isArrayLike: function (obj) { if (!obj) { return false; } else { return obj.length === + obj.length; } }, /** * @param {} obj * @return {} * @memberOf clay.core.util */ clone: function (obj) { if (!util.isObject(obj)) { return obj; } else if (util.isArray(obj)) { return obj.slice(); } else if (util.isArrayLike(obj)) { // is typed array var ret = new obj.constructor(obj.length); for (var i = 0; i < obj.length; i++) { ret[i] = obj[i]; } return ret; } else { return util.extend({}, obj); } } }; /* harmony default export */ const core_util = (util); ;// CONCATENATED MODULE: ./node_modules/claygl/src/core/Base.js /** * Base class of all objects * @constructor * @alias clay.core.Base * @mixes clay.core.mixin.notifier */ var Base = function () { /** * @type {number} */ this.__uid__ = core_util.genGUID(); }; Base.__initializers__ = [ function (opts) { core_util.extend(this, opts); } ]; core_util.extend(Base, mixin_extend); core_util.extend(Base.prototype, mixin_notifier); /* harmony default export */ const core_Base = (Base); ;// CONCATENATED MODULE: ./node_modules/claygl/src/core/GLInfo.js var EXTENSION_LIST = [ 'OES_texture_float', 'OES_texture_half_float', 'OES_texture_float_linear', 'OES_texture_half_float_linear', 'OES_standard_derivatives', 'OES_vertex_array_object', 'OES_element_index_uint', 'WEBGL_compressed_texture_s3tc', 'WEBGL_depth_texture', 'EXT_texture_filter_anisotropic', 'EXT_shader_texture_lod', 'WEBGL_draw_buffers', 'EXT_frag_depth', 'EXT_sRGB', 'ANGLE_instanced_arrays' ]; var PARAMETER_NAMES = [ 'MAX_TEXTURE_SIZE', 'MAX_CUBE_MAP_TEXTURE_SIZE' ]; function GLInfo(_gl) { var extensions = {}; var parameters = {}; // Get webgl extension for (var i = 0; i < EXTENSION_LIST.length; i++) { var extName = EXTENSION_LIST[i]; createExtension(extName); } // Get parameters for (var i = 0; i < PARAMETER_NAMES.length; i++) { var name = PARAMETER_NAMES[i]; parameters[name] = _gl.getParameter(_gl[name]); } this.getExtension = function (name) { if (!(name in extensions)) { createExtension(name); } return extensions[name]; }; this.getParameter = function (name) { return parameters[name]; }; function createExtension(name) { if (_gl.getExtension) { var ext = _gl.getExtension(name); if (!ext) { ext = _gl.getExtension('MOZ_' + name); } if (!ext) { ext = _gl.getExtension('WEBKIT_' + name); } extensions[name] = ext; } } } /* harmony default export */ const core_GLInfo = (GLInfo); ;// CONCATENATED MODULE: ./node_modules/claygl/src/core/glenum.js /** * @namespace clay.core.glenum * @see http://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14 */ /* harmony default export */ const glenum = ({ /* ClearBufferMask */ DEPTH_BUFFER_BIT : 0x00000100, STENCIL_BUFFER_BIT : 0x00000400, COLOR_BUFFER_BIT : 0x00004000, /* BeginMode */ POINTS : 0x0000, LINES : 0x0001, LINE_LOOP : 0x0002, LINE_STRIP : 0x0003, TRIANGLES : 0x0004, TRIANGLE_STRIP : 0x0005, TRIANGLE_FAN : 0x0006, /* AlphaFunction (not supported in ES20) */ /* NEVER */ /* LESS */ /* EQUAL */ /* LEQUAL */ /* GREATER */ /* NOTEQUAL */ /* GEQUAL */ /* ALWAYS */ /* BlendingFactorDest */ ZERO : 0, ONE : 1, SRC_COLOR : 0x0300, ONE_MINUS_SRC_COLOR : 0x0301, SRC_ALPHA : 0x0302, ONE_MINUS_SRC_ALPHA : 0x0303, DST_ALPHA : 0x0304, ONE_MINUS_DST_ALPHA : 0x0305, /* BlendingFactorSrc */ /* ZERO */ /* ONE */ DST_COLOR : 0x0306, ONE_MINUS_DST_COLOR : 0x0307, SRC_ALPHA_SATURATE : 0x0308, /* SRC_ALPHA */ /* ONE_MINUS_SRC_ALPHA */ /* DST_ALPHA */ /* ONE_MINUS_DST_ALPHA */ /* BlendEquationSeparate */ FUNC_ADD : 0x8006, BLEND_EQUATION : 0x8009, BLEND_EQUATION_RGB : 0x8009, /* same as BLEND_EQUATION */ BLEND_EQUATION_ALPHA : 0x883D, /* BlendSubtract */ FUNC_SUBTRACT : 0x800A, FUNC_REVERSE_SUBTRACT : 0x800B, /* Separate Blend Functions */ BLEND_DST_RGB : 0x80C8, BLEND_SRC_RGB : 0x80C9, BLEND_DST_ALPHA : 0x80CA, BLEND_SRC_ALPHA : 0x80CB, CONSTANT_COLOR : 0x8001, ONE_MINUS_CONSTANT_COLOR : 0x8002, CONSTANT_ALPHA : 0x8003, ONE_MINUS_CONSTANT_ALPHA : 0x8004, BLEND_COLOR : 0x8005, /* Buffer Objects */ ARRAY_BUFFER : 0x8892, ELEMENT_ARRAY_BUFFER : 0x8893, ARRAY_BUFFER_BINDING : 0x8894, ELEMENT_ARRAY_BUFFER_BINDING : 0x8895, STREAM_DRAW : 0x88E0, STATIC_DRAW : 0x88E4, DYNAMIC_DRAW : 0x88E8, BUFFER_SIZE : 0x8764, BUFFER_USAGE : 0x8765, CURRENT_VERTEX_ATTRIB : 0x8626, /* CullFaceMode */ FRONT : 0x0404, BACK : 0x0405, FRONT_AND_BACK : 0x0408, /* DepthFunction */ /* NEVER */ /* LESS */ /* EQUAL */ /* LEQUAL */ /* GREATER */ /* NOTEQUAL */ /* GEQUAL */ /* ALWAYS */ /* EnableCap */ /* TEXTURE_2D */ CULL_FACE : 0x0B44, BLEND : 0x0BE2, DITHER : 0x0BD0, STENCIL_TEST : 0x0B90, DEPTH_TEST : 0x0B71, SCISSOR_TEST : 0x0C11, POLYGON_OFFSET_FILL : 0x8037, SAMPLE_ALPHA_TO_COVERAGE : 0x809E, SAMPLE_COVERAGE : 0x80A0, /* ErrorCode */ NO_ERROR : 0, INVALID_ENUM : 0x0500, INVALID_VALUE : 0x0501, INVALID_OPERATION : 0x0502, OUT_OF_MEMORY : 0x0505, /* FrontFaceDirection */ CW : 0x0900, CCW : 0x0901, /* GetPName */ LINE_WIDTH : 0x0B21, ALIASED_POINT_SIZE_RANGE : 0x846D, ALIASED_LINE_WIDTH_RANGE : 0x846E, CULL_FACE_MODE : 0x0B45, FRONT_FACE : 0x0B46, DEPTH_RANGE : 0x0B70, DEPTH_WRITEMASK : 0x0B72, DEPTH_CLEAR_VALUE : 0x0B73, DEPTH_FUNC : 0x0B74, STENCIL_CLEAR_VALUE : 0x0B91, STENCIL_FUNC : 0x0B92, STENCIL_FAIL : 0x0B94, STENCIL_PASS_DEPTH_FAIL : 0x0B95, STENCIL_PASS_DEPTH_PASS : 0x0B96, STENCIL_REF : 0x0B97, STENCIL_VALUE_MASK : 0x0B93, STENCIL_WRITEMASK : 0x0B98, STENCIL_BACK_FUNC : 0x8800, STENCIL_BACK_FAIL : 0x8801, STENCIL_BACK_PASS_DEPTH_FAIL : 0x8802, STENCIL_BACK_PASS_DEPTH_PASS : 0x8803, STENCIL_BACK_REF : 0x8CA3, STENCIL_BACK_VALUE_MASK : 0x8CA4, STENCIL_BACK_WRITEMASK : 0x8CA5, VIEWPORT : 0x0BA2, SCISSOR_BOX : 0x0C10, /* SCISSOR_TEST */ COLOR_CLEAR_VALUE : 0x0C22, COLOR_WRITEMASK : 0x0C23, UNPACK_ALIGNMENT : 0x0CF5, PACK_ALIGNMENT : 0x0D05, MAX_TEXTURE_SIZE : 0x0D33, MAX_VIEWPORT_DIMS : 0x0D3A, SUBPIXEL_BITS : 0x0D50, RED_BITS : 0x0D52, GREEN_BITS : 0x0D53, BLUE_BITS : 0x0D54, ALPHA_BITS : 0x0D55, DEPTH_BITS : 0x0D56, STENCIL_BITS : 0x0D57, POLYGON_OFFSET_UNITS : 0x2A00, /* POLYGON_OFFSET_FILL */ POLYGON_OFFSET_FACTOR : 0x8038, TEXTURE_BINDING_2D : 0x8069, SAMPLE_BUFFERS : 0x80A8, SAMPLES : 0x80A9, SAMPLE_COVERAGE_VALUE : 0x80AA, SAMPLE_COVERAGE_INVERT : 0x80AB, /* GetTextureParameter */ /* TEXTURE_MAG_FILTER */ /* TEXTURE_MIN_FILTER */ /* TEXTURE_WRAP_S */ /* TEXTURE_WRAP_T */ COMPRESSED_TEXTURE_FORMATS : 0x86A3, /* HintMode */ DONT_CARE : 0x1100, FASTEST : 0x1101, NICEST : 0x1102, /* HintTarget */ GENERATE_MIPMAP_HINT : 0x8192, /* DataType */ BYTE : 0x1400, UNSIGNED_BYTE : 0x1401, SHORT : 0x1402, UNSIGNED_SHORT : 0x1403, INT : 0x1404, UNSIGNED_INT : 0x1405, FLOAT : 0x1406, /* PixelFormat */ DEPTH_COMPONENT : 0x1902, ALPHA : 0x1906, RGB : 0x1907, RGBA : 0x1908, LUMINANCE : 0x1909, LUMINANCE_ALPHA : 0x190A, /* PixelType */ /* UNSIGNED_BYTE */ UNSIGNED_SHORT_4_4_4_4 : 0x8033, UNSIGNED_SHORT_5_5_5_1 : 0x8034, UNSIGNED_SHORT_5_6_5 : 0x8363, /* Shaders */ FRAGMENT_SHADER : 0x8B30, VERTEX_SHADER : 0x8B31, MAX_VERTEX_ATTRIBS : 0x8869, MAX_VERTEX_UNIFORM_VECTORS : 0x8DFB, MAX_VARYING_VECTORS : 0x8DFC, MAX_COMBINED_TEXTURE_IMAGE_UNITS : 0x8B4D, MAX_VERTEX_TEXTURE_IMAGE_UNITS : 0x8B4C, MAX_TEXTURE_IMAGE_UNITS : 0x8872, MAX_FRAGMENT_UNIFORM_VECTORS : 0x8DFD, SHADER_TYPE : 0x8B4F, DELETE_STATUS : 0x8B80, LINK_STATUS : 0x8B82, VALIDATE_STATUS : 0x8B83, ATTACHED_SHADERS : 0x8B85, ACTIVE_UNIFORMS : 0x8B86, ACTIVE_ATTRIBUTES : 0x8B89, SHADING_LANGUAGE_VERSION : 0x8B8C, CURRENT_PROGRAM : 0x8B8D, /* StencilFunction */ NEVER : 0x0200, LESS : 0x0201, EQUAL : 0x0202, LEQUAL : 0x0203, GREATER : 0x0204, NOTEQUAL : 0x0205, GEQUAL : 0x0206, ALWAYS : 0x0207, /* StencilOp */ /* ZERO */ KEEP : 0x1E00, REPLACE : 0x1E01, INCR : 0x1E02, DECR : 0x1E03, INVERT : 0x150A, INCR_WRAP : 0x8507, DECR_WRAP : 0x8508, /* StringName */ VENDOR : 0x1F00, RENDERER : 0x1F01, VERSION : 0x1F02, /* TextureMagFilter */ NEAREST : 0x2600, LINEAR : 0x2601, /* TextureMinFilter */ /* NEAREST */ /* LINEAR */ NEAREST_MIPMAP_NEAREST : 0x2700, LINEAR_MIPMAP_NEAREST : 0x2701, NEAREST_MIPMAP_LINEAR : 0x2702, LINEAR_MIPMAP_LINEAR : 0x2703, /* TextureParameterName */ TEXTURE_MAG_FILTER : 0x2800, TEXTURE_MIN_FILTER : 0x2801, TEXTURE_WRAP_S : 0x2802, TEXTURE_WRAP_T : 0x2803, /* TextureTarget */ TEXTURE_2D : 0x0DE1, TEXTURE : 0x1702, TEXTURE_CUBE_MAP : 0x8513, TEXTURE_BINDING_CUBE_MAP : 0x8514, TEXTURE_CUBE_MAP_POSITIVE_X : 0x8515, TEXTURE_CUBE_MAP_NEGATIVE_X : 0x8516, TEXTURE_CUBE_MAP_POSITIVE_Y : 0x8517, TEXTURE_CUBE_MAP_NEGATIVE_Y : 0x8518, TEXTURE_CUBE_MAP_POSITIVE_Z : 0x8519, TEXTURE_CUBE_MAP_NEGATIVE_Z : 0x851A, MAX_CUBE_MAP_TEXTURE_SIZE : 0x851C, /* TextureUnit */ TEXTURE0 : 0x84C0, TEXTURE1 : 0x84C1, TEXTURE2 : 0x84C2, TEXTURE3 : 0x84C3, TEXTURE4 : 0x84C4, TEXTURE5 : 0x84C5, TEXTURE6 : 0x84C6, TEXTURE7 : 0x84C7, TEXTURE8 : 0x84C8, TEXTURE9 : 0x84C9, TEXTURE10 : 0x84CA, TEXTURE11 : 0x84CB, TEXTURE12 : 0x84CC, TEXTURE13 : 0x84CD, TEXTURE14 : 0x84CE, TEXTURE15 : 0x84CF, TEXTURE16 : 0x84D0, TEXTURE17 : 0x84D1, TEXTURE18 : 0x84D2, TEXTURE19 : 0x84D3, TEXTURE20 : 0x84D4, TEXTURE21 : 0x84D5, TEXTURE22 : 0x84D6, TEXTURE23 : 0x84D7, TEXTURE24 : 0x84D8, TEXTURE25 : 0x84D9, TEXTURE26 : 0x84DA, TEXTURE27 : 0x84DB, TEXTURE28 : 0x84DC, TEXTURE29 : 0x84DD, TEXTURE30 : 0x84DE, TEXTURE31 : 0x84DF, ACTIVE_TEXTURE : 0x84E0, /* TextureWrapMode */ REPEAT : 0x2901, CLAMP_TO_EDGE : 0x812F, MIRRORED_REPEAT : 0x8370, /* Uniform Types */ FLOAT_VEC2 : 0x8B50, FLOAT_VEC3 : 0x8B51, FLOAT_VEC4 : 0x8B52, INT_VEC2 : 0x8B53, INT_VEC3 : 0x8B54, INT_VEC4 : 0x8B55, BOOL : 0x8B56, BOOL_VEC2 : 0x8B57, BOOL_VEC3 : 0x8B58, BOOL_VEC4 : 0x8B59, FLOAT_MAT2 : 0x8B5A, FLOAT_MAT3 : 0x8B5B, FLOAT_MAT4 : 0x8B5C, SAMPLER_2D : 0x8B5E, SAMPLER_CUBE : 0x8B60, /* Vertex Arrays */ VERTEX_ATTRIB_ARRAY_ENABLED : 0x8622, VERTEX_ATTRIB_ARRAY_SIZE : 0x8623, VERTEX_ATTRIB_ARRAY_STRIDE : 0x8624, VERTEX_ATTRIB_ARRAY_TYPE : 0x8625, VERTEX_ATTRIB_ARRAY_NORMALIZED : 0x886A, VERTEX_ATTRIB_ARRAY_POINTER : 0x8645, VERTEX_ATTRIB_ARRAY_BUFFER_BINDING : 0x889F, /* Shader Source */ COMPILE_STATUS : 0x8B81, /* Shader Precision-Specified Types */ LOW_FLOAT : 0x8DF0, MEDIUM_FLOAT : 0x8DF1, HIGH_FLOAT : 0x8DF2, LOW_INT : 0x8DF3, MEDIUM_INT : 0x8DF4, HIGH_INT : 0x8DF5, /* Framebuffer Object. */ FRAMEBUFFER : 0x8D40, RENDERBUFFER : 0x8D41, RGBA4 : 0x8056, RGB5_A1 : 0x8057, RGB565 : 0x8D62, DEPTH_COMPONENT16 : 0x81A5, STENCIL_INDEX : 0x1901, STENCIL_INDEX8 : 0x8D48, DEPTH_STENCIL : 0x84F9, RENDERBUFFER_WIDTH : 0x8D42, RENDERBUFFER_HEIGHT : 0x8D43, RENDERBUFFER_INTERNAL_FORMAT : 0x8D44, RENDERBUFFER_RED_SIZE : 0x8D50, RENDERBUFFER_GREEN_SIZE : 0x8D51, RENDERBUFFER_BLUE_SIZE : 0x8D52, RENDERBUFFER_ALPHA_SIZE : 0x8D53, RENDERBUFFER_DEPTH_SIZE : 0x8D54, RENDERBUFFER_STENCIL_SIZE : 0x8D55, FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE : 0x8CD0, FRAMEBUFFER_ATTACHMENT_OBJECT_NAME : 0x8CD1, FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL : 0x8CD2, FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE : 0x8CD3, COLOR_ATTACHMENT0 : 0x8CE0, DEPTH_ATTACHMENT : 0x8D00, STENCIL_ATTACHMENT : 0x8D20, DEPTH_STENCIL_ATTACHMENT : 0x821A, NONE : 0, FRAMEBUFFER_COMPLETE : 0x8CD5, FRAMEBUFFER_INCOMPLETE_ATTACHMENT : 0x8CD6, FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT : 0x8CD7, FRAMEBUFFER_INCOMPLETE_DIMENSIONS : 0x8CD9, FRAMEBUFFER_UNSUPPORTED : 0x8CDD, FRAMEBUFFER_BINDING : 0x8CA6, RENDERBUFFER_BINDING : 0x8CA7, MAX_RENDERBUFFER_SIZE : 0x84E8, INVALID_FRAMEBUFFER_OPERATION : 0x0506, /* WebGL-specific enums */ UNPACK_FLIP_Y_WEBGL : 0x9240, UNPACK_PREMULTIPLY_ALPHA_WEBGL : 0x9241, CONTEXT_LOST_WEBGL : 0x9242, UNPACK_COLORSPACE_CONVERSION_WEBGL : 0x9243, BROWSER_DEFAULT_WEBGL : 0x9244, }); ;// CONCATENATED MODULE: ./node_modules/claygl/src/core/request.js function get(options) { var xhr = new XMLHttpRequest(); xhr.open('get', options.url); // With response type set browser can get and put binary data // https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest/Sending_and_Receiving_Binary_Data // Default is text, and it can be set // arraybuffer, blob, document, json, text xhr.responseType = options.responseType || 'text'; if (options.onprogress) { //https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest/Using_XMLHttpRequest xhr.onprogress = function(e) { if (e.lengthComputable) { var percent = e.loaded / e.total; options.onprogress(percent, e.loaded, e.total); } else { options.onprogress(null); } }; } xhr.onload = function(e) { if (xhr.status >= 400) { options.onerror && options.onerror(); } else { options.onload && options.onload(xhr.response); } }; if (options.onerror) { xhr.onerror = options.onerror; } xhr.send(null); } /* harmony default export */ const request = ({ get: get }); ;// CONCATENATED MODULE: ./node_modules/claygl/src/core/vendor.js var supportWebGL; var vendor = {}; /** * If support WebGL * @return {boolean} */ vendor.supportWebGL = function () { if (supportWebGL == null) { try { var canvas = document.createElement('canvas'); var gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl'); // 解决 WARNING: Too many active WebGL contexts. Oldest context will be lost //使用下面的扩展插件,手动销毁WebGL context对象。 gl.getExtension('WEBGL_lose_context').loseContext(); if (!gl) { throw new Error(); } } catch (e) { supportWebGL = false; } } return supportWebGL; }; vendor.Int8Array = typeof Int8Array === 'undefined' ? Array : Int8Array; vendor.Uint8Array = typeof Uint8Array === 'undefined' ? Array : Uint8Array; vendor.Uint16Array = typeof Uint16Array === 'undefined' ? Array : Uint16Array; vendor.Uint32Array = typeof Uint32Array === 'undefined' ? Array : Uint32Array; vendor.Int16Array = typeof Int16Array === 'undefined' ? Array : Int16Array; vendor.Float32Array = typeof Float32Array === 'undefined' ? Array : Float32Array; vendor.Float64Array = typeof Float64Array === 'undefined' ? Array : Float64Array; var g = {}; if (typeof window !== 'undefined') { g = window; } else if (typeof __webpack_require__.g !== 'undefined') { g = __webpack_require__.g; } vendor.requestAnimationFrame = g.requestAnimationFrame || g.msRequestAnimationFrame || g.mozRequestAnimationFrame || g.webkitRequestAnimationFrame || function (func){ setTimeout(func, 16); }; vendor.createCanvas = function () { return document.createElement('canvas'); }; vendor.createImage = function () { return new g.Image(); }; vendor.request = { get: request.get }; vendor.addEventListener = function (dom, type, func, useCapture) { dom.addEventListener(type, func, useCapture); }; vendor.removeEventListener = function (dom, type, func) { dom.removeEventListener(type, func); }; /* harmony default export */ const core_vendor = (vendor); ;// CONCATENATED MODULE: ./node_modules/claygl/src/core/LinkedList.js /** * Simple double linked list. Compared with array, it has O(1) remove operation. * @constructor * @alias clay.core.LinkedList */ var LinkedList = function () { /** * @type {clay.core.LinkedList.Entry} */ this.head = null; /** * @type {clay.core.LinkedList.Entry} */ this.tail = null; this._length = 0; }; /** * Insert a new value at the tail * @param {} val * @return {clay.core.LinkedList.Entry} */ LinkedList.prototype.insert = function (val) { var entry = new LinkedList.Entry(val); this.insertEntry(entry); return entry; }; /** * Insert a new value at idx * @param {number} idx * @param {} val * @return {clay.core.LinkedList.Entry} */ LinkedList.prototype.insertAt = function (idx, val) { if (idx < 0) { return; } var next = this.head; var cursor = 0; while (next && cursor != idx) { next = next.next; cursor++; } if (next) { var entry = new LinkedList.Entry(val); var prev = next.prev; if (!prev) { //next is head this.head = entry; } else { prev.next = entry; entry.prev = prev; } entry.next = next; next.prev = entry; } else { this.insert(val); } }; LinkedList.prototype.insertBeforeEntry = function (val, next) { var entry = new LinkedList.Entry(val); var prev = next.prev; if (!prev) { //next is head this.head = entry; } else { prev.next = entry; entry.prev = prev; } entry.next = next; next.prev = entry; this._length++; }; /** * Insert an entry at the tail * @param {clay.core.LinkedList.Entry} entry */ LinkedList.prototype.insertEntry = function (entry) { if (!this.head) { this.head = this.tail = entry; } else { this.tail.next = entry; entry.prev = this.tail; this.tail = entry; } this._length++; }; /** * Remove entry. * @param {clay.core.LinkedList.Entry} entry */ LinkedList.prototype.remove = function (entry) { var prev = entry.prev; var next = entry.next; if (prev) { prev.next = next; } else { // Is head this.head = next; } if (next) { next.prev = prev; } else { // Is tail this.tail = prev; } entry.next = entry.prev = null; this._length--; }; /** * Remove entry at index. * @param {number} idx * @return {} */ LinkedList.prototype.removeAt = function (idx) { if (idx < 0) { return; } var curr = this.head; var cursor = 0; while (curr && cursor != idx) { curr = curr.next; cursor++; } if (curr) { this.remove(curr); return curr.value; } }; /** * Get head value * @return {} */ LinkedList.prototype.getHead = function () { if (this.head) { return this.head.value; } }; /** * Get tail value * @return {} */ LinkedList.prototype.getTail = function () { if (this.tail) { return this.tail.value; } }; /** * Get value at idx * @param {number} idx * @return {} */ LinkedList.prototype.getAt = function (idx) { if (idx < 0) { return; } var curr = this.head; var cursor = 0; while (curr && cursor != idx) { curr = curr.next; cursor++; } return curr.value; }; /** * @param {} value * @return {number} */ LinkedList.prototype.indexOf = function (value) { var curr = this.head; var cursor = 0; while (curr) { if (curr.value === value) { return cursor; } curr = curr.next; cursor++; } }; /** * @return {number} */ LinkedList.prototype.length = function () { return this._length; }; /** * If list is empty */ LinkedList.prototype.isEmpty = function () { return this._length === 0; }; /** * @param {Function} cb * @param {} context */ LinkedList.prototype.forEach = function (cb, context) { var curr = this.head; var idx = 0; var haveContext = typeof(context) != 'undefined'; while (curr) { if (haveContext) { cb.call(context, curr.value, idx); } else { cb(curr.value, idx); } curr = curr.next; idx++; } }; /** * Clear the list */ LinkedList.prototype.clear = function () { this.tail = this.head = null; this._length = 0; }; /** * @constructor * @param {} val */ LinkedList.Entry = function (val) { /** * @type {} */ this.value = val; /** * @type {clay.core.LinkedList.Entry} */ this.next = null; /** * @type {clay.core.LinkedList.Entry} */ this.prev = null; }; /* harmony default export */ const core_LinkedList = (LinkedList); ;// CONCATENATED MODULE: ./node_modules/claygl/src/core/LRU.js /** * LRU Cache * @constructor * @alias clay.core.LRU */ var LRU = function (maxSize) { this._list = new core_LinkedList(); this._map = {}; this._maxSize = maxSize || 10; }; /** * Set cache max size * @param {number} size */ LRU.prototype.setMaxSize = function (size) { this._maxSize = size; }; /** * @param {string} key * @param {} value */ LRU.prototype.put = function (key, value) { if (!this._map.hasOwnProperty(key)) { var len = this._list.length(); if (len >= this._maxSize && len > 0) { // Remove the least recently used var leastUsedEntry = this._list.head; this._list.remove(leastUsedEntry); delete this._map[leastUsedEntry.key]; } var entry = this._list.insert(value); entry.key = key; this._map[key] = entry; } }; /** * @param {string} key * @return {} */ LRU.prototype.get = function (key) { var entry = this._map[key]; if (this._map.hasOwnProperty(key)) { // Put the latest used entry in the tail if (entry !== this._list.tail) { this._list.remove(entry); this._list.insertEntry(entry); } return entry.value; } }; /** * @param {string} key */ LRU.prototype.remove = function (key) { var entry = this._map[key]; if (typeof(entry) !== 'undefined') { delete this._map[key]; this._list.remove(entry); } }; /** * Clear the cache */ LRU.prototype.clear = function () { this._list.clear(); this._map = {}; }; /* harmony default export */ const core_LRU = (LRU); ;// CONCATENATED MODULE: ./node_modules/claygl/src/core/color.js /** * @namespace clay.core.color */ var colorUtil = {}; var kCSSColorTable = { 'transparent': [0,0,0,0], 'aliceblue': [240,248,255,1], 'antiquewhite': [250,235,215,1], 'aqua': [0,255,255,1], 'aquamarine': [127,255,212,1], 'azure': [240,255,255,1], 'beige': [245,245,220,1], 'bisque': [255,228,196,1], 'black': [0,0,0,1], 'blanchedalmond': [255,235,205,1], 'blue': [0,0,255,1], 'blueviolet': [138,43,226,1], 'brown': [165,42,42,1], 'burlywood': [222,184,135,1], 'cadetblue': [95,158,160,1], 'chartreuse': [127,255,0,1], 'chocolate': [210,105,30,1], 'coral': [255,127,80,1], 'cornflowerblue': [100,149,237,1], 'cornsilk': [255,248,220,1], 'crimson': [220,20,60,1], 'cyan': [0,255,255,1], 'darkblue': [0,0,139,1], 'darkcyan': [0,139,139,1], 'darkgoldenrod': [184,134,11,1], 'darkgray': [169,169,169,1], 'darkgreen': [0,100,0,1], 'darkgrey': [169,169,169,1], 'darkkhaki': [189,183,107,1], 'darkmagenta': [139,0,139,1], 'darkolivegreen': [85,107,47,1], 'darkorange': [255,140,0,1], 'darkorchid': [153,50,204,1], 'darkred': [139,0,0,1], 'darksalmon': [233,150,122,1], 'darkseagreen': [143,188,143,1], 'darkslateblue': [72,61,139,1], 'darkslategray': [47,79,79,1], 'darkslategrey': [47,79,79,1], 'darkturquoise': [0,206,209,1], 'darkviolet': [148,0,211,1], 'deeppink': [255,20,147,1], 'deepskyblue': [0,191,255,1], 'dimgray': [105,105,105,1], 'dimgrey': [105,105,105,1], 'dodgerblue': [30,144,255,1], 'firebrick': [178,34,34,1], 'floralwhite': [255,250,240,1], 'forestgreen': [34,139,34,1], 'fuchsia': [255,0,255,1], 'gainsboro': [220,220,220,1], 'ghostwhite': [248,248,255,1], 'gold': [255,215,0,1], 'goldenrod': [218,165,32,1], 'gray': [128,128,128,1], 'green': [0,128,0,1], 'greenyellow': [173,255,47,1], 'grey': [128,128,128,1], 'honeydew': [240,255,240,1], 'hotpink': [255,105,180,1], 'indianred': [205,92,92,1], 'indigo': [75,0,130,1], 'ivory': [255,255,240,1], 'khaki': [240,230,140,1], 'lavender': [230,230,250,1], 'lavenderblush': [255,240,245,1], 'lawngreen': [124,252,0,1], 'lemonchiffon': [255,250,205,1], 'lightblue': [173,216,230,1], 'lightcoral': [240,128,128,1], 'lightcyan': [224,255,255,1], 'lightgoldenrodyellow': [250,250,210,1], 'lightgray': [211,211,211,1], 'lightgreen': [144,238,144,1], 'lightgrey': [211,211,211,1], 'lightpink': [255,182,193,1], 'lightsalmon': [255,160,122,1], 'lightseagreen': [32,178,170,1], 'lightskyblue': [135,206,250,1], 'lightslategray': [119,136,153,1], 'lightslategrey': [119,136,153,1], 'lightsteelblue': [176,196,222,1], 'lightyellow': [255,255,224,1], 'lime': [0,255,0,1], 'limegreen': [50,205,50,1], 'linen': [250,240,230,1], 'magenta': [255,0,255,1], 'maroon': [128,0,0,1], 'mediumaquamarine': [102,205,170,1], 'mediumblue': [0,0,205,1], 'mediumorchid': [186,85,211,1], 'mediumpurple': [147,112,219,1], 'mediumseagreen': [60,179,113,1], 'mediumslateblue': [123,104,238,1], 'mediumspringgreen': [0,250,154,1], 'mediumturquoise': [72,209,204,1], 'mediumvioletred': [199,21,133,1], 'midnightblue': [25,25,112,1], 'mintcream': [245,255,250,1], 'mistyrose': [255,228,225,1], 'moccasin': [255,228,181,1], 'navajowhite': [255,222,173,1], 'navy': [0,0,128,1], 'oldlace': [253,245,230,1], 'olive': [128,128,0,1], 'olivedrab': [107,142,35,1], 'orange': [255,165,0,1], 'orangered': [255,69,0,1], 'orchid': [218,112,214,1], 'palegoldenrod': [238,232,170,1], 'palegreen': [152,251,152,1], 'paleturquoise': [175,238,238,1], 'palevioletred': [219,112,147,1], 'papayawhip': [255,239,213,1], 'peachpuff': [255,218,185,1], 'peru': [205,133,63,1], 'pink': [255,192,203,1], 'plum': [221,160,221,1], 'powderblue': [176,224,230,1], 'purple': [128,0,128,1], 'red': [255,0,0,1], 'rosybrown': [188,143,143,1], 'royalblue': [65,105,225,1], 'saddlebrown': [139,69,19,1], 'salmon': [250,128,114,1], 'sandybrown': [244,164,96,1], 'seagreen': [46,139,87,1], 'seashell': [255,245,238,1], 'sienna': [160,82,45,1], 'silver': [192,192,192,1], 'skyblue': [135,206,235,1], 'slateblue': [106,90,205,1], 'slategray': [112,128,144,1], 'slategrey': [112,128,144,1], 'snow': [255,250,250,1], 'springgreen': [0,255,127,1], 'steelblue': [70,130,180,1], 'tan': [210,180,140,1], 'teal': [0,128,128,1], 'thistle': [216,191,216,1], 'tomato': [255,99,71,1], 'turquoise': [64,224,208,1], 'violet': [238,130,238,1], 'wheat': [245,222,179,1], 'white': [255,255,255,1], 'whitesmoke': [245,245,245,1], 'yellow': [255,255,0,1], 'yellowgreen': [154,205,50,1] }; function clampCssByte(i) { // Clamp to integer 0 .. 255. i = Math.round(i); // Seems to be what Chrome does (vs truncation). return i < 0 ? 0 : i > 255 ? 255 : i; } function clampCssAngle(i) { // Clamp to integer 0 .. 360. i = Math.round(i); // Seems to be what Chrome does (vs truncation). return i < 0 ? 0 : i > 360 ? 360 : i; } function clampCssFloat(f) { // Clamp to float 0.0 .. 1.0. return f < 0 ? 0 : f > 1 ? 1 : f; } function parseCssInt(str) { // int or percentage. if (str.length && str.charAt(str.length - 1) === '%') { return clampCssByte(parseFloat(str) / 100 * 255); } return clampCssByte(parseInt(str, 10)); } function parseCssFloat(str) { // float or percentage. if (str.length && str.charAt(str.length - 1) === '%') { return clampCssFloat(parseFloat(str) / 100); } return clampCssFloat(parseFloat(str)); } function cssHueToRgb(m1, m2, h) { if (h < 0) { h += 1; } else if (h > 1) { h -= 1; } if (h * 6 < 1) { return m1 + (m2 - m1) * h * 6; } if (h * 2 < 1) { return m2; } if (h * 3 < 2) {