#include "vtkPNMWriter.h"
#include "vtkPNGWriter.h"
#include "vtkJPEGWriter.h"
+#include "vtkMatrix4x4.h"
+#include "vtkTransform.h"
// Standard includes
#include <iostream>
+#include <sstream>
+#include <iomanip>
#define COLUMN_TREE 0
#define COLUMN_UL_VIEW 1
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,int)),this,SLOT(SetVFProperty(int,int,int,int)));
+ connect(overlayPanel,SIGNAL(VFPropertyUpdated(int,int,int,int,double,double,double)),this,SLOT(SetVFProperty(int,int,int,int,double,double,double)));
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::UpdateMemoryUsage()
{
// clitk::PrintMemory(true);
- infoPanel->setMemoryInMb(QString::number(clitk::GetMemoryUsageInMb())+" MiB");
+ if (clitk::GetMemoryUsageInMb() == 0) infoPanel->setMemoryInMb("NA");
+ else infoPanel->setMemoryInMb(QString::number(clitk::GetMemoryUsageInMb())+" MiB");
}
//------------------------------------------------------------------------------
// Try to guess default WindowLevel
double range[2];
mSlicerManagers.back()->GetImage()->GetFirstVTKImageData()->GetScalarRange(range);
- // DD(range[0]);
- // DD(range[1]);
if ((range[0] == 0) && (range[1] == 1)) {
presetComboBox->setCurrentIndex(5);// binary
} else {
//------------------------------------------------------------------------------
void vvMainWindow::CurrentImageChanged(std::string id)
{
- // DD("CurrentImageChanged");
-// DD(id);
-// DD(mCurrentSelectedImageId);
if (id == mCurrentSelectedImageId) return; // Do nothing
int selected = 0;
for (int i = 0; i < DataTree->topLevelItemCount(); i++) {
}
DataTree->topLevelItem(selected)->setSelected(1);
- // DD(mSlicerManagers[selected]->GetFileName());
mCurrentSelectedImageId = id;
emit SelectedImageHasChanged(mSlicerManagers[selected]);
}
std::vector<double> inputSpacing;
std::vector<int> inputSize;
std::vector<double> sizeMM;
+ vtkSmartPointer<vtkMatrix4x4> transformation;
int dimension=0;
QString pixelType;
QString inputSizeInBytes;
sizeMM[i] = inputSize[i]*inputSpacing[i];
NPixel *= inputSize[i];
}
+ transformation = imageSelected->GetTransform()->GetMatrix();
inputSizeInBytes = GetSizeInBytes(imageSelected->GetActualMemorySize()*1000);
} else if (DataTree->selectedItems()[0]->data(1,Qt::UserRole).toString() == "vector") {
vvImage::Pointer imageSelected = mSlicerManagers[index]->GetSlicer(0)->GetVF();
infoPanel->setOrigin(GetVectorDoubleAsString(origin));
infoPanel->setSpacing(GetVectorDoubleAsString(inputSpacing));
infoPanel->setNPixel(QString::number(NPixel)+" ("+inputSizeInBytes+")");
+ infoPanel->setTransformation(Get4x4MatrixDoubleAsString(transformation));
landmarksPanel->SetCurrentLandmarks(mSlicerManagers[index]->GetLandmarks(),
mSlicerManagers[index]->GetSlicer(0)->GetImage()->GetVTKImages().size());
}
windowSpinBox->setValue(mSlicerManagers[index]->GetColorWindow());
levelSpinBox->setValue(mSlicerManagers[index]->GetColorLevel());
- // DD(mSlicerManagers[index]->GetColorMap());
- // DD(mSlicerManagers[index]->GetPreset());
presetComboBox->setCurrentIndex(mSlicerManagers[index]->GetPreset());
colorMapComboBox->setCurrentIndex(mSlicerManagers[index]->GetColorMap());
}
//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+QString vvMainWindow::Get4x4MatrixDoubleAsString(vtkSmartPointer<vtkMatrix4x4> matrix)
+{
+ std::ostringstream strmatrix;
+
+ for (unsigned int i = 0; i < 4; i++) {
+ for (unsigned int j = 0; j < 4; j++) {
+ strmatrix.flags(ios::showpos);
+ strmatrix.width(10);
+ strmatrix.precision(3);
+ strmatrix.setf(ios::fixed,ios::floatfield);
+ strmatrix.fill(' ');
+ strmatrix << std::left << matrix->GetElement(i, j);
+ //strmatrix.width(10);
+ strmatrix << " ";
+ }
+ strmatrix << std::endl;
+ }
+ QString result = strmatrix.str().c_str();
+ return result;
+}
+//------------------------------------------------------------------------------
+
//------------------------------------------------------------------------------
QString vvMainWindow::GetVectorDoubleAsString(std::vector<double> vectorDouble)
{
mSlicerManagers[index]->SetColorLevel(levelSpinBox->value());
mSlicerManagers[index]->SetPreset(presetComboBox->currentIndex());
mSlicerManagers[index]->Render();
+ windowSpinBox->setValue(mSlicerManagers[index]->GetColorWindow());
+ levelSpinBox->setValue(mSlicerManagers[index]->GetColorLevel());
}
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
void vvMainWindow::AddROI(int index, QString file)
{
- DD("AddImageAndROI");
/*
// Get slice manager
//------------------------------------------------------------------------------
-void vvMainWindow::SetVFProperty(int subsampling, int scale, int log, int width)
+void vvMainWindow::SetVFProperty(int subsampling, int scale, int log, int width, double r, double g, double b)
{
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);
+ mSlicerManagers[index]->GetSlicer(i)->SetVFColor(r,g,b);
if (log > 0)
mSlicerManagers[index]->GetSlicer(i)->SetVFLog(1);
else
//------------------------------------------------------------------------------
void vvMainWindow::RemoveLink(QString image1,QString image2)
{
- // DD("vvMainWindow:RemoveLink");
for (unsigned int i = 0; i < mSlicerManagers.size(); i++) {
if (image1.toStdString() == mSlicerManagers[i]->GetId()) {
mSlicerManagers[i]->RemoveLink(image2.toStdString());
void vvMainWindow::SOVerticalSliderChanged()
{
static int value=-1;
- // DD(value);
-// DD(SOVerticalSlider->value());
if (value == SOVerticalSlider->value()) return;
else value = SOVerticalSlider->value();
//int value = SOVerticalSlider->value();