Slicer
5.9
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
Libs
MRML
Widgets
qMRMLTransformSliders.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 __qMRMLTransformSliders_h
22
#define __qMRMLTransformSliders_h
23
24
// Qt includes
25
#include <QPair>
26
27
// CTK includes
28
#include <ctkVTKObject.h>
29
30
// MRML includes
31
#include "
qMRMLWidget.h
"
32
33
class
vtkMRMLNode
;
34
class
vtkMRMLTransformNode
;
35
class
vtkMatrix4x4;
36
class
qMRMLLinearTransformSlider
;
37
class
qMRMLTransformSlidersPrivate;
38
39
class
QMRML_WIDGETS_EXPORT
qMRMLTransformSliders
:
public
qMRMLWidget
40
{
41
Q_OBJECT
42
QVTK_OBJECT
43
Q_PROPERTY(QString
Title
READ
title
WRITE
setTitle
)
44
Q_PROPERTY(
CoordinateReferenceType
CoordinateReference
READ
coordinateReference
WRITE
setCoordinateReference
)
45
Q_ENUMS(
CoordinateReferenceType
)
46
Q_PROPERTY(
TransformType
TypeOfTransform
READ
typeOfTransform
WRITE
setTypeOfTransform
)
47
Q_ENUMS(
TransformType
)
48
Q_PROPERTY(QString
LRLabel
READ
lrLabel
WRITE
setLRLabel
)
49
Q_PROPERTY(QString
PALabel
READ
paLabel
WRITE
setPALabel
)
50
Q_PROPERTY(QString
ISLabel
READ
isLabel
WRITE
setISLabel
)
51
Q_PROPERTY(
double
SingleStep
READ
singleStep
WRITE
setSingleStep
)
52
53
Q_PROPERTY(
int
decimals
READ
decimals
WRITE
setDecimals
NOTIFY
decimalsChanged
)
54
Q_PROPERTY(
double
minimum
READ
minimum
WRITE
setMinimum
)
55
Q_PROPERTY(
double
maximum
READ
maximum
WRITE
setMaximum
)
56
Q_PROPERTY(
bool
minMaxVisible
READ
isMinMaxVisible
WRITE
setMinMaxVisible
)
57
58
public:
60
typedef
qMRMLWidget
Superclass
;
61
explicit
qMRMLTransformSliders
(QWidget* parent);
62
~
qMRMLTransformSliders
() override;
63
67
enum
CoordinateReferenceType
68
{
69
GLOBAL
,
70
LOCAL
71
};
72
void
setCoordinateReference
(
CoordinateReferenceType
coordinateReference
);
73
CoordinateReferenceType
coordinateReference
()
const
;
74
78
enum
TransformType
79
{
80
ROTATION
,
81
TRANSLATION
82
};
83
void
setTypeOfTransform
(
TransformType
typeOfTransform
);
84
TransformType
typeOfTransform
()
const
;
85
88
void
setTitle
(
const
QString&
title
);
89
QString
title
()
const
;
90
93
int
decimals
()
const
;
94
97
double
minimum
()
const
;
98
double
maximum
()
const
;
99
102
void
setMinimum
(
double
min);
103
void
setMaximum
(
double
max);
106
Q_INVOKABLE
void
setRange
(
double
min,
double
max);
107
112
void
setMinMaxVisible
(
bool
visible);
113
bool
isMinMaxVisible
()
const
;
114
117
double
singleStep
()
const
;
118
void
setSingleStep
(
double
step);
119
122
QString
lrLabel
()
const
;
123
QString
paLabel
()
const
;
124
QString
isLabel
()
const
;
125
void
setLRLabel
(
const
QString& label);
126
void
setPALabel
(
const
QString& label);
127
void
setISLabel
(
const
QString& label);
128
131
Q_INVOKABLE
vtkMRMLTransformNode
*
mrmlTransformNode
()
const
;
132
133
signals:
136
void
valuesChanged
();
137
139
void
rangeChanged
(
double
newMinimum,
double
newMaximum);
140
143
void
decimalsChanged
(
int
newDecimals);
144
145
public
slots:
148
void
setMRMLTransformNode
(
vtkMRMLTransformNode
* transformNode);
149
void
setMRMLTransformNode
(
vtkMRMLNode
* node);
150
154
void
reset
();
155
160
void
resetUnactiveSliders
();
161
164
void
setDecimals
(
int
newDecimals);
165
166
protected
slots:
167
void
onLRSliderPositionChanged
(
double
position);
168
void
onPASliderPositionChanged
(
double
position);
169
void
onISSliderPositionChanged
(
double
position);
170
171
void
onMinimumChanged
(
double
min);
172
void
onMaximumChanged
(
double
max);
173
176
void
onMRMLTransformNodeModified
(vtkObject* caller);
177
178
protected
:
179
QScopedPointer<qMRMLTransformSlidersPrivate>
d_ptr
;
180
181
void
onSliderPositionChanged
(
qMRMLLinearTransformSlider
* slider,
double
position);
182
186
void
updateRangeFromTransform
(
vtkMRMLTransformNode
* transformNode);
187
193
static
QPair<double, double>
extractMinMaxTranslationValue
(vtkMatrix4x4* mat,
double
pad = 0);
194
195
private
:
196
Q_DECLARE_PRIVATE(
qMRMLTransformSliders
);
197
Q_DISABLE_COPY(
qMRMLTransformSliders
);
198
};
199
200
#endif
qMRMLLinearTransformSlider
Definition
qMRMLLinearTransformSlider.h:35
qMRMLTransformSliders::setMRMLTransformNode
void setMRMLTransformNode(vtkMRMLNode *node)
qMRMLTransformSliders::Title
QVTK_OBJECTQString Title
Definition
qMRMLTransformSliders.h:43
qMRMLTransformSliders::typeOfTransform
TransformType typeOfTransform() const
qMRMLTransformSliders::minimum
double minimum() const
Get sliders range.
qMRMLTransformSliders::valuesChanged
void valuesChanged()
Signal sent if at least one of the slider's value is updated.
qMRMLTransformSliders::decimalsChanged
void decimalsChanged(int newDecimals)
qMRMLTransformSliders::rangeChanged
void rangeChanged(double newMinimum, double newMaximum)
Signal sent if the minimum or maximum slider's value is updated.
qMRMLTransformSliders::setMinimum
void setMinimum(double min)
Set sliders range.
qMRMLTransformSliders::PALabel
QString PALabel
Definition
qMRMLTransformSliders.h:49
qMRMLTransformSliders::setTypeOfTransform
void setTypeOfTransform(TransformType typeOfTransform)
qMRMLTransformSliders::lrLabel
QString lrLabel() const
Get/Set slider's label.
qMRMLTransformSliders::isLabel
QString isLabel() const
qMRMLTransformSliders::setISLabel
void setISLabel(const QString &label)
qMRMLTransformSliders::setPALabel
void setPALabel(const QString &label)
qMRMLTransformSliders::onISSliderPositionChanged
void onISSliderPositionChanged(double position)
qMRMLTransformSliders::CoordinateReferenceType
CoordinateReferenceType
Definition
qMRMLTransformSliders.h:68
qMRMLTransformSliders::LOCAL
@ LOCAL
Definition
qMRMLTransformSliders.h:70
qMRMLTransformSliders::GLOBAL
@ GLOBAL
Definition
qMRMLTransformSliders.h:69
qMRMLTransformSliders::setMaximum
void setMaximum(double max)
qMRMLTransformSliders::onMinimumChanged
void onMinimumChanged(double min)
qMRMLTransformSliders::isMinMaxVisible
bool isMinMaxVisible() const
qMRMLTransformSliders::LRLabel
QString LRLabel
Definition
qMRMLTransformSliders.h:48
qMRMLTransformSliders::setMRMLTransformNode
void setMRMLTransformNode(vtkMRMLTransformNode *transformNode)
Set the MRML node of interest.
qMRMLTransformSliders::qMRMLTransformSliders
qMRMLTransformSliders(QWidget *parent)
qMRMLTransformSliders::Superclass
qMRMLWidget Superclass
Constructors.
Definition
qMRMLTransformSliders.h:60
qMRMLTransformSliders::minMaxVisible
bool minMaxVisible
Definition
qMRMLTransformSliders.h:56
qMRMLTransformSliders::onMRMLTransformNodeModified
void onMRMLTransformNodeModified(vtkObject *caller)
Triggered upon MRML node transform modified events.
qMRMLTransformSliders::TypeOfTransform
TransformType TypeOfTransform
Definition
qMRMLTransformSliders.h:46
qMRMLTransformSliders::onSliderPositionChanged
void onSliderPositionChanged(qMRMLLinearTransformSlider *slider, double position)
qMRMLTransformSliders::CoordinateReference
CoordinateReferenceType CoordinateReference
Definition
qMRMLTransformSliders.h:44
qMRMLTransformSliders::onLRSliderPositionChanged
void onLRSliderPositionChanged(double position)
qMRMLTransformSliders::setLRLabel
void setLRLabel(const QString &label)
qMRMLTransformSliders::updateRangeFromTransform
void updateRangeFromTransform(vtkMRMLTransformNode *transformNode)
qMRMLTransformSliders::coordinateReference
CoordinateReferenceType coordinateReference() const
qMRMLTransformSliders::resetUnactiveSliders
void resetUnactiveSliders()
qMRMLTransformSliders::onMaximumChanged
void onMaximumChanged(double max)
qMRMLTransformSliders::setSingleStep
void setSingleStep(double step)
qMRMLTransformSliders::extractMinMaxTranslationValue
static QPair< double, double > extractMinMaxTranslationValue(vtkMatrix4x4 *mat, double pad=0)
qMRMLTransformSliders::setTitle
void setTitle(const QString &title)
Set/Get Title of the group box.
qMRMLTransformSliders::reset
void reset()
qMRMLTransformSliders::TransformType
TransformType
Definition
qMRMLTransformSliders.h:79
qMRMLTransformSliders::ROTATION
@ ROTATION
Definition
qMRMLTransformSliders.h:80
qMRMLTransformSliders::TRANSLATION
@ TRANSLATION
Definition
qMRMLTransformSliders.h:81
qMRMLTransformSliders::maximum
double maximum
Definition
qMRMLTransformSliders.h:55
qMRMLTransformSliders::paLabel
QString paLabel() const
qMRMLTransformSliders::title
QString title() const
qMRMLTransformSliders::ISLabel
QString ISLabel
Definition
qMRMLTransformSliders.h:50
qMRMLTransformSliders::setCoordinateReference
void setCoordinateReference(CoordinateReferenceType coordinateReference)
qMRMLTransformSliders::SingleStep
double SingleStep
Definition
qMRMLTransformSliders.h:51
qMRMLTransformSliders::setRange
Q_INVOKABLE void setRange(double min, double max)
Utility function that set min/max in once.
qMRMLTransformSliders::onPASliderPositionChanged
void onPASliderPositionChanged(double position)
qMRMLTransformSliders::maximum
double maximum() const
qMRMLTransformSliders::singleStep
double singleStep() const
Set sliders single step.
qMRMLTransformSliders::setMinMaxVisible
void setMinMaxVisible(bool visible)
qMRMLTransformSliders::setDecimals
void setDecimals(int newDecimals)
qMRMLTransformSliders::decimals
int decimals
Definition
qMRMLTransformSliders.h:53
qMRMLTransformSliders::d_ptr
QScopedPointer< qMRMLTransformSlidersPrivate > d_ptr
Definition
qMRMLTransformSliders.h:179
qMRMLTransformSliders::mrmlTransformNode
Q_INVOKABLE vtkMRMLTransformNode * mrmlTransformNode() const
Return the current MRML node of interest.
qMRMLTransformSliders::minimum
double minimum
Definition
qMRMLTransformSliders.h:54
qMRMLTransformSliders::decimals
int decimals() const
qMRMLWidget::qMRMLWidget
qMRMLWidget(QWidget *parent=nullptr, Qt::WindowFlags f=Qt::WindowFlags())
vtkMRMLNode
Abstract Superclass for all specific types of MRML nodes.
Definition
vtkMRMLNode.h:224
vtkMRMLTransformNode
MRML node for representing a transformation between this node space and a parent node space.
Definition
vtkMRMLTransformNode.h:34
qMRMLWidget.h
Generated on Fri Aug 29 2025 19:01:40 for Slicer by
1.13.0