@kitware/vtk.js 22.5.2 → 22.5.3

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.
@@ -31,21 +31,21 @@ export interface vtkDataArray extends vtkObject {
31
31
 
32
32
  /**
33
33
  * Get the component for a given tupleIdx.
34
- * @param {Number} tupleIdx
34
+ * @param {Number} tupleIdx
35
35
  * @param {Number} [componentIndex] (default: 0)
36
36
  */
37
37
  getComponent(tupleIdx: number, componentIndex?: number): number;
38
38
 
39
39
  /**
40
40
  * Set the component value for a given tupleIdx and componentIndex.
41
- * @param {Number} tupleIdx
42
- * @param {Number} componentIndex
43
- * @param {Number} value
41
+ * @param {Number} tupleIdx
42
+ * @param {Number} componentIndex
43
+ * @param {Number} value
44
44
  */
45
45
  setComponent(tupleIdx: number, componentIndex: number, value: number): void;
46
46
 
47
47
  /**
48
- *
48
+ *
49
49
  */
50
50
  getData(): TypedArray;
51
51
 
@@ -57,22 +57,22 @@ export interface vtkDataArray extends vtkObject {
57
57
  getRange(componentIndex?: number): vtkRange;
58
58
 
59
59
  /**
60
- *
61
- * @param {vtkRange} rangeValue
62
- * @param {Number} componentIndex
60
+ *
61
+ * @param {vtkRange} rangeValue
62
+ * @param {Number} componentIndex
63
63
  */
64
64
  setRange(rangeValue: vtkRange, componentIndex: number): [number, number];
65
65
 
66
66
  /**
67
- *
68
- * @param {Number} idx
69
- * @param {Number[]} tuple
67
+ *
68
+ * @param {Number} idx
69
+ * @param {Number[]} tuple
70
70
  */
71
71
  setTuple(idx: number, tuple: number[]): void;
72
72
 
73
73
  /**
74
74
  *
75
- * @param {Number} idx
75
+ * @param {Number} idx
76
76
  * @param {Number[]} [tupleToFill] (default [])
77
77
  */
78
78
  getTuple(idx: number, tupleToFill?: number[]): number[];
@@ -99,42 +99,42 @@ export interface vtkDataArray extends vtkObject {
99
99
  getNumberOfTuples(): number;
100
100
 
101
101
  /**
102
- *
102
+ *
103
103
  */
104
104
  getDataType(): string;
105
105
 
106
106
  /**
107
- *
107
+ *
108
108
  */
109
109
  newClone(): vtkDataArray;
110
110
 
111
111
  /**
112
- *
112
+ *
113
113
  */
114
114
  getName(): string;
115
115
 
116
116
  /**
117
- *
118
- * @param {TypedArray} typedArray
119
- * @param {Number} [numberOfComponents]
117
+ *
118
+ * @param {TypedArray} typedArray
119
+ * @param {Number} [numberOfComponents]
120
120
  */
121
121
  setData(typedArray: TypedArray, numberOfComponents?: number): void;
122
122
 
123
123
  /**
124
- *
124
+ *
125
125
  */
126
126
  getState(): object;
127
127
 
128
128
  // --- via macro --
129
129
 
130
130
  /**
131
- *
131
+ *
132
132
  */
133
133
  setName(name: string): boolean;
134
134
 
135
135
  /**
136
136
  * Set the dimension (n) of the components.
137
- * @param {Number} numberOfComponents
137
+ * @param {Number} numberOfComponents
138
138
  */
139
139
  setNumberOfComponents(numberOfComponents: number): boolean;
140
140
  }
@@ -160,6 +160,16 @@ export interface vtkDataArray extends vtkObject {
160
160
  export function computeRange(values: number[], component?: number, numberOfComponents?: number): vtkRange;
161
161
 
162
162
  /**
163
+ * Compute range of a given array, it only supports 1D arrays.
164
+ *
165
+ * @param {Number[]} values Array to go through to extract the range from
166
+ * @param {Number} offset offset index to select the desired component in the tuple
167
+ * @param {Number} numberOfComponents size of tuple in a multi-channel array
168
+ */
169
+ export function fastComputeRange(values: number[], offset: number, numberOfComponents: number): vtkRange;
170
+
171
+ /**
172
+ * @deprecated please use `fastComputeRange` instead
163
173
  * Create helper object that can be used to gather min, max, count, sum of
164
174
  * a set of values.
165
175
  */
@@ -242,6 +252,7 @@ export declare const vtkDataArray: {
242
252
  // static
243
253
  computeRange: typeof computeRange,
244
254
  createRangeHelper: typeof createRangeHelper,
255
+ fastComputeRange: typeof fastComputeRange,
245
256
  getDataType: typeof getDataType,
246
257
  getMaxNorm: typeof getMaxNorm,
247
258
  // constants
@@ -10,6 +10,45 @@ var DefaultDataType = Constants.DefaultDataType;
10
10
  var TUPLE_HOLDER = []; // ----------------------------------------------------------------------------
11
11
  // Global methods
12
12
  // ----------------------------------------------------------------------------
13
+ // Original source from https://www.npmjs.com/package/compute-range
14
+ // Modified to accept type arrays
15
+
16
+ function fastComputeRange(arr, offset, numberOfComponents) {
17
+ var len = arr.length;
18
+ var min;
19
+ var max;
20
+ var x;
21
+ var i;
22
+
23
+ if (len === 0) {
24
+ return {
25
+ min: Number.MAX_VALUE,
26
+ max: -Number.MAX_VALUE
27
+ };
28
+ }
29
+
30
+ min = arr[offset];
31
+ max = min;
32
+
33
+ for (i = offset; i < len; i += numberOfComponents) {
34
+ x = arr[i];
35
+
36
+ if (x < min) {
37
+ min = x;
38
+ } else if (x > max) {
39
+ max = x;
40
+ }
41
+ }
42
+
43
+ return {
44
+ min: min,
45
+ max: max
46
+ };
47
+ }
48
+ /**
49
+ * @deprecated please use fastComputeRange instead
50
+ */
51
+
13
52
 
14
53
  function createRangeHelper() {
15
54
  var min = Number.MAX_VALUE;
@@ -50,33 +89,27 @@ function createRangeHelper() {
50
89
  function computeRange(values) {
51
90
  var component = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
52
91
  var numberOfComponents = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
53
- var helper = createRangeHelper();
54
- var size = values.length;
55
- var value = 0;
56
92
 
57
93
  if (component < 0 && numberOfComponents > 1) {
58
94
  // Compute magnitude
59
- for (var i = 0; i < size; i += numberOfComponents) {
60
- value = 0;
95
+ var size = values.length;
96
+ var numberOfValues = size / numberOfComponents;
97
+ var data = new Float64Array(numberOfValues);
61
98
 
62
- for (var j = 0; j < numberOfComponents; j++) {
63
- value += values[i + j] * values[i + j];
99
+ for (var i = 0, j = 0; i < numberOfValues; ++i) {
100
+ var _i;
101
+
102
+ for (var nextJ = j + numberOfComponents; j < nextJ; ++j) {
103
+ data[i] += values[j] * values[j];
64
104
  }
65
105
 
66
- value = Math.pow(value, 0.5);
67
- helper.add(value);
106
+ _i = i, data[_i] = Math.pow(data[_i], 0.5);
68
107
  }
69
108
 
70
- return helper.getRange();
71
- }
72
-
73
- var offset = component < 0 ? 0 : component;
74
-
75
- for (var _i = offset; _i < size; _i += numberOfComponents) {
76
- helper.add(values[_i]);
109
+ return fastComputeRange(data, 0, 1);
77
110
  }
78
111
 
79
- return helper.getRange();
112
+ return fastComputeRange(values, component < 0 ? 0 : component, numberOfComponents);
80
113
  }
81
114
 
82
115
  function ensureRangeSize(rangeArray) {
@@ -116,6 +149,7 @@ function getMaxNorm(normArray) {
116
149
  var STATIC = {
117
150
  computeRange: computeRange,
118
151
  createRangeHelper: createRangeHelper,
152
+ fastComputeRange: fastComputeRange,
119
153
  getDataType: getDataType,
120
154
  getMaxNorm: getMaxNorm
121
155
  }; // ----------------------------------------------------------------------------
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kitware/vtk.js",
3
- "version": "22.5.2",
3
+ "version": "22.5.3",
4
4
  "description": "Visualization Toolkit for the Web",
5
5
  "keywords": [
6
6
  "3d",