@kitware/vtk.js 23.4.3 → 24.0.0
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/DataSetAttributes/FieldData.js +9 -5
- 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/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 +7 -6
- 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/interfaces.d.ts +11 -0
- 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
|
@@ -61,15 +61,15 @@ function vtkViewNode(publicAPI, model) {
|
|
|
61
61
|
};
|
|
62
62
|
|
|
63
63
|
publicAPI.getFirstAncestorOfType = function (type) {
|
|
64
|
-
if (!model.
|
|
64
|
+
if (!model._parent) {
|
|
65
65
|
return null;
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
if (model.
|
|
69
|
-
return model.
|
|
68
|
+
if (model._parent.isA(type)) {
|
|
69
|
+
return model._parent;
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
-
return model.
|
|
72
|
+
return model._parent.getFirstAncestorOfType(type);
|
|
73
73
|
};
|
|
74
74
|
|
|
75
75
|
publicAPI.addMissingNode = function (dobj) {
|
|
@@ -188,7 +188,7 @@ function vtkViewNode(publicAPI, model) {
|
|
|
188
188
|
|
|
189
189
|
|
|
190
190
|
var DEFAULT_VALUES = {
|
|
191
|
-
|
|
191
|
+
// _parent: null,
|
|
192
192
|
renderable: null,
|
|
193
193
|
myFactory: null,
|
|
194
194
|
children: [],
|
|
@@ -203,8 +203,9 @@ function extend(publicAPI, model) {
|
|
|
203
203
|
macro.event(publicAPI, model, 'event');
|
|
204
204
|
model._renderableChildMap = new Map();
|
|
205
205
|
macro.get(publicAPI, model, ['visited']);
|
|
206
|
-
macro.setGet(publicAPI, model, ['
|
|
207
|
-
macro.getArray(publicAPI, model, ['children']);
|
|
206
|
+
macro.setGet(publicAPI, model, ['_parent', 'renderable', 'myFactory']);
|
|
207
|
+
macro.getArray(publicAPI, model, ['children']);
|
|
208
|
+
macro.moveToProtected(publicAPI, model, ['parent']); // Object methods
|
|
208
209
|
|
|
209
210
|
vtkViewNode(publicAPI, model);
|
|
210
211
|
} // ----------------------------------------------------------------------------
|
|
@@ -116,7 +116,7 @@ function vtkWebGPURenderer(publicAPI, model) {
|
|
|
116
116
|
// has the camera changed?
|
|
117
117
|
var utime = model.UBO.getSendTime();
|
|
118
118
|
|
|
119
|
-
if (model.
|
|
119
|
+
if (model._parent.getMTime() > utime || publicAPI.getMTime() > utime || model.camera.getMTime() > utime || model.renderable.getMTime() > utime) {
|
|
120
120
|
var keyMats = model.webgpuCamera.getKeyMatrices(publicAPI);
|
|
121
121
|
model.UBO.setArray('WCVCMatrix', keyMats.wcvc);
|
|
122
122
|
model.UBO.setArray('SCPCMatrix', keyMats.scpc);
|
|
@@ -127,7 +127,9 @@ function vtkWebGPURenderer(publicAPI, model) {
|
|
|
127
127
|
var tsize = publicAPI.getYInvertedTiledSizeAndOrigin();
|
|
128
128
|
model.UBO.setArray('viewportSize', [tsize.usize, tsize.vsize]);
|
|
129
129
|
model.UBO.setValue('cameraParallel', model.camera.getParallelProjection());
|
|
130
|
-
|
|
130
|
+
|
|
131
|
+
var device = model._parent.getDevice();
|
|
132
|
+
|
|
131
133
|
model.UBO.sendIfNeeded(device);
|
|
132
134
|
}
|
|
133
135
|
};
|
|
@@ -148,7 +150,7 @@ function vtkWebGPURenderer(publicAPI, model) {
|
|
|
148
150
|
if (prepass) {
|
|
149
151
|
// clear last pipelines
|
|
150
152
|
model.pipelineCallbacks = [];
|
|
151
|
-
model.renderEncoder.begin(model.
|
|
153
|
+
model.renderEncoder.begin(model._parent.getCommandEncoder());
|
|
152
154
|
publicAPI.updateUBO();
|
|
153
155
|
} else {
|
|
154
156
|
publicAPI.scissorAndViewport(model.renderEncoder);
|
|
@@ -174,7 +176,7 @@ function vtkWebGPURenderer(publicAPI, model) {
|
|
|
174
176
|
return;
|
|
175
177
|
}
|
|
176
178
|
|
|
177
|
-
var device = model.
|
|
179
|
+
var device = model._parent.getDevice();
|
|
178
180
|
|
|
179
181
|
if (!model.clearFSQ) {
|
|
180
182
|
model.clearFSQ = vtkWebGPUFullScreenQuad.newInstance();
|
|
@@ -198,7 +200,7 @@ function vtkWebGPURenderer(publicAPI, model) {
|
|
|
198
200
|
if (prepass) {
|
|
199
201
|
// clear last pipelines
|
|
200
202
|
model.pipelineCallbacks = [];
|
|
201
|
-
model.renderEncoder.begin(model.
|
|
203
|
+
model.renderEncoder.begin(model._parent.getCommandEncoder());
|
|
202
204
|
} else {
|
|
203
205
|
publicAPI.scissorAndViewport(model.renderEncoder); // loop over registered pipelines
|
|
204
206
|
|
|
@@ -221,7 +223,7 @@ function vtkWebGPURenderer(publicAPI, model) {
|
|
|
221
223
|
if (prepass) {
|
|
222
224
|
// clear last pipelines
|
|
223
225
|
model.pipelineCallbacks = [];
|
|
224
|
-
model.renderEncoder.begin(model.
|
|
226
|
+
model.renderEncoder.begin(model._parent.getCommandEncoder());
|
|
225
227
|
} else {
|
|
226
228
|
publicAPI.scissorAndViewport(model.renderEncoder); // loop over registered pipelines
|
|
227
229
|
|
|
@@ -241,7 +243,8 @@ function vtkWebGPURenderer(publicAPI, model) {
|
|
|
241
243
|
};
|
|
242
244
|
|
|
243
245
|
publicAPI.getAspectRatio = function () {
|
|
244
|
-
var size = model.
|
|
246
|
+
var size = model._parent.getSizeByReference();
|
|
247
|
+
|
|
245
248
|
var viewport = model.renderable.getViewportByReference();
|
|
246
249
|
return size[0] * (viewport[2] - viewport[0]) / ((viewport[3] - viewport[1]) * size[1]);
|
|
247
250
|
};
|
|
@@ -252,7 +255,9 @@ function vtkWebGPURenderer(publicAPI, model) {
|
|
|
252
255
|
|
|
253
256
|
publicAPI.getYInvertedTiledSizeAndOrigin = function () {
|
|
254
257
|
var res = publicAPI.getTiledSizeAndOrigin();
|
|
255
|
-
|
|
258
|
+
|
|
259
|
+
var size = model._parent.getSizeByReference();
|
|
260
|
+
|
|
256
261
|
res.lowerLeftV = size[1] - res.vsize - res.lowerLeftV;
|
|
257
262
|
return res;
|
|
258
263
|
};
|
|
@@ -266,16 +271,19 @@ function vtkWebGPURenderer(publicAPI, model) {
|
|
|
266
271
|
var vpu = vport[0] - tileViewPort[0];
|
|
267
272
|
var vpv = vport[1] - tileViewPort[1]; // store the result as a pixel value
|
|
268
273
|
|
|
269
|
-
var ndvp = model.
|
|
274
|
+
var ndvp = model._parent.normalizedDisplayToDisplay(vpu, vpv);
|
|
275
|
+
|
|
270
276
|
var lowerLeftU = Math.round(ndvp[0]);
|
|
271
277
|
var lowerLeftV = Math.round(ndvp[1]); // find the upper right corner of the viewport, taking into account the
|
|
272
278
|
// lower left boundary of this tile
|
|
273
279
|
|
|
274
280
|
var vpu2 = vport[2] - tileViewPort[0];
|
|
275
281
|
var vpv2 = vport[3] - tileViewPort[1];
|
|
276
|
-
|
|
282
|
+
|
|
283
|
+
var ndvp2 = model._parent.normalizedDisplayToDisplay(vpu2, vpv2); // now compute the size of the intersection of the viewport with the
|
|
277
284
|
// current tile
|
|
278
285
|
|
|
286
|
+
|
|
279
287
|
var usize = Math.round(ndvp2[0]) - lowerLeftU;
|
|
280
288
|
var vsize = Math.round(ndvp2[1]) - lowerLeftV;
|
|
281
289
|
|
|
@@ -87,8 +87,8 @@ function vtkAbstractWidget(publicAPI, model) {
|
|
|
87
87
|
};
|
|
88
88
|
|
|
89
89
|
publicAPI.getViewWidgets = function () {
|
|
90
|
-
return model.
|
|
91
|
-
return model.
|
|
90
|
+
return model._factory.getViewIds().map(function (viewId) {
|
|
91
|
+
return model._factory.getWidgetForView({
|
|
92
92
|
viewId: viewId
|
|
93
93
|
});
|
|
94
94
|
});
|
|
@@ -110,7 +110,7 @@ var DEFAULT_VALUES = {
|
|
|
110
110
|
* @param {*} publicAPI public methods to populate
|
|
111
111
|
* @param {*} model internal values to populate
|
|
112
112
|
* @param {object} initialValues Contains at least
|
|
113
|
-
* {viewType,
|
|
113
|
+
* {viewType, _renderer, _camera, _openGLRenderWindow, _factory}
|
|
114
114
|
*/
|
|
115
115
|
|
|
116
116
|
function extend(publicAPI, model) {
|
|
@@ -118,8 +118,9 @@ function extend(publicAPI, model) {
|
|
|
118
118
|
Object.assign(model, DEFAULT_VALUES, initialValues);
|
|
119
119
|
vtkProp.extend(publicAPI, model, initialValues);
|
|
120
120
|
vtkInteractorObserver.extend(publicAPI, model, initialValues);
|
|
121
|
-
macro.setGet(publicAPI, model, ['contextVisibility', 'handleVisibility', '
|
|
121
|
+
macro.setGet(publicAPI, model, ['contextVisibility', 'handleVisibility', '_widgetManager']);
|
|
122
122
|
macro.get(publicAPI, model, ['representations', 'widgetState']);
|
|
123
|
+
macro.moveToProtected(publicAPI, model, ['widgetManager']);
|
|
123
124
|
macro.event(publicAPI, model, 'ActivateHandle');
|
|
124
125
|
vtkAbstractWidget(publicAPI, model);
|
|
125
126
|
} // ----------------------------------------------------------------------------
|
|
@@ -48,6 +48,7 @@ function vtkAbstractWidgetFactory(publicAPI, model) {
|
|
|
48
48
|
apiSpecificRenderWindow: apiSpecificRenderWindow,
|
|
49
49
|
factory: publicAPI
|
|
50
50
|
});
|
|
51
|
+
macro.moveToProtected(widgetPublicAPI, widgetModel, ['renderer', 'camera', 'apiSpecificRenderWindow', 'factory']);
|
|
51
52
|
macro.safeArrays(widgetModel);
|
|
52
53
|
vtkAbstractWidget.extend(widgetPublicAPI, widgetModel, initialValues); // Create representations for that view
|
|
53
54
|
|
|
@@ -60,7 +61,7 @@ function vtkAbstractWidgetFactory(publicAPI, model) {
|
|
|
60
61
|
labels = _ref2.labels,
|
|
61
62
|
initialValues = _ref2.initialValues;
|
|
62
63
|
return builder.newInstance(_objectSpread(_objectSpread({
|
|
63
|
-
|
|
64
|
+
_parentProp: widgetPublicAPI,
|
|
64
65
|
labels: labels
|
|
65
66
|
}, initialValues), widgetInitialValues));
|
|
66
67
|
});
|
|
@@ -92,8 +92,10 @@ function vtkWidgetManager(publicAPI, model) {
|
|
|
92
92
|
var pendingSvgRenders = new WeakMap();
|
|
93
93
|
|
|
94
94
|
function enableSvgLayer() {
|
|
95
|
-
var container = model.
|
|
96
|
-
|
|
95
|
+
var container = model._apiSpecificRenderWindow.getReferenceByName('el');
|
|
96
|
+
|
|
97
|
+
var canvas = model._apiSpecificRenderWindow.getCanvas();
|
|
98
|
+
|
|
97
99
|
container.insertBefore(model.svgRoot, canvas.nextSibling);
|
|
98
100
|
var containerStyles = window.getComputedStyle(container);
|
|
99
101
|
|
|
@@ -103,7 +105,8 @@ function vtkWidgetManager(publicAPI, model) {
|
|
|
103
105
|
}
|
|
104
106
|
|
|
105
107
|
function disableSvgLayer() {
|
|
106
|
-
var container = model.
|
|
108
|
+
var container = model._apiSpecificRenderWindow.getReferenceByName('el');
|
|
109
|
+
|
|
107
110
|
container.removeChild(model.svgRoot);
|
|
108
111
|
}
|
|
109
112
|
|
|
@@ -118,10 +121,10 @@ function vtkWidgetManager(publicAPI, model) {
|
|
|
118
121
|
}
|
|
119
122
|
|
|
120
123
|
function setSvgSize() {
|
|
121
|
-
var _model$
|
|
122
|
-
_model$
|
|
123
|
-
cwidth = _model$
|
|
124
|
-
cheight = _model$
|
|
124
|
+
var _model$_apiSpecificRe = model._apiSpecificRenderWindow.getSize(),
|
|
125
|
+
_model$_apiSpecificRe2 = _slicedToArray(_model$_apiSpecificRe, 2),
|
|
126
|
+
cwidth = _model$_apiSpecificRe2[0],
|
|
127
|
+
cheight = _model$_apiSpecificRe2[1];
|
|
125
128
|
|
|
126
129
|
var ratio = window.devicePixelRatio || 1;
|
|
127
130
|
var bwidth = String(cwidth / ratio);
|
|
@@ -215,17 +218,17 @@ function vtkWidgetManager(publicAPI, model) {
|
|
|
215
218
|
|
|
216
219
|
|
|
217
220
|
function updateDisplayScaleParams() {
|
|
218
|
-
var
|
|
219
|
-
|
|
220
|
-
|
|
221
|
+
var _apiSpecificRenderWindow = model._apiSpecificRenderWindow,
|
|
222
|
+
_camera = model._camera,
|
|
223
|
+
_renderer = model._renderer;
|
|
221
224
|
|
|
222
|
-
if (
|
|
223
|
-
var _apiSpecificRenderWin =
|
|
225
|
+
if (_renderer && _apiSpecificRenderWindow && _camera) {
|
|
226
|
+
var _apiSpecificRenderWin = _apiSpecificRenderWindow.getSize(),
|
|
224
227
|
_apiSpecificRenderWin2 = _slicedToArray(_apiSpecificRenderWin, 2),
|
|
225
228
|
rwW = _apiSpecificRenderWin2[0],
|
|
226
229
|
rwH = _apiSpecificRenderWin2[1];
|
|
227
230
|
|
|
228
|
-
var _renderer$getViewport =
|
|
231
|
+
var _renderer$getViewport = _renderer.getViewport(),
|
|
229
232
|
_renderer$getViewport2 = _slicedToArray(_renderer$getViewport, 4),
|
|
230
233
|
vxmin = _renderer$getViewport2[0],
|
|
231
234
|
vymin = _renderer$getViewport2[1],
|
|
@@ -233,10 +236,14 @@ function vtkWidgetManager(publicAPI, model) {
|
|
|
233
236
|
vymax = _renderer$getViewport2[3];
|
|
234
237
|
|
|
235
238
|
var rendererPixelDims = [rwW * (vxmax - vxmin), rwH * (vymax - vymin)];
|
|
236
|
-
|
|
237
|
-
var
|
|
238
|
-
|
|
239
|
-
var
|
|
239
|
+
|
|
240
|
+
var cameraPosition = _camera.getPosition();
|
|
241
|
+
|
|
242
|
+
var cameraDir = _camera.getDirectionOfProjection();
|
|
243
|
+
|
|
244
|
+
var isParallel = _camera.getParallelProjection();
|
|
245
|
+
|
|
246
|
+
var dispHeightFactor = isParallel ? 2 * _camera.getParallelScale() : 2 * Math.tan(radiansFromDegrees(_camera.getViewAngle()) / 2);
|
|
240
247
|
model.widgets.forEach(function (w) {
|
|
241
248
|
w.getNestedProps().forEach(function (r) {
|
|
242
249
|
if (r.getScaleInPixels()) {
|
|
@@ -292,7 +299,7 @@ function vtkWidgetManager(publicAPI, model) {
|
|
|
292
299
|
renderPickingBuffer();
|
|
293
300
|
model._capturedBuffers = null;
|
|
294
301
|
_context3.next = 7;
|
|
295
|
-
return model.
|
|
302
|
+
return model._selector.getSourceDataAsync(model._renderer, x1, y1, x2, y2);
|
|
296
303
|
|
|
297
304
|
case 7:
|
|
298
305
|
model._capturedBuffers = _context3.sent;
|
|
@@ -317,10 +324,10 @@ function vtkWidgetManager(publicAPI, model) {
|
|
|
317
324
|
|
|
318
325
|
publicAPI.renderWidgets = function () {
|
|
319
326
|
if (model.pickingEnabled && model.captureOn === CaptureOn.MOUSE_RELEASE) {
|
|
320
|
-
var _model$
|
|
321
|
-
_model$
|
|
322
|
-
w = _model$
|
|
323
|
-
h = _model$
|
|
327
|
+
var _model$_apiSpecificRe3 = model._apiSpecificRenderWindow.getSize(),
|
|
328
|
+
_model$_apiSpecificRe4 = _slicedToArray(_model$_apiSpecificRe3, 2),
|
|
329
|
+
w = _model$_apiSpecificRe4[0],
|
|
330
|
+
h = _model$_apiSpecificRe4[1];
|
|
324
331
|
|
|
325
332
|
captureBuffers(0, 0, w, h);
|
|
326
333
|
}
|
|
@@ -334,28 +341,32 @@ function vtkWidgetManager(publicAPI, model) {
|
|
|
334
341
|
};
|
|
335
342
|
|
|
336
343
|
publicAPI.setRenderer = function (renderer) {
|
|
337
|
-
|
|
344
|
+
var renderingComponents = extractRenderingComponents(renderer);
|
|
345
|
+
Object.assign(model, renderingComponents);
|
|
346
|
+
macro.moveToProtected({}, model, Object.keys(renderingComponents));
|
|
338
347
|
|
|
339
348
|
while (subscriptions.length) {
|
|
340
349
|
subscriptions.pop().unsubscribe();
|
|
341
350
|
}
|
|
342
351
|
|
|
343
|
-
model.
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
352
|
+
model._selector = model._apiSpecificRenderWindow.createSelector();
|
|
353
|
+
|
|
354
|
+
model._selector.setFieldAssociation(FieldAssociations.FIELD_ASSOCIATION_POINTS);
|
|
355
|
+
|
|
356
|
+
subscriptions.push(model._interactor.onRenderEvent(updateSvg));
|
|
357
|
+
subscriptions.push(model._apiSpecificRenderWindow.onModified(setSvgSize));
|
|
347
358
|
setSvgSize();
|
|
348
|
-
subscriptions.push(model.
|
|
349
|
-
subscriptions.push(model.
|
|
359
|
+
subscriptions.push(model._apiSpecificRenderWindow.onModified(updateDisplayScaleParams));
|
|
360
|
+
subscriptions.push(model._camera.onModified(updateDisplayScaleParams));
|
|
350
361
|
updateDisplayScaleParams();
|
|
351
|
-
subscriptions.push(model.
|
|
362
|
+
subscriptions.push(model._interactor.onStartAnimation(function () {
|
|
352
363
|
model.isAnimating = true;
|
|
353
364
|
}));
|
|
354
|
-
subscriptions.push(model.
|
|
365
|
+
subscriptions.push(model._interactor.onEndAnimation(function () {
|
|
355
366
|
model.isAnimating = false;
|
|
356
367
|
publicAPI.renderWidgets();
|
|
357
368
|
}));
|
|
358
|
-
subscriptions.push(model.
|
|
369
|
+
subscriptions.push(model._interactor.onMouseMove( /*#__PURE__*/function () {
|
|
359
370
|
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
|
|
360
371
|
var position, _yield$publicAPI$getS, requestCount, selectedState, representation, widget, i, w;
|
|
361
372
|
|
|
@@ -394,7 +405,7 @@ function vtkWidgetManager(publicAPI, model) {
|
|
|
394
405
|
|
|
395
406
|
case 14:
|
|
396
407
|
// Default cursor behavior
|
|
397
|
-
model.
|
|
408
|
+
model._apiSpecificRenderWindow.setCursor(widget ? 'pointer' : 'default');
|
|
398
409
|
|
|
399
410
|
if (model.widgetInFocus === widget && widget.hasFocus()) {
|
|
400
411
|
widget.activateHandle({
|
|
@@ -402,8 +413,9 @@ function vtkWidgetManager(publicAPI, model) {
|
|
|
402
413
|
representation: representation
|
|
403
414
|
}); // Ken FIXME
|
|
404
415
|
|
|
405
|
-
model.
|
|
406
|
-
|
|
416
|
+
model._interactor.render();
|
|
417
|
+
|
|
418
|
+
model._interactor.render();
|
|
407
419
|
} else {
|
|
408
420
|
for (i = 0; i < model.widgets.length; i++) {
|
|
409
421
|
w = model.widgets[i];
|
|
@@ -420,8 +432,9 @@ function vtkWidgetManager(publicAPI, model) {
|
|
|
420
432
|
} // Ken FIXME
|
|
421
433
|
|
|
422
434
|
|
|
423
|
-
model.
|
|
424
|
-
|
|
435
|
+
model._interactor.render();
|
|
436
|
+
|
|
437
|
+
model._interactor.render();
|
|
425
438
|
}
|
|
426
439
|
|
|
427
440
|
case 16:
|
|
@@ -452,25 +465,25 @@ function vtkWidgetManager(publicAPI, model) {
|
|
|
452
465
|
updateWidgetWeakMap(viewWidget);
|
|
453
466
|
updateDisplayScaleParams(); // Register to renderer
|
|
454
467
|
|
|
455
|
-
model.
|
|
468
|
+
model._renderer.addActor(viewWidget);
|
|
456
469
|
}
|
|
457
470
|
|
|
458
471
|
publicAPI.addWidget = function (widget, viewType, initialValues) {
|
|
459
|
-
if (!model.
|
|
472
|
+
if (!model._renderer) {
|
|
460
473
|
vtkErrorMacro('Widget manager MUST BE link to a view before registering widgets');
|
|
461
474
|
return null;
|
|
462
475
|
}
|
|
463
476
|
|
|
464
477
|
var viewId = model.viewId,
|
|
465
|
-
|
|
478
|
+
_renderer = model._renderer;
|
|
466
479
|
var w = widget.getWidgetForView({
|
|
467
480
|
viewId: viewId,
|
|
468
|
-
renderer:
|
|
481
|
+
renderer: _renderer,
|
|
469
482
|
viewType: viewType || ViewTypes.DEFAULT,
|
|
470
483
|
initialValues: initialValues
|
|
471
484
|
});
|
|
472
485
|
|
|
473
|
-
if (model.widgets.indexOf(w) === -1) {
|
|
486
|
+
if (w != null && model.widgets.indexOf(w) === -1) {
|
|
474
487
|
model.widgets.push(w);
|
|
475
488
|
addWidgetInternal(w);
|
|
476
489
|
publicAPI.modified();
|
|
@@ -480,13 +493,15 @@ function vtkWidgetManager(publicAPI, model) {
|
|
|
480
493
|
};
|
|
481
494
|
|
|
482
495
|
function removeWidgetInternal(viewWidget) {
|
|
483
|
-
model.
|
|
496
|
+
model._renderer.removeActor(viewWidget);
|
|
497
|
+
|
|
484
498
|
removeFromSvgLayer(viewWidget);
|
|
485
499
|
viewWidget.delete();
|
|
486
500
|
}
|
|
487
501
|
|
|
488
502
|
function onWidgetRemoved() {
|
|
489
|
-
model.
|
|
503
|
+
model._renderer.getRenderWindow().getInteractor().render();
|
|
504
|
+
|
|
490
505
|
publicAPI.renderWidgets();
|
|
491
506
|
}
|
|
492
507
|
|
|
@@ -631,10 +646,10 @@ function vtkWidgetManager(publicAPI, model) {
|
|
|
631
646
|
var pageX = event.pageX,
|
|
632
647
|
pageY = event.pageY;
|
|
633
648
|
|
|
634
|
-
var _model$
|
|
635
|
-
top = _model$
|
|
636
|
-
left = _model$
|
|
637
|
-
height = _model$
|
|
649
|
+
var _model$_apiSpecificRe5 = model._apiSpecificRenderWindow.getCanvas().getBoundingClientRect(),
|
|
650
|
+
top = _model$_apiSpecificRe5.top,
|
|
651
|
+
left = _model$_apiSpecificRe5.left,
|
|
652
|
+
height = _model$_apiSpecificRe5.height;
|
|
638
653
|
|
|
639
654
|
var x = pageX - left;
|
|
640
655
|
var y = height - (pageY - top);
|
|
@@ -709,7 +724,7 @@ function vtkWidgetManager(publicAPI, model) {
|
|
|
709
724
|
if (useSvgLayer !== model.useSvgLayer) {
|
|
710
725
|
model.useSvgLayer = useSvgLayer;
|
|
711
726
|
|
|
712
|
-
if (model.
|
|
727
|
+
if (model._renderer) {
|
|
713
728
|
if (useSvgLayer) {
|
|
714
729
|
enableSvgLayer(); // force a render so svg widgets can be drawn
|
|
715
730
|
|
|
@@ -740,6 +755,8 @@ function vtkWidgetManager(publicAPI, model) {
|
|
|
740
755
|
|
|
741
756
|
|
|
742
757
|
var DEFAULT_VALUES = {
|
|
758
|
+
// _camera: null,
|
|
759
|
+
// _selector: null,
|
|
743
760
|
viewId: null,
|
|
744
761
|
widgets: [],
|
|
745
762
|
renderer: null,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import macro from '../../macros.js';
|
|
2
|
-
import { g as subtract, j as cross, d as dot,
|
|
2
|
+
import { g as subtract, j as cross, d as dot, x as multiplyScalar, k as add } from '../../Common/Core/Math/index.js';
|
|
3
3
|
|
|
4
4
|
function projectDisplayToLine(x, y, lineOrigin, lineDirection, renderer, glRenderWindow) {
|
|
5
5
|
var near = glRenderWindow.displayToWorld(x, y, 0, renderer);
|
|
@@ -98,7 +98,7 @@ function vtkImplicitPlaneRepresentation(publicAPI, model) {
|
|
|
98
98
|
mapper: vtkMapper.newInstance(),
|
|
99
99
|
actor: vtkActor.newInstance({
|
|
100
100
|
pickable: false,
|
|
101
|
-
|
|
101
|
+
_parentProp: publicAPI
|
|
102
102
|
})
|
|
103
103
|
};
|
|
104
104
|
model.pipelines.plane = {
|
|
@@ -106,7 +106,7 @@ function vtkImplicitPlaneRepresentation(publicAPI, model) {
|
|
|
106
106
|
mapper: vtkMapper.newInstance(),
|
|
107
107
|
actor: vtkActor.newInstance({
|
|
108
108
|
pickable: true,
|
|
109
|
-
|
|
109
|
+
_parentProp: publicAPI
|
|
110
110
|
})
|
|
111
111
|
};
|
|
112
112
|
model.pipelines.origin = {
|
|
@@ -114,7 +114,7 @@ function vtkImplicitPlaneRepresentation(publicAPI, model) {
|
|
|
114
114
|
mapper: vtkMapper.newInstance(),
|
|
115
115
|
actor: vtkActor.newInstance({
|
|
116
116
|
pickable: true,
|
|
117
|
-
|
|
117
|
+
_parentProp: publicAPI
|
|
118
118
|
})
|
|
119
119
|
};
|
|
120
120
|
model.pipelines.normal = {
|
|
@@ -122,7 +122,7 @@ function vtkImplicitPlaneRepresentation(publicAPI, model) {
|
|
|
122
122
|
mapper: vtkMapper.newInstance(),
|
|
123
123
|
actor: vtkActor.newInstance({
|
|
124
124
|
pickable: true,
|
|
125
|
-
|
|
125
|
+
_parentProp: publicAPI
|
|
126
126
|
})
|
|
127
127
|
};
|
|
128
128
|
model.pipelines.display2D = {
|
|
@@ -130,7 +130,7 @@ function vtkImplicitPlaneRepresentation(publicAPI, model) {
|
|
|
130
130
|
mapper: vtkPixelSpaceCallbackMapper.newInstance(),
|
|
131
131
|
actor: vtkActor.newInstance({
|
|
132
132
|
pickable: false,
|
|
133
|
-
|
|
133
|
+
_parentProp: publicAPI
|
|
134
134
|
})
|
|
135
135
|
}; // Plane generation pipeline
|
|
136
136
|
|
|
@@ -2,7 +2,7 @@ import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
|
2
2
|
import macro from '../../macros.js';
|
|
3
3
|
import vtkActor from '../../Rendering/Core/Actor.js';
|
|
4
4
|
import vtkMapper from '../../Rendering/Core/Mapper.js';
|
|
5
|
-
import {
|
|
5
|
+
import { B as areEquals, f as distance2BetweenPoints } from '../../Common/Core/Math/index.js';
|
|
6
6
|
import vtkBoundingBox from '../../Common/DataModel/BoundingBox.js';
|
|
7
7
|
import vtkPolyData from '../../Common/DataModel/PolyData.js';
|
|
8
8
|
import vtkTubeFilter from '../../Filters/General/TubeFilter.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
2
|
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
3
3
|
import macro from '../../macros.js';
|
|
4
|
-
import { g as subtract,
|
|
4
|
+
import { g as subtract, m as multiplyAccumulate, l as normalize, j as cross } from '../../Common/Core/Math/index.js';
|
|
5
5
|
import vtkActor from '../../Rendering/Core/Actor.js';
|
|
6
6
|
import vtkCylinderSource from '../../Filters/Sources/CylinderSource.js';
|
|
7
7
|
import vtkMapper from '../../Rendering/Core/Mapper.js';
|
|
@@ -51,7 +51,7 @@ function vtkResliceCursorContextRepresentation(publicAPI, model) {
|
|
|
51
51
|
mapper: vtkMapper.newInstance(),
|
|
52
52
|
actor: vtkActor.newInstance({
|
|
53
53
|
pickable: true,
|
|
54
|
-
|
|
54
|
+
_parentProp: publicAPI
|
|
55
55
|
})
|
|
56
56
|
};
|
|
57
57
|
axis1.rotation1 = {
|
|
@@ -59,7 +59,7 @@ function vtkResliceCursorContextRepresentation(publicAPI, model) {
|
|
|
59
59
|
mapper: vtkMapper.newInstance(),
|
|
60
60
|
actor: vtkActor.newInstance({
|
|
61
61
|
pickable: true,
|
|
62
|
-
|
|
62
|
+
_parentProp: publicAPI
|
|
63
63
|
})
|
|
64
64
|
};
|
|
65
65
|
axis1.rotation2 = {
|
|
@@ -67,7 +67,7 @@ function vtkResliceCursorContextRepresentation(publicAPI, model) {
|
|
|
67
67
|
mapper: vtkMapper.newInstance(),
|
|
68
68
|
actor: vtkActor.newInstance({
|
|
69
69
|
pickable: true,
|
|
70
|
-
|
|
70
|
+
_parentProp: publicAPI
|
|
71
71
|
})
|
|
72
72
|
}; // Create axis 2
|
|
73
73
|
|
|
@@ -77,7 +77,7 @@ function vtkResliceCursorContextRepresentation(publicAPI, model) {
|
|
|
77
77
|
mapper: vtkMapper.newInstance(),
|
|
78
78
|
actor: vtkActor.newInstance({
|
|
79
79
|
pickable: true,
|
|
80
|
-
|
|
80
|
+
_parentProp: publicAPI
|
|
81
81
|
})
|
|
82
82
|
};
|
|
83
83
|
axis2.rotation1 = {
|
|
@@ -85,7 +85,7 @@ function vtkResliceCursorContextRepresentation(publicAPI, model) {
|
|
|
85
85
|
mapper: vtkMapper.newInstance(),
|
|
86
86
|
actor: vtkActor.newInstance({
|
|
87
87
|
pickable: true,
|
|
88
|
-
|
|
88
|
+
_parentProp: publicAPI
|
|
89
89
|
})
|
|
90
90
|
};
|
|
91
91
|
axis2.rotation2 = {
|
|
@@ -93,7 +93,7 @@ function vtkResliceCursorContextRepresentation(publicAPI, model) {
|
|
|
93
93
|
mapper: vtkMapper.newInstance(),
|
|
94
94
|
actor: vtkActor.newInstance({
|
|
95
95
|
pickable: true,
|
|
96
|
-
|
|
96
|
+
_parentProp: publicAPI
|
|
97
97
|
})
|
|
98
98
|
};
|
|
99
99
|
model.pipelines.axes.push(axis1);
|
|
@@ -17,9 +17,9 @@ function fontSizeToPixels(fontProperties) {
|
|
|
17
17
|
if (fontProperties.fontSize.slice(-2) === 'px') {
|
|
18
18
|
return window.devicePixelRatio * parseInt(fontProperties.fontSize, 10);
|
|
19
19
|
}
|
|
20
|
-
} else {
|
|
21
|
-
return window.devicePixelRatio * fontProperties.fontSize;
|
|
22
20
|
}
|
|
21
|
+
|
|
22
|
+
return window.devicePixelRatio * fontProperties.fontSize;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
return window.devicePixelRatio * defaultFontSize;
|
|
@@ -24,6 +24,8 @@ function vtkSVGLandmarkRepresentation(publicAPI, model) {
|
|
|
24
24
|
texts.push(state.getText ? state.getText() : "L".concat(index));
|
|
25
25
|
}
|
|
26
26
|
});
|
|
27
|
+
var state = list[0];
|
|
28
|
+
var isActive = state.getActive();
|
|
27
29
|
return publicAPI.worldPointsToPixelSpace(coords).then(function (pixelSpace) {
|
|
28
30
|
var points2d = pixelSpace.coords;
|
|
29
31
|
var winHeight = pixelSpace.windowSize[1];
|
|
@@ -39,7 +41,7 @@ function vtkSVGLandmarkRepresentation(publicAPI, model) {
|
|
|
39
41
|
var x = xy[0];
|
|
40
42
|
var y = winHeight - xy[1];
|
|
41
43
|
|
|
42
|
-
if (model.
|
|
44
|
+
if (model.circleProps && model.circleProps.visible) {
|
|
43
45
|
var circle = publicAPI.createListenableSvgElement('circle', i);
|
|
44
46
|
Object.keys(model.circleProps || {}).forEach(function (prop) {
|
|
45
47
|
return circle.setAttribute(prop, model.circleProps[prop]);
|
|
@@ -83,10 +85,22 @@ function vtkSVGLandmarkRepresentation(publicAPI, model) {
|
|
|
83
85
|
text.setAttribute('dy', dy);
|
|
84
86
|
text.setAttribute('font-size', fontSize);
|
|
85
87
|
|
|
86
|
-
if (model.fontProperties
|
|
88
|
+
if (model.fontProperties && model.fontProperties.fontFamily) {
|
|
87
89
|
text.setAttribute('font-family', model.fontProperties.fontFamily);
|
|
90
|
+
} else if (isActive && model.strokeFontProperties && model.strokeFontProperties.fontFamily) {
|
|
91
|
+
text.setAttribute('font-family', model.strokeFontProperties.fontFamily);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
if (model.fontProperties && model.fontProperties.fontStyle) {
|
|
88
95
|
text.setAttribute('font-weight', model.fontProperties.fontStyle);
|
|
96
|
+
} else if (isActive && model.strokeFontProperties && model.strokeFontProperties.fontStyle) {
|
|
97
|
+
text.setAttribute('font-weight', model.strokeFontProperties.fontStyle);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
if (model.fontProperties && model.fontProperties.fontColor) {
|
|
89
101
|
text.setAttribute('fill', model.fontProperties.fontColor);
|
|
102
|
+
} else if (isActive && model.strokeFontProperties && model.strokeFontProperties.fontColor) {
|
|
103
|
+
text.setAttribute('fill', model.strokeFontProperties.fontColor);
|
|
90
104
|
}
|
|
91
105
|
|
|
92
106
|
text.textContent = subText;
|
|
@@ -110,21 +124,20 @@ function vtkSVGLandmarkRepresentation(publicAPI, model) {
|
|
|
110
124
|
/**
|
|
111
125
|
* textProps can contain any "svg" attribute (e.g. text-anchor, text-align,
|
|
112
126
|
* alignment-baseline...)
|
|
113
|
-
* @param {*} initialValues
|
|
114
|
-
* @returns
|
|
115
127
|
*/
|
|
116
128
|
|
|
117
129
|
|
|
118
130
|
function defaultValues(initialValues) {
|
|
119
131
|
return _objectSpread(_objectSpread({}, initialValues), {}, {
|
|
120
132
|
circleProps: _objectSpread({
|
|
133
|
+
visible: false,
|
|
121
134
|
r: 5,
|
|
122
135
|
stroke: 'red',
|
|
123
136
|
fill: 'red'
|
|
124
137
|
}, initialValues.circleProps),
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
}, initialValues.
|
|
138
|
+
fontProperties: _objectSpread({
|
|
139
|
+
fontColor: 'white'
|
|
140
|
+
}, initialValues.fontProperties)
|
|
128
141
|
});
|
|
129
142
|
} // ----------------------------------------------------------------------------
|
|
130
143
|
|
|
@@ -132,7 +145,7 @@ function defaultValues(initialValues) {
|
|
|
132
145
|
function extend(publicAPI, model) {
|
|
133
146
|
var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
134
147
|
vtkSVGRepresentation.extend(publicAPI, model, defaultValues(initialValues));
|
|
135
|
-
macro.setGet(publicAPI, model, ['circleProps', 'fontProperties', '
|
|
148
|
+
macro.setGet(publicAPI, model, ['circleProps', 'fontProperties', 'strokeFontProperties', 'textProps']); // Object specific methods
|
|
136
149
|
|
|
137
150
|
vtkSVGLandmarkRepresentation(publicAPI, model);
|
|
138
151
|
} // ----------------------------------------------------------------------------
|