@openglobus/og 1.0.0-rc32 → 1.0.0-rc33
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/lib/control/depthCamera/DepthCamera.d.ts +2 -0
- package/lib/entity/EntityCollection.d.ts +13 -0
- package/lib/entity/pathTime.d.ts +2 -0
- package/lib/entity/polyline/Polyline.d.ts +32 -5
- package/lib/entity/polyline/PolylineBatchRenderer.d.ts +30 -6
- package/lib/entity/polyline/PolylineHandler.d.ts +22 -1
- package/lib/entity/ray/Ray.d.ts +7 -0
- package/lib/entity/ray/RayHandler.d.ts +4 -0
- package/lib/entity/strip/Strip.d.ts +34 -4
- package/lib/entity/strip/StripHandler.d.ts +21 -0
- package/lib/layer/Vector.d.ts +13 -0
- package/lib/og.es.js +1 -1
- package/lib/og.es.js.map +1 -1
- package/lib/renderer/cascadeShadows/CascadeShadowMap.d.ts +2 -0
- package/lib/shaders/polyline/polyline.d.ts +4 -0
- package/lib/shaders/strip/strip.d.ts +2 -0
- package/package.json +1 -1
|
@@ -7,6 +7,7 @@ import { Vec4, type NumberArray4 } from "../../math/Vec4";
|
|
|
7
7
|
import { QuadTreeStrategy } from "../../quadTree";
|
|
8
8
|
import type { Renderer } from "../../renderer/Renderer";
|
|
9
9
|
import type { Planet } from "../../scene/Planet";
|
|
10
|
+
import type { EmptyTerrain } from "../../terrain/EmptyTerrain";
|
|
10
11
|
import { Framebuffer } from "../../webgl";
|
|
11
12
|
import { Vector } from "../../layer/Vector";
|
|
12
13
|
import type { ShadowMap } from "../../renderer/shadows/ShadowMap";
|
|
@@ -65,6 +66,7 @@ export declare class DepthCamera {
|
|
|
65
66
|
protected _isOrthographic: boolean;
|
|
66
67
|
protected _focusDistance: number;
|
|
67
68
|
protected _lastPlanetHeightFactor: number;
|
|
69
|
+
protected _lastPlanetTerrain: EmptyTerrain | null;
|
|
68
70
|
protected _orthoTexelSizeX: number;
|
|
69
71
|
protected _orthoTexelSizeY: number;
|
|
70
72
|
protected _frustumLength: number;
|
|
@@ -252,6 +252,19 @@ declare class EntityCollection {
|
|
|
252
252
|
* @public
|
|
253
253
|
*/
|
|
254
254
|
requestRedraw(): void;
|
|
255
|
+
/**
|
|
256
|
+
* Sets the current time of polylines and strips with path times.
|
|
257
|
+
* @public
|
|
258
|
+
* @param {number} time - Time in the same units as the path times.
|
|
259
|
+
*/
|
|
260
|
+
setTime(time: number): void;
|
|
261
|
+
/**
|
|
262
|
+
* Sets opacity multipliers of the path parts passed and ahead of the current time.
|
|
263
|
+
* @public
|
|
264
|
+
* @param {number} past - Multiplier up to the current time.
|
|
265
|
+
* @param {number} future - Multiplier after the current time.
|
|
266
|
+
*/
|
|
267
|
+
setTimeOpacity(past: number, future: number): void;
|
|
255
268
|
/**
|
|
256
269
|
* Returns collection visibility.
|
|
257
270
|
* @public
|
|
@@ -30,6 +30,7 @@ export interface IPolylineParams {
|
|
|
30
30
|
visibility?: boolean;
|
|
31
31
|
isClosed?: boolean;
|
|
32
32
|
pathColors?: SegmentPathColor[];
|
|
33
|
+
pathTimes?: number[][];
|
|
33
34
|
path3v?: SegmentPath3vExt[];
|
|
34
35
|
pathLonLat?: SegmentPathLonLatExt[];
|
|
35
36
|
src?: StrokeSource;
|
|
@@ -48,6 +49,8 @@ export interface IPolylineParams {
|
|
|
48
49
|
* @param {SegmentPathLonLatExt[]} [options.pathLonLat] - Polyline geodetic coordinates array. [[[0,0,0], [1,1,1],...]]
|
|
49
50
|
* @param {SegmentPath3vExt[]} [options.path3v] - LinesString cartesian coordinates array. [[[0,0,0], [1,1,1],...]]
|
|
50
51
|
* @param {SegmentPathColor[]} [options.pathColors] - Coordinates color. [[[1,0,0,1], [0,1,0,1],...]] for right and green colors.
|
|
52
|
+
* @param {number[][]} [options.pathTimes] - Time of every point, per segment. Makes the line follow the
|
|
53
|
+
* entity collection time, see {@link EntityCollection#setTime} and {@link EntityCollection#setTimeOpacity}.
|
|
51
54
|
* @param {TexParam} [options.texParams] - Texture params for all segments: texOffset, strokeSize and texOffsetSpeed.
|
|
52
55
|
*/
|
|
53
56
|
declare class Polyline {
|
|
@@ -62,6 +65,7 @@ declare class Polyline {
|
|
|
62
65
|
_path3v: SegmentPath3vExt[];
|
|
63
66
|
protected _pathLonLat: SegmentPathLonLatExt[];
|
|
64
67
|
protected _pathColors: SegmentPathColor[];
|
|
68
|
+
protected _pathTimes: number[][] | null;
|
|
65
69
|
protected _color: string[];
|
|
66
70
|
protected _segmentTexParams: Partial<TexParam> | null;
|
|
67
71
|
protected _src: StrokeSource;
|
|
@@ -79,6 +83,10 @@ declare class Polyline {
|
|
|
79
83
|
get altitude(): number;
|
|
80
84
|
_addToBatchRenderer(): void;
|
|
81
85
|
_removeFromBatchRenderer(): void;
|
|
86
|
+
protected _batchIndex(segmentIndex: number): number;
|
|
87
|
+
protected _forEachBatchPath(callback: (batchIndex: number, segmentIndex: number) => void): void;
|
|
88
|
+
protected _removeBatchPath(segmentIndex: number): void;
|
|
89
|
+
protected _hasSameBatchPaths(paths: SegmentPath3vExt[] | SegmentPathLonLatExt[]): boolean;
|
|
82
90
|
protected _getDefaultHtmlColor(segmentIndex?: number): string | undefined;
|
|
83
91
|
protected _getDefaultPathColor(segmentIndex?: number): NumberArray4 | undefined;
|
|
84
92
|
protected _applySegmentProps(batchIndex: number, segmentIndex?: number): void;
|
|
@@ -125,24 +133,27 @@ declare class Polyline {
|
|
|
125
133
|
* @param {number} [index=0] - Index in the path
|
|
126
134
|
* @param {NumberArray4} [color] - Point color
|
|
127
135
|
* @param {number} [segmentIndex=0] - Path segment index
|
|
136
|
+
* @param {number} [time] - Point time
|
|
128
137
|
*/
|
|
129
|
-
insertPoint3v(point3v: Vec3, index?: number, color?: NumberArray4, segmentIndex?: number): void;
|
|
138
|
+
insertPoint3v(point3v: Vec3, index?: number, color?: NumberArray4, segmentIndex?: number, time?: number): void;
|
|
130
139
|
/**
|
|
131
140
|
* Append new point in the end of the path.
|
|
132
141
|
* @public
|
|
133
142
|
* @param {Vec3} point3v - New point coordinates.
|
|
134
143
|
* @param {number} [segmentIndex=0] - Path segment index, first by default.
|
|
135
144
|
* @param {NumberArray4} [color] - Point color
|
|
145
|
+
* @param {number} [time] - Point time
|
|
136
146
|
*/
|
|
137
|
-
addPoint3v(point3v: Vec3, segmentIndex?: number, color?: NumberArray4): void;
|
|
147
|
+
addPoint3v(point3v: Vec3, segmentIndex?: number, color?: NumberArray4, time?: number): void;
|
|
138
148
|
/**
|
|
139
149
|
* Append new geodetic point in the end of the path.
|
|
140
150
|
* @public
|
|
141
151
|
* @param {LonLat} lonLat - New coordinate.
|
|
142
152
|
* @param {number} [segmentIndex=0] - Path segment index, first by default.
|
|
143
153
|
* @param {NumberArray4} [color] - Point color.
|
|
154
|
+
* @param {number} [time] - Point time.
|
|
144
155
|
*/
|
|
145
|
-
addPointLonLat(lonLat: LonLat, segmentIndex?: number, color?: NumberArray4): void;
|
|
156
|
+
addPointLonLat(lonLat: LonLat, segmentIndex?: number, color?: NumberArray4, time?: number): void;
|
|
146
157
|
/**
|
|
147
158
|
* Change path point color
|
|
148
159
|
* @param {NumberArray4} color - New color
|
|
@@ -155,8 +166,8 @@ declare class Polyline {
|
|
|
155
166
|
* @param {number} index - Segment index in multiline
|
|
156
167
|
*/
|
|
157
168
|
removePath(index: number): void;
|
|
158
|
-
appendPath3v(path3v: SegmentPath3vExt, pathColors?: NumberArray4[]): void;
|
|
159
|
-
appendPathLonLat(pathLonLat: SegmentPathLonLatExt): void;
|
|
169
|
+
appendPath3v(path3v: SegmentPath3vExt, pathColors?: NumberArray4[], pathTimes?: number[]): void;
|
|
170
|
+
appendPathLonLat(pathLonLat: SegmentPathLonLatExt, pathColors?: NumberArray4[], pathTimes?: number[]): void;
|
|
160
171
|
setPathLonLatFast(pathLonLat: SegmentPathLonLatExt[], pathColors?: (SegmentPathColor | NumberArray4)[] | SegmentPathColor | NumberArray4): void;
|
|
161
172
|
setPath3vFast(path3v: SegmentPath3vExt[], pathColors?: (SegmentPathColor | NumberArray4)[] | SegmentPathColor | NumberArray4): void;
|
|
162
173
|
/**
|
|
@@ -177,6 +188,22 @@ declare class Polyline {
|
|
|
177
188
|
*/
|
|
178
189
|
setPathLonLat(pathLonLat: SegmentPathLonLatExt[], pathColors?: (SegmentPathColor | NumberArray4)[], forceEqual?: boolean): void;
|
|
179
190
|
setPathLonLat(pathLonLat: SegmentPathLonLatExt, pathColors?: SegmentPathColor | NumberArray4, forceEqual?: boolean, segmentIndex?: number): void;
|
|
191
|
+
protected _pushPointTime(segmentIndex: number, index: number, time?: number): void;
|
|
192
|
+
/**
|
|
193
|
+
* Returns true when the polyline has point times and follows the entity collection time.
|
|
194
|
+
* @public
|
|
195
|
+
* @returns {boolean}
|
|
196
|
+
*/
|
|
197
|
+
isTimed(): boolean;
|
|
198
|
+
getPathTimes(): number[][] | null;
|
|
199
|
+
/**
|
|
200
|
+
* Sets point times. Null removes them and the line stops following the entity collection time.
|
|
201
|
+
* @public
|
|
202
|
+
* @param {number[][] | number[] | null} times - Times per segment, or times of one segment.
|
|
203
|
+
* @param {number} [segmentIndex] - Segment index when times of one segment are given.
|
|
204
|
+
*/
|
|
205
|
+
setPathTimes(pathTimes: number[][] | null): void;
|
|
206
|
+
setPathTimes(times: number[], segmentIndex: number): void;
|
|
180
207
|
/**
|
|
181
208
|
* Sets polyline opacity.
|
|
182
209
|
* @public
|
|
@@ -29,6 +29,7 @@ export interface IPolylineBatchRendererParams {
|
|
|
29
29
|
color?: string[];
|
|
30
30
|
visibility?: boolean;
|
|
31
31
|
isTextured?: boolean;
|
|
32
|
+
isTimed?: boolean;
|
|
32
33
|
isClosed?: boolean[];
|
|
33
34
|
pathColors?: SegmentPathColor[];
|
|
34
35
|
path3v?: SegmentPath3vExt[];
|
|
@@ -126,6 +127,10 @@ declare class PolylineBatchRenderer {
|
|
|
126
127
|
protected _pathPhaseBuffer: WebGLBufferExt | null;
|
|
127
128
|
protected _boundingSphereBuffer: WebGLBufferExt | null;
|
|
128
129
|
protected _pickingColorsBuffer: WebGLBufferExt | null;
|
|
130
|
+
isTimed: boolean;
|
|
131
|
+
protected _pathTimes: (number[] | undefined)[];
|
|
132
|
+
protected _timesArr: TypedArray | number[];
|
|
133
|
+
protected _timesBuffer: WebGLBufferExt | null;
|
|
129
134
|
protected _scene: Scene | null;
|
|
130
135
|
/**
|
|
131
136
|
* Entity instance that holds this Polyline.
|
|
@@ -203,6 +208,17 @@ declare class PolylineBatchRenderer {
|
|
|
203
208
|
protected _updateTextureMetrics(segmentIndex: number): void;
|
|
204
209
|
protected _updateAllTextureMetrics(): void;
|
|
205
210
|
protected _updateTextureMetricsAfterPointChange(segmentIndex: number): void;
|
|
211
|
+
protected _pushPointTime(segmentIndex: number, index: number, time?: number): void;
|
|
212
|
+
protected _resolveTimeAt(segmentIndex: number, index: number): number;
|
|
213
|
+
protected _resolveSegmentTimes(segmentIndex: number, count: number): number[];
|
|
214
|
+
/**
|
|
215
|
+
* Sets point times of a path segment, used by the time opacity of timed renderers.
|
|
216
|
+
* @public
|
|
217
|
+
* @param {number[]} times - Time per point, missing values repeat the previous one.
|
|
218
|
+
* @param {number} segmentIndex - Path segment index.
|
|
219
|
+
*/
|
|
220
|
+
setPathTimes(times: number[] | undefined, segmentIndex: number): void;
|
|
221
|
+
getPathTimes(): (number[] | undefined)[];
|
|
206
222
|
protected _markGeometryBuffersChanged(includeTexCoords: boolean): void;
|
|
207
223
|
protected _applyForceEqualSegmentUpdate<TSegment extends any[]>(segmentPath: TSegment, segmentIndex: number, pathColors: SegmentPathColor | NumberArray4 | undefined, currentPaths: TSegment[], equalUpdate: (segmentPath: TSegment, segmentIndex: number, pathColors?: SegmentPathColor | NumberArray4) => void, recreateData: (nextPaths: TSegment[]) => void, includeTexCoords: boolean): boolean;
|
|
208
224
|
protected __appendLineDataCore(pathInput: SegmentPath3vExt[] | SegmentPathLonLatExt[], pathColors: SegmentPathColor[], pathPickingColors: NumberArray3[][], defaultColor: NumberArray4, opacity: number[], pathClosed: boolean[], outVerticesHigh: number[], outVerticesLow: number[], outOrders: number[], outIndexes: number[], outTexCoords: number[], ellipsoid: Ellipsoid | null, outPath3v: SegmentPath3vExt[], outPathLonLat: SegmentPathLonLatExt[], outPathMerc: LonLat[][], outExtent: Extent, outColors: number[], outThickness: number[], outTexParams: number[], outBoundingSpheres: number[], outPickingColors: number[], sourceType: LineSourceMode, segmentOffset?: number, indexFormat?: IndexFormatMode, skipTexCoords?: boolean, resetExtent?: boolean): void;
|
|
@@ -256,8 +272,8 @@ declare class PolylineBatchRenderer {
|
|
|
256
272
|
* @param {number} index - Segment index in multiline
|
|
257
273
|
*/
|
|
258
274
|
removePath(index: number): void;
|
|
259
|
-
appendPath3v(path3v: SegmentPath3vExt, pathColors?: NumberArray4[], opacity?: number): void;
|
|
260
|
-
appendPathLonLat(pathLonLat: SegmentPathLonLatExt, pathColors?: NumberArray4[], opacity?: number): void;
|
|
275
|
+
appendPath3v(path3v: SegmentPath3vExt, pathColors?: NumberArray4[], opacity?: number, pathTimes?: number[]): void;
|
|
276
|
+
appendPathLonLat(pathLonLat: SegmentPathLonLatExt, pathColors?: NumberArray4[], opacity?: number, pathTimes?: number[]): void;
|
|
261
277
|
/**
|
|
262
278
|
* Remove point from the path
|
|
263
279
|
* @param {number} index - Point index in a path segment
|
|
@@ -270,8 +286,9 @@ declare class PolylineBatchRenderer {
|
|
|
270
286
|
* @param {number} [index=0] - Index in the path
|
|
271
287
|
* @param {NumberArray4} [color] - Point color
|
|
272
288
|
* @param {number} [segmentIndex=0] - Path segment index
|
|
289
|
+
* @param {number} [time] - Point time
|
|
273
290
|
*/
|
|
274
|
-
insertPoint3v(point3v: Vec3, index?: number, color?: NumberArray4, segmentIndex?: number): void;
|
|
291
|
+
insertPoint3v(point3v: Vec3, index?: number, color?: NumberArray4, segmentIndex?: number, time?: number): void;
|
|
275
292
|
/**
|
|
276
293
|
* Append new point in the end of the path.
|
|
277
294
|
* @public
|
|
@@ -279,17 +296,18 @@ declare class PolylineBatchRenderer {
|
|
|
279
296
|
* @param {number} [segmentIndex=0] - Path segment index, first by default.
|
|
280
297
|
* @param {NumberArray4} [color] - Point color.
|
|
281
298
|
* @param {number} [opacity=1] - Point opacity.
|
|
299
|
+
* @param {number} [time] - Point time.
|
|
282
300
|
*/
|
|
283
|
-
addPoint3v(point3v: Vec3, segmentIndex?: number, color?: NumberArray4, opacity?: number): void;
|
|
301
|
+
addPoint3v(point3v: Vec3, segmentIndex?: number, color?: NumberArray4, opacity?: number, time?: number): void;
|
|
284
302
|
/**
|
|
285
|
-
* Append new geodetic point
|
|
303
|
+
* Append a new geodetic point at the end of the path.
|
|
286
304
|
* @public
|
|
287
305
|
* @param {LonLat} lonLat - New coordinate.
|
|
288
306
|
* @param {number} [segmentIndex=0] - Path segment index, first by default.
|
|
289
307
|
* @param {NumberArray4} [color] - Point color.
|
|
290
308
|
* @param {number} [opacity=1]
|
|
291
309
|
*/
|
|
292
|
-
addPointLonLat(lonLat: LonLat, segmentIndex?: number, color?: NumberArray4, opacity?: number): void;
|
|
310
|
+
addPointLonLat(lonLat: LonLat, segmentIndex?: number, color?: NumberArray4, opacity?: number, time?: number): void;
|
|
293
311
|
/**
|
|
294
312
|
* Clear polyline data.
|
|
295
313
|
* @public
|
|
@@ -403,6 +421,11 @@ declare class PolylineBatchRenderer {
|
|
|
403
421
|
setPathLonLat(pathLonLat: SegmentPathLonLatExt, pathColors?: SegmentPathColor | NumberArray4, forceEqual?: boolean, segmentIndex?: number): void;
|
|
404
422
|
drawOpaque(): void;
|
|
405
423
|
drawTransparent(): void;
|
|
424
|
+
protected _bindTime(gl: WebGL2RenderingContext, sha: {
|
|
425
|
+
[id: string]: number;
|
|
426
|
+
}, shu: {
|
|
427
|
+
[id: string]: WebGLUniformLocation;
|
|
428
|
+
}): void;
|
|
406
429
|
drawPicking(): void;
|
|
407
430
|
/**
|
|
408
431
|
* Refresh buffers.
|
|
@@ -431,6 +454,7 @@ declare class PolylineBatchRenderer {
|
|
|
431
454
|
*/
|
|
432
455
|
protected _createIndexBuffer(): void;
|
|
433
456
|
protected _createColorsBuffer(): void;
|
|
457
|
+
protected _createTimesBuffer(): void;
|
|
434
458
|
protected _createPickingColorsBuffer(): void;
|
|
435
459
|
protected _createThicknessBuffer(): void;
|
|
436
460
|
protected _createTexParamsBuffer(): void;
|
|
@@ -10,6 +10,7 @@ declare class PolylineHandler {
|
|
|
10
10
|
_entityCollection: EntityCollection;
|
|
11
11
|
pickingEnabled: boolean;
|
|
12
12
|
protected _renderer: Renderer | null;
|
|
13
|
+
protected _scene: Scene | null;
|
|
13
14
|
_relativeCenter: Vec3;
|
|
14
15
|
_rtcEyePositionHigh: Float32Array;
|
|
15
16
|
_rtcEyePositionLow: Float32Array;
|
|
@@ -17,7 +18,25 @@ declare class PolylineHandler {
|
|
|
17
18
|
_transparentRenderer: PolylineBatchRenderer;
|
|
18
19
|
_opaqueTexRenderer: PolylineBatchRenderer;
|
|
19
20
|
_transparentTexRenderer: PolylineBatchRenderer;
|
|
21
|
+
_timedRenderer: PolylineBatchRenderer | null;
|
|
22
|
+
_timedTexRenderer: PolylineBatchRenderer | null;
|
|
20
23
|
protected _polylines: Polyline[];
|
|
24
|
+
protected _visibleSpherePosition: Vec3 | null;
|
|
25
|
+
protected _visibleSphereRadius: number;
|
|
26
|
+
/**
|
|
27
|
+
* Current time of the lines with path times, in the same units as their times.
|
|
28
|
+
* @public
|
|
29
|
+
* @type {number}
|
|
30
|
+
*/
|
|
31
|
+
time: number;
|
|
32
|
+
/**
|
|
33
|
+
* Opacity multipliers of the path parts already passed and still ahead of the current time.
|
|
34
|
+
* @public
|
|
35
|
+
* @type {Float32Array}
|
|
36
|
+
*/
|
|
37
|
+
timeOpacity: Float32Array;
|
|
38
|
+
setTime(time: number): void;
|
|
39
|
+
setTimeOpacity(past: number, future: number): void;
|
|
21
40
|
constructor(entityCollection: EntityCollection);
|
|
22
41
|
setVisibleSphere(p: Vec3, r: number): void;
|
|
23
42
|
/**
|
|
@@ -26,10 +45,12 @@ declare class PolylineHandler {
|
|
|
26
45
|
*/
|
|
27
46
|
requestRedraw(): void;
|
|
28
47
|
protected _initProgram(): void;
|
|
48
|
+
protected _initTimedPrograms(): void;
|
|
49
|
+
protected _createTimedRenderer(textured: boolean): PolylineBatchRenderer;
|
|
29
50
|
bindScene(scene: Scene): void;
|
|
30
51
|
add(polyline: Polyline): void;
|
|
31
52
|
remove(polyline: Polyline): void;
|
|
32
|
-
getRenderer(opacity: number, textured: boolean): PolylineBatchRenderer;
|
|
53
|
+
getRenderer(opacity: number, textured: boolean, timed?: boolean): PolylineBatchRenderer;
|
|
33
54
|
reindexAfterRemoval(removedBatchIndex: number, renderer: PolylineBatchRenderer): void;
|
|
34
55
|
reindexPolylineArray(startIndex: number): void;
|
|
35
56
|
drawForward(): void;
|
package/lib/entity/ray/Ray.d.ts
CHANGED
|
@@ -99,6 +99,13 @@ declare class Ray {
|
|
|
99
99
|
* @param {number} z - Z coordinate.
|
|
100
100
|
*/
|
|
101
101
|
setStartPosition(x: number, y: number, z: number): void;
|
|
102
|
+
protected _splitPosition(position: Vec3, high: Vec3, low: Vec3): void;
|
|
103
|
+
_splitPositions(): void;
|
|
104
|
+
/**
|
|
105
|
+
* Recomputes the start and end positions relative to the handler relative center.
|
|
106
|
+
* @public
|
|
107
|
+
*/
|
|
108
|
+
updateRTCPosition(): void;
|
|
102
109
|
getLength(): number;
|
|
103
110
|
/**
|
|
104
111
|
* Sets image template url source.
|
|
@@ -19,6 +19,9 @@ declare class RayHandler {
|
|
|
19
19
|
protected _renderer: Renderer | null;
|
|
20
20
|
protected _rays: Ray[];
|
|
21
21
|
protected _opaqueCounterIndex: number;
|
|
22
|
+
_relativeCenter: Vec3;
|
|
23
|
+
protected _rtcEyePositionHigh: Float32Array;
|
|
24
|
+
protected _rtcEyePositionLow: Float32Array;
|
|
22
25
|
protected _vertexBuffer: WebGLBufferExt | null;
|
|
23
26
|
protected _startPositionHighBuffer: WebGLBufferExt | null;
|
|
24
27
|
protected _startPositionLowBuffer: WebGLBufferExt | null;
|
|
@@ -71,6 +74,7 @@ declare class RayHandler {
|
|
|
71
74
|
drawPicking(): void;
|
|
72
75
|
reindexRaysArray(startIndex: number): void;
|
|
73
76
|
protected _removeRay(ray: Ray): void;
|
|
77
|
+
setRelativeCenter(c: Vec3): void;
|
|
74
78
|
remove(ray: Ray): void;
|
|
75
79
|
setStartPositionArr(index: number, positionHigh: Vec3, positionLow: Vec3): void;
|
|
76
80
|
setEndPositionArr(index: number, positionHigh: Vec3, positionLow: Vec3): void;
|
|
@@ -16,12 +16,15 @@ export interface IStripParams {
|
|
|
16
16
|
color?: string | NumberArray4 | Vec4;
|
|
17
17
|
opacity?: number;
|
|
18
18
|
path?: TStrip[];
|
|
19
|
+
pathTimes?: number[];
|
|
19
20
|
}
|
|
20
21
|
/**
|
|
21
22
|
* Strip object.
|
|
22
23
|
* @class
|
|
23
24
|
* @param {*} [options] - Strip options:
|
|
24
25
|
* @param {boolean} [options.visibility] - Strip visibility.
|
|
26
|
+
* @param {number[]} [options.pathTimes] - Time of every path edge. Makes the strip follow the
|
|
27
|
+
* entity collection time, see {@link EntityCollection#setTime} and {@link EntityCollection#setTimeOpacity}.
|
|
25
28
|
* @example <caption>Stripe example</caption>
|
|
26
29
|
* new og.Entity({
|
|
27
30
|
* strip: {
|
|
@@ -62,6 +65,11 @@ declare class Strip {
|
|
|
62
65
|
protected _verticesLow: number[];
|
|
63
66
|
protected _indexes: number[];
|
|
64
67
|
protected _path: TStrip[];
|
|
68
|
+
protected _times: number[] | null;
|
|
69
|
+
protected _timesArr: Int32Array;
|
|
70
|
+
protected _timesBuffer: WebGLBufferExt | null;
|
|
71
|
+
protected _suspendBuffers: boolean;
|
|
72
|
+
protected _rtcCenter: Vec3;
|
|
65
73
|
protected _pickingColor: Float32Array;
|
|
66
74
|
protected _gridSize: number;
|
|
67
75
|
/**
|
|
@@ -103,6 +111,21 @@ declare class Strip {
|
|
|
103
111
|
*/
|
|
104
112
|
setOpacity(opacity: number): void;
|
|
105
113
|
isOpaque(): boolean;
|
|
114
|
+
/**
|
|
115
|
+
* Returns true when the strip has edge times and follows the entity collection time.
|
|
116
|
+
* @public
|
|
117
|
+
* @returns {boolean}
|
|
118
|
+
*/
|
|
119
|
+
isTimed(): boolean;
|
|
120
|
+
getPathTimes(): number[] | null;
|
|
121
|
+
/**
|
|
122
|
+
* Sets edge times. Null removes them and the strip stops following the entity collection time.
|
|
123
|
+
* @public
|
|
124
|
+
* @param {number[] | null} times - Time of every path edge, missing values repeat the previous one.
|
|
125
|
+
*/
|
|
126
|
+
setPathTimes(times: number[] | null): void;
|
|
127
|
+
protected _resolveTimes(): number[];
|
|
128
|
+
protected _rebuildTimes(): void;
|
|
106
129
|
/**
|
|
107
130
|
* Sets strip visibility.
|
|
108
131
|
* @public
|
|
@@ -119,6 +142,13 @@ declare class Strip {
|
|
|
119
142
|
* @param {Scene} scene - Assigned render node.
|
|
120
143
|
*/
|
|
121
144
|
bindScene(scene: Scene): void;
|
|
145
|
+
protected _toTwoFloats(p: Vec3): void;
|
|
146
|
+
/**
|
|
147
|
+
* Rebuilds vertices relative to the handler relative center when it has moved.
|
|
148
|
+
* @public
|
|
149
|
+
* @returns {boolean} True when the strip was rebuilt.
|
|
150
|
+
*/
|
|
151
|
+
updateRTCPosition(): boolean;
|
|
122
152
|
/**
|
|
123
153
|
* Removes from entity.
|
|
124
154
|
* @public
|
|
@@ -134,12 +164,12 @@ declare class Strip {
|
|
|
134
164
|
*/
|
|
135
165
|
_deleteBuffers(): void;
|
|
136
166
|
protected _createBuffers(): void;
|
|
137
|
-
addEdge3v(p2: Vec3, p3: Vec3): void;
|
|
138
|
-
setEdge3v(p2: Vec3, p3: Vec3, index: number): void;
|
|
167
|
+
addEdge3v(p2: Vec3, p3: Vec3, time?: number): void;
|
|
168
|
+
setEdge3v(p2: Vec3, p3: Vec3, index: number, time?: number): void;
|
|
139
169
|
removeEdge(index: number): void;
|
|
140
170
|
setGridSize(gridSize: number): void;
|
|
141
171
|
getPath(): TStrip[];
|
|
142
|
-
setPath(path: TStripExt[] | TStrip[]): void;
|
|
143
|
-
insertEdge3v(p0: Vec3, p1: Vec3, index: number): void;
|
|
172
|
+
setPath(path: TStripExt[] | TStrip[], pathTimes?: number[]): void;
|
|
173
|
+
insertEdge3v(p0: Vec3, p1: Vec3, index: number, time?: number): void;
|
|
144
174
|
}
|
|
145
175
|
export { Strip };
|
|
@@ -2,6 +2,7 @@ import { EntityCollection } from "../EntityCollection";
|
|
|
2
2
|
import { Renderer } from "../../renderer/Renderer";
|
|
3
3
|
import { Scene } from "../../scene/Scene";
|
|
4
4
|
import { Strip } from "./Strip";
|
|
5
|
+
import { Vec3 } from "../../math/Vec3";
|
|
5
6
|
declare class StripHandler {
|
|
6
7
|
static __counter__: number;
|
|
7
8
|
protected __id: number;
|
|
@@ -30,8 +31,28 @@ declare class StripHandler {
|
|
|
30
31
|
*/
|
|
31
32
|
protected _strips: Strip[];
|
|
32
33
|
protected _opaqueCount: number;
|
|
34
|
+
_relativeCenter: Vec3;
|
|
35
|
+
_rtcEyePositionHigh: Float32Array;
|
|
36
|
+
_rtcEyePositionLow: Float32Array;
|
|
37
|
+
/**
|
|
38
|
+
* Current time of the lines with path times, in the same units as their times.
|
|
39
|
+
* @public
|
|
40
|
+
* @type {number}
|
|
41
|
+
*/
|
|
42
|
+
time: number;
|
|
43
|
+
/**
|
|
44
|
+
* Opacity multipliers of the path parts already passed and still ahead of the current time.
|
|
45
|
+
* @public
|
|
46
|
+
* @type {Float32Array}
|
|
47
|
+
*/
|
|
48
|
+
timeOpacity: Float32Array;
|
|
49
|
+
setTime(time: number): void;
|
|
50
|
+
setTimeOpacity(past: number, future: number): void;
|
|
33
51
|
constructor(entityCollection: EntityCollection);
|
|
52
|
+
setRelativeCenter(c: Vec3): void;
|
|
53
|
+
protected _updateRTCEyePosition(): void;
|
|
34
54
|
protected _initProgram(): void;
|
|
55
|
+
initTimedPrograms(): void;
|
|
35
56
|
bindScene(scene: Scene): void;
|
|
36
57
|
protected _swap(i: number, j: number): void;
|
|
37
58
|
add(strip: Strip): void;
|
package/lib/layer/Vector.d.ts
CHANGED
|
@@ -279,6 +279,19 @@ declare class Vector extends BaseTileMaterialLayer {
|
|
|
279
279
|
* @param entityCollection
|
|
280
280
|
*/
|
|
281
281
|
_bindEventsDefault(entityCollection: EntityCollection): void;
|
|
282
|
+
/**
|
|
283
|
+
* Sets the current time of polylines and strips with path times.
|
|
284
|
+
* @public
|
|
285
|
+
* @param {number} time - Time in the same units as the path times.
|
|
286
|
+
*/
|
|
287
|
+
setTime(time: number): void;
|
|
288
|
+
/**
|
|
289
|
+
* Sets opacity multipliers of the path parts passed and ahead of the current time.
|
|
290
|
+
* @public
|
|
291
|
+
* @param {number} past - Multiplier up to the current time.
|
|
292
|
+
* @param {number} future - Multiplier after the current time.
|
|
293
|
+
*/
|
|
294
|
+
setTimeOpacity(past: number, future: number): void;
|
|
282
295
|
protected _collectStripCollectionPASS(outArr: EntityCollection[]): void;
|
|
283
296
|
protected _collectPolylineCollectionPASS(outArr: EntityCollection[]): void;
|
|
284
297
|
protected _collectGeoObjectCollectionPASS(outArr: EntityCollection[]): void;
|