@kitware/vtk.js 21.6.0 → 22.0.2
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/Common/Core/CellArray.js +2 -2
- package/Common/Core/DataArray.js +2 -2
- package/Common/Core/MatrixBuilder.d.ts +1 -1
- package/Common/Core/ScalarsToColors.js +12 -11
- package/Common/DataModel/BoundingBox.js +2 -2
- package/Common/DataModel/Box.js +2 -2
- package/Common/DataModel/CellTypes.js +2 -2
- package/Common/DataModel/Cylinder.js +2 -2
- package/Common/DataModel/DataSet.js +2 -2
- package/Common/DataModel/DataSetAttributes.js +2 -2
- package/Common/DataModel/ImplicitBoolean.js +2 -2
- package/Common/DataModel/Line.js +2 -2
- package/Common/DataModel/PiecewiseFunction.js +3 -3
- package/Common/DataModel/Plane.js +2 -2
- package/Common/DataModel/SelectionNode.js +2 -2
- package/Common/DataModel/Sphere.js +2 -2
- package/Common/DataModel/StructuredData.js +2 -2
- package/Common/DataModel/Triangle.js +2 -2
- package/Common/Transform/LandmarkTransform.js +2 -2
- package/Filters/Core/Cutter.js +2 -2
- package/Filters/General/Calculator.js +2 -2
- package/Filters/Sources/Arrow2DSource.js +2 -2
- package/Filters/Sources/CircleSource.js +2 -2
- package/IO/Core/DataAccessHelper/HtmlDataAccessHelper.js +6 -12
- package/IO/Core/DataAccessHelper/HttpDataAccessHelper.js +11 -19
- package/IO/Core/DataAccessHelper/JSZipDataAccessHelper.js +8 -15
- package/IO/Core/DataAccessHelper/LiteHttpDataAccessHelper.js +11 -19
- package/IO/Core/HttpSceneLoader.js +2 -2
- package/IO/Core/ImageStream/DefaultProtocol.js +2 -6
- package/IO/Geometry/PLYWriter/Constants.js +19 -0
- package/IO/Geometry/PLYWriter.d.ts +203 -0
- package/IO/Geometry/PLYWriter.js +323 -0
- package/IO/Geometry/STLWriter.js +2 -2
- package/IO/Geometry.js +3 -1
- package/IO/XML/XMLImageDataWriter.js +2 -2
- package/IO/XML/XMLPolyDataWriter.js +2 -2
- package/Imaging/Core/AbstractImageInterpolator/InterpolationInfo.js +2 -2
- package/Imaging/Core/AbstractImageInterpolator.js +2 -2
- package/Imaging/Core/ImageInterpolator.js +12 -12
- package/Imaging/Core/ImageReslice.js +10 -10
- package/Imaging/Hybrid/SampleFunction.js +2 -2
- package/Interaction/Animations/TimeStepBasedAnimationHandler.js +2 -2
- package/Interaction/Manipulators/MouseBoxSelectorManipulator.js +2 -2
- package/Interaction/Style/InteractorStyleManipulator.js +2 -2
- package/Interaction/Style/InteractorStyleRemoteMouse.js +2 -2
- package/Interaction/UI/FPSMonitor.js +2 -2
- package/Interaction/UI/Slider.js +2 -2
- package/Interaction/Widgets/AbstractWidget.js +2 -2
- package/Interaction/Widgets/DistanceRepresentation.js +2 -2
- package/Interaction/Widgets/DistanceWidget.js +2 -2
- package/Interaction/Widgets/HandleRepresentation.js +2 -2
- package/Interaction/Widgets/HandleWidget.js +2 -2
- package/Interaction/Widgets/ImageCroppingRegionsWidget.js +2 -2
- package/Interaction/Widgets/LabelRepresentation.js +2 -2
- package/Interaction/Widgets/LabelWidget.js +2 -2
- package/Interaction/Widgets/LineRepresentation.js +2 -2
- package/Interaction/Widgets/LineWidget.js +2 -2
- package/Interaction/Widgets/OrientationMarkerWidget.js +2 -2
- package/Interaction/Widgets/PiecewiseGaussianWidget.js +2 -2
- package/Interaction/Widgets/ResliceCursor/ResliceCursor.js +2 -2
- package/Interaction/Widgets/ResliceCursor/ResliceCursorActor.js +2 -2
- package/Interaction/Widgets/ResliceCursor/ResliceCursorPolyDataAlgorithm.js +2 -2
- package/Interaction/Widgets/ResliceCursor/ResliceCursorWidget.js +2 -2
- package/Interaction/Widgets/SphereHandleRepresentation.js +2 -2
- package/Proxy/Core/PiecewiseFunctionProxy.js +2 -2
- package/Proxy/Core/ProxyManager/core.js +2 -2
- package/Proxy/Core/ProxyManager/properties.js +2 -2
- package/Proxy/Core/ProxyManager/state.js +2 -2
- package/Proxy/Representations/SliceRepresentationProxy.js +2 -2
- package/Rendering/Core/AbstractMapper.d.ts +4 -4
- package/Rendering/Core/AbstractMapper.js +18 -7
- package/Rendering/Core/Actor.js +2 -2
- package/Rendering/Core/AnnotatedCubeActor.js +2 -2
- package/Rendering/Core/AxesActor.js +2 -2
- package/Rendering/Core/CellPicker.js +2 -2
- package/Rendering/Core/ColorTransferFunction.js +2 -2
- package/Rendering/Core/Coordinate.js +2 -2
- package/Rendering/Core/CubeAxesActor.js +2 -2
- package/Rendering/Core/Follower.js +2 -2
- package/Rendering/Core/Glyph3DMapper.js +2 -2
- package/Rendering/Core/ImageMapper.js +2 -2
- package/Rendering/Core/InteractorObserver.js +2 -2
- package/Rendering/Core/InteractorStyle.js +2 -2
- package/Rendering/Core/Mapper.js +2 -2
- package/Rendering/Core/Picker.js +2 -2
- package/Rendering/Core/Property.js +2 -2
- package/Rendering/Core/RenderWindowInteractor.js +20 -11
- package/Rendering/Core/ScalarBarActor.js +2 -2
- package/Rendering/Core/VolumeMapper.js +1 -4
- package/Rendering/Core/VolumeProperty.js +2 -2
- package/Rendering/Core.js +2 -2
- package/Rendering/Misc/RenderWindowWithControlBar.js +2 -2
- package/Rendering/Misc/SynchronizableRenderWindow/vtkObjectManager.js +2 -2
- package/Rendering/Misc/SynchronizableRenderWindow.js +2 -2
- package/Rendering/OpenGL/BufferObject.js +5 -5
- package/Rendering/OpenGL/CellArrayBufferObject.js +2 -1
- package/Rendering/OpenGL/Glyph3DMapper.js +2 -2
- package/Rendering/OpenGL/HardwareSelector.js +2 -2
- package/Rendering/OpenGL/RenderWindow.js +1 -1
- package/Rendering/OpenGL/SphereMapper.js +2 -2
- package/Rendering/OpenGL/StickMapper.js +2 -2
- package/Rendering/OpenGL/SurfaceLIC/SurfaceLICMapper.js +2 -2
- package/Rendering/OpenGL/Texture.js +2 -2
- package/Rendering/OpenGL/VolumeMapper.js +11 -18
- package/Rendering/WebGPU/Buffer.js +2 -2
- package/Rendering/WebGPU/BufferManager.js +2 -2
- package/Rendering/WebGPU/Glyph3DMapper.js +2 -2
- package/Rendering/WebGPU/HardwareSelector.js +1 -1
- package/Rendering/WebGPU/MapperHelper.js +2 -1
- package/Rendering/WebGPU/PolyDataMapper.js +1 -1
- package/Rendering/WebGPU/StorageBuffer.js +1 -1
- package/Rendering/WebGPU/TextureManager.js +1 -1
- package/Rendering/WebGPU/UniformBuffer.js +69 -52
- package/Rendering/WebGPU/VolumePass.js +55 -12
- package/Rendering/WebGPU/VolumePassFSQ.js +4 -1
- package/Widgets/Core/AbstractWidgetFactory.js +2 -2
- package/Widgets/Representations/ArrowHandleRepresentation.js +2 -2
- package/Widgets/Representations/ContextRepresentation.js +2 -2
- package/Widgets/Representations/HandleRepresentation.js +2 -2
- package/Widgets/Representations/PolyLineRepresentation.js +2 -2
- package/Widgets/Representations/ResliceCursorContextRepresentation.js +2 -2
- package/Widgets/SVG/SVGLandmarkRepresentation.js +2 -2
- package/Widgets/Widgets3D/EllipseWidget/behavior.js +2 -2
- package/Widgets/Widgets3D/EllipseWidget.js +2 -2
- package/Widgets/Widgets3D/InteractiveOrientationWidget/behavior.js +2 -2
- package/Widgets/Widgets3D/LineWidget/behavior.js +2 -2
- package/Widgets/Widgets3D/RectangleWidget/behavior.js +2 -2
- package/Widgets/Widgets3D/RectangleWidget.js +2 -2
- package/Widgets/Widgets3D/ShapeWidget/behavior.js +2 -2
- package/Widgets/Widgets3D/ShapeWidget.js +2 -2
- package/_virtual/rollup-plugin-worker-loader__module_Sources/Filters/General/PaintFilter/PaintFilter.worker.js +44 -44
- package/_virtual/rollup-plugin-worker-loader__module_Sources/Interaction/Widgets/PiecewiseGaussianWidget/ComputeHistogram.worker.js +1 -1
- package/macros.js +16 -32
- package/package.json +52 -54
- package/vtk.js +2 -2
- package/Utilities/config/rules-linter.js +0 -13
|
@@ -178,7 +178,7 @@ function vtkWebGPUStorageBuffer(publicAPI, model) {
|
|
|
178
178
|
lines.push(" ".concat(entry.name, ": ").concat(entry.type, ";"));
|
|
179
179
|
}
|
|
180
180
|
|
|
181
|
-
lines.push("\n};\
|
|
181
|
+
lines.push("\n};\nstruct ".concat(model.name, "Struct\n{\n values: array<").concat(model.name, "StructEntry>;\n};\n[[binding(").concat(binding, "), group(").concat(group, ")]] var<storage, read> ").concat(model.name, ": ").concat(model.name, "Struct;\n"));
|
|
182
182
|
return lines.join('\n');
|
|
183
183
|
};
|
|
184
184
|
|
|
@@ -45,18 +45,34 @@ function vtkWebGPUUniformBuffer(publicAPI, model) {
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
var currOffset = 0;
|
|
48
|
-
var newEntries = []; //
|
|
49
|
-
//
|
|
50
|
-
|
|
48
|
+
var newEntries = []; // compute the max alignment, this is required as WebGPU defines a UBO to have
|
|
49
|
+
// a size that is a multiple of the maxAlignment
|
|
50
|
+
|
|
51
|
+
var maxAlignment = 4;
|
|
51
52
|
|
|
52
53
|
for (var i = 0; i < model.bufferEntries.length; i++) {
|
|
53
54
|
var entry = model.bufferEntries[i];
|
|
54
55
|
|
|
55
|
-
if (entry.
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
56
|
+
if (entry.sizeInBytes % 16 === 0) {
|
|
57
|
+
maxAlignment = Math.max(16, maxAlignment);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
if (entry.sizeInBytes % 8 === 0) {
|
|
61
|
+
maxAlignment = Math.max(8, maxAlignment);
|
|
62
|
+
}
|
|
63
|
+
} // pack anything whose size is a multiple of 16 bytes first
|
|
64
|
+
// this includes a couple types that don't require 16 byte alignment
|
|
65
|
+
// such as mat2x2<f32> but that is OK
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
for (var _i = 0; _i < model.bufferEntries.length; _i++) {
|
|
69
|
+
var _entry = model.bufferEntries[_i];
|
|
70
|
+
|
|
71
|
+
if (_entry.packed === false && _entry.sizeInBytes % 16 === 0) {
|
|
72
|
+
_entry.packed = true;
|
|
73
|
+
_entry.offset = currOffset;
|
|
74
|
+
newEntries.push(_entry);
|
|
75
|
+
currOffset += _entry.sizeInBytes;
|
|
60
76
|
}
|
|
61
77
|
} // now it gets tough, we have the following common types (f32, i32, u32)
|
|
62
78
|
// - vec2<f32> 8 byte size, 8 byte alignment
|
|
@@ -65,18 +81,18 @@ function vtkWebGPUUniformBuffer(publicAPI, model) {
|
|
|
65
81
|
// try adding 12 byte, 4 byte pairs
|
|
66
82
|
|
|
67
83
|
|
|
68
|
-
for (var
|
|
69
|
-
var
|
|
84
|
+
for (var _i2 = 0; _i2 < model.bufferEntries.length; _i2++) {
|
|
85
|
+
var _entry2 = model.bufferEntries[_i2];
|
|
70
86
|
|
|
71
|
-
if (
|
|
87
|
+
if (_entry2.packed === false && _entry2.sizeInBytes === 12) {
|
|
72
88
|
for (var i2 = 0; i2 < model.bufferEntries.length; i2++) {
|
|
73
89
|
var entry2 = model.bufferEntries[i2];
|
|
74
90
|
|
|
75
91
|
if (entry2.packed === false && entry2.sizeInBytes === 4) {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
newEntries.push(
|
|
79
|
-
currOffset +=
|
|
92
|
+
_entry2.packed = true;
|
|
93
|
+
_entry2.offset = currOffset;
|
|
94
|
+
newEntries.push(_entry2);
|
|
95
|
+
currOffset += _entry2.sizeInBytes;
|
|
80
96
|
entry2.packed = true;
|
|
81
97
|
entry2.offset = currOffset;
|
|
82
98
|
newEntries.push(entry2);
|
|
@@ -88,22 +104,22 @@ function vtkWebGPUUniformBuffer(publicAPI, model) {
|
|
|
88
104
|
} // try adding 8 byte, 8 byte pairs
|
|
89
105
|
|
|
90
106
|
|
|
91
|
-
for (var
|
|
92
|
-
var
|
|
107
|
+
for (var _i3 = 0; _i3 < model.bufferEntries.length; _i3++) {
|
|
108
|
+
var _entry3 = model.bufferEntries[_i3];
|
|
93
109
|
|
|
94
|
-
if (!
|
|
95
|
-
for (var
|
|
96
|
-
var
|
|
110
|
+
if (!_entry3.packed && _entry3.sizeInBytes % 8 === 0) {
|
|
111
|
+
for (var _i4 = _i3 + 1; _i4 < model.bufferEntries.length; _i4++) {
|
|
112
|
+
var _entry4 = model.bufferEntries[_i4];
|
|
97
113
|
|
|
98
|
-
if (!
|
|
99
|
-
_entry2.packed = true;
|
|
100
|
-
_entry2.offset = currOffset;
|
|
101
|
-
newEntries.push(_entry2);
|
|
102
|
-
currOffset += _entry2.sizeInBytes;
|
|
114
|
+
if (!_entry4.packed && _entry4.sizeInBytes % 8 === 0) {
|
|
103
115
|
_entry3.packed = true;
|
|
104
116
|
_entry3.offset = currOffset;
|
|
105
117
|
newEntries.push(_entry3);
|
|
106
118
|
currOffset += _entry3.sizeInBytes;
|
|
119
|
+
_entry4.packed = true;
|
|
120
|
+
_entry4.offset = currOffset;
|
|
121
|
+
newEntries.push(_entry4);
|
|
122
|
+
currOffset += _entry4.sizeInBytes;
|
|
107
123
|
break;
|
|
108
124
|
}
|
|
109
125
|
}
|
|
@@ -111,28 +127,28 @@ function vtkWebGPUUniformBuffer(publicAPI, model) {
|
|
|
111
127
|
} // try adding 8 byte, 4 byte 4 byte triplets
|
|
112
128
|
|
|
113
129
|
|
|
114
|
-
for (var
|
|
115
|
-
var
|
|
130
|
+
for (var _i5 = 0; _i5 < model.bufferEntries.length; _i5++) {
|
|
131
|
+
var _entry5 = model.bufferEntries[_i5];
|
|
116
132
|
|
|
117
|
-
if (!
|
|
133
|
+
if (!_entry5.packed && _entry5.sizeInBytes % 8 === 0) {
|
|
118
134
|
var found = false;
|
|
119
135
|
|
|
120
|
-
for (var
|
|
121
|
-
var
|
|
136
|
+
for (var _i6 = 0; !found && _i6 < model.bufferEntries.length; _i6++) {
|
|
137
|
+
var _entry6 = model.bufferEntries[_i6];
|
|
122
138
|
|
|
123
|
-
if (!
|
|
124
|
-
for (var i3 =
|
|
139
|
+
if (!_entry6.packed && _entry6.sizeInBytes === 4) {
|
|
140
|
+
for (var i3 = _i6 + 1; i3 < model.bufferEntries.length; i3++) {
|
|
125
141
|
var entry3 = model.bufferEntries[i3];
|
|
126
142
|
|
|
127
143
|
if (!entry3.packed && entry3.sizeInBytes === 4) {
|
|
128
|
-
_entry4.packed = true;
|
|
129
|
-
_entry4.offset = currOffset;
|
|
130
|
-
newEntries.push(_entry4);
|
|
131
|
-
currOffset += _entry4.sizeInBytes;
|
|
132
144
|
_entry5.packed = true;
|
|
133
145
|
_entry5.offset = currOffset;
|
|
134
146
|
newEntries.push(_entry5);
|
|
135
147
|
currOffset += _entry5.sizeInBytes;
|
|
148
|
+
_entry6.packed = true;
|
|
149
|
+
_entry6.offset = currOffset;
|
|
150
|
+
newEntries.push(_entry6);
|
|
151
|
+
currOffset += _entry6.sizeInBytes;
|
|
136
152
|
entry3.packed = true;
|
|
137
153
|
entry3.offset = currOffset;
|
|
138
154
|
newEntries.push(entry3);
|
|
@@ -149,27 +165,27 @@ function vtkWebGPUUniformBuffer(publicAPI, model) {
|
|
|
149
165
|
// in a failed UBO
|
|
150
166
|
|
|
151
167
|
|
|
152
|
-
for (var _i6 = 0; _i6 < model.bufferEntries.length; _i6++) {
|
|
153
|
-
var _entry6 = model.bufferEntries[_i6];
|
|
154
|
-
|
|
155
|
-
if (!_entry6.packed && _entry6.sizeInBytes > 4) {
|
|
156
|
-
_entry6.packed = true;
|
|
157
|
-
_entry6.offset = currOffset;
|
|
158
|
-
newEntries.push(_entry6);
|
|
159
|
-
currOffset += _entry6.sizeInBytes;
|
|
160
|
-
}
|
|
161
|
-
} // finally add remaining 4 byte items
|
|
162
|
-
|
|
163
|
-
|
|
164
168
|
for (var _i7 = 0; _i7 < model.bufferEntries.length; _i7++) {
|
|
165
169
|
var _entry7 = model.bufferEntries[_i7];
|
|
166
170
|
|
|
167
|
-
if (!_entry7.packed) {
|
|
171
|
+
if (!_entry7.packed && _entry7.sizeInBytes > 4) {
|
|
168
172
|
_entry7.packed = true;
|
|
169
173
|
_entry7.offset = currOffset;
|
|
170
174
|
newEntries.push(_entry7);
|
|
171
175
|
currOffset += _entry7.sizeInBytes;
|
|
172
176
|
}
|
|
177
|
+
} // finally add remaining 4 byte items
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
for (var _i8 = 0; _i8 < model.bufferEntries.length; _i8++) {
|
|
181
|
+
var _entry8 = model.bufferEntries[_i8];
|
|
182
|
+
|
|
183
|
+
if (!_entry8.packed) {
|
|
184
|
+
_entry8.packed = true;
|
|
185
|
+
_entry8.offset = currOffset;
|
|
186
|
+
newEntries.push(_entry8);
|
|
187
|
+
currOffset += _entry8.sizeInBytes;
|
|
188
|
+
}
|
|
173
189
|
} // update entries and entryNames
|
|
174
190
|
|
|
175
191
|
|
|
@@ -177,11 +193,12 @@ function vtkWebGPUUniformBuffer(publicAPI, model) {
|
|
|
177
193
|
|
|
178
194
|
model._bufferEntryNames.clear();
|
|
179
195
|
|
|
180
|
-
for (var
|
|
181
|
-
model._bufferEntryNames.set(model.bufferEntries[
|
|
196
|
+
for (var _i9 = 0; _i9 < model.bufferEntries.length; _i9++) {
|
|
197
|
+
model._bufferEntryNames.set(model.bufferEntries[_i9].name, _i9);
|
|
182
198
|
}
|
|
183
199
|
|
|
184
200
|
model.sizeInBytes = currOffset;
|
|
201
|
+
model.sizeInBytes = maxAlignment * Math.ceil(model.sizeInBytes / maxAlignment);
|
|
185
202
|
model.sortDirty = false;
|
|
186
203
|
};
|
|
187
204
|
|
|
@@ -284,7 +301,7 @@ function vtkWebGPUUniformBuffer(publicAPI, model) {
|
|
|
284
301
|
publicAPI.getShaderCode = function (binding, group) {
|
|
285
302
|
// sort the entries
|
|
286
303
|
publicAPI.sortBufferEntries();
|
|
287
|
-
var lines = ["
|
|
304
|
+
var lines = ["struct ".concat(model.name, "Struct\n{")];
|
|
288
305
|
|
|
289
306
|
for (var i = 0; i < model.bufferEntries.length; i++) {
|
|
290
307
|
var entry = model.bufferEntries[i];
|
|
@@ -9,6 +9,7 @@ import vtkWebGPURenderEncoder from './RenderEncoder.js';
|
|
|
9
9
|
import vtkWebGPUShaderCache from './ShaderCache.js';
|
|
10
10
|
import vtkWebGPUTexture from './Texture.js';
|
|
11
11
|
import vtkWebGPUVolumePassFSQ from './VolumePassFSQ.js';
|
|
12
|
+
import { f as distance2BetweenPoints } from '../../Common/Core/Math/index.js';
|
|
12
13
|
|
|
13
14
|
var Representation = vtkProperty.Representation;
|
|
14
15
|
var BufferUsage = vtkWebGPUBufferManager.BufferUsage,
|
|
@@ -46,26 +47,71 @@ function vtkWebGPUVolumePass(publicAPI, model) {
|
|
|
46
47
|
} // we just render our delegates in order
|
|
47
48
|
|
|
48
49
|
|
|
49
|
-
model.currentParent = viewNode; //
|
|
50
|
-
// map for all the volumes
|
|
51
|
-
|
|
52
|
-
publicAPI.renderDepthBounds(renNode, viewNode); // then perform the ray casting using the depth bounds texture
|
|
50
|
+
model.currentParent = viewNode; // then perform the ray casting using the depth bounds texture
|
|
53
51
|
|
|
54
52
|
if (!model.finalEncoder) {
|
|
55
53
|
publicAPI.createFinalEncoder(viewNode);
|
|
54
|
+
} // first render the boxes to generate a min max depth
|
|
55
|
+
// map for all the volumes
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
publicAPI.renderDepthBounds(renNode, viewNode);
|
|
59
|
+
|
|
60
|
+
if (!model.fullScreenQuad) {
|
|
61
|
+
model.fullScreenQuad = vtkWebGPUVolumePassFSQ.newInstance();
|
|
62
|
+
model.fullScreenQuad.setDevice(viewNode.getDevice());
|
|
63
|
+
model.fullScreenQuad.setTextureViews(_toConsumableArray(model.depthRangeEncoder.getColorTextureViews()));
|
|
56
64
|
}
|
|
57
65
|
|
|
58
|
-
|
|
66
|
+
var device = viewNode.getDevice(); // -4 because we use know we use textures for min, max, ofun and tfun
|
|
67
|
+
|
|
68
|
+
var maxVolumes = device.getHandle().limits.maxSampledTexturesPerShaderStage - 4;
|
|
69
|
+
var cameraPos = renNode.getRenderable().getActiveCamera().getPosition();
|
|
70
|
+
|
|
71
|
+
if (model.volumes.length > maxVolumes) {
|
|
72
|
+
// sort from back to front based on volume centroid
|
|
73
|
+
var distances = [];
|
|
74
|
+
|
|
75
|
+
for (var v = 0; v < model.volumes.length; v++) {
|
|
76
|
+
var bounds = model.volumes[v].getRenderable().getBounds();
|
|
77
|
+
var centroid = [0.5 * (bounds[1] + bounds[0]), 0.5 * (bounds[3] + bounds[2]), 0.5 * (bounds[5] + bounds[4])];
|
|
78
|
+
distances[v] = distance2BetweenPoints(centroid, cameraPos);
|
|
79
|
+
} // sort by distance
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
var volumeOrder = _toConsumableArray(Array(model.volumes.length).keys());
|
|
83
|
+
|
|
84
|
+
volumeOrder.sort(function (a, b) {
|
|
85
|
+
return distances[b] - distances[a];
|
|
86
|
+
}); // render in chunks back to front
|
|
87
|
+
|
|
88
|
+
var volumesToRender = []; // start with smallest chunk so that the last (closest) chunk
|
|
89
|
+
// has a full maxVolumes;
|
|
90
|
+
|
|
91
|
+
var chunkSize = volumeOrder.length % maxVolumes;
|
|
92
|
+
|
|
93
|
+
for (var _v = 0; _v < volumeOrder.length; _v++) {
|
|
94
|
+
volumesToRender.push(model.volumes[volumeOrder[_v]]);
|
|
95
|
+
|
|
96
|
+
if (volumesToRender.length >= chunkSize) {
|
|
97
|
+
publicAPI.finalPass(viewNode, renNode, volumesToRender);
|
|
98
|
+
volumesToRender = [];
|
|
99
|
+
chunkSize = maxVolumes;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
} else {
|
|
103
|
+
publicAPI.finalPass(viewNode, renNode, model.volumes);
|
|
104
|
+
}
|
|
59
105
|
};
|
|
60
106
|
|
|
61
|
-
publicAPI.finalPass = function (viewNode, renNode) {
|
|
107
|
+
publicAPI.finalPass = function (viewNode, renNode, volumes) {
|
|
62
108
|
model.finalEncoder.setColorTextureView(0, model.colorTextureView);
|
|
63
109
|
model.finalEncoder.attachTextureViews();
|
|
64
110
|
renNode.setRenderEncoder(model.finalEncoder);
|
|
65
111
|
model.finalEncoder.begin(viewNode.getCommandEncoder());
|
|
66
112
|
renNode.scissorAndViewport(model.finalEncoder);
|
|
67
113
|
model.fullScreenQuad.setWebGPURenderer(renNode);
|
|
68
|
-
model.fullScreenQuad.setVolumes(
|
|
114
|
+
model.fullScreenQuad.setVolumes(volumes);
|
|
69
115
|
model.fullScreenQuad.render(model.finalEncoder, viewNode.getDevice());
|
|
70
116
|
model.finalEncoder.end();
|
|
71
117
|
};
|
|
@@ -114,7 +160,7 @@ function vtkWebGPUVolumePass(publicAPI, model) {
|
|
|
114
160
|
|
|
115
161
|
var stime = renNode.getStabilizedTime();
|
|
116
162
|
|
|
117
|
-
if (
|
|
163
|
+
if (model._lastMTimes.length <= model.volumes.length || stime !== model._lastMTimes[model.volumes.length]) {
|
|
118
164
|
update = true;
|
|
119
165
|
model._lastMTimes[model.volumes.length] = stime;
|
|
120
166
|
} // if no need to update then return
|
|
@@ -218,7 +264,7 @@ function vtkWebGPUVolumePass(publicAPI, model) {
|
|
|
218
264
|
fDesc.addOutput('vec4<f32>', 'outColor1');
|
|
219
265
|
fDesc.addOutput('vec4<f32>', 'outColor2');
|
|
220
266
|
var code = fDesc.getCode();
|
|
221
|
-
code = vtkWebGPUShaderCache.substitute(code, '//VTK::RenderEncoder::Impl', ['output.outColor1 = vec4<f32>(
|
|
267
|
+
code = vtkWebGPUShaderCache.substitute(code, '//VTK::RenderEncoder::Impl', ['output.outColor1 = vec4<f32>(input.fragPos.z, 0.0, 0.0, 0.0);', 'output.outColor2 = vec4<f32>(stopval, 0.0, 0.0, 0.0);']).result;
|
|
222
268
|
fDesc.setCode(code);
|
|
223
269
|
});
|
|
224
270
|
model.depthRangeEncoder.setDescription({
|
|
@@ -271,9 +317,6 @@ function vtkWebGPUVolumePass(publicAPI, model) {
|
|
|
271
317
|
};
|
|
272
318
|
|
|
273
319
|
publicAPI.createFinalEncoder = function (viewNode) {
|
|
274
|
-
model.fullScreenQuad = vtkWebGPUVolumePassFSQ.newInstance();
|
|
275
|
-
model.fullScreenQuad.setDevice(viewNode.getDevice());
|
|
276
|
-
model.fullScreenQuad.setTextureViews(_toConsumableArray(model.depthRangeEncoder.getColorTextureViews()));
|
|
277
320
|
model.finalEncoder = vtkWebGPURenderEncoder.newInstance();
|
|
278
321
|
model.finalEncoder.setDescription({
|
|
279
322
|
colorAttachments: [{
|
|
@@ -454,7 +454,10 @@ function vtkWebGPUVolumePassFSQ(publicAPI, model) {
|
|
|
454
454
|
|
|
455
455
|
|
|
456
456
|
if (model.volumes.length < model.lastVolumeLength) {
|
|
457
|
-
|
|
457
|
+
// we may have gaps in the array right now so no splice
|
|
458
|
+
for (var _i3 = model.volumes.length; _i3 < model.lastVolumeLength; _i3++) {
|
|
459
|
+
model.textureViews.pop();
|
|
460
|
+
}
|
|
458
461
|
}
|
|
459
462
|
|
|
460
463
|
model.lastVolumeLength = model.volumes.length;
|
|
@@ -4,9 +4,9 @@ import macro from '../../macros.js';
|
|
|
4
4
|
import vtkAbstractWidget from './AbstractWidget.js';
|
|
5
5
|
import { extractRenderingComponents } from './WidgetManager.js';
|
|
6
6
|
|
|
7
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
7
|
+
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; }
|
|
8
8
|
|
|
9
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
9
|
+
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
10
|
|
|
11
11
|
function NoOp() {} // ----------------------------------------------------------------------------
|
|
12
12
|
|
|
@@ -18,9 +18,9 @@ import { ScalarMode } from '../../Rendering/Core/Mapper/Constants.js';
|
|
|
18
18
|
import { mat4, mat3, vec3 } from 'gl-matrix';
|
|
19
19
|
import { RenderingTypes } from '../Core/WidgetManager/Constants.js';
|
|
20
20
|
|
|
21
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
21
|
+
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; }
|
|
22
22
|
|
|
23
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
23
|
+
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; }
|
|
24
24
|
var ShapeType = Constants.ShapeType,
|
|
25
25
|
Shapes2D = Constants.Shapes2D,
|
|
26
26
|
ShapesOrientable = Constants.ShapesOrientable; // ----------------------------------------------------------------------------
|
|
@@ -2,9 +2,9 @@ import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
|
2
2
|
import vtkWidgetRepresentation from './WidgetRepresentation.js';
|
|
3
3
|
import { Behavior } from './WidgetRepresentation/Constants.js';
|
|
4
4
|
|
|
5
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
5
|
+
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; }
|
|
6
6
|
|
|
7
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
7
|
+
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; }
|
|
8
8
|
// vtkWidgetRepresentation
|
|
9
9
|
// ----------------------------------------------------------------------------
|
|
10
10
|
|
|
@@ -3,9 +3,9 @@ import macro from '../../macros.js';
|
|
|
3
3
|
import vtkWidgetRepresentation from './WidgetRepresentation.js';
|
|
4
4
|
import { Behavior } from './WidgetRepresentation/Constants.js';
|
|
5
5
|
|
|
6
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
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
|
|
|
8
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
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; }
|
|
9
9
|
// vtkHandleRepresentation methods
|
|
10
10
|
// ----------------------------------------------------------------------------
|
|
11
11
|
|
|
@@ -9,9 +9,9 @@ import vtkTubeFilter from '../../Filters/General/TubeFilter.js';
|
|
|
9
9
|
import vtkWidgetRepresentation from './WidgetRepresentation.js';
|
|
10
10
|
import { RenderingTypes } from '../Core/WidgetManager/Constants.js';
|
|
11
11
|
|
|
12
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
12
|
+
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; }
|
|
13
13
|
|
|
14
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
14
|
+
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; }
|
|
15
15
|
// vtkPolyLineRepresentation methods
|
|
16
16
|
// ----------------------------------------------------------------------------
|
|
17
17
|
|
|
@@ -11,9 +11,9 @@ import vtkWidgetRepresentation from './WidgetRepresentation.js';
|
|
|
11
11
|
import { RenderingTypes } from '../Core/WidgetManager/Constants.js';
|
|
12
12
|
import { InteractionMethodsName } from '../Widgets3D/ResliceCursorWidget/Constants.js';
|
|
13
13
|
|
|
14
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
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
15
|
|
|
16
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
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
17
|
// vtkResliceCursorContextRepresentation methods
|
|
18
18
|
// ----------------------------------------------------------------------------
|
|
19
19
|
|
|
@@ -3,9 +3,9 @@ import macro from '../../macros.js';
|
|
|
3
3
|
import vtkSVGRepresentation from './SVGRepresentation.js';
|
|
4
4
|
import { fontSizeToPixels, VerticalTextAlignment } from './SVGLandmarkRepresentation/Constants.js';
|
|
5
5
|
|
|
6
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
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
|
|
|
8
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
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; }
|
|
9
9
|
var createSvgElement = vtkSVGRepresentation.createSvgElement; // ----------------------------------------------------------------------------
|
|
10
10
|
// vtkSVGLandmarkRepresentation
|
|
11
11
|
// ----------------------------------------------------------------------------
|
|
@@ -2,9 +2,9 @@ import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
|
2
2
|
import widgetBehavior$1 from '../ShapeWidget/behavior.js';
|
|
3
3
|
import { vec3 } from 'gl-matrix';
|
|
4
4
|
|
|
5
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
5
|
+
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; }
|
|
6
6
|
|
|
7
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
7
|
+
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; }
|
|
8
8
|
function widgetBehavior(publicAPI, model) {
|
|
9
9
|
model.shapeHandle = model.widgetState.getEllipseHandle();
|
|
10
10
|
model.point1Handle = model.widgetState.getPoint1Handle();
|
|
@@ -11,9 +11,9 @@ import generateState from './EllipseWidget/state.js';
|
|
|
11
11
|
import { BehaviorCategory, ShapeBehavior } from './ShapeWidget/Constants.js';
|
|
12
12
|
import { ViewTypes } from '../Core/WidgetManager/Constants.js';
|
|
13
13
|
|
|
14
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
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
15
|
|
|
16
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
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
17
|
// Factory
|
|
18
18
|
// ----------------------------------------------------------------------------
|
|
19
19
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
2
|
import macro from '../../../macros.js';
|
|
3
3
|
|
|
4
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
4
|
+
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; }
|
|
5
5
|
|
|
6
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
6
|
+
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; }
|
|
7
7
|
function widgetBehavior(publicAPI, model) {
|
|
8
8
|
model.classHierarchy.push('vtkInteractiveOrientationWidgetProp');
|
|
9
9
|
macro.event(publicAPI, model, 'OrientationChange'); // --------------------------------------------------------------------------
|
|
@@ -5,9 +5,9 @@ import macro from '../../../macros.js';
|
|
|
5
5
|
import { g as subtract, k as add, l as normalize } from '../../../Common/Core/Math/index.js';
|
|
6
6
|
import { getNumberOfPlacedHandles, isHandlePlaced, calculateTextPosition, updateTextPosition, getPoint } from './helpers.js';
|
|
7
7
|
|
|
8
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
8
|
+
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; }
|
|
9
9
|
|
|
10
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
10
|
+
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; }
|
|
11
11
|
var ShapeType = Constants.ShapeType; // Total number of points to place
|
|
12
12
|
|
|
13
13
|
var MAX_POINTS = 2;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
2
|
import widgetBehavior$1 from '../ShapeWidget/behavior.js';
|
|
3
3
|
|
|
4
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
4
|
+
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; }
|
|
5
5
|
|
|
6
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
6
|
+
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; }
|
|
7
7
|
function widgetBehavior(publicAPI, model) {
|
|
8
8
|
model.shapeHandle = model.widgetState.getRectangleHandle();
|
|
9
9
|
model.point1Handle = model.widgetState.getPoint1Handle();
|
|
@@ -11,9 +11,9 @@ import generateState from './RectangleWidget/state.js';
|
|
|
11
11
|
import { BehaviorCategory, ShapeBehavior } from './ShapeWidget/Constants.js';
|
|
12
12
|
import { ViewTypes } from '../Core/WidgetManager/Constants.js';
|
|
13
13
|
|
|
14
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
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
15
|
|
|
16
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
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
17
|
// Factory
|
|
18
18
|
// ----------------------------------------------------------------------------
|
|
19
19
|
|
|
@@ -8,9 +8,9 @@ import { ShapeBehavior, BehaviorCategory, TextPosition } from './Constants.js';
|
|
|
8
8
|
import { boundPlane } from '../ResliceCursorWidget/helpers.js';
|
|
9
9
|
import { vec3 } from 'gl-matrix';
|
|
10
10
|
|
|
11
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
11
|
+
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; }
|
|
12
12
|
|
|
13
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
13
|
+
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; }
|
|
14
14
|
var vtkErrorMacro = macro.vtkErrorMacro;
|
|
15
15
|
var EPSILON = 1e-6;
|
|
16
16
|
function widgetBehavior(publicAPI, model) {
|
|
@@ -3,9 +3,9 @@ import macro from '../../macros.js';
|
|
|
3
3
|
import vtkAbstractWidgetFactory from '../Core/AbstractWidgetFactory.js';
|
|
4
4
|
import { BehaviorCategory, ShapeBehavior } from './ShapeWidget/Constants.js';
|
|
5
5
|
|
|
6
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
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
|
|
|
8
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
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; }
|
|
9
9
|
|
|
10
10
|
function vtkShapeWidget(publicAPI, model) {
|
|
11
11
|
model.classHierarchy.push('vtkShapeWidget');
|