<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
- <layout class="QGridLayout">
- <property name="margin">
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <property name="spacing">
<number>2</number>
</property>
- <property name="spacing">
+ <property name="margin">
<number>2</number>
</property>
- <item row="0" column="0">
- <widget class="QLabel" name="label_4">
- <property name="maximumSize">
- <size>
- <width>24</width>
- <height>24</height>
- </size>
- </property>
- <property name="text">
- <string/>
- </property>
- <property name="pixmap">
- <pixmap resource="../vvIcons.qrc">:/common/icons/cursor-uparrow.png</pixmap>
- </property>
- <property name="scaledContents">
- <bool>true</bool>
- </property>
- </widget>
- </item>
- <item row="0" column="1" colspan="4">
- <widget class="QLabel" name="vectorFieldNameLabel">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text">
- <string>Deformation field :</string>
- </property>
- </widget>
- </item>
- <item row="1" column="0" colspan="2">
- <widget class="QLabel" name="label_2">
- <property name="text">
- <string>Subsampling : </string>
- </property>
- </widget>
- </item>
- <item row="1" column="2">
- <widget class="QSpinBox" name="subSamplingSpinBox">
- <property name="minimum">
- <number>1</number>
- </property>
- <property name="value">
- <number>5</number>
- </property>
- </widget>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
+ <item>
+ <widget class="QLabel" name="label_4">
+ <property name="maximumSize">
+ <size>
+ <width>24</width>
+ <height>24</height>
+ </size>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="pixmap">
+ <pixmap resource="../vvIcons.qrc">:/common/icons/cursor-uparrow.png</pixmap>
+ </property>
+ <property name="scaledContents">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="vectorFieldNameLabel">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Deformation field :</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
</item>
- <item row="1" column="3">
- <widget class="QLabel" name="label_3">
- <property name="text">
- <string> Scale : </string>
- </property>
- </widget>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QLabel" name="label_2">
+ <property name="text">
+ <string><b>Subsampling : </b></string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="subSamplingSpinBox">
+ <property name="minimum">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>5</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="label_3">
+ <property name="text">
+ <string><b> Scale : </b></string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="scaleSpinBox">
+ <property name="value">
+ <number>1</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
</item>
- <item row="1" column="4">
- <widget class="QSpinBox" name="scaleSpinBox">
- <property name="value">
- <number>1</number>
- </property>
- </widget>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_3">
+ <item>
+ <widget class="QLabel" name="coordinatesLabel">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string><b>Displacement :</b></string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="label_9">
+ <property name="text">
+ <string><b>Width : </b></string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="vfWidthSpinBox">
+ <property name="minimum">
+ <number>1</number>
+ </property>
+ <property name="maximum">
+ <number>10</number>
+ </property>
+ <property name="singleStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>1</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
</item>
- <item row="3" column="0" colspan="5">
- <widget class="QLabel" name="coordinatesLabel">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
+ <item>
+ <widget class="QCheckBox" name="lutCheckBox">
<property name="text">
- <string>Displacement :</string>
+ <string>Use Logarithm LUT</string>
</property>
</widget>
</item>
- <item row="4" column="0" colspan="5">
+ <item>
<widget class="QLabel" name="normLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
</property>
</widget>
</item>
- <item row="2" column="0" colspan="5">
- <widget class="QCheckBox" name="lutCheckBox">
- <property name="text">
- <string>Use Logarithm LUT</string>
- </property>
- </widget>
- </item>
</layout>
</widget>
</item>
<resources>
<include location="../vvIcons.qrc"/>
<include location="../vvIcons.qrc"/>
+ <include location="vvIcons.qrc"/>
</resources>
<connections/>
</ui>
connect(linkPanel,SIGNAL(addLink(QString,QString)),this,SLOT(AddLink(QString,QString)));
connect(linkPanel,SIGNAL(removeLink(QString,QString)),this,SLOT(RemoveLink(QString,QString)));
- connect(overlayPanel,SIGNAL(VFPropertyUpdated(int,int,int)),this,SLOT(SetVFProperty(int,int,int)));
+ connect(overlayPanel,SIGNAL(VFPropertyUpdated(int,int,int,int)),this,SLOT(SetVFProperty(int,int,int,int)));
connect(overlayPanel,SIGNAL(OverlayPropertyUpdated(int)),this,SLOT(SetOverlayProperty(int)));
connect(overlayPanel,SIGNAL(FusionPropertyUpdated(int,int,double,double)),
this,SLOT(SetFusionProperty(int,int,double,double)));
//------------------------------------------------------------------------------
-void vvMainWindow::SetVFProperty(int subsampling, int scale, int log) {
+void vvMainWindow::SetVFProperty(int subsampling, int scale, int log, int width) {
int index = GetSlicerIndexFromItem(DataTree->selectedItems()[0]);
if (mSlicerManagers[index]->GetSlicer(0)->GetVF())
{
{
mSlicerManagers[index]->GetSlicer(i)->SetVFSubSampling(subsampling);
mSlicerManagers[index]->GetSlicer(i)->SetVFScale(scale);
+ mSlicerManagers[index]->GetSlicer(i)->SetVFWidth(width);
if (log > 0)
mSlicerManagers[index]->GetSlicer(i)->SetVFLog(1);
else
void SelectOverlayImage();
void AddFusionImage();
- void SetVFProperty(int subsampling,int scale,int lut);
+ void SetVFProperty(int subsampling,int scale,int lut, int width);
void SetOverlayProperty(int color);
void SetFusionProperty(int opacity,int colormap,double window,double level);
connect(subSamplingSpinBox,SIGNAL(editingFinished()),this,SLOT(setVFProperty()));
connect(scaleSpinBox,SIGNAL(editingFinished()),this,SLOT(setVFProperty()));
connect(lutCheckBox,SIGNAL(clicked()),this,SLOT(setVFProperty()));
+ connect(vfWidthSpinBox,SIGNAL(editingFinished()),this,SLOT(setVFProperty()));
connect(colorHorizontalSlider,SIGNAL(valueChanged(int)),this,SLOT(setOverlayProperty()));
connect(opacityHorizontalSlider,SIGNAL(valueChanged(int)),this,SLOT(setFusionProperty()));
connect(fusionColorMapComboBox,SIGNAL(currentIndexChanged(int)),this,SLOT(setFusionProperty()));
{
emit VFPropertyUpdated(subSamplingSpinBox->value(),
scaleSpinBox->value(),
- lutCheckBox->checkState());
+ lutCheckBox->checkState(),
+ vfWidthSpinBox->value());
}
void vvOverlayPanel::getCurrentVectorInfo(int visibility, double x,double y,double z, double value)
void setFusionProperty();
signals:
- void VFPropertyUpdated(int subsampling, int scale, int log);
+ void VFPropertyUpdated(int subsampling, int scale, int log, int width);
void OverlayPropertyUpdated(int color);
void FusionPropertyUpdated(int opacity, int colormap, double window, double level);
mSubSampling = 5;
mScale = 1;
mVFLog = 0;
+ mVFWidth = 1;
std::string text = "F1 = sagital; F2 = coronal; F3 = axial\n";
text += "F5 = horizontal flip; F6 = vertical flip\n\n";
mVFActor = vtkActor::New();
mVFActor->SetMapper(mVFMapper);
mVFActor->SetPickable(0);
+ mVFActor->GetProperty()->SetLineWidth(mVFWidth);
this->UpdateDisplayExtent();
this->GetRenderer()->AddActor(mVFActor);
}
//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+void vvSlicer::SetVFWidth(int width)
+{
+ mVFWidth = width;
+ if (mVFActor)
+ mVFActor->GetProperty()->SetLineWidth(mVFWidth);
+ UpdateDisplayExtent();
+ Render();
+}
+//------------------------------------------------------------------------------
+
//------------------------------------------------------------------------------
void vvSlicer::SetVFLog(int log)
return mSubSampling;
}
void SetVFScale(int scale);
+ void SetVFWidth(int width);
int GetVFScale() {
return mScale;
}
int mSubSampling;
int mScale;
int mVFLog;
+ int mVFWidth;
bool mUseReducedExtent;
int * mReducedExtent;
int * mInitialExtent;