@openglobus/og 0.11.8 → 0.12.4
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 +2 -0
- package/dist/@openglobus/og.css +1 -0
- package/dist/@openglobus/og.esm.js +21 -0
- package/dist/@openglobus/og.esm.js.map +1 -0
- package/dist/@openglobus/og.umd.js +21 -0
- package/dist/@openglobus/og.umd.js.map +1 -0
- package/package.json +11 -11
- package/src/og/Globe.js +18 -6
- package/src/og/camera/Camera.js +70 -79
- package/src/og/camera/PlanetCamera.js +25 -30
- package/src/og/control/DebugInfo.js +2 -2
- package/src/og/control/EarthNavigation.js +26 -17
- package/src/og/control/MouseNavigation.js +11 -13
- package/src/og/control/MouseWheelZoomControl.js +5 -5
- package/src/og/control/Sun.js +3 -3
- package/src/og/entity/Entity.js +742 -742
- package/src/og/entity/GeoObjectHandler.js +138 -134
- package/src/og/entity/LabelHandler.js +2 -1
- package/src/og/layer/CanvasTiles.js +8 -11
- package/src/og/layer/KML.js +19 -12
- package/src/og/layer/Layer.js +9 -2
- package/src/og/layer/XYZ.js +27 -28
- package/src/og/math/Vec3.js +18 -2
- package/src/og/quadTree/Node.js +48 -93
- package/src/og/quadTree/quadTree.js +1 -1
- package/src/og/renderer/Renderer.js +3 -5
- package/src/og/scene/Planet.js +147 -127
- package/src/og/segment/Segment.js +63 -136
- package/src/og/shaders/drawnode.js +132 -221
- package/src/og/shaders/geoObject.js +15 -6
- package/src/og/terrain/EmptyTerrain.js +3 -2
- package/src/og/terrain/GlobusTerrain.js +2 -0
- package/src/og/utils/Loader.js +1 -1
- package/src/og/utils/PlainSegmentWorker.js +0 -13
- package/src/og/webgl/Handler.js +13 -9
- package/types/Clock.d.ts +94 -0
- package/types/Deferred.d.ts +6 -0
- package/types/Events.d.ts +77 -0
- package/types/Extent.d.ts +166 -0
- package/types/Globe.d.ts +85 -0
- package/types/ImageCanvas.d.ts +123 -0
- package/types/Lock.d.ts +12 -0
- package/types/LonLat.d.ts +108 -0
- package/types/Popup.d.ts +42 -0
- package/types/QueueArray.d.ts +19 -0
- package/types/Rectangle.d.ts +80 -0
- package/types/Stack.d.ts +19 -0
- package/types/ajax.d.ts +24 -0
- package/types/arial.d.ts +48 -0
- package/types/astro/astro.d.ts +38 -0
- package/types/astro/earth.d.ts +7 -0
- package/types/astro/jd.d.ts +254 -0
- package/types/bv/Box.d.ts +30 -0
- package/types/bv/Sphere.d.ts +38 -0
- package/types/bv/index.d.ts +3 -0
- package/types/camera/Camera.d.ts +312 -0
- package/types/camera/Frustum.d.ts +133 -0
- package/types/camera/PlanetCamera.d.ts +219 -0
- package/types/camera/index.d.ts +3 -0
- package/types/cons.d.ts +40 -0
- package/types/control/CompassButton.d.ts +17 -0
- package/types/control/Control.d.ts +104 -0
- package/types/control/DebugInfo.d.ts +15 -0
- package/types/control/EarthCoordinates.d.ts +47 -0
- package/types/control/EarthNavigation.d.ts +43 -0
- package/types/control/GeoImageDragControl.d.ts +6 -0
- package/types/control/KeyboardNavigation.d.ts +21 -0
- package/types/control/LayerSwitcher.d.ts +21 -0
- package/types/control/Lighting.d.ts +16 -0
- package/types/control/MouseNavigation.d.ts +48 -0
- package/types/control/MouseWheelZoomControl.d.ts +45 -0
- package/types/control/ScaleControl.d.ts +22 -0
- package/types/control/ShowFps.d.ts +11 -0
- package/types/control/SimpleNavigation.d.ts +25 -0
- package/types/control/Sun.d.ts +50 -0
- package/types/control/ToggleWireframe.d.ts +12 -0
- package/types/control/TouchNavigation.d.ts +48 -0
- package/types/control/ZoomControl.d.ts +27 -0
- package/types/control/index.d.ts +18 -0
- package/types/ellipsoid/Ellipsoid.d.ts +146 -0
- package/types/ellipsoid/index.d.ts +3 -0
- package/types/ellipsoid/wgs84.d.ts +6 -0
- package/types/entity/BaseBillboard.d.ts +215 -0
- package/types/entity/Billboard.d.ts +94 -0
- package/types/entity/BillboardHandler.d.ts +79 -0
- package/types/entity/Entity.d.ts +348 -0
- package/types/entity/EntityCollection.d.ts +317 -0
- package/types/entity/GeoObject.d.ts +111 -0
- package/types/entity/GeoObjectHandler.d.ts +81 -0
- package/types/entity/Geometry.d.ts +74 -0
- package/types/entity/GeometryHandler.d.ts +76 -0
- package/types/entity/Label.d.ts +189 -0
- package/types/entity/LabelHandler.d.ts +31 -0
- package/types/entity/LabelWorker.d.ts +11 -0
- package/types/entity/PointCloud.d.ts +174 -0
- package/types/entity/PointCloudHandler.d.ts +38 -0
- package/types/entity/Polyline.d.ts +306 -0
- package/types/entity/PolylineHandler.d.ts +18 -0
- package/types/entity/Ray.d.ts +124 -0
- package/types/entity/RayHandler.d.ts +67 -0
- package/types/entity/ShapeHandler.d.ts +22 -0
- package/types/entity/Strip.d.ts +119 -0
- package/types/entity/StripHandler.d.ts +38 -0
- package/types/entity/index.d.ts +8 -0
- package/types/index.core.d.ts +65 -0
- package/types/index.d.ts +45 -0
- package/types/index.webgl.d.ts +7 -0
- package/types/input/KeyboardHandler.d.ts +10 -0
- package/types/input/MouseHandler.d.ts +5 -0
- package/types/input/TouchHandler.d.ts +5 -0
- package/types/input/input.d.ts +34 -0
- package/types/layer/BaseGeoImage.d.ts +94 -0
- package/types/layer/CanvasTiles.d.ts +67 -0
- package/types/layer/GeoImage.d.ts +52 -0
- package/types/layer/GeoTexture2d.d.ts +8 -0
- package/types/layer/GeoVideo.d.ts +55 -0
- package/types/layer/KML.d.ts +68 -0
- package/types/layer/Layer.d.ts +311 -0
- package/types/layer/Material.d.ts +45 -0
- package/types/layer/Vector.d.ts +208 -0
- package/types/layer/WMS.d.ts +61 -0
- package/types/layer/XYZ.d.ts +119 -0
- package/types/layer/index.d.ts +10 -0
- package/types/light/LightSource.d.ts +178 -0
- package/types/math/Line2.d.ts +11 -0
- package/types/math/Line3.d.ts +10 -0
- package/types/math/Mat3.d.ts +65 -0
- package/types/math/Mat4.d.ts +176 -0
- package/types/math/Plane.d.ts +18 -0
- package/types/math/Quat.d.ts +379 -0
- package/types/math/Ray.d.ts +82 -0
- package/types/math/Vec2.d.ts +309 -0
- package/types/math/Vec3.d.ts +467 -0
- package/types/math/Vec4.d.ts +162 -0
- package/types/math/coder.d.ts +43 -0
- package/types/math/index.d.ts +11 -0
- package/types/math.d.ts +261 -0
- package/types/mercator.d.ts +92 -0
- package/types/proj/EPSG3857.d.ts +6 -0
- package/types/proj/EPSG4326.d.ts +6 -0
- package/types/proj/Proj.d.ts +42 -0
- package/types/quadTree/EntityCollectionNode.d.ts +34 -0
- package/types/quadTree/Node.d.ts +60 -0
- package/types/quadTree/quadTree.d.ts +40 -0
- package/types/renderer/Renderer.d.ts +290 -0
- package/types/renderer/RendererEvents.d.ts +237 -0
- package/types/res/images.d.ts +3 -0
- package/types/scene/Axes.d.ts +11 -0
- package/types/scene/BaseNode.d.ts +60 -0
- package/types/scene/Planet.d.ts +576 -0
- package/types/scene/RenderNode.d.ts +142 -0
- package/types/scene/SkyBox.d.ts +10 -0
- package/types/scene/index.d.ts +4 -0
- package/types/segment/Segment.d.ts +275 -0
- package/types/segment/SegmentLonLat.d.ts +17 -0
- package/types/segment/Slice.d.ts +10 -0
- package/types/segment/segmentHelper.d.ts +13 -0
- package/types/shaders/billboard.d.ts +3 -0
- package/types/shaders/depth.d.ts +2 -0
- package/types/shaders/drawnode.d.ts +7 -0
- package/types/shaders/geoObject.d.ts +3 -0
- package/types/shaders/label.d.ts +4 -0
- package/types/shaders/pointCloud.d.ts +2 -0
- package/types/shaders/polyline.d.ts +3 -0
- package/types/shaders/ray.d.ts +2 -0
- package/types/shaders/screenFrame.d.ts +2 -0
- package/types/shaders/shape.d.ts +4 -0
- package/types/shaders/skybox.d.ts +2 -0
- package/types/shaders/toneMapping.d.ts +2 -0
- package/types/shapes/BaseShape.d.ts +250 -0
- package/types/shapes/Sphere.d.ts +41 -0
- package/types/terrain/BilTerrain.d.ts +7 -0
- package/types/terrain/EmptyTerrain.d.ts +73 -0
- package/types/terrain/Geoid.d.ts +26 -0
- package/types/terrain/GlobusTerrain.d.ts +116 -0
- package/types/terrain/MapboxTerrain.d.ts +7 -0
- package/types/terrain/index.d.ts +5 -0
- package/types/utils/FontAtlas.d.ts +15 -0
- package/types/utils/GeoImageCreator.d.ts +30 -0
- package/types/utils/ImagesCacheManager.d.ts +10 -0
- package/types/utils/Loader.d.ts +25 -0
- package/types/utils/NormalMapCreator.d.ts +39 -0
- package/types/utils/PlainSegmentWorker.d.ts +10 -0
- package/types/utils/TerrainWorker.d.ts +9 -0
- package/types/utils/TextureAtlas.d.ts +111 -0
- package/types/utils/VectorTileCreator.d.ts +16 -0
- package/types/utils/colorTable.d.ts +143 -0
- package/types/utils/earcut.d.ts +6 -0
- package/types/utils/shared.d.ts +231 -0
- package/types/webgl/Framebuffer.d.ts +135 -0
- package/types/webgl/Handler.d.ts +417 -0
- package/types/webgl/Multisample.d.ts +89 -0
- package/types/webgl/Program.d.ts +161 -0
- package/types/webgl/ProgramController.d.ts +89 -0
- package/types/webgl/callbacks.d.ts +1 -0
- package/types/webgl/index.d.ts +6 -0
- package/types/webgl/types.d.ts +2 -0
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Represents high level WebGL context interface that starts WebGL handler working in real time.
|
|
3
|
+
* @class
|
|
4
|
+
* @param {Handler} handler - WebGL handler context.
|
|
5
|
+
* @param {Object} [params] - Renderer parameters:
|
|
6
|
+
* @fires og.RendererEvents#draw
|
|
7
|
+
* @fires og.RendererEvents#resize
|
|
8
|
+
* @fires og.RendererEvents#mousemove
|
|
9
|
+
* @fires og.RendererEvents#mousestop
|
|
10
|
+
* @fires og.RendererEvents#lclick
|
|
11
|
+
* @fires og.RendererEvents#rclick
|
|
12
|
+
* @fires og.RendererEvents#mclick
|
|
13
|
+
* @fires og.RendererEvents#ldblclick
|
|
14
|
+
* @fires og.RendererEvents#rdblclick
|
|
15
|
+
* @fires og.RendererEvents#mdblclick
|
|
16
|
+
* @fires og.RendererEvents#lup
|
|
17
|
+
* @fires og.RendererEvents#rup
|
|
18
|
+
* @fires og.RendererEvents#mup
|
|
19
|
+
* @fires og.RendererEvents#ldown
|
|
20
|
+
* @fires og.RendererEvents#rdown
|
|
21
|
+
* @fires og.RendererEvents#mdown
|
|
22
|
+
* @fires og.RendererEvents#lhold
|
|
23
|
+
* @fires og.RendererEvents#rhold
|
|
24
|
+
* @fires og.RendererEvents#mhold
|
|
25
|
+
* @fires og.RendererEvents#mousewheel
|
|
26
|
+
* @fires og.RendererEvents#touchstart
|
|
27
|
+
* @fires og.RendererEvents#touchend
|
|
28
|
+
* @fires og.RendererEvents#touchcancel
|
|
29
|
+
* @fires og.RendererEvents#touchmove
|
|
30
|
+
* @fires og.RendererEvents#doubletouch
|
|
31
|
+
* @fires og.RendererEvents#touchleave
|
|
32
|
+
* @fires og.RendererEvents#touchenter
|
|
33
|
+
*/
|
|
34
|
+
export class Renderer {
|
|
35
|
+
constructor(handler: any, params: any);
|
|
36
|
+
/**
|
|
37
|
+
* Div element with WebGL canvas.
|
|
38
|
+
* @public
|
|
39
|
+
* @type {object}
|
|
40
|
+
*/
|
|
41
|
+
public div: object;
|
|
42
|
+
/**
|
|
43
|
+
* WebGL handler context.
|
|
44
|
+
* @public
|
|
45
|
+
* @type {Handler}
|
|
46
|
+
*/
|
|
47
|
+
public handler: Handler;
|
|
48
|
+
exposure: number;
|
|
49
|
+
gamma: number;
|
|
50
|
+
whitepoint: number;
|
|
51
|
+
brightThreshold: number;
|
|
52
|
+
backgroundColor: any;
|
|
53
|
+
/**
|
|
54
|
+
* Render nodes drawing queue.
|
|
55
|
+
* @private
|
|
56
|
+
* @type {Array.<scene.RenderNode>}
|
|
57
|
+
*/
|
|
58
|
+
private _renderNodesArr;
|
|
59
|
+
/**
|
|
60
|
+
* Render nodes store for the comfortable access by the node name.
|
|
61
|
+
* @public
|
|
62
|
+
* @type {Object.<og.scene.RenderNode>}
|
|
63
|
+
*/
|
|
64
|
+
public renderNodes: any;
|
|
65
|
+
/**
|
|
66
|
+
* Current active camera.
|
|
67
|
+
* @public
|
|
68
|
+
* @type {Camera}
|
|
69
|
+
*/
|
|
70
|
+
public activeCamera: Camera;
|
|
71
|
+
/**
|
|
72
|
+
* Renderer events. Represents interface for setting events like mousemove, draw, keypress etc.
|
|
73
|
+
* @public
|
|
74
|
+
* @type {RendererEvents}
|
|
75
|
+
*/
|
|
76
|
+
public events: RendererEvents;
|
|
77
|
+
/**
|
|
78
|
+
* OpenGlobus controls array.
|
|
79
|
+
* @public
|
|
80
|
+
* @type {Object}
|
|
81
|
+
*/
|
|
82
|
+
public controls: any;
|
|
83
|
+
/**
|
|
84
|
+
* Provides exchange between controls.
|
|
85
|
+
* @public
|
|
86
|
+
* @type {Object}
|
|
87
|
+
*/
|
|
88
|
+
public controlsBag: any;
|
|
89
|
+
/**
|
|
90
|
+
* Hash table for drawing objects.
|
|
91
|
+
* @public
|
|
92
|
+
* @type {Object}
|
|
93
|
+
*/
|
|
94
|
+
public colorObjects: any;
|
|
95
|
+
/**
|
|
96
|
+
* Color picking objects rendering queue.
|
|
97
|
+
* @type {Array.<Renderer~pickingCallback>}
|
|
98
|
+
*/
|
|
99
|
+
_pickingCallbacks: Array<Renderer>;
|
|
100
|
+
/**
|
|
101
|
+
* Picking objects(labels and billboards) framebuffer.
|
|
102
|
+
* @public
|
|
103
|
+
* @type {Framebuffer}
|
|
104
|
+
*/
|
|
105
|
+
public pickingFramebuffer: Framebuffer;
|
|
106
|
+
/**
|
|
107
|
+
* Depth objects rendering queue.
|
|
108
|
+
* @type {Array.<Renderer~depthCallback>}
|
|
109
|
+
*/
|
|
110
|
+
_depthCallbacks: Array<Renderer>;
|
|
111
|
+
depthFramebuffer: Framebuffer;
|
|
112
|
+
_msaa: any;
|
|
113
|
+
_internalFormat: string;
|
|
114
|
+
_format: string;
|
|
115
|
+
_type: string;
|
|
116
|
+
sceneFramebuffer: Framebuffer | Multisample;
|
|
117
|
+
blitFramebuffer: Framebuffer;
|
|
118
|
+
toneMappingFramebuffer: Framebuffer;
|
|
119
|
+
/**
|
|
120
|
+
* Stores current picking rgb color.
|
|
121
|
+
* @private
|
|
122
|
+
* @type {Array.<number>} - (exactly 3 entries)
|
|
123
|
+
*/
|
|
124
|
+
private _currPickingColor;
|
|
125
|
+
/**
|
|
126
|
+
* Stores previous picked rgb color.
|
|
127
|
+
* @private
|
|
128
|
+
* @type {Array.<number>} - (exactly 3 entries)
|
|
129
|
+
*/
|
|
130
|
+
private _prevPickingColor;
|
|
131
|
+
_tempPickingColor_: Uint8Array;
|
|
132
|
+
_initialized: boolean;
|
|
133
|
+
/**
|
|
134
|
+
* Texture atlas for the billboards images. One atlas per node.
|
|
135
|
+
* @protected
|
|
136
|
+
* @type {utils.TextureAtlas}
|
|
137
|
+
*/
|
|
138
|
+
protected billboardsTextureAtlas: utils.TextureAtlas;
|
|
139
|
+
/**
|
|
140
|
+
* Texture font atlas for the font families and styles. One atlas per node.
|
|
141
|
+
* @public
|
|
142
|
+
* @type {utils.FontAtlas}
|
|
143
|
+
*/
|
|
144
|
+
public fontAtlas: utils.FontAtlas;
|
|
145
|
+
_entityCollections: any[];
|
|
146
|
+
_currentOutput: string;
|
|
147
|
+
labelWorker: LabelWorker;
|
|
148
|
+
/**
|
|
149
|
+
* Sets renderer events activity.
|
|
150
|
+
* @param {Boolean} activity - Events activity.
|
|
151
|
+
*/
|
|
152
|
+
setEventsActivity(activity: boolean): void;
|
|
153
|
+
addDepthCallback(sender: any, callback: any): number;
|
|
154
|
+
removeDepthCallback(id: any): void;
|
|
155
|
+
/**
|
|
156
|
+
* Adds picking rendering callback function.
|
|
157
|
+
* @param {object} sender - Callback context.
|
|
158
|
+
* @param {Renderer~pickingCallback} callback - Rendering callback.
|
|
159
|
+
* @returns {Number} Handler id
|
|
160
|
+
*/
|
|
161
|
+
addPickingCallback(sender: object, callback: any): number;
|
|
162
|
+
/**
|
|
163
|
+
* Removes picking rendering callback function.
|
|
164
|
+
* @param {Number} id - Handler id to remove.
|
|
165
|
+
*/
|
|
166
|
+
removePickingCallback(id: number): void;
|
|
167
|
+
getPickingObjectByColor(r: any, g: any, b: any): any;
|
|
168
|
+
/**
|
|
169
|
+
* Assign picking color to the object.
|
|
170
|
+
* @public
|
|
171
|
+
* @param {Object} obj - Object that pressume to be picked.
|
|
172
|
+
*/
|
|
173
|
+
public assignPickingColor(obj: any): void;
|
|
174
|
+
/**
|
|
175
|
+
* Removes picking color from object.
|
|
176
|
+
* @public
|
|
177
|
+
* @param {Object} obj - Object to remove picking color.
|
|
178
|
+
*/
|
|
179
|
+
public clearPickingColor(obj: any): void;
|
|
180
|
+
/**
|
|
181
|
+
* Get the client width.
|
|
182
|
+
* @public
|
|
183
|
+
* @returns {number} -
|
|
184
|
+
*/
|
|
185
|
+
public getWidth(): number;
|
|
186
|
+
/**
|
|
187
|
+
* Get the client height.
|
|
188
|
+
* @public
|
|
189
|
+
* @returns {number} -
|
|
190
|
+
*/
|
|
191
|
+
public getHeight(): number;
|
|
192
|
+
/**
|
|
193
|
+
* Get center of the screen
|
|
194
|
+
* @public
|
|
195
|
+
* @returns {math.Vec2} -
|
|
196
|
+
*/
|
|
197
|
+
public getCenter(): math.Vec2;
|
|
198
|
+
/**
|
|
199
|
+
* Add the given control to the renderer.
|
|
200
|
+
* @param {control.Control} control - Control.
|
|
201
|
+
*/
|
|
202
|
+
addControl(control: control.Control): void;
|
|
203
|
+
/**
|
|
204
|
+
* Add the given controls array to the planet node.
|
|
205
|
+
* @param {Array.<control.Control>} cArr - Control array.
|
|
206
|
+
*/
|
|
207
|
+
addControls(cArr: Array<control.Control>): void;
|
|
208
|
+
/**
|
|
209
|
+
* Remove control from the renderer.
|
|
210
|
+
* @param {control.Control} control - Control.
|
|
211
|
+
*/
|
|
212
|
+
removeControl(control: control.Control): void;
|
|
213
|
+
/**
|
|
214
|
+
* Renderer initialization.
|
|
215
|
+
* @public
|
|
216
|
+
*/
|
|
217
|
+
public initialize(): void;
|
|
218
|
+
screenDepthFramebuffer: Framebuffer;
|
|
219
|
+
_fnScreenFrame: () => void;
|
|
220
|
+
screenTexture: {
|
|
221
|
+
screen: any;
|
|
222
|
+
picking: any;
|
|
223
|
+
depth: any;
|
|
224
|
+
frustum?: undefined;
|
|
225
|
+
} | {
|
|
226
|
+
screen: any;
|
|
227
|
+
picking: any;
|
|
228
|
+
depth: any;
|
|
229
|
+
frustum: any;
|
|
230
|
+
};
|
|
231
|
+
_screenFrameCornersBuffer: any;
|
|
232
|
+
outputTexture: any;
|
|
233
|
+
setCurrentScreen(screenName: any): void;
|
|
234
|
+
resize(): void;
|
|
235
|
+
removeNode(renderNode: any): void;
|
|
236
|
+
/**
|
|
237
|
+
* Adds render node to the renderer.
|
|
238
|
+
* @public
|
|
239
|
+
* @param {RenderNode} renderNode - Render node.
|
|
240
|
+
*/
|
|
241
|
+
public addNode(renderNode: RenderNode): void;
|
|
242
|
+
/**
|
|
243
|
+
* Adds render node to the renderer before specific node.
|
|
244
|
+
* @public
|
|
245
|
+
* @param {RenderNode} renderNode - Render node.
|
|
246
|
+
*/
|
|
247
|
+
public addNodeBefore(renderNode: RenderNode, renderNodeBefore: any): void;
|
|
248
|
+
/**
|
|
249
|
+
* Adds render nodes array to the renderer.
|
|
250
|
+
* @public
|
|
251
|
+
* @param {Array.<scene.RenderNode>} nodesArr - Render nodes array.
|
|
252
|
+
*/
|
|
253
|
+
public addNodes(nodesArr: Array<scene.RenderNode>): void;
|
|
254
|
+
getMaxMSAA(internalFormat: any): any;
|
|
255
|
+
getMSAA(): any;
|
|
256
|
+
/**
|
|
257
|
+
* TODO: replace with cahce frendly linked list by bilboardHandler, label handler etc.
|
|
258
|
+
*/
|
|
259
|
+
enqueueEntityCollectionsToDraw(ecArr: any): void;
|
|
260
|
+
/**
|
|
261
|
+
* Draws entity collections.
|
|
262
|
+
* @public
|
|
263
|
+
* @param {Array<og.EntityCollection>} ec - Entity collection array.
|
|
264
|
+
*/
|
|
265
|
+
public _drawEntityCollections(): void;
|
|
266
|
+
/**
|
|
267
|
+
* Draw nodes.
|
|
268
|
+
* @public
|
|
269
|
+
*/
|
|
270
|
+
public draw(): void;
|
|
271
|
+
_screenFrameMSAA(): void;
|
|
272
|
+
_screenFrameNoMSAA(): void;
|
|
273
|
+
/**
|
|
274
|
+
* Draw picking objects framebuffer.
|
|
275
|
+
* @private
|
|
276
|
+
*/
|
|
277
|
+
private _drawPickingBuffer;
|
|
278
|
+
_drawDepthBuffer(): void;
|
|
279
|
+
_readPickingColor(): void;
|
|
280
|
+
/**
|
|
281
|
+
* Function starts rendering.
|
|
282
|
+
* @public
|
|
283
|
+
*/
|
|
284
|
+
public start(): void;
|
|
285
|
+
}
|
|
286
|
+
import { Camera } from "../camera/Camera.js";
|
|
287
|
+
import { RendererEvents } from "./RendererEvents.js";
|
|
288
|
+
import { Framebuffer } from "../webgl/index.js";
|
|
289
|
+
import { Multisample } from "../webgl/index.js";
|
|
290
|
+
import { LabelWorker } from "../entity/LabelWorker.js";
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Renderer events handler.
|
|
3
|
+
* @class
|
|
4
|
+
* @param {Renderer} renderer - Renderer object, events that works for.
|
|
5
|
+
*/
|
|
6
|
+
export class RendererEvents extends Events {
|
|
7
|
+
constructor(renderer: any);
|
|
8
|
+
/**
|
|
9
|
+
* Assigned renderer.
|
|
10
|
+
* @public
|
|
11
|
+
* @type {Renderer}
|
|
12
|
+
*/
|
|
13
|
+
public renderer: Renderer;
|
|
14
|
+
/**
|
|
15
|
+
* Low level touch events handler.
|
|
16
|
+
* @private
|
|
17
|
+
* @type {input.TouchHandler}
|
|
18
|
+
*/
|
|
19
|
+
private _touchHandler;
|
|
20
|
+
/**
|
|
21
|
+
* Low level mouse events handler.
|
|
22
|
+
* @private
|
|
23
|
+
* @type {input.MouseHandler}
|
|
24
|
+
*/
|
|
25
|
+
private _mouseHandler;
|
|
26
|
+
/**
|
|
27
|
+
* Low level keyboard events handler.
|
|
28
|
+
* @private
|
|
29
|
+
* @type {input.KeyboardHandler}
|
|
30
|
+
*/
|
|
31
|
+
private _keyboardHandler;
|
|
32
|
+
_active: boolean;
|
|
33
|
+
clickRadius: number;
|
|
34
|
+
/**
|
|
35
|
+
* Current mouse state.
|
|
36
|
+
* @public
|
|
37
|
+
* @enum {Object}
|
|
38
|
+
*/
|
|
39
|
+
public mouseState: {
|
|
40
|
+
anyEvent: () => boolean;
|
|
41
|
+
/** Current screen mouse X position. */
|
|
42
|
+
clientX: number;
|
|
43
|
+
/** Current screen mouse Y position. */
|
|
44
|
+
clientY: number;
|
|
45
|
+
/** Current viewport mouse X position. */
|
|
46
|
+
x: number;
|
|
47
|
+
/** Current viewport mouse Y position. */
|
|
48
|
+
y: number;
|
|
49
|
+
/** Current mouse X position from 0 to 1 */
|
|
50
|
+
nx: number;
|
|
51
|
+
/** Current mouse Y position from 0 to 1 */
|
|
52
|
+
ny: number;
|
|
53
|
+
/** Previous mouse X position. */
|
|
54
|
+
prev_x: number;
|
|
55
|
+
/** Previous mouse Y position. */
|
|
56
|
+
prev_y: number;
|
|
57
|
+
/** Screen mouse position world direction. */
|
|
58
|
+
direction: Vec3;
|
|
59
|
+
/** Left mouse button has stopped pushing down right now.*/
|
|
60
|
+
leftButtonUp: boolean;
|
|
61
|
+
/** Right mouse button has stopped pushing down right now.*/
|
|
62
|
+
rightButtonUp: boolean;
|
|
63
|
+
/** Middle mouse button has stopped pushing down right now.*/
|
|
64
|
+
middleButtonUp: boolean;
|
|
65
|
+
/** Left mouse button has pushed now.*/
|
|
66
|
+
leftButtonDown: boolean;
|
|
67
|
+
/** Right mouse button has pushed now.*/
|
|
68
|
+
rightButtonDown: boolean;
|
|
69
|
+
/** Middle mouse button has pushed now.*/
|
|
70
|
+
middleButtonDown: boolean;
|
|
71
|
+
/** Left mouse button is pushing.*/
|
|
72
|
+
leftButtonHold: boolean;
|
|
73
|
+
/** Right mouse button is pushing.*/
|
|
74
|
+
rightButtonHold: boolean;
|
|
75
|
+
/** Middle mouse button is pushing.*/
|
|
76
|
+
middleButtonHold: boolean;
|
|
77
|
+
/** Left mouse button has clicked twice now.*/
|
|
78
|
+
leftButtonDoubleClick: boolean;
|
|
79
|
+
/** Right mouse button has clicked twice now.*/
|
|
80
|
+
rightButtonDoubleClick: boolean;
|
|
81
|
+
/** Middle mouse button has clicked twice now.*/
|
|
82
|
+
middleButtonDoubleClick: boolean;
|
|
83
|
+
/** Left mouse button has clicked now. */
|
|
84
|
+
leftButtonClick: boolean;
|
|
85
|
+
/** Right mouse button has clicked now. */
|
|
86
|
+
rightButtonClick: boolean;
|
|
87
|
+
/** Middle mouse button has clicked now. */
|
|
88
|
+
middleButtonClick: boolean;
|
|
89
|
+
/** Mouse is moving now. */
|
|
90
|
+
moving: boolean;
|
|
91
|
+
/** Mouse has just stopped now. */
|
|
92
|
+
justStopped: boolean;
|
|
93
|
+
/** Mose double click delay response time.*/
|
|
94
|
+
doubleClickDelay: number;
|
|
95
|
+
/** Mose click delay response time.*/
|
|
96
|
+
clickDelay: number;
|
|
97
|
+
/** Mouse wheel. */
|
|
98
|
+
wheelDelta: number;
|
|
99
|
+
/** JavaScript mouse system event message. */
|
|
100
|
+
sys: any;
|
|
101
|
+
/** Current picking object. */
|
|
102
|
+
pickingObject: any;
|
|
103
|
+
/** Renderer instanve. */
|
|
104
|
+
renderer: any;
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Current touch state.
|
|
108
|
+
* @public
|
|
109
|
+
* @enum {Object}
|
|
110
|
+
*/
|
|
111
|
+
public touchState: {
|
|
112
|
+
/** Touching is moving now. */
|
|
113
|
+
moving: boolean;
|
|
114
|
+
/** Touch has ended right now.*/
|
|
115
|
+
touchEnd: boolean;
|
|
116
|
+
/** Touch has started right now.*/
|
|
117
|
+
touchStart: boolean;
|
|
118
|
+
/** Touch canceled.*/
|
|
119
|
+
touchCancel: boolean;
|
|
120
|
+
/** Touched twice.*/
|
|
121
|
+
doubleTouch: boolean;
|
|
122
|
+
/** Double touching responce delay.*/
|
|
123
|
+
doubleTouchDelay: number;
|
|
124
|
+
/** Double touching responce radius in screen pixels.*/
|
|
125
|
+
doubleTouchRadius: number;
|
|
126
|
+
/** Current touch X - coordinate. */
|
|
127
|
+
x: number;
|
|
128
|
+
/** Current touch Y - coordinate. */
|
|
129
|
+
y: number;
|
|
130
|
+
/** Current touch X - coordinate from 0 to 1 */
|
|
131
|
+
nx: number;
|
|
132
|
+
/** Current touch Y - coordinate from 0 to 1 */
|
|
133
|
+
ny: number;
|
|
134
|
+
/** Previous touch X coordinate. */
|
|
135
|
+
prev_x: number;
|
|
136
|
+
/** Previous touch Y coordinate. */
|
|
137
|
+
prev_y: number;
|
|
138
|
+
/** JavaScript touching system event message. */
|
|
139
|
+
sys: any;
|
|
140
|
+
/** Current touched(picking) object. */
|
|
141
|
+
pickingObject: any;
|
|
142
|
+
/** Renderer instanve. */
|
|
143
|
+
renderer: any;
|
|
144
|
+
};
|
|
145
|
+
_dblTchCoords: Vec2;
|
|
146
|
+
_oneTouchStart: boolean;
|
|
147
|
+
_dblTchBegins: number;
|
|
148
|
+
/**
|
|
149
|
+
* @type {number}
|
|
150
|
+
*/
|
|
151
|
+
_mousestopThread: number;
|
|
152
|
+
_ldblClkBegins: number;
|
|
153
|
+
_rdblClkBegins: number;
|
|
154
|
+
_mdblClkBegins: number;
|
|
155
|
+
_lClkBegins: number;
|
|
156
|
+
_rClkBegins: number;
|
|
157
|
+
_mClkBegins: number;
|
|
158
|
+
_lclickX: number;
|
|
159
|
+
_lclickY: number;
|
|
160
|
+
_rclickX: number;
|
|
161
|
+
_rclickY: number;
|
|
162
|
+
_mclickX: number;
|
|
163
|
+
_mclickY: number;
|
|
164
|
+
set active(arg: boolean);
|
|
165
|
+
get active(): boolean;
|
|
166
|
+
/**
|
|
167
|
+
* Used in render node frame.
|
|
168
|
+
* @public
|
|
169
|
+
*/
|
|
170
|
+
public handleEvents(): void;
|
|
171
|
+
/**
|
|
172
|
+
* Check key is pressed.
|
|
173
|
+
* @public
|
|
174
|
+
* @param {number} keyCode - Key code
|
|
175
|
+
* @return {boolean}
|
|
176
|
+
*/
|
|
177
|
+
public isKeyPressed(keyCode: number): boolean;
|
|
178
|
+
releaseKeys(): void;
|
|
179
|
+
/**
|
|
180
|
+
* Renderer events initialization.
|
|
181
|
+
* @public
|
|
182
|
+
*/
|
|
183
|
+
public initialize(): void;
|
|
184
|
+
/**
|
|
185
|
+
* @private
|
|
186
|
+
*/
|
|
187
|
+
private onMouseWheel;
|
|
188
|
+
/**
|
|
189
|
+
* @protected
|
|
190
|
+
*/
|
|
191
|
+
protected updateButtonsStates(buttons: any): void;
|
|
192
|
+
/**
|
|
193
|
+
* @private
|
|
194
|
+
*/
|
|
195
|
+
private onMouseMove;
|
|
196
|
+
onMouseLeave(event: any): void;
|
|
197
|
+
onMouseEnter(event: any): void;
|
|
198
|
+
/**
|
|
199
|
+
* @private
|
|
200
|
+
*/
|
|
201
|
+
private onMouseDown;
|
|
202
|
+
/**
|
|
203
|
+
* @private
|
|
204
|
+
*/
|
|
205
|
+
private onMouseUp;
|
|
206
|
+
/**
|
|
207
|
+
* @private
|
|
208
|
+
*/
|
|
209
|
+
private onTouchStart;
|
|
210
|
+
/**
|
|
211
|
+
* @private
|
|
212
|
+
*/
|
|
213
|
+
private onTouchEnd;
|
|
214
|
+
/**
|
|
215
|
+
* @private
|
|
216
|
+
*/
|
|
217
|
+
private onTouchCancel;
|
|
218
|
+
/**
|
|
219
|
+
* @private
|
|
220
|
+
*/
|
|
221
|
+
private onTouchMove;
|
|
222
|
+
/**
|
|
223
|
+
* @private
|
|
224
|
+
*/
|
|
225
|
+
private entityPickingEvents;
|
|
226
|
+
/**
|
|
227
|
+
* @private
|
|
228
|
+
*/
|
|
229
|
+
private handleMouseEvents;
|
|
230
|
+
/**
|
|
231
|
+
* @private
|
|
232
|
+
*/
|
|
233
|
+
private handleTouchEvents;
|
|
234
|
+
}
|
|
235
|
+
import { Events } from "../Events.js";
|
|
236
|
+
import { Vec3 } from "../math/Vec3.js";
|
|
237
|
+
import { Vec2 } from "../math/Vec2.js";
|