vtk.js 26.9.4 → 26.9.5
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/ComputeHistogram.worker-lite.worker.js.LICENSE.txt +1 -1
- package/ComputeHistogram.worker.worker.js.LICENSE.txt +1 -1
- package/PaintFilter.worker-lite.worker.js.LICENSE.txt +1 -1
- package/PaintFilter.worker.worker.js.LICENSE.txt +1 -1
- package/Sources/Common/DataModel/BoundingBox/index.d.ts +659 -0
- package/Sources/Rendering/Core/HardwareSelector/index.d.ts +84 -0
- package/Sources/Rendering/Core/ImageMapper/index.d.ts +3 -3
- package/Sources/Rendering/Core/RenderWindowInteractor/index.d.ts +6 -0
- package/Sources/Rendering/Core/Renderer/index.d.ts +13 -0
- package/Sources/Rendering/OpenGL/HardwareSelector/Constants.d.ts +8 -0
- package/Sources/Rendering/OpenGL/HardwareSelector/index.d.ts +339 -0
- package/Sources/Testing/index.js +13 -0
- package/Sources/Testing/setupTestEnv.js +2 -0
- package/Sources/vtk.d.ts +14 -15
- package/package.json +1 -1
- package/vtk-bundle.html +1 -1
- package/vtk-lite-bundle.html +1 -1
- package/vtk-lite.js.LICENSE.txt +1 -1
- package/vtk.js.LICENSE.txt +1 -1
|
@@ -0,0 +1,659 @@
|
|
|
1
|
+
import { mat4 } from 'gl-matrix';
|
|
2
|
+
import { Bounds, Vector2, Vector3 } from 'vtk.js/Sources/types';
|
|
3
|
+
import vtkPoints from 'vtk.js/Sources/Common/Core/Points';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Tests whether two bounds equal.
|
|
7
|
+
* @param {Bounds} a
|
|
8
|
+
* @param {Bounds} b
|
|
9
|
+
*/
|
|
10
|
+
export function equals(a: Bounds, b: Bounds): boolean;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Tests whether a given bounds is valid.
|
|
14
|
+
* @param {Bounds} bounds
|
|
15
|
+
*/
|
|
16
|
+
export function isValid(bounds: Bounds): boolean;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Sets a bounding box from another bounding box.
|
|
20
|
+
* @param {Bounds} bounds
|
|
21
|
+
* @param {Bounds} other
|
|
22
|
+
*/
|
|
23
|
+
export function setBounds(bounds: Bounds, other: Bounds): Bounds;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Resets a bounds to infinity.
|
|
27
|
+
* @param {Bounds} bounds
|
|
28
|
+
*/
|
|
29
|
+
export function reset(bounds: Bounds): Bounds;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Adds points to a bounding box.
|
|
33
|
+
* @param {Bounds} bounds
|
|
34
|
+
* @param {number} x
|
|
35
|
+
* @param {number} y
|
|
36
|
+
* @param {number} z
|
|
37
|
+
*/
|
|
38
|
+
export function addPoint(
|
|
39
|
+
bounds: Bounds,
|
|
40
|
+
x: number,
|
|
41
|
+
y: number,
|
|
42
|
+
z: number
|
|
43
|
+
): Bounds;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Adds points to a bounding box.
|
|
47
|
+
* @param {Bounds} bounds
|
|
48
|
+
* @param {number[]} points A flattened array of 3D coordinates.
|
|
49
|
+
*/
|
|
50
|
+
export function addPoints(bounds: Bounds, points: number[]): Bounds;
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Adds two bounding boxes together.
|
|
54
|
+
* @param {Bounds} bounds
|
|
55
|
+
* @param {number} xMin
|
|
56
|
+
* @param {number} xMax
|
|
57
|
+
* @param {number} yMin
|
|
58
|
+
* @param {number} yMax
|
|
59
|
+
* @param {number} zMin
|
|
60
|
+
* @param {number} zMax
|
|
61
|
+
*/
|
|
62
|
+
export function addBounds(
|
|
63
|
+
bounds: Bounds,
|
|
64
|
+
xMin: number,
|
|
65
|
+
xMax: number,
|
|
66
|
+
yMin: number,
|
|
67
|
+
yMax: number,
|
|
68
|
+
zMin: number,
|
|
69
|
+
zMax: number
|
|
70
|
+
): Bounds;
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Sets the min point of a bounding box.
|
|
74
|
+
* @param {Bounds} bounds
|
|
75
|
+
* @param {number} x
|
|
76
|
+
* @param {number} y
|
|
77
|
+
* @param {number} z
|
|
78
|
+
*/
|
|
79
|
+
export function setMinPoint(
|
|
80
|
+
bounds: Bounds,
|
|
81
|
+
x: number,
|
|
82
|
+
y: number,
|
|
83
|
+
z: number
|
|
84
|
+
): boolean;
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Sets the max point of a bounding box.
|
|
88
|
+
* @param {Bounds} bounds
|
|
89
|
+
* @param {number} x
|
|
90
|
+
* @param {number} y
|
|
91
|
+
* @param {number} z
|
|
92
|
+
*/
|
|
93
|
+
export function setMaxPoint(
|
|
94
|
+
bounds: Bounds,
|
|
95
|
+
x: number,
|
|
96
|
+
y: number,
|
|
97
|
+
z: number
|
|
98
|
+
): boolean;
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Inflates a bounding box.
|
|
102
|
+
* @param {Bounds} bounds
|
|
103
|
+
* @param {number} delta
|
|
104
|
+
*/
|
|
105
|
+
export function inflate(bounds: Bounds, delta: number): Bounds;
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Scales a bounding box.
|
|
109
|
+
* @param {Bounds} bounds
|
|
110
|
+
* @param {number} sx
|
|
111
|
+
* @param {number} sy
|
|
112
|
+
* @param {number} sz
|
|
113
|
+
*/
|
|
114
|
+
export function scale(
|
|
115
|
+
bounds: Bounds,
|
|
116
|
+
sx: number,
|
|
117
|
+
sy: number,
|
|
118
|
+
sz: number
|
|
119
|
+
): boolean;
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Gets the center of a bounding box.
|
|
123
|
+
* @param {Bounds} bounds
|
|
124
|
+
*/
|
|
125
|
+
export function getCenter(bounds: Bounds): Vector3;
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Scales a bounding box around its center.
|
|
129
|
+
* @param {Bounds} bounds
|
|
130
|
+
* @param {number} sx
|
|
131
|
+
* @param {number} sy
|
|
132
|
+
* @param {number} sz
|
|
133
|
+
*/
|
|
134
|
+
export function scaleAboutCenter(
|
|
135
|
+
bounds: Bounds,
|
|
136
|
+
sx: number,
|
|
137
|
+
sy: number,
|
|
138
|
+
sz: number
|
|
139
|
+
): boolean;
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Gets the bounding box side length.
|
|
143
|
+
* @param {Bounds} bounds
|
|
144
|
+
* @param {number} index
|
|
145
|
+
*/
|
|
146
|
+
export function getLength(bounds: Bounds, index: number): number;
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Gets the lengths of all sides.
|
|
150
|
+
* @param {Bounds} bounds
|
|
151
|
+
*/
|
|
152
|
+
export function getLengths(bounds: Bounds): Vector3;
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Gets the x range of a bounding box.
|
|
156
|
+
* @param {Bounds} bounds
|
|
157
|
+
*/
|
|
158
|
+
export function getXRange(bounds: Bounds): Vector2;
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Gets the y range of a bounding box.
|
|
162
|
+
* @param {Bounds} bounds
|
|
163
|
+
*/
|
|
164
|
+
export function getYRange(bounds: Bounds): Vector2;
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Gets the z range of a bounding box.
|
|
168
|
+
* @param {Bounds} bounds
|
|
169
|
+
*/
|
|
170
|
+
export function getZRange(bounds: Bounds): Vector2;
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Gets the maximum side length of the bounding box.
|
|
174
|
+
* @param {Bounds} bounds
|
|
175
|
+
*/
|
|
176
|
+
export function getMaxLength(bounds: Bounds): number;
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* Gets the diagonal of the bounding box.
|
|
180
|
+
* @param {Bounds} bounds
|
|
181
|
+
*/
|
|
182
|
+
export function getDiagonalLength(bounds: Bounds): number;
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* Gets the min point.
|
|
186
|
+
* @param {Bounds} bounds
|
|
187
|
+
*/
|
|
188
|
+
|
|
189
|
+
export function getMinPoint(bounds: Bounds): Vector3;
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* Gets the max point.
|
|
193
|
+
* @param {Bounds} bounds
|
|
194
|
+
*/
|
|
195
|
+
export function getMaxPoint(bounds: Bounds): Vector3;
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* Gets the corners of a bounding box.
|
|
199
|
+
* @param {Bounds} bounds
|
|
200
|
+
* @param {Vector3[]} corners
|
|
201
|
+
*/
|
|
202
|
+
export function getCorners(bounds: Bounds, corners: Vector3[]): Vector3[];
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* Computes the two corner poitns with min and max coords.
|
|
206
|
+
* @param {Bounds} bounds
|
|
207
|
+
* @param {Vector3} point1
|
|
208
|
+
* @param {Vector3} point2
|
|
209
|
+
*/
|
|
210
|
+
export function computeCornerPoints(
|
|
211
|
+
bounds: Bounds,
|
|
212
|
+
point1: Vector3,
|
|
213
|
+
point2: Vector3
|
|
214
|
+
): Vector3;
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* Transforms a bounding box.
|
|
218
|
+
* @param {Bounds} bounds
|
|
219
|
+
* @param {mat4} transform
|
|
220
|
+
* @param {Bounds} out
|
|
221
|
+
*/
|
|
222
|
+
export function transformBounds(
|
|
223
|
+
bounds: Bounds,
|
|
224
|
+
transform: mat4,
|
|
225
|
+
out: Bounds
|
|
226
|
+
): ReturnType<typeof addPoints>;
|
|
227
|
+
|
|
228
|
+
export function computeScale3(bounds: Bounds, scale3: Vector3): Vector3;
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* Compute local bounds.
|
|
232
|
+
* Not as fast as vtkPoints.getBounds() if u, v, w form a natural basis.
|
|
233
|
+
* @param {vtkPoints} points
|
|
234
|
+
* @param {array} u first vector
|
|
235
|
+
* @param {array} v second vector
|
|
236
|
+
* @param {array} w third vector
|
|
237
|
+
*/
|
|
238
|
+
|
|
239
|
+
export function computeLocalBounds(
|
|
240
|
+
points: vtkPoints,
|
|
241
|
+
u: Vector3,
|
|
242
|
+
v: Vector3,
|
|
243
|
+
w: Vector3
|
|
244
|
+
): Bounds;
|
|
245
|
+
|
|
246
|
+
/**
|
|
247
|
+
* The method returns a non-zero value if the bounding box is hit.
|
|
248
|
+
* Origin[3] starts the ray, dir[3] is the vector components of the ray in the x-y-z
|
|
249
|
+
* directions, coord[3] is the location of hit, and t is the parametric
|
|
250
|
+
* coordinate along line. (Notes: the intersection ray dir[3] is NOT
|
|
251
|
+
* normalized. Valid intersections will only occur between 0<=t<=1.)
|
|
252
|
+
* @param {Bounds} bounds
|
|
253
|
+
* @param {Vector3} origin
|
|
254
|
+
* @param {Vector3} dir
|
|
255
|
+
* @param {Vector3} coord
|
|
256
|
+
* @param {number} tolerance
|
|
257
|
+
*/
|
|
258
|
+
export function intersectBox(
|
|
259
|
+
bounds: Bounds,
|
|
260
|
+
origin: Vector3,
|
|
261
|
+
dir: Vector3,
|
|
262
|
+
coord: Vector3,
|
|
263
|
+
tolerance: number
|
|
264
|
+
): boolean;
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* Plane intersection with box
|
|
268
|
+
* The plane is infinite in extent and defined by an origin and normal.The function indicates
|
|
269
|
+
* whether the plane intersects, not the particulars of intersection points and such
|
|
270
|
+
* The function returns non-zero if the plane and box intersect; zero otherwise.
|
|
271
|
+
* @param {Bounds} bounds
|
|
272
|
+
* @param {Vector3} origin
|
|
273
|
+
* @param {Vector3} normal
|
|
274
|
+
*/
|
|
275
|
+
export function intersectPlane(
|
|
276
|
+
bounds: Bounds,
|
|
277
|
+
origin: Vector3,
|
|
278
|
+
normal: Vector3
|
|
279
|
+
): boolean;
|
|
280
|
+
|
|
281
|
+
/**
|
|
282
|
+
* Do two bounding boxes intersect.
|
|
283
|
+
* @param {Bounds} bounds
|
|
284
|
+
* @param bBounds
|
|
285
|
+
*/
|
|
286
|
+
export function intersect(bounds: Bounds, bBounds: Bounds): boolean;
|
|
287
|
+
|
|
288
|
+
/**
|
|
289
|
+
* Do two bounding boxes intersect.
|
|
290
|
+
* @param {Bounds} bounds
|
|
291
|
+
* @param {Bounds} bBounds
|
|
292
|
+
*/
|
|
293
|
+
export function intersects(bounds: Bounds, bBounds: Bounds): boolean;
|
|
294
|
+
|
|
295
|
+
/**
|
|
296
|
+
* Does the bbox contain a given point.
|
|
297
|
+
* @param {Bounds} bounds
|
|
298
|
+
* @param {number} x
|
|
299
|
+
* @param {number} y
|
|
300
|
+
* @param {number} z
|
|
301
|
+
*/
|
|
302
|
+
export function containsPoint(
|
|
303
|
+
bounds: Bounds,
|
|
304
|
+
x: number,
|
|
305
|
+
y: number,
|
|
306
|
+
z: number
|
|
307
|
+
): boolean;
|
|
308
|
+
|
|
309
|
+
/**
|
|
310
|
+
* Is a bbox contained in another bbox.
|
|
311
|
+
* @param {Bounds} bounds
|
|
312
|
+
* @param {Bounds} other
|
|
313
|
+
*/
|
|
314
|
+
export function contains(bounds: Bounds, other: Bounds): boolean;
|
|
315
|
+
|
|
316
|
+
/**
|
|
317
|
+
* Does a plane intersect a boox.
|
|
318
|
+
* @param {Bounds} bounds
|
|
319
|
+
* @param {Vector3} origin
|
|
320
|
+
* @param {Vector3} normal
|
|
321
|
+
*/
|
|
322
|
+
export function cutWithPlane(
|
|
323
|
+
bounds: Bounds,
|
|
324
|
+
origin: Vector3,
|
|
325
|
+
normal: Vector3
|
|
326
|
+
): boolean;
|
|
327
|
+
|
|
328
|
+
declare class BoundingBox {
|
|
329
|
+
getBounds(): Bounds;
|
|
330
|
+
/**
|
|
331
|
+
* Tests whether two bounds equal.
|
|
332
|
+
* @param {Bounds} a
|
|
333
|
+
* @param {Bounds} b
|
|
334
|
+
*/
|
|
335
|
+
equals(a: Bounds, b: Bounds): boolean;
|
|
336
|
+
|
|
337
|
+
/**
|
|
338
|
+
* Tests whether a given bounds is valid.
|
|
339
|
+
* @param {Bounds} bounds
|
|
340
|
+
*/
|
|
341
|
+
isValid(bounds: Bounds): boolean;
|
|
342
|
+
|
|
343
|
+
/**
|
|
344
|
+
* Sets a bounding box from another bounding box.
|
|
345
|
+
* @param {Bounds} bounds
|
|
346
|
+
* @param {Bounds} other
|
|
347
|
+
*/
|
|
348
|
+
setBounds(bounds: Bounds, other: Bounds): Bounds;
|
|
349
|
+
|
|
350
|
+
/**
|
|
351
|
+
* Resets a bounds to infinity.
|
|
352
|
+
* @param {Bounds} bounds
|
|
353
|
+
*/
|
|
354
|
+
reset(bounds: Bounds): Bounds;
|
|
355
|
+
|
|
356
|
+
/**
|
|
357
|
+
* Adds points to a bounding box.
|
|
358
|
+
* @param {Bounds} bounds
|
|
359
|
+
* @param {number} x
|
|
360
|
+
* @param {number} y
|
|
361
|
+
* @param {number} z
|
|
362
|
+
*/
|
|
363
|
+
addPoint(bounds: Bounds, x: number, y: number, z: number): Bounds;
|
|
364
|
+
|
|
365
|
+
/**
|
|
366
|
+
* Adds points to a bounding box.
|
|
367
|
+
* @param {Bounds} bounds
|
|
368
|
+
* @param {number[]} points A flattened array of 3D coordinates.
|
|
369
|
+
*/
|
|
370
|
+
addPoints(bounds: Bounds, points: number[]): Bounds;
|
|
371
|
+
|
|
372
|
+
/**
|
|
373
|
+
* Adds two bounding boxes together.
|
|
374
|
+
* @param {Bounds} bounds
|
|
375
|
+
* @param {number} xMin
|
|
376
|
+
* @param {number} xMax
|
|
377
|
+
* @param {number} yMin
|
|
378
|
+
* @param {number} yMax
|
|
379
|
+
* @param {number} zMin
|
|
380
|
+
* @param {number} zMax
|
|
381
|
+
*/
|
|
382
|
+
addBounds(
|
|
383
|
+
bounds: Bounds,
|
|
384
|
+
xMin: number,
|
|
385
|
+
xMax: number,
|
|
386
|
+
yMin: number,
|
|
387
|
+
yMax: number,
|
|
388
|
+
zMin: number,
|
|
389
|
+
zMax: number
|
|
390
|
+
): Bounds;
|
|
391
|
+
|
|
392
|
+
/**
|
|
393
|
+
* Sets the min point of a bounding box.
|
|
394
|
+
* @param {Bounds} bounds
|
|
395
|
+
* @param {number} x
|
|
396
|
+
* @param {number} y
|
|
397
|
+
* @param {number} z
|
|
398
|
+
*/
|
|
399
|
+
setMinPoint(bounds: Bounds, x: number, y: number, z: number): boolean;
|
|
400
|
+
|
|
401
|
+
/**
|
|
402
|
+
* Sets the max point of a bounding box.
|
|
403
|
+
* @param {Bounds} bounds
|
|
404
|
+
* @param {number} x
|
|
405
|
+
* @param {number} y
|
|
406
|
+
* @param {number} z
|
|
407
|
+
*/
|
|
408
|
+
setMaxPoint(bounds: Bounds, x: number, y: number, z: number): boolean;
|
|
409
|
+
|
|
410
|
+
/**
|
|
411
|
+
* Inflates a bounding box.
|
|
412
|
+
* @param {Bounds} bounds
|
|
413
|
+
* @param {number} delta
|
|
414
|
+
*/
|
|
415
|
+
inflate(bounds: Bounds, delta: number): Bounds;
|
|
416
|
+
|
|
417
|
+
/**
|
|
418
|
+
* Scales a bounding box.
|
|
419
|
+
* @param {Bounds} bounds
|
|
420
|
+
* @param {number} sx
|
|
421
|
+
* @param {number} sy
|
|
422
|
+
* @param {number} sz
|
|
423
|
+
*/
|
|
424
|
+
scale(bounds: Bounds, sx: number, sy: number, sz: number): boolean;
|
|
425
|
+
|
|
426
|
+
/**
|
|
427
|
+
* Gets the center of a bounding box.
|
|
428
|
+
* @param {Bounds} bounds
|
|
429
|
+
*/
|
|
430
|
+
getCenter(bounds: Bounds): Vector3;
|
|
431
|
+
|
|
432
|
+
/**
|
|
433
|
+
* Scales a bounding box around its center.
|
|
434
|
+
* @param {Bounds} bounds
|
|
435
|
+
* @param {number} sx
|
|
436
|
+
* @param {number} sy
|
|
437
|
+
* @param {number} sz
|
|
438
|
+
*/
|
|
439
|
+
scaleAboutCenter(bounds: Bounds, sx: number, sy: number, sz: number): boolean;
|
|
440
|
+
|
|
441
|
+
/**
|
|
442
|
+
* Gets the bounding box side length.
|
|
443
|
+
* @param {Bounds} bounds
|
|
444
|
+
* @param {number} index
|
|
445
|
+
*/
|
|
446
|
+
getLength(bounds: Bounds, index: number): number;
|
|
447
|
+
|
|
448
|
+
/**
|
|
449
|
+
* Gets the lengths of all sides.
|
|
450
|
+
* @param {Bounds} bounds
|
|
451
|
+
*/
|
|
452
|
+
getLengths(bounds: Bounds): Vector3;
|
|
453
|
+
|
|
454
|
+
/**
|
|
455
|
+
* Gets the x range of a bounding box.
|
|
456
|
+
* @param {Bounds} bounds
|
|
457
|
+
*/
|
|
458
|
+
getXRange(bounds: Bounds): Vector2;
|
|
459
|
+
|
|
460
|
+
/**
|
|
461
|
+
* Gets the y range of a bounding box.
|
|
462
|
+
* @param {Bounds} bounds
|
|
463
|
+
*/
|
|
464
|
+
getYRange(bounds: Bounds): Vector2;
|
|
465
|
+
|
|
466
|
+
/**
|
|
467
|
+
* Gets the z range of a bounding box.
|
|
468
|
+
* @param {Bounds} bounds
|
|
469
|
+
*/
|
|
470
|
+
getZRange(bounds: Bounds): Vector2;
|
|
471
|
+
|
|
472
|
+
/**
|
|
473
|
+
* Gets the maximum side length of the bounding box.
|
|
474
|
+
* @param {Bounds} bounds
|
|
475
|
+
*/
|
|
476
|
+
getMaxLength(bounds: Bounds): number;
|
|
477
|
+
|
|
478
|
+
/**
|
|
479
|
+
* Gets the diagonal of the bounding box.
|
|
480
|
+
* @param {Bounds} bounds
|
|
481
|
+
*/
|
|
482
|
+
getDiagonalLength(bounds: Bounds): number;
|
|
483
|
+
|
|
484
|
+
/**
|
|
485
|
+
* Gets the min point.
|
|
486
|
+
* @param {Bounds} bounds
|
|
487
|
+
*/
|
|
488
|
+
|
|
489
|
+
getMinPoint(bounds: Bounds): Vector3;
|
|
490
|
+
|
|
491
|
+
/**
|
|
492
|
+
* Gets the max point.
|
|
493
|
+
* @param {Bounds} bounds
|
|
494
|
+
*/
|
|
495
|
+
getMaxPoint(bounds: Bounds): Vector3;
|
|
496
|
+
|
|
497
|
+
/**
|
|
498
|
+
* Gets the corners of a bounding box.
|
|
499
|
+
* @param {Bounds} bounds
|
|
500
|
+
* @param {Vector3[]} corners
|
|
501
|
+
*/
|
|
502
|
+
getCorners(bounds: Bounds, corners: Vector3[]): Vector3[];
|
|
503
|
+
|
|
504
|
+
/**
|
|
505
|
+
* Computes the two corner poitns with min and max coords.
|
|
506
|
+
* @param {Bounds} bounds
|
|
507
|
+
* @param {Vector3} point1
|
|
508
|
+
* @param {Vector3} point2
|
|
509
|
+
*/
|
|
510
|
+
computeCornerPoints(
|
|
511
|
+
bounds: Bounds,
|
|
512
|
+
point1: Vector3,
|
|
513
|
+
point2: Vector3
|
|
514
|
+
): Vector3;
|
|
515
|
+
|
|
516
|
+
/**
|
|
517
|
+
* Transforms a bounding box.
|
|
518
|
+
* @param {Bounds} bounds
|
|
519
|
+
* @param {mat4} transform
|
|
520
|
+
* @param {Bounds} out
|
|
521
|
+
*/
|
|
522
|
+
transformBounds(
|
|
523
|
+
bounds: Bounds,
|
|
524
|
+
transform: mat4,
|
|
525
|
+
out: Bounds
|
|
526
|
+
): ReturnType<typeof addPoints>;
|
|
527
|
+
|
|
528
|
+
computeScale3(bounds: Bounds, scale3: Vector3): Vector3;
|
|
529
|
+
|
|
530
|
+
/**
|
|
531
|
+
* Compute local bounds.
|
|
532
|
+
* Not as fast as vtkPoints.getBounds() if u, v, w form a natural basis.
|
|
533
|
+
* @param {vtkPoints} points
|
|
534
|
+
* @param {array} u first vector
|
|
535
|
+
* @param {array} v second vector
|
|
536
|
+
* @param {array} w third vector
|
|
537
|
+
*/
|
|
538
|
+
|
|
539
|
+
computeLocalBounds(
|
|
540
|
+
points: vtkPoints,
|
|
541
|
+
u: Vector3,
|
|
542
|
+
v: Vector3,
|
|
543
|
+
w: Vector3
|
|
544
|
+
): Bounds;
|
|
545
|
+
|
|
546
|
+
/**
|
|
547
|
+
* The method returns a non-zero value if the bounding box is hit.
|
|
548
|
+
* Origin[3] starts the ray, dir[3] is the vector components of the ray in the x-y-z
|
|
549
|
+
* directions, coord[3] is the location of hit, and t is the parametric
|
|
550
|
+
* coordinate along line. (Notes: the intersection ray dir[3] is NOT
|
|
551
|
+
* normalized. Valid intersections will only occur between 0<=t<=1.)
|
|
552
|
+
* @param {Bounds} bounds
|
|
553
|
+
* @param {Vector3} origin
|
|
554
|
+
* @param {Vector3} dir
|
|
555
|
+
* @param {Vector3} coord
|
|
556
|
+
* @param {number} tolerance
|
|
557
|
+
*/
|
|
558
|
+
intersectBox(
|
|
559
|
+
bounds: Bounds,
|
|
560
|
+
origin: Vector3,
|
|
561
|
+
dir: Vector3,
|
|
562
|
+
coord: Vector3,
|
|
563
|
+
tolerance: number
|
|
564
|
+
): boolean;
|
|
565
|
+
|
|
566
|
+
/**
|
|
567
|
+
* Plane intersection with box
|
|
568
|
+
* The plane is infinite in extent and defined by an origin and normal.The function indicates
|
|
569
|
+
* whether the plane intersects, not the particulars of intersection points and such
|
|
570
|
+
* The function returns non-zero if the plane and box intersect; zero otherwise.
|
|
571
|
+
* @param {Bounds} bounds
|
|
572
|
+
* @param {Vector3} origin
|
|
573
|
+
* @param {Vector3} normal
|
|
574
|
+
*/
|
|
575
|
+
intersectPlane(bounds: Bounds, origin: Vector3, normal: Vector3): boolean;
|
|
576
|
+
|
|
577
|
+
/**
|
|
578
|
+
* Do two bounding boxes intersect.
|
|
579
|
+
* @param {Bounds} bounds
|
|
580
|
+
* @param bBounds
|
|
581
|
+
*/
|
|
582
|
+
intersect(bounds: Bounds, bBounds: Bounds): boolean;
|
|
583
|
+
|
|
584
|
+
/**
|
|
585
|
+
* Do two bounding boxes intersect.
|
|
586
|
+
* @param {Bounds} bounds
|
|
587
|
+
* @param {Bounds} bBounds
|
|
588
|
+
*/
|
|
589
|
+
intersects(bounds: Bounds, bBounds: Bounds): boolean;
|
|
590
|
+
|
|
591
|
+
/**
|
|
592
|
+
* Does the bbox contain a given point.
|
|
593
|
+
* @param {Bounds} bounds
|
|
594
|
+
* @param {number} x
|
|
595
|
+
* @param {number} y
|
|
596
|
+
* @param {number} z
|
|
597
|
+
*/
|
|
598
|
+
containsPoint(bounds: Bounds, x: number, y: number, z: number): boolean;
|
|
599
|
+
|
|
600
|
+
/**
|
|
601
|
+
* Is a bbox contained in another bbox.
|
|
602
|
+
* @param {Bounds} bounds
|
|
603
|
+
* @param {Bounds} other
|
|
604
|
+
*/
|
|
605
|
+
contains(bounds: Bounds, other: Bounds): boolean;
|
|
606
|
+
|
|
607
|
+
/**
|
|
608
|
+
* Does a plane intersect a boox.
|
|
609
|
+
* @param {Bounds} bounds
|
|
610
|
+
* @param {Vector3} origin
|
|
611
|
+
* @param {Vector3} normal
|
|
612
|
+
*/
|
|
613
|
+
cutWithPlane(bounds: Bounds, origin: Vector3, normal: Vector3): boolean;
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
export interface IBoundingBoxInitialValues {
|
|
617
|
+
bounds?: Bounds;
|
|
618
|
+
}
|
|
619
|
+
|
|
620
|
+
declare const vtkBoundingBox: {
|
|
621
|
+
newInstance: (initialValues: IBoundingBoxInitialValues) => BoundingBox;
|
|
622
|
+
equals: typeof equals;
|
|
623
|
+
isValid: typeof isValid;
|
|
624
|
+
setBounds: typeof setBounds;
|
|
625
|
+
reset: typeof reset;
|
|
626
|
+
addPoint: typeof addPoint;
|
|
627
|
+
addPoints: typeof addPoints;
|
|
628
|
+
addBounds: typeof addBounds;
|
|
629
|
+
setMinPoint: typeof setMinPoint;
|
|
630
|
+
setMaxPoint: typeof setMaxPoint;
|
|
631
|
+
inflate: typeof inflate;
|
|
632
|
+
scale: typeof scale;
|
|
633
|
+
scaleAboutCenter: typeof scaleAboutCenter;
|
|
634
|
+
getCenter: typeof getCenter;
|
|
635
|
+
getLength: typeof getLength;
|
|
636
|
+
getLengths: typeof getLengths;
|
|
637
|
+
getMaxLength: typeof getMaxLength;
|
|
638
|
+
getDiagonalLength: typeof getDiagonalLength;
|
|
639
|
+
getMinPoint: typeof getMinPoint;
|
|
640
|
+
getMaxPoint: typeof getMaxPoint;
|
|
641
|
+
getXRange: typeof getXRange;
|
|
642
|
+
getYRange: typeof getYRange;
|
|
643
|
+
getZRange: typeof getZRange;
|
|
644
|
+
getCorners: typeof getCorners;
|
|
645
|
+
computeCornerPoints: typeof computeCornerPoints;
|
|
646
|
+
computeLocalBounds: typeof computeLocalBounds;
|
|
647
|
+
transformBounds: typeof transformBounds;
|
|
648
|
+
computeScale3: typeof computeScale3;
|
|
649
|
+
cutWithPlane: typeof cutWithPlane;
|
|
650
|
+
intersectBox: typeof intersectBox;
|
|
651
|
+
intersectPlane: typeof intersectPlane;
|
|
652
|
+
intersect: typeof intersect;
|
|
653
|
+
intersects: typeof intersects;
|
|
654
|
+
containsPoint: typeof containsPoint;
|
|
655
|
+
contains: typeof contains;
|
|
656
|
+
INIT_BOUNDS: Bounds;
|
|
657
|
+
};
|
|
658
|
+
|
|
659
|
+
export default vtkBoundingBox;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { FieldAssociations } from 'vtk.js/Sources/Common/DataModel/DataSet/Constants';
|
|
2
|
+
import vtkSelectionNode from 'vtk.js/Sources/Common/DataModel/SelectionNode';
|
|
3
|
+
import { vtkObject } from 'vtk.js/Sources/interfaces';
|
|
4
|
+
import vtkRenderer from 'vtk.js/Sources/Rendering/Core/Renderer';
|
|
5
|
+
|
|
6
|
+
export interface vtkHardwareSelector extends vtkObject {
|
|
7
|
+
/**
|
|
8
|
+
* Get the picking source data.
|
|
9
|
+
*
|
|
10
|
+
* @param {vtkRenderer} renderer
|
|
11
|
+
* @param {number} fx1 top left x coord
|
|
12
|
+
* @param {number} fy1 top left y coord
|
|
13
|
+
* @param {number} fx2 bottom right x coord
|
|
14
|
+
* @param {number} fy2 bottom right y coord
|
|
15
|
+
*/
|
|
16
|
+
getSourceDataAsync(
|
|
17
|
+
renderer: vtkRenderer,
|
|
18
|
+
fx1: number,
|
|
19
|
+
fy1: number,
|
|
20
|
+
fx2: number,
|
|
21
|
+
fy2: number
|
|
22
|
+
): Promise<unknown>;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Generates a selection.
|
|
26
|
+
*
|
|
27
|
+
* @param {vtkRenderer} renderer
|
|
28
|
+
* @param {number} fx1 top left x coord
|
|
29
|
+
* @param {number} fy1 top left y coord
|
|
30
|
+
* @param {number} fx2 bottom right x coord
|
|
31
|
+
* @param {number} fy2 bottom right y coord
|
|
32
|
+
*/
|
|
33
|
+
selectAsync(
|
|
34
|
+
renderer: vtkRenderer,
|
|
35
|
+
fx1: number,
|
|
36
|
+
fy1: number,
|
|
37
|
+
fx2: number,
|
|
38
|
+
fy2: number
|
|
39
|
+
): Promise<vtkSelectionNode[]>;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Sets the field association.
|
|
43
|
+
* @param {FieldAssociations} assoc
|
|
44
|
+
*/
|
|
45
|
+
setFieldAssociation(assoc: FieldAssociations): boolean;
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Gets the field association.
|
|
49
|
+
*/
|
|
50
|
+
getFieldAssociation(): FieldAssociations;
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Sets whether to capture Z values.
|
|
54
|
+
* @param {boolean} capture
|
|
55
|
+
*/
|
|
56
|
+
setCaptureZValues(capture: boolean): boolean;
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Gets whether to capture Z values.
|
|
60
|
+
*/
|
|
61
|
+
getCaptureZValues(): boolean;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export interface IHardwareSelectorInitialValues {
|
|
65
|
+
fieldAssociation?: FieldAssociations;
|
|
66
|
+
captureZValues?: boolean;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export function newInstance(
|
|
70
|
+
initialValues?: IHardwareSelectorInitialValues
|
|
71
|
+
): vtkHardwareSelector;
|
|
72
|
+
|
|
73
|
+
export function extend(
|
|
74
|
+
publicAPI: object,
|
|
75
|
+
model: object,
|
|
76
|
+
initialValues?: IHardwareSelectorInitialValues
|
|
77
|
+
): void;
|
|
78
|
+
|
|
79
|
+
export const vtkHardwareSelector: {
|
|
80
|
+
newInstance: typeof newInstance;
|
|
81
|
+
extend: typeof extend;
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
export default vtkHardwareSelector;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import vtkCamera from 'vtk.js/Sources/Rendering/Core/Camera';
|
|
2
|
-
import
|
|
2
|
+
import vtkAbstractImageMapper, { IAbstractImageMapperInitialValues } from 'vtk.js/Sources/Rendering/Core/AbstractImageMapper';
|
|
3
3
|
import { Bounds, Nullable, Vector3 } from 'vtk.js/Sources/types';
|
|
4
4
|
import { SlicingMode } from 'vtk.js/Sources/Rendering/Core/ImageMapper/Constants';
|
|
5
5
|
import vtkImageData from 'vtk.js/Sources/Common/DataModel/ImageData';
|
|
@@ -15,13 +15,13 @@ interface ICoincidentTopology {
|
|
|
15
15
|
offset: number;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
export interface IImageMapperInitialValues extends
|
|
18
|
+
export interface IImageMapperInitialValues extends IAbstractImageMapperInitialValues {
|
|
19
19
|
closestIJKAxis?: IClosestIJKAxis;
|
|
20
20
|
renderToRectangle?: boolean;
|
|
21
21
|
sliceAtFocalPoint?: boolean;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
export interface vtkImageMapper extends
|
|
24
|
+
export interface vtkImageMapper extends vtkAbstractImageMapper {
|
|
25
25
|
|
|
26
26
|
/**
|
|
27
27
|
* Returns the IJK slice value from a world position or XYZ slice value
|
|
@@ -984,6 +984,12 @@ export interface vtkRenderWindowInteractor extends vtkObject {
|
|
|
984
984
|
*/
|
|
985
985
|
getCurrentRenderer(): void;
|
|
986
986
|
|
|
987
|
+
/**
|
|
988
|
+
* Manually sets the current renderer.
|
|
989
|
+
* @param {vtkRenderer} ren
|
|
990
|
+
*/
|
|
991
|
+
setCurrentRenderer(ren: vtkRenderer): void;
|
|
992
|
+
|
|
987
993
|
/**
|
|
988
994
|
*
|
|
989
995
|
* @param container
|
|
@@ -7,6 +7,7 @@ import vtkProp from 'vtk.js/Sources/Rendering/Core/Prop';
|
|
|
7
7
|
import vtkViewport, { IViewportInitialValues } from 'vtk.js/Sources/Rendering/Core/Viewport';
|
|
8
8
|
import vtkVolume from 'vtk.js/Sources/Rendering/Core/Volume';
|
|
9
9
|
import vtkTexture from 'vtk.js/Sources/Rendering/Core/Texture';
|
|
10
|
+
import { EventHandler, vtkSubscription } from 'vtk.js/Sources/interfaces';
|
|
10
11
|
|
|
11
12
|
|
|
12
13
|
export interface IRendererInitialValues extends IViewportInitialValues {
|
|
@@ -42,6 +43,13 @@ export interface IRendererInitialValues extends IViewportInitialValues {
|
|
|
42
43
|
pass?: number;
|
|
43
44
|
}
|
|
44
45
|
|
|
46
|
+
export type VtkRendererEvent =
|
|
47
|
+
| { type: 'CreateCameraEvent', camera: vtkCamera }
|
|
48
|
+
| { type: 'ActiveCameraEvent', camera: vtkCamera }
|
|
49
|
+
| { type: 'ComputeVisiblePropBoundsEvent', renderer: vtkRenderer }
|
|
50
|
+
| { type: 'ResetCameraClippingRangeEvent', renderer: vtkRenderer }
|
|
51
|
+
| { type: 'ResetCameraEvent', renderer: vtkRenderer };
|
|
52
|
+
|
|
45
53
|
export interface vtkRenderer extends vtkViewport {
|
|
46
54
|
|
|
47
55
|
/**
|
|
@@ -654,6 +662,11 @@ export interface vtkRenderer extends vtkViewport {
|
|
|
654
662
|
* @param {Number[]} background The RGB color array.
|
|
655
663
|
*/
|
|
656
664
|
setBackground(background: number[]): boolean;
|
|
665
|
+
|
|
666
|
+
/**
|
|
667
|
+
* Adds an event listener.
|
|
668
|
+
*/
|
|
669
|
+
onEvent(cb: EventHandler, priority?: number): Readonly<vtkSubscription>;
|
|
657
670
|
}
|
|
658
671
|
|
|
659
672
|
/**
|
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
import vtkSelectionNode from 'vtk.js/Sources/Common/DataModel/SelectionNode';
|
|
2
|
+
import {
|
|
3
|
+
IHardwareSelectorInitialValues,
|
|
4
|
+
vtkHardwareSelector,
|
|
5
|
+
} from 'vtk.js/Sources/Rendering/Core/HardwareSelector';
|
|
6
|
+
import vtkProp from 'vtk.js/Sources/Rendering/Core/Prop';
|
|
7
|
+
import vtkRenderer from 'vtk.js/Sources/Rendering/Core/Renderer';
|
|
8
|
+
import vtkOpenGLRenderWindow from 'vtk.js/Sources/Rendering/OpenGL/RenderWindow';
|
|
9
|
+
import { FieldAssociations } from 'vtk.js/Sources/Common/DataModel/DataSet/Constants';
|
|
10
|
+
import { EventHandler, vtkSubscription } from 'vtk.js/Sources/interfaces';
|
|
11
|
+
import { Nullable, Vector2, Vector3 } from 'vtk.js/Sources/types';
|
|
12
|
+
import { PassTypes } from 'vtk.js/Sources/Rendering/OpenGL/HardwareSelector/Constants';
|
|
13
|
+
|
|
14
|
+
type Area = [number, number, number, number];
|
|
15
|
+
|
|
16
|
+
export interface BufferData {
|
|
17
|
+
area: Area;
|
|
18
|
+
pixBuffer: Uint8Array[];
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface SourceData {
|
|
22
|
+
area: Area;
|
|
23
|
+
pixBuffer: Uint8Array[];
|
|
24
|
+
captureZValues: boolean;
|
|
25
|
+
zBuffer: Uint8Array;
|
|
26
|
+
props: vtkProp[];
|
|
27
|
+
fieldAssociation: FieldAssociations;
|
|
28
|
+
renderer: vtkRenderer;
|
|
29
|
+
openGLRenderWindow: vtkOpenGLRenderWindow;
|
|
30
|
+
generateSelection(
|
|
31
|
+
buffdata: BufferData,
|
|
32
|
+
fx1: number,
|
|
33
|
+
fy1: number,
|
|
34
|
+
fx2: number,
|
|
35
|
+
fy2: number
|
|
36
|
+
): vtkSelectionNode[];
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export interface PixelInformation {
|
|
40
|
+
valid: boolean;
|
|
41
|
+
prop: vtkProp;
|
|
42
|
+
propID: number;
|
|
43
|
+
compositeID: number;
|
|
44
|
+
zValue: number;
|
|
45
|
+
displayPosition: Vector2;
|
|
46
|
+
attributeID?: number;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// TODO extends vtkHardwareSelector
|
|
50
|
+
export interface vtkOpenGLHardwareSelector extends vtkHardwareSelector {
|
|
51
|
+
/**
|
|
52
|
+
* Releases internal pixel buffer memory.
|
|
53
|
+
*/
|
|
54
|
+
releasePixBuffers(): void;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Preps for picking the scene.
|
|
58
|
+
*
|
|
59
|
+
* Call endSelection() afterwards.
|
|
60
|
+
*/
|
|
61
|
+
beginSelection(): void;
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Cleans up picking state.
|
|
65
|
+
*
|
|
66
|
+
* Should be after a call to beginSelection();
|
|
67
|
+
*/
|
|
68
|
+
endSelection(): void;
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Runs a pre-capture pass.
|
|
72
|
+
*/
|
|
73
|
+
preCapturePass(): void;
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Runs a post-capture pass.
|
|
77
|
+
*/
|
|
78
|
+
postCapturePass(): void;
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Generates a selection.
|
|
82
|
+
*/
|
|
83
|
+
select(): Nullable<vtkSelectionNode[]>;
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Get the picking source data.
|
|
87
|
+
*
|
|
88
|
+
* @param {vtkRenderer} renderer
|
|
89
|
+
* @param {number} fx1 top left x coord
|
|
90
|
+
* @param {number} fy1 top left y coord
|
|
91
|
+
* @param {number} fx2 bottom right x coord
|
|
92
|
+
* @param {number} fy2 bottom right y coord
|
|
93
|
+
*/
|
|
94
|
+
getSourceDataAsync(
|
|
95
|
+
renderer: vtkRenderer,
|
|
96
|
+
fx1: number,
|
|
97
|
+
fy1: number,
|
|
98
|
+
fx2: number,
|
|
99
|
+
fy2: number
|
|
100
|
+
): Promise<SourceData>;
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Captures the scene for picking.
|
|
104
|
+
* @returns whether the capture succeeded.
|
|
105
|
+
*/
|
|
106
|
+
captureBuffers(): boolean;
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Processes the pixel buffers for actors.
|
|
110
|
+
*/
|
|
111
|
+
processPixelBuffers(): void;
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Determines if a pass is required.
|
|
115
|
+
* @param {PassTypes} pass
|
|
116
|
+
*/
|
|
117
|
+
passRequired(pass: PassTypes): boolean;
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Saves the pixel buffer from the view.
|
|
121
|
+
* @param {PassTypes} pass
|
|
122
|
+
*/
|
|
123
|
+
savePixelBuffer(pass: PassTypes): void;
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Builds the prop hit list.
|
|
127
|
+
* @param {Uint8Array} pixelBuffer
|
|
128
|
+
*/
|
|
129
|
+
buildPropHitList(pixelBuffer: Uint8Array): void;
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Renders a prop for picking.
|
|
133
|
+
* @param {vtkProp} prop
|
|
134
|
+
*/
|
|
135
|
+
renderProp(prop: vtkProp): void;
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Sets the current prop's color value for the composite index.
|
|
139
|
+
* @param {number} index
|
|
140
|
+
*/
|
|
141
|
+
renderCompositeIndex(index: number): void;
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Renders an attribute ID.
|
|
145
|
+
* @param {number} attribId
|
|
146
|
+
*/
|
|
147
|
+
renderAttributeId(attribId: number): void;
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* Returns the pass type name as a string.
|
|
151
|
+
* @param {PassTypes} type
|
|
152
|
+
*/
|
|
153
|
+
passTypeToString(type: PassTypes): string;
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Has the prop with the given internal ID been hit.
|
|
157
|
+
* @param {number} id
|
|
158
|
+
*/
|
|
159
|
+
isPropHit(id: number): boolean;
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Sets the internal color used for coloring the current prop.
|
|
163
|
+
* @param {number} val
|
|
164
|
+
*/
|
|
165
|
+
setPropColorValueFromInt(val: number): void;
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Gets the selection information for a given pixel.
|
|
169
|
+
*
|
|
170
|
+
* @param inDispPos The input diplay position.
|
|
171
|
+
* @param maxDistance The max distance to consider from the input position.
|
|
172
|
+
* @param outDispPos The output display position.
|
|
173
|
+
*/
|
|
174
|
+
getPixelInformation(
|
|
175
|
+
inDispPos: Vector2,
|
|
176
|
+
maxDistance: number,
|
|
177
|
+
outDispPos: Vector2
|
|
178
|
+
): Nullable<PixelInformation>;
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Generates selections in a given area.
|
|
182
|
+
*
|
|
183
|
+
* @param {number} fx1 top left x coord
|
|
184
|
+
* @param {number} fy1 top left y coord
|
|
185
|
+
* @param {number} fx2 bottom right x coord
|
|
186
|
+
* @param {number} fy2 bottom right y coord
|
|
187
|
+
*/
|
|
188
|
+
generateSelection(
|
|
189
|
+
fx1: number,
|
|
190
|
+
fy1: number,
|
|
191
|
+
fx2: number,
|
|
192
|
+
fy2: number
|
|
193
|
+
): vtkSelectionNode[];
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Get the raw pixel buffer for a pass type.
|
|
197
|
+
* @param {PassTypes} passNo
|
|
198
|
+
*/
|
|
199
|
+
getRawPixelBuffer(passNo: PassTypes): Uint8Array;
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Get the pixel buffer for a pass type.
|
|
203
|
+
* @param {PassTypes} passNo
|
|
204
|
+
*/
|
|
205
|
+
getPixelBuffer(passNo: PassTypes): Uint8Array;
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Attaches a render window + renderer to this hardware selector.
|
|
209
|
+
* @param {Nullable<vtkOpenGLRenderWindow>} openglRenderWindow
|
|
210
|
+
* @param {Nullable<vtkRenderer>} renderer
|
|
211
|
+
*/
|
|
212
|
+
attach(
|
|
213
|
+
openglRenderWindow: Nullable<vtkOpenGLRenderWindow>,
|
|
214
|
+
renderer: Nullable<vtkRenderer>
|
|
215
|
+
): void;
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
* Sets the current renderer.
|
|
219
|
+
* @param {vtkRenderer} ren
|
|
220
|
+
*/
|
|
221
|
+
setRenderer(ren: vtkRenderer): boolean;
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* Gets the current renderer.
|
|
225
|
+
*/
|
|
226
|
+
getRenderer(): vtkRenderer;
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* Sets the current pass type.
|
|
230
|
+
* @param {PassTypes} pass
|
|
231
|
+
*/
|
|
232
|
+
setCurrentPass(pass: PassTypes): boolean;
|
|
233
|
+
|
|
234
|
+
/**
|
|
235
|
+
* Gets the current pass type.
|
|
236
|
+
*/
|
|
237
|
+
getCurrentPass(): PassTypes;
|
|
238
|
+
|
|
239
|
+
/**
|
|
240
|
+
* Sets the current opengl render window.
|
|
241
|
+
* @param {vtkOpenGLRenderWindow} oglrw
|
|
242
|
+
*/
|
|
243
|
+
setOpenGLRenderWindow(oglrw: vtkOpenGLRenderWindow): boolean;
|
|
244
|
+
|
|
245
|
+
getOpenGLRenderWindow(): vtkOpenGLRenderWindow;
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* Sets the maximum point ID.
|
|
249
|
+
* @param {number} id
|
|
250
|
+
*/
|
|
251
|
+
setMaximumPointId(id: number): boolean;
|
|
252
|
+
|
|
253
|
+
/**
|
|
254
|
+
* Gets the maximum point ID.
|
|
255
|
+
*/
|
|
256
|
+
getMaximumPointId(): number;
|
|
257
|
+
|
|
258
|
+
/**
|
|
259
|
+
* Sets the maximum cell ID.
|
|
260
|
+
* @param {number} id
|
|
261
|
+
*/
|
|
262
|
+
setMaximumCellId(id: number): boolean;
|
|
263
|
+
|
|
264
|
+
/**
|
|
265
|
+
* Gets the maximum cell ID.
|
|
266
|
+
*/
|
|
267
|
+
getMaximumCellId(): number;
|
|
268
|
+
|
|
269
|
+
/**
|
|
270
|
+
* Sets the prop's color value.
|
|
271
|
+
* @param {Vector3} color
|
|
272
|
+
*/
|
|
273
|
+
setPropColorValue(color: Vector3): boolean;
|
|
274
|
+
|
|
275
|
+
/**
|
|
276
|
+
* Sets the prop's color value.
|
|
277
|
+
* @param {number} r
|
|
278
|
+
* @param {number} g
|
|
279
|
+
* @param {number} b
|
|
280
|
+
*/
|
|
281
|
+
setPropColorValue(r: number, g: number, b: number): boolean;
|
|
282
|
+
|
|
283
|
+
/**
|
|
284
|
+
* Gets the prop color value.
|
|
285
|
+
*/
|
|
286
|
+
getPropColorValue(): Vector3;
|
|
287
|
+
|
|
288
|
+
/**
|
|
289
|
+
* Sets the selection area.
|
|
290
|
+
*
|
|
291
|
+
* @param area An area bounding box
|
|
292
|
+
*/
|
|
293
|
+
setArea(area: Area): boolean;
|
|
294
|
+
|
|
295
|
+
/**
|
|
296
|
+
* Sets the selection area.
|
|
297
|
+
* @param {number} fx1 top left x coord
|
|
298
|
+
* @param {number} fy1 top left y coord
|
|
299
|
+
* @param {number} fx2 bottom right x coord
|
|
300
|
+
* @param {number} fy2 bottom right y coord
|
|
301
|
+
*/
|
|
302
|
+
setArea(fx1: number, fy1: number, fx2: number, fy2: number): boolean;
|
|
303
|
+
|
|
304
|
+
/**
|
|
305
|
+
* Gets the selection area.
|
|
306
|
+
*/
|
|
307
|
+
getArea(): Area;
|
|
308
|
+
|
|
309
|
+
/**
|
|
310
|
+
* Listen to the start/stop events.
|
|
311
|
+
* @param cb
|
|
312
|
+
* @param priority
|
|
313
|
+
*/
|
|
314
|
+
onEvent(cb: EventHandler, priority?: number): Readonly<vtkSubscription>;
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
export interface IOpenGLHardwareSelectorInitialValues
|
|
318
|
+
extends IHardwareSelectorInitialValues {
|
|
319
|
+
maximumPointId?: number;
|
|
320
|
+
maximumCellId?: number;
|
|
321
|
+
idOffset?: number;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
export function newInstance(
|
|
325
|
+
initialValues?: IOpenGLHardwareSelectorInitialValues
|
|
326
|
+
): vtkOpenGLHardwareSelector;
|
|
327
|
+
|
|
328
|
+
export function extend(
|
|
329
|
+
publicAPI: object,
|
|
330
|
+
model: object,
|
|
331
|
+
initialValues?: IOpenGLHardwareSelectorInitialValues
|
|
332
|
+
): void;
|
|
333
|
+
|
|
334
|
+
export const vtkOpenGLHardwareSelector: {
|
|
335
|
+
newInstance: typeof newInstance;
|
|
336
|
+
extend: typeof extend;
|
|
337
|
+
};
|
|
338
|
+
|
|
339
|
+
export default vtkOpenGLHardwareSelector;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The purpose of this file is to bundle all testing
|
|
3
|
+
* entrypoints into one chunk. This cuts down on extraneous
|
|
4
|
+
* code generation and addresses a race issue with the
|
|
5
|
+
* timer task queue.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import './setupTestEnv';
|
|
9
|
+
|
|
10
|
+
// webpack will include files that match the regex
|
|
11
|
+
// '..' refers to the Sources/ dir
|
|
12
|
+
const testsContext = require.context('..', true, /test[^/]*\.js$/);
|
|
13
|
+
testsContext.keys().forEach(testsContext);
|
|
@@ -43,6 +43,7 @@ function BufferedObjectPipe() {
|
|
|
43
43
|
};
|
|
44
44
|
|
|
45
45
|
const end = () => {
|
|
46
|
+
if (closed) return;
|
|
46
47
|
closed = true;
|
|
47
48
|
scheduleFlush();
|
|
48
49
|
};
|
|
@@ -53,6 +54,7 @@ function BufferedObjectPipe() {
|
|
|
53
54
|
*/
|
|
54
55
|
const setReader = (r) => {
|
|
55
56
|
reader = r;
|
|
57
|
+
scheduleFlush();
|
|
56
58
|
};
|
|
57
59
|
|
|
58
60
|
return {
|
package/Sources/vtk.d.ts
CHANGED
|
@@ -1,20 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { vtkObject } from 'vtk.js/Sources/interfaces';
|
|
2
|
+
|
|
3
|
+
interface ISerializedVtkObject {
|
|
4
|
+
vtkClass: string;
|
|
5
|
+
[attrName: string]: unknown;
|
|
4
6
|
}
|
|
5
7
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
interface Ivtk {
|
|
9
|
+
/**
|
|
10
|
+
* Deserializes a serialized VTK.js object.
|
|
11
|
+
*/
|
|
12
|
+
(obj: ISerializedVtkObject): vtkObject;
|
|
13
|
+
|
|
14
|
+
register(vtkClassName: string, constructor: <T>(model: unknown) => T): void;
|
|
15
|
+
}
|
|
12
16
|
|
|
13
|
-
|
|
14
|
-
* Nest register method under the vtk function
|
|
15
|
-
* @param vtkClassName
|
|
16
|
-
* @param constructor
|
|
17
|
-
*/
|
|
18
|
-
declare function register(vtkClassName: string, constructor: unknown): void;
|
|
17
|
+
declare const vtk: Ivtk;
|
|
19
18
|
|
|
20
19
|
export default vtk;
|
package/package.json
CHANGED
package/vtk-bundle.html
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8"/>
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
6
|
-
<title>vtk.js [
|
|
6
|
+
<title>vtk.js [22 Mar 2023 at 14:20]</title>
|
|
7
7
|
<link rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAABrVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+O1foceMD///+J0/qK1Pr7/v8Xdr/9///W8P4UdL7L7P0Scr2r4Pyj3vwad8D5/f/2/f+55f3E6f34+/2H0/ojfMKpzOd0rNgQcb3F3O/j9f7c8v6g3Pz0/P/w+v/q+P7n9v6T1/uQ1vuE0vqLut/y+v+Z2fvt+f+15Pzv9fuc2/vR7v2V2Pvd6/bg9P7I6/285/2y4/yp3/zp8vk8i8kqgMT7/P31+fyv4vxGkcz6/P6/6P3j7vfS5PNnpNUxhcbO7f7F6v3O4vHK3/DA2u631Ouy0eqXweKJud5wqthfoNMMbLvY8f73+v2dxeR8sNtTmdDx9/zX6PSjyeaCtd1YnNGX2PuQveCGt95Nls42h8dLlM3F4vBtAAAAM3RSTlMAAyOx0/sKBvik8opWGBMOAe3l1snDm2E9LSb06eHcu5JpHbarfHZCN9CBb08zzkdNS0kYaptYAAAFV0lEQVRYw92X51/aYBDHHS2O2qqttVbrqNq9m+TJIAYIShBkWwqIiCgoWvfeq7Z2/s29hyQNyUcR7LveGwVyXy6XH8/9rqxglLfUPLxVduUor3h0rfp2TYvpivk37929TkG037hffoX0+peVtZQc1589rigVUdXS/ABSAyEmGIO/1XfvldSK8vs3OqB6u3m0nxmIrvgB0dj7rr7Y9IbuF68hnfFaiHA/sxqm0wciIG43P60qKv9WXWc1RXGh/mFESFABTSBi0sNAKzqet17eCtOb3kZIDwxEEU0oAIJGYxNBDhBND29e0rtXXbcpuPmED9IhEAAQ/AXEaF8EPmnrrKsv0LvWR3fg5sWDNAFZOgAgaKvZDogHNU9MFwnnYROkc56RD5CjAbQX9Ow4g7upCsvYu55aSI/Nj0H1akgKQEUM94dwK65hYRmFU9MIcH/fqJYOZYcnuJSU/waKDgTOEVaVKhwrTRP5XzgSpAITYzom7UvkhFX5VutmxeNnWDjjswTKTyfgluNDGbUpWissXhF3s7mlSml+czWkg3D0l1nNjGNjz3myOQOa1KM/jOS6ebdbAVTCi4gljHSFrviza7tOgRWcS0MOUX9zdNgag5w7rRqA44Lzw0hr1WqES36dFliSJFlh2rXIae3FFcDDgKdxrUIDePr8jGcSClV1u7A9xeN0ModY/pHMxmR1EzRh8TJiwqsHmKW0l4FCEZI+jHio+JdPPE9qwQtTRxku2D8sIeRL2LnxWSllANCQGOIiqVHAz2ye2JR0DcH+HoxDkaADLjgxjKQ+AwCX/g0+DNgdG0ukYCONAe+dbc2IAc6fwt1ARoDSezNHxV2Cmzwv3O6lDMV55edBGwGK9n1+x2F8EDfAGCxug8MhpsMEcTEAWf3rx2vZhe/LAmtIn/6apE6PN0ULKgywD9mmdxbmFl3OvD5AS5fW5zLbv/YHmcsBTjf/afDz3MaZTVCfAP9z6/Bw6ycv8EUBWJIn9zYcoAWWlW9+OzO3vkTy8H+RANLmdrpOuYWdZYEXpo+TlCJrW5EARb7fF+bWdqf3hhyZI1nWJQHgznErZhbjoEsWqi8dQNoE294aldzFurwSABL2XXMf9+H1VQGke9exw5P/AnA5Pv5ngMul7LOvO922iwACu8WkCwLCafvM4CeWPxfA8lNHcWZSoi8EwMAIciKX2Z4SWCMAa3snCZ/G4EA8D6CMLNFsGQhkkz/gQNEBbPCbWsxGUpYVu3z8IyNAknwJkfPMEhLyrdi5RTyUVACkw4GSFRNWJNEW+fgPGwHD8/JxnRuLabN4CGNRkAE23na2+VmEAUmrYymSGjMAYqH84YUIyzgzs3XC7gNgH36Vcc4zKY9o9fgPBXUAiHHwVboBHGLiX6Zcjp1f2wu4tvzZKo0ecPnDtQYDQvJXaBeNzce45Fp28ZQLrEZVuFqgBwOalArKXnW1UzlnSusQKJqKYNuz4tOnI6sZG4zanpemv+7ySU2jbA9h6uhcgpfy6G2PahirDZ6zvq6zDduMVFTKvzw8wgyEdelwY9in3XkEPs3osJuwRQ4qTkfzifndg9Gfc4pdsu82+tTnHZTBa2EAMrqr2t43pguc8tNm7JQVQ2S0ukj2d22dhXYP0/veWtwKrCkNoNimAN5+Xr/oLrxswKbVJjteWrX7eR63o4j9q0GxnaBdWgGA5VStpanIjQmEhV0/nVt5VOFUvix6awJhPcAaTEShgrG+iGyvb5a0Ndb1YGHFPEwoqAinoaykaID1o1pdPNu7XsnCKQ3R+hwWIIhGvORcJUBYXe3Xa3vq/mF/N9V13ugufMkfXn+KHsRD0B8AAAAASUVORK5CYII=" type="image/x-icon" />
|
|
8
8
|
|
|
9
9
|
<script>
|
package/vtk-lite-bundle.html
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8"/>
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
6
|
-
<title>vtk.js [
|
|
6
|
+
<title>vtk.js [22 Mar 2023 at 14:20]</title>
|
|
7
7
|
<link rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAABrVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+O1foceMD///+J0/qK1Pr7/v8Xdr/9///W8P4UdL7L7P0Scr2r4Pyj3vwad8D5/f/2/f+55f3E6f34+/2H0/ojfMKpzOd0rNgQcb3F3O/j9f7c8v6g3Pz0/P/w+v/q+P7n9v6T1/uQ1vuE0vqLut/y+v+Z2fvt+f+15Pzv9fuc2/vR7v2V2Pvd6/bg9P7I6/285/2y4/yp3/zp8vk8i8kqgMT7/P31+fyv4vxGkcz6/P6/6P3j7vfS5PNnpNUxhcbO7f7F6v3O4vHK3/DA2u631Ouy0eqXweKJud5wqthfoNMMbLvY8f73+v2dxeR8sNtTmdDx9/zX6PSjyeaCtd1YnNGX2PuQveCGt95Nls42h8dLlM3F4vBtAAAAM3RSTlMAAyOx0/sKBvik8opWGBMOAe3l1snDm2E9LSb06eHcu5JpHbarfHZCN9CBb08zzkdNS0kYaptYAAAFV0lEQVRYw92X51/aYBDHHS2O2qqttVbrqNq9m+TJIAYIShBkWwqIiCgoWvfeq7Z2/s29hyQNyUcR7LveGwVyXy6XH8/9rqxglLfUPLxVduUor3h0rfp2TYvpivk37929TkG037hffoX0+peVtZQc1589rigVUdXS/ABSAyEmGIO/1XfvldSK8vs3OqB6u3m0nxmIrvgB0dj7rr7Y9IbuF68hnfFaiHA/sxqm0wciIG43P60qKv9WXWc1RXGh/mFESFABTSBi0sNAKzqet17eCtOb3kZIDwxEEU0oAIJGYxNBDhBND29e0rtXXbcpuPmED9IhEAAQ/AXEaF8EPmnrrKsv0LvWR3fg5sWDNAFZOgAgaKvZDogHNU9MFwnnYROkc56RD5CjAbQX9Ow4g7upCsvYu55aSI/Nj0H1akgKQEUM94dwK65hYRmFU9MIcH/fqJYOZYcnuJSU/waKDgTOEVaVKhwrTRP5XzgSpAITYzom7UvkhFX5VutmxeNnWDjjswTKTyfgluNDGbUpWissXhF3s7mlSml+czWkg3D0l1nNjGNjz3myOQOa1KM/jOS6ebdbAVTCi4gljHSFrviza7tOgRWcS0MOUX9zdNgag5w7rRqA44Lzw0hr1WqES36dFliSJFlh2rXIae3FFcDDgKdxrUIDePr8jGcSClV1u7A9xeN0ModY/pHMxmR1EzRh8TJiwqsHmKW0l4FCEZI+jHio+JdPPE9qwQtTRxku2D8sIeRL2LnxWSllANCQGOIiqVHAz2ye2JR0DcH+HoxDkaADLjgxjKQ+AwCX/g0+DNgdG0ukYCONAe+dbc2IAc6fwt1ARoDSezNHxV2Cmzwv3O6lDMV55edBGwGK9n1+x2F8EDfAGCxug8MhpsMEcTEAWf3rx2vZhe/LAmtIn/6apE6PN0ULKgywD9mmdxbmFl3OvD5AS5fW5zLbv/YHmcsBTjf/afDz3MaZTVCfAP9z6/Bw6ycv8EUBWJIn9zYcoAWWlW9+OzO3vkTy8H+RANLmdrpOuYWdZYEXpo+TlCJrW5EARb7fF+bWdqf3hhyZI1nWJQHgznErZhbjoEsWqi8dQNoE294aldzFurwSABL2XXMf9+H1VQGke9exw5P/AnA5Pv5ngMul7LOvO922iwACu8WkCwLCafvM4CeWPxfA8lNHcWZSoi8EwMAIciKX2Z4SWCMAa3snCZ/G4EA8D6CMLNFsGQhkkz/gQNEBbPCbWsxGUpYVu3z8IyNAknwJkfPMEhLyrdi5RTyUVACkw4GSFRNWJNEW+fgPGwHD8/JxnRuLabN4CGNRkAE23na2+VmEAUmrYymSGjMAYqH84YUIyzgzs3XC7gNgH36Vcc4zKY9o9fgPBXUAiHHwVboBHGLiX6Zcjp1f2wu4tvzZKo0ecPnDtQYDQvJXaBeNzce45Fp28ZQLrEZVuFqgBwOalArKXnW1UzlnSusQKJqKYNuz4tOnI6sZG4zanpemv+7ySU2jbA9h6uhcgpfy6G2PahirDZ6zvq6zDduMVFTKvzw8wgyEdelwY9in3XkEPs3osJuwRQ4qTkfzifndg9Gfc4pdsu82+tTnHZTBa2EAMrqr2t43pguc8tNm7JQVQ2S0ukj2d22dhXYP0/veWtwKrCkNoNimAN5+Xr/oLrxswKbVJjteWrX7eR63o4j9q0GxnaBdWgGA5VStpanIjQmEhV0/nVt5VOFUvix6awJhPcAaTEShgrG+iGyvb5a0Ndb1YGHFPEwoqAinoaykaID1o1pdPNu7XsnCKQ3R+hwWIIhGvORcJUBYXe3Xa3vq/mF/N9V13ugufMkfXn+KHsRD0B8AAAAASUVORK5CYII=" type="image/x-icon" />
|
|
8
8
|
|
|
9
9
|
<script>
|
package/vtk-lite.js.LICENSE.txt
CHANGED