X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vtk%2FvtkgdcmSerieViewer2.cxx;h=abfef23a121e0e5ed8abbdee5d371d98a0c5af77;hb=4725aeb3e10e02e1e0ad9ac18baf7cc6a3feed6d;hp=4fcc69c659a6c66da8c9b289aae121683a79dc93;hpb=1d970a29c1894bc7fdb87630f3ea8b7b9a85ac03;p=gdcm.git diff --git a/vtk/vtkgdcmSerieViewer2.cxx b/vtk/vtkgdcmSerieViewer2.cxx index 4fcc69c6..abfef23a 100755 --- a/vtk/vtkgdcmSerieViewer2.cxx +++ b/vtk/vtkgdcmSerieViewer2.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: vtkgdcmSerieViewer2.cxx,v $ Language: C++ - Date: $Date: 2005/12/09 12:54:05 $ - Version: $Revision: 1.1 $ + Date: $Date: 2006/05/15 21:28:37 $ + Version: $Revision: 1.6 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -52,7 +52,7 @@ #endif void userSuppliedMirrorFunction (uint8_t *im, gdcm::File *f); -void userSuppliedTopDownFunction(uint8_t *im, gdcm::File *f); +void userSuppliedUpsideDownFunction(uint8_t *im, gdcm::File *f); bool userSuppliedLessThanFunction(gdcm::File *f1, gdcm::File *f2); bool userSuppliedLessThanFunction2(gdcm::File *f1, gdcm::File *f2); @@ -85,10 +85,19 @@ public: { if ( event == vtkCommand::CharEvent ) { +#if (VTK_MAJOR_VERSION >= 5) + int max = ImageViewer->GetSliceMax(); + int slice = (ImageViewer->GetSlice() + 1 ) % ++max; + ImageViewer->SetSlice( slice ); +#else int max = ImageViewer->GetWholeZMax(); int slice = (ImageViewer->GetZSlice() + 1 ) % ++max; ImageViewer->SetZSlice( slice ); +#endif +#if !( (VTK_MAJOR_VERSION >= 5) || ( VTK_MAJOR_VERSION == 4 && VTK_MINOR_VERSION >= 5 ) ) + // This used to be a bug in version VTK 4.4 and earlier ImageViewer->GetRenderer()->ResetCameraClippingRange(); +#endif ImageViewer->Render(); } } @@ -108,14 +117,14 @@ int main(int argc, char *argv[]) " [order=] [check][debug] ", " sourcedirectory : name of the directory holding the images ", " if it holds more than one serie, ", - " only the first one id displayed. ", + " only the first one is displayed. ", " noshadowseq: user doesn't want to load Private Sequences ", " noshadow : user doesn't want to load Private groups (odd number) ", " noseq : user doesn't want to load Sequences ", " reverse : user wants to sort the images reverse order ", - " mirror : user wants to 'mirror' the images | just some simple ", - " topdown : user wants to 'topdown' the images| examples of user ", - " rotate : NOT YET MADE (useless?) | supplied functions ", + " mirror : user wants to 'mirror' the images | just some simple", + " upsidedown : user wants to 'upsidedown' the images| examples of user", + " | definedfunctions", " check : user wants to force more coherence checking ", " order= : group1-elem1,group2-elem2,... (in hexa, no space) ", " if we want to use them as a sort criterium ", @@ -151,27 +160,21 @@ int main(int argc, char *argv[]) int reverse = am->ArgMgrDefined("reverse"); - int mirror = am->ArgMgrDefined("mirror"); - int topdown = am->ArgMgrDefined("topdown"); - int rotate = am->ArgMgrDefined("rotate"); + int mirror = am->ArgMgrDefined("mirror"); + int upsidedown = am->ArgMgrDefined("upsidedown"); - if ( mirror && topdown ) + if ( mirror && upsidedown ) { - std::cout << "mirror *OR* topDown !" + std::cout << "*EITHER* mirror *OR* upsidedown !" << std::endl; delete am; return 0; } - if ( rotate ) - { - std::cout << "'rotate' undealt with -> ignored !" - << std::endl; - } int check = am->ArgMgrDefined("check"); // This is so ugly, a cstring is NOT a char * (god damit!) - bool bname = ( strcmp(am->ArgMgrGetString("order", (char*)"not found"),"name")==0 ); + bool bname = ( strcmp(am->ArgMgrGetString("order", "not found"),"name")==0 ); if (bname) elemsToOrderOn = am->ArgMgrGetXInt16Enum("order", &orderNb); @@ -219,6 +222,8 @@ int main(int argc, char *argv[]) { std::cout << "Sort list : " << nbFiles << " long" << std::endl; sh->OrderFileList(l); // sort the list + double zsp = sh->GetZSpacing(); + std::cout << "List sorted, ZSpacing = " << zsp << std::endl; break; // The first one is OK. user will have to check } else @@ -244,8 +249,8 @@ int main(int argc, char *argv[]) if (mirror) reader->SetUserFunction (userSuppliedMirrorFunction); - else if (topdown) - reader->SetUserFunction (userSuppliedTopDownFunction); + else if (upsidedown) + reader->SetUserFunction (userSuppliedUpsideDownFunction); // Only the first FileList is dealt with (just an example) // (The files will not be parsed twice by the reader) @@ -383,7 +388,7 @@ void userSuppliedMirrorFunction(uint8_t *im, gdcm::File *f) // -------------------------------------------------------- // This is just a *very* simple example of user supplied function -// to topdown (why not ?) the image +// to upsidedown (why not ?) the image // It's *not* part of gdcm. // -------------------------------------------------------- @@ -403,7 +408,7 @@ void userSuppliedMirrorFunction(uint8_t *im, gdcm::File *f) } \ } -void userSuppliedTopDownFunction(uint8_t *im, gdcm::File *f) +void userSuppliedUpsideDownFunction(uint8_t *im, gdcm::File *f) { if (f->GetZSize() != 1) {