#include <vtksys/SystemTools.hxx>
#include <vtkCamera.h>
+#include <qfileinfo.h>
+
//----------------------------------------------------------------------------
vvSlicerManager::vvSlicerManager(int numberOfSlicers)
{
}
//----------------------------------------------------------------------------
+//----------------------------------------------------------------------------
+std::string vvSlicerManager::GetListOfAbsoluteFilePathInOneString(const std::string &actorType)
+{
+ vvImageReader *reader = NULL;
+
+ if(actorType=="image")
+ reader = mReader;
+ else if(actorType=="overlay")
+ reader = mOverlayReader;
+ else if(actorType=="fusion")
+ reader = mFusionReader;
+ else if(actorType=="vector")
+ reader = mVectorReader;
+
+ if(!reader)
+ return "";
+
+ std::string list;
+ for(unsigned int i=0; i<reader->GetInputFilenames().size(); i++){
+ QFileInfo fileinfo(reader->GetInputFilenames()[i].c_str()); //Do not show the path
+ if(i)
+ list += '\n';
+ list += fileinfo.absoluteFilePath().toStdString();
+ }
+ return list;
+}
+//----------------------------------------------------------------------------
+
//----------------------------------------------------------------------------
bool vvSlicerManager::SetImage(std::string filename, vvImageReader::LoadedImageType type, int n, unsigned int slice)
}
//----------------------------------------------------------------------------
+//----------------------------------------------------------------------------
+void vvSlicerManager::SetSliceOrientation(int slicer, int orientation)
+{
+ mSlicers[slicer]->SetSliceOrientation(orientation);
+ emit UpdateOrientation(slicer, orientation);
+}
+//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
void vvSlicerManager::SetTSlice(int slice)
for ( unsigned int i = 0; i < mSlicers.size(); i++) {
if (slice != mSlicers[i]->GetTSlice()) {
mSlicers[i]->SetTSlice(slice);
- if (mSlicers[i]->GetImageActor()->GetVisibility())
UpdateTSlice(i);
}
}
t++;
if (t > mSlicers[0]->GetTMax())
t = 0;
+ //std::cout << "vvSlicerManager::SetNextTSlice" << std::endl;
emit UpdateTSlice(originating_slicer,t);
}
//----------------------------------------------------------------------------
t--;
if (t < 0)
t = mSlicers[0]->GetTMax();
+ //std::cout << "vvSlicerManager::SetPreviousTSlice" << std::endl;
emit UpdateTSlice(originating_slicer,t);
}
//----------------------------------------------------------------------------
if (mSlicers[slicer]->GetTSlice() == tslice) return;
mSlicers[slicer]->SetTSlice(tslice);
- if (mSlicers[slicer]->GetImageActor()->GetVisibility())
- UpdateTSlice(slicer);
+ UpdateTSlice(slicer);
}
//----------------------------------------------------------------------------
mSlicers[slicer]->Render();
for ( unsigned int i = 0; i < mSlicers.size(); i++) {
- if (i != (unsigned int)slicer && mSlicers[i]->GetImageActor()->GetVisibility()
+ if (i != (unsigned int)slicer
+ && mSlicers[i]->GetRenderer()->GetDraw()
&& mSlicers[i]->GetRenderWindow()->GetSize()[0] > 2
&& mSlicers[i]->GetRenderWindow()->GetSize()[1] > 2) {
mSlicers[i]->SetCurrentPosition(mSlicers[slicer]->GetCurrentPosition()[0],
Z <= mSlicers[slicer]->GetInput()->GetWholeExtent()[5]) {
value = this->GetScalarComponentAsDouble(mSlicers[slicer]->GetInput(), X, Y, Z);
- if (mSlicers[slicer]->GetVFActor() && mSlicers[slicer]->GetVFActor()->GetVisibility()) {
+ if (mSlicers[slicer]->GetVFActor() ) {
displayVec = 1;
unsigned int currentTime = mSlicers[slicer]->GetTSlice();
vtkImageData *vf = NULL;
valueVec = sqrt(xVec*xVec + yVec*yVec + zVec*zVec);
}
}
- if (mSlicers[slicer]->GetOverlayActor() && mSlicers[slicer]->GetOverlayActor()->GetVisibility()) {
+ if (mSlicers[slicer]->GetOverlayActor() ) {
displayOver = 1;
vtkImageData *overlay = dynamic_cast<vtkImageData*>(mSlicers[slicer]->GetOverlayMapper()->GetInput());
double Xover = (x - overlay->GetOrigin()[0]) / overlay->GetSpacing()[0];
double Zover = (z - overlay->GetOrigin()[2]) / overlay->GetSpacing()[2];
valueOver = this->GetScalarComponentAsDouble(overlay, Xover, Yover, Zover);
}
- if (mSlicers[slicer]->GetFusionActor() && mSlicers[slicer]->GetFusionActor()->GetVisibility()) {
+ if (mSlicers[slicer]->GetFusionActor() ) {
displayFus = 1;
vtkImageData *fusion = dynamic_cast<vtkImageData*>(mSlicers[slicer]->GetFusionMapper()->GetInput());
double Xover = (x - fusion->GetOrigin()[0]) / fusion->GetSpacing()[0];
emit UpdateVector(displayVec,xVec, yVec, zVec, valueVec);
emit UpdateOverlay(displayOver,valueOver,value);
emit UpdateFusion(displayFus,valueFus);
- for (unsigned int i = 0; i < mSlicers.size(); i++) {
- if (mSlicers[i]->GetImageActor()->GetVisibility() == 1)
- emit UpdateWindows(i,mSlicers[i]->GetSliceOrientation(),mSlicers[i]->GetSlice());
- else
- emit UpdateWindows(i,-1,-1);
- }
}
}
//----------------------------------------------------------------------------
//DD("============= NOTHING");
return;
}
+ //std::cout << "vvSlicerManager::UpdateSlice " << slicer << " " << mSlicers[slicer]->GetSlice() << std::endl;
emit UpdateSlice(slicer, mSlicers[slicer]->GetSlice());
mSlicers[slicer]->Render(); // DS <-- I add this, this could/must be the only Render ...
mPreviousSlice[slicer] = mSlicers[slicer]->GetSlice();
//----------------------------------------------------------------------------
void vvSlicerManager::UpdateTSlice(int slicer)
{
- std::cout << "vvSlicerManager::UpdateTSlice" << std::endl;
- if (mPreviousSlice[slicer] == mSlicers[slicer]->GetSlice()) {
- if (mPreviousTSlice[slicer] == mSlicers[slicer]->GetTSlice()) {
+ int slice = mSlicers[slicer]->GetSlice();
+ int tslice = mSlicers[slicer]->GetTSlice();
+ if (mPreviousSlice[slicer] == slice) {
+ if (mPreviousTSlice[slicer] == tslice) {
// DD("************** NOTHING ***********");
return;
}
}
- mPreviousSlice[slicer] = mSlicers[slicer]->GetSlice();
- mPreviousTSlice[slicer] = mSlicers[slicer]->GetTSlice();
- emit UpdateTSlice(slicer,mSlicers[slicer]->GetTSlice());
+ mPreviousSlice[slicer] = slice;
+ mPreviousTSlice[slicer] = tslice;
+ //std::cout << "vvSlicerManager::UpdateTSlice " << slicer << " " << tslice << std::endl;
+ emit UpdateTSlice(slicer, tslice);
}
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
-//----------------------------------------------------------------------------
-void vvSlicerManager::SetColorMap()
-{
- SetColorMap(mColorMap);
-}
-//----------------------------------------------------------------------------
-
-
//----------------------------------------------------------------------------
void vvSlicerManager::SetColorMap(int colormap)
{
fusLUT = NULL;
}
for ( unsigned int i = 0; i < mSlicers.size(); i++) {
- if (mSlicers[i]->GetOverlay() && mSlicers[i]->GetOverlayActor()->GetVisibility()) {
+ if (mSlicers[i]->GetOverlay()) {
vtkLookupTable* supLUT = vtkLookupTable::New();
supLUT->SetTableRange(range[0],range[1]);
supLUT->SetValueRange(1,1);
} else {
mSlicers[i]->GetWindowLevel()->SetLookupTable(LUT);
}
- if (mSlicers[i]->GetFusion() && mSlicers[i]->GetFusionActor()->GetVisibility()) {
+ if (mSlicers[i]->GetFusion()) {
mSlicers[i]->GetFusionActor()->SetOpacity(double(mFusionOpacity)/100);
mSlicers[i]->GetFusionMapper()->SetLookupTable(fusLUT);
mSlicers[i]->GetFusionMapper()->SetWindow(mFusionWindow);