@kitware/vtk.js 23.4.2 → 24.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.
- package/BREAKING_CHANGES.md +33 -0
- package/Common/Core/DataArray.js +4 -0
- package/Common/Core/Math/index.js +2 -2
- package/Common/Core/Math.js +1 -1
- package/Common/DataModel/BoundingBox.js +3 -8
- package/Common/DataModel/DataSetAttributes/FieldData.js +9 -5
- package/Common/DataModel/ITKHelper.js +2 -346
- package/Common/DataModel/ImageData.d.ts +23 -6
- package/Common/DataModel/ImageData.js +8 -1
- package/Common/DataModel/PolyData.d.ts +8 -1
- package/Common/DataModel/PolyData.js +5 -3
- package/Common/DataModel/Triangle.js +217 -2
- package/Common/Transform/LandmarkTransform.js +1 -1
- package/Filters/General/OBBTree/OBBNode.js +82 -0
- package/Filters/General/OBBTree/helper.js +92 -0
- package/Filters/General/OBBTree.js +1249 -0
- package/Filters/General/WindowedSincPolyDataFilter.js +1 -1
- package/Filters/General.js +2 -0
- package/Filters/Sources/CircleSource.js +1 -1
- package/Filters/Sources/PointSource.js +1 -1
- package/Filters/Texture/TextureMapToPlane.js +1 -1
- package/IO/Core/DataAccessHelper.d.ts +0 -6
- package/Interaction/Manipulators/KeyboardCameraManipulator.js +1 -1
- package/Interaction/Manipulators/MouseCameraTrackballRollManipulator.js +1 -1
- package/Interaction/Manipulators/MouseCameraTrackballRotateManipulator.js +1 -1
- package/Interaction/Manipulators/MouseCameraUnicamManipulator.js +1 -1
- package/Interaction/Manipulators/MouseCameraUnicamRotateManipulator.js +1 -1
- package/Interaction/Style/InteractorStyleImage.js +3 -3
- package/Interaction/Style/InteractorStyleMPRSlice.js +12 -6
- package/Interaction/Style/InteractorStyleManipulator.js +42 -28
- package/Interaction/Style/InteractorStyleRemoteMouse.js +32 -14
- package/Interaction/Style/InteractorStyleTrackballCamera.js +7 -7
- package/Interaction/Widgets/OrientationMarkerWidget.js +18 -13
- package/Interaction/Widgets/PiecewiseGaussianWidget.js +1 -1
- package/Interaction/Widgets.js +1 -35
- package/Proxy/Core/View2DProxy.js +1 -1
- package/Rendering/Core/ColorTransferFunction.js +1 -1
- package/Rendering/Core/Coordinate.js +1 -1
- package/Rendering/Core/CubeAxesActor.js +1 -1
- package/Rendering/Core/Glyph3DMapper.js +1 -1
- package/Rendering/Core/ImageMapper.js +1 -1
- package/Rendering/Core/InteractorObserver.js +11 -10
- package/Rendering/Core/InteractorStyle.js +9 -4
- package/Rendering/Core/Mapper.js +1 -1
- package/Rendering/Core/Prop.js +6 -4
- package/Rendering/Core/Prop3D.js +1 -1
- package/Rendering/Core/RenderWindowInteractor.js +24 -17
- package/Rendering/Core/Renderer.js +24 -19
- package/Rendering/Core/ScalarBarActor.js +1 -1
- package/Rendering/Core/Viewport.js +1 -1
- package/Rendering/Core/VolumeMapper.js +1 -1
- package/Rendering/OpenGL/Actor.js +2 -2
- package/Rendering/OpenGL/Actor2D.js +2 -2
- package/Rendering/OpenGL/BufferObject.js +6 -5
- package/Rendering/OpenGL/Camera.js +3 -3
- package/Rendering/OpenGL/CellArrayBufferObject.js +1 -1
- package/Rendering/OpenGL/Framebuffer.js +13 -12
- package/Rendering/OpenGL/Glyph3DMapper.js +10 -8
- package/Rendering/OpenGL/HardwareSelector.js +35 -25
- package/Rendering/OpenGL/ImageMapper.js +51 -45
- package/Rendering/OpenGL/ImageSlice.js +2 -2
- package/Rendering/OpenGL/PixelSpaceCallbackMapper.js +4 -2
- package/Rendering/OpenGL/PolyDataMapper.js +14 -11
- package/Rendering/OpenGL/PolyDataMapper2D.js +17 -16
- package/Rendering/OpenGL/Renderer.js +11 -7
- package/Rendering/OpenGL/ReplacementShaderMapper.js +1 -1
- package/Rendering/OpenGL/ScalarBarActor.js +2 -2
- package/Rendering/OpenGL/ShaderCache.js +7 -5
- package/Rendering/OpenGL/Skybox.js +11 -9
- package/Rendering/OpenGL/SphereMapper.js +2 -2
- package/Rendering/OpenGL/StickMapper.js +2 -2
- package/Rendering/OpenGL/SurfaceLIC/LineIntegralConvolution2D/pingpong.js +13 -12
- package/Rendering/OpenGL/SurfaceLIC/LineIntegralConvolution2D.js +11 -9
- package/Rendering/OpenGL/SurfaceLIC/SurfaceLICInterface.js +19 -12
- package/Rendering/OpenGL/SurfaceLIC/SurfaceLICMapper.js +9 -6
- package/Rendering/OpenGL/Texture.js +44 -31
- package/Rendering/OpenGL/VertexArrayObject.js +7 -7
- package/Rendering/OpenGL/Volume.js +3 -2
- package/Rendering/OpenGL/VolumeMapper.js +30 -26
- package/Rendering/OpenGL/glsl/vtkVolumeFS.glsl.js +1 -1
- package/Rendering/SceneGraph/ViewNode.js +8 -7
- package/Rendering/WebGPU/Renderer.js +18 -10
- package/Widgets/Core/AbstractWidget.js +5 -4
- package/Widgets/Core/AbstractWidgetFactory.js +2 -1
- package/Widgets/Core/WidgetManager.js +66 -49
- package/Widgets/Manipulators/LineManipulator.js +1 -1
- package/Widgets/Representations/CircleContextRepresentation.js +1 -1
- package/Widgets/Representations/ImplicitPlaneRepresentation.js +5 -5
- package/Widgets/Representations/PolyLineRepresentation.js +1 -1
- package/Widgets/Representations/ResliceCursorContextRepresentation.js +7 -7
- package/Widgets/SVG/SVGLandmarkRepresentation/Constants.js +2 -2
- package/Widgets/SVG/SVGLandmarkRepresentation.js +21 -8
- package/Widgets/SVG/SVGRepresentation.js +1 -1
- package/Widgets/Widgets3D/AngleWidget/behavior.js +14 -6
- package/Widgets/Widgets3D/DistanceWidget/behavior.js +14 -6
- package/Widgets/Widgets3D/EllipseWidget.js +0 -1
- package/Widgets/Widgets3D/ImageCroppingWidget/behavior.js +6 -2
- package/Widgets/Widgets3D/ImplicitPlaneWidget.js +4 -2
- package/Widgets/Widgets3D/LabelWidget/behavior.js +138 -0
- package/Widgets/Widgets3D/LabelWidget/state.js +22 -0
- package/Widgets/Widgets3D/LabelWidget.js +79 -0
- package/Widgets/Widgets3D/LineWidget/behavior.js +18 -9
- package/Widgets/Widgets3D/LineWidget/helpers.js +1 -1
- package/Widgets/Widgets3D/LineWidget.js +0 -1
- package/Widgets/Widgets3D/PaintWidget/behavior.js +5 -3
- package/Widgets/Widgets3D/PolyLineWidget/behavior.js +18 -8
- package/Widgets/Widgets3D/RectangleWidget.js +0 -1
- package/Widgets/Widgets3D/ResliceCursorWidget/behavior.js +1 -1
- package/Widgets/Widgets3D/ResliceCursorWidget/helpers.js +1 -1
- package/Widgets/Widgets3D/ResliceCursorWidget.js +1 -1
- package/Widgets/Widgets3D/ShapeWidget/behavior.js +18 -11
- package/Widgets/Widgets3D/SplineWidget/behavior.js +33 -21
- package/index.d.ts +1 -2
- package/interfaces.d.ts +16 -3
- package/macros.d.ts +26 -1
- package/macros.js +51 -19
- package/package.json +1 -1
- package/types.d.ts +1 -0
- package/Interaction/Widgets/AbstractWidget.js +0 -104
- package/Interaction/Widgets/DistanceRepresentation.js +0 -116
- package/Interaction/Widgets/DistanceWidget.js +0 -77
- package/Interaction/Widgets/HandleRepresentation/Constants.js +0 -12
- package/Interaction/Widgets/HandleRepresentation.js +0 -100
- package/Interaction/Widgets/HandleWidget/Constants.js +0 -9
- package/Interaction/Widgets/HandleWidget.js +0 -194
- package/Interaction/Widgets/ImageCroppingRegionsRepresentation.js +0 -233
- package/Interaction/Widgets/ImageCroppingRegionsWidget/Constants.js +0 -16
- package/Interaction/Widgets/ImageCroppingRegionsWidget.js +0 -573
- package/Interaction/Widgets/LabelRepresentation/Constants.js +0 -17
- package/Interaction/Widgets/LabelRepresentation.js +0 -325
- package/Interaction/Widgets/LabelWidget.js +0 -65
- package/Interaction/Widgets/LineRepresentation/Constants.js +0 -21
- package/Interaction/Widgets/LineRepresentation.js +0 -498
- package/Interaction/Widgets/LineWidget/Constants.js +0 -11
- package/Interaction/Widgets/LineWidget.js +0 -296
- package/Interaction/Widgets/PointPlacer.js +0 -51
- package/Interaction/Widgets/ResliceCursor/ResliceCursor/Constants.js +0 -10
- package/Interaction/Widgets/ResliceCursor/ResliceCursor.js +0 -269
- package/Interaction/Widgets/ResliceCursor/ResliceCursorActor/Constants.js +0 -10
- package/Interaction/Widgets/ResliceCursor/ResliceCursorActor.js +0 -146
- package/Interaction/Widgets/ResliceCursor/ResliceCursorLineRepresentation.js +0 -332
- package/Interaction/Widgets/ResliceCursor/ResliceCursorPolyDataAlgorithm.js +0 -134
- package/Interaction/Widgets/ResliceCursor/ResliceCursorRepresentation/Constants.js +0 -16
- package/Interaction/Widgets/ResliceCursor/ResliceCursorRepresentation.js +0 -371
- package/Interaction/Widgets/ResliceCursor/ResliceCursorWidget/Constants.js +0 -10
- package/Interaction/Widgets/ResliceCursor/ResliceCursorWidget.js +0 -157
- package/Interaction/Widgets/SphereHandleRepresentation.js +0 -370
- package/Interaction/Widgets/WidgetRepresentation.js +0 -121
- package/Widgets/Representations/SphereContextRepresentation.js +0 -131
- package/Widgets/Widgets3D/SphereWidget/behavior.js +0 -177
- package/Widgets/Widgets3D/SphereWidget/state.js +0 -45
- package/Widgets/Widgets3D/SphereWidget.d.ts +0 -50
- package/Widgets/Widgets3D/SphereWidget.js +0 -62
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
2
|
-
import macro from '../../../macros.js';
|
|
3
|
-
import { vec3 } from 'gl-matrix';
|
|
4
|
-
|
|
5
|
-
function widgetBehavior(publicAPI, model) {
|
|
6
|
-
var state = model.widgetState;
|
|
7
|
-
var moveHandle = state.getMoveHandle();
|
|
8
|
-
var centerHandle = state.getCenterHandle();
|
|
9
|
-
var borderHandle = state.getBorderHandle();
|
|
10
|
-
var shapeHandle = state.getSphereHandle(); // Set while moving the center or border handle.
|
|
11
|
-
|
|
12
|
-
model.isDragging = false; // The last world coordinate of the mouse cursor during dragging.
|
|
13
|
-
|
|
14
|
-
model.previousPosition = null;
|
|
15
|
-
centerHandle.setManipulator(model.manipulator);
|
|
16
|
-
borderHandle.setManipulator(model.manipulator);
|
|
17
|
-
model.classHierarchy.push('vtkSphereWidgetProp');
|
|
18
|
-
moveHandle.setVisible(true);
|
|
19
|
-
centerHandle.setVisible(false);
|
|
20
|
-
borderHandle.setVisible(false);
|
|
21
|
-
shapeHandle.setVisible(true);
|
|
22
|
-
|
|
23
|
-
function isValidHandle(handle) {
|
|
24
|
-
return handle === centerHandle || handle === borderHandle || handle === moveHandle;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
function isPlaced() {
|
|
28
|
-
return !!centerHandle.getOrigin() && !!borderHandle.getOrigin();
|
|
29
|
-
} // Update the sphereHandle parameters from {center,border}Handle.
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
function updateSphere() {
|
|
33
|
-
var center = centerHandle.getOrigin();
|
|
34
|
-
if (!center) return;
|
|
35
|
-
centerHandle.setVisible(true);
|
|
36
|
-
var border = borderHandle.getOrigin();
|
|
37
|
-
|
|
38
|
-
if (border) {
|
|
39
|
-
borderHandle.setVisible(true);
|
|
40
|
-
} else {
|
|
41
|
-
border = moveHandle.getOrigin();
|
|
42
|
-
if (!border) return;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
if (isPlaced()) {
|
|
46
|
-
moveHandle.setVisible(false);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
var radius = vec3.distance(center, border);
|
|
50
|
-
shapeHandle.setVisible(true);
|
|
51
|
-
shapeHandle.setOrigin(center);
|
|
52
|
-
shapeHandle.setScale1(radius * 2);
|
|
53
|
-
model.interactor.render();
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
function currentWorldCoords(e) {
|
|
57
|
-
return model.manipulator.handleEvent(e, model.apiSpecificRenderWindow);
|
|
58
|
-
} // Update the sphere's center and radius. Example:
|
|
59
|
-
// handle.setCenterAndRadius([1,2,3], 10);
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
publicAPI.setCenterAndRadius = function (newCenter, newRadius) {
|
|
63
|
-
var oldCenter = centerHandle.getOrigin();
|
|
64
|
-
var oldBorder = borderHandle.getOrigin();
|
|
65
|
-
var newBorder = [newCenter[0] + newRadius, newCenter[1], newCenter[2]];
|
|
66
|
-
|
|
67
|
-
if (oldBorder) {
|
|
68
|
-
// Move the boundary handle to reflect the new radius, while preserving
|
|
69
|
-
// its direction relative to the center.
|
|
70
|
-
var direction = vec3.sub(vec3.create(), oldBorder, oldCenter);
|
|
71
|
-
var oldRadius = vec3.length(direction);
|
|
72
|
-
|
|
73
|
-
if (oldRadius > 1e-10) {
|
|
74
|
-
newBorder = vec3.add(vec3.create(), newCenter, vec3.scale(vec3.create(), direction, newRadius / oldRadius));
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
centerHandle.setOrigin(newCenter);
|
|
79
|
-
borderHandle.setOrigin(newBorder);
|
|
80
|
-
updateSphere();
|
|
81
|
-
model.widgetManager.enablePicking();
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
publicAPI.handleLeftButtonPress = function (e) {
|
|
85
|
-
if (!isValidHandle(model.activeState)) {
|
|
86
|
-
model.activeState = null;
|
|
87
|
-
return macro.VOID;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
var worldCoords = currentWorldCoords(e);
|
|
91
|
-
|
|
92
|
-
if (model.activeState === moveHandle) {
|
|
93
|
-
// Initial sphere placement.
|
|
94
|
-
if (!centerHandle.getOrigin()) {
|
|
95
|
-
centerHandle.setOrigin(worldCoords);
|
|
96
|
-
} else if (!borderHandle.getOrigin()) {
|
|
97
|
-
borderHandle.setOrigin(worldCoords);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
updateSphere();
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
model.isDragging = true;
|
|
104
|
-
model.apiSpecificRenderWindow.setCursor('grabbing');
|
|
105
|
-
model.previousPosition = _toConsumableArray(currentWorldCoords(e));
|
|
106
|
-
publicAPI.invokeStartInteractionEvent();
|
|
107
|
-
return macro.EVENT_ABORT;
|
|
108
|
-
};
|
|
109
|
-
|
|
110
|
-
publicAPI.handleLeftButtonRelease = function (e) {
|
|
111
|
-
if (!model.isDragging) {
|
|
112
|
-
model.activeState = null;
|
|
113
|
-
return macro.VOID;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
if (isPlaced()) {
|
|
117
|
-
model.previousPosition = null;
|
|
118
|
-
model.widgetManager.enablePicking();
|
|
119
|
-
model.apiSpecificRenderWindow.setCursor('pointer');
|
|
120
|
-
model.isDragging = false;
|
|
121
|
-
model.activeState = null;
|
|
122
|
-
state.deactivate();
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
publicAPI.invokeEndInteractionEvent();
|
|
126
|
-
return macro.EVENT_ABORT;
|
|
127
|
-
};
|
|
128
|
-
|
|
129
|
-
publicAPI.handleMouseMove = function (e) {
|
|
130
|
-
if (!model.isDragging) {
|
|
131
|
-
model.activeState = null;
|
|
132
|
-
return macro.VOID;
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
if (!model.activeState) throw Error('no activestate');
|
|
136
|
-
var worldCoords = currentWorldCoords(e);
|
|
137
|
-
model.activeState.setOrigin(worldCoords);
|
|
138
|
-
|
|
139
|
-
if (model.activeState === centerHandle) {
|
|
140
|
-
// When the sphere is fully placed, and the user is moving the
|
|
141
|
-
// center, we move the whole sphere.
|
|
142
|
-
if (borderHandle.getOrigin()) {
|
|
143
|
-
if (!model.previousPosition) {
|
|
144
|
-
// !previousPosition here happens only immediately
|
|
145
|
-
// after grabFocus, but grabFocus resets
|
|
146
|
-
// borderHandle.origin.
|
|
147
|
-
throw Error("no pos ".concat(model.activeState, " ").concat(model.previousPosition));
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
var translation = vec3.sub(vec3.create(), worldCoords, model.previousPosition);
|
|
151
|
-
borderHandle.setOrigin(vec3.add(vec3.create(), borderHandle.getOrigin(), translation));
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
model.previousPosition = worldCoords;
|
|
156
|
-
updateSphere();
|
|
157
|
-
return macro.VOID;
|
|
158
|
-
};
|
|
159
|
-
|
|
160
|
-
publicAPI.grabFocus = function () {
|
|
161
|
-
moveHandle.setVisible(true);
|
|
162
|
-
centerHandle.setVisible(false);
|
|
163
|
-
borderHandle.setVisible(false);
|
|
164
|
-
centerHandle.setOrigin(null);
|
|
165
|
-
borderHandle.setOrigin(null);
|
|
166
|
-
model.isDragging = true;
|
|
167
|
-
model.activeState = moveHandle;
|
|
168
|
-
model.interactor.render();
|
|
169
|
-
};
|
|
170
|
-
|
|
171
|
-
publicAPI.loseFocus = function () {
|
|
172
|
-
model.isDragging = false;
|
|
173
|
-
model.activeState = null;
|
|
174
|
-
};
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
export { widgetBehavior as default };
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import vtkStateBuilder from '../../Core/StateBuilder.js';
|
|
2
|
-
|
|
3
|
-
// See https://kitware.github.io/vtk-js/docs/concepts_widgets.html.
|
|
4
|
-
|
|
5
|
-
function stateGenerator() {
|
|
6
|
-
return vtkStateBuilder.createBuilder() // The handle used only for during initial placement.
|
|
7
|
-
.addStateFromMixin({
|
|
8
|
-
labels: ['moveHandle'],
|
|
9
|
-
mixins: ['origin', 'color', 'scale1', 'visible', 'manipulator'],
|
|
10
|
-
name: 'moveHandle',
|
|
11
|
-
initialValues: {
|
|
12
|
-
scale1: 20,
|
|
13
|
-
visible: true
|
|
14
|
-
}
|
|
15
|
-
}) // The handle for the center of the sphere.
|
|
16
|
-
.addStateFromMixin({
|
|
17
|
-
labels: ['centerHandle'],
|
|
18
|
-
mixins: ['origin', 'color', 'scale1', 'visible', 'manipulator'],
|
|
19
|
-
name: 'centerHandle',
|
|
20
|
-
initialValues: {
|
|
21
|
-
scale1: 20,
|
|
22
|
-
visible: true
|
|
23
|
-
}
|
|
24
|
-
}) // The handle for a border point of the sphere.
|
|
25
|
-
.addStateFromMixin({
|
|
26
|
-
labels: ['borderHandle'],
|
|
27
|
-
mixins: ['origin', 'color', 'scale1', 'visible', 'manipulator'],
|
|
28
|
-
name: 'borderHandle',
|
|
29
|
-
initialValues: {
|
|
30
|
-
scale1: 20,
|
|
31
|
-
visible: true
|
|
32
|
-
}
|
|
33
|
-
}) // For displaying the sphere.
|
|
34
|
-
.addStateFromMixin({
|
|
35
|
-
labels: ['sphereHandle'],
|
|
36
|
-
mixins: ['origin', 'color', 'scale1', 'visible', 'orientation'],
|
|
37
|
-
name: 'sphereHandle',
|
|
38
|
-
initialValues: {
|
|
39
|
-
visible: true,
|
|
40
|
-
radius: 1
|
|
41
|
-
}
|
|
42
|
-
}).build();
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export { stateGenerator as default };
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import vtkAbstractWidget from '../Core/AbstractWidget';
|
|
2
|
-
import { Vector3, Bounds } from '../../types';
|
|
3
|
-
|
|
4
|
-
export interface ISphereWidgetHandleState {
|
|
5
|
-
getOrigin(): Vector3;
|
|
6
|
-
setOrigin(arg: Vector3): void;
|
|
7
|
-
getColor(): string;
|
|
8
|
-
setColor(arg: string):void;
|
|
9
|
-
getScale1(): number;
|
|
10
|
-
setScale1(arg: number): void;
|
|
11
|
-
getVisible(): boolean;
|
|
12
|
-
setVisible(arg: boolean):void
|
|
13
|
-
setShape(arg: string): void;
|
|
14
|
-
getShape(): string;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
// The internal state of the widget.
|
|
18
|
-
export interface vtkSphereWidgetState {
|
|
19
|
-
// A handle that defines the center of the sphere.
|
|
20
|
-
getCenterHandle(): ISphereWidgetHandleState;
|
|
21
|
-
// An arbitrary point at the sphere border. Used only to set the radius.
|
|
22
|
-
getBorderHandle(): ISphereWidgetHandleState;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
// The type of object returned by vtkWidgetManager.addWidget()
|
|
26
|
-
export interface vtkSphereWidgetHandle {
|
|
27
|
-
// Set the sphere parameters.
|
|
28
|
-
setCenterAndRadius(center: Vector3, radius: number): void;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export interface vtkSphereWidget {
|
|
32
|
-
// Abstract widget methods.
|
|
33
|
-
getWidgetState(): vtkSphereWidgetState;
|
|
34
|
-
onWidgetChange(fn: () => void): void;
|
|
35
|
-
placeWidget(bounds: Bounds): void;
|
|
36
|
-
setPlaceFactor(factor: number): void;
|
|
37
|
-
|
|
38
|
-
// Methods specific to vtkSphereWidget.
|
|
39
|
-
getRadius(): number;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
export interface ISphereWidgetInitialValues {}
|
|
43
|
-
|
|
44
|
-
export function newInstance(props?: ISphereWidgetInitialValues): vtkSphereWidget;
|
|
45
|
-
|
|
46
|
-
export const vtkSphereWidget: {
|
|
47
|
-
newInstance: typeof newInstance;
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
export default vtkSphereWidget;
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { f as distance2BetweenPoints } from '../../Common/Core/Math/index.js';
|
|
2
|
-
import vtkAbstractWidgetFactory from '../Core/AbstractWidgetFactory.js';
|
|
3
|
-
import vtkPlanePointManipulator from '../Manipulators/PlaneManipulator.js';
|
|
4
|
-
import vtkSphereHandleRepresentation from '../Representations/SphereHandleRepresentation.js';
|
|
5
|
-
import vtkSphereContextRepresentation from '../Representations/SphereContextRepresentation.js';
|
|
6
|
-
import macro from '../../macros.js';
|
|
7
|
-
import widgetBehavior from './SphereWidget/behavior.js';
|
|
8
|
-
import stateGenerator from './SphereWidget/state.js';
|
|
9
|
-
|
|
10
|
-
function vtkSphereWidget(publicAPI, model) {
|
|
11
|
-
model.classHierarchy.push('vtkSphereWidget');
|
|
12
|
-
model.behavior = widgetBehavior;
|
|
13
|
-
|
|
14
|
-
publicAPI.getRepresentationsForViewType = function (viewType) {
|
|
15
|
-
return [{
|
|
16
|
-
builder: vtkSphereHandleRepresentation,
|
|
17
|
-
labels: ['moveHandle'],
|
|
18
|
-
initialValues: {
|
|
19
|
-
scaleInPixels: true
|
|
20
|
-
}
|
|
21
|
-
}, {
|
|
22
|
-
builder: vtkSphereHandleRepresentation,
|
|
23
|
-
labels: ['centerHandle'],
|
|
24
|
-
initialValues: {
|
|
25
|
-
scaleInPixels: true
|
|
26
|
-
}
|
|
27
|
-
}, {
|
|
28
|
-
builder: vtkSphereHandleRepresentation,
|
|
29
|
-
labels: ['borderHandle'],
|
|
30
|
-
initialValues: {
|
|
31
|
-
scaleInPixels: true
|
|
32
|
-
}
|
|
33
|
-
}, {
|
|
34
|
-
builder: vtkSphereContextRepresentation,
|
|
35
|
-
labels: ['sphereHandle']
|
|
36
|
-
}];
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
publicAPI.getRadius = function () {
|
|
40
|
-
var h1 = model.widgetState.getCenterHandle();
|
|
41
|
-
var h2 = model.widgetState.getBorderHandle();
|
|
42
|
-
return Math.sqrt(distance2BetweenPoints(h1.getOrigin(), h2.getOrigin()));
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
model.manipulator = vtkPlanePointManipulator.newInstance();
|
|
46
|
-
model.widgetState = stateGenerator();
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
function extend(publicAPI, model) {
|
|
50
|
-
var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
51
|
-
Object.assign(model, {}, initialValues);
|
|
52
|
-
vtkAbstractWidgetFactory.extend(publicAPI, model, initialValues);
|
|
53
|
-
macro.setGet(publicAPI, model, ['manipulator', 'widgetState']);
|
|
54
|
-
vtkSphereWidget(publicAPI, model);
|
|
55
|
-
}
|
|
56
|
-
var newInstance = macro.newInstance(extend, 'vtkSphereWidget');
|
|
57
|
-
var index = {
|
|
58
|
-
newInstance: newInstance,
|
|
59
|
-
extend: extend
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
export { index as default, extend, newInstance };
|