@openglobus/og 0.22.2 → 0.24.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/Globe.d.ts +0 -1
- package/lib/@openglobus/js/Object3d.d.ts +20 -10
- package/lib/@openglobus/js/camera/Camera.d.ts +57 -15
- package/lib/@openglobus/js/camera/Frustum.d.ts +3 -0
- package/lib/@openglobus/js/camera/PlanetCamera.d.ts +13 -0
- package/lib/@openglobus/js/control/CameraLock.d.ts +38 -0
- package/lib/@openglobus/js/control/MouseNavigation.d.ts +62 -51
- package/lib/@openglobus/js/control/OldMouseNavigation.d.ts +64 -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 +3 -2
- package/lib/@openglobus/js/entity/Entity.d.ts +282 -19
- package/lib/@openglobus/js/entity/EntityCollection.d.ts +8 -9
- package/lib/@openglobus/js/entity/GeoObject.d.ts +135 -39
- 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/input/MouseHandler.d.ts +1 -0
- 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/Mat3.d.ts +1 -1
- package/lib/@openglobus/js/math/Mat4.d.ts +10 -1
- package/lib/@openglobus/js/math/Plane.d.ts +3 -1
- package/lib/@openglobus/js/math/Quat.d.ts +47 -33
- package/lib/@openglobus/js/math/Ray.d.ts +10 -14
- package/lib/@openglobus/js/math/Vec2.d.ts +22 -0
- 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 +63 -44
- package/lib/@openglobus/js/renderer/RendererEvents.d.ts +2 -0
- package/lib/@openglobus/js/scene/Planet.d.ts +15 -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 +22 -12
- 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.d.ts +0 -1
- package/lib/js/Globe.js +4 -2
- package/lib/js/Object3d.d.ts +20 -10
- package/lib/js/Object3d.js +124 -48
- package/lib/js/Popup.js +1 -1
- package/lib/js/camera/Camera.d.ts +57 -15
- package/lib/js/camera/Camera.js +109 -29
- package/lib/js/camera/Frustum.d.ts +3 -0
- package/lib/js/camera/Frustum.js +7 -0
- package/lib/js/camera/PlanetCamera.d.ts +13 -0
- package/lib/js/camera/PlanetCamera.js +52 -5
- 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 +38 -8
- package/lib/js/control/KeyboardNavigation.js +9 -9
- package/lib/js/control/MouseNavigation.d.ts +62 -51
- package/lib/js/control/MouseNavigation.js +361 -305
- package/lib/js/control/MouseWheelZoomControl.d.ts +0 -44
- package/lib/js/control/MouseWheelZoomControl.js +270 -181
- package/lib/js/control/OldMouseNavigation.d.ts +64 -0
- package/lib/js/control/OldMouseNavigation.js +368 -0
- package/lib/js/control/ScaleControl.js +11 -5
- package/lib/js/control/SimpleNavigation.d.ts +27 -10
- package/lib/js/control/SimpleNavigation.js +149 -49
- package/lib/js/control/Sun.js +6 -6
- package/lib/js/control/TouchNavigation.js +11 -8
- package/lib/js/control/elevationProfile/ElevationProfileScene.js +6 -5
- 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 +488 -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 +107 -0
- package/lib/js/control/geoObjectEditor/MovePlaneEntity.d.ts +7 -0
- package/lib/js/control/geoObjectEditor/MovePlaneEntity.js +31 -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 +3 -2
- package/lib/js/control/index.js +3 -2
- package/lib/js/control/timeline/TimelineControl.js +2 -0
- package/lib/js/control/visibleExtent/Segment.js +4 -4
- package/lib/js/entity/Entity.d.ts +282 -19
- package/lib/js/entity/Entity.js +497 -62
- package/lib/js/entity/EntityCollection.d.ts +8 -9
- package/lib/js/entity/EntityCollection.js +48 -45
- package/lib/js/entity/GeoObject.d.ts +135 -39
- package/lib/js/entity/GeoObject.js +150 -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 +347 -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/input/MouseHandler.d.ts +1 -0
- package/lib/js/input/MouseHandler.js +12 -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/Mat3.d.ts +1 -1
- package/lib/js/math/Mat3.js +1 -1
- package/lib/js/math/Mat4.d.ts +10 -1
- package/lib/js/math/Mat4.js +17 -1
- package/lib/js/math/Plane.d.ts +3 -1
- package/lib/js/math/Plane.js +11 -1
- package/lib/js/math/Quat.d.ts +47 -33
- package/lib/js/math/Quat.js +92 -90
- package/lib/js/math/Ray.d.ts +10 -14
- package/lib/js/math/Ray.js +56 -33
- package/lib/js/math/Vec2.d.ts +22 -0
- package/lib/js/math/Vec2.js +32 -0
- 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 +63 -44
- package/lib/js/renderer/Renderer.js +267 -266
- package/lib/js/renderer/RendererEvents.d.ts +2 -0
- package/lib/js/renderer/RendererEvents.js +5 -2
- package/lib/js/scene/Planet.d.ts +15 -7
- package/lib/js/scene/Planet.js +133 -90
- package/lib/js/scene/RenderNode.d.ts +10 -25
- package/lib/js/scene/RenderNode.js +70 -58
- package/lib/js/segment/Segment.js +4 -4
- 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/terrain/GlobusTerrain.js +2 -2
- 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 +22 -12
- package/lib/js/webgl/Handler.js +53 -34
- package/lib/js/webgl/Program.js +0 -8
- package/package.json +5 -3
- package/lib/@openglobus/js/control/EarthNavigation.d.ts +0 -50
- package/lib/@openglobus/js/control/MouseWheelZoomControl.d.ts +0 -44
- package/lib/js/control/EarthNavigation.d.ts +0 -50
- package/lib/js/control/EarthNavigation.js +0 -202
|
@@ -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,18 +290,14 @@ 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
|
|
@@ -299,19 +310,27 @@ declare class Renderer {
|
|
|
299
310
|
* Draw picking objects framebuffer.
|
|
300
311
|
* @private
|
|
301
312
|
*/
|
|
302
|
-
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;
|
|
303
320
|
/**
|
|
304
|
-
*
|
|
305
|
-
* @
|
|
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} -
|
|
306
325
|
*/
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
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;
|
|
315
334
|
/**
|
|
316
335
|
* Function starts renderer
|
|
317
336
|
* @public
|
|
@@ -8,6 +8,7 @@ import { Vec3 } from "../math/Vec3";
|
|
|
8
8
|
export type RendererEventsHandler = RendererEvents & EventsHandler<RendererEventsType>;
|
|
9
9
|
export declare function createRendererEvents(renderer: Renderer): RendererEvents;
|
|
10
10
|
export type RendererEventsType = [
|
|
11
|
+
"changerelativecenter",
|
|
11
12
|
"draw",
|
|
12
13
|
"drawtransparent",
|
|
13
14
|
"postdraw",
|
|
@@ -110,6 +111,7 @@ export interface IMouseState extends IBaseInputState {
|
|
|
110
111
|
wheelDelta: number;
|
|
111
112
|
/** JavaScript mouse system event message. */
|
|
112
113
|
sys: MouseEvent | null;
|
|
114
|
+
isTouchPad: boolean;
|
|
113
115
|
}
|
|
114
116
|
export interface ITouchState extends IBaseInputState {
|
|
115
117
|
/** Touch has ended right now.*/
|
|
@@ -20,8 +20,10 @@ import { Quat } from "../math/Quat";
|
|
|
20
20
|
import { QuadTreeStrategy } from "../quadTree/QuadTreeStrategy";
|
|
21
21
|
import { Ray } from "../math/Ray";
|
|
22
22
|
import { RenderNode } from "./RenderNode";
|
|
23
|
+
import { Sun } from "../control/Sun";
|
|
23
24
|
import { TerrainWorker } from "../utils/TerrainWorker";
|
|
24
25
|
import { Vec2, Vec3, NumberArray2, NumberArray3, NumberArray4 } from "../math/index";
|
|
26
|
+
import { Vector } from "../layer/Vector";
|
|
25
27
|
import { VectorTileCreator } from "../utils/VectorTileCreator";
|
|
26
28
|
import { WebGLBufferExt, WebGLTextureExt, IDefaultTextureParams } from "../webgl/Handler";
|
|
27
29
|
import { Program } from "../webgl/Program";
|
|
@@ -122,14 +124,15 @@ export declare class Planet extends RenderNode {
|
|
|
122
124
|
* @protected
|
|
123
125
|
* @type {Array.<Layer>}
|
|
124
126
|
*/
|
|
125
|
-
protected visibleVectorLayers:
|
|
127
|
+
protected visibleVectorLayers: Vector[];
|
|
128
|
+
protected _visibleVectorLayersByDepthOrder: Vector[][];
|
|
126
129
|
protected _visibleTileLayerSlices: Layer[][];
|
|
127
130
|
/**
|
|
128
131
|
* Vector layers visible nodes with collections.
|
|
129
132
|
* @protected
|
|
130
|
-
* @type {
|
|
133
|
+
* @type {EntityCollection[][]}
|
|
131
134
|
*/
|
|
132
|
-
protected
|
|
135
|
+
protected _visibleEntityCollections: EntityCollection[][];
|
|
133
136
|
/**
|
|
134
137
|
* There is only one base layer on the globe when layer.isBaseLayer is true.
|
|
135
138
|
* @public
|
|
@@ -184,6 +187,7 @@ export declare class Planet extends RenderNode {
|
|
|
184
187
|
_renderedNodesInFrustum: Node[][];
|
|
185
188
|
_fadingNodes: Map<number, Node>;
|
|
186
189
|
_fadingNodesInFrustum: Node[][];
|
|
190
|
+
protected _fadingOpaqueSegments: Segment[];
|
|
187
191
|
/**
|
|
188
192
|
* Layers activity lock.
|
|
189
193
|
* @public
|
|
@@ -308,6 +312,7 @@ export declare class Planet extends RenderNode {
|
|
|
308
312
|
get terrainReady(): boolean;
|
|
309
313
|
get maxGridSize(): number;
|
|
310
314
|
getNorthFrameRotation(cartesian: Vec3): Quat;
|
|
315
|
+
getFrameRotation(cartesian: Vec3): Quat;
|
|
311
316
|
set atmosphereMaxOpacity(opacity: number);
|
|
312
317
|
get atmosphereMaxOpacity(): number;
|
|
313
318
|
set atmosphereMinOpacity(opacity: number);
|
|
@@ -327,6 +332,7 @@ export declare class Planet extends RenderNode {
|
|
|
327
332
|
* @public
|
|
328
333
|
*/
|
|
329
334
|
getLayers(): Layer[];
|
|
335
|
+
get sun(): Sun | undefined;
|
|
330
336
|
get sunPos(): Vec3;
|
|
331
337
|
/**
|
|
332
338
|
* Add the given control to the renderer of the planet scene.
|
|
@@ -466,18 +472,16 @@ export declare class Planet extends RenderNode {
|
|
|
466
472
|
unlockQuadTree(): void;
|
|
467
473
|
protected _setUniformsNoAtmos(cam: PlanetCamera): Program;
|
|
468
474
|
protected _setUniformsAtmos(cam: PlanetCamera): Program;
|
|
469
|
-
protected _renderingFadingNodes: (nodes: Map<number, boolean>, sh: Program, currentNode: Node, sl: Layer[], sliceIndex: number, outTransparentSegments?: Segment[]) => void;
|
|
470
|
-
protected _renderingFadingNodesNoDepth: (nodes: Map<number, boolean>, sh: Program, currentNode: Node, sl: Layer[], sliceIndex: number) => void;
|
|
475
|
+
protected _renderingFadingNodes: (nodes: Map<number, boolean>, sh: Program, currentNode: Node, sl: Layer[], sliceIndex: number, outTransparentSegments?: Segment[], outOpaqueSegments?: Segment[]) => void;
|
|
476
|
+
protected _renderingFadingNodesNoDepth: (nodes: Map<number, boolean>, sh: Program, currentNode: Node, sl: Layer[], sliceIndex: number, outOpaqueSegments?: Segment[]) => void;
|
|
471
477
|
/**
|
|
472
478
|
* Drawing nodes
|
|
473
479
|
*/
|
|
474
480
|
protected _renderingScreenNodes(sh: Program, cam: PlanetCamera, renderedNodes: Node[]): void;
|
|
475
481
|
protected _renderingScreenNodesWithHeight(sh: Program, cam: PlanetCamera, renderedNodes: Node[]): void;
|
|
476
|
-
protected _renderDistanceFramebufferPASS(): void;
|
|
477
482
|
protected _renderColorPickingFramebufferPASS(): void;
|
|
478
483
|
protected _renderDepthFramebufferPASS(): void;
|
|
479
484
|
protected _collectVectorLayerCollections(): void;
|
|
480
|
-
protected _frustumEntityCollectionPickingCallback(): void;
|
|
481
485
|
/**
|
|
482
486
|
* Starts clear memory thread.
|
|
483
487
|
* @public
|
|
@@ -627,5 +631,9 @@ export declare class Planet extends RenderNode {
|
|
|
627
631
|
getHeightDefault(lonLat: LonLat): Promise<number>;
|
|
628
632
|
getHeightAboveELL(lonLat: LonLat): Promise<number>;
|
|
629
633
|
onremove(): void;
|
|
634
|
+
/**
|
|
635
|
+
* @todo: refactor with events or something better
|
|
636
|
+
*/
|
|
637
|
+
stopDragging(): void;
|
|
630
638
|
}
|
|
631
639
|
export {};
|
|
@@ -2,6 +2,8 @@ import { BaseNode } from "./BaseNode";
|
|
|
2
2
|
import { Renderer } from "../renderer/Renderer";
|
|
3
3
|
import { LightSource } from "../light/LightSource";
|
|
4
4
|
import { EntityCollection } from "../entity/EntityCollection";
|
|
5
|
+
import { Quat } from "../math/Quat";
|
|
6
|
+
import { Vec3 } from "../math/Vec3";
|
|
5
7
|
/**
|
|
6
8
|
* Render node is a logical part of a render mechanism. Represents scene rendering.
|
|
7
9
|
* For example one scene node for rendering the Earth, another one for rendering the Moon, another node for rendering stars etc.
|
|
@@ -37,19 +39,19 @@ declare class RenderNode extends BaseNode {
|
|
|
37
39
|
* @public
|
|
38
40
|
* @type {Array.<LightSource>}
|
|
39
41
|
*/
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
_lightsParamsv: number[];
|
|
44
|
-
_lightsParamsf: number[];
|
|
42
|
+
_lightPosition: Float32Array;
|
|
43
|
+
_lightParams: Float32Array;
|
|
44
|
+
_lightShininess: number;
|
|
45
45
|
/**
|
|
46
46
|
* Entity collection array.
|
|
47
47
|
* @public
|
|
48
48
|
* @type {Array.<EntityCollection>}
|
|
49
49
|
*/
|
|
50
50
|
entityCollections: EntityCollection[];
|
|
51
|
+
protected _entityCollectionsByDepthOrder: EntityCollection[][];
|
|
51
52
|
protected _pickingId: number;
|
|
52
53
|
constructor(name?: string);
|
|
54
|
+
getFrameRotation(cartesian: Vec3): Quat;
|
|
53
55
|
/**
|
|
54
56
|
* Adds node to the current hierarchy.
|
|
55
57
|
* @public
|
|
@@ -73,13 +75,14 @@ declare class RenderNode extends BaseNode {
|
|
|
73
75
|
* @param {boolean} [isHidden] - If it's true that this collection has specific rendering.
|
|
74
76
|
* @returns {RenderNode} -
|
|
75
77
|
*/
|
|
76
|
-
addEntityCollection(entityCollection: EntityCollection, isHidden?: boolean):
|
|
78
|
+
addEntityCollection(entityCollection: EntityCollection, isHidden?: boolean): void;
|
|
77
79
|
/**
|
|
78
80
|
* Removes entity collection.
|
|
79
81
|
* @public
|
|
80
82
|
* @param {EntityCollection} entityCollection - Entity collection for remove.
|
|
81
83
|
*/
|
|
82
84
|
removeEntityCollection(entityCollection: EntityCollection): void;
|
|
85
|
+
updateEntityCollectionsDepthOrder(): void;
|
|
83
86
|
/**
|
|
84
87
|
* Adds point light source.
|
|
85
88
|
* @public
|
|
@@ -87,19 +90,6 @@ declare class RenderNode extends BaseNode {
|
|
|
87
90
|
* @returns {RenderNode}
|
|
88
91
|
*/
|
|
89
92
|
addLight(light: LightSource): RenderNode;
|
|
90
|
-
/**
|
|
91
|
-
* Gets light object by its name.
|
|
92
|
-
* @public
|
|
93
|
-
* @param {string} name - Point light name.
|
|
94
|
-
* @returns {LightSource}
|
|
95
|
-
*/
|
|
96
|
-
getLightByName(name: string): LightSource | undefined;
|
|
97
|
-
/**
|
|
98
|
-
* Removes light source.
|
|
99
|
-
* @public
|
|
100
|
-
* @param {LightSource} light - Light source object.
|
|
101
|
-
*/
|
|
102
|
-
removeLight(light: LightSource): void;
|
|
103
93
|
/**
|
|
104
94
|
* Calls render frame node's callback. Used in renderer.
|
|
105
95
|
* @public
|
|
@@ -128,17 +118,12 @@ declare class RenderNode extends BaseNode {
|
|
|
128
118
|
* @param {Number} mode - Draw mode, such as gl.TRIANGLES, gl.TRIANGLE_STRIP, gl.LINES etc.
|
|
129
119
|
*/
|
|
130
120
|
setDrawMode(mode: number): void;
|
|
131
|
-
/**
|
|
132
|
-
* IMPORTANT: This function have to be called manually in each render node frame callback, before drawing scene geometry.
|
|
133
|
-
* @public
|
|
134
|
-
*/
|
|
135
|
-
transformLights(): void;
|
|
136
121
|
updateBillboardsTexCoords(): void;
|
|
137
122
|
frame(): void;
|
|
138
123
|
preFrame(): void;
|
|
139
124
|
protected _preDrawNodes(): void;
|
|
140
125
|
protected _drawNodes(): void;
|
|
141
|
-
drawEntityCollections(ec: EntityCollection[]): void;
|
|
126
|
+
drawEntityCollections(ec: EntityCollection[], depthOrder?: number): void;
|
|
142
127
|
/**
|
|
143
128
|
* Draw entity collections picking frame.
|
|
144
129
|
* @public
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AtmosphereParameters } from "./atmos";
|
|
2
2
|
import { Program } from "../webgl/Program";
|
|
3
|
+
export declare const ENCODE24 = "vec3 encode24(highp float f) {\n float F = abs(f);\n float s = step( 0.0, -f );\n float e = floor( log2(F) );\n float m = exp2(- e) * F;\n e = floor( log2(F) + 127.0 ) + floor( log2(m) );\n return vec3(\n ( 128.0 * s + floor( e * exp2(-1.0) ) ) / 255.0,\n ( 128.0 * mod( e, 2.0 ) + mod( floor( m * 128.0 ), 128.0 ) ) / 255.0,\n floor( mod( floor( m * exp2( 23.0 - 8.0) ), exp2(8.0) ) ) / 255.0);\n }";
|
|
3
4
|
export declare function drawnode_screen_nl(): Program;
|
|
4
5
|
export declare function drawnode_screen_wl_webgl1NoAtmos(): Program;
|
|
5
6
|
export declare function drawnode_screen_wl_webgl2NoAtmos(): Program;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const UTILS = "\n float getLerpValue(in float min, in float max, in float between)\n {\n return (clamp(between, min, max) - min) / (max - min);\n }\n \n vec3 aces(vec3 color) \n {\n float a = 2.51;\n float b = 0.03;\n float c = 2.43;\n float d = 0.59;\n float e = 0.14;\n return clamp((color * (a * color + b)) / (color * (c * color + d ) + e), 0.0, 1.0);\n }\n \n bool intersectSphere(vec3 rayOrigin, vec3 rayDirection, float radius, inout float t1, inout float t2) \n {\n float b = dot(rayDirection, rayOrigin);\n float c = dot(rayOrigin, rayOrigin) - radius * radius;\n float d = b * b - c;\n if (d < 0.0) {\n return false;\n }\n t1 = -b - sqrt(d);\n t2 = -b + sqrt(d);\n return true;\n }\n \n bool intersectSphere(vec3 rayOrigin, vec3 rayDirection, float radius, inout float t) \n {\n float b = dot(rayDirection, rayOrigin);\n float c = dot(rayOrigin, rayOrigin) - radius * radius;\n float d = b * b - c;\n if (d < 0.0) {\n return false;\n }\n t = -b - sqrt(d);\n return true;\n }\n \n bool intersectEllipsoid( in vec3 ro, in vec3 rd, in vec3 ra, inout float t )\n {\n vec3 ocn = ro/ra;\n vec3 rdn = rd/ra;\n float a = dot( rdn, rdn );\n float b = dot( ocn, rdn );\n float c = dot( ocn, ocn );\n float h = b*b - a*(c-1.0);\n \n if (h < 0.0) \n { \n return false; \n }\n \n t = (-b-sqrt(h))/a;\n \n return true;\n }\n \n bool intersectEllipsoid( in vec3 ro, in vec3 rd, in vec3 ra, inout float t1, inout float t2)\n {\n vec3 ocn = ro/ra;\n vec3 rdn = rd/ra;\n float a = dot( rdn, rdn );\n float b = dot( ocn, rdn );\n float c = dot( ocn, ocn );\n float h = b*b - a*(c-1.0);\n \n if (h < 0.0) \n { \n return false; \n }\n \n h = sqrt(h);\n t1 = (-b-h)/a;\n t2 = (-b+h)/a;\n \n return true;\n }\n \n vec3 normalEllipsoid( in vec3 pos, in vec3 ra )\n {\n return normalize( pos/(ra*ra) );\n }\n";
|
|
1
|
+
export declare const UTILS = "\n float getLerpValue(in float min, in float max, in float between)\n {\n return (clamp(between, min, max) - min) / (max - min);\n }\n \n vec3 aces(vec3 color) \n {\n float a = 2.51;\n float b = 0.03;\n float c = 2.43;\n float d = 0.59;\n float e = 0.14;\n return clamp((color * (a * color + b)) / (color * (c * color + d ) + e), 0.0, 1.0);\n }\n \n bool intersectSphere(vec3 rayOrigin, vec3 rayDirection, float radius, inout float t1, inout float t2) \n {\n float b = dot(rayDirection, rayOrigin);\n float c = dot(rayOrigin, rayOrigin) - radius * radius;\n float d = b * b - c;\n if (d < 0.0) {\n return false;\n }\n t1 = -b - sqrt(d);\n t2 = -b + sqrt(d);\n return true;\n }\n \n bool intersectSphere(vec3 rayOrigin, vec3 rayDirection, float radius, inout float t) \n {\n float b = dot(rayDirection, rayOrigin);\n float c = dot(rayOrigin, rayOrigin) - radius * radius;\n float d = b * b - c;\n if (d < 0.0) {\n return false;\n }\n t = -b - sqrt(d);\n return true;\n }\n \n float intersectSphere( vec3 ro, vec3 rd, vec4 sph )\n {\n vec3 oc = ro - sph.xyz;\n float b = dot( oc, rd );\n float c = dot( oc, oc ) - sph.w*sph.w;\n float h = b*b - c;\n if( h<0.0 ) return -1.0;\n h = sqrt( h );\n return -b - h;\n }\n \n bool intersectEllipsoid( in vec3 ro, in vec3 rd, in vec3 ra, inout float t )\n {\n vec3 ocn = ro/ra;\n vec3 rdn = rd/ra;\n float a = dot( rdn, rdn );\n float b = dot( ocn, rdn );\n float c = dot( ocn, ocn );\n float h = b*b - a*(c-1.0);\n \n if (h < 0.0) \n { \n return false; \n }\n \n t = (-b-sqrt(h))/a;\n \n return true;\n }\n \n bool intersectEllipsoid( in vec3 ro, in vec3 rd, in vec3 ra, inout float t1, inout float t2)\n {\n vec3 ocn = ro/ra;\n vec3 rdn = rd/ra;\n float a = dot( rdn, rdn );\n float b = dot( ocn, rdn );\n float c = dot( ocn, ocn );\n float h = b*b - a*(c-1.0);\n \n if (h < 0.0) \n { \n return false; \n }\n \n h = sqrt(h);\n t1 = (-b-h)/a;\n t2 = (-b+h)/a;\n \n return true;\n }\n \n vec3 normalEllipsoid( in vec3 pos, in vec3 ra )\n {\n return normalize( pos/(ra*ra) );\n }\n";
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { EventsHandler } from "../Events";
|
|
2
|
+
import { IViewParams, View, ViewEventsList } from './View';
|
|
3
|
+
interface ICheckboxParams extends IViewParams {
|
|
4
|
+
label?: string;
|
|
5
|
+
checked?: boolean;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
}
|
|
8
|
+
type CheckboxEventsList = ["change"];
|
|
9
|
+
declare class Checkbox extends View<null> {
|
|
10
|
+
events: EventsHandler<CheckboxEventsList> & EventsHandler<ViewEventsList>;
|
|
11
|
+
protected $label: HTMLElement | null;
|
|
12
|
+
protected $input: HTMLInputElement | null;
|
|
13
|
+
protected _checked: boolean;
|
|
14
|
+
protected _disabled: boolean;
|
|
15
|
+
constructor(options?: ICheckboxParams);
|
|
16
|
+
set disabled(disabled: boolean);
|
|
17
|
+
protected _updateDisabled(): void;
|
|
18
|
+
get disabled(): boolean;
|
|
19
|
+
render(params: any): this;
|
|
20
|
+
protected _onResize: () => void;
|
|
21
|
+
set checked(isChecked: boolean);
|
|
22
|
+
get checked(): boolean;
|
|
23
|
+
protected _initEvents(): void;
|
|
24
|
+
protected _clearEvents(): void;
|
|
25
|
+
protected _onMouseWheel: (e: WheelEvent) => void;
|
|
26
|
+
protected _onMouseWheelFF: (e: WheelEvent) => void;
|
|
27
|
+
protected _onClick: (e: Event) => void;
|
|
28
|
+
remove(): void;
|
|
29
|
+
set visibility(visibility: boolean);
|
|
30
|
+
}
|
|
31
|
+
export { Checkbox };
|
|
@@ -8,6 +8,7 @@ export interface IDialogParams extends IViewParams {
|
|
|
8
8
|
width?: number;
|
|
9
9
|
height?: number;
|
|
10
10
|
left?: number;
|
|
11
|
+
right?: number;
|
|
11
12
|
top?: number;
|
|
12
13
|
minHeight?: number;
|
|
13
14
|
maxHeight?: number;
|
|
@@ -28,6 +29,7 @@ declare class Dialog<M> extends View<M> {
|
|
|
28
29
|
protected _startPosY: number;
|
|
29
30
|
protected _closeBtn: Button;
|
|
30
31
|
protected _visibility: boolean;
|
|
32
|
+
protected _right: number | null;
|
|
31
33
|
constructor(options?: IDialogParams);
|
|
32
34
|
setContainer(htmlStr: string): void;
|
|
33
35
|
get container(): HTMLElement | null;
|
|
@@ -39,6 +41,7 @@ declare class Dialog<M> extends View<M> {
|
|
|
39
41
|
hide(): void;
|
|
40
42
|
close(): void;
|
|
41
43
|
setVisibility(visibility: boolean): void;
|
|
44
|
+
getVisibility(): boolean;
|
|
42
45
|
protected _initButtons(): void;
|
|
43
46
|
protected _initEvents(): void;
|
|
44
47
|
protected _onCloseBtnClick: () => void;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { EventsHandler } from "../Events";
|
|
2
|
+
import { IViewParams, View, ViewEventsList } from './View';
|
|
3
|
+
interface IInputParams extends IViewParams {
|
|
4
|
+
label?: string;
|
|
5
|
+
value?: string;
|
|
6
|
+
min?: number;
|
|
7
|
+
max?: number;
|
|
8
|
+
type?: string;
|
|
9
|
+
maxFixed?: number;
|
|
10
|
+
}
|
|
11
|
+
type InputEventsList = ["change"];
|
|
12
|
+
declare class Input extends View<null> {
|
|
13
|
+
events: EventsHandler<InputEventsList> & EventsHandler<ViewEventsList>;
|
|
14
|
+
protected _value: string;
|
|
15
|
+
protected $label: HTMLElement | null;
|
|
16
|
+
protected $input: HTMLInputElement | null;
|
|
17
|
+
protected _maxFixed: number;
|
|
18
|
+
constructor(options?: IInputParams);
|
|
19
|
+
render(params: any): this;
|
|
20
|
+
protected _onResize: () => void;
|
|
21
|
+
set value(val: string | number);
|
|
22
|
+
protected _setValue(val: string | number): void;
|
|
23
|
+
get value(): string;
|
|
24
|
+
protected _initEvents(): void;
|
|
25
|
+
protected _clearEvents(): void;
|
|
26
|
+
protected _onMouseWheel: (e: WheelEvent) => void;
|
|
27
|
+
protected _onMouseWheelFF: (e: WheelEvent) => void;
|
|
28
|
+
protected _onInput: (e: Event) => void;
|
|
29
|
+
remove(): void;
|
|
30
|
+
set visibility(visibility: boolean);
|
|
31
|
+
}
|
|
32
|
+
export { Input };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EventsHandler } from '../Events';
|
|
1
|
+
import { EventCallback, EventsHandler } from '../Events';
|
|
2
2
|
export interface IViewParams {
|
|
3
3
|
model?: any;
|
|
4
4
|
template?: string;
|
|
@@ -16,6 +16,8 @@ declare class View<M> {
|
|
|
16
16
|
el: HTMLElement | null;
|
|
17
17
|
protected _classList: string[];
|
|
18
18
|
constructor(options?: IViewParams);
|
|
19
|
+
on(name: string, callback: EventCallback, sender?: any, priority?: number): void;
|
|
20
|
+
off(name: string, callback: EventCallback): void;
|
|
19
21
|
static getHTML(template: string, params: any): string;
|
|
20
22
|
static parseHTML(htmlStr: string): HTMLElement[];
|
|
21
23
|
static insertAfter(newNodes: HTMLElement | HTMLElement[], referenceNode: Node): HTMLElement[];
|
|
@@ -1,24 +1,56 @@
|
|
|
1
|
-
|
|
1
|
+
import { NumberArray3 } from "../math/Vec3";
|
|
2
|
+
export interface IObjGeometryData {
|
|
2
3
|
vertices: number[];
|
|
3
|
-
|
|
4
|
+
texCoords: number[];
|
|
4
5
|
normals: number[];
|
|
5
6
|
}
|
|
6
|
-
interface IObjGeometry {
|
|
7
|
+
export interface IObjGeometry {
|
|
7
8
|
object: string;
|
|
8
9
|
groups: string[];
|
|
9
10
|
material: string;
|
|
10
11
|
data: IObjGeometryData;
|
|
11
12
|
}
|
|
12
|
-
interface
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
export interface IObjMaterial {
|
|
14
|
+
ambient?: NumberArray3;
|
|
15
|
+
diffuse?: NumberArray3;
|
|
16
|
+
specular?: NumberArray3;
|
|
17
|
+
shininess?: number;
|
|
18
|
+
color?: NumberArray3;
|
|
19
|
+
opacity?: number;
|
|
20
|
+
illum?: number;
|
|
21
|
+
colorTexture?: string;
|
|
22
|
+
normalTexture?: string;
|
|
23
|
+
metallicRoughnessTexture?: string;
|
|
15
24
|
}
|
|
16
|
-
|
|
25
|
+
type MaterialMap = Record<string, IObjMaterial>;
|
|
26
|
+
export interface IObj {
|
|
17
27
|
geometries: IObjGeometry[];
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
export declare
|
|
28
|
+
materials: MaterialMap;
|
|
29
|
+
}
|
|
30
|
+
export declare class Obj {
|
|
31
|
+
objPositions: number[][];
|
|
32
|
+
objTexcoords: number[][];
|
|
33
|
+
objNormals: number[][];
|
|
34
|
+
objVertexData: [number[][], number[][], number[][]];
|
|
35
|
+
vertexData: [number[], number[], number[]];
|
|
36
|
+
_materialLibs: string[];
|
|
21
37
|
geometries: IObjGeometry[];
|
|
22
|
-
|
|
23
|
-
|
|
38
|
+
geometry: IObjGeometry | null;
|
|
39
|
+
materials: MaterialMap;
|
|
40
|
+
material: IObjMaterial;
|
|
41
|
+
object: string;
|
|
42
|
+
groups: string[];
|
|
43
|
+
keywords: Record<string, (parts: string[], unparsedArgs: string) => void>;
|
|
44
|
+
protected _path: string;
|
|
45
|
+
constructor();
|
|
46
|
+
newGeometry(): void;
|
|
47
|
+
setGeometry(): void;
|
|
48
|
+
addVertex(vert: string): void;
|
|
49
|
+
protected _innerParser(text: string, fileName: string): void;
|
|
50
|
+
get data(): IObj;
|
|
51
|
+
load(src: string): Promise<IObj>;
|
|
52
|
+
protected _readAndParse(file: File): Promise<void>;
|
|
53
|
+
readFile(objFile: File, mtlFile?: File): Promise<IObj>;
|
|
54
|
+
protected _cleanupGeometryArrays(): void;
|
|
55
|
+
}
|
|
24
56
|
export {};
|
|
@@ -7,6 +7,7 @@ import { Vec2 } from "../math/Vec2";
|
|
|
7
7
|
import { NumberArray2 } from "../math/Vec2";
|
|
8
8
|
import { NumberArray3, Vec3 } from "../math/Vec3";
|
|
9
9
|
import { NumberArray4, Vec4 } from "../math/Vec4";
|
|
10
|
+
import { Ellipsoid } from "../ellipsoid/Ellipsoid";
|
|
10
11
|
export declare function getDefault(param?: any, def?: any): boolean;
|
|
11
12
|
export declare function isEmpty(v: any): boolean;
|
|
12
13
|
/**
|
|
@@ -261,3 +262,24 @@ export declare function isImageLoaded(image: HTMLImageElement): boolean;
|
|
|
261
262
|
export declare function distanceFormat(v: number): string;
|
|
262
263
|
export declare function distanceFormatExt(v: number): [string, string];
|
|
263
264
|
export declare function getUrlParam(paramName: string): number | undefined;
|
|
265
|
+
/**
|
|
266
|
+
*
|
|
267
|
+
* @param x
|
|
268
|
+
* @param y
|
|
269
|
+
* @param z
|
|
270
|
+
* @param imageSize
|
|
271
|
+
* @param ellipsoid
|
|
272
|
+
*
|
|
273
|
+
* console.log(1, getTileImageResolution(0, 0, 1));
|
|
274
|
+
* console.log(7, getTileImageResolution(66, 44, 7));
|
|
275
|
+
* console.log(10, getTileImageResolution(536, 358, 10));
|
|
276
|
+
* console.log(12, getTileImageResolution(2149, 1446, 12));
|
|
277
|
+
* console.log(13, getTileImageResolution(4301, 2892, 13));
|
|
278
|
+
* console.log(14, getTileImageResolution(8582, 5736, 14));
|
|
279
|
+
* console.log(15, getTileImageResolution(17205, 11569, 15));
|
|
280
|
+
* console.log(16, getTileImageResolution(34419, 23138, 16));
|
|
281
|
+
* console.log(17, getTileImageResolution(68661, 45892, 17));
|
|
282
|
+
* console.log(18, getTileImageResolution(137650, 92555, 18));
|
|
283
|
+
*/
|
|
284
|
+
export declare function getTileImageResolution(x: number, y: number, z: number, imageSize?: number, ellipsoid?: Ellipsoid): number[];
|
|
285
|
+
export declare function toFixedMax(value: number, maxFixed?: number): string;
|