Slicer 5.9
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
qMRMLSliceControllerWidget.h
Go to the documentation of this file.
1/*==============================================================================
2
3 Program: 3D Slicer
4
5 Copyright (c) Kitware Inc.
6
7 See COPYRIGHT.txt
8 or http://www.slicer.org/copyright/copyright.txt for details.
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15
16 This file was originally developed by Jean-Christophe Fillion-Robin, Kitware Inc.
17 and was partially funded by NIH grant 3P41RR013218-12S1
18
19==============================================================================*/
20
21#ifndef __qMRMLSliceControllerWidget_h
22#define __qMRMLSliceControllerWidget_h
23
24// qMRMLWidget includes
26#include <vtkVersion.h>
27
28class QButtonGroup;
29class QToolButton;
30class qMRMLSliceControllerWidgetPrivate;
32class vtkAlgorithmOutput;
33class vtkCollection;
34class vtkImageData;
35class vtkMRMLNode;
36class vtkMRMLScene;
40
54class QMRML_WIDGETS_EXPORT qMRMLSliceControllerWidget
56{
57 Q_OBJECT
58 Q_PROPERTY(QString sliceViewName READ sliceViewName WRITE setSliceViewName)
59 Q_PROPERTY(QString sliceViewLabel READ sliceViewLabel WRITE setSliceViewLabel)
60 Q_PROPERTY(QColor sliceViewColor READ sliceViewColor WRITE setSliceViewColor)
65public:
68
70 explicit qMRMLSliceControllerWidget(QWidget* parent = nullptr);
72
74 bool isLinked()const;
75
77 bool isCompareView()const;
78
81 QString sliceOrientation()const;
82
88 Q_INVOKABLE vtkAlgorithmOutput* imageDataConnection()const;
89
92 Q_INVOKABLE vtkMRMLSliceNode* mrmlSliceNode()const;
93
97
101 void setSliceViewName(const QString& newSliceViewName);
102
104 QString sliceViewName()const;
105
110 void setSliceViewLabel(const QString& newSliceViewLabel);
111
114 QString sliceViewLabel()const;
115
117 void setSliceViewColor(const QColor& newSliceViewColor);
118
120 QColor sliceViewColor()const;
121
123 Q_INVOKABLE void setSliceOffsetRange(double min, double max);
124
126 void setSliceOffsetResolution(double resolution);
127
130
132 Q_INVOKABLE vtkMRMLSliceLogic* sliceLogic()const;
133
136 Q_INVOKABLE void setSliceLogic(vtkMRMLSliceLogic * newSliceLogic);
137
141 Q_INVOKABLE void setControllerButtonGroup(QButtonGroup* group);
142
146 Q_INVOKABLE void setSliceLogics(vtkCollection* logics);
147
150
152 Q_INVOKABLE QToolButton* fitToWindowToolButton();
153
156
157public slots:
158
159 void setMRMLScene(vtkMRMLScene* newScene) override;
160
163
165 void setImageDataConnection(vtkAlgorithmOutput* newImageDataConnection);
166
168 void setSliceViewSize(const QSize& newSize);
169
173
177 void setSliceOrientation(const QString& orientation);
178
181
183 void setSliceOffsetValue(double offset);
184
186 void trackSliceOffsetValue(double offset);
187
189 void setSliceVisible(bool visible);
190
192 void setSliceEdgeVisibility3D(bool visible);
193
195 void setSliceLink(bool linked);
196
200 void setHotLinked(bool hot);
201
202 // Advanced options
205 void setMoreButtonVisible(bool visible);
209
212 void moveBackgroundComboBox(bool move);
216
219
220 void setSegmentationHidden(bool hide);
221 void setLabelMapHidden(bool hide);
222 void setForegroundHidden(bool hide);
223 void setBackgroundHidden(bool hide);
224
226 void setSegmentationOpacity(double opacity);
228 void setLabelMapOpacity(double opacity);
229 void setForegroundOpacity(double opacity);
230 void setBackgroundOpacity(double opacity);
231
235 void showLabelOutline(bool show);
237 void showReformatWidget(bool show);
243 void setCompositing(int mode);
248 void setClipToBackground(bool enabled);
250 void setSliceSpacingMode(bool automatic);
251 void setSliceSpacing(double spacing);
252 void setSliceFOV(double fov);
253
255 void setSliceModelMode(int mode);
261
262 void setSliceModelFOV(int index, double fov);
263 void setSliceModelFOVX(double fov);
264 void setSliceModelFOVY(double fov);
265
266 void setSliceModelOrigin(int index, double fov);
267 void setSliceModelOriginX(double fov);
268 void setSliceModelOriginY(double fov);
269
270 void setSliceModelDimension(int index, int dim);
273
274 // Orientation marker
277
278 // Ruler
279 void setRulerType(int type);
280 void setRulerColor(int color);
281
282 // Slab Reconstruction
284 void setSlabReconstructionThickness(double thickness);
285
286 // Lightbox
287 void setLightbox(int rows, int columns);
297 // interpolation
298 void setForegroundInterpolation(bool nearestNeighbor);
299 void setBackgroundInterpolation(bool nearestNeighbor);
300
302
303signals:
306
308
311
312protected:
318 qMRMLSliceControllerWidget(qMRMLSliceControllerWidgetPrivate* obj,
319 QWidget* parent);
320
321private:
322 Q_DECLARE_PRIVATE(qMRMLSliceControllerWidget);
323 Q_DISABLE_COPY(qMRMLSliceControllerWidget);
324};
325
326#endif
void lockReformatWidgetToCamera(bool lock)
Q_INVOKABLE void setControllerButtonGroup(QButtonGroup *group)
void setSliceModelFOVX(double fov)
void setSliceViewSize(const QSize &newSize)
void setBackgroundInterpolation(bool nearestNeighbor)
void setSliceOrientation(const QString &orientation)
void setLabelMapOpacity(double opacity)
Label opacity.
void setSliceViewLabel(const QString &newSliceViewLabel)
qMRMLSliceControllerWidget(QWidget *parent=nullptr)
Constructors.
Q_INVOKABLE void setSliceLogics(vtkCollection *logics)
void showReformatWidget(bool show)
Reformat widget.
Q_INVOKABLE vtkAlgorithmOutput * imageDataConnection() const
void setSliceModelDimensionX(int dim)
Q_INVOKABLE qMRMLSliderWidget * sliceOffsetSlider()
Get the slice slider widget (shown in the controller bar).
void setRulerType(int type)
void setSliceOffsetResolution(double resolution)
Set slice offset resolution (increment)
void imageDataConnectionChanged(vtkAlgorithmOutput *imageDataConnection)
This signal is emitted when the given imageData is modified.
bool isCompareView() const
Is the view a compare view.
void setSliceModelFOVY(double fov)
void setShowSliceOffsetSlider(bool show)
Set slice offset slider visibility.
void setMRMLSliceNode(vtkMRMLSliceNode *newSliceNode)
Set a new SliceNode.
void setLabelMapHidden(bool hide)
void showSlabReconstructionWidget(bool show)
Reconstruction widget.
void moveBackgroundComboBox(bool move)
void setClipToBackground(bool enabled)
void setSegmentationOpacity(double opacity)
Segmentation opacity.
void toggleSegmentationOutlineFill()
Segmentation outline/fill.
void setOrientationMarkerType(int type)
Q_INVOKABLE vtkMRMLSliceLogic * sliceLogic() const
Get SliceLogic.
void rotateSliceToLowestVolumeAxes()
Rotate to volume plane (first of background, foreground, or label)
void setMoreButtonVisible(bool visible)
void setSliceSpacing(double spacing)
void setHotLinked(bool hot)
void setBackgroundHidden(bool hide)
void setForegroundOpacity(double opacity)
void setImageDataConnection(vtkAlgorithmOutput *newImageDataConnection)
Set a new imageData.
void updateSegmentationControlsVisibility()
void setForegroundInterpolation(bool nearestNeighbor)
void setSliceModelOriginY(double fov)
void setSliceModelOrigin(int index, double fov)
void setSliceModelMode(int mode)
Slice Model.
void setSliceSpacingMode(bool automatic)
Slice spacing.
void setSlabReconstructionThickness(double thickness)
void showLabelOutline(bool show)
Label outline.
void setForegroundHidden(bool hide)
void setSliceModelDimension(int index, int dim)
void trackSliceOffsetValue(double offset)
Set slice offset. Used when events will come is rapid succession.
void setOrientationMarkerSize(int size)
void setBackgroundOpacity(double opacity)
Q_INVOKABLE void setSliceOffsetRange(double min, double max)
Set slice offset range.
void setSliceModelFOV(int index, double fov)
void setSliceEdgeVisibility3D(bool visible)
Set slice edge visible.
Q_INVOKABLE QToolButton * fitToWindowToolButton()
Get the fit to window button (shown in the controller bar).
void setCompositing(int mode)
Compositing.
void setMRMLScene(vtkMRMLScene *newScene) override
void updateWidgetFromMRMLView() override
void setSliceOffsetValue(double offset)
Set slice offset. Used to set a single value.
void toggleSlabReconstructionInteractive(bool interactive)
qMRMLViewControllerBar Superclass
Superclass typedef.
void setSliceVisible(bool visible)
Set slice visible.
void setSliceViewColor(const QColor &newSliceViewColor)
Set the color for the slice view.
Q_INVOKABLE void setSliceLogic(vtkMRMLSliceLogic *newSliceLogic)
Q_INVOKABLE vtkMRMLSliceCompositeNode * mrmlSliceCompositeNode() const
void nodeAboutToBeEdited(vtkMRMLNode *node)
Signal emitted when editing of a node is requested from within the controller.
void setSlabReconstructionType(int type)
void setSliceModelOriginX(double fov)
Q_INVOKABLE vtkMRMLSliceNode * mrmlSliceNode() const
bool isLinked() const
Are the slices linked to each other.
void setSliceLink(bool linked)
Link/Unlink the slice controls across all slice viewer.
void setSegmentationHidden(bool hide)
bool isMoreButtonVisible() const
void setSliceFOV(double fov)
void setLightbox(int rows, int columns)
void setSliceViewName(const QString &newSliceViewName)
void setRulerColor(int color)
void setSliceModelDimensionY(int dim)
Extend the ctkSliderWidget to integrate units support.
qMRMLViewControllerBar(QWidget *parent=nullptr)
Constructors.
Abstract Superclass for all specific types of MRML nodes.
A set of MRML Nodes that supports serialization and undo/redo.
MRML node for storing a slice through RAS space.
Slicer logic class for slice manipulation.
MRML node for storing a slice through RAS space.