@kitware/vtk.js 23.4.2 → 23.4.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.
Files changed (180) hide show
  1. package/Common/Core/Math/Constants.js +12 -0
  2. package/Common/Core/Math/index.js +1 -1
  3. package/Common/Core/Math.js +1 -1
  4. package/Common/Core/ScalarsToColors/Constants.d.ts +18 -0
  5. package/Common/DataModel/AbstractPointLocator.d.ts +54 -0
  6. package/Common/DataModel/AbstractPointLocator.js +40 -0
  7. package/Common/DataModel/BoundingBox.d.ts +659 -0
  8. package/Common/DataModel/Collection.d.ts +118 -0
  9. package/Common/DataModel/Collection.js +113 -0
  10. package/Common/DataModel/DataSet/Constants.d.ts +27 -0
  11. package/Common/DataModel/EdgeLocator.d.ts +79 -0
  12. package/Common/DataModel/EdgeLocator.js +85 -0
  13. package/Common/DataModel/ITKHelper.d.ts +54 -0
  14. package/Common/DataModel/IncrementalOctreeNode.d.ts +297 -0
  15. package/Common/DataModel/IncrementalOctreeNode.js +640 -0
  16. package/Common/DataModel/IncrementalOctreePointLocator.d.ts +61 -0
  17. package/Common/DataModel/IncrementalOctreePointLocator.js +398 -0
  18. package/Common/DataModel/Locator.d.ts +43 -0
  19. package/Common/DataModel/Locator.js +37 -0
  20. package/Common/DataModel/Plane.js +1 -1
  21. package/Common/DataModel/PolyData/Constants.d.ts +6 -0
  22. package/Common/DataModel/PolyLine.d.ts +63 -0
  23. package/Common/DataModel/PolyLine.js +77 -0
  24. package/Common/DataModel/Polygon/Constants.js +12 -0
  25. package/Common/DataModel/Polygon.js +1 -1
  26. package/Common/DataModel/Quad/Constants.js +9 -0
  27. package/Common/DataModel/Quad.d.ts +91 -0
  28. package/Common/DataModel/Quad.js +235 -0
  29. package/Common/DataModel/SelectionNode/Constants.d.ts +27 -0
  30. package/Common/DataModel/Spline1D/Constants.js +17 -0
  31. package/Common/DataModel/Spline3D/Constants.d.ts +9 -0
  32. package/Common/Transform/Transform.js +51 -0
  33. package/Filters/Core/PolyDataNormals.js +124 -0
  34. package/Filters/General/ClipClosedSurface/Constants.js +10 -0
  35. package/Filters/General/ClipClosedSurface.d.ts +95 -0
  36. package/Filters/General/ClipClosedSurface.js +972 -0
  37. package/Filters/General/ContourTriangulator/Constants.js +6 -0
  38. package/Filters/General/ContourTriangulator/helper.js +1951 -0
  39. package/Filters/General/ContourTriangulator.d.ts +136 -0
  40. package/Filters/General/ContourTriangulator.js +202 -0
  41. package/Filters/General/ImageMarchingCubes.js +1 -1
  42. package/Filters/General/MoleculeToRepresentation.js +1 -1
  43. package/Filters/General/OBBTree/OBBNode.js +82 -0
  44. package/Filters/General/OBBTree/helper.js +92 -0
  45. package/Filters/General/OBBTree.js +1243 -0
  46. package/Filters/General/TubeFilter.js +1 -1
  47. package/Filters/Sources/LineSource.js +1 -1
  48. package/Filters/Sources/PlaneSource.js +1 -1
  49. package/Filters/Texture/TextureMapToPlane.js +1 -1
  50. package/Interaction/Manipulators/CompositeCameraManipulator.d.ts +68 -0
  51. package/Interaction/Manipulators/CompositeGestureManipulator.d.ts +168 -0
  52. package/Interaction/Manipulators/CompositeKeyboardManipulator.d.ts +48 -0
  53. package/Interaction/Manipulators/CompositeMouseManipulator.d.ts +149 -0
  54. package/Interaction/Manipulators/CompositeVRManipulator.d.ts +44 -0
  55. package/Interaction/Manipulators/GestureCameraManipulator.d.ts +34 -0
  56. package/Interaction/Manipulators/KeyboardCameraManipulator.js +1 -1
  57. package/Interaction/Manipulators/MouseBoxSelectorManipulator.d.ts +88 -0
  58. package/Interaction/Manipulators/MouseCameraAxisRotateManipulator.js +1 -1
  59. package/Interaction/Manipulators/MouseCameraTrackballMultiRotateManipulator.d.ts +32 -0
  60. package/Interaction/Manipulators/MouseCameraTrackballPanManipulator.d.ts +33 -0
  61. package/Interaction/Manipulators/MouseCameraTrackballPanManipulator.js +1 -1
  62. package/Interaction/Manipulators/MouseCameraTrackballRollManipulator.d.ts +33 -0
  63. package/Interaction/Manipulators/MouseCameraTrackballRotateManipulator.d.ts +67 -0
  64. package/Interaction/Manipulators/MouseCameraTrackballRotateManipulator.js +1 -1
  65. package/Interaction/Manipulators/MouseCameraTrackballZoomManipulator.d.ts +45 -0
  66. package/Interaction/Manipulators/MouseCameraTrackballZoomToMouseManipulator.d.ts +26 -0
  67. package/Interaction/Manipulators/MouseCameraUnicamManipulator.js +1 -1
  68. package/Interaction/Manipulators/MouseCameraUnicamRotateManipulator.js +1 -1
  69. package/Interaction/Manipulators/MouseRangeManipulator.d.ts +53 -0
  70. package/Interaction/Style/InteractorStyleImage.d.ts +107 -0
  71. package/Interaction/Style/InteractorStyleMPRSlice.js +1 -1
  72. package/Interaction/Style/InteractorStyleManipulator.d.ts +348 -0
  73. package/Interaction/Style/InteractorStyleTrackballCamera.d.ts +170 -0
  74. package/Interaction/Widgets/ImageCroppingRegionsWidget.js +1 -1
  75. package/Interaction/Widgets/LabelRepresentation.js +1 -1
  76. package/Interaction/Widgets/OrientationMarkerWidget/Constants.d.ts +11 -0
  77. package/Interaction/Widgets/ResliceCursor/ResliceCursor.js +1 -1
  78. package/Interaction/Widgets/ResliceCursor/ResliceCursorLineRepresentation.js +1 -1
  79. package/Interaction/Widgets/ResliceCursor/ResliceCursorRepresentation.js +1 -1
  80. package/Proxy/Core/AbstractRepresentationProxy.d.ts +24 -0
  81. package/Proxy/Core/LookupTableProxy.d.ts +45 -0
  82. package/Proxy/Core/PiecewiseFunctionProxy.d.ts +62 -0
  83. package/Proxy/Core/ProxyManager.d.ts +115 -0
  84. package/Proxy/Core/SourceProxy.d.ts +22 -0
  85. package/Proxy/Core/View2DProxy.d.ts +7 -0
  86. package/Proxy/Core/View2DProxy.js +1 -1
  87. package/Proxy/Core/ViewProxy.d.ts +86 -0
  88. package/Proxy/Representations/SliceRepresentationProxy.d.ts +27 -0
  89. package/Proxy/Representations/VolumeRepresentationProxy.d.ts +44 -0
  90. package/README.md +2 -2
  91. package/Rendering/Core/AbstractImageMapper/helper.js +127 -0
  92. package/Rendering/Core/AbstractImageMapper.d.ts +82 -0
  93. package/Rendering/Core/AbstractImageMapper.js +44 -0
  94. package/Rendering/Core/Camera.js +1 -1
  95. package/Rendering/Core/CellPicker.js +1 -1
  96. package/Rendering/Core/ColorTransferFunction/ColorMaps.d.ts +24 -0
  97. package/Rendering/Core/ColorTransferFunction/Constants.d.ts +17 -0
  98. package/Rendering/Core/ColorTransferFunction.js +1 -1
  99. package/Rendering/Core/Coordinate/Constants.d.ts +14 -0
  100. package/Rendering/Core/Coordinate.js +1 -1
  101. package/Rendering/Core/Glyph3DMapper/Constants.d.ts +17 -0
  102. package/Rendering/Core/Glyph3DMapper.js +1 -1
  103. package/Rendering/Core/HardwareSelector.d.ts +84 -0
  104. package/Rendering/Core/ImageArrayMapper.d.ts +253 -0
  105. package/Rendering/Core/ImageArrayMapper.js +242 -0
  106. package/Rendering/Core/ImageMapper/Constants.d.ts +14 -0
  107. package/Rendering/Core/ImageMapper.js +1 -1
  108. package/Rendering/Core/ImageProperty/Constants.d.ts +9 -0
  109. package/Rendering/Core/ImageResliceMapper/Constants.d.ts +11 -0
  110. package/Rendering/Core/ImageResliceMapper/Constants.js +11 -0
  111. package/Rendering/Core/ImageResliceMapper.d.ts +245 -0
  112. package/Rendering/Core/ImageResliceMapper.js +70 -0
  113. package/Rendering/Core/InteractorObserver.d.ts +132 -0
  114. package/Rendering/Core/InteractorStyle/Constants.d.ts +16 -0
  115. package/Rendering/Core/InteractorStyle.d.ts +229 -0
  116. package/Rendering/Core/Light.js +1 -1
  117. package/Rendering/Core/Mapper/Constants.d.ts +26 -0
  118. package/Rendering/Core/Mapper.js +1 -1
  119. package/Rendering/Core/Picker.js +1 -1
  120. package/Rendering/Core/Prop/Constants.d.ts +9 -0
  121. package/Rendering/Core/Prop/Constants.js +9 -0
  122. package/Rendering/Core/Property/Constants.d.ts +24 -0
  123. package/Rendering/Core/Property2D/Constants.d.ts +9 -0
  124. package/Rendering/Core/RenderWindow.js +1 -1
  125. package/Rendering/Core/RenderWindowInteractor/Constants.d.ts +31 -0
  126. package/Rendering/Core/Renderer.js +1 -1
  127. package/Rendering/Core/VolumeMapper/Constants.d.ts +20 -0
  128. package/Rendering/Core/VolumeMapper.js +1 -1
  129. package/Rendering/Core/VolumeProperty/Constants.d.ts +16 -0
  130. package/Rendering/Misc/SynchronizableRenderWindow/BehaviorManager/CameraSynchronizer.js +129 -0
  131. package/Rendering/Misc/SynchronizableRenderWindow/BehaviorManager.js +131 -0
  132. package/Rendering/Misc/SynchronizableRenderWindow/ObjectManager.d.ts +80 -0
  133. package/Rendering/Misc/SynchronizableRenderWindow/ObjectManager.js +763 -0
  134. package/Rendering/OpenGL/HardwareSelector/Constants.d.ts +8 -0
  135. package/Rendering/OpenGL/HardwareSelector.d.ts +339 -0
  136. package/Rendering/OpenGL/ImageResliceMapper.js +996 -0
  137. package/Rendering/OpenGL/PolyDataMapper.js +1 -1
  138. package/Rendering/OpenGL/PolyDataMapper2D.js +1 -1
  139. package/Rendering/OpenGL/RenderWindow/Constants.d.ts +10 -0
  140. package/Rendering/OpenGL/RenderWindow/Constants.js +13 -0
  141. package/Rendering/OpenGL/RenderWindow/ContextProxy.js +70 -0
  142. package/Rendering/OpenGL/RenderWindow.d.ts +9 -2
  143. package/Rendering/OpenGL/RenderWindow.js +2 -1
  144. package/Rendering/OpenGL/glsl/vtkImageResliceMapperFS.glsl.js +3 -0
  145. package/Rendering/OpenGL/glsl/vtkImageResliceMapperVS.glsl.js +3 -0
  146. package/Rendering/WebGPU/Actor2D.js +151 -0
  147. package/Rendering/WebGPU/BufferManager.js +1 -1
  148. package/Rendering/WebGPU/CellArrayMapper.js +853 -0
  149. package/Rendering/WebGPU/IndexBuffer.js +397 -0
  150. package/Rendering/WebGPU/PolyDataMapper2D.js +99 -0
  151. package/Rendering/WebGPU/RenderWindow.js +3 -1
  152. package/Rendering/WebGPU/SimpleMapper.js +290 -0
  153. package/Widgets/Core/AbstractWidget.d.ts +187 -0
  154. package/Widgets/Core/AbstractWidgetFactory.d.ts +131 -0
  155. package/Widgets/Core/StateBuilder/color3Mixin.js +24 -0
  156. package/Widgets/Core/StateBuilder/orientationMixin.js +1 -1
  157. package/Widgets/Core/StateBuilder.d.ts +29 -0
  158. package/Widgets/Core/WidgetManager/Constants.d.ts +27 -0
  159. package/Widgets/Core/WidgetManager.d.ts +231 -0
  160. package/Widgets/Core/WidgetState.d.ts +81 -0
  161. package/Widgets/Manipulators/AbstractManipulator.d.ts +221 -0
  162. package/Widgets/Manipulators/AbstractManipulator.js +57 -0
  163. package/Widgets/Manipulators/LineManipulator.js +1 -1
  164. package/Widgets/Manipulators/TrackballManipulator.js +1 -1
  165. package/Widgets/Representations/GlyphRepresentation.js +325 -0
  166. package/Widgets/Representations/LineHandleRepresentation.js +116 -0
  167. package/Widgets/Representations/ResliceCursorContextRepresentation.js +1 -1
  168. package/Widgets/Representations/WidgetRepresentation.js +1 -1
  169. package/Widgets/Widgets3D/AngleWidget.js +1 -1
  170. package/Widgets/Widgets3D/InteractiveOrientationWidget.d.ts +40 -0
  171. package/Widgets/Widgets3D/LabelWidget/behavior.js +157 -0
  172. package/Widgets/Widgets3D/LabelWidget/state.js +22 -0
  173. package/Widgets/Widgets3D/LabelWidget.js +78 -0
  174. package/Widgets/Widgets3D/LineWidget/behavior.js +1 -1
  175. package/Widgets/Widgets3D/LineWidget/helpers.js +1 -1
  176. package/Widgets/Widgets3D/ResliceCursorWidget/behavior.js +1 -1
  177. package/Widgets/Widgets3D/ResliceCursorWidget/helpers.js +1 -1
  178. package/Widgets/Widgets3D/ResliceCursorWidget.js +1 -1
  179. package/index.d.ts +133 -74
  180. package/package.json +1 -1
@@ -0,0 +1,17 @@
1
+ export declare enum ColorSpace {
2
+ RGB = 0,
3
+ HSV = 1,
4
+ LAB = 2,
5
+ DIVERGING = 3,
6
+ }
7
+
8
+ export declare enum Scale {
9
+ LINEAR = 0,
10
+ LOG10 = 1,
11
+ }
12
+
13
+ declare const _default: {
14
+ ColorSpace: typeof ColorSpace;
15
+ Scale: typeof Scale;
16
+ };
17
+ export default _default;
@@ -1,6 +1,6 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import macro from '../../macros.js';
3
- import { h as hsv2rgb, i as isNan, E as isInf, F as rgb2hsv, G as rgb2lab, H as lab2rgb, I as floor } from '../../Common/Core/Math/index.js';
3
+ import { h as hsv2rgb, i as isNan, G as isInf, H as rgb2hsv, I as rgb2lab, J as lab2rgb, F as floor } from '../../Common/Core/Math/index.js';
4
4
  import vtkScalarsToColors from '../../Common/Core/ScalarsToColors.js';
5
5
  import Constants from './ColorTransferFunction/Constants.js';
6
6
 
@@ -0,0 +1,14 @@
1
+ export declare enum Coordinate {
2
+ DISPLAY = 0,
3
+ NORMALIZED_DISPLAY = 1,
4
+ VIEWPORT = 2,
5
+ NORMALIZED_VIEWPORT = 3,
6
+ PROJECTION = 4,
7
+ VIEW = 5,
8
+ WORLD = 6,
9
+ }
10
+
11
+ declare const _default: {
12
+ Coordinate: typeof Coordinate;
13
+ };
14
+ export default _default;
@@ -1,7 +1,7 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import macro from '../../macros.js';
3
3
  import Constants from './Coordinate/Constants.js';
4
- import { J as round, I as floor } from '../../Common/Core/Math/index.js';
4
+ import { E as round, F as floor } from '../../Common/Core/Math/index.js';
5
5
 
6
6
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7
7
 
@@ -0,0 +1,17 @@
1
+ export declare enum OrientationModes {
2
+ DIRECTION = 0,
3
+ ROTATION = 1,
4
+ MATRIX = 2,
5
+ }
6
+
7
+ export declare enum ScaleModes {
8
+ SCALE_BY_CONSTANT = 0,
9
+ SCALE_BY_MAGNITUDE = 1,
10
+ SCALE_BY_COMPONENTS = 2,
11
+ }
12
+
13
+ declare const _default: {
14
+ OrientationModes: typeof OrientationModes;
15
+ ScaleModes: typeof ScaleModes;
16
+ };
17
+ export default _default;
@@ -4,7 +4,7 @@ import { mat4, vec3, mat3 } from 'gl-matrix';
4
4
  import Constants from './Glyph3DMapper/Constants.js';
5
5
  import macro from '../../macros.js';
6
6
  import vtkMapper from './Mapper.js';
7
- import { M as createUninitializedBounds, n as norm } from '../../Common/Core/Math/index.js';
7
+ import { N as createUninitializedBounds, n as norm } from '../../Common/Core/Math/index.js';
8
8
  import vtkBoundingBox from '../../Common/DataModel/BoundingBox.js';
9
9
 
10
10
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
@@ -0,0 +1,84 @@
1
+ import { FieldAssociations } from './../../Common/DataModel/DataSet/Constants';
2
+ import vtkSelectionNode from './../../Common/DataModel/SelectionNode';
3
+ import { vtkObject } from './../../interfaces';
4
+ import vtkRenderer from './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;
@@ -0,0 +1,253 @@
1
+ import vtkAbstractImageMapper, { IAbstractImageMapperInitialValues } from './AbstractImageMapper';
2
+ import IClosestIJKAxis from './ImageMapper';
3
+ import { Bounds, Nullable } from './../../types';
4
+ import { SlicingMode } from './ImageMapper/Constants';
5
+ import vtkImageData from './../../Common/DataModel/ImageData';
6
+ import vtkCollection from './../../Common/DataModel/Collection';
7
+
8
+
9
+ interface ICoincidentTopology {
10
+ factor: number;
11
+ offset: number;
12
+ }
13
+
14
+ interface ISliceToSubSlice {
15
+ imageIndex: number;
16
+ subSlice: number;
17
+ }
18
+
19
+ export interface IImageArrayMapperInitialValues extends IAbstractImageMapperInitialValues {
20
+ slicingMode: SlicingMode.K,
21
+ sliceToSubSliceMap: ISliceToSubSlice[],
22
+ }
23
+
24
+ export interface vtkImageArrayMapper extends vtkAbstractImageMapper {
25
+
26
+ /**
27
+ *
28
+ * @param inputData set input as a vtkCollection of vtkImageData objects.
29
+ */
30
+ setInputData(inputData: vtkCollection): void;
31
+
32
+ /**
33
+ * Get vtkImageData corresponding to the provided (global) slice number.
34
+ * @param slice (global) slice number. If a slice number is not provided,
35
+ * the function uses the current slice number (i.e. the output of getSlice()).
36
+ */
37
+ getImage(slice?: number): Nullable<vtkImageData>;
38
+
39
+ /**
40
+ * Return currently active image. This depends on the currently active slice number.
41
+ */
42
+ getCurrentImage(): Nullable<vtkImageData>;
43
+
44
+ /**
45
+ * Get the bounds for this mapper as [xmin, xmax, ymin, ymax,zmin, zmax].
46
+ * @return {Bounds} The bounds for the mapper.
47
+ */
48
+ getBounds(): Bounds;
49
+
50
+ /**
51
+ * Get the bounds for a given slice as [xmin, xmax, ymin, ymax,zmin, zmax].
52
+ * @param {Number} [slice] The slice index. If undefined, the current slice is considered.
53
+ * @param {Number} [halfThickness] Half the slice thickness in index space (unit voxel
54
+ * spacing). If undefined, 0 is considered.
55
+ * @return {Number[]} The bounds for a given slice.
56
+ */
57
+ getBoundsForSlice(slice?: number, halfThickness?: number): number[];
58
+
59
+ /**
60
+ * Get the closest IJK axis
61
+ * @return {IClosestIJKAxis} The axis object.
62
+ */
63
+ getClosestIJKAxis(): IClosestIJKAxis;
64
+
65
+ /**
66
+ * Calculate the total number of slices in the input collection.
67
+ */
68
+ computeTotalSlices(): number;
69
+
70
+ /**
71
+ * Fetch the pre-calculated total number of slices in the input collection.
72
+ */
73
+ getTotalSlices(): number;
74
+
75
+ /**
76
+ *
77
+ * @param {Number} slice The slice index.
78
+ */
79
+ setSlice(slice: number): boolean;
80
+
81
+ /**
82
+ * Calculate the global slice number that corresponds to the provided image and subSlice number.
83
+ * The global slice number corresponds to the total number of 2D image frames that a collection has.
84
+ * @param imageIndex The image number is the index of the vtkImageData object in the input collection.
85
+ * @param subSlice The subSlice number is the k-index of a slice within a vtkImageData object in the input collection.
86
+ */
87
+ computeSlice(imageIndex: number, subSlice: number): number;
88
+
89
+ /**
90
+ * Get the vtkImageData index corresponding to the provided global slice number.
91
+ * @param slice global slice number. If a slice number is not provided,
92
+ * the function uses the current slice number (i.e. the output of getSlice()).
93
+ */
94
+ getImageIndex(slice?: number): number;
95
+
96
+ /**
97
+ * Given a global slice number, identify the subSlice number (slice k-index within a vtkImageData).
98
+ * @param slice global slice number. If a slice number is not provided,
99
+ * the function uses the current slice number (i.e. the output of getSlice()).
100
+ */
101
+ getSubSlice(slice?: number): number;
102
+
103
+
104
+ /**
105
+ *
106
+ */
107
+ getResolveCoincidentTopology(): ICoincidentTopology
108
+
109
+ /**
110
+ *
111
+ */
112
+ getResolveCoincidentTopologyAsString(): ICoincidentTopology
113
+
114
+ /**
115
+ *
116
+ */
117
+ getResolveCoincidentTopologyLineOffsetParameters(): ICoincidentTopology
118
+
119
+ /**
120
+ *
121
+ */
122
+ getResolveCoincidentTopologyPointOffsetParameters(): ICoincidentTopology
123
+
124
+ /**
125
+ *
126
+ */
127
+ getResolveCoincidentTopologyPolygonOffsetFaces(): ICoincidentTopology
128
+
129
+ /**
130
+ *
131
+ */
132
+ getResolveCoincidentTopologyPolygonOffsetParameters(): ICoincidentTopology;
133
+
134
+ /**
135
+ *
136
+ * @param {Number} factor
137
+ * @param {Number} offset
138
+ */
139
+ setRelativeCoincidentTopologyLineOffsetParameters(factor: number, offset: number): boolean;
140
+
141
+ /**
142
+ *
143
+ * @param {Number} factor
144
+ * @param {Number} offset
145
+ */
146
+ setRelativeCoincidentTopologyPointOffsetParameters(factor: number, offset: number): boolean;
147
+
148
+ /**
149
+ *
150
+ * @param {Number} factor
151
+ * @param {Number} offset
152
+ */
153
+ setRelativeCoincidentTopologyPolygonOffsetParameters(factor: number, offset: number): boolean;
154
+
155
+ /**
156
+ *
157
+ * @param resolveCoincidentTopology
158
+ * @default false
159
+ */
160
+ setResolveCoincidentTopology(resolveCoincidentTopology: boolean): boolean;
161
+
162
+ /**
163
+ *
164
+ * @param {Number} factor
165
+ * @param {Number} offset
166
+ */
167
+ setResolveCoincidentTopologyLineOffsetParameters(factor: number, offset: number): boolean;
168
+
169
+ /**
170
+ *
171
+ * @param {Number} factor
172
+ * @param {Number} offset
173
+ */
174
+ setResolveCoincidentTopologyPointOffsetParameters(factor: number, offset: number): boolean;
175
+
176
+ /**
177
+ *
178
+ * @param value
179
+ */
180
+ setResolveCoincidentTopologyPolygonOffsetFaces(value: number): boolean;
181
+
182
+ /**
183
+ *
184
+ * @param {Number} factor
185
+ * @param {Number} offset
186
+ */
187
+ setResolveCoincidentTopologyPolygonOffsetParameters(factor: number, offset: number): boolean;
188
+
189
+ /**
190
+ *
191
+ */
192
+ setResolveCoincidentTopologyToDefault(): boolean;
193
+
194
+ /**
195
+ *
196
+ */
197
+ setResolveCoincidentTopologyToOff(): boolean;
198
+
199
+ /**
200
+ *
201
+ */
202
+ setResolveCoincidentTopologyToPolygonOffset(): boolean;
203
+
204
+ /**
205
+ * Set the slicing mode.
206
+ * @param {Number} mode The slicing mode.
207
+ */
208
+ setSlicingMode(mode: number): boolean;
209
+
210
+ /**
211
+ *
212
+ * @param {Number[]} p1 The coordinates of the first point.
213
+ * @param {Number[]} p2 The coordinates of the second point.
214
+ */
215
+ intersectWithLineForPointPicking(p1: number[], p2: number[]): any;
216
+
217
+ /**
218
+ *
219
+ * @param {Number[]} p1 The coordinates of the first point.
220
+ * @param {Number[]} p2 The coordinates of the second point.
221
+ */
222
+ intersectWithLineForCellPicking(p1: number[], p2: number[]): any;
223
+ }
224
+
225
+ /**
226
+ * Method use to decorate a given object (publicAPI+model) with vtkImageArrayMapper characteristics.
227
+ *
228
+ * @param publicAPI object on which methods will be bounds (public)
229
+ * @param model object on which data structure will be bounds (protected)
230
+ * @param {IImageArrayMapperInitialValues} [initialValues] (default: {})
231
+ */
232
+ export function extend(publicAPI: object, model: object, initialValues?: IImageArrayMapperInitialValues): void;
233
+
234
+ /**
235
+ * Method use to create a new instance of vtkImageArrayMapper
236
+ * @param {IImageArrayMapperInitialValues} [initialValues] for pre-setting some of its content
237
+ */
238
+ export function newInstance(initialValues?: IImageArrayMapperInitialValues): vtkImageArrayMapper;
239
+
240
+ /**
241
+ * vtkImageArrayMapper provides display support for a collection of single/multi-frame images.
242
+ * Images can have variable dimensions (width, height, depth in pixels), can be mixture of
243
+ * color (RGB) and grayscale images, origin point and direction cosines.
244
+ * It can be associated with a vtkImageSlice prop and placed within a Renderer.
245
+ *
246
+ * This class resolves coincident topology with the same methods as vtkMapper.
247
+ */
248
+ export declare const vtkImageArrayMapper: {
249
+ newInstance: typeof newInstance;
250
+ extend: typeof extend;
251
+ SlicingMode: typeof SlicingMode;
252
+ }
253
+ export default vtkImageArrayMapper;
@@ -0,0 +1,242 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import macro from '../../macros.js';
3
+ import vtkAbstractImageMapper from './AbstractImageMapper.js';
4
+ import vtkImageMapper from './ImageMapper.js';
5
+ import { N as createUninitializedBounds } from '../../Common/Core/Math/index.js';
6
+ import { intersectWithLineForPointPicking, intersectWithLineForCellPicking } from './AbstractImageMapper/helper.js';
7
+ import CoincidentTopologyHelper from './Mapper/CoincidentTopologyHelper.js';
8
+
9
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
10
+
11
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
12
+ var staticOffsetAPI = CoincidentTopologyHelper.staticOffsetAPI,
13
+ otherStaticMethods = CoincidentTopologyHelper.otherStaticMethods;
14
+ var vtkErrorMacro = macro.vtkErrorMacro,
15
+ vtkWarningMacro = macro.vtkWarningMacro;
16
+ var SlicingMode = vtkImageMapper.SlicingMode; // ----------------------------------------------------------------------------
17
+ // vtkImageArrayMapper methods
18
+ // ----------------------------------------------------------------------------
19
+
20
+ function vtkImageArrayMapper(publicAPI, model) {
21
+ // Set our className
22
+ model.classHierarchy.push('vtkImageArrayMapper'); //------------------
23
+ // Private functions
24
+
25
+ var _computeSliceToSubSliceMap = function _computeSliceToSubSliceMap() {
26
+ var inputCollection = publicAPI.getInputData();
27
+
28
+ if (!inputCollection || inputCollection.empty()) {
29
+ // clear the map
30
+ if (model.sliceToSubSliceMap.length !== 0) {
31
+ model.sliceToSubSliceMap.length = 0;
32
+ publicAPI.modified();
33
+ }
34
+
35
+ return;
36
+ }
37
+
38
+ if (model.sliceToSubSliceMap.length === 0 || inputCollection.getMTime() > publicAPI.getMTime()) {
39
+ var perImageMap = inputCollection.map(function (image, index) {
40
+ var dim = image.getDimensions();
41
+ var out = new Array(dim[model.slicingMode]);
42
+
43
+ for (var i = 0; i < out.length; ++i) {
44
+ out[i] = {
45
+ imageIndex: index,
46
+ subSlice: i
47
+ };
48
+ }
49
+
50
+ return out;
51
+ });
52
+ model.sliceToSubSliceMap = perImageMap.flat();
53
+ publicAPI.modified();
54
+ }
55
+ };
56
+
57
+ var _superSetInputData = publicAPI.setInputData;
58
+ var _superSetInputConnection = publicAPI.setInputConnection; //------------------
59
+ // Public functions
60
+
61
+ publicAPI.setInputData = function (inputData) {
62
+ _superSetInputData(inputData);
63
+
64
+ _computeSliceToSubSliceMap();
65
+ };
66
+
67
+ publicAPI.setInputConnection = function (outputPort) {
68
+ var port = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
69
+
70
+ _superSetInputConnection(outputPort, port);
71
+
72
+ _computeSliceToSubSliceMap();
73
+ };
74
+
75
+ publicAPI.getImage = function () {
76
+ var slice = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : publicAPI.getSlice();
77
+ var inputCollection = publicAPI.getInputData();
78
+
79
+ if (!inputCollection) {
80
+ vtkWarningMacro('No input set.');
81
+ } else if (slice < 0 || slice >= publicAPI.getTotalSlices()) {
82
+ vtkWarningMacro('Invalid slice number.');
83
+ } else {
84
+ _computeSliceToSubSliceMap();
85
+
86
+ return inputCollection.getItem(model.sliceToSubSliceMap[slice].imageIndex);
87
+ }
88
+
89
+ return null;
90
+ };
91
+
92
+ publicAPI.getBounds = function () {
93
+ var image = publicAPI.getCurrentImage();
94
+
95
+ if (!image) {
96
+ return createUninitializedBounds();
97
+ }
98
+
99
+ if (!model.useCustomExtents) {
100
+ return image.getBounds();
101
+ }
102
+
103
+ var ex = model.customDisplayExtent.slice(); // use sub-slice of the current image,
104
+ // which is the k-coordinate.
105
+
106
+ var nSlice = publicAPI.getSubSlice();
107
+ ex[4] = nSlice;
108
+ ex[5] = nSlice;
109
+ return image.extentToBounds(ex);
110
+ };
111
+
112
+ publicAPI.getBoundsForSlice = function () {
113
+ var slice = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : publicAPI.getSlice();
114
+ var halfThickness = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
115
+ var image = publicAPI.getImage(slice);
116
+
117
+ if (!image) {
118
+ return createUninitializedBounds();
119
+ }
120
+
121
+ var extent = image.getSpatialExtent();
122
+ var nSlice = publicAPI.getSubSlice(slice);
123
+ extent[4] = nSlice - halfThickness;
124
+ extent[5] = nSlice + halfThickness;
125
+ return image.extentToBounds(extent);
126
+ };
127
+
128
+ publicAPI.getClosestIJKAxis = function () {
129
+ return {
130
+ ijkMode: model.slicingMode,
131
+ flip: false
132
+ };
133
+ };
134
+
135
+ publicAPI.computeTotalSlices = function () {
136
+ var inputCollection = publicAPI.getInputData();
137
+ var collectionLength = inputCollection.getNumberOfItems();
138
+ var slicesCount = 0;
139
+
140
+ for (var i = 0; i < collectionLength; ++i) {
141
+ var image = inputCollection.getItem(i);
142
+
143
+ if (image) {
144
+ slicesCount += image.getDimensions()[model.slicingMode];
145
+ }
146
+ }
147
+
148
+ return slicesCount;
149
+ };
150
+
151
+ publicAPI.getTotalSlices = function () {
152
+ _computeSliceToSubSliceMap();
153
+
154
+ return model.sliceToSubSliceMap.length;
155
+ }; // set slice number in terms of imageIndex and subSlice number.
156
+
157
+
158
+ publicAPI.setSlice = function (slice) {
159
+ var inputCollection = publicAPI.getInputData();
160
+
161
+ if (!inputCollection) {
162
+ // No input is set
163
+ vtkWarningMacro('No input set.');
164
+ return;
165
+ }
166
+
167
+ var totalSlices = publicAPI.getTotalSlices();
168
+
169
+ if (slice >= 0 && slice < totalSlices) {
170
+ model.slice = slice;
171
+ publicAPI.modified();
172
+ } else {
173
+ vtkErrorMacro("Slice number out of range. Acceptable range is: [0, ".concat(totalSlices > 0 ? totalSlices - 1 : 0, "]slice <= totalSlices"));
174
+ }
175
+ };
176
+
177
+ publicAPI.computeSlice = function (imageIndex, subSlice) {
178
+ _computeSliceToSubSliceMap();
179
+
180
+ return model.sliceToSubSliceMap.findIndex(function (x) {
181
+ return x.imageIndex === imageIndex && x.subSlice === subSlice;
182
+ });
183
+ };
184
+
185
+ publicAPI.getImageIndex = function () {
186
+ var _model$sliceToSubSlic;
187
+
188
+ var slice = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : publicAPI.getSlice();
189
+
190
+ _computeSliceToSubSliceMap();
191
+
192
+ return (_model$sliceToSubSlic = model.sliceToSubSliceMap[slice]) === null || _model$sliceToSubSlic === void 0 ? void 0 : _model$sliceToSubSlic.imageIndex;
193
+ };
194
+
195
+ publicAPI.getSubSlice = function () {
196
+ var _model$sliceToSubSlic2;
197
+
198
+ var slice = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : publicAPI.getSlice();
199
+
200
+ _computeSliceToSubSliceMap();
201
+
202
+ return (_model$sliceToSubSlic2 = model.sliceToSubSliceMap[slice]) === null || _model$sliceToSubSlic2 === void 0 ? void 0 : _model$sliceToSubSlic2.subSlice;
203
+ };
204
+
205
+ publicAPI.getCurrentImage = function () {
206
+ return publicAPI.getImage(publicAPI.getSlice());
207
+ };
208
+
209
+ publicAPI.intersectWithLineForPointPicking = function (p1, p2) {
210
+ return intersectWithLineForPointPicking(p1, p2, publicAPI);
211
+ };
212
+
213
+ publicAPI.intersectWithLineForCellPicking = function (p1, p2) {
214
+ return intersectWithLineForCellPicking(p1, p2, publicAPI);
215
+ };
216
+ } // ----------------------------------------------------------------------------
217
+
218
+
219
+ var DEFAULT_VALUES = {
220
+ slicingMode: SlicingMode.K,
221
+ sliceToSubSliceMap: []
222
+ };
223
+ function extend(publicAPI, model) {
224
+ var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
225
+ Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API
226
+
227
+ vtkAbstractImageMapper.extend(publicAPI, model, initialValues); // Build VTK API
228
+
229
+ macro.get(publicAPI, model, ['slicingMode']);
230
+ CoincidentTopologyHelper.implementCoincidentTopologyMethods(publicAPI, model); // Object methods
231
+
232
+ vtkImageArrayMapper(publicAPI, model);
233
+ } // ----------------------------------------------------------------------------
234
+
235
+ var newInstance = macro.newInstance(extend, 'vtkImageArrayMapper'); // ----------------------------------------------------------------------------
236
+
237
+ var index = _objectSpread(_objectSpread({
238
+ newInstance: newInstance,
239
+ extend: extend
240
+ }, staticOffsetAPI), otherStaticMethods);
241
+
242
+ export { index as default, extend, newInstance };
@@ -0,0 +1,14 @@
1
+ export declare enum SlicingMode {
2
+ NONE = -1,
3
+ I = 0,
4
+ J = 1,
5
+ K = 2,
6
+ X = 3,
7
+ Y = 4,
8
+ Z = 5,
9
+ }
10
+
11
+ declare const _default: {
12
+ SlicingMode: typeof SlicingMode;
13
+ };
14
+ export default _default;
@@ -2,7 +2,7 @@ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import Constants from './ImageMapper/Constants.js';
3
3
  import macro from '../../macros.js';
4
4
  import vtkAbstractMapper from './AbstractMapper.js';
5
- import { A as clampValue, N as multiply3x3_vect3, M as createUninitializedBounds } from '../../Common/Core/Math/index.js';
5
+ import { A as clampValue, M as multiply3x3_vect3, N as createUninitializedBounds } from '../../Common/Core/Math/index.js';
6
6
  import vtkPlane from '../../Common/DataModel/Plane.js';
7
7
  import CoincidentTopologyHelper from './Mapper/CoincidentTopologyHelper.js';
8
8
  import { vec3 } from 'gl-matrix';
@@ -0,0 +1,9 @@
1
+ export declare enum InterpolationType {
2
+ NEAREST = 0,
3
+ LINEAR = 1,
4
+ }
5
+
6
+ declare const _default: {
7
+ InterpolationType: typeof InterpolationType;
8
+ };
9
+ export default _default;