@openglobus/og 0.13.5 → 0.13.8
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/css/og.css +66 -25
- package/dist/@openglobus/og.css +1 -1
- package/dist/@openglobus/og.esm.js +2 -2
- package/dist/@openglobus/og.esm.js.map +1 -1
- package/dist/@openglobus/og.umd.js +2 -2
- package/dist/@openglobus/og.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/og/Events.js +188 -188
- package/src/og/Extent.js +1 -9
- package/src/og/Globe.js +1 -0
- package/src/og/Object3d.js +384 -0
- package/src/og/arial.js +1705 -1703
- package/src/og/camera/Camera.js +640 -640
- package/src/og/control/DebugInfo.js +15 -4
- package/src/og/control/EarthCoordinates.js +151 -160
- package/src/og/control/KeyboardNavigation.js +48 -2
- package/src/og/control/LayerAnimation.js +115 -0
- package/src/og/control/MouseNavigation.js +460 -460
- package/src/og/control/Sun.js +170 -170
- package/src/og/control/TouchNavigation.js +13 -13
- package/src/og/control/ZoomControl.js +1 -3
- package/src/og/control/index.js +3 -1
- package/src/og/control/ruler/Ruler.js +43 -0
- package/src/og/control/ruler/RulerScene.js +370 -0
- package/src/og/control/visibleExtent/Segment.js +1 -4
- package/src/og/ellipsoid/Ellipsoid.js +20 -1
- package/src/og/entity/Entity.js +1 -1
- package/src/og/entity/GeoObject.js +1 -1
- package/src/og/entity/LabelHandler.js +3 -2
- package/src/og/input/input.js +7 -1
- package/src/og/layer/CanvasTiles.js +8 -8
- package/src/og/layer/KML.js +181 -12
- package/src/og/layer/Layer.js +27 -42
- package/src/og/layer/Vector.js +80 -14
- package/src/og/layer/XYZ.js +8 -2
- package/src/og/math/Vec3.js +1 -1
- package/src/og/math.js +4 -4
- package/src/og/quadTree/Node.js +2 -1
- package/src/og/renderer/Renderer.js +1 -2
- package/src/og/renderer/RendererEvents.js +17 -3
- package/src/og/res/images.js +0 -2
- package/src/og/scene/Planet.js +92 -32
- package/src/og/segment/Segment.js +1 -8
- package/src/og/shaders/label.js +30 -42
- package/src/og/terrain/EmptyTerrain.js +164 -146
- package/src/og/terrain/Geoid.js +246 -241
- package/src/og/terrain/GlobusTerrain.js +23 -24
- package/src/og/terrain/MapboxTerrain.js +292 -294
- package/src/og/utils/FontAtlas.js +1 -2
- package/src/og/utils/Loader.js +160 -112
- package/src/og/utils/PlainSegmentWorker.js +38 -26
- package/src/og/utils/VectorTileCreator.js +1 -1
- package/src/og/utils/units.js +78 -0
- package/src/og/webgl/ProgramController.js +143 -143
- package/types/Object3d.d.ts +21 -0
- package/types/arial.d.ts +1 -0
- package/types/control/EarthCoordinates.d.ts +27 -30
- package/types/control/KeyboardNavigation.d.ts +3 -0
- package/types/control/Sun.d.ts +1 -1
- package/types/control/index.d.ts +2 -1
- package/types/control/ruler/Ruler.d.ts +13 -0
- package/types/control/ruler/RulerScene.d.ts +48 -0
- package/types/ellipsoid/Ellipsoid.d.ts +8 -0
- package/types/input/input.d.ts +6 -0
- package/types/layer/KML.d.ts +26 -1
- package/types/layer/Layer.d.ts +23 -31
- package/types/layer/Vector.d.ts +2 -0
- package/types/layer/XYZ.d.ts +1 -0
- package/types/math.d.ts +1 -1
- package/types/renderer/RendererEvents.d.ts +2 -0
- package/types/res/images.d.ts +0 -1
- package/types/scene/Planet.d.ts +12 -3
- package/types/terrain/EmptyTerrain.d.ts +4 -1
- package/types/terrain/Geoid.d.ts +1 -10
- package/types/terrain/GlobusTerrain.d.ts +0 -2
- package/types/terrain/MapboxTerrain.d.ts +1 -1
- package/types/utils/Loader.d.ts +4 -0
- package/types/utils/units.d.ts +20 -0
package/src/og/scene/Planet.js
CHANGED
|
@@ -88,7 +88,13 @@ const EVENT_NAMES = [
|
|
|
88
88
|
* Triggered when all data is loaded
|
|
89
89
|
* @event og.scene.Planet#rendercompleted
|
|
90
90
|
*/
|
|
91
|
-
"rendercompleted"
|
|
91
|
+
"rendercompleted",
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Triggered when all data is loaded
|
|
95
|
+
* @event og.scene.Planet#terraincompleted
|
|
96
|
+
*/
|
|
97
|
+
"terraincompleted"
|
|
92
98
|
];
|
|
93
99
|
|
|
94
100
|
/**
|
|
@@ -221,7 +227,7 @@ export class Planet extends RenderNode {
|
|
|
221
227
|
*/
|
|
222
228
|
this.maxCurrZoom = math.MIN;
|
|
223
229
|
|
|
224
|
-
this._viewExtent =
|
|
230
|
+
this._viewExtent = new Extent(new LonLat(180, 180), new LonLat(-180, -180));
|
|
225
231
|
|
|
226
232
|
/**
|
|
227
233
|
* @protected
|
|
@@ -428,6 +434,10 @@ export class Planet extends RenderNode {
|
|
|
428
434
|
this.always = [];
|
|
429
435
|
|
|
430
436
|
this._renderCompleted = false;
|
|
437
|
+
this._renderCompletedActivated = false;
|
|
438
|
+
|
|
439
|
+
this._terrainCompleted = false;
|
|
440
|
+
this._terrainCompletedActivated = false;
|
|
431
441
|
}
|
|
432
442
|
|
|
433
443
|
static getBearingNorthRotationQuat(cartesian) {
|
|
@@ -454,6 +464,7 @@ export class Planet extends RenderNode {
|
|
|
454
464
|
this._minLodSize = minLodSize || this._minLodSize;
|
|
455
465
|
this._curLodSize = currentLodSize || this._curLodSize;
|
|
456
466
|
this._renderCompletedActivated = false;
|
|
467
|
+
this._terrainCompletedActivated = false;
|
|
457
468
|
}
|
|
458
469
|
|
|
459
470
|
/**
|
|
@@ -571,6 +582,7 @@ export class Planet extends RenderNode {
|
|
|
571
582
|
*/
|
|
572
583
|
setHeightFactor(factor) {
|
|
573
584
|
this._renderCompletedActivated = false;
|
|
585
|
+
this._terrainCompletedActivated = false;
|
|
574
586
|
|
|
575
587
|
if (this._heightFactor !== factor) {
|
|
576
588
|
this._heightFactor = factor;
|
|
@@ -593,6 +605,7 @@ export class Planet extends RenderNode {
|
|
|
593
605
|
*/
|
|
594
606
|
setTerrain(terrain) {
|
|
595
607
|
this._renderCompletedActivated = false;
|
|
608
|
+
this._terrainCompletedActivated = false;
|
|
596
609
|
|
|
597
610
|
if (this._initialized) {
|
|
598
611
|
this.memClear();
|
|
@@ -613,21 +626,36 @@ export class Planet extends RenderNode {
|
|
|
613
626
|
this._quadTree.destroyBranches();
|
|
614
627
|
}
|
|
615
628
|
|
|
616
|
-
if (terrain._geoid) {
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
.
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
629
|
+
//if (terrain._geoid) {
|
|
630
|
+
|
|
631
|
+
if (terrain._geoid.model) {
|
|
632
|
+
this._plainSegmentWorker.setGeoid(terrain.getGeoid());
|
|
633
|
+
terrain._isReady = true;
|
|
634
|
+
} else {
|
|
635
|
+
Geoid.loadModel(terrain._geoid.src)
|
|
636
|
+
.then((m) => {
|
|
637
|
+
terrain.getGeoid().setModel(m);
|
|
638
|
+
this._plainSegmentWorker.setGeoid(terrain.getGeoid());
|
|
639
|
+
terrain._isReady = true;
|
|
640
|
+
})
|
|
641
|
+
.catch((err) => {
|
|
642
|
+
console.log(err);
|
|
643
|
+
});
|
|
630
644
|
}
|
|
645
|
+
|
|
646
|
+
// if (!terrain._geoid.model) {
|
|
647
|
+
// Geoid.loadModel(terrain._geoid.src)
|
|
648
|
+
// .then((m) => {
|
|
649
|
+
// terrain.getGeoid().setModel(m);
|
|
650
|
+
// this._plainSegmentWorker.setGeoid(terrain.getGeoid());
|
|
651
|
+
// })
|
|
652
|
+
// .catch((err) => {
|
|
653
|
+
// console.log(err);
|
|
654
|
+
// });
|
|
655
|
+
// } else {
|
|
656
|
+
// this._plainSegmentWorker.setGeoid(terrain.getGeoid());
|
|
657
|
+
// }
|
|
658
|
+
//}
|
|
631
659
|
}
|
|
632
660
|
|
|
633
661
|
/**
|
|
@@ -677,10 +705,10 @@ export class Planet extends RenderNode {
|
|
|
677
705
|
!this._indexesCache[i][j] && (this._indexesCache[i][j] = new Array(TABLESIZE));
|
|
678
706
|
for (var k = 0; k <= TABLESIZE; k++) {
|
|
679
707
|
!this._indexesCache[i][j][k] &&
|
|
680
|
-
|
|
708
|
+
(this._indexesCache[i][j][k] = new Array(TABLESIZE));
|
|
681
709
|
for (var m = 0; m <= TABLESIZE; m++) {
|
|
682
710
|
!this._indexesCache[i][j][k][m] &&
|
|
683
|
-
|
|
711
|
+
(this._indexesCache[i][j][k][m] = new Array(TABLESIZE));
|
|
684
712
|
for (var q = 0; q <= TABLESIZE; q++) {
|
|
685
713
|
let ptr = {
|
|
686
714
|
buffer: null
|
|
@@ -708,6 +736,7 @@ export class Planet extends RenderNode {
|
|
|
708
736
|
|
|
709
737
|
this.renderer.events.on("resize", () => {
|
|
710
738
|
this._renderCompletedActivated = false;
|
|
739
|
+
this._terrainCompletedActivated = false;
|
|
711
740
|
});
|
|
712
741
|
|
|
713
742
|
// Initialize texture coordinates buffer pool
|
|
@@ -917,15 +946,7 @@ export class Planet extends RenderNode {
|
|
|
917
946
|
}
|
|
918
947
|
}
|
|
919
948
|
|
|
920
|
-
|
|
921
|
-
if (html.length) {
|
|
922
|
-
this.renderer.div.attributions.style.display = "block";
|
|
923
|
-
this.renderer.div.attributions.innerHTML = "<ul>" + html + "</ul>";
|
|
924
|
-
} else {
|
|
925
|
-
this.renderer.div.attributions.style.display = "none";
|
|
926
|
-
this.renderer.div.attributions.innerHTML = "";
|
|
927
|
-
}
|
|
928
|
-
}
|
|
949
|
+
this._applyAttribution(html)
|
|
929
950
|
}
|
|
930
951
|
|
|
931
952
|
/**
|
|
@@ -971,17 +992,28 @@ export class Planet extends RenderNode {
|
|
|
971
992
|
}
|
|
972
993
|
}
|
|
973
994
|
|
|
995
|
+
this._applyAttribution(html);
|
|
996
|
+
|
|
997
|
+
this._sortLayers();
|
|
998
|
+
}
|
|
999
|
+
|
|
1000
|
+
/**
|
|
1001
|
+
* Apply to render list of layer attributions
|
|
1002
|
+
* @private
|
|
1003
|
+
*/
|
|
1004
|
+
_applyAttribution(html) {
|
|
974
1005
|
if (this.renderer) {
|
|
975
1006
|
if (html.length) {
|
|
976
|
-
|
|
977
|
-
this.renderer.div.attributions.innerHTML
|
|
1007
|
+
html = "<ul>" + html + "</ul>";
|
|
1008
|
+
if (this.renderer.div.attributions.innerHTML !== html) {
|
|
1009
|
+
this.renderer.div.attributions.style.display = "block";
|
|
1010
|
+
this.renderer.div.attributions.innerHTML = html;
|
|
1011
|
+
}
|
|
978
1012
|
} else {
|
|
979
1013
|
this.renderer.div.attributions.style.display = "none";
|
|
980
1014
|
this.renderer.div.attributions.innerHTML = "";
|
|
981
1015
|
}
|
|
982
1016
|
}
|
|
983
|
-
|
|
984
|
-
this._sortLayers();
|
|
985
1017
|
}
|
|
986
1018
|
|
|
987
1019
|
/**
|
|
@@ -1040,7 +1072,8 @@ export class Planet extends RenderNode {
|
|
|
1040
1072
|
// clear first
|
|
1041
1073
|
this._clearRenderedNodeList();
|
|
1042
1074
|
|
|
1043
|
-
this._viewExtent
|
|
1075
|
+
this._viewExtent.southWest.set(180, 180);
|
|
1076
|
+
this._viewExtent.northEast.set(-180, -180);
|
|
1044
1077
|
|
|
1045
1078
|
this._visibleNodes = {};
|
|
1046
1079
|
this._visibleNodesNorth = {};
|
|
@@ -1138,6 +1171,17 @@ export class Planet extends RenderNode {
|
|
|
1138
1171
|
this._renderCompletedActivated = false;
|
|
1139
1172
|
}
|
|
1140
1173
|
this._renderCompleted = true;
|
|
1174
|
+
|
|
1175
|
+
if (this._terrainCompleted) {
|
|
1176
|
+
if (!this._terrainCompletedActivated) {
|
|
1177
|
+
this._terrainCompletedActivated = true;
|
|
1178
|
+
this.events.dispatch(this.events.terraincompleted, true);
|
|
1179
|
+
}
|
|
1180
|
+
} else {
|
|
1181
|
+
this._terrainCompletedActivated = false;
|
|
1182
|
+
}
|
|
1183
|
+
|
|
1184
|
+
this._terrainCompleted = true;
|
|
1141
1185
|
}
|
|
1142
1186
|
|
|
1143
1187
|
/**
|
|
@@ -1789,4 +1833,20 @@ export class Planet extends RenderNode {
|
|
|
1789
1833
|
}
|
|
1790
1834
|
}
|
|
1791
1835
|
}
|
|
1836
|
+
|
|
1837
|
+
async getHeightDefault(lonLat) {
|
|
1838
|
+
return new Promise((resolve, reject) => {
|
|
1839
|
+
this.terrain.getHeightAsync(lonLat.clone(), (alt) => {
|
|
1840
|
+
resolve(alt);
|
|
1841
|
+
});
|
|
1842
|
+
});
|
|
1843
|
+
}
|
|
1844
|
+
|
|
1845
|
+
async getHeightAboveELL(lonLat) {
|
|
1846
|
+
return new Promise((resolve, reject) => {
|
|
1847
|
+
this.terrain.getHeightAsync(lonLat.clone(), (alt) => {
|
|
1848
|
+
resolve(alt + this.terrain.geoid.getHeightLonLat(lonLat));
|
|
1849
|
+
});
|
|
1850
|
+
});
|
|
1851
|
+
}
|
|
1792
1852
|
}
|
|
@@ -1209,14 +1209,6 @@ class Segment {
|
|
|
1209
1209
|
_addViewExtent() {
|
|
1210
1210
|
var ext = this._extentLonLat;
|
|
1211
1211
|
|
|
1212
|
-
if (!this.planet._viewExtent) {
|
|
1213
|
-
this.planet._viewExtent = new Extent(
|
|
1214
|
-
new LonLat(ext.southWest.lon, ext.southWest.lat),
|
|
1215
|
-
new LonLat(ext.northEast.lon, ext.northEast.lat)
|
|
1216
|
-
);
|
|
1217
|
-
return;
|
|
1218
|
-
}
|
|
1219
|
-
|
|
1220
1212
|
var viewExt = this.planet._viewExtent;
|
|
1221
1213
|
|
|
1222
1214
|
if (ext.southWest.lon < viewExt.southWest.lon) {
|
|
@@ -1488,6 +1480,7 @@ class Segment {
|
|
|
1488
1480
|
|
|
1489
1481
|
if (!m.isReady) {
|
|
1490
1482
|
this.planet._renderCompleted = false;
|
|
1483
|
+
this.planet._terrainReady = false;
|
|
1491
1484
|
}
|
|
1492
1485
|
|
|
1493
1486
|
slice.append(li, m);
|
package/src/og/shaders/label.js
CHANGED
|
@@ -92,6 +92,7 @@ export function label_webgl2() {
|
|
|
92
92
|
|
|
93
93
|
if(a_texCoord.w == EMPTY) {
|
|
94
94
|
gl_Position = vec4(0.0);
|
|
95
|
+
v_fontIndex = -1;
|
|
95
96
|
return;
|
|
96
97
|
}
|
|
97
98
|
|
|
@@ -154,7 +155,6 @@ export function label_webgl2() {
|
|
|
154
155
|
uniform int isOutlinePass;
|
|
155
156
|
|
|
156
157
|
precision highp float;
|
|
157
|
-
precision highp int;
|
|
158
158
|
|
|
159
159
|
const int MAX_SIZE = 11;
|
|
160
160
|
|
|
@@ -207,51 +207,33 @@ export function label_webgl2() {
|
|
|
207
207
|
}
|
|
208
208
|
return median(msdf.r, msdf.g, msdf.b);
|
|
209
209
|
}
|
|
210
|
-
|
|
211
|
-
vec4 getSDFParams() {
|
|
212
|
-
if(v_fontIndex == 0) {
|
|
213
|
-
return sdfParamsArr[0];
|
|
214
|
-
} else if(v_fontIndex == 1){
|
|
215
|
-
return sdfParamsArr[1];
|
|
216
|
-
} else if(v_fontIndex == 2){
|
|
217
|
-
return sdfParamsArr[2];
|
|
218
|
-
} else if(v_fontIndex == 3){
|
|
219
|
-
return sdfParamsArr[3];
|
|
220
|
-
} else if(v_fontIndex == 4){
|
|
221
|
-
return sdfParamsArr[4];
|
|
222
|
-
} else if(v_fontIndex == 5){
|
|
223
|
-
return sdfParamsArr[5];
|
|
224
|
-
} else if(v_fontIndex == 6){
|
|
225
|
-
return sdfParamsArr[6];
|
|
226
|
-
} else if(v_fontIndex == 7){
|
|
227
|
-
return sdfParamsArr[7];
|
|
228
|
-
} else if(v_fontIndex == 8){
|
|
229
|
-
return sdfParamsArr[8];
|
|
230
|
-
} else if(v_fontIndex == 9){
|
|
231
|
-
return sdfParamsArr[9];
|
|
232
|
-
} else if(v_fontIndex == 10){
|
|
233
|
-
return sdfParamsArr[10];
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
210
|
|
|
237
211
|
void main () {
|
|
238
|
-
|
|
239
|
-
|
|
212
|
+
|
|
213
|
+
if(v_fontIndex == -1) {
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
vec4 sdfParams = sdfParamsArr[v_fontIndex];
|
|
240
218
|
float sd = getDistance();
|
|
241
219
|
vec2 dxdy = fwidth(v_uv) * sdfParams.xy;
|
|
242
|
-
float dist = sd + min(0.001, 0.5 - 1.0 / sdfParams.w) - 0.5;
|
|
243
|
-
float opacity = clamp(dist * sdfParams.w / length(dxdy) + 0.5, 0.0, 1.0);
|
|
244
220
|
|
|
245
221
|
if(isOutlinePass == 0){
|
|
222
|
+
float dist = sd + min(0.001, 0.5 - 1.0 / sdfParams.w) - 0.5;
|
|
223
|
+
float opacity = clamp(dist * sdfParams.w / length(dxdy) + 0.5, 0.0, 1.0);
|
|
224
|
+
if(opacity <= 0.1){
|
|
225
|
+
discard;
|
|
226
|
+
}
|
|
246
227
|
outScreen = vec4(v_rgba.rgb, opacity * v_rgba.a);
|
|
247
|
-
} else {
|
|
248
|
-
float
|
|
249
|
-
float
|
|
250
|
-
if(
|
|
228
|
+
} else {
|
|
229
|
+
float dist = sd + min(v_outline, 0.5 - 1.0 / sdfParams.w) - 0.5;
|
|
230
|
+
float opacity = clamp(dist * sdfParams.w / length(dxdy) + 0.5, 0.0, 1.0);
|
|
231
|
+
if(opacity <= 0.1){
|
|
251
232
|
discard;
|
|
252
233
|
}
|
|
253
|
-
outScreen = v_rgba
|
|
254
|
-
|
|
234
|
+
outScreen = vec4(v_rgba.rgb, opacity * v_rgba.a);
|
|
235
|
+
//outScreen = v_rgba * strokeAlpha * (0.5 - opacity) * 2.0;
|
|
236
|
+
}
|
|
255
237
|
}`
|
|
256
238
|
});
|
|
257
239
|
}
|
|
@@ -326,6 +308,7 @@ export function label_screen() {
|
|
|
326
308
|
|
|
327
309
|
if(a_texCoord.w == EMPTY) {
|
|
328
310
|
gl_Position = vec4(0.0);
|
|
311
|
+
v_fontIndex = -1.0;
|
|
329
312
|
return;
|
|
330
313
|
}
|
|
331
314
|
|
|
@@ -469,6 +452,10 @@ export function label_screen() {
|
|
|
469
452
|
|
|
470
453
|
fontIndex = v_fontIndex + 0.1;
|
|
471
454
|
|
|
455
|
+
if(v_fontIndex < 0.0){
|
|
456
|
+
return;
|
|
457
|
+
}
|
|
458
|
+
|
|
472
459
|
vec4 sdfParams = getSDFParams();
|
|
473
460
|
float sd = getDistance();
|
|
474
461
|
vec2 dxdy = fwidth(v_uv) * sdfParams.xy;
|
|
@@ -476,14 +463,14 @@ export function label_screen() {
|
|
|
476
463
|
float opacity = clamp(dist * sdfParams.w / length(dxdy) + 0.5, 0.0, 1.0);
|
|
477
464
|
|
|
478
465
|
if(isOutlinePass == 0){
|
|
479
|
-
gl_FragColor = vec4(v_rgba.rgb, opacity * v_rgba.a);
|
|
466
|
+
//gl_FragColor = vec4(v_rgba.rgb, opacity * v_rgba.a);
|
|
480
467
|
} else {
|
|
481
468
|
float strokeDist = sd + min(v_outline, 0.5 - 1.0 / sdfParams.w) - 0.5;
|
|
482
469
|
float strokeAlpha = v_rgba.a * clamp(strokeDist * sdfParams.w / length(dxdy) + 0.5, 0.0, 1.0);
|
|
483
470
|
if(strokeAlpha < 0.1){
|
|
484
471
|
discard;
|
|
485
472
|
}
|
|
486
|
-
gl_FragColor = v_rgba * strokeAlpha * (0.5 - opacity) * 2.0;
|
|
473
|
+
//gl_FragColor = v_rgba * strokeAlpha * (0.5 - opacity) * 2.0;
|
|
487
474
|
}
|
|
488
475
|
}`
|
|
489
476
|
});
|
|
@@ -549,15 +536,16 @@ export function labelPicking() {
|
|
|
549
536
|
void main() {
|
|
550
537
|
vec3 a_positions = a_positionsHigh + a_positionsLow;
|
|
551
538
|
vec3 cameraPos = eyePositionHigh + eyePositionLow;
|
|
552
|
-
|
|
539
|
+
v_rgba = a_rgba;
|
|
540
|
+
|
|
553
541
|
if(a_texCoord.w == EMPTY) {
|
|
542
|
+
v_rgba.a = 0.0;
|
|
554
543
|
gl_Position = vec4(0.0);
|
|
555
544
|
return;
|
|
556
545
|
}
|
|
557
546
|
|
|
558
547
|
vec3 look = a_positions - cameraPos;
|
|
559
548
|
float lookDist = length(look);
|
|
560
|
-
v_rgba = a_rgba;
|
|
561
549
|
if(opacity * step(lookDist, sqrt(dot(cameraPos,cameraPos) - planetRadius) + sqrt(dot(a_positions,a_positions) - planetRadius)) == 0.0){
|
|
562
550
|
return;
|
|
563
551
|
}
|
|
@@ -611,7 +599,7 @@ export function labelPicking() {
|
|
|
611
599
|
|
|
612
600
|
vec4 color = v_rgba;
|
|
613
601
|
if (color.a < 0.05) {
|
|
614
|
-
|
|
602
|
+
return;
|
|
615
603
|
}
|
|
616
604
|
|
|
617
605
|
gl_FragColor = vec4(v_rgba.rgb, v_rgba.a);
|