@openglobus/og 0.22.1 → 0.23.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/css/og.css +137 -1
- package/lib/@openglobus/js/Object3d.d.ts +20 -10
- package/lib/@openglobus/js/camera/Camera.d.ts +9 -0
- package/lib/@openglobus/js/camera/Frustum.d.ts +3 -0
- package/lib/@openglobus/js/control/CameraLock.d.ts +38 -0
- package/lib/@openglobus/js/control/SimpleNavigation.d.ts +27 -10
- package/lib/@openglobus/js/control/geoObjectEditor/ArrowEntity.d.ts +15 -0
- package/lib/@openglobus/js/control/geoObjectEditor/AxisTrackEntity.d.ts +9 -0
- package/lib/@openglobus/js/control/geoObjectEditor/GeoObjectEditor.d.ts +13 -0
- package/lib/@openglobus/js/control/geoObjectEditor/GeoObjectEditorDialog.d.ts +69 -0
- package/lib/@openglobus/js/control/geoObjectEditor/GeoObjectEditorScene.d.ts +78 -9
- package/lib/@openglobus/js/control/geoObjectEditor/MoveAxisEntity.d.ts +17 -0
- package/lib/@openglobus/js/control/geoObjectEditor/MovePlaneEntity.d.ts +7 -0
- package/lib/@openglobus/js/control/geoObjectEditor/RotateEntity.d.ts +9 -0
- package/lib/@openglobus/js/control/geoObjectEditor/colors.d.ts +8 -0
- package/lib/@openglobus/js/control/index.d.ts +2 -0
- package/lib/@openglobus/js/entity/Entity.d.ts +278 -19
- package/lib/@openglobus/js/entity/EntityCollection.d.ts +8 -9
- package/lib/@openglobus/js/entity/GeoObject.d.ts +141 -36
- package/lib/@openglobus/js/entity/GeoObjectHandler.d.ts +39 -63
- package/lib/@openglobus/js/entity/InstanceData.d.ts +76 -0
- package/lib/@openglobus/js/entity/Polyline.d.ts +19 -6
- package/lib/@openglobus/js/entity/PolylineHandler.d.ts +7 -0
- package/lib/@openglobus/js/index.d.ts +2 -1
- package/lib/@openglobus/js/layer/Vector.d.ts +4 -0
- package/lib/@openglobus/js/light/LightSource.d.ts +1 -139
- package/lib/@openglobus/js/math/Quat.d.ts +46 -33
- package/lib/@openglobus/js/math/Ray.d.ts +10 -4
- package/lib/@openglobus/js/math/Vec3.d.ts +15 -0
- package/lib/@openglobus/js/math.d.ts +2 -2
- package/lib/@openglobus/js/quadTree/EntityCollectionNode.d.ts +2 -2
- package/lib/@openglobus/js/quadTree/Node.d.ts +1 -1
- package/lib/@openglobus/js/quadTree/earth/EarthEntityCollectionNodeLonLat.d.ts +1 -1
- package/lib/@openglobus/js/quadTree/equi/EquiEntityCollectionNodeLonLat.d.ts +1 -1
- package/lib/@openglobus/js/renderer/Renderer.d.ts +64 -44
- package/lib/@openglobus/js/renderer/RendererEvents.d.ts +1 -0
- package/lib/@openglobus/js/scene/Planet.d.ts +11 -7
- package/lib/@openglobus/js/scene/RenderNode.d.ts +10 -25
- package/lib/@openglobus/js/shaders/drawnode.d.ts +1 -0
- package/lib/@openglobus/js/shaders/geoObject.d.ts +1 -0
- package/lib/@openglobus/js/shaders/utils.d.ts +1 -1
- package/lib/@openglobus/js/ui/Checkbox.d.ts +31 -0
- package/lib/@openglobus/js/ui/Dialog.d.ts +3 -0
- package/lib/@openglobus/js/ui/Input.d.ts +32 -0
- package/lib/@openglobus/js/ui/View.d.ts +3 -1
- package/lib/@openglobus/js/utils/objParser.d.ts +44 -12
- package/lib/@openglobus/js/utils/shared.d.ts +22 -0
- package/lib/@openglobus/js/webgl/BaseFramebuffer.d.ts +0 -1
- package/lib/@openglobus/js/webgl/Framebuffer.d.ts +35 -8
- package/lib/@openglobus/js/webgl/Handler.d.ts +3 -0
- package/lib/@openglobus/og.css +1 -1
- 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.js +2 -1
- package/lib/js/Object3d.d.ts +20 -10
- package/lib/js/Object3d.js +124 -48
- package/lib/js/camera/Camera.d.ts +9 -0
- package/lib/js/camera/Camera.js +27 -1
- package/lib/js/camera/Frustum.d.ts +3 -0
- package/lib/js/camera/Frustum.js +7 -0
- package/lib/js/control/Atmosphere.js +10 -6
- package/lib/js/control/CameraLock.d.ts +38 -0
- package/lib/js/control/CameraLock.js +216 -0
- package/lib/js/control/Control.js +1 -1
- package/lib/js/control/DebugInfo.js +13 -3
- package/lib/js/control/KeyboardNavigation.js +1 -1
- package/lib/js/control/ScaleControl.js +9 -3
- package/lib/js/control/SimpleNavigation.d.ts +27 -10
- package/lib/js/control/SimpleNavigation.js +148 -49
- package/lib/js/control/Sun.js +1 -1
- package/lib/js/control/elevationProfile/ElevationProfileScene.js +4 -4
- package/lib/js/control/geoObjectEditor/ArrowEntity.d.ts +15 -0
- package/lib/js/control/geoObjectEditor/ArrowEntity.js +59 -0
- package/lib/js/control/geoObjectEditor/AxisTrackEntity.d.ts +9 -0
- package/lib/js/control/geoObjectEditor/AxisTrackEntity.js +93 -0
- package/lib/js/control/geoObjectEditor/GeoObjectEditor.d.ts +13 -0
- package/lib/js/control/geoObjectEditor/GeoObjectEditor.js +30 -0
- package/lib/js/control/geoObjectEditor/GeoObjectEditorDialog.d.ts +69 -0
- package/lib/js/control/geoObjectEditor/GeoObjectEditorDialog.js +502 -0
- package/lib/js/control/geoObjectEditor/GeoObjectEditorScene.d.ts +78 -9
- package/lib/js/control/geoObjectEditor/GeoObjectEditorScene.js +487 -43
- package/lib/js/control/geoObjectEditor/MoveAxisEntity.d.ts +17 -0
- package/lib/js/control/geoObjectEditor/MoveAxisEntity.js +106 -0
- package/lib/js/control/geoObjectEditor/MovePlaneEntity.d.ts +7 -0
- package/lib/js/control/geoObjectEditor/MovePlaneEntity.js +34 -0
- package/lib/js/control/geoObjectEditor/RotateEntity.d.ts +9 -0
- package/lib/js/control/geoObjectEditor/RotateEntity.js +105 -0
- package/lib/js/control/geoObjectEditor/colors.d.ts +8 -0
- package/lib/js/control/geoObjectEditor/colors.js +8 -0
- package/lib/js/control/index.d.ts +2 -0
- package/lib/js/control/index.js +2 -0
- package/lib/js/control/timeline/TimelineControl.js +2 -0
- package/lib/js/entity/Entity.d.ts +278 -19
- package/lib/js/entity/Entity.js +483 -63
- package/lib/js/entity/EntityCollection.d.ts +8 -9
- package/lib/js/entity/EntityCollection.js +48 -45
- package/lib/js/entity/GeoObject.d.ts +141 -36
- package/lib/js/entity/GeoObject.js +153 -90
- package/lib/js/entity/GeoObjectHandler.d.ts +39 -63
- package/lib/js/entity/GeoObjectHandler.js +198 -295
- package/lib/js/entity/InstanceData.d.ts +76 -0
- package/lib/js/entity/InstanceData.js +344 -0
- package/lib/js/entity/Polyline.d.ts +19 -6
- package/lib/js/entity/Polyline.js +76 -36
- package/lib/js/entity/PolylineHandler.d.ts +7 -0
- package/lib/js/entity/PolylineHandler.js +26 -1
- package/lib/js/index.d.ts +2 -1
- package/lib/js/index.js +2 -1
- package/lib/js/layer/Bing.js +2 -2
- package/lib/js/layer/Vector.d.ts +4 -0
- package/lib/js/layer/Vector.js +16 -0
- package/lib/js/light/LightSource.d.ts +1 -139
- package/lib/js/light/LightSource.js +21 -227
- package/lib/js/math/Quat.d.ts +46 -33
- package/lib/js/math/Quat.js +91 -90
- package/lib/js/math/Ray.d.ts +10 -4
- package/lib/js/math/Ray.js +20 -4
- package/lib/js/math/Vec3.d.ts +15 -0
- package/lib/js/math/Vec3.js +30 -1
- package/lib/js/math.d.ts +2 -2
- package/lib/js/math.js +3 -3
- package/lib/js/quadTree/EntityCollectionNode.d.ts +2 -2
- package/lib/js/quadTree/EntityCollectionNode.js +8 -8
- package/lib/js/quadTree/Node.d.ts +1 -1
- package/lib/js/quadTree/Node.js +2 -2
- package/lib/js/quadTree/QuadTreeStrategy.js +1 -1
- package/lib/js/quadTree/earth/EarthEntityCollectionNodeLonLat.d.ts +1 -1
- package/lib/js/quadTree/earth/EarthEntityCollectionNodeLonLat.js +2 -2
- package/lib/js/quadTree/equi/EquiEntityCollectionNodeLonLat.d.ts +1 -1
- package/lib/js/quadTree/equi/EquiEntityCollectionNodeLonLat.js +2 -2
- package/lib/js/renderer/Renderer.d.ts +64 -44
- package/lib/js/renderer/Renderer.js +264 -263
- package/lib/js/renderer/RendererEvents.d.ts +1 -0
- package/lib/js/renderer/RendererEvents.js +2 -1
- package/lib/js/scene/Planet.d.ts +11 -7
- package/lib/js/scene/Planet.js +109 -87
- package/lib/js/scene/RenderNode.d.ts +10 -25
- package/lib/js/scene/RenderNode.js +70 -58
- package/lib/js/shaders/depth.js +2 -5
- package/lib/js/shaders/drawnode.d.ts +1 -0
- package/lib/js/shaders/drawnode.js +51 -52
- package/lib/js/shaders/geoObject.d.ts +1 -0
- package/lib/js/shaders/geoObject.js +154 -91
- package/lib/js/shaders/polyline.js +68 -51
- package/lib/js/shaders/utils.d.ts +1 -1
- package/lib/js/shaders/utils.js +11 -0
- package/lib/js/ui/Checkbox.d.ts +31 -0
- package/lib/js/ui/Checkbox.js +110 -0
- package/lib/js/ui/Color.js +2 -1
- package/lib/js/ui/Dialog.d.ts +3 -0
- package/lib/js/ui/Dialog.js +20 -0
- package/lib/js/ui/Input.d.ts +32 -0
- package/lib/js/ui/Input.js +107 -0
- package/lib/js/ui/View.d.ts +3 -1
- package/lib/js/ui/View.js +6 -0
- package/lib/js/utils/objParser.d.ts +44 -12
- package/lib/js/utils/objParser.js +241 -149
- package/lib/js/utils/shared.d.ts +22 -0
- package/lib/js/utils/shared.js +34 -0
- package/lib/js/webgl/BaseFramebuffer.d.ts +0 -1
- package/lib/js/webgl/Framebuffer.d.ts +35 -8
- package/lib/js/webgl/Framebuffer.js +136 -29
- package/lib/js/webgl/Handler.d.ts +3 -0
- package/lib/js/webgl/Handler.js +11 -1
- package/lib/js/webgl/Program.js +0 -8
- package/package.json +4 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Camera } from "../camera/Camera";
|
|
2
2
|
import { Control } from "../control/Control";
|
|
3
|
-
import { RendererEventsHandler } from "./RendererEvents";
|
|
3
|
+
import { IBaseInputState, RendererEventsHandler } from "./RendererEvents";
|
|
4
4
|
import { EntityCollection } from "../entity/EntityCollection";
|
|
5
5
|
import { Framebuffer, Multisample } from "../webgl/index";
|
|
6
6
|
import { FontAtlas } from "../utils/FontAtlas";
|
|
@@ -18,6 +18,7 @@ interface IRendererParams {
|
|
|
18
18
|
fontsSrc?: string;
|
|
19
19
|
gamma?: number;
|
|
20
20
|
exposure?: number;
|
|
21
|
+
dpi?: number;
|
|
21
22
|
}
|
|
22
23
|
interface IPickingObject {
|
|
23
24
|
_pickingColor?: Vec3;
|
|
@@ -28,6 +29,39 @@ interface IFrameCallbackHandler {
|
|
|
28
29
|
callback: Function;
|
|
29
30
|
sender: any;
|
|
30
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* Represents high level WebGL context interface that starts WebGL handler working in real time.
|
|
34
|
+
* @class
|
|
35
|
+
* @param {Handler} handler - WebGL handler context.
|
|
36
|
+
* @param {Object} [params] - Renderer parameters:
|
|
37
|
+
* @fires EventsHandler<RendererEventsType>#draw
|
|
38
|
+
* @fires EventsHandler<RendererEventsType>#resize
|
|
39
|
+
* @fires EventsHandler<RendererEventsType>#mousemove
|
|
40
|
+
* @fires EventsHandler<RendererEventsType>#mousestop
|
|
41
|
+
* @fires EventsHandler<RendererEventsType>#lclick
|
|
42
|
+
* @fires EventsHandler<RendererEventsType>#rclick
|
|
43
|
+
* @fires EventsHandler<RendererEventsType>#mclick
|
|
44
|
+
* @fires EventsHandler<RendererEventsType>#ldblclick
|
|
45
|
+
* @fires EventsHandler<RendererEventsType>#rdblclick
|
|
46
|
+
* @fires EventsHandler<RendererEventsType>#mdblclick
|
|
47
|
+
* @fires EventsHandler<RendererEventsType>#lup
|
|
48
|
+
* @fires EventsHandler<RendererEventsType>#rup
|
|
49
|
+
* @fires EventsHandler<RendererEventsType>#mup
|
|
50
|
+
* @fires EventsHandler<RendererEventsType>#ldown
|
|
51
|
+
* @fires EventsHandler<RendererEventsType>#rdown
|
|
52
|
+
* @fires EventsHandler<RendererEventsType>#mdown
|
|
53
|
+
* @fires EventsHandler<RendererEventsType>#lhold
|
|
54
|
+
* @fires EventsHandler<RendererEventsType>#rhold
|
|
55
|
+
* @fires EventsHandler<RendererEventsType>#mhold
|
|
56
|
+
* @fires EventsHandler<RendererEventsType>#mousewheel
|
|
57
|
+
* @fires EventsHandler<RendererEventsType>#touchstart
|
|
58
|
+
* @fires EventsHandler<RendererEventsType>#touchend
|
|
59
|
+
* @fires EventsHandler<RendererEventsType>#touchcancel
|
|
60
|
+
* @fires EventsHandler<RendererEventsType>#touchmove
|
|
61
|
+
* @fires EventsHandler<RendererEventsType>#doubletouch
|
|
62
|
+
* @fires EventsHandler<RendererEventsType>#touchleave
|
|
63
|
+
* @fires EventsHandler<RendererEventsType>#touchenter
|
|
64
|
+
*/
|
|
31
65
|
export interface HTMLDivElementExt extends HTMLDivElement {
|
|
32
66
|
attributions?: HTMLElement;
|
|
33
67
|
}
|
|
@@ -65,7 +99,7 @@ declare class Renderer {
|
|
|
65
99
|
* @public
|
|
66
100
|
* @type {Camera}
|
|
67
101
|
*/
|
|
68
|
-
activeCamera: Camera
|
|
102
|
+
activeCamera: Camera;
|
|
69
103
|
/**
|
|
70
104
|
* Renderer events. Represents interface for setting events like mousemove, draw, keypress etc.
|
|
71
105
|
* @public
|
|
@@ -101,17 +135,6 @@ declare class Renderer {
|
|
|
101
135
|
* @type {Framebuffer}
|
|
102
136
|
*/
|
|
103
137
|
pickingFramebuffer: Framebuffer | null;
|
|
104
|
-
protected _tempPickingPix_: Uint8Array;
|
|
105
|
-
/**
|
|
106
|
-
* @public
|
|
107
|
-
* @type {Framebuffer}
|
|
108
|
-
*/
|
|
109
|
-
distanceFramebuffer: Framebuffer | null;
|
|
110
|
-
/**
|
|
111
|
-
* @type {Function[]}
|
|
112
|
-
*/
|
|
113
|
-
protected _distanceCallbacks: IFrameCallbackHandler[];
|
|
114
|
-
protected _tempDistancePix_: Uint8Array;
|
|
115
138
|
/**
|
|
116
139
|
* Depth objects rendering queue.
|
|
117
140
|
* @type {Function[]}
|
|
@@ -144,24 +167,19 @@ declare class Renderer {
|
|
|
144
167
|
* @type {FontAtlas}
|
|
145
168
|
*/
|
|
146
169
|
fontAtlas: FontAtlas;
|
|
147
|
-
protected _entityCollections: EntityCollection[];
|
|
170
|
+
protected _entityCollections: EntityCollection[][];
|
|
148
171
|
protected _currentOutput: string;
|
|
149
172
|
protected _fnScreenFrame: Function | null;
|
|
150
173
|
labelWorker: LabelWorker;
|
|
151
|
-
__useDistanceFramebuffer__: boolean;
|
|
152
174
|
screenDepthFramebuffer: Framebuffer | null;
|
|
153
175
|
screenFramePositionBuffer: WebGLBufferExt | null;
|
|
154
176
|
screenTexture: Record<string, WebGLTexture>;
|
|
155
177
|
outputTexture: WebGLTexture | null;
|
|
156
|
-
protected _skipDistanceFrame: boolean;
|
|
157
|
-
protected _distancePixelBuffer: WebGLBuffer | null;
|
|
158
|
-
protected _skipPickingFrame: boolean;
|
|
159
|
-
protected _pickingPixelBuffer: WebGLBuffer | null;
|
|
160
|
-
protected _readDistanceBuffer: () => void;
|
|
161
178
|
protected _readPickingBuffer: () => void;
|
|
162
|
-
constructor(handler: Handler, params?: IRendererParams);
|
|
179
|
+
constructor(handler: Handler | string | HTMLCanvasElement, params?: IRendererParams);
|
|
163
180
|
enableBlendOneSrcAlpha(): void;
|
|
164
181
|
enableBlendDefault(): void;
|
|
182
|
+
setRelativeCenter(c?: Vec3): void;
|
|
165
183
|
/**
|
|
166
184
|
* Sets renderer events activity.
|
|
167
185
|
* @param {Boolean} activity - Events activity.
|
|
@@ -169,8 +187,6 @@ declare class Renderer {
|
|
|
169
187
|
setEventsActivity(activity: boolean): void;
|
|
170
188
|
addDepthCallback(sender: any, callback: Function): number;
|
|
171
189
|
removeDepthCallback(id: number): void;
|
|
172
|
-
addDistanceCallback(sender: any, callback: Function): number;
|
|
173
|
-
removeDistanceCallback(id: number): void;
|
|
174
190
|
/**
|
|
175
191
|
* Adds picking rendering callback function.
|
|
176
192
|
* @param {object} sender - Callback context.
|
|
@@ -243,7 +259,6 @@ declare class Renderer {
|
|
|
243
259
|
* @public
|
|
244
260
|
*/
|
|
245
261
|
initialize(): void;
|
|
246
|
-
_initReadPixelsBuffers(): void;
|
|
247
262
|
_initializeControls(): void;
|
|
248
263
|
resize(): void;
|
|
249
264
|
setCurrentScreen(screenName: string): void;
|
|
@@ -275,42 +290,47 @@ declare class Renderer {
|
|
|
275
290
|
/**
|
|
276
291
|
* TODO: replace with cache friendly linked list by BillboardHandler, LabelHandler etc.
|
|
277
292
|
*/
|
|
278
|
-
enqueueEntityCollectionsToDraw(ecArr: EntityCollection[]): void;
|
|
279
|
-
/**
|
|
280
|
-
* Draws opaque items entity collections.
|
|
281
|
-
* @protected
|
|
282
|
-
*/
|
|
283
|
-
protected _drawOpaqueEntityCollections(): void;
|
|
293
|
+
enqueueEntityCollectionsToDraw(ecArr: EntityCollection[], depthOrder?: number): void;
|
|
284
294
|
/**
|
|
285
|
-
* Draws transparent items entity collections.
|
|
286
295
|
* @protected
|
|
287
296
|
*/
|
|
288
|
-
protected
|
|
289
|
-
protected
|
|
297
|
+
protected _drawEntityCollections(depthOrder: number): void;
|
|
298
|
+
protected _drawPickingEntityCollections(depthOrder: number): void;
|
|
299
|
+
protected _drawDepthEntityCollections(depthOrder: number): void;
|
|
300
|
+
protected _clearEntityCollectionQueue(depthOrder: number): void;
|
|
290
301
|
/**
|
|
291
302
|
* Draw nodes.
|
|
292
303
|
* @public
|
|
293
304
|
*/
|
|
294
305
|
draw(): void;
|
|
306
|
+
getImageDataURL(type?: string, quality?: number): string;
|
|
295
307
|
protected _screenFrameMSAA(): void;
|
|
296
308
|
protected _screenFrameNoMSAA(): void;
|
|
297
309
|
/**
|
|
298
310
|
* Draw picking objects framebuffer.
|
|
299
311
|
* @private
|
|
300
312
|
*/
|
|
301
|
-
protected _drawPickingBuffer(): void;
|
|
313
|
+
protected _drawPickingBuffer(depthOrder: number): void;
|
|
314
|
+
protected _drawDepthBuffer(depthOrder: number): void;
|
|
315
|
+
protected _readDepthBuffer(): void;
|
|
316
|
+
protected _readPickingBuffer_webgl1(): void;
|
|
317
|
+
protected _readPickingBuffer_webgl2(): void;
|
|
318
|
+
readPickingColor(x: number, y: number, outColor: NumberArray3 | Uint8Array): void;
|
|
319
|
+
readDepth(x: number, y: number, outDepth: NumberArray3 | Float32Array): void;
|
|
302
320
|
/**
|
|
303
|
-
*
|
|
304
|
-
* @
|
|
321
|
+
* Returns the distance from the active (screen) camera to the 3d-surface using the defined screen coordinates
|
|
322
|
+
* @public
|
|
323
|
+
* @param {Vec2 | IBaseInputState} px - Screen coordinates.
|
|
324
|
+
* @returns {number | undefined} -
|
|
305
325
|
*/
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
326
|
+
getDistanceFromPixel(px: Vec2 | IBaseInputState, camera?: Camera | null): number | undefined;
|
|
327
|
+
/**
|
|
328
|
+
* Returns 3d coordinates from screen coordinates
|
|
329
|
+
* @public
|
|
330
|
+
* @param {Vec2 | IBaseInputState} px - Screen coordinates.
|
|
331
|
+
* @returns {Vec3 | undefined} -
|
|
332
|
+
*/
|
|
333
|
+
getCartesianFromPixel(px: Vec2 | IBaseInputState): Vec3 | undefined;
|
|
314
334
|
/**
|
|
315
335
|
* Function starts renderer
|
|
316
336
|
* @public
|