X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src2%2FcreaImageIOGimmickView.cpp;h=01f868ebc0342048e13961f4da10412843a205fb;hb=6ab78708edd92ab0c69ec39ccc643858354b240f;hp=c24a7c3c3534638640762fc75d1eaaf1e61b3e0f;hpb=6cab96fd8ca99341053a1a6f8a9286940c535313;p=creaImageIO.git diff --git a/src2/creaImageIOGimmickView.cpp b/src2/creaImageIOGimmickView.cpp index c24a7c3..01f868e 100644 --- a/src2/creaImageIOGimmickView.cpp +++ b/src2/creaImageIOGimmickView.cpp @@ -112,6 +112,15 @@ namespace creaImageIO this->CreateTreeView(i->second); } } + + /// Create a tree view with a given name + void GimmickView::CreateSingleTreeView(std::string &i_name) + { + this->CreateTreeView(mGimmick->GetTreeHandlerMap()[i_name]); + + } + + //====================================================================== //====================================================================== @@ -162,7 +171,10 @@ namespace creaImageIO { ImageExtent * extent= (ImageExtent*)&ie; mExtent[2]+=(*extent).Get(2); + if(mExtent[2]>1) + { SetDimension(3); + } } //====================================================================== @@ -247,90 +259,94 @@ namespace creaImageIO } - mValidationSignal(valid); + modifyValidationSignal(valid); SetMessage(mMessage); return valid; } -//====================================================================== + //====================================================================== + void GimmickView::modifyValidationSignal(bool ivalid) + { + mValidationSignal(ivalid); + } + //====================================================================== ///Reads Images (Non Threaded) - void GimmickView::ReadImagesNotThreaded(std::vector& s,std::vector im, int dimension) - { +void GimmickView::ReadImagesNotThreaded(std::vector& s,std::vector im, int dimension) +{ // Create the output data if (im.size()==1) - { - + { // Only one image : give it vtkImageData* out = vtkImageData::New(); - GimmickMessage(1, "State Check: Full Filename: " - <GetAttribute("FullFileName") + GimmickDebugMessage(3, "State Check: Full Filename: " + <ShallowCopy(mReader.GetImage(im.front()->GetAttribute("FullFileName"))); + out->ShallowCopy(mReader.GetImage(im.front())); s.push_back( out ); - } - + } else if (im.size()>1) - { - vtkImageData* first = mReader.GetImage( im.front()->GetAttribute("FullFileName")); - if (dimension==2) - { - // n2D to 3D - vtkImageData* out = vtkImageData::New(); - out->CopyStructure(first); - out->SetScalarType(first->GetScalarType()); - int ext[6]; - first->GetExtent(ext); - ext[5] = im.size(); - out->SetExtent(ext); - // LG : TODO : Z Spacing ? - - out->AllocateScalars(); - - //first->Print(std::cout); - // out->Print(std::cout); - - int dim[3]; - first->GetDimensions(dim); - unsigned long imsize = - ( (unsigned long)first->GetScalarPointer(0,1,0) - - (unsigned long)first->GetScalarPointer(0,0,0)) - *dim[1]; - - int slice = 0; - std::vector::iterator it; - for (it=im.begin(); it!=im.end(); ++it) - { - //std::cout << "copying slice "<GetAttribute("FullFileName")); - - void* src = cur->GetScalarPointer(0,0,0); - void* dst = out->GetScalarPointer(0,0,slice); - // std::cout << "src="<::iterator it; + for (it=im.begin(); it!=im.end(); ++it) + { + vtkImageData* out = vtkImageData::New(); + out->ShallowCopy(mReader.GetImage(*it)); + s.push_back(out); + } + } + else + { + // n2D to 3D + vtkImageData* out = vtkImageData::New(); + out->CopyStructure(first); + out->SetScalarType(first->GetScalarType()); + int ext[6]; + first->GetExtent(ext); + ext[5] = im.size()-1; + out->SetExtent(ext); + // LG : TODO : Z Spacing ? + + out->AllocateScalars(); + + //first->Print(std::cout); + // out->Print(std::cout); + + int dim[3]; + first->GetDimensions(dim); + unsigned long imsize = dim[0] * dim[1];/* + ( (unsigned long)first->GetScalarPointer(0,1,0) + - (unsigned long)first->GetScalarPointer(0,0,0)) + *dim[1];*/ + + int slice = 0; + std::vector::iterator it; + for (it=im.begin(); it!=im.end(); ++it) + { + //std::cout << "copying slice "<GetScalarPointer(0,0,0); + void* dst = out->GetScalarPointer(0,0,slice); + // std::cout << "src="<second); - ie.image = image; - ie.pointerHolder->Set(ie.image); - //mImageEventMap.erase(i); - } + return; + } + ImageEventTypeMap::iterator i; +//JCP 22-06-2009, test mImageEventMap.size() > 0 + if(mImageEventMap.size()>0){ + i = mImageEventMap.find(filename); + if (i!=mImageEventMap.end()) + { + GimmickDebugMessage(5, + "Putting image of file '"<second); + ie.image = image; + ie.pointerHolder->Set(ie.image); + //mImageEventMap.erase(i); + } + } } else if (e==Error) {