@openglobus/og 0.20.4 → 0.21.0
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/lib/@openglobus/js/Globe.d.ts +1 -1
- package/lib/@openglobus/js/Object3d.d.ts +1 -0
- package/lib/@openglobus/js/entity/GeometryHandler.d.ts +3 -2
- package/lib/@openglobus/js/terrain/RgbTerrain.d.ts +9 -0
- package/lib/@openglobus/og.esm.js +1 -1
- package/lib/@openglobus/og.esm.js.map +1 -1
- package/lib/@openglobus/og.umd.js +1 -1
- package/lib/@openglobus/og.umd.js.map +1 -1
- package/lib/js/Globe.d.ts +1 -1
- package/lib/js/Globe.js +7 -2
- package/lib/js/Object3d.d.ts +1 -0
- package/lib/js/Object3d.js +18 -0
- package/lib/js/entity/GeometryHandler.d.ts +3 -2
- package/lib/js/entity/GeometryHandler.js +56 -0
- package/lib/js/layer/Bing.js +1 -0
- package/lib/js/layer/Vector.js +4 -2
- package/lib/js/terrain/RgbTerrain.d.ts +9 -0
- package/lib/js/terrain/RgbTerrain.js +215 -213
- package/package.json +14 -14
package/lib/js/Globe.d.ts
CHANGED
package/lib/js/Globe.js
CHANGED
|
@@ -239,7 +239,7 @@ class Globe {
|
|
|
239
239
|
fadeOut() {
|
|
240
240
|
this._canvas.style.opacity = "0";
|
|
241
241
|
}
|
|
242
|
-
attachTo(target) {
|
|
242
|
+
attachTo(target, isFirst) {
|
|
243
243
|
this.detach();
|
|
244
244
|
let t;
|
|
245
245
|
if (target instanceof HTMLElement) {
|
|
@@ -250,7 +250,12 @@ class Globe {
|
|
|
250
250
|
}
|
|
251
251
|
if (t) {
|
|
252
252
|
this.$target = t;
|
|
253
|
-
|
|
253
|
+
if (isFirst && this.$target.firstChild) {
|
|
254
|
+
this.$target.insertBefore(this.$inner, this.$target.firstChild);
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
t.appendChild(this.$inner);
|
|
258
|
+
}
|
|
254
259
|
}
|
|
255
260
|
}
|
|
256
261
|
detach() {
|
package/lib/js/Object3d.d.ts
CHANGED
|
@@ -60,5 +60,6 @@ declare class Object3d {
|
|
|
60
60
|
static createCube(length?: number, height?: number, depth?: number, xOffset?: number, yOffset?: number, zOffset?: number): Object3d;
|
|
61
61
|
static createArrow(back?: number, height?: number, front?: number): Object3d;
|
|
62
62
|
static loadObj(src: string): Promise<Object3d[]>;
|
|
63
|
+
merge(other: Object3d): Object3d;
|
|
63
64
|
}
|
|
64
65
|
export { Object3d };
|
package/lib/js/Object3d.js
CHANGED
|
@@ -370,5 +370,23 @@ class Object3d {
|
|
|
370
370
|
texCoords: textures
|
|
371
371
|
}));
|
|
372
372
|
}
|
|
373
|
+
merge(other) {
|
|
374
|
+
const mergedVertices = [...this._vertices, ...other.vertices];
|
|
375
|
+
const mergedNormals = [...this._normals, ...other.normals];
|
|
376
|
+
const mergedTexCoords = [...this._texCoords, ...other.texCoords];
|
|
377
|
+
const offset = this._vertices.length / 3;
|
|
378
|
+
const mergedIndices = [
|
|
379
|
+
...this._indices,
|
|
380
|
+
...other.indices.map(index => index + offset)
|
|
381
|
+
];
|
|
382
|
+
return new Object3d({
|
|
383
|
+
name: `${this._name}_${other.name}`,
|
|
384
|
+
vertices: mergedVertices,
|
|
385
|
+
texCoords: mergedTexCoords,
|
|
386
|
+
indices: mergedIndices,
|
|
387
|
+
normals: mergedNormals,
|
|
388
|
+
color: this.color
|
|
389
|
+
});
|
|
390
|
+
}
|
|
373
391
|
}
|
|
374
392
|
export { Object3d };
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { Extent } from "../Extent";
|
|
2
|
-
import { Handler } from "../webgl/Handler";
|
|
2
|
+
import { Handler, WebGLBufferExt } from "../webgl/Handler";
|
|
3
3
|
import { Vector } from "../layer/Vector";
|
|
4
4
|
import { Node } from "../quadTree/Node";
|
|
5
5
|
import { Vec3 } from "../math/Vec3";
|
|
6
6
|
import { Vec4 } from "../math/Vec4";
|
|
7
7
|
import { CoordinatesType, Geometry } from "./Geometry";
|
|
8
|
-
import { WebGLBufferExt } from "../webgl/Handler";
|
|
9
8
|
declare class GeometryHandler {
|
|
10
9
|
static __counter__: number;
|
|
11
10
|
protected __id: number;
|
|
@@ -80,5 +79,7 @@ declare class GeometryHandler {
|
|
|
80
79
|
createLineThicknessBuffer(): void;
|
|
81
80
|
createLineStrokesBuffer(): void;
|
|
82
81
|
createLineStrokeColorsBuffer(): void;
|
|
82
|
+
clear(): void;
|
|
83
|
+
_deleteBuffers(): void;
|
|
83
84
|
}
|
|
84
85
|
export { GeometryHandler };
|
|
@@ -682,6 +682,62 @@ class GeometryHandler {
|
|
|
682
682
|
h.gl.deleteBuffer(this._lineStrokeColorsBuffer);
|
|
683
683
|
this._lineStrokeColorsBuffer = h.createArrayBuffer(new Float32Array(this._lineStrokeColors), 4, this._lineStrokeColors.length / 4);
|
|
684
684
|
}
|
|
685
|
+
clear() {
|
|
686
|
+
this._geometries = [];
|
|
687
|
+
this._polyVerticesHighMerc = [];
|
|
688
|
+
this._polyVerticesLowMerc = [];
|
|
689
|
+
this._polyIndexes = [];
|
|
690
|
+
this._polyColors = [];
|
|
691
|
+
this._polyPickingColors = [];
|
|
692
|
+
this._lineVerticesHighMerc = [];
|
|
693
|
+
this._lineVerticesLowMerc = [];
|
|
694
|
+
this._lineOrders = [];
|
|
695
|
+
this._lineIndexes = [];
|
|
696
|
+
this._lineColors = [];
|
|
697
|
+
this._linePickingColors = [];
|
|
698
|
+
this._lineThickness = [];
|
|
699
|
+
this._lineStrokeColors = [];
|
|
700
|
+
this._lineStrokes = [];
|
|
701
|
+
this._deleteBuffers();
|
|
702
|
+
this._polyVerticesHighBufferMerc = null;
|
|
703
|
+
this._polyVerticesLowBufferMerc = null;
|
|
704
|
+
this._polyIndexesBuffer = null;
|
|
705
|
+
this._polyColorsBuffer = null;
|
|
706
|
+
this._polyPickingColorsBuffer = null;
|
|
707
|
+
this._lineVerticesHighBufferMerc = null;
|
|
708
|
+
this._lineVerticesLowBufferMerc = null;
|
|
709
|
+
this._lineIndexesBuffer = null;
|
|
710
|
+
this._lineOrdersBuffer = null;
|
|
711
|
+
this._lineColorsBuffer = null;
|
|
712
|
+
this._linePickingColorsBuffer = null;
|
|
713
|
+
this._lineThicknessBuffer = null;
|
|
714
|
+
this._lineStrokeColorsBuffer = null;
|
|
715
|
+
this._lineStrokesBuffer = null;
|
|
716
|
+
this._updatedGeometryArr = [];
|
|
717
|
+
this._updatedGeometry = {};
|
|
718
|
+
this._removeGeometryExtentArr = [];
|
|
719
|
+
this._removeGeometryExtents = {};
|
|
720
|
+
this.refresh();
|
|
721
|
+
}
|
|
722
|
+
_deleteBuffers() {
|
|
723
|
+
if (this._layer._planet && this._layer._planet.renderer) {
|
|
724
|
+
let h = this._layer._planet.renderer.handler, gl = h.gl;
|
|
725
|
+
gl.deleteBuffer(this._polyVerticesHighBufferMerc);
|
|
726
|
+
gl.deleteBuffer(this._polyVerticesLowBufferMerc);
|
|
727
|
+
gl.deleteBuffer(this._polyIndexesBuffer);
|
|
728
|
+
gl.deleteBuffer(this._polyColorsBuffer);
|
|
729
|
+
gl.deleteBuffer(this._polyPickingColorsBuffer);
|
|
730
|
+
gl.deleteBuffer(this._lineVerticesHighBufferMerc);
|
|
731
|
+
gl.deleteBuffer(this._lineVerticesLowBufferMerc);
|
|
732
|
+
gl.deleteBuffer(this._lineIndexesBuffer);
|
|
733
|
+
gl.deleteBuffer(this._lineOrdersBuffer);
|
|
734
|
+
gl.deleteBuffer(this._lineColorsBuffer);
|
|
735
|
+
gl.deleteBuffer(this._linePickingColorsBuffer);
|
|
736
|
+
gl.deleteBuffer(this._lineThicknessBuffer);
|
|
737
|
+
gl.deleteBuffer(this._lineStrokeColorsBuffer);
|
|
738
|
+
gl.deleteBuffer(this._lineStrokesBuffer);
|
|
739
|
+
}
|
|
740
|
+
}
|
|
685
741
|
}
|
|
686
742
|
GeometryHandler.__counter__ = 0;
|
|
687
743
|
export { GeometryHandler };
|
package/lib/js/layer/Bing.js
CHANGED
|
@@ -20,6 +20,7 @@ export class Bing extends XYZ {
|
|
|
20
20
|
subdomains: ['t0', 't1', 't2', 't3'],
|
|
21
21
|
url: "https://ecn.{s}.tiles.virtualearth.net/tiles/a{quad}.jpeg?n=z&g=7146",
|
|
22
22
|
isBaseLayer: true,
|
|
23
|
+
textureFilter: "LINEAR",
|
|
23
24
|
maxNativeZoom: 17,
|
|
24
25
|
defaultTextures: [{ color: "#001522" }, { color: "#E4E6F3" }],
|
|
25
26
|
attribution: `<div style="transform: scale(0.8); margin-top:-2px;"><a href="https://www.bing.com" target="_blank"><img style="position: relative; top: 2px;" title="Bing Imagery" src="https://sandcastle.cesium.com/CesiumUnminified/Assets/Images/bing_maps_credit.png"></a> © 2021 Microsoft Corporation</div>`,
|
package/lib/js/layer/Vector.js
CHANGED
|
@@ -388,6 +388,7 @@ class Vector extends Layer {
|
|
|
388
388
|
* @public
|
|
389
389
|
*/
|
|
390
390
|
clear() {
|
|
391
|
+
super.clear();
|
|
391
392
|
let temp = new Array(this._entities.length);
|
|
392
393
|
for (let i = 0; i < temp.length; i++) {
|
|
393
394
|
temp[i] = this._entities[i];
|
|
@@ -404,6 +405,7 @@ class Vector extends Layer {
|
|
|
404
405
|
this._entityCollectionsTree = null;
|
|
405
406
|
this._entityCollectionsTreeNorth = null;
|
|
406
407
|
this._entityCollectionsTreeSouth = null;
|
|
408
|
+
this._geometryHandler.clear();
|
|
407
409
|
}
|
|
408
410
|
/**
|
|
409
411
|
* Safety entities loop.
|
|
@@ -723,7 +725,7 @@ class Vector extends Layer {
|
|
|
723
725
|
}
|
|
724
726
|
_execDeferredNode(node) {
|
|
725
727
|
this._counter++;
|
|
726
|
-
|
|
728
|
+
requestAnimationFrame(() => {
|
|
727
729
|
node.applyCollection();
|
|
728
730
|
this._counter--;
|
|
729
731
|
if (this._deferredEntitiesPendingQueue.length && this._counter < 1) {
|
|
@@ -736,7 +738,7 @@ class Vector extends Layer {
|
|
|
736
738
|
}
|
|
737
739
|
}
|
|
738
740
|
}
|
|
739
|
-
}
|
|
741
|
+
});
|
|
740
742
|
}
|
|
741
743
|
/**
|
|
742
744
|
* Start to load tile material.
|
|
@@ -7,16 +7,25 @@ export interface IRgbTerrainParams extends IGlobusTerrainParams {
|
|
|
7
7
|
equalizeNormals?: boolean;
|
|
8
8
|
key?: string;
|
|
9
9
|
imageSize?: number;
|
|
10
|
+
minHeight?: number;
|
|
11
|
+
resolution?: number;
|
|
10
12
|
}
|
|
11
13
|
declare class RgbTerrain extends GlobusTerrain {
|
|
12
14
|
protected _imageSize: number;
|
|
13
15
|
protected _ctx: CanvasRenderingContext2D;
|
|
14
16
|
protected _imageDataCache: Record<string, Uint8ClampedArray>;
|
|
17
|
+
protected _minHeight: number;
|
|
18
|
+
protected _resolution: number;
|
|
15
19
|
constructor(name: string | null, options?: IRgbTerrainParams);
|
|
16
20
|
static checkNoDataValue(noDataValues: number[] | TypedArray, value: number): boolean;
|
|
21
|
+
rgb2Height(r: number, g: number, b: number): number;
|
|
17
22
|
isBlur(segment: Segment): boolean;
|
|
18
23
|
protected _createTemporalCanvas(size: number): CanvasRenderingContext2D;
|
|
19
24
|
protected _createHeights(data: HTMLImageElement | ImageBitmap, segment: Segment | null, tileGroup: number, tileX: number, tileY: number, tileZoom: number, extent: Extent, preventChildren: boolean): TypedArray | number[];
|
|
20
25
|
getHeightAsync(lonLat: LonLat, callback: (h: number) => void, zoom?: number): boolean;
|
|
26
|
+
extractElevationSimple(rgbaData: number[] | TypedArray, noDataValues: number[] | TypedArray, availableParentData: (TypedArray | number[] | null) | undefined, availableParentOffsetX: number, availableParentOffsetY: number, availableZoomDiff: number, skipPositiveHeights: boolean, outCurrenElevations: number[] | TypedArray, heightFactor: number | undefined, imageSize: number): void;
|
|
27
|
+
extractElevationTilesRgbNonPowerOfTwo(rgbaData: number[] | TypedArray, outCurrenElevations: number[] | TypedArray, heightFactor?: number): void;
|
|
28
|
+
extractElevationTilesRgb(rgbaData: number[] | TypedArray, heightFactor: number, noDataValues: number[] | TypedArray, availableParentData: (TypedArray | number[] | null) | undefined, availableParentTileX: number, availableParentTileY: number, availableParentTileZoom: number, currentTileX: number, currentTileY: number, currentTileZoom: number, skipPositiveHeights: boolean, outCurrenElevations: number[] | TypedArray, outChildrenElevations: number[][][] | TypedArray[][]): void;
|
|
29
|
+
extractElevationTilesRgbNoChildren(rgbaData: number[] | TypedArray, heightFactor: number, noDataValues: number[] | TypedArray, availableParentData: (TypedArray | number[] | null) | undefined, availableParentTileX: number, availableParentTileY: number, availableParentTileZoom: number, currentTileX: number, currentTileY: number, currentTileZoom: number, skipPositiveHeights: boolean, outCurrenElevations: number[] | TypedArray): void;
|
|
21
30
|
}
|
|
22
31
|
export { RgbTerrain };
|