X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src2%2FcreaImageIOGimmickView.cpp;h=4cf4cb5be6f37bab2e910cdf4b509a49f8d8e104;hb=75a36cc2a5936be131f570520d4cc2f74bd0c548;hp=c7e0cf15c0f1aedb86f6ee447a76b2b70e24abae;hpb=da80530068246081505e9649523d10e8da8e6acd;p=creaImageIO.git diff --git a/src2/creaImageIOGimmickView.cpp b/src2/creaImageIOGimmickView.cpp index c7e0cf1..4cf4cb5 100644 --- a/src2/creaImageIOGimmickView.cpp +++ b/src2/creaImageIOGimmickView.cpp @@ -66,7 +66,7 @@ namespace creaImageIO // Anciently started the threads ... // Threads now automatically start at first image request //mReader.Start(); - + } //====================================================================== @@ -88,7 +88,7 @@ namespace creaImageIO mReaderStarted=false; } //====================================================================== - + //====================================================================== /// Finalize void GimmickView::Finalize() @@ -133,7 +133,7 @@ namespace creaImageIO GimmickError("INTERNAL ERROR : GimmickView::UpdateTreeView : '" <second->UpdateLevel(l); + i->second->UpdateLevel(l); } //====================================================================== @@ -148,7 +148,7 @@ namespace creaImageIO } //====================================================================== - + //====================================================================== bool ImageExtent::IsCompatible(const ImageExtent& ie) { @@ -163,7 +163,7 @@ namespace creaImageIO } //====================================================================== - + //====================================================================== void ImageExtent::Add(const ImageExtent& ie) { @@ -283,9 +283,22 @@ namespace creaImageIO ///Reads Images (Non Threaded) void GimmickView::ReadImagesNotThreaded(std::vector& s, std::vector im, int dimension) { + +/* remember! + +#define GIMMICK_NO_IMAGE_SELECTION 0 +#define GIMMICK_2D_IMAGE_SELECTION 2 +#define GIMMICK_3D_IMAGE_SELECTION 3 +#define GIMMICK_4D_IMAGE_SELECTION 4 + +#define NATIVE 0 +#define _2D 2 +#define _3D 3 + +*/ // Create the output data if (im.size()==1) - { + { // Only one image : give it vtkImageData* out = vtkImageData::New(); GimmickDebugMessage(3, "State Check: Full Filename: " @@ -293,12 +306,12 @@ void GimmickView::ReadImagesNotThreaded(std::vector& s, std::vect <ShallowCopy(mReader.GetImage(im.front())); s.push_back( out ); - } + } else if (im.size()>1) // Test inutile ? JPR { vtkImageData* first = mReader.GetImage( im.front()); if (dimension == 2) - { + { // n3D std::vector::iterator it; for (it=im.begin(); it!=im.end(); ++it) @@ -310,18 +323,19 @@ void GimmickView::ReadImagesNotThreaded(std::vector& s, std::vect } else { - // n2D to 3D + // n*2D to 3D vtkImageData* out = vtkImageData::New(); out->CopyStructure(first); out->SetScalarType(first->GetScalarType()); int ext[6]; //first->GetExtent(ext); // JPR - first->GetWholeExtent(ext); + first->GetWholeExtent(ext); // renvoie egalement 0,0 en Z // JPR + std::cout <<"in GimmickView::ReadImagesNotThreaded GetWholeExtent ext ="; for (int jjj=0;jjj<6;jjj++) std:cout << " [" << jjj << "]=" << ext[jjj]; -std::cout << endl; - +std::cout << std::endl; + if(ext[5] == 0) { ext[5] = im.size()-1; @@ -331,6 +345,7 @@ std::cout << endl; ext[5] = ext[5] * im.size()-1; // to deal with multiframes - JPR } out->SetExtent(ext); + // LG : TODO : Z Spacing ? out->AllocateScalars(); @@ -341,7 +356,7 @@ std::cout << endl; int dim[3]; first->GetDimensions(dim); unsigned long imsize = dim[0] * dim[1]; - imsize = imsize * dim[2] ; // deal with multiframes// JPR + imsize = imsize * dim[2] ; // deal with multiframes // JPR //EED 03-11-2009 imsize = imsize * first->GetScalarSize(); @@ -353,7 +368,7 @@ std::cout << endl; vtkImageData* cur = mReader.GetImage( (*it)); // void* src = cur->GetScalarPointer(0,0,0); // void* dst = out->GetScalarPointer(0,0,slice); - memcpy(out->GetScalarPointer(0,0,slice),cur->GetScalarPointer(0,0,0),imsize); + memcpy(out->GetScalarPointer(0,0,slice), cur->GetScalarPointer(0,0,0), imsize); slice++; }