@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.
Files changed (273) hide show
  1. package/package.json +13 -13
  2. package/src/og/Clock.js +10 -10
  3. package/src/og/Events.js +8 -6
  4. package/src/og/Extent.js +82 -41
  5. package/src/og/Globe.js +25 -13
  6. package/src/og/ImageCanvas.js +22 -16
  7. package/src/og/LonLat.js +16 -13
  8. package/src/og/Popup.js +21 -14
  9. package/src/og/QueueArray.js +6 -2
  10. package/src/og/Rectangle.js +11 -6
  11. package/src/og/Stack.js +5 -2
  12. package/src/og/ajax.js +21 -33
  13. package/src/og/astro/astro.js +5 -5
  14. package/src/og/astro/earth.js +22 -16
  15. package/src/og/astro/jd.js +23 -18
  16. package/src/og/astro/orbit.js +13 -11
  17. package/src/og/astro/rotation.js +17 -8
  18. package/src/og/bv/Box.js +7 -3
  19. package/src/og/bv/Sphere.js +14 -11
  20. package/src/og/camera/Camera.js +51 -54
  21. package/src/og/camera/Frustum.js +29 -18
  22. package/src/og/camera/PlanetCamera.js +32 -23
  23. package/src/og/control/CompassButton.js +5 -1
  24. package/src/og/control/Control.js +12 -10
  25. package/src/og/control/DebugInfo.js +4 -1
  26. package/src/og/control/EarthCoordinates.js +54 -33
  27. package/src/og/control/KeyboardNavigation.js +10 -10
  28. package/src/og/control/LayerSwitcher.js +22 -21
  29. package/src/og/control/Lighting.js +34 -3
  30. package/src/og/control/MouseNavigation.js +1 -1
  31. package/src/og/control/ScaleControl.js +1 -1
  32. package/src/og/control/SegmentBoundVisualization.js +6 -7
  33. package/src/og/control/ShowFps.js +13 -8
  34. package/src/og/control/SimpleNavigation.js +6 -8
  35. package/src/og/control/Sun.js +25 -15
  36. package/src/og/control/ToggleWireframe.js +4 -4
  37. package/src/og/control/TouchNavigation.js +44 -33
  38. package/src/og/control/ZoomControl.js +41 -25
  39. package/src/og/ellipsoid/Ellipsoid.js +162 -66
  40. package/src/og/ellipsoid/wgs84.js +4 -4
  41. package/src/og/entity/BaseBillboard.js +100 -56
  42. package/src/og/entity/Billboard.js +14 -10
  43. package/src/og/entity/BillboardHandler.js +317 -60
  44. package/src/og/entity/Entity.js +100 -68
  45. package/src/og/entity/EntityCollection.js +70 -47
  46. package/src/og/entity/GeoObject.js +228 -0
  47. package/src/og/entity/GeoObjectHandler.js +910 -0
  48. package/src/og/entity/Geometry.js +27 -24
  49. package/src/og/entity/GeometryHandler.js +596 -124
  50. package/src/og/entity/Label.js +80 -49
  51. package/src/og/entity/LabelHandler.js +45 -244
  52. package/src/og/entity/LabelWorker.js +218 -0
  53. package/src/og/entity/Object3d.js +504 -0
  54. package/src/og/entity/PointCloud.js +80 -32
  55. package/src/og/entity/PointCloudHandler.js +8 -8
  56. package/src/og/entity/Polyline.js +16 -16
  57. package/src/og/entity/Ray.js +60 -27
  58. package/src/og/entity/Strip.js +77 -48
  59. package/src/og/entity/StripHandler.js +26 -26
  60. package/src/og/entity/index.js +8 -16
  61. package/src/og/layer/BaseGeoImage.js +54 -23
  62. package/src/og/layer/CanvasTiles.js +24 -24
  63. package/src/og/layer/GeoImage.js +9 -9
  64. package/src/og/layer/GeoVideo.js +3 -3
  65. package/src/og/layer/KML.js +63 -37
  66. package/src/og/layer/Layer.js +44 -21
  67. package/src/og/layer/Material.js +23 -20
  68. package/src/og/layer/Vector.js +114 -68
  69. package/src/og/layer/WMS.js +34 -17
  70. package/src/og/layer/XYZ.js +48 -46
  71. package/src/og/light/LightSource.js +46 -39
  72. package/src/og/math/Mat3.js +34 -22
  73. package/src/og/math/Mat4.js +603 -459
  74. package/src/og/math/Plane.js +21 -20
  75. package/src/og/math/Quat.js +182 -139
  76. package/src/og/math/Ray.js +38 -33
  77. package/src/og/math/Vec2.js +85 -75
  78. package/src/og/math/Vec3.js +142 -112
  79. package/src/og/math/Vec4.js +27 -31
  80. package/src/og/math/coder.js +10 -10
  81. package/src/og/math.js +12 -12
  82. package/src/og/proj/EPSG3857.js +4 -4
  83. package/src/og/proj/EPSG4326.js +4 -4
  84. package/src/og/proj/Proj.js +4 -6
  85. package/src/og/quadTree/Node.js +8 -8
  86. package/src/og/renderer/Renderer.js +59 -52
  87. package/src/og/renderer/RendererEvents.js +50 -27
  88. package/src/og/scene/BaseNode.js +7 -8
  89. package/src/og/scene/Planet.js +102 -103
  90. package/src/og/scene/RenderNode.js +28 -21
  91. package/src/og/segment/Segment.js +26 -21
  92. package/src/og/segment/SegmentLonLat.js +5 -5
  93. package/src/og/shaders/drawnode.js +135 -142
  94. package/src/og/shaders/geoObject.js +211 -0
  95. package/src/og/shaders/pointCloud.js +41 -41
  96. package/src/og/shaders/shape.js +12 -18
  97. package/src/og/shaders/skybox.js +36 -36
  98. package/src/og/shaders/toneMapping.js +1 -0
  99. package/src/og/shapes/BaseShape.js +126 -54
  100. package/src/og/shapes/Icosphere.js +29 -14
  101. package/src/og/shapes/Sphere.js +12 -15
  102. package/src/og/terrain/BilTerrain.js +1 -0
  103. package/src/og/terrain/EmptyTerrain.js +2 -2
  104. package/src/og/terrain/GlobusTerrain.js +9 -9
  105. package/src/og/utils/FontAtlas.js +6 -2
  106. package/src/og/utils/TextureAtlas.js +22 -24
  107. package/src/og/utils/VectorTileCreator.js +1 -3
  108. package/src/og/utils/shared.js +16 -16
  109. package/src/og/webgl/Framebuffer.js +88 -40
  110. package/src/og/webgl/Handler.js +243 -169
  111. package/src/og/webgl/Multisample.js +47 -19
  112. package/src/og/webgl/Program.js +79 -34
  113. package/src/og/webgl/ProgramController.js +17 -13
  114. package/src/og/webgl/callbacks.js +8 -8
  115. package/src/og/inherits.js +0 -8
  116. package/src/og/utils/polylabel.js +0 -176
  117. package/types/Clock.d.ts +0 -90
  118. package/types/Deferred.d.ts +0 -6
  119. package/types/Events.d.ts +0 -73
  120. package/types/Extent.d.ts +0 -166
  121. package/types/Globe.d.ts +0 -75
  122. package/types/ImageCanvas.d.ts +0 -121
  123. package/types/Lock.d.ts +0 -12
  124. package/types/LonLat.d.ts +0 -108
  125. package/types/Popup.d.ts +0 -38
  126. package/types/QueueArray.d.ts +0 -15
  127. package/types/Rectangle.d.ts +0 -74
  128. package/types/Stack.d.ts +0 -15
  129. package/types/ajax.d.ts +0 -24
  130. package/types/arial.d.ts +0 -48
  131. package/types/astro/astro.d.ts +0 -38
  132. package/types/astro/earth.d.ts +0 -6
  133. package/types/astro/jd.d.ts +0 -254
  134. package/types/bv/Box.d.ts +0 -25
  135. package/types/bv/Sphere.d.ts +0 -38
  136. package/types/bv/index.d.ts +0 -3
  137. package/types/camera/Camera.d.ts +0 -303
  138. package/types/camera/Frustum.d.ts +0 -129
  139. package/types/camera/PlanetCamera.d.ts +0 -223
  140. package/types/camera/index.d.ts +0 -3
  141. package/types/cons.d.ts +0 -40
  142. package/types/control/CompassButton.d.ts +0 -18
  143. package/types/control/Control.d.ts +0 -101
  144. package/types/control/DebugInfo.d.ts +0 -16
  145. package/types/control/EarthCoordinates.d.ts +0 -47
  146. package/types/control/EarthNavigation.d.ts +0 -42
  147. package/types/control/GeoImageDragControl.d.ts +0 -6
  148. package/types/control/KeyboardNavigation.d.ts +0 -22
  149. package/types/control/LayerSwitcher.d.ts +0 -23
  150. package/types/control/Lighting.d.ts +0 -16
  151. package/types/control/MouseNavigation.d.ts +0 -51
  152. package/types/control/ScaleControl.d.ts +0 -22
  153. package/types/control/ShowFps.d.ts +0 -12
  154. package/types/control/SimpleNavigation.d.ts +0 -28
  155. package/types/control/Sun.d.ts +0 -52
  156. package/types/control/ToggleWireframe.d.ts +0 -12
  157. package/types/control/TouchNavigation.d.ts +0 -50
  158. package/types/control/ZoomControl.d.ts +0 -28
  159. package/types/control/index.d.ts +0 -17
  160. package/types/ellipsoid/Ellipsoid.d.ts +0 -142
  161. package/types/ellipsoid/index.d.ts +0 -3
  162. package/types/ellipsoid/wgs84.d.ts +0 -5
  163. package/types/entity/BaseBillboard.d.ts +0 -208
  164. package/types/entity/Billboard.d.ts +0 -94
  165. package/types/entity/BillboardHandler.d.ts +0 -74
  166. package/types/entity/Entity.d.ts +0 -331
  167. package/types/entity/EntityCollection.d.ts +0 -303
  168. package/types/entity/Geometry.d.ts +0 -73
  169. package/types/entity/GeometryHandler.d.ts +0 -76
  170. package/types/entity/Label.d.ts +0 -194
  171. package/types/entity/LabelHandler.d.ts +0 -24
  172. package/types/entity/PointCloud.d.ts +0 -174
  173. package/types/entity/PointCloudHandler.d.ts +0 -38
  174. package/types/entity/Polyline.d.ts +0 -304
  175. package/types/entity/PolylineHandler.d.ts +0 -18
  176. package/types/entity/Ray.d.ts +0 -123
  177. package/types/entity/RayHandler.d.ts +0 -67
  178. package/types/entity/ShapeHandler.d.ts +0 -22
  179. package/types/entity/Strip.d.ts +0 -118
  180. package/types/entity/StripHandler.d.ts +0 -38
  181. package/types/entity/index.d.ts +0 -8
  182. package/types/index.core.d.ts +0 -65
  183. package/types/index.d.ts +0 -45
  184. package/types/index.webgl.d.ts +0 -7
  185. package/types/inherits.d.ts +0 -4
  186. package/types/input/KeyboardHandler.d.ts +0 -10
  187. package/types/input/MouseHandler.d.ts +0 -5
  188. package/types/input/TouchHandler.d.ts +0 -5
  189. package/types/input/input.d.ts +0 -34
  190. package/types/layer/BaseGeoImage.d.ts +0 -107
  191. package/types/layer/CanvasTiles.d.ts +0 -75
  192. package/types/layer/GeoImage.d.ts +0 -65
  193. package/types/layer/GeoTexture2d.d.ts +0 -8
  194. package/types/layer/GeoVideo.d.ts +0 -80
  195. package/types/layer/KML.d.ts +0 -58
  196. package/types/layer/Layer.d.ts +0 -321
  197. package/types/layer/Material.d.ts +0 -48
  198. package/types/layer/Vector.d.ts +0 -228
  199. package/types/layer/WMS.d.ts +0 -66
  200. package/types/layer/XYZ.d.ts +0 -130
  201. package/types/layer/index.d.ts +0 -10
  202. package/types/light/LightSource.d.ts +0 -177
  203. package/types/math/Line2.d.ts +0 -11
  204. package/types/math/Line3.d.ts +0 -10
  205. package/types/math/Mat3.d.ts +0 -63
  206. package/types/math/Mat4.d.ts +0 -173
  207. package/types/math/Plane.d.ts +0 -17
  208. package/types/math/Quat.d.ts +0 -376
  209. package/types/math/Ray.d.ts +0 -81
  210. package/types/math/Vec2.d.ts +0 -308
  211. package/types/math/Vec3.d.ts +0 -459
  212. package/types/math/Vec4.d.ts +0 -161
  213. package/types/math/coder.d.ts +0 -42
  214. package/types/math/index.d.ts +0 -11
  215. package/types/math.d.ts +0 -261
  216. package/types/mercator.d.ts +0 -92
  217. package/types/proj/EPSG3857.d.ts +0 -5
  218. package/types/proj/EPSG4326.d.ts +0 -5
  219. package/types/proj/Proj.d.ts +0 -42
  220. package/types/quadTree/EntityCollectionNode.d.ts +0 -34
  221. package/types/quadTree/Node.d.ts +0 -61
  222. package/types/quadTree/quadTree.d.ts +0 -40
  223. package/types/renderer/Renderer.d.ts +0 -296
  224. package/types/renderer/RendererEvents.d.ts +0 -230
  225. package/types/res/images.d.ts +0 -3
  226. package/types/scene/Axes.d.ts +0 -11
  227. package/types/scene/BaseNode.d.ts +0 -60
  228. package/types/scene/Planet.d.ts +0 -574
  229. package/types/scene/RenderNode.d.ts +0 -143
  230. package/types/scene/SkyBox.d.ts +0 -10
  231. package/types/scene/index.d.ts +0 -4
  232. package/types/segment/Segment.d.ts +0 -271
  233. package/types/segment/SegmentLonLat.d.ts +0 -62
  234. package/types/segment/segmentHelper.d.ts +0 -13
  235. package/types/shaders/billboard.d.ts +0 -3
  236. package/types/shaders/depth.d.ts +0 -2
  237. package/types/shaders/drawnode.d.ts +0 -7
  238. package/types/shaders/label.d.ts +0 -4
  239. package/types/shaders/pointCloud.d.ts +0 -2
  240. package/types/shaders/polyline.d.ts +0 -3
  241. package/types/shaders/ray.d.ts +0 -2
  242. package/types/shaders/screenFrame.d.ts +0 -2
  243. package/types/shaders/shape.d.ts +0 -4
  244. package/types/shaders/skybox.d.ts +0 -2
  245. package/types/shaders/toneMapping.d.ts +0 -2
  246. package/types/shapes/BaseShape.d.ts +0 -247
  247. package/types/shapes/Sphere.d.ts +0 -41
  248. package/types/terrain/BilTerrain.d.ts +0 -8
  249. package/types/terrain/EmptyTerrain.d.ts +0 -72
  250. package/types/terrain/Geoid.d.ts +0 -26
  251. package/types/terrain/GlobusTerrain.d.ts +0 -153
  252. package/types/terrain/MapboxTerrain.d.ts +0 -8
  253. package/types/terrain/index.d.ts +0 -5
  254. package/types/utils/FontAtlas.d.ts +0 -14
  255. package/types/utils/GeoImageCreator.d.ts +0 -30
  256. package/types/utils/ImagesCacheManager.d.ts +0 -10
  257. package/types/utils/Loader.d.ts +0 -25
  258. package/types/utils/NormalMapCreator.d.ts +0 -39
  259. package/types/utils/PlainSegmentWorker.d.ts +0 -10
  260. package/types/utils/TerrainWorker.d.ts +0 -9
  261. package/types/utils/TextureAtlas.d.ts +0 -111
  262. package/types/utils/VectorTileCreator.d.ts +0 -16
  263. package/types/utils/colorTable.d.ts +0 -143
  264. package/types/utils/earcut.d.ts +0 -6
  265. package/types/utils/shared.d.ts +0 -230
  266. package/types/webgl/Framebuffer.d.ts +0 -135
  267. package/types/webgl/Handler.d.ts +0 -372
  268. package/types/webgl/Multisample.d.ts +0 -89
  269. package/types/webgl/Program.d.ts +0 -155
  270. package/types/webgl/ProgramController.d.ts +0 -84
  271. package/types/webgl/callbacks.d.ts +0 -1
  272. package/types/webgl/index.d.ts +0 -6
  273. package/types/webgl/types.d.ts +0 -2
@@ -2,21 +2,22 @@
2
2
  * @module og/entity/Entity
3
3
  */
4
4
 
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';
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 {og.Vec3|Array.<number>} [options.cartesian] - Spatial entities like billboard, label, sphere etc. cartesian position.
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.<og.Entity>}
73
+ * @type {Array.<Entity>}
74
74
  */
75
75
  this.childrenNodes = [];
76
76
 
77
77
  /**
78
78
  * Parent entity.
79
79
  * @public
80
- * @type {og.Entity}
80
+ * @type {Entity}
81
81
  */
82
82
  this.parent = null;
83
83
 
84
84
  /**
85
85
  * Entity cartesian position.
86
86
  * @protected
87
- * @type {og.Vec3}
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 {og.EntityCollection}
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 {og.layer.Vector}
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 {og.Vec3}
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 {og.Billboard}
170
+ * @type {Billboard}
170
171
  */
171
- this.billboard = this._createOptionFeature('billboard', options.billboard);
172
+ this.billboard = this._createOptionFeature("billboard", options.billboard);
172
173
 
173
174
  /**
174
175
  * Text label entity.
175
176
  * @public
176
- * @type {og.Label}
177
+ * @type {Label}
177
178
  */
178
- this.label = this._createOptionFeature('label', options.label);
179
+ this.label = this._createOptionFeature("label", options.label);
179
180
 
180
181
  /**
181
182
  * Shape entity.
182
183
  * @public
183
- * @type {og.shape.BaseShape}
184
+ * @type {shape.BaseShape}
184
185
  */
185
- this.shape = this._createOptionFeature('sphere', options.sphere || options.box);
186
+ this.shape = this._createOptionFeature("sphere", options.sphere || options.box);
186
187
 
187
188
  /**
188
189
  * Polyline entity.
189
190
  * @public
190
- * @type {og.Polyline}
191
+ * @type {Polyline}
191
192
  */
192
- this.polyline = this._createOptionFeature('polyline', options.polyline);
193
+ this.polyline = this._createOptionFeature("polyline", options.polyline);
193
194
 
194
195
  /**
195
196
  * Ray entity.
196
197
  * @public
197
- * @type {og.ray}
198
+ * @type {ray}
198
199
  */
199
- this.ray = this._createOptionFeature('ray', options.ray);
200
+ this.ray = this._createOptionFeature("ray", options.ray);
200
201
 
201
202
  /**
202
203
  * PointCloud entity.
203
204
  * @public
204
- * @type {og.PointCloud}
205
+ * @type {PointCloud}
205
206
  */
206
- this.pointCloud = this._createOptionFeature('pointCloud', options.pointCloud);
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.geometry = this._createOptionFeature('geometry', options.geometry);
221
+ this.geoObject = this._createOptionFeature("geoObject", options.geoObject);
214
222
 
215
223
  /**
216
224
  * Strip entity.
217
225
  * @public
218
- * @type {og.Strip}
226
+ * @type {Strip}
219
227
  */
220
- this.strip = this._createOptionFeature('strip', options.strip);
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 {og.EntityCollection|og.layer.Vector} collection - Specified entity collection or vector layer.
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 {og.Entity} - This object.
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 {og.Vec3} cartesian - Cartesian position in 3d space.
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 {og.Vec3} cartesian - Cartesian position in 3d space.
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 {og.Vec3} -
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 {og.Billboard} billboard - Billboard object.
471
- * @returns {og.Billboard} -
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 {og.Label} label - Text label.
489
- * @returns {og.Label} -
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 {og.Ray} ray - Ray object.
507
- * @returns {og.Ray} -
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 {og.BaseShape} shape - Shape object.
524
- * @returns {og.Polyline} -
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 {og.Polyline} polyline - Polyline object.
542
- * @returns {og.Polyline} -
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 {og.PointCloud} pointCloud - PointCloud object.
559
- * @returns {og.PointCloud} -
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 {og.Geometry} geometry - Geometry object.
576
- * @returns {og.Geometry} -
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 {og.Strip} strip - Strip object.
593
- * @returns {og.Strip} -
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 {og.Entity} entity - Child entity.
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 {og.Extent} -
696
+ * @returns {Extent} -
665
697
  */
666
698
  getExtent() {
667
699
  var res;