@kitware/vtk.js 25.9.2 → 26.0.0-beta.1

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 (183) hide show
  1. package/Common/Core/CellArray.d.ts +0 -6
  2. package/Common/Core/CellArray.js +21 -12
  3. package/Common/Core/ClassHierarchy.js +11 -6
  4. package/Common/Core/DataArray.d.ts +20 -0
  5. package/Common/Core/DataArray.js +21 -4
  6. package/Proxy/Core/ViewProxy.js +17 -9
  7. package/Rendering/Core/Prop3D.js +1 -6
  8. package/Rendering/Core/RenderWindow.js +9 -6
  9. package/Rendering/Core/VolumeProperty.js +2 -3
  10. package/Rendering/Misc/CanvasView.js +6 -5
  11. package/Rendering/Misc/GenericRenderWindow.js +12 -7
  12. package/Rendering/OpenGL/Actor.js +4 -4
  13. package/Rendering/OpenGL/Actor2D.js +4 -4
  14. package/Rendering/OpenGL/Camera.js +7 -4
  15. package/Rendering/OpenGL/CubeAxesActor.js +7 -5
  16. package/Rendering/OpenGL/ForwardPass.js +1 -1
  17. package/Rendering/OpenGL/Glyph3DMapper.js +4 -4
  18. package/Rendering/OpenGL/ImageMapper.js +9 -5
  19. package/Rendering/OpenGL/ImageSlice.js +3 -3
  20. package/Rendering/OpenGL/PixelSpaceCallbackMapper.js +9 -5
  21. package/Rendering/OpenGL/PolyDataMapper.js +27 -21
  22. package/Rendering/OpenGL/PolyDataMapper2D.js +17 -10
  23. package/Rendering/OpenGL/ScalarBarActor.js +6 -4
  24. package/Rendering/OpenGL/Skybox.js +10 -6
  25. package/Rendering/OpenGL/Texture.js +6 -5
  26. package/Rendering/OpenGL/Volume.js +2 -2
  27. package/Rendering/OpenGL/VolumeMapper.js +11 -11
  28. package/Rendering/OpenGL/glsl/vtkVolumeFS.glsl.js +1 -1
  29. package/Rendering/SceneGraph/RenderPass.js +3 -2
  30. package/Rendering/WebGPU/ForwardPass.js +1 -1
  31. package/Rendering/WebGPU/HardwareSelectionPass.js +1 -1
  32. package/Rendering/WebGPU/HardwareSelector.js +14 -13
  33. package/Rendering/WebGPU/OpaquePass.js +1 -1
  34. package/Rendering/WebGPU/OrderIndependentTranslucentPass.js +1 -1
  35. package/Rendering/WebGPU/VolumePass.js +1 -1
  36. package/Utilities/config/rules-tests.js +28 -0
  37. package/Widgets/Core/AbstractWidgetFactory.js +1 -0
  38. package/Widgets/Core/StateBuilder/color3Mixin.js +22 -0
  39. package/Widgets/Core/StateBuilder/colorMixin.js +7 -0
  40. package/Widgets/Core/StateBuilder.js +2 -0
  41. package/Widgets/Representations/ArrowHandleRepresentation.js +28 -110
  42. package/Widgets/Representations/CircleContextRepresentation.js +43 -165
  43. package/Widgets/Representations/ContextRepresentation.js +0 -3
  44. package/Widgets/Representations/ConvexFaceContextRepresentation.js +11 -11
  45. package/Widgets/Representations/CroppingOutlineRepresentation.js +5 -12
  46. package/Widgets/Representations/CubeHandleRepresentation.js +15 -104
  47. package/Widgets/Representations/GlyphRepresentation.js +320 -0
  48. package/Widgets/Representations/HandleRepresentation.js +0 -5
  49. package/Widgets/Representations/ImplicitPlaneRepresentation.js +68 -49
  50. package/Widgets/Representations/LineHandleRepresentation.js +116 -0
  51. package/Widgets/Representations/PolyLineRepresentation.js +52 -49
  52. package/Widgets/Representations/RectangleContextRepresentation.js +16 -21
  53. package/Widgets/Representations/SphereContextRepresentation.js +30 -109
  54. package/Widgets/Representations/SphereHandleRepresentation.js +13 -110
  55. package/Widgets/Representations/SplineContextRepresentation.js +53 -36
  56. package/Widgets/Representations/WidgetRepresentation.d.ts +52 -1
  57. package/Widgets/Representations/WidgetRepresentation.js +140 -78
  58. package/Widgets/Representations.js +6 -0
  59. package/Widgets/SVG/SVGLandmarkRepresentation.js +1 -13
  60. package/Widgets/Widgets3D/AngleWidget.js +1 -4
  61. package/Widgets/Widgets3D/EllipseWidget/state.js +1 -1
  62. package/Widgets/Widgets3D/ResliceCursorWidget/Constants.js +15 -3
  63. package/Widgets/Widgets3D/ResliceCursorWidget/behavior.js +93 -36
  64. package/Widgets/Widgets3D/ResliceCursorWidget/helpers.js +75 -82
  65. package/Widgets/Widgets3D/ResliceCursorWidget/state.js +49 -170
  66. package/Widgets/Widgets3D/ResliceCursorWidget.js +61 -23
  67. package/index.d.ts +0 -1
  68. package/macros.d.ts +3 -5
  69. package/macros.js +4 -35
  70. package/package.json +2 -2
  71. package/Widgets/Representations/ResliceCursorContextRepresentation/Constants.js +0 -12
  72. package/Widgets/Representations/ResliceCursorContextRepresentation.d.ts +0 -54
  73. package/Widgets/Representations/ResliceCursorContextRepresentation.js +0 -357
  74. package/_vendor/available-typed-arrays/index.js_commonjs-proxy.js +0 -1
  75. package/_vendor/call-bind/callBound.js_commonjs-proxy.js +0 -1
  76. package/_vendor/call-bind/index.js_commonjs-module.js +0 -3
  77. package/_vendor/call-bind/index.js_commonjs-proxy.js +0 -1
  78. package/_vendor/deep-equal/node_modules/isarray/index.js_commonjs-proxy.js +0 -1
  79. package/_vendor/define-properties/index.js_commonjs-proxy.js +0 -1
  80. package/_vendor/es-abstract/helpers/getOwnPropertyDescriptor.js_commonjs-proxy.js +0 -1
  81. package/_vendor/es-get-iterator/index.js_commonjs-module.js +0 -3
  82. package/_vendor/es-get-iterator/index.js_commonjs-proxy.js +0 -1
  83. package/_vendor/es-get-iterator/node_modules/isarray/index.js_commonjs-proxy.js +0 -1
  84. package/_vendor/foreach/index.js_commonjs-proxy.js +0 -1
  85. package/_vendor/function-bind/implementation.js_commonjs-proxy.js +0 -1
  86. package/_vendor/function-bind/index.js_commonjs-proxy.js +0 -1
  87. package/_vendor/get-intrinsic/index.js_commonjs-proxy.js +0 -1
  88. package/_vendor/has/src/index.js_commonjs-proxy.js +0 -1
  89. package/_vendor/has-bigints/index.js_commonjs-proxy.js +0 -1
  90. package/_vendor/has-symbols/index.js_commonjs-proxy.js +0 -1
  91. package/_vendor/has-symbols/shams.js_commonjs-proxy.js +0 -1
  92. package/_vendor/has-tostringtag/shams.js_commonjs-proxy.js +0 -1
  93. package/_vendor/is-arguments/index.js_commonjs-proxy.js +0 -1
  94. package/_vendor/is-bigint/index.js_commonjs-module.js +0 -3
  95. package/_vendor/is-bigint/index.js_commonjs-proxy.js +0 -1
  96. package/_vendor/is-boolean-object/index.js_commonjs-proxy.js +0 -1
  97. package/_vendor/is-date-object/index.js_commonjs-proxy.js +0 -1
  98. package/_vendor/is-map/index.js_commonjs-proxy.js +0 -1
  99. package/_vendor/is-number-object/index.js_commonjs-proxy.js +0 -1
  100. package/_vendor/is-regex/index.js_commonjs-proxy.js +0 -1
  101. package/_vendor/is-set/index.js_commonjs-proxy.js +0 -1
  102. package/_vendor/is-string/index.js_commonjs-proxy.js +0 -1
  103. package/_vendor/is-symbol/index.js_commonjs-module.js +0 -3
  104. package/_vendor/is-symbol/index.js_commonjs-proxy.js +0 -1
  105. package/_vendor/is-typed-array/index.js_commonjs-proxy.js +0 -1
  106. package/_vendor/is-weakmap/index.js_commonjs-proxy.js +0 -1
  107. package/_vendor/is-weakset/index.js_commonjs-proxy.js +0 -1
  108. package/_vendor/object-inspect/index.js_commonjs-proxy.js +0 -1
  109. package/_vendor/object-is/implementation.js_commonjs-proxy.js +0 -1
  110. package/_vendor/object-is/index.js_commonjs-proxy.js +0 -1
  111. package/_vendor/object-is/polyfill.js_commonjs-proxy.js +0 -1
  112. package/_vendor/object-is/shim.js_commonjs-proxy.js +0 -1
  113. package/_vendor/object-keys/implementation.js_commonjs-proxy.js +0 -1
  114. package/_vendor/object-keys/index.js_commonjs-proxy.js +0 -1
  115. package/_vendor/object-keys/isArguments.js_commonjs-proxy.js +0 -1
  116. package/_vendor/object.assign/implementation.js_commonjs-proxy.js +0 -1
  117. package/_vendor/object.assign/index.js_commonjs-proxy.js +0 -1
  118. package/_vendor/object.assign/polyfill.js_commonjs-proxy.js +0 -1
  119. package/_vendor/object.assign/shim.js_commonjs-proxy.js +0 -2
  120. package/_vendor/regexp.prototype.flags/implementation.js_commonjs-proxy.js +0 -1
  121. package/_vendor/regexp.prototype.flags/index.js_commonjs-proxy.js +0 -1
  122. package/_vendor/regexp.prototype.flags/polyfill.js_commonjs-proxy.js +0 -1
  123. package/_vendor/regexp.prototype.flags/shim.js_commonjs-proxy.js +0 -1
  124. package/_vendor/side-channel/index.js_commonjs-proxy.js +0 -1
  125. package/_vendor/which-boxed-primitive/index.js_commonjs-proxy.js +0 -5
  126. package/_vendor/which-collection/index.js_commonjs-proxy.js +0 -4
  127. package/_vendor/which-typed-array/index.js_commonjs-proxy.js +0 -1
  128. package/_virtual/_node-resolve_empty.js_commonjs-proxy.js +0 -6
  129. package/_virtual/commonjsHelpers.js +0 -18
  130. package/_virtual/node-resolve_empty.js +0 -8
  131. package/_virtual/polyfill-node.global.js +0 -5
  132. package/_virtual/polyfill-node.process.js +0 -225
  133. package/vendor/available-typed-arrays/index.js +0 -29
  134. package/vendor/call-bind/callBound.js +0 -19
  135. package/vendor/call-bind/index.js +0 -52
  136. package/vendor/deep-equal/index.js +0 -379
  137. package/vendor/deep-equal/node_modules/isarray/index.js +0 -7
  138. package/vendor/define-properties/index.js +0 -60
  139. package/vendor/es-abstract/helpers/getOwnPropertyDescriptor.js +0 -17
  140. package/vendor/es-get-iterator/index.js +0 -217
  141. package/vendor/es-get-iterator/node_modules/isarray/index.js +0 -7
  142. package/vendor/foreach/index.js +0 -22
  143. package/vendor/function-bind/implementation.js +0 -52
  144. package/vendor/function-bind/index.js +0 -7
  145. package/vendor/get-intrinsic/index.js +0 -334
  146. package/vendor/has/src/index.js +0 -7
  147. package/vendor/has-bigints/index.js +0 -12
  148. package/vendor/has-symbols/index.js +0 -15
  149. package/vendor/has-symbols/shams.js +0 -42
  150. package/vendor/has-tostringtag/shams.js +0 -9
  151. package/vendor/is-arguments/index.js +0 -36
  152. package/vendor/is-bigint/index.js +0 -39
  153. package/vendor/is-boolean-object/index.js +0 -29
  154. package/vendor/is-date-object/index.js +0 -22
  155. package/vendor/is-map/index.js +0 -42
  156. package/vendor/is-number-object/index.js +0 -26
  157. package/vendor/is-regex/index.js +0 -61
  158. package/vendor/is-set/index.js +0 -42
  159. package/vendor/is-string/index.js +0 -26
  160. package/vendor/is-symbol/index.js +0 -36
  161. package/vendor/is-typed-array/index.js +0 -67
  162. package/vendor/is-weakmap/index.js +0 -42
  163. package/vendor/is-weakset/index.js +0 -42
  164. package/vendor/object-inspect/index.js +0 -515
  165. package/vendor/object-is/implementation.js +0 -18
  166. package/vendor/object-is/index.js +0 -25
  167. package/vendor/object-is/polyfill.js +0 -9
  168. package/vendor/object-is/shim.js +0 -17
  169. package/vendor/object-keys/implementation.js +0 -124
  170. package/vendor/object-keys/index.js +0 -35
  171. package/vendor/object-keys/isArguments.js +0 -17
  172. package/vendor/object.assign/implementation.js +0 -46
  173. package/vendor/object.assign/index.js +0 -29
  174. package/vendor/object.assign/polyfill.js +0 -57
  175. package/vendor/object.assign/shim.js +0 -17
  176. package/vendor/regexp.prototype.flags/implementation.js +0 -30
  177. package/vendor/regexp.prototype.flags/index.js +0 -25
  178. package/vendor/regexp.prototype.flags/polyfill.js +0 -23
  179. package/vendor/regexp.prototype.flags/shim.js +0 -29
  180. package/vendor/side-channel/index.js +0 -128
  181. package/vendor/which-boxed-primitive/index.js +0 -38
  182. package/vendor/which-collection/index.js +0 -29
  183. package/vendor/which-typed-array/index.js +0 -63
@@ -1,123 +1,34 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
1
2
  import macro from '../../macros.js';
2
- import vtkActor from '../../Rendering/Core/Actor.js';
3
3
  import vtkCubeSource from '../../Filters/Sources/CubeSource.js';
4
- import vtkDataArray from '../../Common/Core/DataArray.js';
5
- import vtkGlyph3DMapper from '../../Rendering/Core/Glyph3DMapper.js';
6
- import vtkHandleRepresentation from './HandleRepresentation.js';
7
- import vtkPolyData from '../../Common/DataModel/PolyData.js';
8
- import { ScalarMode } from '../../Rendering/Core/Mapper/Constants.js';
4
+ import vtkGlyphRepresentation from './GlyphRepresentation.js';
9
5
 
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
+
8
+ 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; }
10
9
  // vtkCubeHandleRepresentation methods
11
10
  // ----------------------------------------------------------------------------
12
11
 
13
12
  function vtkCubeHandleRepresentation(publicAPI, model) {
14
13
  // Set our className
15
- model.classHierarchy.push('vtkCubeHandleRepresentation'); // --------------------------------------------------------------------------
16
- // Internal polydata dataset
17
- // --------------------------------------------------------------------------
18
-
19
- model.internalPolyData = vtkPolyData.newInstance({
20
- mtime: 0
21
- });
22
- model.internalArrays = {
23
- points: model.internalPolyData.getPoints(),
24
- scale: vtkDataArray.newInstance({
25
- name: 'scale',
26
- numberOfComponents: 3,
27
- empty: true
28
- }),
29
- color: vtkDataArray.newInstance({
30
- name: 'color',
31
- numberOfComponents: 1,
32
- empty: true
33
- })
34
- };
35
- model.internalPolyData.getPointData().addArray(model.internalArrays.scale);
36
- model.internalPolyData.getPointData().addArray(model.internalArrays.color); // --------------------------------------------------------------------------
37
- // Generic rendering pipeline
38
- // --------------------------------------------------------------------------
39
-
40
- model.mapper = vtkGlyph3DMapper.newInstance({
41
- scaleArray: 'scale',
42
- colorByArrayName: 'color',
43
- scalarMode: ScalarMode.USE_POINT_FIELD_DATA
44
- });
45
- model.actor = vtkActor.newInstance({
46
- parentProp: publicAPI
47
- });
48
- model.glyph = vtkCubeSource.newInstance();
49
- model.mapper.setInputConnection(publicAPI.getOutputPort(), 0);
50
- model.mapper.setInputConnection(model.glyph.getOutputPort(), 1);
51
- model.actor.setMapper(model.mapper);
52
- publicAPI.addActor(model.actor);
53
- var superGetRepresentationStates = publicAPI.getRepresentationStates;
54
-
55
- publicAPI.getRepresentationStates = function () {
56
- var input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : model.inputData[0];
57
- return superGetRepresentationStates(input).filter(function (state) {
58
- var _state$getOrigin, _state$isVisible;
59
-
60
- return ((_state$getOrigin = state.getOrigin) === null || _state$getOrigin === void 0 ? void 0 : _state$getOrigin.call(state)) && ((_state$isVisible = state.isVisible) === null || _state$isVisible === void 0 ? void 0 : _state$isVisible.call(state));
61
- });
62
- }; // --------------------------------------------------------------------------
63
-
64
-
65
- publicAPI.requestData = function (inData, outData) {
66
- var _model$internalArrays = model.internalArrays,
67
- points = _model$internalArrays.points,
68
- scale = _model$internalArrays.scale,
69
- color = _model$internalArrays.color;
70
- var list = publicAPI.getRepresentationStates(inData[0]);
71
- var totalCount = list.length;
72
-
73
- if (color.getNumberOfValues() !== totalCount) {
74
- // Need to resize dataset
75
- points.setData(new Float32Array(3 * totalCount));
76
- scale.setData(new Float32Array(3 * totalCount));
77
- color.setData(new Float32Array(totalCount));
78
- }
79
-
80
- var typedArray = {
81
- points: points.getData(),
82
- scale: scale.getData(),
83
- color: color.getData()
84
- };
85
-
86
- for (var i = 0; i < totalCount; i++) {
87
- var state = list[i];
88
- var isActive = state.getActive();
89
- var scaleFactor = isActive ? model.activeScaleFactor : 1;
90
- var coord = state.getOrigin();
91
-
92
- if (coord) {
93
- typedArray.points[i * 3 + 0] = coord[0];
94
- typedArray.points[i * 3 + 1] = coord[1];
95
- typedArray.points[i * 3 + 2] = coord[2];
96
- typedArray.scale[i] = scaleFactor * (state.getScale1 ? state.getScale1() : model.defaultScale);
97
-
98
- if (publicAPI.getScaleInPixels()) {
99
- typedArray.scale[i] *= publicAPI.getPixelWorldHeightAtCoord(coord);
100
- }
101
-
102
- typedArray.color[i] = model.useActiveColor && isActive ? model.activeColor : state.getColor();
103
- }
104
- }
105
-
106
- model.internalPolyData.modified();
107
- outData[0] = model.internalPolyData;
108
- };
14
+ model.classHierarchy.push('vtkCubeHandleRepresentation');
109
15
  } // ----------------------------------------------------------------------------
110
16
  // Object factory
111
17
  // ----------------------------------------------------------------------------
18
+ // ----------------------------------------------------------------------------
112
19
 
113
20
 
114
- var DEFAULT_VALUES = {}; // ----------------------------------------------------------------------------
21
+ function defaultValues(initialValues) {
22
+ return _objectSpread({
23
+ _pipeline: {
24
+ glyph: vtkCubeSource.newInstance()
25
+ }
26
+ }, initialValues);
27
+ }
115
28
 
116
29
  function extend(publicAPI, model) {
117
30
  var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
118
- Object.assign(model, DEFAULT_VALUES, initialValues);
119
- vtkHandleRepresentation.extend(publicAPI, model, initialValues);
120
- macro.get(publicAPI, model, ['glyph', 'mapper', 'actor', 'defaultScale']); // Object specific methods
31
+ vtkGlyphRepresentation.extend(publicAPI, model, defaultValues(initialValues)); // Object specific methods
121
32
 
122
33
  vtkCubeHandleRepresentation(publicAPI, model);
123
34
  } // ----------------------------------------------------------------------------
@@ -0,0 +1,320 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import macro from '../../macros.js';
3
+ import vtkActor from '../../Rendering/Core/Actor.js';
4
+ import vtkGlyph3DMapper from '../../Rendering/Core/Glyph3DMapper.js';
5
+ import vtkHandleRepresentation from './HandleRepresentation.js';
6
+ import vtkContextRepresentation from './ContextRepresentation.js';
7
+ import vtkSphereSource from '../../Filters/Sources/SphereSource.js';
8
+ import vtkPolyData from '../../Common/DataModel/PolyData.js';
9
+ import { ScalarMode } from '../../Rendering/Core/Mapper/Constants.js';
10
+ import vtkWidgetRepresentation, { allocateArray, getPixelWorldHeightAtCoord } from './WidgetRepresentation.js';
11
+ import { Behavior } from './WidgetRepresentation/Constants.js';
12
+ import { OrientationModes } from '../../Rendering/Core/Glyph3DMapper/Constants.js';
13
+
14
+ 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; }
15
+
16
+ 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; }
17
+ // vtkGlyphRepresentation methods
18
+ // ----------------------------------------------------------------------------
19
+
20
+ function origin(publicAPI, model) {
21
+ return function (polyData, states) {
22
+ var points = allocateArray(polyData, 'points', states.length).getData();
23
+ var j = 0;
24
+
25
+ for (var i = 0; i < states.length; ++i) {
26
+ var coord = states[i].getOrigin();
27
+ points[j++] = coord[0];
28
+ points[j++] = coord[1];
29
+ points[j++] = coord[2];
30
+ }
31
+ };
32
+ }
33
+ function noPosition(publicAPI, model) {
34
+ return function (polyData, states) {
35
+ allocateArray(polyData, 'points', 0);
36
+ };
37
+ }
38
+ function color3(publicAPI, model) {
39
+ return function (polyData, states) {
40
+ model._pipeline.mapper.setColorByArrayName('color');
41
+
42
+ var colors = allocateArray(polyData, 'color', states.length, 'Uint8Array', // RGB
43
+ 3).getData();
44
+ var j = 0;
45
+
46
+ for (var i = 0; i < states.length; ++i) {
47
+ var c3 = states[i].getColor3();
48
+
49
+ if (states[i].getActive() && model.useActiveColor) {
50
+ c3 = model.activeColor;
51
+ }
52
+
53
+ colors[j++] = c3[0];
54
+ colors[j++] = c3[1];
55
+ colors[j++] = c3[2];
56
+ }
57
+ };
58
+ }
59
+ function color(publicAPI, model) {
60
+ return function (polyData, states) {
61
+ model._pipeline.mapper.setColorByArrayName('color');
62
+
63
+ var colors = allocateArray(polyData, 'color', states.length).getData();
64
+
65
+ for (var i = 0; i < states.length; ++i) {
66
+ var c = states[i].getColor();
67
+
68
+ if (states[i].getActive() && model.useActiveColor) {
69
+ c = model.activeColor;
70
+ }
71
+
72
+ colors[i] = c;
73
+ }
74
+ };
75
+ }
76
+ function noColor(publicAPI, model) {
77
+ return function (polyData, states) {
78
+ model._pipeline.mapper.setColorByArrayName(null);
79
+ };
80
+ }
81
+ function scale3(publicAPI, model) {
82
+ return function (polyData, states) {
83
+ model._pipeline.mapper.setScaleArray('scale');
84
+
85
+ model._pipeline.mapper.setScaleFactor(1);
86
+
87
+ model._pipeline.mapper.setScaling(true);
88
+
89
+ model._pipeline.mapper.setScaleMode(vtkGlyph3DMapper.ScaleModes.SCALE_BY_COMPONENTS);
90
+
91
+ var scales = allocateArray(polyData, 'scale', states.length, 'Float32Array', 3).getData();
92
+ var j = 0;
93
+
94
+ for (var i = 0; i < states.length; ++i) {
95
+ var _state$getScale, _state$getScale2;
96
+
97
+ var state = states[i];
98
+ var scaleFactor = state.getActive() ? model.activeScaleFactor : 1;
99
+
100
+ if (publicAPI.getScaleInPixels()) {
101
+ scaleFactor *= getPixelWorldHeightAtCoord(state.getOrigin(), model.displayScaleParams);
102
+ }
103
+
104
+ var scale = (_state$getScale = (_state$getScale2 = state.getScale3) === null || _state$getScale2 === void 0 ? void 0 : _state$getScale2.call(state)) !== null && _state$getScale !== void 0 ? _state$getScale : model.defaultScale;
105
+ scales[j++] = scaleFactor * scale[0];
106
+ scales[j++] = scaleFactor * scale[1];
107
+ scales[j++] = scaleFactor * scale[2];
108
+ }
109
+ };
110
+ }
111
+ function scale1(publicAPI, model) {
112
+ return function (polyData, states) {
113
+ model._pipeline.mapper.setScaleArray('scale');
114
+
115
+ model._pipeline.mapper.setScaleFactor(1);
116
+
117
+ model._pipeline.mapper.setScaling(true);
118
+
119
+ var scales = allocateArray(polyData, 'scale', states.length).getData();
120
+
121
+ for (var i = 0; i < states.length; ++i) {
122
+ var _state$getScale3, _state$getScale4;
123
+
124
+ var state = states[i];
125
+ var scaleFactor = state.getActive() ? model.activeScaleFactor : 1;
126
+
127
+ if (publicAPI.getScaleInPixels()) {
128
+ scaleFactor *= getPixelWorldHeightAtCoord(state.getOrigin(), model.displayScaleParams);
129
+ }
130
+
131
+ var scale = (_state$getScale3 = (_state$getScale4 = state.getScale1) === null || _state$getScale4 === void 0 ? void 0 : _state$getScale4.call(state)) !== null && _state$getScale3 !== void 0 ? _state$getScale3 : model.defaultScale;
132
+ scales[i] = scaleFactor * scale;
133
+ }
134
+ };
135
+ }
136
+ function noScale(publicAPI, model) {
137
+ return function (polyData, states) {
138
+ model._pipeline.mapper.setScaleArray(null);
139
+
140
+ model._pipeline.mapper.setScaleFactor(model.defaultScale);
141
+
142
+ model._pipeline.mapper.setScaling(model.defaultScale !== 1);
143
+ };
144
+ }
145
+ function direction(publicAPI, model) {
146
+ return function (polyData, states) {
147
+ model._pipeline.mapper.setOrientationArray('orientation');
148
+
149
+ model._pipeline.mapper.setOrientationMode(OrientationModes.MATRIX);
150
+
151
+ var orientation = allocateArray(polyData, 'orientation', states.length, 'Float32Array', 9).getData();
152
+
153
+ for (var i = 0; i < states.length; ++i) {
154
+ var state = states[i];
155
+ var right = state.getRight ? state.getRight() : [1, 0, 0];
156
+ var up = state.getUp ? state.getUp() : [0, 1, 0];
157
+ var dir = state.getDirection ? state.getDirection() : [0, 0, 1];
158
+ orientation.set(right, 9 * i);
159
+ orientation.set(up, 9 * i + 3);
160
+ orientation.set(dir, 9 * i + 6);
161
+ }
162
+ };
163
+ }
164
+ function noOrientation(publicAPI, model) {
165
+ return function (polyData, states) {
166
+ model._pipeline.mapper.setOrientationArray(null);
167
+ };
168
+ }
169
+
170
+ function vtkGlyphRepresentation(publicAPI, model) {
171
+ // Set our className
172
+ model.classHierarchy.push('vtkGlyphRepresentation');
173
+
174
+ var superClass = _objectSpread({}, publicAPI);
175
+
176
+ var internalPolyData = vtkPolyData.newInstance({
177
+ mtime: 0
178
+ });
179
+
180
+ function hasMixin(states) {
181
+ for (var _len = arguments.length, requiredMixins = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
182
+ requiredMixins[_key - 1] = arguments[_key];
183
+ }
184
+
185
+ return requiredMixins.every(function (requiredMixin) {
186
+ var _states$, _states$$;
187
+
188
+ return ((_states$ = states[0]) === null || _states$ === void 0 ? void 0 : (_states$$ = _states$["get".concat(macro.capitalize(requiredMixin))]) === null || _states$$ === void 0 ? void 0 : _states$$.call(_states$)) != null;
189
+ });
190
+ } // --------------------------------------------------------------------------
191
+ // Generic rendering pipeline
192
+ // --------------------------------------------------------------------------
193
+ // --------------------------------------------------------------------------
194
+
195
+
196
+ publicAPI.getRepresentationStates = function () {
197
+ var input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : model.inputData[0];
198
+ return superClass.getRepresentationStates(input).filter(function (state) {
199
+ var _state$getOrigin, _state$isVisible;
200
+
201
+ return ((_state$getOrigin = state.getOrigin) === null || _state$getOrigin === void 0 ? void 0 : _state$getOrigin.call(state)) && ((_state$isVisible = state.isVisible) === null || _state$isVisible === void 0 ? void 0 : _state$isVisible.call(state));
202
+ });
203
+ }; // --------------------------------------------------------------------------
204
+
205
+
206
+ publicAPI.getMixins = function (states) {
207
+ var glyphProperties = {};
208
+
209
+ if (hasMixin(states, 'origin')) {
210
+ glyphProperties.position = model.applyMixin.origin;
211
+ } else {
212
+ glyphProperties.position = model.applyMixin.noPosition;
213
+ }
214
+
215
+ if (hasMixin(states, 'color3')) {
216
+ glyphProperties.color = model.applyMixin.color3;
217
+ } else if (hasMixin(states, 'color')) {
218
+ glyphProperties.color = model.applyMixin.color;
219
+ } else {
220
+ glyphProperties.color = model.applyMixin.noColor;
221
+ }
222
+
223
+ if (hasMixin(states, 'scale3')) {
224
+ glyphProperties.scale = model.applyMixin.scale3;
225
+ } else if (hasMixin(states, 'scale1')) {
226
+ glyphProperties.scale = model.applyMixin.scale1;
227
+ } else {
228
+ glyphProperties.scale = model.applyMixin.noScale;
229
+ }
230
+
231
+ if (hasMixin(states, 'direction')) {
232
+ glyphProperties.orientation = model.applyMixin.direction;
233
+ } else {
234
+ glyphProperties.orientation = model.applyMixin.noOrientation;
235
+ }
236
+
237
+ return glyphProperties;
238
+ };
239
+
240
+ publicAPI.requestData = function (inData, outData) {
241
+ var states = publicAPI.getRepresentationStates(inData[0]);
242
+ outData[0] = internalPolyData;
243
+ var glyphProperties = publicAPI.getMixins(states);
244
+ Object.values(glyphProperties).forEach(function (property) {
245
+ return property(internalPolyData, states);
246
+ });
247
+ internalPolyData.getPoints().modified();
248
+ internalPolyData.modified();
249
+ };
250
+
251
+ vtkWidgetRepresentation.connectPipeline(model._pipeline);
252
+ publicAPI.addActor(model._pipeline.actor);
253
+ } // ----------------------------------------------------------------------------
254
+ // Object factory
255
+ // ----------------------------------------------------------------------------
256
+
257
+
258
+ function defaultValues(publicAPI, model, initialValues) {
259
+ var _initialValues$pipeli, _initialValues$pipeli2, _initialValues$pipeli3, _initialValues$pipeli4, _initialValues$pipeli5, _initialValues$pipeli6, _initialValues$pipeli7, _initialValues$pipeli8, _initialValues$applyM, _initialValues$applyM2, _initialValues$applyM3, _initialValues$applyM4, _initialValues$applyM5, _initialValues$applyM6, _initialValues$applyM7, _initialValues$applyM8, _initialValues$applyM9, _initialValues$applyM10, _initialValues$applyM11, _initialValues$applyM12, _initialValues$applyM13, _initialValues$applyM14, _initialValues$applyM15, _initialValues$applyM16, _initialValues$applyM17, _initialValues$applyM18, _initialValues$applyM19, _initialValues$applyM20;
260
+
261
+ return _objectSpread(_objectSpread({
262
+ defaultScale: 1
263
+ }, initialValues), {}, {
264
+ _pipeline: _objectSpread({
265
+ source: (_initialValues$pipeli = (_initialValues$pipeli2 = initialValues.pipeline) === null || _initialValues$pipeli2 === void 0 ? void 0 : _initialValues$pipeli2.source) !== null && _initialValues$pipeli !== void 0 ? _initialValues$pipeli : publicAPI,
266
+ glyph: (_initialValues$pipeli3 = (_initialValues$pipeli4 = initialValues.pipeline) === null || _initialValues$pipeli4 === void 0 ? void 0 : _initialValues$pipeli4.glyph) !== null && _initialValues$pipeli3 !== void 0 ? _initialValues$pipeli3 : // in case glyph was provided
267
+ vtkSphereSource.newInstance({
268
+ phiResolution: 8,
269
+ thetaResolution: 8
270
+ }),
271
+ mapper: (_initialValues$pipeli5 = (_initialValues$pipeli6 = initialValues.pipeline) === null || _initialValues$pipeli6 === void 0 ? void 0 : _initialValues$pipeli6.mapper) !== null && _initialValues$pipeli5 !== void 0 ? _initialValues$pipeli5 : // in case mapper was provided
272
+ vtkGlyph3DMapper.newInstance({
273
+ scalarMode: ScalarMode.USE_POINT_FIELD_DATA
274
+ }),
275
+ actor: (_initialValues$pipeli7 = (_initialValues$pipeli8 = initialValues.pipeline) === null || _initialValues$pipeli8 === void 0 ? void 0 : _initialValues$pipeli8.actor) !== null && _initialValues$pipeli7 !== void 0 ? _initialValues$pipeli7 : // in case actor was provided
276
+ vtkActor.newInstance({
277
+ parentProp: publicAPI
278
+ })
279
+ }, initialValues.pipeline),
280
+ applyMixin: _objectSpread({
281
+ origin: (_initialValues$applyM = (_initialValues$applyM2 = initialValues.applyMixin) === null || _initialValues$applyM2 === void 0 ? void 0 : _initialValues$applyM2.origin) !== null && _initialValues$applyM !== void 0 ? _initialValues$applyM : origin(),
282
+ noPosition: (_initialValues$applyM3 = (_initialValues$applyM4 = initialValues.applyMixin) === null || _initialValues$applyM4 === void 0 ? void 0 : _initialValues$applyM4.noPosition) !== null && _initialValues$applyM3 !== void 0 ? _initialValues$applyM3 : noPosition(),
283
+ color3: (_initialValues$applyM5 = (_initialValues$applyM6 = initialValues.applyMixin) === null || _initialValues$applyM6 === void 0 ? void 0 : _initialValues$applyM6.color3) !== null && _initialValues$applyM5 !== void 0 ? _initialValues$applyM5 : color3(publicAPI, model),
284
+ color: (_initialValues$applyM7 = (_initialValues$applyM8 = initialValues.applyMixin) === null || _initialValues$applyM8 === void 0 ? void 0 : _initialValues$applyM8.color) !== null && _initialValues$applyM7 !== void 0 ? _initialValues$applyM7 : color(publicAPI, model),
285
+ noColor: (_initialValues$applyM9 = (_initialValues$applyM10 = initialValues.applyMixin) === null || _initialValues$applyM10 === void 0 ? void 0 : _initialValues$applyM10.noColor) !== null && _initialValues$applyM9 !== void 0 ? _initialValues$applyM9 : noColor(publicAPI, model),
286
+ scale3: (_initialValues$applyM11 = (_initialValues$applyM12 = initialValues.applyMixin) === null || _initialValues$applyM12 === void 0 ? void 0 : _initialValues$applyM12.scale3) !== null && _initialValues$applyM11 !== void 0 ? _initialValues$applyM11 : scale3(publicAPI, model),
287
+ scale1: (_initialValues$applyM13 = (_initialValues$applyM14 = initialValues.applyMixin) === null || _initialValues$applyM14 === void 0 ? void 0 : _initialValues$applyM14.scale1) !== null && _initialValues$applyM13 !== void 0 ? _initialValues$applyM13 : scale1(publicAPI, model),
288
+ noScale: (_initialValues$applyM15 = (_initialValues$applyM16 = initialValues.applyMixin) === null || _initialValues$applyM16 === void 0 ? void 0 : _initialValues$applyM16.noScale) !== null && _initialValues$applyM15 !== void 0 ? _initialValues$applyM15 : noScale(publicAPI, model),
289
+ direction: (_initialValues$applyM17 = (_initialValues$applyM18 = initialValues.applyMixin) === null || _initialValues$applyM18 === void 0 ? void 0 : _initialValues$applyM18.direction) !== null && _initialValues$applyM17 !== void 0 ? _initialValues$applyM17 : direction(publicAPI, model),
290
+ noOrientation: (_initialValues$applyM19 = (_initialValues$applyM20 = initialValues.applyMixin) === null || _initialValues$applyM20 === void 0 ? void 0 : _initialValues$applyM20.noOrientation) !== null && _initialValues$applyM19 !== void 0 ? _initialValues$applyM19 : noOrientation(publicAPI, model)
291
+ }, initialValues.applyMixin)
292
+ });
293
+ } // ----------------------------------------------------------------------------
294
+
295
+
296
+ function extend(publicAPI, model) {
297
+ var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
298
+
299
+ if (initialValues.behavior === Behavior.CONTEXT) {
300
+ vtkContextRepresentation.extend(publicAPI, model, defaultValues(publicAPI, model, initialValues));
301
+ } else {
302
+ vtkHandleRepresentation.extend(publicAPI, model, defaultValues(publicAPI, model, initialValues));
303
+ }
304
+
305
+ macro.setGet(publicAPI, model._pipeline, ['defaultScale']);
306
+ macro.get(publicAPI, model._pipeline, ['glyph', 'mapper', 'actor']); // Expose the mixin functions to allow overwriting
307
+
308
+ macro.setGet(publicAPI, model.applyMixin, Object.keys(model.applyMixin)); // Object specific methods
309
+
310
+ vtkGlyphRepresentation(publicAPI, model);
311
+ } // ----------------------------------------------------------------------------
312
+
313
+ var newInstance = macro.newInstance(extend, 'vtkGlyphRepresentation'); // ----------------------------------------------------------------------------
314
+
315
+ var vtkGlyphRepresentation$1 = {
316
+ newInstance: newInstance,
317
+ extend: extend
318
+ };
319
+
320
+ export { color, color3, vtkGlyphRepresentation$1 as default, direction, extend, newInstance, noColor, noOrientation, noPosition, noScale, origin, scale1, scale3 };
@@ -1,5 +1,4 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
- import macro from '../../macros.js';
3
2
  import vtkWidgetRepresentation from './WidgetRepresentation.js';
4
3
  import { Behavior } from './WidgetRepresentation/Constants.js';
5
4
 
@@ -18,9 +17,6 @@ function vtkHandleRepresentation(publicAPI, model) {
18
17
 
19
18
 
20
19
  var DEFAULT_VALUES = {
21
- activeScaleFactor: 1.2,
22
- activeColor: 1,
23
- useActiveColor: true,
24
20
  behavior: Behavior.HANDLE,
25
21
  pickable: true,
26
22
  dragable: true,
@@ -33,7 +29,6 @@ function extend(publicAPI, model) {
33
29
  var newDefault = _objectSpread(_objectSpread({}, DEFAULT_VALUES), initialValues);
34
30
 
35
31
  vtkWidgetRepresentation.extend(publicAPI, model, newDefault);
36
- macro.setGet(publicAPI, model, ['activeScaleFactor', 'activeColor', 'useActiveColor']);
37
32
  vtkHandleRepresentation(publicAPI, model);
38
33
  } // ----------------------------------------------------------------------------
39
34