@openglobus/og 0.11.2 → 0.11.7
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/package.json +13 -13
- package/src/og/Clock.js +10 -10
- package/src/og/Events.js +8 -6
- package/src/og/Extent.js +82 -41
- package/src/og/Globe.js +25 -13
- package/src/og/ImageCanvas.js +22 -16
- package/src/og/LonLat.js +16 -13
- package/src/og/Popup.js +21 -14
- package/src/og/QueueArray.js +6 -2
- package/src/og/Rectangle.js +11 -6
- package/src/og/Stack.js +5 -2
- package/src/og/ajax.js +21 -33
- package/src/og/astro/astro.js +5 -5
- package/src/og/astro/earth.js +22 -16
- package/src/og/astro/jd.js +23 -18
- package/src/og/astro/orbit.js +13 -11
- package/src/og/astro/rotation.js +17 -8
- package/src/og/bv/Box.js +7 -3
- package/src/og/bv/Sphere.js +14 -11
- package/src/og/camera/Camera.js +51 -54
- package/src/og/camera/Frustum.js +29 -18
- package/src/og/camera/PlanetCamera.js +32 -23
- package/src/og/control/CompassButton.js +5 -1
- package/src/og/control/Control.js +12 -10
- package/src/og/control/DebugInfo.js +4 -1
- package/src/og/control/EarthCoordinates.js +54 -33
- package/src/og/control/KeyboardNavigation.js +10 -10
- package/src/og/control/LayerSwitcher.js +22 -21
- package/src/og/control/Lighting.js +34 -3
- package/src/og/control/MouseNavigation.js +1 -1
- package/src/og/control/ScaleControl.js +1 -1
- package/src/og/control/SegmentBoundVisualization.js +6 -7
- package/src/og/control/ShowFps.js +13 -8
- package/src/og/control/SimpleNavigation.js +6 -8
- package/src/og/control/Sun.js +25 -15
- package/src/og/control/ToggleWireframe.js +4 -4
- package/src/og/control/TouchNavigation.js +44 -33
- package/src/og/control/ZoomControl.js +41 -25
- package/src/og/ellipsoid/Ellipsoid.js +162 -66
- package/src/og/ellipsoid/wgs84.js +4 -4
- package/src/og/entity/BaseBillboard.js +100 -56
- package/src/og/entity/Billboard.js +14 -10
- package/src/og/entity/BillboardHandler.js +317 -60
- package/src/og/entity/Entity.js +100 -68
- package/src/og/entity/EntityCollection.js +70 -47
- package/src/og/entity/GeoObject.js +228 -0
- package/src/og/entity/GeoObjectHandler.js +910 -0
- package/src/og/entity/Geometry.js +27 -24
- package/src/og/entity/GeometryHandler.js +596 -124
- package/src/og/entity/Label.js +80 -49
- package/src/og/entity/LabelHandler.js +45 -244
- package/src/og/entity/LabelWorker.js +218 -0
- package/src/og/entity/Object3d.js +504 -0
- package/src/og/entity/PointCloud.js +80 -32
- package/src/og/entity/PointCloudHandler.js +8 -8
- package/src/og/entity/Polyline.js +16 -16
- package/src/og/entity/Ray.js +60 -27
- package/src/og/entity/Strip.js +77 -48
- package/src/og/entity/StripHandler.js +26 -26
- package/src/og/entity/index.js +8 -16
- package/src/og/layer/BaseGeoImage.js +54 -23
- package/src/og/layer/CanvasTiles.js +24 -24
- package/src/og/layer/GeoImage.js +9 -9
- package/src/og/layer/GeoVideo.js +3 -3
- package/src/og/layer/KML.js +63 -37
- package/src/og/layer/Layer.js +44 -21
- package/src/og/layer/Material.js +23 -20
- package/src/og/layer/Vector.js +114 -68
- package/src/og/layer/WMS.js +34 -17
- package/src/og/layer/XYZ.js +48 -46
- package/src/og/light/LightSource.js +46 -39
- package/src/og/math/Mat3.js +34 -22
- package/src/og/math/Mat4.js +603 -459
- package/src/og/math/Plane.js +21 -20
- package/src/og/math/Quat.js +182 -139
- package/src/og/math/Ray.js +38 -33
- package/src/og/math/Vec2.js +85 -75
- package/src/og/math/Vec3.js +142 -112
- package/src/og/math/Vec4.js +27 -31
- package/src/og/math/coder.js +10 -10
- package/src/og/math.js +12 -12
- package/src/og/proj/EPSG3857.js +4 -4
- package/src/og/proj/EPSG4326.js +4 -4
- package/src/og/proj/Proj.js +4 -6
- package/src/og/quadTree/Node.js +8 -8
- package/src/og/renderer/Renderer.js +59 -52
- package/src/og/renderer/RendererEvents.js +50 -27
- package/src/og/scene/BaseNode.js +7 -8
- package/src/og/scene/Planet.js +102 -103
- package/src/og/scene/RenderNode.js +28 -21
- package/src/og/segment/Segment.js +26 -21
- package/src/og/segment/SegmentLonLat.js +5 -5
- package/src/og/shaders/drawnode.js +135 -142
- package/src/og/shaders/geoObject.js +211 -0
- package/src/og/shaders/pointCloud.js +41 -41
- package/src/og/shaders/shape.js +12 -18
- package/src/og/shaders/skybox.js +36 -36
- package/src/og/shaders/toneMapping.js +1 -0
- package/src/og/shapes/BaseShape.js +126 -54
- package/src/og/shapes/Icosphere.js +29 -14
- package/src/og/shapes/Sphere.js +12 -15
- package/src/og/terrain/BilTerrain.js +1 -0
- package/src/og/terrain/EmptyTerrain.js +2 -2
- package/src/og/terrain/GlobusTerrain.js +9 -9
- package/src/og/utils/FontAtlas.js +6 -2
- package/src/og/utils/TextureAtlas.js +22 -24
- package/src/og/utils/VectorTileCreator.js +1 -3
- package/src/og/utils/shared.js +16 -16
- package/src/og/webgl/Framebuffer.js +88 -40
- package/src/og/webgl/Handler.js +243 -169
- package/src/og/webgl/Multisample.js +47 -19
- package/src/og/webgl/Program.js +79 -34
- package/src/og/webgl/ProgramController.js +17 -13
- package/src/og/webgl/callbacks.js +8 -8
- package/src/og/inherits.js +0 -8
- package/src/og/utils/polylabel.js +0 -176
- package/types/Clock.d.ts +0 -90
- package/types/Deferred.d.ts +0 -6
- package/types/Events.d.ts +0 -73
- package/types/Extent.d.ts +0 -166
- package/types/Globe.d.ts +0 -75
- package/types/ImageCanvas.d.ts +0 -121
- package/types/Lock.d.ts +0 -12
- package/types/LonLat.d.ts +0 -108
- package/types/Popup.d.ts +0 -38
- package/types/QueueArray.d.ts +0 -15
- package/types/Rectangle.d.ts +0 -74
- package/types/Stack.d.ts +0 -15
- package/types/ajax.d.ts +0 -24
- package/types/arial.d.ts +0 -48
- package/types/astro/astro.d.ts +0 -38
- package/types/astro/earth.d.ts +0 -6
- package/types/astro/jd.d.ts +0 -254
- package/types/bv/Box.d.ts +0 -25
- package/types/bv/Sphere.d.ts +0 -38
- package/types/bv/index.d.ts +0 -3
- package/types/camera/Camera.d.ts +0 -303
- package/types/camera/Frustum.d.ts +0 -129
- package/types/camera/PlanetCamera.d.ts +0 -223
- package/types/camera/index.d.ts +0 -3
- package/types/cons.d.ts +0 -40
- package/types/control/CompassButton.d.ts +0 -18
- package/types/control/Control.d.ts +0 -101
- package/types/control/DebugInfo.d.ts +0 -16
- package/types/control/EarthCoordinates.d.ts +0 -47
- package/types/control/EarthNavigation.d.ts +0 -42
- package/types/control/GeoImageDragControl.d.ts +0 -6
- package/types/control/KeyboardNavigation.d.ts +0 -22
- package/types/control/LayerSwitcher.d.ts +0 -23
- package/types/control/Lighting.d.ts +0 -16
- package/types/control/MouseNavigation.d.ts +0 -51
- package/types/control/ScaleControl.d.ts +0 -22
- package/types/control/ShowFps.d.ts +0 -12
- package/types/control/SimpleNavigation.d.ts +0 -28
- package/types/control/Sun.d.ts +0 -52
- package/types/control/ToggleWireframe.d.ts +0 -12
- package/types/control/TouchNavigation.d.ts +0 -50
- package/types/control/ZoomControl.d.ts +0 -28
- package/types/control/index.d.ts +0 -17
- package/types/ellipsoid/Ellipsoid.d.ts +0 -142
- package/types/ellipsoid/index.d.ts +0 -3
- package/types/ellipsoid/wgs84.d.ts +0 -5
- package/types/entity/BaseBillboard.d.ts +0 -208
- package/types/entity/Billboard.d.ts +0 -94
- package/types/entity/BillboardHandler.d.ts +0 -74
- package/types/entity/Entity.d.ts +0 -331
- package/types/entity/EntityCollection.d.ts +0 -303
- package/types/entity/Geometry.d.ts +0 -73
- package/types/entity/GeometryHandler.d.ts +0 -76
- package/types/entity/Label.d.ts +0 -194
- package/types/entity/LabelHandler.d.ts +0 -24
- package/types/entity/PointCloud.d.ts +0 -174
- package/types/entity/PointCloudHandler.d.ts +0 -38
- package/types/entity/Polyline.d.ts +0 -304
- package/types/entity/PolylineHandler.d.ts +0 -18
- package/types/entity/Ray.d.ts +0 -123
- package/types/entity/RayHandler.d.ts +0 -67
- package/types/entity/ShapeHandler.d.ts +0 -22
- package/types/entity/Strip.d.ts +0 -118
- package/types/entity/StripHandler.d.ts +0 -38
- package/types/entity/index.d.ts +0 -8
- package/types/index.core.d.ts +0 -65
- package/types/index.d.ts +0 -45
- package/types/index.webgl.d.ts +0 -7
- package/types/inherits.d.ts +0 -4
- package/types/input/KeyboardHandler.d.ts +0 -10
- package/types/input/MouseHandler.d.ts +0 -5
- package/types/input/TouchHandler.d.ts +0 -5
- package/types/input/input.d.ts +0 -34
- package/types/layer/BaseGeoImage.d.ts +0 -107
- package/types/layer/CanvasTiles.d.ts +0 -75
- package/types/layer/GeoImage.d.ts +0 -65
- package/types/layer/GeoTexture2d.d.ts +0 -8
- package/types/layer/GeoVideo.d.ts +0 -80
- package/types/layer/KML.d.ts +0 -58
- package/types/layer/Layer.d.ts +0 -321
- package/types/layer/Material.d.ts +0 -48
- package/types/layer/Vector.d.ts +0 -228
- package/types/layer/WMS.d.ts +0 -66
- package/types/layer/XYZ.d.ts +0 -130
- package/types/layer/index.d.ts +0 -10
- package/types/light/LightSource.d.ts +0 -177
- package/types/math/Line2.d.ts +0 -11
- package/types/math/Line3.d.ts +0 -10
- package/types/math/Mat3.d.ts +0 -63
- package/types/math/Mat4.d.ts +0 -173
- package/types/math/Plane.d.ts +0 -17
- package/types/math/Quat.d.ts +0 -376
- package/types/math/Ray.d.ts +0 -81
- package/types/math/Vec2.d.ts +0 -308
- package/types/math/Vec3.d.ts +0 -459
- package/types/math/Vec4.d.ts +0 -161
- package/types/math/coder.d.ts +0 -42
- package/types/math/index.d.ts +0 -11
- package/types/math.d.ts +0 -261
- package/types/mercator.d.ts +0 -92
- package/types/proj/EPSG3857.d.ts +0 -5
- package/types/proj/EPSG4326.d.ts +0 -5
- package/types/proj/Proj.d.ts +0 -42
- package/types/quadTree/EntityCollectionNode.d.ts +0 -34
- package/types/quadTree/Node.d.ts +0 -61
- package/types/quadTree/quadTree.d.ts +0 -40
- package/types/renderer/Renderer.d.ts +0 -296
- package/types/renderer/RendererEvents.d.ts +0 -230
- package/types/res/images.d.ts +0 -3
- package/types/scene/Axes.d.ts +0 -11
- package/types/scene/BaseNode.d.ts +0 -60
- package/types/scene/Planet.d.ts +0 -574
- package/types/scene/RenderNode.d.ts +0 -143
- package/types/scene/SkyBox.d.ts +0 -10
- package/types/scene/index.d.ts +0 -4
- package/types/segment/Segment.d.ts +0 -271
- package/types/segment/SegmentLonLat.d.ts +0 -62
- package/types/segment/segmentHelper.d.ts +0 -13
- package/types/shaders/billboard.d.ts +0 -3
- package/types/shaders/depth.d.ts +0 -2
- package/types/shaders/drawnode.d.ts +0 -7
- package/types/shaders/label.d.ts +0 -4
- package/types/shaders/pointCloud.d.ts +0 -2
- package/types/shaders/polyline.d.ts +0 -3
- package/types/shaders/ray.d.ts +0 -2
- package/types/shaders/screenFrame.d.ts +0 -2
- package/types/shaders/shape.d.ts +0 -4
- package/types/shaders/skybox.d.ts +0 -2
- package/types/shaders/toneMapping.d.ts +0 -2
- package/types/shapes/BaseShape.d.ts +0 -247
- package/types/shapes/Sphere.d.ts +0 -41
- package/types/terrain/BilTerrain.d.ts +0 -8
- package/types/terrain/EmptyTerrain.d.ts +0 -72
- package/types/terrain/Geoid.d.ts +0 -26
- package/types/terrain/GlobusTerrain.d.ts +0 -153
- package/types/terrain/MapboxTerrain.d.ts +0 -8
- package/types/terrain/index.d.ts +0 -5
- package/types/utils/FontAtlas.d.ts +0 -14
- package/types/utils/GeoImageCreator.d.ts +0 -30
- package/types/utils/ImagesCacheManager.d.ts +0 -10
- package/types/utils/Loader.d.ts +0 -25
- package/types/utils/NormalMapCreator.d.ts +0 -39
- package/types/utils/PlainSegmentWorker.d.ts +0 -10
- package/types/utils/TerrainWorker.d.ts +0 -9
- package/types/utils/TextureAtlas.d.ts +0 -111
- package/types/utils/VectorTileCreator.d.ts +0 -16
- package/types/utils/colorTable.d.ts +0 -143
- package/types/utils/earcut.d.ts +0 -6
- package/types/utils/shared.d.ts +0 -230
- package/types/webgl/Framebuffer.d.ts +0 -135
- package/types/webgl/Handler.d.ts +0 -372
- package/types/webgl/Multisample.d.ts +0 -89
- package/types/webgl/Program.d.ts +0 -155
- package/types/webgl/ProgramController.d.ts +0 -84
- package/types/webgl/callbacks.d.ts +0 -1
- package/types/webgl/index.d.ts +0 -6
- package/types/webgl/types.d.ts +0 -2
package/src/og/entity/Entity.js
CHANGED
|
@@ -2,21 +2,22 @@
|
|
|
2
2
|
* @module og/entity/Entity
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
import * as mercator from
|
|
8
|
-
import * as utils from
|
|
9
|
-
import { Billboard } from
|
|
10
|
-
import { Strip } from
|
|
11
|
-
import { Extent } from
|
|
12
|
-
import { Geometry } from
|
|
13
|
-
import { Label } from
|
|
14
|
-
import { LonLat } from
|
|
15
|
-
import { Polyline } from
|
|
16
|
-
import { Ray } from
|
|
17
|
-
import { PointCloud } from
|
|
18
|
-
import { Sphere } from
|
|
19
|
-
import { Vec3 } from
|
|
5
|
+
"use strict";
|
|
6
|
+
|
|
7
|
+
import * as mercator from "../mercator.js";
|
|
8
|
+
import * as utils from "../utils/shared.js";
|
|
9
|
+
import { Billboard } from "./Billboard.js";
|
|
10
|
+
import { Strip } from "./Strip.js";
|
|
11
|
+
import { Extent } from "../Extent.js";
|
|
12
|
+
import { Geometry } from "./Geometry.js";
|
|
13
|
+
import { Label } from "./Label.js";
|
|
14
|
+
import { LonLat } from "../LonLat.js";
|
|
15
|
+
import { Polyline } from "./Polyline.js";
|
|
16
|
+
import { Ray } from "./Ray.js";
|
|
17
|
+
import { PointCloud } from "./PointCloud.js";
|
|
18
|
+
import { Sphere } from "../shapes/Sphere.js";
|
|
19
|
+
import { Vec3 } from "../math/Vec3.js";
|
|
20
|
+
import { GeoObject } from "./GeoObject.js";
|
|
20
21
|
|
|
21
22
|
/**
|
|
22
23
|
* Entity instances aggregate multiple forms of visualization into a single high-level object.
|
|
@@ -25,7 +26,7 @@ import { Vec3 } from '../math/Vec3.js';
|
|
|
25
26
|
* @class
|
|
26
27
|
* @param {Object} [options] - Entity options:
|
|
27
28
|
* @param {string} [options.name] - A human readable name to display to users. It does not have to be unique.
|
|
28
|
-
* @param {
|
|
29
|
+
* @param {Vec3|Array.<number>} [options.cartesian] - Spatial entities like billboard, label, sphere etc. cartesian position.
|
|
29
30
|
* @param {LonLat} [options.lonlat] - Geodetic coordiantes for an entities like billboard, label, sphere etc.
|
|
30
31
|
* @param {boolean} [options.aground] - True for entities that have to be placed on the relief.
|
|
31
32
|
* @param {boolean} [options.visibility] - Entity visibility.
|
|
@@ -41,7 +42,6 @@ import { Vec3 } from '../math/Vec3.js';
|
|
|
41
42
|
*/
|
|
42
43
|
class Entity {
|
|
43
44
|
constructor(options) {
|
|
44
|
-
|
|
45
45
|
options = options || {};
|
|
46
46
|
|
|
47
47
|
options.properties = options.properties || {};
|
|
@@ -70,21 +70,21 @@ class Entity {
|
|
|
70
70
|
/**
|
|
71
71
|
* Children entities.
|
|
72
72
|
* @public
|
|
73
|
-
* @type {Array.<
|
|
73
|
+
* @type {Array.<Entity>}
|
|
74
74
|
*/
|
|
75
75
|
this.childrenNodes = [];
|
|
76
76
|
|
|
77
77
|
/**
|
|
78
78
|
* Parent entity.
|
|
79
79
|
* @public
|
|
80
|
-
* @type {
|
|
80
|
+
* @type {Entity}
|
|
81
81
|
*/
|
|
82
82
|
this.parent = null;
|
|
83
83
|
|
|
84
84
|
/**
|
|
85
85
|
* Entity cartesian position.
|
|
86
86
|
* @protected
|
|
87
|
-
* @type {
|
|
87
|
+
* @type {Vec3}
|
|
88
88
|
*/
|
|
89
89
|
this._cartesian = utils.createVector3(options.cartesian);
|
|
90
90
|
|
|
@@ -119,7 +119,7 @@ class Entity {
|
|
|
119
119
|
/**
|
|
120
120
|
* Entity collection that this entity belongs to.
|
|
121
121
|
* @protected
|
|
122
|
-
* @type {
|
|
122
|
+
* @type {EntityCollection}
|
|
123
123
|
*/
|
|
124
124
|
this._entityCollection = null;
|
|
125
125
|
|
|
@@ -133,7 +133,7 @@ class Entity {
|
|
|
133
133
|
/**
|
|
134
134
|
* Assigned vector layer pointer.
|
|
135
135
|
* @protected
|
|
136
|
-
* @type {
|
|
136
|
+
* @type {layer.Vector}
|
|
137
137
|
*/
|
|
138
138
|
this._layer = null;
|
|
139
139
|
|
|
@@ -147,7 +147,7 @@ class Entity {
|
|
|
147
147
|
/**
|
|
148
148
|
* Picking color.
|
|
149
149
|
* @protected
|
|
150
|
-
* @type {
|
|
150
|
+
* @type {Vec3}
|
|
151
151
|
*/
|
|
152
152
|
this._pickingColor = new Vec3(0, 0, 0);
|
|
153
153
|
|
|
@@ -159,6 +159,7 @@ class Entity {
|
|
|
159
159
|
polyline: [Polyline, this.setPolyline],
|
|
160
160
|
pointCloud: [PointCloud, this.setPointCloud],
|
|
161
161
|
geometry: [Geometry, this.setGeometry],
|
|
162
|
+
geoObject: [GeoObject, this.setGeoObject],
|
|
162
163
|
strip: [Strip, this.setStrip],
|
|
163
164
|
ray: [Ray, this.setRay]
|
|
164
165
|
};
|
|
@@ -166,58 +167,65 @@ class Entity {
|
|
|
166
167
|
/**
|
|
167
168
|
* Billboard entity.
|
|
168
169
|
* @public
|
|
169
|
-
* @type {
|
|
170
|
+
* @type {Billboard}
|
|
170
171
|
*/
|
|
171
|
-
this.billboard = this._createOptionFeature(
|
|
172
|
+
this.billboard = this._createOptionFeature("billboard", options.billboard);
|
|
172
173
|
|
|
173
174
|
/**
|
|
174
175
|
* Text label entity.
|
|
175
176
|
* @public
|
|
176
|
-
* @type {
|
|
177
|
+
* @type {Label}
|
|
177
178
|
*/
|
|
178
|
-
this.label = this._createOptionFeature(
|
|
179
|
+
this.label = this._createOptionFeature("label", options.label);
|
|
179
180
|
|
|
180
181
|
/**
|
|
181
182
|
* Shape entity.
|
|
182
183
|
* @public
|
|
183
|
-
* @type {
|
|
184
|
+
* @type {shape.BaseShape}
|
|
184
185
|
*/
|
|
185
|
-
this.shape = this._createOptionFeature(
|
|
186
|
+
this.shape = this._createOptionFeature("sphere", options.sphere || options.box);
|
|
186
187
|
|
|
187
188
|
/**
|
|
188
189
|
* Polyline entity.
|
|
189
190
|
* @public
|
|
190
|
-
* @type {
|
|
191
|
+
* @type {Polyline}
|
|
191
192
|
*/
|
|
192
|
-
this.polyline = this._createOptionFeature(
|
|
193
|
+
this.polyline = this._createOptionFeature("polyline", options.polyline);
|
|
193
194
|
|
|
194
195
|
/**
|
|
195
196
|
* Ray entity.
|
|
196
197
|
* @public
|
|
197
|
-
* @type {
|
|
198
|
+
* @type {ray}
|
|
198
199
|
*/
|
|
199
|
-
this.ray = this._createOptionFeature(
|
|
200
|
+
this.ray = this._createOptionFeature("ray", options.ray);
|
|
200
201
|
|
|
201
202
|
/**
|
|
202
203
|
* PointCloud entity.
|
|
203
204
|
* @public
|
|
204
|
-
* @type {
|
|
205
|
+
* @type {PointCloud}
|
|
205
206
|
*/
|
|
206
|
-
this.pointCloud = this._createOptionFeature(
|
|
207
|
+
this.pointCloud = this._createOptionFeature("pointCloud", options.pointCloud);
|
|
207
208
|
|
|
208
209
|
/**
|
|
209
210
|
* Geometry entity(available for vector layer only).
|
|
210
211
|
* @public
|
|
212
|
+
* @type {Geometry}
|
|
213
|
+
*/
|
|
214
|
+
this.geometry = this._createOptionFeature("geometry", options.geometry);
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* Geo object entity
|
|
218
|
+
* @public
|
|
211
219
|
* @type {og.Geometry}
|
|
212
220
|
*/
|
|
213
|
-
this.
|
|
221
|
+
this.geoObject = this._createOptionFeature("geoObject", options.geoObject);
|
|
214
222
|
|
|
215
223
|
/**
|
|
216
224
|
* Strip entity.
|
|
217
225
|
* @public
|
|
218
|
-
* @type {
|
|
226
|
+
* @type {Strip}
|
|
219
227
|
*/
|
|
220
|
-
this.strip = this._createOptionFeature(
|
|
228
|
+
this.strip = this._createOptionFeature("strip", options.strip);
|
|
221
229
|
}
|
|
222
230
|
|
|
223
231
|
static get _staticCounter() {
|
|
@@ -250,9 +258,9 @@ class Entity {
|
|
|
250
258
|
/**
|
|
251
259
|
* Adds current entity into the specified entity collection.
|
|
252
260
|
* @public
|
|
253
|
-
* @param {
|
|
261
|
+
* @param {EntityCollection|Vector} collection - Specified entity collection or vector layer.
|
|
254
262
|
* @param {Boolean} [rightNow=false] - Entity insertion option for vector layer.
|
|
255
|
-
* @returns {
|
|
263
|
+
* @returns {Entity} - This object.
|
|
256
264
|
*/
|
|
257
265
|
addTo(collection, rightNow) {
|
|
258
266
|
collection.add(this, rightNow);
|
|
@@ -279,6 +287,9 @@ class Entity {
|
|
|
279
287
|
// billboards
|
|
280
288
|
this.billboard && this.billboard.setVisibility(visibility);
|
|
281
289
|
|
|
290
|
+
// billboards
|
|
291
|
+
this.geoObject && this.geoObject.setVisibility(visibility);
|
|
292
|
+
|
|
282
293
|
// labels
|
|
283
294
|
this.label && this.label.setVisibility(visibility);
|
|
284
295
|
|
|
@@ -311,7 +322,7 @@ class Entity {
|
|
|
311
322
|
/**
|
|
312
323
|
* Sets entity cartesian position.
|
|
313
324
|
* @public
|
|
314
|
-
* @param {
|
|
325
|
+
* @param {Vec3} cartesian - Cartesian position in 3d space.
|
|
315
326
|
*/
|
|
316
327
|
setCartesian3v(cartesian) {
|
|
317
328
|
this.setCartesian(cartesian.x, cartesian.y, cartesian.z);
|
|
@@ -325,7 +336,6 @@ class Entity {
|
|
|
325
336
|
* @param {number} z - 3d space Z - position.
|
|
326
337
|
*/
|
|
327
338
|
setCartesian(x, y, z) {
|
|
328
|
-
|
|
329
339
|
var p = this._cartesian;
|
|
330
340
|
|
|
331
341
|
p.x = x;
|
|
@@ -335,6 +345,9 @@ class Entity {
|
|
|
335
345
|
// billboards
|
|
336
346
|
this.billboard && this.billboard.setPosition3v(p);
|
|
337
347
|
|
|
348
|
+
// geoObject
|
|
349
|
+
this.geoObject && this.geoObject.setPosition3v(p);
|
|
350
|
+
|
|
338
351
|
// labels
|
|
339
352
|
this.label && this.label.setPosition3v(p);
|
|
340
353
|
|
|
@@ -348,7 +361,6 @@ class Entity {
|
|
|
348
361
|
var ec = this._entityCollection;
|
|
349
362
|
|
|
350
363
|
if (ec && ec.renderNode && ec.renderNode.ellipsoid) {
|
|
351
|
-
|
|
352
364
|
this._lonlat = ec.renderNode.ellipsoid.cartesianToLonLat(p);
|
|
353
365
|
|
|
354
366
|
if (Math.abs(this._lonlat.lat) < mercator.MAX_LAT) {
|
|
@@ -364,11 +376,10 @@ class Entity {
|
|
|
364
376
|
/**
|
|
365
377
|
* Sets entity cartesian position without event dispatching.
|
|
366
378
|
* @protected
|
|
367
|
-
* @param {
|
|
379
|
+
* @param {Vec3} cartesian - Cartesian position in 3d space.
|
|
368
380
|
* @param {boolean} skipLonLat - skip geodetic calculation.
|
|
369
381
|
*/
|
|
370
382
|
_setCartesian3vSilent(cartesian, skipLonLat) {
|
|
371
|
-
|
|
372
383
|
var p = this._cartesian;
|
|
373
384
|
|
|
374
385
|
p.x = cartesian.x;
|
|
@@ -378,6 +389,9 @@ class Entity {
|
|
|
378
389
|
// billboards
|
|
379
390
|
this.billboard && this.billboard.setPosition3v(p);
|
|
380
391
|
|
|
392
|
+
// geoObject
|
|
393
|
+
this.geoObject && this.geoObject.setPosition3v(p);
|
|
394
|
+
|
|
381
395
|
// labels
|
|
382
396
|
this.label && this.label.setPosition3v(p);
|
|
383
397
|
|
|
@@ -385,13 +399,12 @@ class Entity {
|
|
|
385
399
|
this.shape && this.shape.setPosition3v(p);
|
|
386
400
|
|
|
387
401
|
for (var i = 0; i < this.childrenNodes.length; i++) {
|
|
388
|
-
this.childrenNodes[i].setCartesian(x, y, z);
|
|
402
|
+
this.childrenNodes[i].setCartesian(p.x, p.y, p.z);
|
|
389
403
|
}
|
|
390
404
|
|
|
391
405
|
var ec = this._entityCollection;
|
|
392
406
|
|
|
393
407
|
if (!skipLonLat && ec && ec.renderNode && ec.renderNode.ellipsoid) {
|
|
394
|
-
|
|
395
408
|
this._lonlat = ec.renderNode.ellipsoid.cartesianToLonLat(p);
|
|
396
409
|
|
|
397
410
|
if (Math.abs(this._lonlat.lat) < mercator.MAX_LAT) {
|
|
@@ -425,7 +438,6 @@ class Entity {
|
|
|
425
438
|
|
|
426
439
|
var ec = this._entityCollection;
|
|
427
440
|
if (ec && ec.renderNode && ec.renderNode.ellipsoid) {
|
|
428
|
-
|
|
429
441
|
if (Math.abs(lonlat.lat) < mercator.MAX_LAT) {
|
|
430
442
|
this._lonlatMerc = lonlat.forwardMercator();
|
|
431
443
|
} else {
|
|
@@ -458,7 +470,7 @@ class Entity {
|
|
|
458
470
|
/**
|
|
459
471
|
* Returns carteain position.
|
|
460
472
|
* @public
|
|
461
|
-
* @returns {
|
|
473
|
+
* @returns {Vec3} -
|
|
462
474
|
*/
|
|
463
475
|
getCartesian() {
|
|
464
476
|
return this._cartesian.clone();
|
|
@@ -467,8 +479,8 @@ class Entity {
|
|
|
467
479
|
/**
|
|
468
480
|
* Sets entity billboard.
|
|
469
481
|
* @public
|
|
470
|
-
* @param {
|
|
471
|
-
* @returns {
|
|
482
|
+
* @param {Billboard} billboard - Billboard object.
|
|
483
|
+
* @returns {Billboard} -
|
|
472
484
|
*/
|
|
473
485
|
setBillboard(billboard) {
|
|
474
486
|
if (this.billboard) {
|
|
@@ -485,8 +497,8 @@ class Entity {
|
|
|
485
497
|
/**
|
|
486
498
|
* Sets entity label.
|
|
487
499
|
* @public
|
|
488
|
-
* @param {
|
|
489
|
-
* @returns {
|
|
500
|
+
* @param {Label} label - Text label.
|
|
501
|
+
* @returns {Label} -
|
|
490
502
|
*/
|
|
491
503
|
setLabel(label) {
|
|
492
504
|
if (this.label) {
|
|
@@ -503,8 +515,8 @@ class Entity {
|
|
|
503
515
|
/**
|
|
504
516
|
* Sets entity ray.
|
|
505
517
|
* @public
|
|
506
|
-
* @param {
|
|
507
|
-
* @returns {
|
|
518
|
+
* @param {Ray} ray - Ray object.
|
|
519
|
+
* @returns {Ray} -
|
|
508
520
|
*/
|
|
509
521
|
setRay(ray) {
|
|
510
522
|
if (this.ray) {
|
|
@@ -520,8 +532,8 @@ class Entity {
|
|
|
520
532
|
/**
|
|
521
533
|
* Sets entity shape.
|
|
522
534
|
* @public
|
|
523
|
-
* @param {
|
|
524
|
-
* @returns {
|
|
535
|
+
* @param {BaseShape} shape - Shape object.
|
|
536
|
+
* @returns {Polyline} -
|
|
525
537
|
*/
|
|
526
538
|
setShape(shape) {
|
|
527
539
|
if (this.shape) {
|
|
@@ -538,8 +550,8 @@ class Entity {
|
|
|
538
550
|
/**
|
|
539
551
|
* Sets entity polyline.
|
|
540
552
|
* @public
|
|
541
|
-
* @param {
|
|
542
|
-
* @returns {
|
|
553
|
+
* @param {Polyline} polyline - Polyline object.
|
|
554
|
+
* @returns {Polyline} -
|
|
543
555
|
*/
|
|
544
556
|
setPolyline(polyline) {
|
|
545
557
|
if (this.polyline) {
|
|
@@ -555,8 +567,8 @@ class Entity {
|
|
|
555
567
|
/**
|
|
556
568
|
* Sets entity pointCloud.
|
|
557
569
|
* @public
|
|
558
|
-
* @param {
|
|
559
|
-
* @returns {
|
|
570
|
+
* @param {PointCloud} pointCloud - PointCloud object.
|
|
571
|
+
* @returns {PointCloud} -
|
|
560
572
|
*/
|
|
561
573
|
setPointCloud(pointCloud) {
|
|
562
574
|
if (this.pointCloud) {
|
|
@@ -572,8 +584,8 @@ class Entity {
|
|
|
572
584
|
/**
|
|
573
585
|
* Sets entity geometry.
|
|
574
586
|
* @public
|
|
575
|
-
* @param {
|
|
576
|
-
* @returns {
|
|
587
|
+
* @param {Geometry} geometry - Geometry object.
|
|
588
|
+
* @returns {Geometry} -
|
|
577
589
|
*/
|
|
578
590
|
setGeometry(geometry) {
|
|
579
591
|
if (this.geometry) {
|
|
@@ -586,11 +598,29 @@ class Entity {
|
|
|
586
598
|
return geometry;
|
|
587
599
|
}
|
|
588
600
|
|
|
601
|
+
/**
|
|
602
|
+
* Sets entity geoObject.
|
|
603
|
+
* @public
|
|
604
|
+
* @param {GeoObject} geoObject - GeoObject.
|
|
605
|
+
* @returns {GeoObject} -
|
|
606
|
+
*/
|
|
607
|
+
setGeoObject(geoObject) {
|
|
608
|
+
if (this.geoObject) {
|
|
609
|
+
this.geoObject.remove();
|
|
610
|
+
}
|
|
611
|
+
this.geoObject = geoObject;
|
|
612
|
+
this.geoObject._entity = this;
|
|
613
|
+
this.geoObject.setPosition3v(this._cartesian);
|
|
614
|
+
this.geoObject.setVisibility(this._visibility);
|
|
615
|
+
this._entityCollection && this._entityCollection._geoObjectHandler.add(geoObject);
|
|
616
|
+
return geoObject;
|
|
617
|
+
}
|
|
618
|
+
|
|
589
619
|
/**
|
|
590
620
|
* Sets entity strip.
|
|
591
621
|
* @public
|
|
592
|
-
* @param {
|
|
593
|
-
* @returns {
|
|
622
|
+
* @param {Strip} strip - Strip object.
|
|
623
|
+
* @returns {Strip} -
|
|
594
624
|
*/
|
|
595
625
|
setStrip(strip) {
|
|
596
626
|
if (this.strip) {
|
|
@@ -613,12 +643,13 @@ class Entity {
|
|
|
613
643
|
} else if (this._entityCollection) {
|
|
614
644
|
return this._entityCollection.events;
|
|
615
645
|
}
|
|
646
|
+
return null;
|
|
616
647
|
}
|
|
617
648
|
|
|
618
649
|
/**
|
|
619
650
|
* Append child entity.
|
|
620
651
|
* @public
|
|
621
|
-
* @param {
|
|
652
|
+
* @param {Entity} entity - Child entity.
|
|
622
653
|
*/
|
|
623
654
|
appendChild(entity) {
|
|
624
655
|
entity._entityCollection = this._entityCollection;
|
|
@@ -633,7 +664,6 @@ class Entity {
|
|
|
633
664
|
* @public
|
|
634
665
|
*/
|
|
635
666
|
setPickingColor() {
|
|
636
|
-
|
|
637
667
|
var c = this._pickingColor;
|
|
638
668
|
|
|
639
669
|
// billboard
|
|
@@ -654,6 +684,8 @@ class Entity {
|
|
|
654
684
|
// strip
|
|
655
685
|
this.strip && this.strip.setPickingColor3v(c);
|
|
656
686
|
|
|
687
|
+
// billboard
|
|
688
|
+
this.geoObject && this.geoObject.setPickingColor3v(c);
|
|
657
689
|
for (var i = 0; i < this.childrenNodes.length; i++) {
|
|
658
690
|
this.childrenNodes[i].setPickingColor();
|
|
659
691
|
}
|
|
@@ -661,7 +693,7 @@ class Entity {
|
|
|
661
693
|
|
|
662
694
|
/**
|
|
663
695
|
* Return geodethic extent.
|
|
664
|
-
* @returns {
|
|
696
|
+
* @returns {Extent} -
|
|
665
697
|
*/
|
|
666
698
|
getExtent() {
|
|
667
699
|
var res;
|