@openglobus/og 0.16.3 → 0.17.1
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/README.md +1 -1
- package/css/og.css +24 -2
- 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/Clock.js +1 -5
- package/src/og/Events.js +2 -6
- package/src/og/Extent.js +5 -9
- package/src/og/Globe.js +93 -56
- package/src/og/ImageCanvas.js +13 -6
- package/src/og/Lock.js +44 -48
- package/src/og/LonLat.js +1 -5
- package/src/og/Object3d.js +2 -2
- package/src/og/QueueArray.js +1 -1
- package/src/og/Stack.js +49 -53
- package/src/og/astro/earth.js +112 -116
- package/src/og/astro/jd.js +514 -518
- package/src/og/astro/orbit.js +119 -123
- package/src/og/astro/rotation.js +36 -40
- package/src/og/bv/Box.js +77 -81
- package/src/og/bv/Sphere.js +57 -61
- package/src/og/camera/Camera.js +20 -7
- package/src/og/camera/Frustum.js +4 -4
- package/src/og/camera/PlanetCamera.js +15 -22
- package/src/og/cons.js +1 -1
- package/src/og/control/Atmosphere.js +0 -4
- package/src/og/control/Control.js +9 -8
- package/src/og/control/DebugInfo.js +3 -7
- package/src/og/control/DrawingSwitcher.js +117 -0
- package/src/og/control/EarthCoordinates.js +214 -214
- package/src/og/control/EarthNavigation.js +6 -13
- package/src/og/control/GeoImageDragControl.js +0 -4
- package/src/og/control/KeyboardNavigation.js +0 -4
- package/src/og/control/LayerAnimation.js +0 -4
- package/src/og/control/LayerSwitcher.js +2 -4
- package/src/og/control/Lighting.js +12 -16
- package/src/og/control/MouseNavigation.js +1 -5
- package/src/og/control/MouseWheelZoomControl.js +0 -4
- package/src/og/control/RulerSwitcher.js +0 -4
- package/src/og/control/ScaleControl.js +2 -6
- package/src/og/control/ShowFps.js +40 -44
- package/src/og/control/SimpleNavigation.js +10 -10
- package/src/og/control/SimpleSkyBackground.js +0 -4
- package/src/og/control/Sun.js +0 -4
- package/src/og/control/ToggleWireframe.js +35 -39
- package/src/og/control/ZoomControl.js +0 -4
- package/src/og/control/drawing/DrawingControl.js +51 -0
- package/src/og/control/drawing/LineStringDrawingScene.js +203 -0
- package/src/og/control/drawing/PolygonDrawingScene.js +785 -0
- package/src/og/control/elevationProfile/ElevationProfile.js +275 -0
- package/src/og/control/index.js +5 -1
- package/src/og/control/ruler/Ruler.js +0 -4
- package/src/og/control/ruler/RulerScene.js +3 -2
- package/src/og/control/selection/Selection.js +0 -4
- package/src/og/control/selection/SelectionScene.js +2 -4
- package/src/og/control/timeline/TimelineControl.js +4 -4
- package/src/og/control/timeline/TimelineModel.js +2 -2
- package/src/og/control/timeline/TimelineView.js +1 -0
- package/src/og/control/visibleExtent/Segment.js +7 -7
- package/src/og/control/visibleExtent/drawnode.js +0 -4
- package/src/og/ellipsoid/Ellipsoid.js +236 -325
- package/src/og/ellipsoid/wgs84.js +0 -4
- package/src/og/entity/BaseBillboard.js +375 -379
- package/src/og/entity/Billboard.js +0 -4
- package/src/og/entity/BillboardHandler.js +3 -7
- package/src/og/entity/Entity.js +22 -22
- package/src/og/entity/EntityCollection.js +14 -18
- package/src/og/entity/GeoObject.js +6 -8
- package/src/og/entity/GeoObjectHandler.js +30 -24
- package/src/og/entity/Geometry.js +5 -4
- package/src/og/entity/GeometryHandler.js +18 -19
- package/src/og/entity/Label.js +0 -4
- package/src/og/entity/LabelHandler.js +10 -14
- package/src/og/entity/LabelWorker.js +1 -1
- package/src/og/entity/PointCloud.js +2 -6
- package/src/og/entity/PointCloudHandler.js +122 -126
- package/src/og/entity/Polyline.js +15 -17
- package/src/og/entity/PolylineHandler.js +104 -108
- package/src/og/entity/Ray.js +29 -29
- package/src/og/entity/RayHandler.js +2 -2
- package/src/og/entity/Strip.js +1 -1
- package/src/og/entity/StripHandler.js +2 -2
- package/src/og/index.js +3 -1
- package/src/og/input/KeyboardHandler.js +128 -132
- package/src/og/input/MouseHandler.js +94 -98
- package/src/og/input/TouchHandler.js +59 -63
- package/src/og/input/input.js +44 -48
- package/src/og/layer/BaseGeoImage.js +6 -9
- package/src/og/layer/CanvasTiles.js +1 -5
- package/src/og/layer/GeoImage.js +0 -4
- package/src/og/layer/GeoTexture2d.js +0 -4
- package/src/og/layer/GeoVideo.js +0 -4
- package/src/og/layer/KML.js +1 -0
- package/src/og/layer/Layer.js +22 -26
- package/src/og/layer/Material.js +0 -4
- package/src/og/layer/Vector.js +25 -22
- package/src/og/layer/WMS.js +182 -186
- package/src/og/layer/XYZ.js +0 -4
- package/src/og/light/LightSource.js +0 -4
- package/src/og/math/Line2.js +28 -32
- package/src/og/math/Mat3.js +152 -156
- package/src/og/math/Ray.js +0 -4
- package/src/og/math/Vec2.js +0 -4
- package/src/og/math/Vec3.js +5 -4
- package/src/og/math/Vec4.js +0 -4
- package/src/og/math/coder.js +104 -104
- package/src/og/math.js +42 -10
- package/src/og/mercator.js +1 -1
- package/src/og/proj/EPSG3857.js +13 -13
- package/src/og/proj/Proj.js +59 -63
- package/src/og/quadTree/EPSG4326QuadTreeStrategy.js +1 -0
- package/src/og/quadTree/EarthQuadTreeStrategy.js +1 -0
- package/src/og/quadTree/EntityCollectionNode.js +12 -16
- package/src/og/quadTree/MarsQuadTreeStrategy.js +1 -0
- package/src/og/quadTree/Node.js +15 -14
- package/src/og/quadTree/QuadTreeStrategy.js +1 -0
- package/src/og/quadTree/Wgs84QuadTreeStrategy.js +1 -0
- package/src/og/renderer/Renderer.js +114 -27
- package/src/og/renderer/RendererEvents.js +0 -4
- package/src/og/scene/Axes.js +74 -78
- package/src/og/scene/BaseNode.js +1 -5
- package/src/og/scene/Planet.js +127 -130
- package/src/og/scene/RenderNode.js +20 -12
- package/src/og/scene/SkyBox.js +104 -108
- package/src/og/segment/Segment.js +10 -6
- package/src/og/segment/SegmentLonLat.js +3 -7
- package/src/og/segment/segmentHelper.js +229 -225
- package/src/og/shaders/atmos.js +1 -1
- package/src/og/shaders/billboard.js +0 -4
- package/src/og/shaders/drawnode.js +5 -9
- package/src/og/shaders/geoObject.js +0 -4
- package/src/og/shaders/label.js +0 -4
- package/src/og/shaders/pickingMask.js +0 -4
- package/src/og/shaders/pointCloud.js +0 -4
- package/src/og/shaders/polyline.js +0 -4
- package/src/og/shaders/ray.js +0 -4
- package/src/og/shaders/skybox.js +0 -4
- package/src/og/terrain/EmptyTerrain.js +0 -4
- package/src/og/utils/FontAtlas.js +0 -4
- package/src/og/utils/GeoImageCreator.js +2 -3
- package/src/og/utils/NormalMapCreator.js +11 -12
- package/src/og/utils/PlainSegmentWorker.js +9 -9
- package/src/og/utils/TerrainWorker.js +2 -2
- package/src/og/utils/TextureAtlas.js +1 -1
- package/src/og/utils/VectorTileCreator.js +3 -9
- package/src/og/utils/earcut.js +8 -8
- package/src/og/utils/shared.js +30 -11
- package/src/og/webgl/Framebuffer.js +2 -6
- package/src/og/webgl/Handler.js +46 -20
- package/src/og/webgl/Multisample.js +2 -6
- package/src/og/webgl/Program.js +4 -8
- package/src/og/webgl/ProgramController.js +2 -2
- package/types/Clock.d.ts +1 -1
- package/types/Extent.d.ts +5 -5
- package/types/Globe.d.ts +15 -1
- package/types/ImageCanvas.d.ts +5 -0
- package/types/bv/Box.d.ts +1 -1
- package/types/bv/Sphere.d.ts +3 -3
- package/types/camera/Camera.d.ts +3 -2
- package/types/camera/PlanetCamera.d.ts +4 -4
- package/types/control/DrawingSwitcher.d.ts +13 -0
- package/types/control/EarthCoordinates.d.ts +1 -1
- package/types/control/Lighting.d.ts +8 -8
- package/types/control/drawing/DrawingControl.d.ts +14 -0
- package/types/control/drawing/LineStringDrawingScene.d.ts +5 -0
- package/types/control/drawing/PolygonDrawingScene.d.ts +99 -0
- package/types/control/index.d.ts +3 -1
- package/types/control/ruler/RulerScene.d.ts +0 -1
- package/types/control/selection/SelectionScene.d.ts +0 -1
- package/types/ellipsoid/Ellipsoid.d.ts +53 -64
- package/types/entity/Entity.d.ts +3 -2
- package/types/entity/GeoObject.d.ts +1 -2
- package/types/entity/Geometry.d.ts +5 -0
- package/types/entity/Polyline.d.ts +1 -1
- package/types/entity/Ray.d.ts +1 -0
- package/types/index.d.ts +1 -0
- package/types/layer/BaseGeoImage.d.ts +1 -1
- package/types/layer/CanvasTiles.d.ts +1 -1
- package/types/layer/Layer.d.ts +1 -1
- package/types/layer/Vector.d.ts +1 -0
- package/types/math/Vec3.d.ts +2 -0
- package/types/math.d.ts +7 -0
- package/types/renderer/Renderer.d.ts +7 -1
- package/types/scene/Axes.d.ts +0 -1
- package/types/scene/Planet.d.ts +27 -26
- package/types/scene/RenderNode.d.ts +2 -0
- package/types/scene/SkyBox.d.ts +0 -1
- package/types/segment/Segment.d.ts +3 -2
- package/types/segment/SegmentLonLat.d.ts +0 -1
- package/types/utils/GeoImageCreator.d.ts +1 -1
- package/types/utils/NormalMapCreator.d.ts +1 -1
- package/types/utils/VectorTileCreator.d.ts +2 -2
- package/types/utils/shared.d.ts +2 -0
- package/types/webgl/Handler.d.ts +6 -4
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module og/entity/BillboardHandler
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
1
|
"use strict";
|
|
6
2
|
|
|
7
3
|
import * as shaders from "../shaders/billboard.js";
|
|
@@ -95,7 +91,7 @@ class BillboardHandler {
|
|
|
95
91
|
}
|
|
96
92
|
|
|
97
93
|
static concArr(dest, curr) {
|
|
98
|
-
for (
|
|
94
|
+
for (let i = 0; i < curr.length; i++) {
|
|
99
95
|
dest.push(curr[i]);
|
|
100
96
|
}
|
|
101
97
|
}
|
|
@@ -467,7 +463,7 @@ class BillboardHandler {
|
|
|
467
463
|
|
|
468
464
|
reindexBillbordsArray(startIndex) {
|
|
469
465
|
var b = this._billboards;
|
|
470
|
-
for (
|
|
466
|
+
for (let i = startIndex; i < b.length; i++) {
|
|
471
467
|
b[i]._handlerIndex = i;
|
|
472
468
|
}
|
|
473
469
|
}
|
|
@@ -870,7 +866,7 @@ class BillboardHandler {
|
|
|
870
866
|
var bc = this._entityCollection;
|
|
871
867
|
if (bc && this._renderer) {
|
|
872
868
|
var ta = this._renderer.billboardsTextureAtlas;
|
|
873
|
-
for (
|
|
869
|
+
for (let i = 0; i < this._billboards.length; i++) {
|
|
874
870
|
var bi = this._billboards[i];
|
|
875
871
|
var img = bi._image;
|
|
876
872
|
if (img) {
|
package/src/og/entity/Entity.js
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module og/entity/Entity
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
1
|
"use strict";
|
|
6
2
|
|
|
7
3
|
import { Extent } from "../Extent.js";
|
|
@@ -90,14 +86,14 @@ class Entity {
|
|
|
90
86
|
* @protected
|
|
91
87
|
* @type {LonLat}
|
|
92
88
|
*/
|
|
93
|
-
this.
|
|
89
|
+
this._lonLat = utils.createLonLat(options.lonlat);
|
|
94
90
|
|
|
95
91
|
/**
|
|
96
92
|
* World Mercator entity coordinates.
|
|
97
93
|
* @protected
|
|
98
94
|
* @type {LonLat}
|
|
99
95
|
*/
|
|
100
|
-
this.
|
|
96
|
+
this._lonLatMerc = null;
|
|
101
97
|
|
|
102
98
|
/**
|
|
103
99
|
* Entity visible terrain altitude.
|
|
@@ -227,6 +223,10 @@ class Entity {
|
|
|
227
223
|
this._counter = n;
|
|
228
224
|
}
|
|
229
225
|
|
|
226
|
+
get layerIndex() {
|
|
227
|
+
return this._layerIndex;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
230
|
get instanceName() {
|
|
231
231
|
return "Entity";
|
|
232
232
|
}
|
|
@@ -343,12 +343,12 @@ class Entity {
|
|
|
343
343
|
let ec = this._entityCollection;
|
|
344
344
|
|
|
345
345
|
if (ec && ec.renderNode && ec.renderNode.ellipsoid) {
|
|
346
|
-
this.
|
|
346
|
+
this._lonLat = ec.renderNode.ellipsoid.cartesianToLonLat(p);
|
|
347
347
|
|
|
348
|
-
if (Math.abs(this.
|
|
349
|
-
this.
|
|
348
|
+
if (Math.abs(this._lonLat.lat) < mercator.MAX_LAT) {
|
|
349
|
+
this._lonLatMerc = this._lonLat.forwardMercator();
|
|
350
350
|
} else {
|
|
351
|
-
this.
|
|
351
|
+
this._lonLatMerc = null;
|
|
352
352
|
}
|
|
353
353
|
}
|
|
354
354
|
|
|
@@ -384,12 +384,12 @@ class Entity {
|
|
|
384
384
|
let ec = this._entityCollection;
|
|
385
385
|
|
|
386
386
|
if (!skipLonLat && ec && ec.renderNode && ec.renderNode.ellipsoid) {
|
|
387
|
-
this.
|
|
387
|
+
this._lonLat = ec.renderNode.ellipsoid.cartesianToLonLat(p);
|
|
388
388
|
|
|
389
|
-
if (Math.abs(this.
|
|
390
|
-
this.
|
|
389
|
+
if (Math.abs(this._lonLat.lat) < mercator.MAX_LAT) {
|
|
390
|
+
this._lonLatMerc = this._lonLat.forwardMercator();
|
|
391
391
|
} else {
|
|
392
|
-
this.
|
|
392
|
+
this._lonLatMerc = null;
|
|
393
393
|
}
|
|
394
394
|
}
|
|
395
395
|
}
|
|
@@ -400,7 +400,7 @@ class Entity {
|
|
|
400
400
|
* @returns {LonLat} -
|
|
401
401
|
*/
|
|
402
402
|
getLonLat() {
|
|
403
|
-
return this.
|
|
403
|
+
return this._lonLat.clone();
|
|
404
404
|
}
|
|
405
405
|
|
|
406
406
|
/**
|
|
@@ -409,7 +409,7 @@ class Entity {
|
|
|
409
409
|
* @param {LonLat} lonlat - WGS84 coordinates.
|
|
410
410
|
*/
|
|
411
411
|
setLonLat(lonlat) {
|
|
412
|
-
let l = this.
|
|
412
|
+
let l = this._lonLat;
|
|
413
413
|
|
|
414
414
|
l.lon = lonlat.lon;
|
|
415
415
|
l.lat = lonlat.lat;
|
|
@@ -418,9 +418,9 @@ class Entity {
|
|
|
418
418
|
let ec = this._entityCollection;
|
|
419
419
|
if (ec && ec.renderNode && ec.renderNode.ellipsoid) {
|
|
420
420
|
if (Math.abs(l.lat) < mercator.MAX_LAT) {
|
|
421
|
-
this.
|
|
421
|
+
this._lonLatMerc = l.forwardMercator();
|
|
422
422
|
} else {
|
|
423
|
-
this.
|
|
423
|
+
this._lonLatMerc = null;
|
|
424
424
|
}
|
|
425
425
|
|
|
426
426
|
ec.renderNode.ellipsoid.lonLatToCartesianRes(l, this._cartesian);
|
|
@@ -436,7 +436,7 @@ class Entity {
|
|
|
436
436
|
* @param {number} [height] - Height
|
|
437
437
|
*/
|
|
438
438
|
setLonLat2(lon, lat, height) {
|
|
439
|
-
let l = this.
|
|
439
|
+
let l = this._lonLat;
|
|
440
440
|
|
|
441
441
|
l.lon = lon;
|
|
442
442
|
l.lat = lat;
|
|
@@ -445,9 +445,9 @@ class Entity {
|
|
|
445
445
|
let ec = this._entityCollection;
|
|
446
446
|
if (ec && ec.renderNode && ec.renderNode.ellipsoid) {
|
|
447
447
|
if (Math.abs(l.lat) < mercator.MAX_LAT) {
|
|
448
|
-
this.
|
|
448
|
+
this._lonLatMerc = l.forwardMercator();
|
|
449
449
|
} else {
|
|
450
|
-
this.
|
|
450
|
+
this._lonLatMerc = null;
|
|
451
451
|
}
|
|
452
452
|
|
|
453
453
|
ec.renderNode.ellipsoid.lonLatToCartesianRes(l, this._cartesian);
|
|
@@ -683,7 +683,7 @@ class Entity {
|
|
|
683
683
|
*/
|
|
684
684
|
getExtent() {
|
|
685
685
|
let res;
|
|
686
|
-
let c = this.
|
|
686
|
+
let c = this._lonLat;
|
|
687
687
|
if (this.billboard || this.label) {
|
|
688
688
|
res = new Extent(new LonLat(c.lon, c.lat), new LonLat(c.lon, c.lat));
|
|
689
689
|
} else {
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module og/entity/EntityCollection
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
1
|
"use strict";
|
|
6
2
|
|
|
7
3
|
import { Events } from "../Events.js";
|
|
@@ -213,10 +209,6 @@ class EntityCollection {
|
|
|
213
209
|
this._counter = n;
|
|
214
210
|
}
|
|
215
211
|
|
|
216
|
-
// setPolygonOffset(factor, units) {
|
|
217
|
-
// this.polygonOffsetUnits = units;
|
|
218
|
-
// }
|
|
219
|
-
|
|
220
212
|
/**
|
|
221
213
|
* Sets collection visibility.
|
|
222
214
|
* @public
|
|
@@ -311,7 +303,7 @@ class EntityCollection {
|
|
|
311
303
|
|
|
312
304
|
this.events.dispatch(this.events.entityadd, entity);
|
|
313
305
|
|
|
314
|
-
for (
|
|
306
|
+
for (let i = 0; i < entity.childrenNodes.length; i++) {
|
|
315
307
|
entity.childrenNodes[i]._entityCollection = this;
|
|
316
308
|
entity.childrenNodes[i]._entityCollectionIndex = entity._entityCollectionIndex;
|
|
317
309
|
entity.childrenNodes[i]._pickingColor = entity._pickingColor;
|
|
@@ -334,7 +326,7 @@ class EntityCollection {
|
|
|
334
326
|
if (rn) {
|
|
335
327
|
rn.renderer && rn.renderer.assignPickingColor(entity);
|
|
336
328
|
if (rn.ellipsoid && entity._cartesian.isZero()) {
|
|
337
|
-
entity.setCartesian3v(rn.ellipsoid.lonLatToCartesian(entity.
|
|
329
|
+
entity.setCartesian3v(rn.ellipsoid.lonLatToCartesian(entity._lonLat));
|
|
338
330
|
}
|
|
339
331
|
}
|
|
340
332
|
this._addRecursively(entity);
|
|
@@ -394,7 +386,7 @@ class EntityCollection {
|
|
|
394
386
|
// geoObject
|
|
395
387
|
entity.geoObject && this.geoObjectHandler.remove(entity.geoObject);
|
|
396
388
|
|
|
397
|
-
for (
|
|
389
|
+
for (let i = 0; i < entity.childrenNodes.length; i++) {
|
|
398
390
|
this._removeRecursively(entity.childrenNodes[i]);
|
|
399
391
|
}
|
|
400
392
|
}
|
|
@@ -442,7 +434,7 @@ class EntityCollection {
|
|
|
442
434
|
*/
|
|
443
435
|
createPickingColors() {
|
|
444
436
|
var e = this._entities;
|
|
445
|
-
for (
|
|
437
|
+
for (let i = 0; i < e.length; i++) {
|
|
446
438
|
if (!e[i].parent) {
|
|
447
439
|
this.renderNode.renderer.assignPickingColor(e[i]);
|
|
448
440
|
e[i].setPickingColor();
|
|
@@ -457,7 +449,7 @@ class EntityCollection {
|
|
|
457
449
|
*/
|
|
458
450
|
reindexEntitiesArray(startIndex) {
|
|
459
451
|
var e = this._entities;
|
|
460
|
-
for (
|
|
452
|
+
for (let i = startIndex; i < e.length; i++) {
|
|
461
453
|
e[i]._entityCollectionIndex = i;
|
|
462
454
|
}
|
|
463
455
|
}
|
|
@@ -472,10 +464,12 @@ class EntityCollection {
|
|
|
472
464
|
addTo(renderNode, isHidden) {
|
|
473
465
|
if (!this.renderNode) {
|
|
474
466
|
this.renderNode = renderNode;
|
|
467
|
+
|
|
475
468
|
if (!isHidden) {
|
|
476
469
|
this._renderNodeIndex = renderNode.entityCollections.length;
|
|
477
470
|
renderNode.entityCollections.push(this);
|
|
478
471
|
}
|
|
472
|
+
|
|
479
473
|
renderNode.ellipsoid && this._updateGeodeticCoordinates(renderNode.ellipsoid);
|
|
480
474
|
|
|
481
475
|
this.bindRenderNode(renderNode);
|
|
@@ -490,10 +484,12 @@ class EntityCollection {
|
|
|
490
484
|
* @param {RenderNode} renderNode
|
|
491
485
|
*/
|
|
492
486
|
bindRenderNode(renderNode) {
|
|
493
|
-
if (renderNode.renderer) {
|
|
487
|
+
if (renderNode.renderer && renderNode.renderer.isInitialized()) {
|
|
488
|
+
|
|
494
489
|
this.billboardHandler.setRenderer(renderNode.renderer);
|
|
495
490
|
this.labelHandler.setRenderer(renderNode.renderer);
|
|
496
491
|
this.rayHandler.setRenderer(renderNode.renderer);
|
|
492
|
+
|
|
497
493
|
this.geoObjectHandler.setRenderNode(renderNode);
|
|
498
494
|
this.polylineHandler.setRenderNode(renderNode);
|
|
499
495
|
this.pointCloudHandler.setRenderNode(renderNode);
|
|
@@ -515,7 +511,7 @@ class EntityCollection {
|
|
|
515
511
|
var i = e.length;
|
|
516
512
|
while (i--) {
|
|
517
513
|
var ei = e[i];
|
|
518
|
-
ei.
|
|
514
|
+
ei._lonLat && ei.setCartesian3v(ellipsoid.lonLatToCartesian(ei._lonLat));
|
|
519
515
|
}
|
|
520
516
|
}
|
|
521
517
|
|
|
@@ -525,7 +521,7 @@ class EntityCollection {
|
|
|
525
521
|
*/
|
|
526
522
|
updateBillboardsTextureAtlas() {
|
|
527
523
|
var b = this.billboardHandler._billboards;
|
|
528
|
-
for (
|
|
524
|
+
for (let i = 0; i < b.length; i++) {
|
|
529
525
|
b[i].setSrc(b[i]._src);
|
|
530
526
|
}
|
|
531
527
|
}
|
|
@@ -538,7 +534,7 @@ class EntityCollection {
|
|
|
538
534
|
if (this.renderNode) {
|
|
539
535
|
var l = [].concat(this.labelHandler._billboards);
|
|
540
536
|
this.labelHandler._billboards = [];
|
|
541
|
-
for (
|
|
537
|
+
for (let i = 0; i < l.length; i++) {
|
|
542
538
|
this.labelHandler.assignFontAtlas(l[i]);
|
|
543
539
|
}
|
|
544
540
|
}
|
|
@@ -625,7 +621,7 @@ class EntityCollection {
|
|
|
625
621
|
_clearEntity(entity) {
|
|
626
622
|
entity._entityCollection = null;
|
|
627
623
|
entity._entityCollectionIndex = -1;
|
|
628
|
-
for (
|
|
624
|
+
for (let i = 0; i < entity.childrenNodes.length; i++) {
|
|
629
625
|
this._clearEntity(entity.childrenNodes[i]);
|
|
630
626
|
}
|
|
631
627
|
}
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module og/entity/GeoObject
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
1
|
"use strict";
|
|
6
2
|
|
|
7
3
|
import { Quat, Vec3 } from "../math/index.js";
|
|
@@ -236,10 +232,12 @@ class GeoObject {
|
|
|
236
232
|
}
|
|
237
233
|
|
|
238
234
|
updateDirection() {
|
|
239
|
-
this.
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
235
|
+
if (this._handler && this._handler._planet) {
|
|
236
|
+
this._qNorthFrame = this._handler._planet.getNorthFrameRotation(this._position);
|
|
237
|
+
let qq = Quat.yRotation(this._yaw).mul(this._qNorthFrame).conjugate();
|
|
238
|
+
this._direction = qq.mulVec3(new Vec3(0.0, 0.0, -1.0)).normalize();
|
|
239
|
+
this._handler.setDirectionArr(this._tagData, this._tagDataIndex, this._direction);
|
|
240
|
+
}
|
|
243
241
|
}
|
|
244
242
|
}
|
|
245
243
|
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
/**
|
|
4
|
-
* @module og/entity/GeoObjectHandler
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
3
|
import * as shaders from "../shaders/geoObject.js";
|
|
8
4
|
import { concatArrays, loadImage, makeArrayTyped, spliceArray } from "../utils/shared.js";
|
|
9
5
|
|
|
@@ -116,24 +112,33 @@ class InstanceData {
|
|
|
116
112
|
this._visibleArr = [];
|
|
117
113
|
this._texCoordArr = [];
|
|
118
114
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
h.deleteTexture(this._texture);
|
|
115
|
+
this._deleteBuffers();
|
|
122
116
|
|
|
123
|
-
this.
|
|
117
|
+
this.isFree = false;
|
|
118
|
+
this._geoObjectHandler = null;
|
|
119
|
+
}
|
|
124
120
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
121
|
+
_deleteBuffers() {
|
|
122
|
+
if (this._geoObjectHandler && this._geoObjectHandler._planet && this._geoObjectHandler._planet.renderer) {
|
|
123
|
+
let h = this._geoObjectHandler._planet.renderer.handler,
|
|
124
|
+
gl = h.gl;
|
|
125
|
+
|
|
126
|
+
h.deleteTexture(this._texture);
|
|
127
|
+
this._texture = null;
|
|
128
|
+
|
|
129
|
+
gl.deleteBuffer(this._pitchRollBuffer);
|
|
130
|
+
gl.deleteBuffer(this._sizeBuffer);
|
|
131
|
+
gl.deleteBuffer(this._vertexBuffer);
|
|
132
|
+
gl.deleteBuffer(this._positionHighBuffer);
|
|
133
|
+
gl.deleteBuffer(this._positionLowBuffer);
|
|
134
|
+
gl.deleteBuffer(this._directionBuffer);
|
|
135
|
+
gl.deleteBuffer(this._rgbaBuffer);
|
|
136
|
+
gl.deleteBuffer(this._normalsBuffer);
|
|
137
|
+
gl.deleteBuffer(this._indicesBuffer);
|
|
138
|
+
gl.deleteBuffer(this._pickingColorBuffer);
|
|
139
|
+
gl.deleteBuffer(this._visibleBuffer);
|
|
140
|
+
gl.deleteBuffer(this._texCoordBuffer);
|
|
141
|
+
}
|
|
137
142
|
|
|
138
143
|
this._pitchRollBuffer = null;
|
|
139
144
|
this._sizeBuffer = null;
|
|
@@ -147,9 +152,6 @@ class InstanceData {
|
|
|
147
152
|
this._pickingColorBuffer = null;
|
|
148
153
|
this._visibleBuffer = null;
|
|
149
154
|
this._texCoordBuffer = null;
|
|
150
|
-
|
|
151
|
-
this.isFree = false;
|
|
152
|
-
this._geoObjectHandler = null;
|
|
153
155
|
}
|
|
154
156
|
|
|
155
157
|
createVertexBuffer() {
|
|
@@ -349,6 +351,10 @@ class GeoObjectHandler {
|
|
|
349
351
|
this._loadDataTagTexture(this._instanceDataMapValues[i]);
|
|
350
352
|
}
|
|
351
353
|
|
|
354
|
+
for (let i = 0; i < this._geoObjects.length; i++) {
|
|
355
|
+
this._geoObjects[i].updateDirection();
|
|
356
|
+
}
|
|
357
|
+
|
|
352
358
|
this.update();
|
|
353
359
|
}
|
|
354
360
|
|
|
@@ -639,7 +645,7 @@ class GeoObjectHandler {
|
|
|
639
645
|
this._geoObjects.length = 0;
|
|
640
646
|
this._geoObjects = [];
|
|
641
647
|
|
|
642
|
-
for (let i = 0; this._instanceDataMapValues.length; i++) {
|
|
648
|
+
for (let i = 0; i < this._instanceDataMapValues.length; i++) {
|
|
643
649
|
this._instanceDataMapValues[i].clear();
|
|
644
650
|
}
|
|
645
651
|
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module og/entity/Geometry
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
1
|
"use strict";
|
|
6
2
|
|
|
7
3
|
import { Extent } from "../Extent.js";
|
|
@@ -192,6 +188,11 @@ class Geometry {
|
|
|
192
188
|
return res;
|
|
193
189
|
}
|
|
194
190
|
|
|
191
|
+
/**
|
|
192
|
+
* @todo ASAP need test for this method
|
|
193
|
+
* @param geoJson
|
|
194
|
+
* @returns {Geometry}
|
|
195
|
+
*/
|
|
195
196
|
setGeometry(geoJson) {
|
|
196
197
|
var h = this._handler;
|
|
197
198
|
this.remove();
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module og/entity/GeometryHandler
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
1
|
"use strict";
|
|
6
2
|
|
|
7
3
|
import { doubleToTwoFloatsV2 } from "../math/coder.js";
|
|
@@ -167,7 +163,7 @@ class GeometryHandler {
|
|
|
167
163
|
sc = [strokeColor.x, strokeColor.y, strokeColor.z, strokeColor.w],
|
|
168
164
|
p = [pickingColor.x, pickingColor.y, pickingColor.z, 1.0];
|
|
169
165
|
|
|
170
|
-
for (
|
|
166
|
+
for (let j = 0; j < pathArr.length; j++) {
|
|
171
167
|
var path = pathArr[j];
|
|
172
168
|
|
|
173
169
|
if (path.length === 0) {
|
|
@@ -292,7 +288,7 @@ class GeometryHandler {
|
|
|
292
288
|
p[3]
|
|
293
289
|
);
|
|
294
290
|
|
|
295
|
-
for (
|
|
291
|
+
for (let i = 0; i < path.length; i++) {
|
|
296
292
|
var cur = path[i];
|
|
297
293
|
|
|
298
294
|
doubleToTwoFloats(cur, tempHigh, tempLow);
|
|
@@ -527,6 +523,9 @@ class GeometryHandler {
|
|
|
527
523
|
assignHandler(handler) {
|
|
528
524
|
this._handler = handler;
|
|
529
525
|
this.refresh();
|
|
526
|
+
if (handler.isInitialized()) {
|
|
527
|
+
this.update();
|
|
528
|
+
}
|
|
530
529
|
}
|
|
531
530
|
|
|
532
531
|
/**
|
|
@@ -555,7 +554,7 @@ class GeometryHandler {
|
|
|
555
554
|
let ci = [];
|
|
556
555
|
for (let j = 0; j < coordinates.length; j++) {
|
|
557
556
|
ci[j] = [];
|
|
558
|
-
for (
|
|
557
|
+
for (let k = 0; k < coordinates[j].length; k++) {
|
|
559
558
|
ci[j][k] = [
|
|
560
559
|
mercator.forward_lon(coordinates[j][k][0]),
|
|
561
560
|
mercator.forward_lat(coordinates[j][k][1])
|
|
@@ -654,7 +653,7 @@ class GeometryHandler {
|
|
|
654
653
|
geometry._lineColorsHandlerIndex = this._lineColors.length;
|
|
655
654
|
geometry._lineThicknessHandlerIndex = this._lineThickness.length;
|
|
656
655
|
|
|
657
|
-
for (
|
|
656
|
+
for (let i = 0; i < coordinates.length; i++) {
|
|
658
657
|
let cci = coordinates[i];
|
|
659
658
|
let ci = [];
|
|
660
659
|
for (let j = 0; j < cci.length; j++) {
|
|
@@ -884,7 +883,7 @@ class GeometryHandler {
|
|
|
884
883
|
geometry._polyIndexesLength
|
|
885
884
|
);
|
|
886
885
|
var di = geometry._polyVerticesLength * 0.5;
|
|
887
|
-
for (
|
|
886
|
+
for (let i = geometry._polyIndexesHandlerIndex; i < this._polyIndexes.length; i++) {
|
|
888
887
|
this._polyIndexes[i] -= di;
|
|
889
888
|
}
|
|
890
889
|
|
|
@@ -976,7 +975,7 @@ class GeometryHandler {
|
|
|
976
975
|
_refreshRecursevely(geometry, treeNode) {
|
|
977
976
|
if (treeNode.ready) {
|
|
978
977
|
var lid = this._layer._id;
|
|
979
|
-
for (
|
|
978
|
+
for (let i = 0; i < treeNode.nodes.length; i++) {
|
|
980
979
|
var ni = treeNode.nodes[i];
|
|
981
980
|
if (geometry._extent.overlaps(ni.segment.getExtentLonLat())) {
|
|
982
981
|
this._refreshRecursevely(geometry, ni);
|
|
@@ -1000,7 +999,7 @@ class GeometryHandler {
|
|
|
1000
999
|
_refreshRecursevelyExt(extent, treeNode) {
|
|
1001
1000
|
if (treeNode.ready) {
|
|
1002
1001
|
var lid = this._layer._id;
|
|
1003
|
-
for (
|
|
1002
|
+
for (let i = 0; i < treeNode.nodes.length; i++) {
|
|
1004
1003
|
var ni = treeNode.nodes[i];
|
|
1005
1004
|
if (extent.overlaps(ni.segment.getExtentLonLat())) {
|
|
1006
1005
|
this._refreshRecursevelyExt(extent, ni);
|
|
@@ -1077,7 +1076,7 @@ class GeometryHandler {
|
|
|
1077
1076
|
|
|
1078
1077
|
var l = geometry._polyVerticesLength;
|
|
1079
1078
|
var ind = geometry._polyVerticesHandlerIndex;
|
|
1080
|
-
for (
|
|
1079
|
+
for (let i = 0; i < l; i++) {
|
|
1081
1080
|
a[ind + i] = geometry._polyVerticesHighMerc[i] * v;
|
|
1082
1081
|
b[ind + i] = geometry._polyVerticesLowMerc[i] * v;
|
|
1083
1082
|
}
|
|
@@ -1086,7 +1085,7 @@ class GeometryHandler {
|
|
|
1086
1085
|
b = this._lineVerticesLowMerc;
|
|
1087
1086
|
l = geometry._lineVerticesLength;
|
|
1088
1087
|
ind = geometry._lineVerticesHandlerIndex;
|
|
1089
|
-
for (i = 0; i < l; i++) {
|
|
1088
|
+
for (let i = 0; i < l; i++) {
|
|
1090
1089
|
a[ind + i] = geometry._lineVerticesHighMerc[i] * v;
|
|
1091
1090
|
b[ind + i] = geometry._lineVerticesLowMerc[i] * v;
|
|
1092
1091
|
}
|
|
@@ -1102,7 +1101,7 @@ class GeometryHandler {
|
|
|
1102
1101
|
var index = geometry._polyVerticesHandlerIndex * 2, // ... / 2 * 4
|
|
1103
1102
|
size = index + geometry._polyVerticesLength * 2; // ... / 2 * 4
|
|
1104
1103
|
var a = this._polyColors;
|
|
1105
|
-
for (
|
|
1104
|
+
for (let i = index; i < size; i += 4) {
|
|
1106
1105
|
a[i] = color.x;
|
|
1107
1106
|
a[i + 1] = color.y;
|
|
1108
1107
|
a[i + 2] = color.z;
|
|
@@ -1117,7 +1116,7 @@ class GeometryHandler {
|
|
|
1117
1116
|
var index = geometry._lineColorsHandlerIndex,
|
|
1118
1117
|
size = index + geometry._lineColorsLength;
|
|
1119
1118
|
var a = this._lineStrokeColors;
|
|
1120
|
-
for (
|
|
1119
|
+
for (let i = index; i < size; i += 4) {
|
|
1121
1120
|
a[i] = color.x;
|
|
1122
1121
|
a[i + 1] = color.y;
|
|
1123
1122
|
a[i + 2] = color.z;
|
|
@@ -1132,7 +1131,7 @@ class GeometryHandler {
|
|
|
1132
1131
|
var index = geometry._lineColorsHandlerIndex,
|
|
1133
1132
|
size = index + geometry._lineColorsLength;
|
|
1134
1133
|
var a = this._lineColors;
|
|
1135
|
-
for (
|
|
1134
|
+
for (let i = index; i < size; i += 4) {
|
|
1136
1135
|
a[i] = color.x;
|
|
1137
1136
|
a[i + 1] = color.y;
|
|
1138
1137
|
a[i + 2] = color.z;
|
|
@@ -1147,7 +1146,7 @@ class GeometryHandler {
|
|
|
1147
1146
|
var index = geometry._lineStrokesHandlerIndex,
|
|
1148
1147
|
size = index + geometry._lineStrokesLength;
|
|
1149
1148
|
var a = this._lineStrokes;
|
|
1150
|
-
for (
|
|
1149
|
+
for (let i = index; i < size; i++) {
|
|
1151
1150
|
a[i] = width;
|
|
1152
1151
|
}
|
|
1153
1152
|
this._changedBuffers[LINESTROKES_BUFFER] = true;
|
|
@@ -1159,7 +1158,7 @@ class GeometryHandler {
|
|
|
1159
1158
|
var index = geometry._lineThicknessHandlerIndex,
|
|
1160
1159
|
size = index + geometry._lineThicknessLength;
|
|
1161
1160
|
var a = this._lineThickness;
|
|
1162
|
-
for (
|
|
1161
|
+
for (let i = index; i < size; i++) {
|
|
1163
1162
|
a[i] = width;
|
|
1164
1163
|
}
|
|
1165
1164
|
this._changedBuffers[LINETHICKNESS_BUFFER] = true;
|
|
@@ -1180,7 +1179,7 @@ class GeometryHandler {
|
|
|
1180
1179
|
this._geometries.splice(geometry._handlerIndex, 1);
|
|
1181
1180
|
|
|
1182
1181
|
var g = this._geometries;
|
|
1183
|
-
for (
|
|
1182
|
+
for (let i = geometry._handlerIndex; i < g.length; i++) {
|
|
1184
1183
|
var gi = g[i];
|
|
1185
1184
|
gi._handlerIndex = i;
|
|
1186
1185
|
gi._polyIndexesHandlerIndex -= geometry._polyIndexesLength;
|
package/src/og/entity/Label.js
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module og/entity/LabelHandler
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
1
|
"use strict";
|
|
6
2
|
|
|
7
3
|
import * as shaders from "../shaders/label.js";
|
|
@@ -514,7 +510,7 @@ class LabelHandler extends BillboardHandler {
|
|
|
514
510
|
yl = positionLow.y,
|
|
515
511
|
zl = positionLow.z;
|
|
516
512
|
|
|
517
|
-
for (
|
|
513
|
+
for (let q = 0; q < this._maxLetters; q++) {
|
|
518
514
|
var j = i + q * 18;
|
|
519
515
|
a[j] = x;
|
|
520
516
|
a[j + 1] = y;
|
|
@@ -576,7 +572,7 @@ class LabelHandler extends BillboardHandler {
|
|
|
576
572
|
y = color.y / 255,
|
|
577
573
|
z = color.z / 255;
|
|
578
574
|
|
|
579
|
-
for (
|
|
575
|
+
for (let q = 0; q < this._maxLetters; q++) {
|
|
580
576
|
var j = i + q * 18;
|
|
581
577
|
a[j] = x;
|
|
582
578
|
a[j + 1] = y;
|
|
@@ -610,7 +606,7 @@ class LabelHandler extends BillboardHandler {
|
|
|
610
606
|
var i = index * 6 * this._maxLetters;
|
|
611
607
|
var a = this._sizeArr;
|
|
612
608
|
|
|
613
|
-
for (
|
|
609
|
+
for (let q = 0; q < this._maxLetters; q++) {
|
|
614
610
|
var j = i + q * 6;
|
|
615
611
|
a[j] = size;
|
|
616
612
|
a[j + 1] = size;
|
|
@@ -630,7 +626,7 @@ class LabelHandler extends BillboardHandler {
|
|
|
630
626
|
y = offset.y,
|
|
631
627
|
z = offset.z;
|
|
632
628
|
|
|
633
|
-
for (
|
|
629
|
+
for (let q = 0; q < this._maxLetters; q++) {
|
|
634
630
|
var j = i + q * 18;
|
|
635
631
|
a[j] = x;
|
|
636
632
|
a[j + 1] = y;
|
|
@@ -668,7 +664,7 @@ class LabelHandler extends BillboardHandler {
|
|
|
668
664
|
z = rgba.z,
|
|
669
665
|
w = rgba.w;
|
|
670
666
|
|
|
671
|
-
for (
|
|
667
|
+
for (let q = 0; q < this._maxLetters; q++) {
|
|
672
668
|
var j = i + q * 24;
|
|
673
669
|
|
|
674
670
|
a[j] = x;
|
|
@@ -713,7 +709,7 @@ class LabelHandler extends BillboardHandler {
|
|
|
713
709
|
z = rgba.z,
|
|
714
710
|
w = rgba.w;
|
|
715
711
|
|
|
716
|
-
for (
|
|
712
|
+
for (let q = 0; q < this._maxLetters; q++) {
|
|
717
713
|
var j = i + q * 24;
|
|
718
714
|
|
|
719
715
|
a[j] = x;
|
|
@@ -754,7 +750,7 @@ class LabelHandler extends BillboardHandler {
|
|
|
754
750
|
var i = index * 6 * this._maxLetters;
|
|
755
751
|
var a = this._outlineArr;
|
|
756
752
|
|
|
757
|
-
for (
|
|
753
|
+
for (let q = 0; q < this._maxLetters; q++) {
|
|
758
754
|
var j = i + q * 6;
|
|
759
755
|
a[j] = outline;
|
|
760
756
|
a[j + 1] = outline;
|
|
@@ -771,7 +767,7 @@ class LabelHandler extends BillboardHandler {
|
|
|
771
767
|
var i = index * 6 * this._maxLetters;
|
|
772
768
|
var a = this._rotationArr;
|
|
773
769
|
|
|
774
|
-
for (
|
|
770
|
+
for (let q = 0; q < this._maxLetters; q++) {
|
|
775
771
|
var j = i + q * 6;
|
|
776
772
|
a[j] = rotation;
|
|
777
773
|
a[j + 1] = rotation;
|
|
@@ -798,7 +794,7 @@ class LabelHandler extends BillboardHandler {
|
|
|
798
794
|
var i = index * 12 * this._maxLetters;
|
|
799
795
|
var a = this._vertexArr;
|
|
800
796
|
|
|
801
|
-
for (
|
|
797
|
+
for (let q = 0; q < this._maxLetters; q++) {
|
|
802
798
|
var j = i + q * 12;
|
|
803
799
|
|
|
804
800
|
a[j] = vertexArr[0];
|
|
@@ -827,7 +823,7 @@ class LabelHandler extends BillboardHandler {
|
|
|
827
823
|
var i = index * 6 * this._maxLetters;
|
|
828
824
|
var a = this._fontIndexArr;
|
|
829
825
|
|
|
830
|
-
for (
|
|
826
|
+
for (let q = 0; q < this._maxLetters; q++) {
|
|
831
827
|
var j = i + q * 6;
|
|
832
828
|
a[j] = fontIndex;
|
|
833
829
|
a[j + 1] = fontIndex;
|