@flowmap.gl/layers 8.0.0-alpha.12 → 8.0.0-alpha.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{dist → dist-es5}/AnimatedFlowLinesLayer/AnimatedFlowLinesLayer.d.ts +1 -0
- package/dist-es5/AnimatedFlowLinesLayer/AnimatedFlowLinesLayer.d.ts.map +1 -0
- package/dist-es5/AnimatedFlowLinesLayer/AnimatedFlowLinesLayer.js +178 -0
- package/{dist → dist-es5}/AnimatedFlowLinesLayer/AnimatedFlowLinesLayerFragment.glsl.d.ts +0 -0
- package/{dist → dist-es5}/AnimatedFlowLinesLayer/AnimatedFlowLinesLayerFragment.glsl.d.ts.map +0 -0
- package/dist-es5/AnimatedFlowLinesLayer/AnimatedFlowLinesLayerFragment.glsl.js +21 -0
- package/{dist → dist-es5}/AnimatedFlowLinesLayer/AnimatedFlowLinesLayerVertex.glsl.d.ts +0 -0
- package/{dist → dist-es5}/AnimatedFlowLinesLayer/AnimatedFlowLinesLayerVertex.glsl.d.ts.map +0 -0
- package/dist-es5/AnimatedFlowLinesLayer/AnimatedFlowLinesLayerVertex.glsl.js +21 -0
- package/{dist → dist-es5}/AnimatedFlowLinesLayer/index.d.ts +0 -0
- package/{dist → dist-es5}/AnimatedFlowLinesLayer/index.d.ts.map +0 -0
- package/dist-es5/AnimatedFlowLinesLayer/index.js +8 -0
- package/{dist → dist-es5}/FlowCirclesLayer/FlowCirclesLayer.d.ts +1 -0
- package/dist-es5/FlowCirclesLayer/FlowCirclesLayer.d.ts.map +1 -0
- package/dist-es5/FlowCirclesLayer/FlowCirclesLayer.js +149 -0
- package/{dist → dist-es5}/FlowCirclesLayer/FlowCirclesLayerFragment.glsl.d.ts +0 -0
- package/{dist → dist-es5}/FlowCirclesLayer/FlowCirclesLayerFragment.glsl.d.ts.map +0 -0
- package/dist-es5/FlowCirclesLayer/FlowCirclesLayerFragment.glsl.js +21 -0
- package/{dist → dist-es5}/FlowCirclesLayer/FlowCirclesLayerVertex.glsl.d.ts +0 -0
- package/{dist → dist-es5}/FlowCirclesLayer/FlowCirclesLayerVertex.glsl.d.ts.map +0 -0
- package/dist-es5/FlowCirclesLayer/FlowCirclesLayerVertex.glsl.js +21 -0
- package/{dist → dist-es5}/FlowCirclesLayer/index.d.ts +0 -0
- package/{dist → dist-es5}/FlowCirclesLayer/index.d.ts.map +0 -0
- package/dist-es5/FlowCirclesLayer/index.js +8 -0
- package/{dist → dist-es5}/FlowLinesLayer/FlowLinesLayer.d.ts +1 -0
- package/dist-es5/FlowLinesLayer/FlowLinesLayer.d.ts.map +1 -0
- package/dist-es5/FlowLinesLayer/FlowLinesLayer.js +217 -0
- package/{dist → dist-es5}/FlowLinesLayer/FlowLinesLayerFragment.glsl.d.ts +0 -0
- package/{dist → dist-es5}/FlowLinesLayer/FlowLinesLayerFragment.glsl.d.ts.map +0 -0
- package/dist-es5/FlowLinesLayer/FlowLinesLayerFragment.glsl.js +21 -0
- package/{dist → dist-es5}/FlowLinesLayer/FlowLinesLayerVertex.glsl.d.ts +0 -0
- package/{dist → dist-es5}/FlowLinesLayer/FlowLinesLayerVertex.glsl.d.ts.map +0 -0
- package/dist-es5/FlowLinesLayer/FlowLinesLayerVertex.glsl.js +21 -0
- package/{dist → dist-es5}/FlowLinesLayer/index.d.ts +0 -0
- package/{dist → dist-es5}/FlowLinesLayer/index.d.ts.map +0 -0
- package/dist-es5/FlowLinesLayer/index.js +8 -0
- package/{dist → dist-es5}/FlowmapLayer.d.ts +1 -0
- package/dist-es5/FlowmapLayer.d.ts.map +1 -0
- package/dist-es5/FlowmapLayer.js +476 -0
- package/{dist → dist-es5}/index.d.ts +0 -0
- package/{dist → dist-es5}/index.d.ts.map +0 -0
- package/dist-es5/index.js +26 -0
- package/{dist → dist-es5}/types.d.ts +1 -0
- package/dist-es5/types.d.ts.map +1 -0
- package/dist-es5/types.js +23 -0
- package/package.json +6 -4
- package/tsconfig.es5.json +11 -0
- package/dist/AnimatedFlowLinesLayer/AnimatedFlowLinesLayer.d.ts.map +0 -1
- package/dist/AnimatedFlowLinesLayer/AnimatedFlowLinesLayer.js +0 -139
- package/dist/AnimatedFlowLinesLayer/AnimatedFlowLinesLayerFragment.glsl.js +0 -37
- package/dist/AnimatedFlowLinesLayer/AnimatedFlowLinesLayerVertex.glsl.js +0 -91
- package/dist/AnimatedFlowLinesLayer/index.js +0 -3
- package/dist/FlowCirclesLayer/FlowCirclesLayer.d.ts.map +0 -1
- package/dist/FlowCirclesLayer/FlowCirclesLayer.js +0 -115
- package/dist/FlowCirclesLayer/FlowCirclesLayerFragment.glsl.js +0 -76
- package/dist/FlowCirclesLayer/FlowCirclesLayerVertex.glsl.js +0 -63
- package/dist/FlowCirclesLayer/index.js +0 -3
- package/dist/FlowLinesLayer/FlowLinesLayer.d.ts.map +0 -1
- package/dist/FlowLinesLayer/FlowLinesLayer.js +0 -182
- package/dist/FlowLinesLayer/FlowLinesLayerFragment.glsl.js +0 -36
- package/dist/FlowLinesLayer/FlowLinesLayerVertex.glsl.js +0 -102
- package/dist/FlowLinesLayer/index.js +0 -3
- package/dist/FlowmapLayer.d.ts.map +0 -1
- package/dist/FlowmapLayer.js +0 -351
- package/dist/index.js +0 -6
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -20
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnimatedFlowLinesLayer.d.ts","sourceRoot":"","sources":["../../src/AnimatedFlowLinesLayer/AnimatedFlowLinesLayer.ts"],"names":[],"mappings":";AAkBA,OAAO,EAAC,KAAK,EAAqB,MAAM,eAAe,CAAC;AAKxD,OAAO,EAAC,wBAAwB,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACpC,MAAM,WAAW,KAAK,CAAC,CAAC,CAAE,SAAQ,UAAU;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAC,CAAC;IAC1D,IAAI,EAAE,CAAC,EAAE,GAAG,wBAAwB,CAAC;IACrC,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iBAAiB,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,iBAAiB,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,kBAAkB,KAAK,MAAM,CAAC;IAC3D,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAC,KAAK,EAAC,EAAE;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,KAAK,MAAM,CAAC;IACzD,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC;IAChC,kBAAkB,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjD;AAGD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,GAAG,CAAC;IACV,MAAM,EAAE,GAAG,CAAC;CACb;AAOD,MAAM,CAAC,OAAO,OAAO,sBAAsB,CAAC,CAAC,CAAE,SAAQ,KAAK;IAC1D,MAAM,CAAC,YAAY;;;;;uBAGgC,GAAG;;;;uBACH,GAAG;;;;uBACT,GAAG;;;;uBAGjC,GAAG;uBAAmB,MAAM;;;;;;;;;;;;;;;MAQzC;gBAEU,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAI3B,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IASrC,eAAe,IAAI,IAAI;IA0CvB,cAAc,IAAI,OAAO;IAIzB,WAAW,CAAC,EAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAatE,IAAI,CAAC,EAAC,QAAQ,EAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAe3C,SAAS,CAAC,EAAE,EAAE,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAwB9D"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2022 FlowmapBlue
|
|
4
|
+
* Copyright 2018-2020 Teralytics, modified by FlowmapBlue
|
|
5
|
+
*
|
|
6
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
* you may not use this file except in compliance with the License.
|
|
8
|
+
* You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
* See the License for the specific language governing permissions and
|
|
16
|
+
* limitations under the License.
|
|
17
|
+
*
|
|
18
|
+
*/
|
|
19
|
+
var __extends = (this && this.__extends) || (function () {
|
|
20
|
+
var extendStatics = function (d, b) {
|
|
21
|
+
extendStatics = Object.setPrototypeOf ||
|
|
22
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
23
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
24
|
+
return extendStatics(d, b);
|
|
25
|
+
};
|
|
26
|
+
return function (d, b) {
|
|
27
|
+
if (typeof b !== "function" && b !== null)
|
|
28
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
29
|
+
extendStatics(d, b);
|
|
30
|
+
function __() { this.constructor = d; }
|
|
31
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
32
|
+
};
|
|
33
|
+
})();
|
|
34
|
+
var __assign = (this && this.__assign) || function () {
|
|
35
|
+
__assign = Object.assign || function(t) {
|
|
36
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
37
|
+
s = arguments[i];
|
|
38
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
39
|
+
t[p] = s[p];
|
|
40
|
+
}
|
|
41
|
+
return t;
|
|
42
|
+
};
|
|
43
|
+
return __assign.apply(this, arguments);
|
|
44
|
+
};
|
|
45
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
46
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
47
|
+
};
|
|
48
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
49
|
+
var core_1 = require("@deck.gl/core");
|
|
50
|
+
var constants_1 = __importDefault(require("@luma.gl/constants"));
|
|
51
|
+
var core_2 = require("@luma.gl/core");
|
|
52
|
+
var AnimatedFlowLinesLayerFragment_glsl_1 = __importDefault(require("./AnimatedFlowLinesLayerFragment.glsl"));
|
|
53
|
+
var AnimatedFlowLinesLayerVertex_glsl_1 = __importDefault(require("./AnimatedFlowLinesLayerVertex.glsl"));
|
|
54
|
+
var DEFAULT_COLOR = [0, 132, 193, 255];
|
|
55
|
+
var loopLength = 1800;
|
|
56
|
+
var animationSpeed = 20;
|
|
57
|
+
var loopTime = loopLength / animationSpeed;
|
|
58
|
+
var AnimatedFlowLinesLayer = /** @class */ (function (_super) {
|
|
59
|
+
__extends(AnimatedFlowLinesLayer, _super);
|
|
60
|
+
function AnimatedFlowLinesLayer(props) {
|
|
61
|
+
return _super.call(this, props) || this;
|
|
62
|
+
}
|
|
63
|
+
AnimatedFlowLinesLayer.prototype.getShaders = function () {
|
|
64
|
+
return _super.prototype.getShaders.call(this, {
|
|
65
|
+
vs: AnimatedFlowLinesLayerVertex_glsl_1.default,
|
|
66
|
+
fs: AnimatedFlowLinesLayerFragment_glsl_1.default,
|
|
67
|
+
modules: [core_1.project32, core_1.picking],
|
|
68
|
+
shaderCache: this.context.shaderCache,
|
|
69
|
+
});
|
|
70
|
+
};
|
|
71
|
+
AnimatedFlowLinesLayer.prototype.initializeState = function () {
|
|
72
|
+
var attributeManager = this.getAttributeManager();
|
|
73
|
+
/* eslint-disable max-len */
|
|
74
|
+
attributeManager.addInstanced({
|
|
75
|
+
instanceSourcePositions: {
|
|
76
|
+
size: 3,
|
|
77
|
+
transition: true,
|
|
78
|
+
accessor: 'getSourcePosition',
|
|
79
|
+
},
|
|
80
|
+
instanceTargetPositions: {
|
|
81
|
+
size: 3,
|
|
82
|
+
transition: true,
|
|
83
|
+
accessor: 'getTargetPosition',
|
|
84
|
+
},
|
|
85
|
+
instanceColors: {
|
|
86
|
+
size: 4,
|
|
87
|
+
type: constants_1.default.UNSIGNED_BYTE,
|
|
88
|
+
transition: true,
|
|
89
|
+
accessor: 'getColor',
|
|
90
|
+
defaultValue: [0, 0, 0, 255],
|
|
91
|
+
},
|
|
92
|
+
instanceWidths: {
|
|
93
|
+
size: 1,
|
|
94
|
+
transition: true,
|
|
95
|
+
accessor: 'getThickness',
|
|
96
|
+
defaultValue: 1,
|
|
97
|
+
},
|
|
98
|
+
instanceStaggering: {
|
|
99
|
+
accessor: 'getStaggering',
|
|
100
|
+
size: 1,
|
|
101
|
+
transition: false,
|
|
102
|
+
},
|
|
103
|
+
instancePickable: {
|
|
104
|
+
accessor: 'getPickable',
|
|
105
|
+
size: 1,
|
|
106
|
+
transition: false,
|
|
107
|
+
},
|
|
108
|
+
});
|
|
109
|
+
/* eslint-enable max-len */
|
|
110
|
+
};
|
|
111
|
+
AnimatedFlowLinesLayer.prototype.getNeedsRedraw = function () {
|
|
112
|
+
return true;
|
|
113
|
+
};
|
|
114
|
+
AnimatedFlowLinesLayer.prototype.updateState = function (_a) {
|
|
115
|
+
var props = _a.props, oldProps = _a.oldProps, changeFlags = _a.changeFlags;
|
|
116
|
+
_super.prototype.updateState.call(this, { props: props, oldProps: oldProps, changeFlags: changeFlags });
|
|
117
|
+
if (changeFlags.extensionsChanged) {
|
|
118
|
+
var gl = this.context.gl;
|
|
119
|
+
if (this.state.model) {
|
|
120
|
+
this.state.model.delete();
|
|
121
|
+
}
|
|
122
|
+
this.setState({ model: this._getModel(gl) });
|
|
123
|
+
this.getAttributeManager().invalidateAll();
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
AnimatedFlowLinesLayer.prototype.draw = function (_a) {
|
|
127
|
+
var uniforms = _a.uniforms;
|
|
128
|
+
var _b = this.props, thicknessUnit = _b.thicknessUnit, animationTailLength = _b.animationTailLength;
|
|
129
|
+
var timestamp = Date.now() / 1000;
|
|
130
|
+
var animationTime = ((timestamp % loopTime) / loopTime) * loopLength;
|
|
131
|
+
this.state.model
|
|
132
|
+
.setUniforms(__assign(__assign({}, uniforms), { thicknessUnit: thicknessUnit * 4, animationTailLength: animationTailLength, currentTime: animationTime }))
|
|
133
|
+
.draw();
|
|
134
|
+
};
|
|
135
|
+
AnimatedFlowLinesLayer.prototype._getModel = function (gl) {
|
|
136
|
+
/*
|
|
137
|
+
* (0, -1)-------------_(1, -1)
|
|
138
|
+
* | _,-" |
|
|
139
|
+
* o _,-" o
|
|
140
|
+
* | _,-" |
|
|
141
|
+
* (0, 1)"-------------(1, 1)
|
|
142
|
+
*/
|
|
143
|
+
var positions = [0, -1, 0, 0, 1, 0, 1, -1, 0, 1, 1, 0];
|
|
144
|
+
return new core_2.Model(gl, Object.assign({}, this.getShaders(), {
|
|
145
|
+
id: this.props.id,
|
|
146
|
+
geometry: new core_2.Geometry({
|
|
147
|
+
drawMode: constants_1.default.TRIANGLE_STRIP,
|
|
148
|
+
attributes: {
|
|
149
|
+
positions: new Float32Array(positions),
|
|
150
|
+
},
|
|
151
|
+
}),
|
|
152
|
+
isInstanced: true,
|
|
153
|
+
}));
|
|
154
|
+
};
|
|
155
|
+
AnimatedFlowLinesLayer.defaultProps = {
|
|
156
|
+
currentTime: 0,
|
|
157
|
+
animationTailLength: 0.7,
|
|
158
|
+
getSourcePosition: { type: 'accessor', value: function (d) { return [0, 0]; } },
|
|
159
|
+
getTargetPosition: { type: 'accessor', value: function (d) { return [0, 0]; } },
|
|
160
|
+
getPickable: { type: 'accessor', value: function (d) { return 1.0; } },
|
|
161
|
+
getStaggering: {
|
|
162
|
+
type: 'accessor',
|
|
163
|
+
value: function (d, _a) {
|
|
164
|
+
var index = _a.index;
|
|
165
|
+
return Math.random();
|
|
166
|
+
},
|
|
167
|
+
},
|
|
168
|
+
getColor: { type: 'accessor', value: DEFAULT_COLOR },
|
|
169
|
+
getThickness: { type: 'accessor', value: 1 },
|
|
170
|
+
thicknessUnit: 15 * 2,
|
|
171
|
+
parameters: {
|
|
172
|
+
depthTest: false,
|
|
173
|
+
},
|
|
174
|
+
};
|
|
175
|
+
return AnimatedFlowLinesLayer;
|
|
176
|
+
}(core_1.Layer));
|
|
177
|
+
exports.default = AnimatedFlowLinesLayer;
|
|
178
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQW5pbWF0ZWRGbG93TGluZXNMYXllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9BbmltYXRlZEZsb3dMaW5lc0xheWVyL0FuaW1hdGVkRmxvd0xpbmVzTGF5ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsc0NBQXdEO0FBQ3hELGlFQUFvQztBQUNwQyxzQ0FBOEM7QUFDOUMsOEdBQW1FO0FBQ25FLDBHQUErRDtBQStCL0QsSUFBTSxhQUFhLEdBQVMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUMvQyxJQUFNLFVBQVUsR0FBRyxJQUFJLENBQUM7QUFDeEIsSUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDO0FBQzFCLElBQU0sUUFBUSxHQUFHLFVBQVUsR0FBRyxjQUFjLENBQUM7QUFFN0M7SUFBdUQsMENBQUs7SUFtQjFELGdDQUFZLEtBQWU7ZUFDekIsa0JBQU0sS0FBSyxDQUFDO0lBQ2QsQ0FBQztJQUVELDJDQUFVLEdBQVY7UUFDRSxPQUFPLGlCQUFNLFVBQVUsWUFBQztZQUN0QixFQUFFLEVBQUUsMkNBQVk7WUFDaEIsRUFBRSxFQUFFLDZDQUFjO1lBQ2xCLE9BQU8sRUFBRSxDQUFDLGdCQUFTLEVBQUUsY0FBTyxDQUFDO1lBQzdCLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVc7U0FDdEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGdEQUFlLEdBQWY7UUFDRSxJQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBRXBELDRCQUE0QjtRQUM1QixnQkFBZ0IsQ0FBQyxZQUFZLENBQUM7WUFDNUIsdUJBQXVCLEVBQUU7Z0JBQ3ZCLElBQUksRUFBRSxDQUFDO2dCQUNQLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixRQUFRLEVB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QUMsRUFBQztRQUMxQyxhQUFhLEVBQUUsRUFBRSxHQUFHLENBQUM7UUFDckIsVUFBVSxFQUFFO1lBQ1YsU0FBUyxFQUFFLEtBQUs7U0FDakI7S0FDRixDQUFDO0lBaUhKLDZCQUFDO0NBQUEsQUFsSUQsQ0FBdUQsWUFBSyxHQWtJM0Q7a0JBbElvQixzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMjIgRmxvd21hcEJsdWVcbiAqIENvcHlyaWdodCAyMDE4LTIwMjAgVGVyYWx5dGljcywgbW9kaWZpZWQgYnkgRmxvd21hcEJsdWVcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqXG4gKi9cblxuaW1wb3J0IHtMYXllciwgcGlja2luZywgcHJvamVjdDMyfSBmcm9tICdAZGVjay5nbC9jb3JlJztcbmltcG9ydCBHTCBmcm9tICdAbHVtYS5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtHZW9tZXRyeSwgTW9kZWx9IGZyb20gJ0BsdW1hLmdsL2NvcmUnO1xuaW1wb3J0IEZyYWdtZW50U2hhZGVyIGZyb20gJy4vQW5pbWF0ZWRGbG93TGluZXNMYXllckZyYWdtZW50Lmdsc2wnO1xuaW1wb3J0IFZlcnRleFNoYWRlciBmcm9tICcuL0FuaW1hdGVkRmxvd0xpbmVzTGF5ZXJWZXJ0ZXguZ2xzbCc7XG5pbXBvcnQge0Zsb3dMaW5lc0xheWVyQXR0cmlidXRlcywgUkdCQX0gZnJvbSAnQGZsb3dtYXAuZ2wvZGF0YSc7XG5pbXBvcnQge0xheWVyUHJvcHN9IGZyb20gJy4uL3R5cGVzJztcbmV4cG9ydCBpbnRlcmZhY2UgUHJvcHM8Rj4gZXh0ZW5kcyBMYXllclByb3BzIHtcbiAgaWQ6IHN0cmluZztcbiAgb3BhY2l0eT86IG51bWJlcjtcbiAgcGlja2FibGU/OiBib29sZWFuO1xuICB1cGRhdGVUcmlnZ2Vycz86IHtba2V5OiBzdHJpbmddOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPn07XG4gIGRhdGE6IEZbXSB8IEZsb3dMaW5lc0xheWVyQXR0cmlidXRlcztcbiAgZHJhd091dGxpbmU6IGJvb2xlYW47XG4gIG91dGxpbmVDb2xvcj86IFJHQkE7XG4gIG91dGxpbmVUaGlja25lc3M/OiBudW1iZXI7XG4gIGN1cnJlbnRUaW1lPzogbnVtYmVyO1xuICB0aGlja25lc3NVbml0PzogbnVtYmVyO1xuICBhbmltYXRpb25UYWlsTGVuZ3RoPzogbnVtYmVyO1xuICBnZXRTb3VyY2VQb3NpdGlvbj86IChkOiBGKSA9PiBbbnVtYmVyLCBudW1iZXJdO1xuICBnZXRUYXJnZXRQb3NpdGlvbj86IChkOiBGKSA9PiBbbnVtYmVyLCBudW1iZXJdO1xuICBnZXRTdGFnZ2VyaW5nPzogKGQ6IEYsIGluZm86IEFjY2Vzc29yT2JqZWN0SW5mbykgPT4gbnVtYmVyO1xuICBnZXRQaWNrYWJsZT86IChkOiBGLCB7aW5kZXh9OiB7aW5kZXg6IG51bWJlcn0pID0+IG51bWJlcjsgLy8gPj0gMS4wIC0+IHRydWVcbiAgZ2V0Q29sb3I/OiAoZDogRikgPT4gUkdCQTtcbiAgZ2V0VGhpY2tuZXNzPzogKGQ6IEYpID0+IG51bWJlcjtcbiAgZ2V0RW5kcG9pbnRPZmZzZXRzPzogKGQ6IEYpID0+IFtudW1iZXIsIG51bWJlcl07XG59XG5cbi8vIGh0dHBzOi8vZGVjay5nbC8jL2RvY3VtZW50YXRpb24vZGV2ZWxvcGVyLWd1aWRlL3VzaW5nLWxheWVycz9zZWN0aW9uPWFjY2Vzc29yc1xuZXhwb3J0IGludGVyZmFjZSBBY2Nlc3Nvck9iamVjdEluZm8ge1xuICBpbmRleDogbnVtYmVyO1xuICBkYXRhOiBhbnk7XG4gIHRhcmdldDogYW55O1xufVxuXG5jb25zdCBERUZBVUxUX0NPTE9SOiBSR0JBID0gWzAsIDEzMiwgMTkzLCAyNTVdO1xuY29uc3QgbG9vcExlbmd0aCA9IDE4MDA7XG5jb25zdCBhbmltYXRpb25TcGVlZCA9IDIwO1xuY29uc3QgbG9vcFRpbWUgPSBsb29wTGVuZ3RoIC8gYW5pbWF0aW9uU3BlZWQ7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFuaW1hdGVkRmxvd0xpbmVzTGF5ZXI8Rj4gZXh0ZW5kcyBMYXllciB7XG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgY3VycmVudFRpbWU6IDAsXG4gICAgYW5pbWF0aW9uVGFpbExlbmd0aDogMC43LFxuICAgIGdldFNvdXJjZVBvc2l0aW9uOiB7dHlwZTogJ2FjY2Vzc29yJywgdmFsdWU6IChkOiBhbnkpID0+IFswLCAwXX0sXG4gICAgZ2V0VGFyZ2V0UG9zaXRpb246IHt0eXBlOiAnYWNjZXNzb3InLCB2YWx1ZTogKGQ6IGFueSkgPT4gWzAsIDBdfSxcbiAgICBnZXRQaWNrYWJsZToge3R5cGU6ICdhY2Nlc3NvcicsIHZhbHVlOiAoZDogYW55KSA9PiAxLjB9LFxuICAgIGdldFN0YWdnZXJpbmc6IHtcbiAgICAgIHR5cGU6ICdhY2Nlc3NvcicsXG4gICAgICB2YWx1ZTogKGQ6IGFueSwge2luZGV4fToge2luZGV4OiBudW1iZXJ9KSA9PiBNYXRoLnJhbmRvbSgpLFxuICAgIH0sXG4gICAgZ2V0Q29sb3I6IHt0eXBlOiAnYWNjZXNzb3InLCB2YWx1ZTogREVGQVVMVF9DT0xPUn0sXG4gICAgZ2V0VGhpY2tuZXNzOiB7dHlwZTogJ2FjY2Vzc29yJywgdmFsdWU6IDF9LFxuICAgIHRoaWNrbmVzc1VuaXQ6IDE1ICogMixcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBkZXB0aFRlc3Q6IGZhbHNlLFxuICAgIH0sXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJvcHM6IFByb3BzPEY+KSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICB9XG5cbiAgZ2V0U2hhZGVycygpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgcmV0dXJuIHN1cGVyLmdldFNoYWRlcnMoe1xuICAgICAgdnM6IFZlcnRleFNoYWRlcixcbiAgICAgIGZzOiBGcmFnbWVudFNoYWRlcixcbiAgICAgIG1vZHVsZXM6IFtwcm9qZWN0MzIsIHBpY2tpbmddLFxuICAgICAgc2hhZGVyQ2FjaGU6IHRoaXMuY29udGV4dC5zaGFkZXJDYWNoZSxcbiAgICB9KTtcbiAgfVxuXG4gIGluaXRpYWxpemVTdGF0ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBhdHRyaWJ1dGVNYW5hZ2VyID0gdGhpcy5nZXRBdHRyaWJ1dGVNYW5hZ2VyKCk7XG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuICovXG4gICAgYXR0cmlidXRlTWFuYWdlci5hZGRJbnN0YW5jZWQoe1xuICAgICAgaW5zdGFuY2VTb3VyY2VQb3NpdGlvbnM6IHtcbiAgICAgICAgc2l6ZTogMyxcbiAgICAgICAgdHJhbnNpdGlvbjogdHJ1ZSxcbiAgICAgICAgYWNjZXNzb3I6ICdnZXRTb3VyY2VQb3NpdGlvbicsXG4gICAgICB9LFxuICAgICAgaW5zdGFuY2VUYXJnZXRQb3NpdGlvbnM6IHtcbiAgICAgICAgc2l6ZTogMyxcbiAgICAgICAgdHJhbnNpdGlvbjogdHJ1ZSxcbiAgICAgICAgYWNjZXNzb3I6ICdnZXRUYXJnZXRQb3NpdGlvbicsXG4gICAgICB9LFxuICAgICAgaW5zdGFuY2VDb2xvcnM6IHtcbiAgICAgICAgc2l6ZTogNCxcbiAgICAgICAgdHlwZTogR0wuVU5TSUdORURfQllURSxcbiAgICAgICAgdHJhbnNpdGlvbjogdHJ1ZSxcbiAgICAgICAgYWNjZXNzb3I6ICdnZXRDb2xvcicsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogWzAsIDAsIDAsIDI1NV0sXG4gICAgICB9LFxuICAgICAgaW5zdGFuY2VXaWR0aHM6IHtcbiAgICAgICAgc2l6ZTogMSxcbiAgICAgICAgdHJhbnNpdGlvbjogdHJ1ZSxcbiAgICAgICAgYWNjZXNzb3I6ICdnZXRUaGlja25lc3MnLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IDEsXG4gICAgICB9LFxuICAgICAgaW5zdGFuY2VTdGFnZ2VyaW5nOiB7XG4gICAgICAgIGFjY2Vzc29yOiAnZ2V0U3RhZ2dlcmluZycsXG4gICAgICAgIHNpemU6IDEsXG4gICAgICAgIHRyYW5zaXRpb246IGZhbHNlLFxuICAgICAgfSxcbiAgICAgIGluc3RhbmNlUGlja2FibGU6IHtcbiAgICAgICAgYWNjZXNzb3I6ICdnZXRQaWNrYWJsZScsXG4gICAgICAgIHNpemU6IDEsXG4gICAgICAgIHRyYW5zaXRpb246IGZhbHNlLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICAvKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4gKi9cbiAgfVxuXG4gIGdldE5lZWRzUmVkcmF3KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgdXBkYXRlU3RhdGUoe3Byb3BzLCBvbGRQcm9wcywgY2hhbmdlRmxhZ3N9OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogdm9pZCB7XG4gICAgc3VwZXIudXBkYXRlU3RhdGUoe3Byb3BzLCBvbGRQcm9wcywgY2hhbmdlRmxhZ3N9KTtcblxuICAgIGlmIChjaGFuZ2VGbGFncy5leHRlbnNpb25zQ2hhbmdlZCkge1xuICAgICAgY29uc3Qge2dsfSA9IHRoaXMuY29udGV4dDtcbiAgICAgIGlmICh0aGlzLnN0YXRlLm1vZGVsKSB7XG4gICAgICAgIHRoaXMuc3RhdGUubW9kZWwuZGVsZXRlKCk7XG4gICAgICB9XG4gICAgICB0aGlzLnNldFN0YXRlKHttb2RlbDogdGhpcy5fZ2V0TW9kZWwoZ2wpfSk7XG4gICAgICB0aGlzLmdldEF0dHJpYnV0ZU1hbmFnZXIoKS5pbnZhbGlkYXRlQWxsKCk7XG4gICAgfVxuICB9XG5cbiAgZHJhdyh7dW5pZm9ybXN9OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogdm9pZCB7XG4gICAgY29uc3Qge3RoaWNrbmVzc1VuaXQsIGFuaW1hdGlvblRhaWxMZW5ndGh9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpIC8gMTAwMDtcbiAgICBjb25zdCBhbmltYXRpb25UaW1lID0gKCh0aW1lc3RhbXAgJSBsb29wVGltZSkgLyBsb29wVGltZSkgKiBsb29wTGVuZ3RoO1xuXG4gICAgdGhpcy5zdGF0ZS5tb2RlbFxuICAgICAgLnNldFVuaWZvcm1zKHtcbiAgICAgICAgLi4udW5pZm9ybXMsXG4gICAgICAgIHRoaWNrbmVzc1VuaXQ6IHRoaWNrbmVzc1VuaXQgKiA0LFxuICAgICAgICBhbmltYXRpb25UYWlsTGVuZ3RoLFxuICAgICAgICBjdXJyZW50VGltZTogYW5pbWF0aW9uVGltZSxcbiAgICAgIH0pXG4gICAgICAuZHJhdygpO1xuICB9XG5cbiAgX2dldE1vZGVsKGdsOiBXZWJHTFJlbmRlcmluZ0NvbnRleHQpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgLypcbiAgICAgKiAgKDAsIC0xKS0tLS0tLS0tLS0tLS1fKDEsIC0xKVxuICAgICAqICAgICAgIHwgICAgICAgICAgXywtXCIgIHxcbiAgICAgKiAgICAgICBvICAgICAgXywtXCIgICAgICBvXG4gICAgICogICAgICAgfCAgXywtXCIgICAgICAgICAgfFxuICAgICAqICAgKDAsIDEpXCItLS0tLS0tLS0tLS0tKDEsIDEpXG4gICAgICovXG4gICAgY29uc3QgcG9zaXRpb25zID0gWzAsIC0xLCAwLCAwLCAxLCAwLCAxLCAtMSwgMCwgMSwgMSwgMF07XG5cbiAgICByZXR1cm4gbmV3IE1vZGVsKFxuICAgICAgZ2wsXG4gICAgICBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmdldFNoYWRlcnMoKSwge1xuICAgICAgICBpZDogdGhpcy5wcm9wcy5pZCxcbiAgICAgICAgZ2VvbWV0cnk6IG5ldyBHZW9tZXRyeSh7XG4gICAgICAgICAgZHJhd01vZGU6IEdMLlRSSUFOR0xFX1NUUklQLFxuICAgICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAgIHBvc2l0aW9uczogbmV3IEZsb2F0MzJBcnJheShwb3NpdGlvbnMpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgICBpc0luc3RhbmNlZDogdHJ1ZSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
File without changes
|
package/{dist → dist-es5}/AnimatedFlowLinesLayer/AnimatedFlowLinesLayerFragment.glsl.d.ts.map
RENAMED
|
File without changes
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2022 FlowmapBlue
|
|
4
|
+
* Copyright 2018-2020 Teralytics, modified by FlowmapBlue
|
|
5
|
+
*
|
|
6
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
* you may not use this file except in compliance with the License.
|
|
8
|
+
* You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
* See the License for the specific language governing permissions and
|
|
16
|
+
* limitations under the License.
|
|
17
|
+
*
|
|
18
|
+
*/
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.default = "#define SHADER_NAME animated-flow-lines-layer-fragment-shader\n\nprecision highp float;\n\nuniform float animationTailLength;\n\nvarying vec4 vColor;\nvarying float sourceToTarget;\nvarying vec2 uv;\n \nvoid main(void) {\n geometry.uv = uv;\n\n gl_FragColor = vec4(vColor.xyz, vColor.w * smoothstep(1.0 - animationTailLength, 1.0, fract(sourceToTarget)));\n\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n";
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQW5pbWF0ZWRGbG93TGluZXNMYXllckZyYWdtZW50Lmdsc2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQW5pbWF0ZWRGbG93TGluZXNMYXllci9BbmltYXRlZEZsb3dMaW5lc0xheWVyRnJhZ21lbnQuZ2xzbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7O0FBRUgsa0JBQWUsZ2NBa0JkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMjIgRmxvd21hcEJsdWVcbiAqIENvcHlyaWdodCAyMDE4LTIwMjAgVGVyYWx5dGljcywgbW9kaWZpZWQgYnkgRmxvd21hcEJsdWVcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgYFxcXG4jZGVmaW5lIFNIQURFUl9OQU1FIGFuaW1hdGVkLWZsb3ctbGluZXMtbGF5ZXItZnJhZ21lbnQtc2hhZGVyXG5cbnByZWNpc2lvbiBoaWdocCBmbG9hdDtcblxudW5pZm9ybSBmbG9hdCBhbmltYXRpb25UYWlsTGVuZ3RoO1xuXG52YXJ5aW5nIHZlYzQgdkNvbG9yO1xudmFyeWluZyBmbG9hdCBzb3VyY2VUb1RhcmdldDtcbnZhcnlpbmcgdmVjMiB1djtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG52b2lkIG1haW4odm9pZCkge1xuICBnZW9tZXRyeS51diA9IHV2O1xuXG4gIGdsX0ZyYWdDb2xvciA9IHZlYzQodkNvbG9yLnh5eiwgdkNvbG9yLncgKiBzbW9vdGhzdGVwKDEuMCAtIGFuaW1hdGlvblRhaWxMZW5ndGgsIDEuMCwgZnJhY3Qoc291cmNlVG9UYXJnZXQpKSk7XG5cbiAgREVDS0dMX0ZJTFRFUl9DT0xPUihnbF9GcmFnQ29sb3IsIGdlb21ldHJ5KTtcbn1cbmA7XG4iXX0=
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/*
|
|
4
|
+
* Copyright 2022 FlowmapBlue
|
|
5
|
+
* Copyright 2018-2020 Teralytics, modified by FlowmapBlue
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
* you may not use this file except in compliance with the License.
|
|
9
|
+
* You may obtain a copy of the License at
|
|
10
|
+
*
|
|
11
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
* See the License for the specific language governing permissions and
|
|
17
|
+
* limitations under the License.
|
|
18
|
+
*
|
|
19
|
+
*/
|
|
20
|
+
exports.default = "#define SHADER_NAME animated-flow-lines-layer-vertex-shader\n#define SPEED 0.015\n#define NUM_PARTS 5.0\n\nattribute vec3 positions;\nattribute vec3 instanceSourcePositions;\nattribute vec3 instanceTargetPositions;\nattribute vec3 instanceSourcePositions64Low;\nattribute vec3 instanceTargetPositions64Low;\nattribute vec4 instanceColors;\nattribute vec3 instancePickingColors;\nattribute float instanceWidths;\nattribute float instancePickable;\nattribute float instanceStaggering;\n\nuniform float opacity;\nuniform float currentTime;\nuniform float thicknessUnit;\n \nvarying vec4 vColor;\nvarying float sourceToTarget;\nvarying vec2 uv;\n\n// offset vector by strokeWidth pixels\n// offset_direction is -1 (left) or 1 (right)\nvec2 getExtrusionOffset(vec2 line_clipspace, float offset_direction, float width) {\n // normalized direction of the line\n vec2 dir_screenspace = normalize(line_clipspace * project_uViewportSize);\n // rotate by 90 degrees\n dir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x);\n\n return dir_screenspace * offset_direction * width / 2.0;\n}\n\nvoid main(void) {\n geometry.worldPosition = instanceSourcePositions;\n geometry.worldPositionAlt = instanceTargetPositions;\n\n // Position\n vec4 source_commonspace;\n vec4 target_commonspace;\n vec4 source = project_position_to_clipspace(instanceSourcePositions, instanceSourcePositions64Low, vec3(0.), source_commonspace);\n vec4 target = project_position_to_clipspace(instanceTargetPositions, instanceTargetPositions64Low, vec3(0.), target_commonspace);\n\n float widthPixels = instanceWidths * thicknessUnit;\n \n \n // linear interpolation of source & target to pick right coord\n float segmentIndex = positions.x;\n vec4 p = mix(source, target, segmentIndex);\n geometry.position = mix(source_commonspace, target_commonspace, segmentIndex);\n uv = positions.xy;\n geometry.uv = uv;\n if (instancePickable > 0.5) {\n geometry.pickingColor = instancePickingColors;\n }\n \n // extrude\n vec3 offset = vec3(\n getExtrusionOffset(target.xy - source.xy, positions.y, widthPixels),\n 0.0);\n DECKGL_FILTER_SIZE(offset, geometry);\n gl_Position = p + vec4(project_pixel_size_to_clipspace(offset.xy), 0.0, 0.0);\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n\n // Color\n vColor = vec4(instanceColors.rgb, instanceColors.a * opacity) / 255.;\n DECKGL_FILTER_COLOR(vColor, geometry);\n\n sourceToTarget = positions.x * length(source - target) * NUM_PARTS - currentTime * SPEED + instanceStaggering; \n}\n";
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQW5pbWF0ZWRGbG93TGluZXNMYXllclZlcnRleC5nbHNsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0FuaW1hdGVkRmxvd0xpbmVzTGF5ZXIvQW5pbWF0ZWRGbG93TGluZXNMYXllclZlcnRleC5nbHNsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCxrQkFBZSxnL0VBd0VkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMjIgRmxvd21hcEJsdWVcbiAqIENvcHlyaWdodCAyMDE4LTIwMjAgVGVyYWx5dGljcywgbW9kaWZpZWQgYnkgRmxvd21hcEJsdWVcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGBcXFxuI2RlZmluZSBTSEFERVJfTkFNRSBhbmltYXRlZC1mbG93LWxpbmVzLWxheWVyLXZlcnRleC1zaGFkZXJcbiNkZWZpbmUgU1BFRUQgMC4wMTVcbiNkZWZpbmUgTlVNX1BBUlRTIDUuMFxuXG5hdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbnM7XG5hdHRyaWJ1dGUgdmVjMyBpbnN0YW5jZVNvdXJjZVBvc2l0aW9ucztcbmF0dHJpYnV0ZSB2ZWMzIGluc3RhbmNlVGFyZ2V0UG9zaXRpb25zO1xuYXR0cmlidXRlIHZlYzMgaW5zdGFuY2VTb3VyY2VQb3NpdGlvbnM2NExvdztcbmF0dHJpYnV0ZSB2ZWMzIGluc3RhbmNlVGFyZ2V0UG9zaXRpb25zNjRMb3c7XG5hdHRyaWJ1dGUgdmVjNCBpbnN0YW5jZUNvbG9ycztcbmF0dHJpYnV0ZSB2ZWMzIGluc3RhbmNlUGlja2luZ0NvbG9ycztcbmF0dHJpYnV0ZSBmbG9hdCBpbnN0YW5jZVdpZHRocztcbmF0dHJpYnV0ZSBmbG9hdCBpbnN0YW5jZVBpY2thYmxlO1xuYXR0cmlidXRlIGZsb2F0IGluc3RhbmNlU3RhZ2dlcmluZztcblxudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xudW5pZm9ybSBmbG9hdCBjdXJyZW50VGltZTtcbnVuaWZvcm0gZmxvYXQgdGhpY2tuZXNzVW5pdDtcbiAgICBcbnZhcnlpbmcgdmVjNCB2Q29sb3I7XG52YXJ5aW5nIGZsb2F0IHNvdXJjZVRvVGFyZ2V0O1xudmFyeWluZyB2ZWMyIHV2O1xuXG4vLyBvZmZzZXQgdmVjdG9yIGJ5IHN0cm9rZVdpZHRoIHBpeGVsc1xuLy8gb2Zmc2V0X2RpcmVjdGlvbiBpcyAtMSAobGVmdCkgb3IgMSAocmlnaHQpXG52ZWMyIGdldEV4dHJ1c2lvbk9mZnNldCh2ZWMyIGxpbmVfY2xpcHNwYWNlLCBmbG9hdCBvZmZzZXRfZGlyZWN0aW9uLCBmbG9hdCB3aWR0aCkge1xuICAvLyBub3JtYWxpemVkIGRpcmVjdGlvbiBvZiB0aGUgbGluZVxuICB2ZWMyIGRpcl9zY3JlZW5zcGFjZSA9IG5vcm1hbGl6ZShsaW5lX2NsaXBzcGFjZSAqIHByb2plY3RfdVZpZXdwb3J0U2l6ZSk7XG4gIC8vIHJvdGF0ZSBieSA5MCBkZWdyZWVzXG4gIGRpcl9zY3JlZW5zcGFjZSA9IHZlYzIoLWRpcl9zY3JlZW5zcGFjZS55LCBkaXJfc2NyZWVuc3BhY2UueCk7XG5cbiAgcmV0dXJuIGRpcl9zY3JlZW5zcGFjZSAqIG9mZnNldF9kaXJlY3Rpb24gKiB3aWR0aCAvIDIuMDtcbn1cblxudm9pZCBtYWluKHZvaWQpIHtcbiAgZ2VvbWV0cnkud29ybGRQb3NpdGlvbiA9IGluc3RhbmNlU291cmNlUG9zaXRpb25zO1xuICBnZW9tZXRyeS53b3JsZFBvc2l0aW9uQWx0ID0gaW5zdGFuY2VUYXJnZXRQb3NpdGlvbnM7XG5cbiAgLy8gUG9zaXRpb25cbiAgdmVjNCBzb3VyY2VfY29tbW9uc3BhY2U7XG4gIHZlYzQgdGFyZ2V0X2NvbW1vbnNwYWNlO1xuICB2ZWM0IHNvdXJjZSA9IHByb2plY3RfcG9zaXRpb25fdG9fY2xpcHNwYWNlKGluc3RhbmNlU291cmNlUG9zaXRpb25zLCBpbnN0YW5jZVNvdXJjZVBvc2l0aW9uczY0TG93LCB2ZWMzKDAuKSwgc291cmNlX2NvbW1vbnNwYWNlKTtcbiAgdmVjNCB0YXJnZXQgPSBwcm9qZWN0X3Bvc2l0aW9uX3RvX2NsaXBzcGFjZShpbnN0YW5jZVRhcmdldFBvc2l0aW9ucywgaW5zdGFuY2VUYXJnZXRQb3NpdGlvbnM2NExvdywgdmVjMygwLiksIHRhcmdldF9jb21tb25zcGFjZSk7XG5cbiAgZmxvYXQgd2lkdGhQaXhlbHMgPSBpbnN0YW5jZVdpZHRocyAqIHRoaWNrbmVzc1VuaXQ7XG4gIFxuICBcbiAgLy8gbGluZWFyIGludGVycG9sYXRpb24gb2Ygc291cmNlICYgdGFyZ2V0IHRvIHBpY2sgcmlnaHQgY29vcmRcbiAgZmxvYXQgc2VnbWVudEluZGV4ID0gcG9zaXRpb25zLng7XG4gIHZlYzQgcCA9IG1peChzb3VyY2UsIHRhcmdldCwgc2VnbWVudEluZGV4KTtcbiAgZ2VvbWV0cnkucG9zaXRpb24gPSBtaXgoc291cmNlX2NvbW1vbnNwYWNlLCB0YXJnZXRfY29tbW9uc3BhY2UsIHNlZ21lbnRJbmRleCk7XG4gIHV2ID0gcG9zaXRpb25zLnh5O1xuICBnZW9tZXRyeS51diA9IHV2O1xuICBpZiAoaW5zdGFuY2VQaWNrYWJsZSA+IDAuNSkge1xuICAgIGdlb21ldHJ5LnBpY2tpbmdDb2xvciA9IGluc3RhbmNlUGlja2luZ0NvbG9ycztcbiAgfVxuICBcbiAgLy8gZXh0cnVkZVxuICB2ZWMzIG9mZnNldCA9IHZlYzMoXG4gICAgZ2V0RXh0cnVzaW9uT2Zmc2V0KHRhcmdldC54eSAtIHNvdXJjZS54eSwgcG9zaXRpb25zLnksIHdpZHRoUGl4ZWxzKSxcbiAgICAwLjApO1xuICBERUNLR0xfRklMVEVSX1NJWkUob2Zmc2V0LCBnZW9tZXRyeSk7XG4gIGdsX1Bvc2l0aW9uID0gcCArIHZlYzQocHJvamVjdF9waXhlbF9zaXplX3RvX2NsaXBzcGFjZShvZmZzZXQueHkpLCAwLjAsIDAuMCk7XG4gIERFQ0tHTF9GSUxURVJfR0xfUE9TSVRJT04oZ2xfUG9zaXRpb24sIGdlb21ldHJ5KTtcblxuICAvLyBDb2xvclxuICB2Q29sb3IgPSB2ZWM0KGluc3RhbmNlQ29sb3JzLnJnYiwgaW5zdGFuY2VDb2xvcnMuYSAqIG9wYWNpdHkpIC8gMjU1LjtcbiAgREVDS0dMX0ZJTFRFUl9DT0xPUih2Q29sb3IsIGdlb21ldHJ5KTtcblxuICBzb3VyY2VUb1RhcmdldCA9IHBvc2l0aW9ucy54ICogbGVuZ3RoKHNvdXJjZSAtIHRhcmdldCkgKiBOVU1fUEFSVFMgLSBjdXJyZW50VGltZSAqIFNQRUVEICsgaW5zdGFuY2VTdGFnZ2VyaW5nOyBcbn1cbmA7XG4iXX0=
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
var AnimatedFlowLinesLayer_1 = __importDefault(require("./AnimatedFlowLinesLayer"));
|
|
7
|
+
exports.default = AnimatedFlowLinesLayer_1.default;
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQW5pbWF0ZWRGbG93TGluZXNMYXllci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG9GQUE4RDtBQUU5RCxrQkFBZSxnQ0FBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBBbmltYXRlZEZsb3dMaW5lc0xheWVyIGZyb20gJy4vQW5pbWF0ZWRGbG93TGluZXNMYXllcic7XG5cbmV4cG9ydCBkZWZhdWx0IEFuaW1hdGVkRmxvd0xpbmVzTGF5ZXI7XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FlowCirclesLayer.d.ts","sourceRoot":"","sources":["../../src/FlowCirclesLayer/FlowCirclesLayer.ts"],"names":[],"mappings":";AAkBA,OAAO,EAAC,KAAK,EAAqB,MAAM,eAAe,CAAC;AAKxD,OAAO,EAAC,0BAA0B,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AAEpC,oBAAY,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEvD,MAAM,WAAW,KAAM,SAAQ,UAAU;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACzC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxD,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,MAAM,CAAC;IAC9C,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,MAAM,CAAC;IAC/C,IAAI,EAAE,gBAAgB,EAAE,GAAG,0BAA0B,CAAC;IACtD,cAAc,CAAC,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAC,CAAC;CAC3D;AAMD,cAAM,gBAAiB,SAAQ,KAAK;IAClC,MAAM,CAAC,SAAS,SAAsB;IAEtC,MAAM,CAAC,YAAY;;;;;;;;;;;;;;;uBAI0B,gBAAgB;;;;;;;;;;;;;MAM3D;gBAGU,KAAK,EAAE,KAAK;IAIxB,UAAU;IAQV,eAAe;IA+Bf,WAAW,CAAC,EAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAC,EAAE,GAAG;IAY/C,IAAI,CAAC,EAAC,QAAQ,EAAC,EAAE,GAAG;IAWpB,SAAS,CAAC,EAAE,EAAE,qBAAqB;CAmBpC;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2022 FlowmapBlue
|
|
4
|
+
* Copyright 2018-2020 Teralytics, modified by FlowmapBlue
|
|
5
|
+
*
|
|
6
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
* you may not use this file except in compliance with the License.
|
|
8
|
+
* You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
* See the License for the specific language governing permissions and
|
|
16
|
+
* limitations under the License.
|
|
17
|
+
*
|
|
18
|
+
*/
|
|
19
|
+
var __extends = (this && this.__extends) || (function () {
|
|
20
|
+
var extendStatics = function (d, b) {
|
|
21
|
+
extendStatics = Object.setPrototypeOf ||
|
|
22
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
23
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
24
|
+
return extendStatics(d, b);
|
|
25
|
+
};
|
|
26
|
+
return function (d, b) {
|
|
27
|
+
if (typeof b !== "function" && b !== null)
|
|
28
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
29
|
+
extendStatics(d, b);
|
|
30
|
+
function __() { this.constructor = d; }
|
|
31
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
32
|
+
};
|
|
33
|
+
})();
|
|
34
|
+
var __assign = (this && this.__assign) || function () {
|
|
35
|
+
__assign = Object.assign || function(t) {
|
|
36
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
37
|
+
s = arguments[i];
|
|
38
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
39
|
+
t[p] = s[p];
|
|
40
|
+
}
|
|
41
|
+
return t;
|
|
42
|
+
};
|
|
43
|
+
return __assign.apply(this, arguments);
|
|
44
|
+
};
|
|
45
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
46
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
47
|
+
};
|
|
48
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
49
|
+
var core_1 = require("@deck.gl/core");
|
|
50
|
+
var constants_1 = __importDefault(require("@luma.gl/constants"));
|
|
51
|
+
var core_2 = require("@luma.gl/core");
|
|
52
|
+
var FlowCirclesLayerFragment_glsl_1 = __importDefault(require("./FlowCirclesLayerFragment.glsl"));
|
|
53
|
+
var FlowCirclesLayerVertex_glsl_1 = __importDefault(require("./FlowCirclesLayerVertex.glsl"));
|
|
54
|
+
var DEFAULT_COLOR = [0, 0, 0, 255];
|
|
55
|
+
var DEFAULT_EMPTY_COLOR = [255, 255, 255, 255];
|
|
56
|
+
var DEFAULT_OUTLINE_EMPTY_MIX = 0.4;
|
|
57
|
+
var FlowCirclesLayer = /** @class */ (function (_super) {
|
|
58
|
+
__extends(FlowCirclesLayer, _super);
|
|
59
|
+
// props!: Props;
|
|
60
|
+
function FlowCirclesLayer(props) {
|
|
61
|
+
return _super.call(this, props) || this;
|
|
62
|
+
}
|
|
63
|
+
FlowCirclesLayer.prototype.getShaders = function () {
|
|
64
|
+
return _super.prototype.getShaders.call(this, {
|
|
65
|
+
vs: FlowCirclesLayerVertex_glsl_1.default,
|
|
66
|
+
fs: FlowCirclesLayerFragment_glsl_1.default,
|
|
67
|
+
modules: [core_1.project32, core_1.picking],
|
|
68
|
+
});
|
|
69
|
+
};
|
|
70
|
+
FlowCirclesLayer.prototype.initializeState = function () {
|
|
71
|
+
this.getAttributeManager().addInstanced({
|
|
72
|
+
instancePositions: {
|
|
73
|
+
size: 3,
|
|
74
|
+
type: constants_1.default.DOUBLE,
|
|
75
|
+
fp64: this.use64bitPositions(),
|
|
76
|
+
transition: true,
|
|
77
|
+
accessor: 'getPosition',
|
|
78
|
+
},
|
|
79
|
+
instanceInRadius: {
|
|
80
|
+
size: 1,
|
|
81
|
+
transition: true,
|
|
82
|
+
accessor: 'getInRadius',
|
|
83
|
+
defaultValue: 1,
|
|
84
|
+
},
|
|
85
|
+
instanceOutRadius: {
|
|
86
|
+
size: 1,
|
|
87
|
+
transition: true,
|
|
88
|
+
accessor: 'getOutRadius',
|
|
89
|
+
defaultValue: 1,
|
|
90
|
+
},
|
|
91
|
+
instanceColors: {
|
|
92
|
+
size: 4,
|
|
93
|
+
transition: true,
|
|
94
|
+
type: constants_1.default.UNSIGNED_BYTE,
|
|
95
|
+
accessor: 'getColor',
|
|
96
|
+
defaultValue: DEFAULT_COLOR,
|
|
97
|
+
},
|
|
98
|
+
});
|
|
99
|
+
};
|
|
100
|
+
FlowCirclesLayer.prototype.updateState = function (_a) {
|
|
101
|
+
var props = _a.props, oldProps = _a.oldProps, changeFlags = _a.changeFlags;
|
|
102
|
+
_super.prototype.updateState.call(this, { props: props, oldProps: oldProps, changeFlags: changeFlags });
|
|
103
|
+
if (changeFlags.extensionsChanged) {
|
|
104
|
+
var gl = this.context.gl;
|
|
105
|
+
if (this.state.model) {
|
|
106
|
+
this.state.model.delete();
|
|
107
|
+
}
|
|
108
|
+
this.setState({ model: this._getModel(gl) });
|
|
109
|
+
this.getAttributeManager().invalidateAll();
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
FlowCirclesLayer.prototype.draw = function (_a) {
|
|
113
|
+
var uniforms = _a.uniforms;
|
|
114
|
+
var _b = this.props, emptyColor = _b.emptyColor, outlineEmptyMix = _b.outlineEmptyMix;
|
|
115
|
+
this.state.model
|
|
116
|
+
.setUniforms(__assign(__assign({}, uniforms), { emptyColor: emptyColor, outlineEmptyMix: outlineEmptyMix }))
|
|
117
|
+
.draw();
|
|
118
|
+
};
|
|
119
|
+
FlowCirclesLayer.prototype._getModel = function (gl) {
|
|
120
|
+
// a square that minimally cover the unit circle
|
|
121
|
+
var positions = [-1, -1, 0, 1, -1, 0, 1, 1, 0, -1, 1, 0];
|
|
122
|
+
return new core_2.Model(gl, Object.assign(this.getShaders(), {
|
|
123
|
+
id: this.props.id,
|
|
124
|
+
geometry: new core_2.Geometry({
|
|
125
|
+
drawMode: constants_1.default.TRIANGLE_FAN,
|
|
126
|
+
vertexCount: 4,
|
|
127
|
+
attributes: {
|
|
128
|
+
positions: { size: 3, value: new Float32Array(positions) },
|
|
129
|
+
},
|
|
130
|
+
}),
|
|
131
|
+
isInstanced: true,
|
|
132
|
+
}));
|
|
133
|
+
};
|
|
134
|
+
FlowCirclesLayer.layerName = 'FlowCirclesLayer';
|
|
135
|
+
FlowCirclesLayer.defaultProps = {
|
|
136
|
+
getColor: { type: 'accessor', value: DEFAULT_COLOR },
|
|
137
|
+
emptyColor: { type: 'accessor', value: DEFAULT_EMPTY_COLOR },
|
|
138
|
+
outlineEmptyMix: { type: 'accessor', value: DEFAULT_OUTLINE_EMPTY_MIX },
|
|
139
|
+
getPosition: { type: 'accessor', value: function (d) { return d.position; } },
|
|
140
|
+
getInRadius: { type: 'accessor', value: 1 },
|
|
141
|
+
getOutRadius: { type: 'accessor', value: 1 },
|
|
142
|
+
parameters: {
|
|
143
|
+
depthTest: false,
|
|
144
|
+
},
|
|
145
|
+
};
|
|
146
|
+
return FlowCirclesLayer;
|
|
147
|
+
}(core_1.Layer));
|
|
148
|
+
exports.default = FlowCirclesLayer;
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxvd0NpcmNsZXNMYXllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9GbG93Q2lyY2xlc0xheWVyL0Zsb3dDaXJjbGVzTGF5ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsc0NBQXdEO0FBQ3hELGlFQUFvQztBQUNwQyxzQ0FBOEM7QUFDOUMsa0dBQTZEO0FBQzdELDhGQUF5RDtBQW9CekQsSUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUNyQyxJQUFNLG1CQUFtQixHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDakQsSUFBTSx5QkFBeUIsR0FBRyxHQUFHLENBQUM7QUFFdEM7SUFBK0Isb0NBQUs7SUFjbEMsaUJBQWlCO0lBRWpCLDBCQUFZLEtBQVk7ZUFDdEIsa0JBQU0sS0FBSyxDQUFDO0lBQ2QsQ0FBQztJQUVELHFDQUFVLEdBQVY7UUFDRSxPQUFPLGlCQUFNLFVBQVUsWUFBQztZQUN0QixFQUFFLEVBQUUscUNBQVk7WUFDaEIsRUFBRSxFQUFFLHVDQUFjO1lBQ2xCLE9BQU8sRUFBRSxDQUFDLGdCQUFTLEVBQUUsY0FBTyxDQUFDO1NBQzlCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCwwQ0FBZSxHQUFmO1FBQ0UsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsWUFBWSxDQUFDO1lBQ3RDLGlCQUFpQixFQUFFO2dCQUNqQixJQUFJLEVBQUUsQ0FBQztnQkFDUCxJQUFJLEVBQUUsbUJBQUUsQ0FBQyxNQUFNO2dCQUNmLElBQUksRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7Z0JBQzlCLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixRQUFRLEVBQUUsYUFBYTthQUN4QjtZQUNELGdC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QUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUM7UUFDMUQsZUFBZSxFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUseUJBQXlCLEVBQUM7UUFDckUsV0FBVyxFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsVUFBQyxDQUFtQixJQUFLLE9BQUEsQ0FBQyxDQUFDLFFBQVEsRUFBVixDQUFVLEVBQUM7UUFDM0UsV0FBVyxFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFDO1FBQ3pDLFlBQVksRUFBRSxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBQztRQUMxQyxVQUFVLEVBQUU7WUFDVixTQUFTLEVBQUUsS0FBSztTQUNqQjtLQUNGLENBQUM7SUF3RkosdUJBQUM7Q0FBQSxBQXJHRCxDQUErQixZQUFLLEdBcUduQztBQUVELGtCQUFlLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIyIEZsb3dtYXBCbHVlXG4gKiBDb3B5cmlnaHQgMjAxOC0yMDIwIFRlcmFseXRpY3MsIG1vZGlmaWVkIGJ5IEZsb3dtYXBCbHVlXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKlxuICovXG5cbmltcG9ydCB7TGF5ZXIsIHBpY2tpbmcsIHByb2plY3QzMn0gZnJvbSAnQGRlY2suZ2wvY29yZSc7XG5pbXBvcnQgR0wgZnJvbSAnQGx1bWEuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7R2VvbWV0cnksIE1vZGVsfSBmcm9tICdAbHVtYS5nbC9jb3JlJztcbmltcG9ydCBGcmFnbWVudFNoYWRlciBmcm9tICcuL0Zsb3dDaXJjbGVzTGF5ZXJGcmFnbWVudC5nbHNsJztcbmltcG9ydCBWZXJ0ZXhTaGFkZXIgZnJvbSAnLi9GbG93Q2lyY2xlc0xheWVyVmVydGV4Lmdsc2wnO1xuaW1wb3J0IHtGbG93Q2lyY2xlc0xheWVyQXR0cmlidXRlcywgUkdCQX0gZnJvbSAnQGZsb3dtYXAuZ2wvZGF0YSc7XG5pbXBvcnQge0xheWVyUHJvcHN9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IHR5cGUgRmxvd0NpcmNsZXNEYXR1bSA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb3BzIGV4dGVuZHMgTGF5ZXJQcm9wcyB7XG4gIGlkOiBzdHJpbmc7XG4gIG9wYWNpdHk/OiBudW1iZXI7XG4gIHBpY2thYmxlPzogYm9vbGVhbjtcbiAgZW1wdHlDb2xvcj86IFJHQkE7XG4gIG91dGxpbmVFbXB0eU1peD86IG51bWJlcjtcbiAgZ2V0Q29sb3I/OiAoZDogRmxvd0NpcmNsZXNEYXR1bSkgPT4gUkdCQTtcbiAgZ2V0UG9zaXRpb24/OiAoZDogRmxvd0NpcmNsZXNEYXR1bSkgPT4gW251bWJlciwgbnVtYmVyXTtcbiAgZ2V0SW5SYWRpdXM/OiAoZDogRmxvd0NpcmNsZXNEYXR1bSkgPT4gbnVtYmVyO1xuICBnZXRPdXRSYWRpdXM/OiAoZDogRmxvd0NpcmNsZXNEYXR1bSkgPT4gbnVtYmVyO1xuICBkYXRhOiBGbG93Q2lyY2xlc0RhdHVtW10gfCBGbG93Q2lyY2xlc0xheWVyQXR0cmlidXRlcztcbiAgdXBkYXRlVHJpZ2dlcnM/OiB7W2tleTogc3RyaW5nXTogUmVjb3JkPHN0cmluZywgdW5rbm93bj59O1xufVxuXG5jb25zdCBERUZBVUxUX0NPTE9SID0gWzAsIDAsIDAsIDI1NV07XG5jb25zdCBERUZBVUxUX0VNUFRZX0NPTE9SID0gWzI1NSwgMjU1LCAyNTUsIDI1NV07XG5jb25zdCBERUZBVUxUX09VVExJTkVfRU1QVFlfTUlYID0gMC40O1xuXG5jbGFzcyBGbG93Q2lyY2xlc0xheWVyIGV4dGVuZHMgTGF5ZXIge1xuICBzdGF0aWMgbGF5ZXJOYW1lID0gJ0Zsb3dDaXJjbGVzTGF5ZXInO1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgZ2V0Q29sb3I6IHt0eXBlOiAnYWNjZXNzb3InLCB2YWx1ZTogREVGQVVMVF9DT0xPUn0sXG4gICAgZW1wdHlDb2xvcjoge3R5cGU6ICdhY2Nlc3NvcicsIHZhbHVlOiBERUZBVUxUX0VNUFRZX0NPTE9SfSxcbiAgICBvdXRsaW5lRW1wdHlNaXg6IHt0eXBlOiAnYWNjZXNzb3InLCB2YWx1ZTogREVGQVVMVF9PVVRMSU5FX0VNUFRZX01JWH0sXG4gICAgZ2V0UG9zaXRpb246IHt0eXBlOiAnYWNjZXNzb3InLCB2YWx1ZTogKGQ6IEZsb3dDaXJjbGVzRGF0dW0pID0+IGQucG9zaXRpb259LFxuICAgIGdldEluUmFkaXVzOiB7dHlwZTogJ2FjY2Vzc29yJywgdmFsdWU6IDF9LFxuICAgIGdldE91dFJhZGl1czoge3R5cGU6ICdhY2Nlc3NvcicsIHZhbHVlOiAxfSxcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBkZXB0aFRlc3Q6IGZhbHNlLFxuICAgIH0sXG4gIH07XG4gIC8vIHByb3BzITogUHJvcHM7XG5cbiAgY29uc3RydWN0b3IocHJvcHM6IFByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICB9XG5cbiAgZ2V0U2hhZGVycygpIHtcbiAgICByZXR1cm4gc3VwZXIuZ2V0U2hhZGVycyh7XG4gICAgICB2czogVmVydGV4U2hhZGVyLFxuICAgICAgZnM6IEZyYWdtZW50U2hhZGVyLFxuICAgICAgbW9kdWxlczogW3Byb2plY3QzMiwgcGlja2luZ10sXG4gICAgfSk7XG4gIH1cblxuICBpbml0aWFsaXplU3RhdGUoKSB7XG4gICAgdGhpcy5nZXRBdHRyaWJ1dGVNYW5hZ2VyKCkuYWRkSW5zdGFuY2VkKHtcbiAgICAgIGluc3RhbmNlUG9zaXRpb25zOiB7XG4gICAgICAgIHNpemU6IDMsXG4gICAgICAgIHR5cGU6IEdMLkRPVUJMRSxcbiAgICAgICAgZnA2NDogdGhpcy51c2U2NGJpdFBvc2l0aW9ucygpLFxuICAgICAgICB0cmFuc2l0aW9uOiB0cnVlLFxuICAgICAgICBhY2Nlc3NvcjogJ2dldFBvc2l0aW9uJyxcbiAgICAgIH0sXG4gICAgICBpbnN0YW5jZUluUmFkaXVzOiB7XG4gICAgICAgIHNpemU6IDEsXG4gICAgICAgIHRyYW5zaXRpb246IHRydWUsXG4gICAgICAgIGFjY2Vzc29yOiAnZ2V0SW5SYWRpdXMnLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IDEsXG4gICAgICB9LFxuICAgICAgaW5zdGFuY2VPdXRSYWRpdXM6IHtcbiAgICAgICAgc2l6ZTogMSxcbiAgICAgICAgdHJhbnNpdGlvbjogdHJ1ZSxcbiAgICAgICAgYWNjZXNzb3I6ICdnZXRPdXRSYWRpdXMnLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IDEsXG4gICAgICB9LFxuICAgICAgaW5zdGFuY2VDb2xvcnM6IHtcbiAgICAgICAgc2l6ZTogNCxcbiAgICAgICAgdHJhbnNpdGlvbjogdHJ1ZSxcbiAgICAgICAgdHlwZTogR0wuVU5TSUdORURfQllURSxcbiAgICAgICAgYWNjZXNzb3I6ICdnZXRDb2xvcicsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogREVGQVVMVF9DT0xPUixcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICB1cGRhdGVTdGF0ZSh7cHJvcHMsIG9sZFByb3BzLCBjaGFuZ2VGbGFnc306IGFueSkge1xuICAgIHN1cGVyLnVwZGF0ZVN0YXRlKHtwcm9wcywgb2xkUHJvcHMsIGNoYW5nZUZsYWdzfSk7XG4gICAgaWYgKGNoYW5nZUZsYWdzLmV4dGVuc2lvbnNDaGFuZ2VkKSB7XG4gICAgICBjb25zdCB7Z2x9ID0gdGhpcy5jb250ZXh0O1xuICAgICAgaWYgKHRoaXMuc3RhdGUubW9kZWwpIHtcbiAgICAgICAgdGhpcy5zdGF0ZS5tb2RlbC5kZWxldGUoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2V0U3RhdGUoe21vZGVsOiB0aGlzLl9nZXRNb2RlbChnbCl9KTtcbiAgICAgIHRoaXMuZ2V0QXR0cmlidXRlTWFuYWdlcigpLmludmFsaWRhdGVBbGwoKTtcbiAgICB9XG4gIH1cblxuICBkcmF3KHt1bmlmb3Jtc306IGFueSkge1xuICAgIGNvbnN0IHtlbXB0eUNvbG9yLCBvdXRsaW5lRW1wdHlNaXh9ID0gdGhpcy5wcm9wcztcbiAgICB0aGlzLnN0YXRlLm1vZGVsXG4gICAgICAuc2V0VW5pZm9ybXMoe1xuICAgICAgICAuLi51bmlmb3JtcyxcbiAgICAgICAgZW1wdHlDb2xvcixcbiAgICAgICAgb3V0bGluZUVtcHR5TWl4LFxuICAgICAgfSlcbiAgICAgIC5kcmF3KCk7XG4gIH1cblxuICBfZ2V0TW9kZWwoZ2w6IFdlYkdMUmVuZGVyaW5nQ29udGV4dCkge1xuICAgIC8vIGEgc3F1YXJlIHRoYXQgbWluaW1hbGx5IGNvdmVyIHRoZSB1bml0IGNpcmNsZVxuICAgIGNvbnN0IHBvc2l0aW9ucyA9IFstMSwgLTEsIDAsIDEsIC0xLCAwLCAxLCAxLCAwLCAtMSwgMSwgMF07XG5cbiAgICByZXR1cm4gbmV3IE1vZGVsKFxuICAgICAgZ2wsXG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMuZ2V0U2hhZGVycygpLCB7XG4gICAgICAgIGlkOiB0aGlzLnByb3BzLmlkLFxuICAgICAgICBnZW9tZXRyeTogbmV3IEdlb21ldHJ5KHtcbiAgICAgICAgICBkcmF3TW9kZTogR0wuVFJJQU5HTEVfRkFOLFxuICAgICAgICAgIHZlcnRleENvdW50OiA0LFxuICAgICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAgIHBvc2l0aW9uczoge3NpemU6IDMsIHZhbHVlOiBuZXcgRmxvYXQzMkFycmF5KHBvc2l0aW9ucyl9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgICBpc0luc3RhbmNlZDogdHJ1ZSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgRmxvd0NpcmNsZXNMYXllcjtcbiJdfQ==
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/*
|
|
4
|
+
* Copyright 2022 FlowmapBlue
|
|
5
|
+
* Copyright 2018-2020 Teralytics, modified by FlowmapBlue
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
* you may not use this file except in compliance with the License.
|
|
9
|
+
* You may obtain a copy of the License at
|
|
10
|
+
*
|
|
11
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
* See the License for the specific language governing permissions and
|
|
17
|
+
* limitations under the License.
|
|
18
|
+
*
|
|
19
|
+
*/
|
|
20
|
+
exports.default = "#define SHADER_NAME flow-circles-layer-fragment-shader\n#define SOFT_OUTLINE 0.05\n#define EPS 0.05\nprecision highp float;\n\nuniform vec4 emptyColor;\nuniform float outlineEmptyMix;\n\nvarying vec4 vColor;\nvarying vec2 unitPosition;\nvarying float unitInRadius;\nvarying float unitOutRadius;\n\nfloat when_gt(float x, float y) {\n return max(sign(x - y), 0.0);\n}\n\nvoid main(void) {\n geometry.uv = unitPosition;\n float distToCenter = length(unitPosition);\n if (distToCenter > 1.0) {\n discard;\n }\n\n // See https://stackoverflow.com/questions/47285778\n vec4 ringColor = mix(\n emptyColor / 255., vColor,\n when_gt(unitInRadius, unitOutRadius)\n );\n vec4 outlineColor = mix(\n mix(vColor, emptyColor / 255., outlineEmptyMix),\n vColor,\n when_gt(unitInRadius, unitOutRadius)\n );\n \n float innerR = min(unitInRadius, unitOutRadius) * (1.0 - SOFT_OUTLINE);\n \n // Inner circle\n float step2 = innerR - 2.0 * EPS; \n float step3 = innerR - EPS;\n \n // Ring\n float step4 = innerR;\n // float step5 = 1.0 - SOFT_OUTLINE - EPS;\n // float step6 = 1.0 - SOFT_OUTLINE;\n float step5 = 1.0 - 5.0 * EPS;\n float step6 = 1.0;\n \n gl_FragColor = vColor;\n gl_FragColor = mix(gl_FragColor, emptyColor / 255., smoothstep(step2, step3, distToCenter));\n gl_FragColor = mix(gl_FragColor, ringColor, smoothstep(step3, step4, distToCenter));\n gl_FragColor = mix(gl_FragColor, outlineColor, smoothstep(step5, step6, distToCenter));\n // gl_FragColor = mix(gl_FragColor, emptyColor / 255., smoothstep(step6, 1.0, distToCenter));\n gl_FragColor.a *= smoothstep(0.0, SOFT_OUTLINE, 1.0 - distToCenter);\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n";
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxvd0NpcmNsZXNMYXllckZyYWdtZW50Lmdsc2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvRmxvd0NpcmNsZXNMYXllci9GbG93Q2lyY2xlc0xheWVyRnJhZ21lbnQuZ2xzbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsa0JBQWUsb3FEQXlEZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIyIEZsb3dtYXBCbHVlXG4gKiBDb3B5cmlnaHQgMjAxOC0yMDIwIFRlcmFseXRpY3MsIG1vZGlmaWVkIGJ5IEZsb3dtYXBCbHVlXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKlxuICovXG5leHBvcnQgZGVmYXVsdCBgXFxcbiNkZWZpbmUgU0hBREVSX05BTUUgZmxvdy1jaXJjbGVzLWxheWVyLWZyYWdtZW50LXNoYWRlclxuI2RlZmluZSBTT0ZUX09VVExJTkUgMC4wNVxuI2RlZmluZSBFUFMgMC4wNVxucHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuXG51bmlmb3JtIHZlYzQgZW1wdHlDb2xvcjtcbnVuaWZvcm0gZmxvYXQgb3V0bGluZUVtcHR5TWl4O1xuXG52YXJ5aW5nIHZlYzQgdkNvbG9yO1xudmFyeWluZyB2ZWMyIHVuaXRQb3NpdGlvbjtcbnZhcnlpbmcgZmxvYXQgdW5pdEluUmFkaXVzO1xudmFyeWluZyBmbG9hdCB1bml0T3V0UmFkaXVzO1xuXG5mbG9hdCB3aGVuX2d0KGZsb2F0IHgsIGZsb2F0IHkpIHtcbiAgcmV0dXJuIG1heChzaWduKHggLSB5KSwgMC4wKTtcbn1cblxudm9pZCBtYWluKHZvaWQpIHtcbiAgZ2VvbWV0cnkudXYgPSB1bml0UG9zaXRpb247XG4gIGZsb2F0IGRpc3RUb0NlbnRlciA9IGxlbmd0aCh1bml0UG9zaXRpb24pO1xuICBpZiAoZGlzdFRvQ2VudGVyID4gMS4wKSB7XG4gICAgZGlzY2FyZDtcbiAgfVxuXG4gIC8vIFNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80NzI4NTc3OFxuICB2ZWM0IHJpbmdDb2xvciA9IG1peChcbiAgICBlbXB0eUNvbG9yIC8gMjU1LiwgdkNvbG9yLFxuICAgIHdoZW5fZ3QodW5pdEluUmFkaXVzLCB1bml0T3V0UmFkaXVzKVxuICApO1xuICB2ZWM0IG91dGxpbmVDb2xvciA9IG1peChcbiAgICBtaXgodkNvbG9yLCBlbXB0eUNvbG9yIC8gMjU1Liwgb3V0bGluZUVtcHR5TWl4KSxcbiAgICB2Q29sb3IsXG4gICAgd2hlbl9ndCh1bml0SW5SYWRpdXMsIHVuaXRPdXRSYWRpdXMpXG4gICk7XG4gIFxuICBmbG9hdCBpbm5lclIgPSBtaW4odW5pdEluUmFkaXVzLCB1bml0T3V0UmFkaXVzKSAqICgxLjAgLSBTT0ZUX09VVExJTkUpO1xuICBcbiAgLy8gSW5uZXIgY2lyY2xlXG4gIGZsb2F0IHN0ZXAyID0gaW5uZXJSIC0gMi4wICogRVBTOyBcbiAgZmxvYXQgc3RlcDMgPSBpbm5lclIgLSBFUFM7XG4gIFxuICAvLyBSaW5nXG4gIGZsb2F0IHN0ZXA0ID0gaW5uZXJSO1xuICAvLyBmbG9hdCBzdGVwNSA9IDEuMCAtIFNPRlRfT1VUTElORSAtIEVQUztcbiAgLy8gZmxvYXQgc3RlcDYgPSAxLjAgLSBTT0ZUX09VVExJTkU7XG4gIGZsb2F0IHN0ZXA1ID0gMS4wIC0gNS4wICogRVBTO1xuICBmbG9hdCBzdGVwNiA9IDEuMDtcbiAgXG4gIGdsX0ZyYWdDb2xvciA9IHZDb2xvcjtcbiAgZ2xfRnJhZ0NvbG9yID0gbWl4KGdsX0ZyYWdDb2xvciwgZW1wdHlDb2xvciAvIDI1NS4sIHNtb290aHN0ZXAoc3RlcDIsIHN0ZXAzLCBkaXN0VG9DZW50ZXIpKTtcbiAgZ2xfRnJhZ0NvbG9yID0gbWl4KGdsX0ZyYWdDb2xvciwgcmluZ0NvbG9yLCBzbW9vdGhzdGVwKHN0ZXAzLCBzdGVwNCwgZGlzdFRvQ2VudGVyKSk7XG4gIGdsX0ZyYWdDb2xvciA9IG1peChnbF9GcmFnQ29sb3IsIG91dGxpbmVDb2xvciwgc21vb3Roc3RlcChzdGVwNSwgc3RlcDYsIGRpc3RUb0NlbnRlcikpO1xuICAvLyBnbF9GcmFnQ29sb3IgPSBtaXgoZ2xfRnJhZ0NvbG9yLCBlbXB0eUNvbG9yIC8gMjU1Liwgc21vb3Roc3RlcChzdGVwNiwgMS4wLCBkaXN0VG9DZW50ZXIpKTtcbiAgZ2xfRnJhZ0NvbG9yLmEgKj0gc21vb3Roc3RlcCgwLjAsIFNPRlRfT1VUTElORSwgMS4wIC0gZGlzdFRvQ2VudGVyKTtcbiAgREVDS0dMX0ZJTFRFUl9DT0xPUihnbF9GcmFnQ29sb3IsIGdlb21ldHJ5KTtcbn1cbmA7XG4iXX0=
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/*
|
|
4
|
+
* Copyright 2022 FlowmapBlue
|
|
5
|
+
* Copyright 2018-2020 Teralytics, modified by FlowmapBlue
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
* you may not use this file except in compliance with the License.
|
|
9
|
+
* You may obtain a copy of the License at
|
|
10
|
+
*
|
|
11
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
* See the License for the specific language governing permissions and
|
|
17
|
+
* limitations under the License.
|
|
18
|
+
*
|
|
19
|
+
*/
|
|
20
|
+
exports.default = "#define SHADER_NAME flow-circles-layer-vertex-shader\n#define radiusScale 100\n\nattribute vec3 positions;\n\nattribute vec3 instancePositions;\nattribute vec3 instancePositions64Low;\nattribute float instanceInRadius;\nattribute float instanceOutRadius;\nattribute vec4 instanceColors;\nattribute vec3 instancePickingColors;\n\nuniform float opacity;\nuniform vec4 emptyColor;\nuniform float outlineEmptyMix;\n\nvarying vec4 vColor;\nvarying vec2 unitPosition;\nvarying float unitInRadius;\nvarying float unitOutRadius;\n\nvoid main(void) {\n geometry.worldPosition = instancePositions;\n\n float outerRadiusPixels = max(instanceInRadius, instanceOutRadius);\n unitInRadius = instanceInRadius / outerRadiusPixels; \n unitOutRadius = instanceOutRadius / outerRadiusPixels; \n\n // position on the containing square in [-1, 1] space\n unitPosition = positions.xy;\n geometry.uv = unitPosition;\n geometry.pickingColor = instancePickingColors;\n \n // Find the center of the point and add the current vertex\n vec3 offset = positions * project_pixel_size(outerRadiusPixels);\n DECKGL_FILTER_SIZE(offset, geometry);\n gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, offset, geometry.position);\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n \n // Apply opacity to instance color, or return instance picking color\n vColor = vec4(instanceColors.rgb / 255., instanceColors.a / 255. * opacity);\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n";
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxvd0NpcmNsZXNMYXllclZlcnRleC5nbHNsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0Zsb3dDaXJjbGVzTGF5ZXIvRmxvd0NpcmNsZXNMYXllclZlcnRleC5nbHNsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCxrQkFBZSx3bERBNENkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMjIgRmxvd21hcEJsdWVcbiAqIENvcHlyaWdodCAyMDE4LTIwMjAgVGVyYWx5dGljcywgbW9kaWZpZWQgYnkgRmxvd21hcEJsdWVcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGBcXFxuI2RlZmluZSBTSEFERVJfTkFNRSBmbG93LWNpcmNsZXMtbGF5ZXItdmVydGV4LXNoYWRlclxuI2RlZmluZSByYWRpdXNTY2FsZSAxMDBcblxuYXR0cmlidXRlIHZlYzMgcG9zaXRpb25zO1xuXG5hdHRyaWJ1dGUgdmVjMyBpbnN0YW5jZVBvc2l0aW9ucztcbmF0dHJpYnV0ZSB2ZWMzIGluc3RhbmNlUG9zaXRpb25zNjRMb3c7XG5hdHRyaWJ1dGUgZmxvYXQgaW5zdGFuY2VJblJhZGl1cztcbmF0dHJpYnV0ZSBmbG9hdCBpbnN0YW5jZU91dFJhZGl1cztcbmF0dHJpYnV0ZSB2ZWM0IGluc3RhbmNlQ29sb3JzO1xuYXR0cmlidXRlIHZlYzMgaW5zdGFuY2VQaWNraW5nQ29sb3JzO1xuXG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG51bmlmb3JtIHZlYzQgZW1wdHlDb2xvcjtcbnVuaWZvcm0gZmxvYXQgb3V0bGluZUVtcHR5TWl4O1xuXG52YXJ5aW5nIHZlYzQgdkNvbG9yO1xudmFyeWluZyB2ZWMyIHVuaXRQb3NpdGlvbjtcbnZhcnlpbmcgZmxvYXQgdW5pdEluUmFkaXVzO1xudmFyeWluZyBmbG9hdCB1bml0T3V0UmFkaXVzO1xuXG52b2lkIG1haW4odm9pZCkge1xuICBnZW9tZXRyeS53b3JsZFBvc2l0aW9uID0gaW5zdGFuY2VQb3NpdGlvbnM7XG5cbiAgZmxvYXQgb3V0ZXJSYWRpdXNQaXhlbHMgPSBtYXgoaW5zdGFuY2VJblJhZGl1cywgaW5zdGFuY2VPdXRSYWRpdXMpO1xuICB1bml0SW5SYWRpdXMgPSBpbnN0YW5jZUluUmFkaXVzIC8gb3V0ZXJSYWRpdXNQaXhlbHM7IFxuICB1bml0T3V0UmFkaXVzID0gaW5zdGFuY2VPdXRSYWRpdXMgLyBvdXRlclJhZGl1c1BpeGVsczsgXG5cbiAgLy8gcG9zaXRpb24gb24gdGhlIGNvbnRhaW5pbmcgc3F1YXJlIGluIFstMSwgMV0gc3BhY2VcbiAgdW5pdFBvc2l0aW9uID0gcG9zaXRpb25zLnh5O1xuICBnZW9tZXRyeS51diA9IHVuaXRQb3NpdGlvbjtcbiAgZ2VvbWV0cnkucGlja2luZ0NvbG9yID0gaW5zdGFuY2VQaWNraW5nQ29sb3JzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAvLyBGaW5kIHRoZSBjZW50ZXIgb2YgdGhlIHBvaW50IGFuZCBhZGQgdGhlIGN1cnJlbnQgdmVydGV4XG4gIHZlYzMgb2Zmc2V0ID0gcG9zaXRpb25zICogcHJvamVjdF9waXhlbF9zaXplKG91dGVyUmFkaXVzUGl4ZWxzKTtcbiAgREVDS0dMX0ZJTFRFUl9TSVpFKG9mZnNldCwgZ2VvbWV0cnkpO1xuICBnbF9Qb3NpdGlvbiA9IHByb2plY3RfcG9zaXRpb25fdG9fY2xpcHNwYWNlKGluc3RhbmNlUG9zaXRpb25zLCBpbnN0YW5jZVBvc2l0aW9uczY0TG93LCBvZmZzZXQsIGdlb21ldHJ5LnBvc2l0aW9uKTtcbiAgREVDS0dMX0ZJTFRFUl9HTF9QT1NJVElPTihnbF9Qb3NpdGlvbiwgZ2VvbWV0cnkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAvLyBBcHBseSBvcGFjaXR5IHRvIGluc3RhbmNlIGNvbG9yLCBvciByZXR1cm4gaW5zdGFuY2UgcGlja2luZyBjb2xvclxuICB2Q29sb3IgPSB2ZWM0KGluc3RhbmNlQ29sb3JzLnJnYiAvIDI1NS4sIGluc3RhbmNlQ29sb3JzLmEgLyAyNTUuICogb3BhY2l0eSk7XG4gIERFQ0tHTF9GSUxURVJfQ09MT1IodkNvbG9yLCBnZW9tZXRyeSk7XG59XG5gO1xuIl19
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
var FlowCirclesLayer_1 = __importDefault(require("./FlowCirclesLayer"));
|
|
7
|
+
exports.default = FlowCirclesLayer_1.default;
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvRmxvd0NpcmNsZXNMYXllci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHdFQUFrRDtBQUVsRCxrQkFBZSwwQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBGbG93Q2lyY2xlc0xheWVyIGZyb20gJy4vRmxvd0NpcmNsZXNMYXllcic7XG5cbmV4cG9ydCBkZWZhdWx0IEZsb3dDaXJjbGVzTGF5ZXI7XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FlowLinesLayer.d.ts","sourceRoot":"","sources":["../../src/FlowLinesLayer/FlowLinesLayer.ts"],"names":[],"mappings":";AAkBA,OAAO,EAAC,KAAK,EAAqB,MAAM,eAAe,CAAC;AAKxD,OAAO,EAAC,wBAAwB,EAAE,IAAI,EAAC,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AAEpC,MAAM,WAAW,KAAK,CAAC,CAAC,CAAE,SAAQ,UAAU;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAC,CAAC;IAC1D,IAAI,EAAE,CAAC,EAAE,GAAG,wBAAwB,CAAC;IACrC,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,iBAAiB,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC;IAChC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAC,KAAK,EAAC,EAAE;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,KAAK,MAAM,CAAC;IACzD,kBAAkB,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjD;AAKD,cAAM,cAAc,CAAC,CAAC,CAAE,SAAQ,KAAK;IACnC,MAAM,CAAC,SAAS,SAAoB;IACpC,MAAM,CAAC,YAAY;;;uBACgC,GAAG;;;;uBACH,GAAG;;;;;;;;uBAER,GAAG;;;;uBACJ,GAAG;;;;;;;;;MAQ9C;gBAGU,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAI3B,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IASrC,eAAe,IAAI,IAAI;IAwCvB,WAAW,CAAC,EAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAatE,IAAI,CAAC,EAAC,QAAQ,EAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAc3C,SAAS,CAAC,EAAE,EAAE,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CA0F1D;AAED,eAAe,cAAc,CAAC"}
|