@pirireis/webglobeplugins 0.9.12 → 0.9.13
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/Math/angle-calculation.js +1 -3
- package/Math/arc.js +29 -32
- package/Math/bounds/line-bbox.js +1 -3
- package/Math/constants.js +1 -6
- package/Math/frustum/types.js +1 -2
- package/Math/juction/arc-plane.js +32 -35
- package/Math/juction/line-sphere.js +9 -12
- package/Math/juction/plane-plane.js +15 -18
- package/Math/line.js +30 -33
- package/Math/methods.js +6 -24
- package/Math/plane.js +22 -25
- package/Math/quaternion.js +6 -9
- package/Math/types.js +1 -2
- package/Math/utils.js +2 -4
- package/Math/vec3.js +5 -8
- package/algorithms/search-binary.js +1 -4
- package/altitude-locator/draw-subset-obj.js +1 -3
- package/altitude-locator/plugin.js +34 -37
- package/altitude-locator/types.js +1 -3
- package/arrowfield/adaptor.js +1 -4
- package/arrowfield/index.js +3 -10
- package/arrowfield/plugin.js +3 -6
- package/bearing-line/index.js +2 -8
- package/bearing-line/plugin.js +62 -66
- package/circle-line-chain/chain-list-map.js +1 -5
- package/circle-line-chain/plugin.js +46 -50
- package/circle-line-chain/util.js +1 -5
- package/compass-rose/compass-rose-padding-flat.js +12 -16
- package/compass-rose/compass-text-writer.js +3 -7
- package/compass-rose/index.js +3 -7
- package/compassrose/compassrose.js +6 -9
- package/compassrose/index.js +2 -8
- package/heatwave/index.js +3 -10
- package/heatwave/isobar/objectarraylabels.js +7 -9
- package/heatwave/isobar/plugin.js +14 -54
- package/heatwave/isobar/quadtreecontours.js +2 -4
- package/heatwave/plugins/heatwaveglobeshell.js +9 -12
- package/index.js +12 -58
- package/package.json +1 -1
- package/partialrings/buffer-manager.js +2 -8
- package/partialrings/index.js +2 -41
- package/partialrings/plugin.js +13 -20
- package/partialrings/program.js +23 -30
- package/pin/pin-object-array.js +8 -13
- package/point-heat-map/adaptors/timetracksplugin-format-to-this.js +3 -6
- package/point-heat-map/plugin-webworker.js +11 -14
- package/point-heat-map/point-to-heat-map-flow.js +9 -12
- package/point-tracks/key-methods.js +1 -4
- package/point-tracks/plugin.js +15 -19
- package/programs/arrowfield/index.js +2 -7
- package/programs/arrowfield/logic.js +7 -10
- package/programs/arrowfield/object.js +7 -13
- package/programs/data2legend/density-to-legend.js +6 -9
- package/programs/data2legend/point-to-density-texture.js +13 -16
- package/programs/float2legendwithratio/index.js +2 -8
- package/programs/float2legendwithratio/logic.js +3 -6
- package/programs/float2legendwithratio/object.js +5 -11
- package/programs/globe-util/is-globe-moved.js +3 -5
- package/programs/globeshell/index.js +2 -8
- package/programs/globeshell/wiggle/index.js +2 -8
- package/programs/globeshell/wiggle/logic.js +3 -6
- package/programs/globeshell/wiggle/object.js +5 -11
- package/programs/helpers/blender/program.js +3 -6
- package/programs/helpers/fadeaway/index.js +2 -7
- package/programs/helpers/fadeaway/logic.js +3 -6
- package/programs/helpers/fadeaway/object.js +5 -11
- package/programs/helpers/index.js +2 -8
- package/programs/index.js +9 -58
- package/programs/line-on-globe/angled-line.js +19 -22
- package/programs/line-on-globe/circle-accurate-3d.js +21 -24
- package/programs/line-on-globe/circle-accurate-flat.js +18 -24
- package/programs/line-on-globe/circle-accurate.js +27 -30
- package/programs/line-on-globe/circle.js +26 -29
- package/programs/line-on-globe/degree-padding-around-circle-3d.js +23 -26
- package/programs/line-on-globe/lines-color-instanced-flat.js +20 -24
- package/programs/line-on-globe/linestrip.js +28 -31
- package/programs/line-on-globe/naive-accurate-flexible.js +29 -32
- package/programs/line-on-globe/to-the-surface.js +15 -17
- package/programs/line-on-globe/util.js +1 -4
- package/programs/picking/pickable-renderer.js +25 -28
- package/programs/point-on-globe/element-globe-surface-glow.js +22 -25
- package/programs/point-on-globe/element-point-glow.js +26 -29
- package/programs/point-on-globe/square-pixel-point.js +13 -16
- package/programs/programcache.js +1 -6
- package/programs/rings/distancering/circleflatprogram.js +20 -56
- package/programs/rings/distancering/circlepaddingfreeangleprogram.js +21 -58
- package/programs/rings/distancering/circlepaddysharedbuffer.js +1 -4
- package/programs/rings/distancering/index.js +5 -14
- package/programs/rings/distancering/paddyflatprogram.js +21 -57
- package/programs/rings/distancering/paddyflatprogram2d.js +21 -57
- package/programs/rings/distancering/paddyflatprogram3d.js +21 -57
- package/programs/rings/index.js +1 -17
- package/programs/rings/partial-ring/piece-of-pie.js +23 -25
- package/programs/totems/camerauniformblock.js +7 -11
- package/programs/totems/canvas-webglobe-info.js +6 -10
- package/programs/totems/gpu-selection-uniform-block.js +7 -11
- package/programs/totems/index.js +2 -40
- package/programs/two-d/pixel-padding-for-compass.js +10 -13
- package/programs/util.js +1 -3
- package/programs/vectorfields/index.js +3 -23
- package/programs/vectorfields/logics/drawrectangleparticles.js +9 -12
- package/programs/vectorfields/logics/index.js +4 -12
- package/programs/vectorfields/logics/pixelbased.js +10 -13
- package/programs/vectorfields/logics/ubo.js +1 -7
- package/programs/vectorfields/pingpongbuffermanager.js +1 -4
- package/rangerings/enum.js +2 -5
- package/rangerings/index.js +5 -15
- package/rangerings/plugin.js +61 -68
- package/rangerings/rangeringangletext.js +26 -29
- package/rangerings/ring-account.js +1 -6
- package/shaders/fragment-toy/firework.js +1 -4
- package/shaders/fragment-toy/singularity.js +1 -4
- package/timetracks/adaptors-line-strip.js +3 -9
- package/timetracks/adaptors.js +3 -8
- package/timetracks/index.js +5 -19
- package/timetracks/plugin-line-strip.js +6 -12
- package/timetracks/plugin.js +6 -12
- package/timetracks/program-line-strip.js +9 -12
- package/timetracks/program.js +10 -13
- package/timetracks/programpoint-line-strip.js +6 -9
- package/timetracks/programpoint.js +6 -9
- package/util/account/bufferoffsetmanager.js +1 -4
- package/util/account/index.js +3 -23
- package/util/account/single-attribute-buffer-management/buffer-manager.js +1 -5
- package/util/account/single-attribute-buffer-management/buffer-orchestrator.js +1 -5
- package/util/account/single-attribute-buffer-management/index.js +4 -9
- package/util/account/single-attribute-buffer-management/object-store.js +1 -5
- package/util/account/single-attribute-buffer-management/types.js +1 -2
- package/util/account/util.js +1 -5
- package/util/algorithms/search-binary.js +1 -4
- package/util/check/get.js +1 -5
- package/util/check/typecheck.js +7 -16
- package/util/geometry/index.js +1 -7
- package/util/gl-util/buffer/attribute-loader.js +2 -6
- package/util/gl-util/buffer/index.js +2 -5
- package/util/gl-util/draw-options/methods.js +2 -6
- package/util/gl-util/uniform-block/manager.js +2 -5
- package/util/heatwavedatamanager/datamanager.js +1 -4
- package/util/heatwavedatamanager/index.js +3 -10
- package/util/heatwavedatamanager/pointcoordinatesdatacalculator.js +3 -9
- package/util/heatwavedatamanager/pointcoordsmeta.js +1 -4
- package/util/index.js +13 -57
- package/util/interpolation/timetrack/index.js +1 -4
- package/util/interpolation/timetrack/timetrack-interpolator.js +6 -10
- package/util/interpolation/timetrack/web-worker-str.js +1 -4
- package/util/interpolation/timetrack/web-worker.js +2 -4
- package/util/jshelpers/data-filler.js +1 -4
- package/util/jshelpers/equality.js +1 -3
- package/util/jshelpers/index.js +2 -37
- package/util/jshelpers/timefilters.js +1 -3
- package/util/picking/fence.js +1 -4
- package/util/picking/picker-displayer.js +6 -9
- package/util/programs/draw-texture-on-canvas.js +6 -9
- package/util/programs/index.js +1 -17
- package/util/programs/shapesonglobe.js +9 -13
- package/util/programs/supersampletotextures.js +3 -7
- package/util/programs/texturetoglobe.js +8 -11
- package/util/shaderfunctions/geometrytransformations.js +24 -31
- package/util/shaderfunctions/index.js +2 -18
- package/util/shaderfunctions/nodata.js +1 -4
- package/util/shaderfunctions/noisefunctions.js +1 -3
- package/util/webglobe/gldefaultstates.js +1 -4
- package/util/webglobe/index.js +2 -18
- package/util/webglobe/rasteroverlay.js +1 -4
- package/util/webglobjectbuilders.js +16 -34
- package/util/webglobjectbuilders1.js +16 -34
- package/waveparticles/adaptor.js +1 -3
- package/waveparticles/index.js +3 -10
- package/waveparticles/plugin.js +9 -12
- package/wind/imagetovectorfieldandmagnitude.js +1 -4
- package/wind/index.js +5 -14
- package/wind/plugin.js +6 -45
- package/wind/vectorfieldimage.js +1 -3
- package/write-text/attached-text-writer.js +6 -10
- package/write-text/context-text.js +4 -8
- package/write-text/context-text3.js +7 -11
- package/write-text/index.js +1 -5
package/bearing-line/plugin.js
CHANGED
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const
|
|
13
|
-
const geometry_1 = require("../util/geometry");
|
|
14
|
-
const attribute_loader_1 = require("../util/gl-util/buffer/attribute-loader");
|
|
15
|
-
exports.RINGPARTIAL_DRAW_MODE = Object.freeze({
|
|
1
|
+
import { PieceOfPieProgramCache } from '../programs/rings/partial-ring/piece-of-pie';
|
|
2
|
+
import { LineOnGlobeCache } from '../programs/line-on-globe/naive-accurate-flexible';
|
|
3
|
+
import { CircleCache as Circle3DCache } from '../programs/line-on-globe/circle-accurate-3d';
|
|
4
|
+
import { CircleCache, EDGE_COUNT as flatCircleEdgeCount, centerCoords2dflatDataCreator } from '../programs/line-on-globe/circle-accurate-flat';
|
|
5
|
+
import { BufferOrchestrator, BufferManager } from '../util/account';
|
|
6
|
+
import { mapGetOrThrow } from "../util/check/get";
|
|
7
|
+
import { populateFloat32Array } from "../util/jshelpers/data-filler";
|
|
8
|
+
import { ContextTextWriter3 } from '../write-text/context-text3';
|
|
9
|
+
import { constraintFloat, isBoolean } from '../util/check/typecheck';
|
|
10
|
+
import { sphereCoord } from '../util/geometry';
|
|
11
|
+
import { createBufferAndReadInfo } from '../util/gl-util/buffer/attribute-loader';
|
|
12
|
+
export const RINGPARTIAL_DRAW_MODE = Object.freeze({
|
|
16
13
|
LINE_STRIP: "LINE_STRIP",
|
|
17
14
|
TRIANGLE_FAN: "TRIANGLE_FAN",
|
|
18
15
|
});
|
|
@@ -33,7 +30,7 @@ exports.RINGPARTIAL_DRAW_MODE = Object.freeze({
|
|
|
33
30
|
* @property {number} dashOpacity 0-1
|
|
34
31
|
* @property {number} circleDashAngle 0-360
|
|
35
32
|
*/
|
|
36
|
-
const textWriterGetOrThrow =
|
|
33
|
+
const textWriterGetOrThrow = mapGetOrThrow("BearingLine textContextInjection id does not exist in map");
|
|
37
34
|
const radian = (degree) => degree * Math.PI / 180;
|
|
38
35
|
const integralSec = (angle) => {
|
|
39
36
|
return Math.log(Math.tan(angle / 2 + Math.PI / 4));
|
|
@@ -44,15 +41,15 @@ const calculateStartAngle = (long, lat, endLong, endLat) => {
|
|
|
44
41
|
let angle = -Math.atan2(dLat, dLong);
|
|
45
42
|
return angle;
|
|
46
43
|
};
|
|
47
|
-
class BearingLinePlugin {
|
|
44
|
+
export default class BearingLinePlugin {
|
|
48
45
|
/**
|
|
49
46
|
* @param {*} id
|
|
50
47
|
* @param {Map<[key, ContextTextWriter3]>} textWritersMap
|
|
51
48
|
*/
|
|
52
|
-
constructor(id, { opacity = 1, textWritersMap = new Map(), textDataPreAdaptor = (x) => x, drawVRM = true, drawBearingLine = true, drawAngleRing = true, drawText = true, circleFlatEdgeCount =
|
|
49
|
+
constructor(id, { opacity = 1, textWritersMap = new Map(), textDataPreAdaptor = (x) => x, drawVRM = true, drawBearingLine = true, drawAngleRing = true, drawText = true, circleFlatEdgeCount = flatCircleEdgeCount - 2 } = {}) {
|
|
53
50
|
this.id = id;
|
|
54
51
|
this._opacity = opacity;
|
|
55
|
-
this.bufferOrchestrator = new
|
|
52
|
+
this.bufferOrchestrator = new BufferOrchestrator({ capacity: 10 });
|
|
56
53
|
this._checkTextContextWriterInjectionMap(textWritersMap);
|
|
57
54
|
this._textWritersMap = textWritersMap;
|
|
58
55
|
this._textWritersMap.forEach((writer) => writer.keyAdaptor = (item) => item.key);
|
|
@@ -65,35 +62,35 @@ class BearingLinePlugin {
|
|
|
65
62
|
this.circleFlatEdgeCount = circleFlatEdgeCount + 2;
|
|
66
63
|
}
|
|
67
64
|
setDoDrawVRM(bool) {
|
|
68
|
-
|
|
65
|
+
isBoolean(bool);
|
|
69
66
|
if (bool === this.drawVRM)
|
|
70
67
|
return;
|
|
71
68
|
this.drawVRM = bool;
|
|
72
69
|
this.globe.DrawRender();
|
|
73
70
|
}
|
|
74
71
|
setDoDrawText(bool) {
|
|
75
|
-
|
|
72
|
+
isBoolean(bool);
|
|
76
73
|
if (bool === this.drawText)
|
|
77
74
|
return;
|
|
78
75
|
this.drawText = bool;
|
|
79
76
|
this.globe.DrawRender();
|
|
80
77
|
}
|
|
81
78
|
setDoDrawText(bool) {
|
|
82
|
-
|
|
79
|
+
isBoolean(bool);
|
|
83
80
|
if (bool === this.drawText)
|
|
84
81
|
return;
|
|
85
82
|
this.drawText = bool;
|
|
86
83
|
this.globe.DrawRender();
|
|
87
84
|
}
|
|
88
85
|
setDoDrawAngleRing(bool) {
|
|
89
|
-
|
|
86
|
+
isBoolean(bool);
|
|
90
87
|
if (bool === this.drawAngleRing)
|
|
91
88
|
return;
|
|
92
89
|
this.drawAngleRing = bool;
|
|
93
90
|
this.globe.DrawRender();
|
|
94
91
|
}
|
|
95
92
|
setOpacity(opacity) {
|
|
96
|
-
|
|
93
|
+
constraintFloat(opacity, 0, 1);
|
|
97
94
|
this._opacity = opacity;
|
|
98
95
|
this._textWritersMap.forEach((writer) => writer.setOpacity(opacity));
|
|
99
96
|
this.globe.DrawRender();
|
|
@@ -186,7 +183,7 @@ class BearingLinePlugin {
|
|
|
186
183
|
if (!(textContextWriterInjectionMap instanceof Map))
|
|
187
184
|
throw new Error("textContextWriterInjectionMap is not an instance of Map");
|
|
188
185
|
textContextWriterInjectionMap.forEach((v) => {
|
|
189
|
-
if (!(v instanceof
|
|
186
|
+
if (!(v instanceof ContextTextWriter3))
|
|
190
187
|
throw new Error("textContextWriterInjectionMap element is not an instance of ContextTextWriter3");
|
|
191
188
|
});
|
|
192
189
|
}
|
|
@@ -240,7 +237,7 @@ class BearingLinePlugin {
|
|
|
240
237
|
if (tailAngle3d > 0) {
|
|
241
238
|
tailAngle3d -= Math.PI * 2;
|
|
242
239
|
}
|
|
243
|
-
const centerCoords2dflat =
|
|
240
|
+
const centerCoords2dflat = centerCoords2dflatDataCreator(globe, item.long, item.lat, item.endLong, item.endLat, { startAngleOfCircle, edgeCount: this.circleFlatEdgeCount });
|
|
244
241
|
return {
|
|
245
242
|
key: item.key,
|
|
246
243
|
lat: item.lat,
|
|
@@ -275,10 +272,10 @@ class BearingLinePlugin {
|
|
|
275
272
|
init(globe, gl) {
|
|
276
273
|
this.gl = gl;
|
|
277
274
|
this.globe = globe;
|
|
278
|
-
this.lineProgram =
|
|
279
|
-
this.pieceOfPieProgram =
|
|
280
|
-
this.circleProgram =
|
|
281
|
-
this.circle3DProgram =
|
|
275
|
+
this.lineProgram = LineOnGlobeCache.get(globe);
|
|
276
|
+
this.pieceOfPieProgram = PieceOfPieProgramCache.get(globe);
|
|
277
|
+
this.circleProgram = CircleCache.get(globe);
|
|
278
|
+
this.circle3DProgram = Circle3DCache.get(globe);
|
|
282
279
|
const circleFlatEdgeCount = this.circleFlatEdgeCount;
|
|
283
280
|
{
|
|
284
281
|
// createBuffers
|
|
@@ -286,97 +283,97 @@ class BearingLinePlugin {
|
|
|
286
283
|
const initialCapacity = this.bufferOrchestrator.capacity;
|
|
287
284
|
this.bufferManagersCompMap = new Map([
|
|
288
285
|
["centerCoords2d", {
|
|
289
|
-
'bufferManager': new
|
|
286
|
+
'bufferManager': new BufferManager(gl, 2, { bufferType, initialCapacity }),
|
|
290
287
|
'adaptor': (item) => new Float32Array(globe.api_GetMercator2DPoint(item.long, item.lat)),
|
|
291
288
|
}],
|
|
292
289
|
["centerCoords2dflat", {
|
|
293
|
-
'bufferManager': new
|
|
290
|
+
'bufferManager': new BufferManager(gl, circleFlatEdgeCount * 2, { bufferType, initialCapacity }),
|
|
294
291
|
'adaptor': (item) => item.centerCoords2dflat,
|
|
295
292
|
}],
|
|
296
293
|
["centerCoords3d", {
|
|
297
|
-
'bufferManager': new
|
|
298
|
-
'adaptor': (item) =>
|
|
294
|
+
'bufferManager': new BufferManager(gl, 3, { bufferType, initialCapacity }),
|
|
295
|
+
'adaptor': (item) => sphereCoord(item.long, item.lat, globe, item.altitude),
|
|
299
296
|
}],
|
|
300
297
|
["targetCoords2d", {
|
|
301
|
-
'bufferManager': new
|
|
298
|
+
'bufferManager': new BufferManager(gl, 2, { bufferType, initialCapacity }),
|
|
302
299
|
'adaptor': (item) => new Float32Array(globe.api_GetMercator2DPoint(item.endLong, item.endLat))
|
|
303
300
|
}],
|
|
304
301
|
["targetCoords3d", {
|
|
305
|
-
'bufferManager': new
|
|
306
|
-
'adaptor': (item) =>
|
|
302
|
+
'bufferManager': new BufferManager(gl, 3, { bufferType, initialCapacity }),
|
|
303
|
+
'adaptor': (item) => sphereCoord(item.endLong, item.endLat, globe, item.altitude)
|
|
307
304
|
}],
|
|
308
305
|
["bearingTargetCoords2d", {
|
|
309
|
-
'bufferManager': new
|
|
306
|
+
'bufferManager': new BufferManager(gl, 2, { bufferType, initialCapacity }),
|
|
310
307
|
'adaptor': (item) => new Float32Array(globe.api_GetMercator2DPoint(item.bearingLong, item.bearingLat))
|
|
311
308
|
}],
|
|
312
309
|
["bearingTargetCoords3d", {
|
|
313
|
-
'bufferManager': new
|
|
314
|
-
'adaptor': (item) =>
|
|
310
|
+
'bufferManager': new BufferManager(gl, 3, { bufferType, initialCapacity }),
|
|
311
|
+
'adaptor': (item) => sphereCoord(item.bearingLong, item.bearingLat, globe, item.altitude)
|
|
315
312
|
}],
|
|
316
313
|
["startAngle2d", {
|
|
317
|
-
'bufferManager': new
|
|
314
|
+
'bufferManager': new BufferManager(gl, 1, { bufferType, initialCapacity }),
|
|
318
315
|
'adaptor': (item) => new Float32Array([item.startAngle2d])
|
|
319
316
|
}],
|
|
320
317
|
["tailAngle2d", {
|
|
321
|
-
'bufferManager': new
|
|
318
|
+
'bufferManager': new BufferManager(gl, 1, { bufferType, initialCapacity }),
|
|
322
319
|
'adaptor': (item) => new Float32Array([item.tailAngle2d])
|
|
323
320
|
}],
|
|
324
321
|
["startAngle3d", {
|
|
325
|
-
'bufferManager': new
|
|
322
|
+
'bufferManager': new BufferManager(gl, 1, { bufferType, initialCapacity }),
|
|
326
323
|
'adaptor': (item) => new Float32Array([item.startAngle3d])
|
|
327
324
|
}],
|
|
328
325
|
["tailAngle3d", {
|
|
329
|
-
'bufferManager': new
|
|
326
|
+
'bufferManager': new BufferManager(gl, 1, { bufferType, initialCapacity }),
|
|
330
327
|
'adaptor': (item) => new Float32Array([item.tailAngle3d])
|
|
331
328
|
}],
|
|
332
329
|
["bearingDashRatio", {
|
|
333
|
-
'bufferManager': new
|
|
330
|
+
'bufferManager': new BufferManager(gl, 1, { bufferType, initialCapacity }),
|
|
334
331
|
'adaptor': (item) => new Float32Array([0])
|
|
335
332
|
}],
|
|
336
333
|
["rgba", {
|
|
337
|
-
'bufferManager': new
|
|
334
|
+
'bufferManager': new BufferManager(gl, 4, { bufferType, initialCapacity }),
|
|
338
335
|
'adaptor': (item) => new Float32Array(item.rgba)
|
|
339
336
|
}],
|
|
340
337
|
["radius", {
|
|
341
|
-
'bufferManager': new
|
|
338
|
+
'bufferManager': new BufferManager(gl, 1, { bufferType, initialCapacity }),
|
|
342
339
|
'adaptor': (item) => new Float32Array([item.radius])
|
|
343
340
|
}],
|
|
344
341
|
["rgbaMode", {
|
|
345
|
-
'bufferManager': new
|
|
342
|
+
'bufferManager': new BufferManager(gl, 1, { bufferType, initialCapacity }),
|
|
346
343
|
'adaptor': (item) => new Float32Array([item.rgbaMode])
|
|
347
344
|
}],
|
|
348
345
|
["dashRatio", {
|
|
349
|
-
'bufferManager': new
|
|
346
|
+
'bufferManager': new BufferManager(gl, 1, { bufferType, initialCapacity }),
|
|
350
347
|
'adaptor': (item) => new Float32Array([item.dashRatio])
|
|
351
348
|
}],
|
|
352
349
|
["bigRadius", {
|
|
353
|
-
'bufferManager': new
|
|
350
|
+
'bufferManager': new BufferManager(gl, 1, { bufferType, initialCapacity }),
|
|
354
351
|
'adaptor': (item) => new Float32Array([item.bigRadius])
|
|
355
352
|
}],
|
|
356
353
|
["dashOpacity", {
|
|
357
|
-
'bufferManager': new
|
|
354
|
+
'bufferManager': new BufferManager(gl, 1, { bufferType, initialCapacity }),
|
|
358
355
|
'adaptor': (item) => new Float32Array([item.dashOpacity]),
|
|
359
356
|
}],
|
|
360
357
|
["circleDashAngle", {
|
|
361
|
-
'bufferManager': new
|
|
358
|
+
'bufferManager': new BufferManager(gl, 1, { bufferType, initialCapacity }),
|
|
362
359
|
'adaptor': (item) => new Float32Array([item.circleDashAngle / 360]),
|
|
363
360
|
}],
|
|
364
361
|
// Mercator circle properties are duplicated for the sake of performance.
|
|
365
362
|
["rgbaMercator", {
|
|
366
|
-
'bufferManager': new
|
|
367
|
-
'adaptor': (item) =>
|
|
363
|
+
'bufferManager': new BufferManager(gl, 4 * circleFlatEdgeCount, { bufferType, initialCapacity }),
|
|
364
|
+
'adaptor': (item) => populateFloat32Array.fillWithListData(circleFlatEdgeCount, item.rgba),
|
|
368
365
|
}],
|
|
369
366
|
["circleDashAngleMercator", {
|
|
370
|
-
'bufferManager': new
|
|
371
|
-
'adaptor': (item) =>
|
|
367
|
+
'bufferManager': new BufferManager(gl, circleFlatEdgeCount, { bufferType, initialCapacity }),
|
|
368
|
+
'adaptor': (item) => populateFloat32Array.fillFloat32Array(circleFlatEdgeCount, item.circleDashAngle / 360),
|
|
372
369
|
}],
|
|
373
370
|
["dashOpacityMercator", {
|
|
374
|
-
'bufferManager': new
|
|
375
|
-
'adaptor': (item) =>
|
|
371
|
+
'bufferManager': new BufferManager(gl, circleFlatEdgeCount, { bufferType, initialCapacity }),
|
|
372
|
+
'adaptor': (item) => populateFloat32Array.fillFloat32Array(circleFlatEdgeCount, item.dashOpacity),
|
|
376
373
|
}],
|
|
377
374
|
]);
|
|
378
375
|
}
|
|
379
|
-
const vaoOBJ = (key) =>
|
|
376
|
+
const vaoOBJ = (key) => createBufferAndReadInfo(this.bufferManagersCompMap.get(key).bufferManager.buffer);
|
|
380
377
|
this.lineVao = this.lineProgram.createVAO(...['centerCoords2d', 'centerCoords3d', 'targetCoords2d', 'targetCoords3d', 'dashOpacity', 'dashOpacity', 'rgba'].map(key => vaoOBJ(key)));
|
|
381
378
|
this.ringVao = this.pieceOfPieProgram.createVAO(...['centerCoords2d',
|
|
382
379
|
'centerCoords3d',
|
|
@@ -401,8 +398,8 @@ class BearingLinePlugin {
|
|
|
401
398
|
const drawRange = { first: 0, count: this.bufferOrchestrator.length };
|
|
402
399
|
this.lineProgram.draw(this.lineVao, { drawRange }, this._opacity);
|
|
403
400
|
if (this.drawAngleRing) {
|
|
404
|
-
this.pieceOfPieProgram.draw(this.bufferOrchestrator.length, this.ringVao, 360, this._opacity * 0.8,
|
|
405
|
-
this.pieceOfPieProgram.draw(this.bufferOrchestrator.length, this.ringVao, 360, this._opacity * 0.8,
|
|
401
|
+
this.pieceOfPieProgram.draw(this.bufferOrchestrator.length, this.ringVao, 360, this._opacity * 0.8, RINGPARTIAL_DRAW_MODE.TRIANGLE_FAN);
|
|
402
|
+
this.pieceOfPieProgram.draw(this.bufferOrchestrator.length, this.ringVao, 360, this._opacity * 0.8, RINGPARTIAL_DRAW_MODE.LINE_STRIP);
|
|
406
403
|
}
|
|
407
404
|
if (this.drawBearingLine) {
|
|
408
405
|
// this.lineProgram.draw(this.bearingLineVAO, this.bufferOrchestrator.length, this._opacity );
|
|
@@ -433,10 +430,10 @@ class BearingLinePlugin {
|
|
|
433
430
|
gl.deleteVertexArray(this.bearingLineVAO);
|
|
434
431
|
gl.deleteVertexArray(this.circleVao);
|
|
435
432
|
gl.deleteVertexArray(this.circle3DVao);
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
433
|
+
LineOnGlobeCache.release(globe);
|
|
434
|
+
PieceOfPieProgramCache.release(globe);
|
|
435
|
+
CircleCache.release(globe);
|
|
436
|
+
Circle3DCache.release(globe);
|
|
440
437
|
this.isFreed = true;
|
|
441
438
|
}
|
|
442
439
|
_deleteTexts(keys) {
|
|
@@ -445,4 +442,3 @@ class BearingLinePlugin {
|
|
|
445
442
|
});
|
|
446
443
|
}
|
|
447
444
|
}
|
|
448
|
-
exports.default = BearingLinePlugin;
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ChainListMap = void 0;
|
|
4
1
|
/**
|
|
5
2
|
* set and get node data
|
|
6
3
|
* node indexes;
|
|
7
4
|
*/
|
|
8
|
-
class ChainListMap {
|
|
5
|
+
export class ChainListMap {
|
|
9
6
|
constructor(keyMethod) {
|
|
10
7
|
this._chainMap = new Map();
|
|
11
8
|
this._chainSideProperties = new Map();
|
|
@@ -202,4 +199,3 @@ class ChainListMap {
|
|
|
202
199
|
return result;
|
|
203
200
|
}
|
|
204
201
|
}
|
|
205
|
-
exports.ChainListMap = ChainListMap;
|
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const typecheck_1 = require("../util/check/typecheck");
|
|
14
|
-
const attribute_loader_1 = require("../util/gl-util/buffer/attribute-loader");
|
|
15
|
-
const index_1 = require("../util/geometry/index");
|
|
1
|
+
import { LineOnGlobeCache } from '../programs/line-on-globe/naive-accurate-flexible';
|
|
2
|
+
import { CircleCache, EDGE_COUNT as flatCircleEdgeCount, centerCoords2dflatDataCreator } from '../programs/line-on-globe/circle-accurate-flat';
|
|
3
|
+
import { CircleCache as Circle3DCache } from '../programs/line-on-globe/circle-accurate-3d';
|
|
4
|
+
import { BufferOrchestrator, BufferManager } from "../util/account";
|
|
5
|
+
import { ChainListMap } from "./chain-list-map";
|
|
6
|
+
import { mapGetOrThrow } from "../util/check/get";
|
|
7
|
+
import { keyMethod } from "./util";
|
|
8
|
+
import { populateFloat32Array } from "../util/jshelpers/data-filler";
|
|
9
|
+
import { ContextTextWriter3 } from '../write-text/context-text3';
|
|
10
|
+
import { isBoolean, constraintFloat, opacityCheck } from '../util/check/typecheck';
|
|
11
|
+
import { createBufferAndReadInfo } from '../util/gl-util/buffer/attribute-loader';
|
|
12
|
+
import { sphereCoord } from '../util/geometry/index';
|
|
16
13
|
/**
|
|
17
14
|
* Insert info to chain list map (nodes and properties)
|
|
18
15
|
*
|
|
@@ -55,21 +52,21 @@ const index_1 = require("../util/geometry/index");
|
|
|
55
52
|
*
|
|
56
53
|
* //property {Array<Node>} nodes
|
|
57
54
|
*/
|
|
58
|
-
const textWriterGetOrThrow =
|
|
59
|
-
class CircleLineChainPlugin {
|
|
55
|
+
const textWriterGetOrThrow = mapGetOrThrow("textWriterIDs is invalid");
|
|
56
|
+
export class CircleLineChainPlugin {
|
|
60
57
|
/**
|
|
61
58
|
*
|
|
62
59
|
* @param {*} id
|
|
63
60
|
* @param {Map<[key, ContextTextWriter3]} textWritersMap //import { ContextTextWriter3 } from "@pirireis/webglobeplugins/write-text/context-text3";
|
|
64
61
|
*/
|
|
65
|
-
constructor(id, { drawCircleOn = true, textWritersMap = new Map(), textDataPreAdaptor = null, circleFlatEdgeCount =
|
|
62
|
+
constructor(id, { drawCircleOn = true, textWritersMap = new Map(), textDataPreAdaptor = null, circleFlatEdgeCount = flatCircleEdgeCount - 2 } = {}) {
|
|
66
63
|
this.id = id;
|
|
67
64
|
this._checktextWritersMap(textWritersMap);
|
|
68
65
|
this._textWritersMap = textWritersMap;
|
|
69
66
|
this._textWritersMap.forEach((writer) => writer.setKeyAdaptor((v, i, c, properties) => v.__identity__));
|
|
70
67
|
this._opacity = 1;
|
|
71
|
-
this._chainListMap = new
|
|
72
|
-
this.bufferOrchestrator = new
|
|
68
|
+
this._chainListMap = new ChainListMap(keyMethod);
|
|
69
|
+
this.bufferOrchestrator = new BufferOrchestrator({ capacity: 10 });
|
|
73
70
|
this._drawCircleOn = drawCircleOn;
|
|
74
71
|
this._textDataPreAdaptor = textDataPreAdaptor;
|
|
75
72
|
this._circleFlatEdgeCount = circleFlatEdgeCount + 2;
|
|
@@ -178,7 +175,7 @@ class CircleLineChainPlugin {
|
|
|
178
175
|
this.globe.DrawRender();
|
|
179
176
|
}
|
|
180
177
|
setOpacity(opacity) {
|
|
181
|
-
|
|
178
|
+
opacityCheck(opacity);
|
|
182
179
|
this._textWritersMap.forEach((writer) => writer.setOpacity(opacity));
|
|
183
180
|
this._opacity = opacity;
|
|
184
181
|
this.globe.DrawRender();
|
|
@@ -227,15 +224,15 @@ class CircleLineChainPlugin {
|
|
|
227
224
|
if (!(textWritersMap instanceof Map))
|
|
228
225
|
throw new Error("textWritersMap is not an instance of Map");
|
|
229
226
|
textWritersMap.forEach((v) => {
|
|
230
|
-
if (!(v instanceof
|
|
227
|
+
if (!(v instanceof ContextTextWriter3))
|
|
231
228
|
throw new Error("textWritersMap element is not an instance of ContextTextWriter3");
|
|
232
229
|
});
|
|
233
230
|
}
|
|
234
231
|
_initOrchestrations() {
|
|
235
232
|
const { gl, globe } = this;
|
|
236
|
-
this.lineProgram =
|
|
237
|
-
this.circleProgram2d =
|
|
238
|
-
this.circle3DProgram =
|
|
233
|
+
this.lineProgram = LineOnGlobeCache.get(globe);
|
|
234
|
+
this.circleProgram2d = CircleCache.get(globe);
|
|
235
|
+
this.circle3DProgram = Circle3DCache.get(globe);
|
|
239
236
|
const _circleFlatEdgeCount = this._circleFlatEdgeCount;
|
|
240
237
|
{
|
|
241
238
|
// createBuffers
|
|
@@ -243,23 +240,23 @@ class CircleLineChainPlugin {
|
|
|
243
240
|
const initialCapacity = this.bufferOrchestrator.capacity;
|
|
244
241
|
this.bufferManagersCompMap = new Map([
|
|
245
242
|
["centerCoords2d", {
|
|
246
|
-
'bufferManager': new
|
|
243
|
+
'bufferManager': new BufferManager(gl, 2, { bufferType, initialCapacity }),
|
|
247
244
|
'adaptor': (item) => new Float32Array(globe.api_GetMercator2DPoint(item.long, item.lat)),
|
|
248
245
|
}],
|
|
249
246
|
["centerCoords3d", {
|
|
250
|
-
'bufferManager': new
|
|
251
|
-
'adaptor': (item) =>
|
|
247
|
+
'bufferManager': new BufferManager(gl, 3, { bufferType, initialCapacity }),
|
|
248
|
+
'adaptor': (item) => sphereCoord(item.long, item.lat, globe, item.altitude),
|
|
252
249
|
}],
|
|
253
250
|
["targetCoords2d", {
|
|
254
|
-
'bufferManager': new
|
|
251
|
+
'bufferManager': new BufferManager(gl, 2, { bufferType, initialCapacity }),
|
|
255
252
|
'adaptor': (item) => new Float32Array(globe.api_GetMercator2DPoint(item.targetLong, item.targetLat)),
|
|
256
253
|
}],
|
|
257
254
|
["targetCoords3d", {
|
|
258
|
-
'bufferManager': new
|
|
259
|
-
'adaptor': (item) =>
|
|
255
|
+
'bufferManager': new BufferManager(gl, 3, { bufferType, initialCapacity }),
|
|
256
|
+
'adaptor': (item) => sphereCoord(item.targetLong, item.targetLat, globe, item.altitude),
|
|
260
257
|
}],
|
|
261
258
|
["rgba", {
|
|
262
|
-
'bufferManager': new
|
|
259
|
+
'bufferManager': new BufferManager(gl, 4, { bufferType, initialCapacity }),
|
|
263
260
|
'adaptor': (item) => {
|
|
264
261
|
if (item.lineProperties?.rgba)
|
|
265
262
|
return new Float32Array(item.lineProperties.rgba);
|
|
@@ -271,15 +268,15 @@ class CircleLineChainPlugin {
|
|
|
271
268
|
// 'adaptor': (item) => new Float32Array([item.bigRadius])
|
|
272
269
|
// }],
|
|
273
270
|
["dashRatio", {
|
|
274
|
-
'bufferManager': new
|
|
271
|
+
'bufferManager': new BufferManager(gl, 1, { bufferType, initialCapacity }),
|
|
275
272
|
'adaptor': (item) => new Float32Array([item.chainProperties.dashRatio])
|
|
276
273
|
}],
|
|
277
274
|
["dashOpacity", {
|
|
278
|
-
'bufferManager': new
|
|
275
|
+
'bufferManager': new BufferManager(gl, 1, { bufferType, initialCapacity }),
|
|
279
276
|
'adaptor': (item) => new Float32Array([item.chainProperties.dashOpacity])
|
|
280
277
|
}],
|
|
281
278
|
["circleDashAngle", {
|
|
282
|
-
'bufferManager': new
|
|
279
|
+
'bufferManager': new BufferManager(gl, 1, { bufferType, initialCapacity }),
|
|
283
280
|
'adaptor': (item) => {
|
|
284
281
|
if (item.circleProperties?.circleDashAngle)
|
|
285
282
|
return new Float32Array([item.circleProperties.circleDashAngle / 360]);
|
|
@@ -287,7 +284,7 @@ class CircleLineChainPlugin {
|
|
|
287
284
|
}
|
|
288
285
|
}],
|
|
289
286
|
["rgbaCircle", {
|
|
290
|
-
"bufferManager": new
|
|
287
|
+
"bufferManager": new BufferManager(gl, 4, { bufferType, initialCapacity }),
|
|
291
288
|
"adaptor": (item) => {
|
|
292
289
|
if (item.circleProperties?.rgba)
|
|
293
290
|
return new Float32Array(item.circleProperties.rgba);
|
|
@@ -296,31 +293,31 @@ class CircleLineChainPlugin {
|
|
|
296
293
|
}],
|
|
297
294
|
// Mercator buffers
|
|
298
295
|
["circleDashAngleMercator", {
|
|
299
|
-
'bufferManager': new
|
|
296
|
+
'bufferManager': new BufferManager(gl, 1 * _circleFlatEdgeCount, { bufferType, initialCapacity }),
|
|
300
297
|
'adaptor': (item) => {
|
|
301
298
|
if (item.circleProperties?.circleDashAngle)
|
|
302
299
|
return new Float32Array([item.circleProperties.circleDashAngle / 360]);
|
|
303
|
-
return
|
|
300
|
+
return populateFloat32Array.fillFloat32Array(_circleFlatEdgeCount, item.chainProperties.circleDashAngle / 360);
|
|
304
301
|
}
|
|
305
302
|
}],
|
|
306
303
|
["rgbaCircleMercator", {
|
|
307
|
-
"bufferManager": new
|
|
304
|
+
"bufferManager": new BufferManager(gl, 4 * _circleFlatEdgeCount, { bufferType, initialCapacity }),
|
|
308
305
|
"adaptor": (item) => {
|
|
309
306
|
if (item.circleProperties?.rgba)
|
|
310
|
-
return
|
|
311
|
-
return
|
|
307
|
+
return populateFloat32Array.fillWithListData(_circleFlatEdgeCount, item.circleProperties.rgba);
|
|
308
|
+
return populateFloat32Array.fillWithListData(_circleFlatEdgeCount, item.chainProperties.rgba);
|
|
312
309
|
}
|
|
313
310
|
}],
|
|
314
311
|
["dashOpacityMercator", {
|
|
315
|
-
'bufferManager': new
|
|
316
|
-
'adaptor': (item) =>
|
|
312
|
+
'bufferManager': new BufferManager(gl, 1 * _circleFlatEdgeCount, { bufferType, initialCapacity }),
|
|
313
|
+
'adaptor': (item) => populateFloat32Array.fillFloat32Array(_circleFlatEdgeCount, item.chainProperties.dashOpacity)
|
|
317
314
|
}],
|
|
318
315
|
["centerCoords2dMercator", {
|
|
319
|
-
'bufferManager': new
|
|
316
|
+
'bufferManager': new BufferManager(gl, 2 * _circleFlatEdgeCount, { bufferType, initialCapacity }),
|
|
320
317
|
'adaptor': (item) => item.centerCoords2dflat,
|
|
321
318
|
}],
|
|
322
319
|
]);
|
|
323
|
-
const obj = (key) =>
|
|
320
|
+
const obj = (key) => createBufferAndReadInfo(this.bufferManagersCompMap.get(key).bufferManager.buffer);
|
|
324
321
|
this.lineVao = this.lineProgram.createVAO(...['centerCoords2d', 'centerCoords3d', 'targetCoords2d', 'targetCoords3d', 'dashRatio', 'dashOpacity', 'rgba'
|
|
325
322
|
].map(key => obj(key)));
|
|
326
323
|
this.circleVao2d = this.circleProgram2d.createVAO(...["centerCoords2dMercator", "rgbaCircleMercator", "circleDashAngleMercator", "dashOpacityMercator"
|
|
@@ -343,7 +340,7 @@ class CircleLineChainPlugin {
|
|
|
343
340
|
const callback = (v, i, array, chainProperties) => {
|
|
344
341
|
if (i === array.length - 1)
|
|
345
342
|
return null;
|
|
346
|
-
const centerCoords2dflat =
|
|
343
|
+
const centerCoords2dflat = centerCoords2dflatDataCreator(globe, v.long, v.lat, array[i + 1].long, array[i + 1].lat, { edgeCount: this._circleFlatEdgeCount });
|
|
347
344
|
const altitude = (v.altitude ?? chainProperties.altitude ?? 0) / 1000;
|
|
348
345
|
return {
|
|
349
346
|
chainProperties: chainProperties,
|
|
@@ -376,9 +373,9 @@ class CircleLineChainPlugin {
|
|
|
376
373
|
this.bufferManagersCompMap.forEach(({ bufferManager }) => {
|
|
377
374
|
bufferManager.free();
|
|
378
375
|
});
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
376
|
+
LineOnGlobeCache.release(this.globe);
|
|
377
|
+
CircleCache.release(this.globe);
|
|
378
|
+
Circle3DCache.release(this.globe);
|
|
382
379
|
// LineToTheOriginCache.release(this.globe);
|
|
383
380
|
this._textWritersMap.forEach((writer) => writer.free());
|
|
384
381
|
const { gl } = this;
|
|
@@ -412,7 +409,6 @@ class CircleLineChainPlugin {
|
|
|
412
409
|
gl.enable(gl.DEPTH_TEST);
|
|
413
410
|
}
|
|
414
411
|
}
|
|
415
|
-
exports.CircleLineChainPlugin = CircleLineChainPlugin;
|
|
416
412
|
// const radiusMethod = (globe) => (v, i, array) => {
|
|
417
413
|
// return globe.Math.GetDist3D(v.long, v.lat, array[i + 1].long, array[i + 1].lat)
|
|
418
414
|
// }
|
|
@@ -1,5 +1 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.keyMethod = void 0;
|
|
4
|
-
const keyMethod = (chainKey, nodeKey) => `${chainKey}_${nodeKey}`;
|
|
5
|
-
exports.keyMethod = keyMethod;
|
|
1
|
+
export const keyMethod = (chainKey, nodeKey) => `${chainKey}_${nodeKey}`;
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const pixel_padding_for_compass_1 = require("../programs/two-d/pixel-padding-for-compass");
|
|
5
|
-
const account_1 = require("../util/account");
|
|
6
|
-
const compass_text_writer_1 = require("./compass-text-writer");
|
|
1
|
+
import { PixelPaddingForFlatCompassCache } from "../programs/two-d/pixel-padding-for-compass";
|
|
2
|
+
import { BufferManager, BufferOrchestrator } from "../util/account";
|
|
3
|
+
import { PixelPaddingCompassTextWriter } from "./compass-text-writer";
|
|
7
4
|
const PaddingAngle = 30;
|
|
8
5
|
const textGapFit = 10;
|
|
9
|
-
class PixelPaddingCompassPlugin {
|
|
6
|
+
export class PixelPaddingCompassPlugin {
|
|
10
7
|
constructor(id, { opacity = 1, textAngleOn = true, defaultProperties = {
|
|
11
8
|
rgba: [1, 1, 1, 1],
|
|
12
9
|
pixelRadiusRatioBig: 0.8,
|
|
@@ -31,7 +28,7 @@ class PixelPaddingCompassPlugin {
|
|
|
31
28
|
this.id = id;
|
|
32
29
|
this.textAngleOn = textAngleOn;
|
|
33
30
|
this.defaultProperties = defaultProperties;
|
|
34
|
-
this.bufferOrchestrator = new
|
|
31
|
+
this.bufferOrchestrator = new BufferOrchestrator({ capacity: 10 });
|
|
35
32
|
this._font_hold = { font, northFont };
|
|
36
33
|
this.compassMap = new CompassMap(this);
|
|
37
34
|
this._opacity = opacity;
|
|
@@ -84,26 +81,26 @@ class PixelPaddingCompassPlugin {
|
|
|
84
81
|
}
|
|
85
82
|
_initOrchestrations() {
|
|
86
83
|
const { gl, globe } = this;
|
|
87
|
-
this.paddingProgram =
|
|
84
|
+
this.paddingProgram = PixelPaddingForFlatCompassCache.get(globe);
|
|
88
85
|
{
|
|
89
86
|
// createBuffers
|
|
90
87
|
const bufferType = "DYNAMIC_DRAW";
|
|
91
88
|
const initialCapacity = this.bufferOrchestrator.capacity;
|
|
92
89
|
this.bufferManagersCompMap = new Map([
|
|
93
90
|
["screenCoordinates", {
|
|
94
|
-
'bufferManager': new
|
|
91
|
+
'bufferManager': new BufferManager(gl, 2, { bufferType, initialCapacity }),
|
|
95
92
|
'adaptor': (item) => new Float32Array([item.x, item.y])
|
|
96
93
|
}],
|
|
97
94
|
["pixelRadiusRatioSmall", {
|
|
98
|
-
'bufferManager': new
|
|
95
|
+
'bufferManager': new BufferManager(gl, 1, { bufferType, initialCapacity }),
|
|
99
96
|
'adaptor': (item) => new Float32Array([item.properties.pixelRadiusRatioSmall])
|
|
100
97
|
}],
|
|
101
98
|
["pixelRadiusRatioBig", {
|
|
102
|
-
'bufferManager': new
|
|
99
|
+
'bufferManager': new BufferManager(gl, 1, { bufferType, initialCapacity }),
|
|
103
100
|
'adaptor': (item) => new Float32Array([item.properties.pixelRadiusRatioBig])
|
|
104
101
|
}],
|
|
105
102
|
["rgba", {
|
|
106
|
-
'bufferManager': new
|
|
103
|
+
'bufferManager': new BufferManager(gl, 4, { bufferType, initialCapacity }),
|
|
107
104
|
'adaptor': (item) => new Float32Array(item.properties.rgba)
|
|
108
105
|
}],
|
|
109
106
|
]);
|
|
@@ -114,7 +111,7 @@ class PixelPaddingCompassPlugin {
|
|
|
114
111
|
}
|
|
115
112
|
}
|
|
116
113
|
_createTextWriter() {
|
|
117
|
-
this.writer = new
|
|
114
|
+
this.writer = new PixelPaddingCompassTextWriter(this.globe, { angle: PaddingAngle, ...this._font_hold });
|
|
118
115
|
}
|
|
119
116
|
resize() {
|
|
120
117
|
this.writer?.resize();
|
|
@@ -159,7 +156,7 @@ class PixelPaddingCompassPlugin {
|
|
|
159
156
|
this.compassMap.free();
|
|
160
157
|
const { globe, gl, paddingVao } = this;
|
|
161
158
|
gl.deleteVertexArray(paddingVao);
|
|
162
|
-
|
|
159
|
+
PixelPaddingForFlatCompassCache.release(globe);
|
|
163
160
|
this.bufferManagersCompMap.forEach(v => {
|
|
164
161
|
v.bufferManager.free();
|
|
165
162
|
});
|
|
@@ -178,7 +175,6 @@ class PixelPaddingCompassPlugin {
|
|
|
178
175
|
return Math.min(globe.api_ScrW(), globe.api_ScrH());
|
|
179
176
|
}
|
|
180
177
|
}
|
|
181
|
-
exports.PixelPaddingCompassPlugin = PixelPaddingCompassPlugin;
|
|
182
178
|
class CompassMap {
|
|
183
179
|
constructor(parent) {
|
|
184
180
|
this.coordsMemory = new Map();
|