X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2Fkernel_ManagerContour_NDimensions%2FKernelManagerContour.cxx;h=4a96eae2505cb2f510c1575b14bb4a5e088d9a76;hb=e4a8d645b4aec3835d1b51a1f8d8f68a9da6a047;hp=3edce32a41f4b4b81d45ad16beb41ba2bd6779b5;hpb=7ef64acb00d37e665e0bf019b9a7ede2495bf155;p=creaContours.git diff --git a/lib/kernel_ManagerContour_NDimensions/KernelManagerContour.cxx b/lib/kernel_ManagerContour_NDimensions/KernelManagerContour.cxx index 3edce32..4a96eae 100644 --- a/lib/kernel_ManagerContour_NDimensions/KernelManagerContour.cxx +++ b/lib/kernel_ManagerContour_NDimensions/KernelManagerContour.cxx @@ -59,12 +59,12 @@ KernelManagerContour::KernelManagerContour(std::vector images,std /**THIS ALL SHOULD BE IN AN OTHER LIB CALLED PERSISTANCE ** **/ + time_t seconds; + seconds = time (NULL); + int time = seconds; inredo = 0; inundo = 0; - time_t seconds; - seconds = time (NULL); - int time = seconds; - stundoredo = tmpdir+"/temp"+intToString(time); + stundoredo = tmpdir+"/temp"+intToString(time); _currentIndex = 0; _contourPropagation = NULL; #if(WIN32) @@ -91,6 +91,23 @@ std::vector KernelManagerContour::getVectImages() return vectimages; } +void KernelManagerContour::changeImage(int id, vtkImageData *img) +{ + if ( id vectspc; + img->GetSpacing(spc); + vectspc.push_back(spc[0]); + vectspc.push_back(spc[1]); + vectspc.push_back(spc[2]); + vectimagesSpacing[id]=vectspc; + std::string imgstring = "Source Image "+intToString(id+1); + ImageSourceThing *imagesourcething = modelManager->getImageSourceThingByKeyName( imgstring ); + imagesourcething->setSourceImage( img ); +} void KernelManagerContour::setVectImages(std::vector vectimg) { @@ -98,8 +115,8 @@ void KernelManagerContour::setVectImages(std::vector vectimg) std::vector vectspc; for(int i = 0; i < (int)(vectimg.size()); i++) { - vtkImageData* img = vectimg[i]; - vtkImageChangeInformation* change = vtkImageChangeInformation::New(); + vtkImageData *img = vectimg[i]; + vtkImageChangeInformation *change = vtkImageChangeInformation::New(); //EED 2017-01-01 Migration VTK7 #if VTK_MAJOR_VERSION <= 5 change->SetInformationInput(img); @@ -108,7 +125,7 @@ void KernelManagerContour::setVectImages(std::vector vectimg) change->SetInputData(img); #endif img->GetSpacing(spc); - change->SetOutputSpacing(1,1,1); +// change->SetOutputSpacing(1,1,1); //EED 18 fev 2014 change->SetOutputOrigin (0, 0, 0); change->Update(); @@ -124,40 +141,37 @@ void KernelManagerContour::setVectImages(std::vector vectimg) void KernelManagerContour::GetSpacing(double *vecspc, int iImage) { - vecspc[0]=vectimagesSpacing[iImage][0]; - vecspc[1]=vectimagesSpacing[iImage][1]; - vecspc[2]=vectimagesSpacing[iImage][2]; + vecspc[0] = vectimagesSpacing[iImage][0]; + vecspc[1] = vectimagesSpacing[iImage][1]; + vecspc[2] = vectimagesSpacing[iImage][2]; } void KernelManagerContour::initializeEnvironment(std::string datadir) { - _datadir = datadir; - std::string conceptsFN = datadir+"holaConceptsFile.cf"; - std::string imageSourcesFN = datadir+"holaImagesInstantsFile.of"; - std::string imageSectionsFN = ""; - std::string axeThingsFN = ""; - - std::map * sourcesMap = new std::map(); - std::map* sectionsMap = new std::map(); - std::map* axesMap = new std::map(); - std::map* outlinesMap = new std::map(); - + _datadir = datadir; + std::string conceptsFN = datadir+"holaConceptsFile.cf"; + std::string imageSourcesFN = datadir+"holaImagesInstantsFile.of"; + std::string imageSectionsFN = ""; + std::string axeThingsFN = ""; + std::map *sourcesMap = new std::map(); + std::map *sectionsMap = new std::map(); + std::map *axesMap = new std::map(); + std::map *outlinesMap = new std::map(); for(int i = 0; i < (int)(vectimages.size()); i++) { - vtkImageData* selectedimage = vectimages[i]; - ImageSourceThing * thing = new ImageSourceThing(selectedimage); - std::string imgstring = "Source Image "+intToString(i+1); + vtkImageData *selectedimage = vectimages[i]; + ImageSourceThing *thing = new ImageSourceThing(selectedimage); + std::string imgstring = "Source Image "+intToString(i+1); sourcesMap->insert(std::pair( imgstring, thing)); } // for - - OutlineModelBuilder * _builder = new OutlineModelBuilder( conceptsFN ,datadir); + OutlineModelBuilder *_builder = new OutlineModelBuilder( conceptsFN ,datadir); _builder->buildImageSource_Envornment( imageSourcesFN, sourcesMap ); _builder->buildImageSection_Envornment( imageSectionsFN, sectionsMap ); _builder->buildAxe_Envornment(axeThingsFN, axesMap ); _builder->buildCountour_Envornment( imageSectionsFN, outlinesMap ); //Creating the objects to manage - modelManager = new OutlineModelManager( _builder->getImSourceEnv(), _builder->getImSectionEnv(), _builder->getAxesEnv(), _builder->getContourEnv() ); - imageSource = modelManager->getImageSourceThingByKeyName( "Source Image 1" ); + modelManager = new OutlineModelManager( _builder->getImSourceEnv(), _builder->getImSectionEnv(), _builder->getAxesEnv(), _builder->getContourEnv() ); + imageSource = modelManager->getImageSourceThingByKeyName( "Source Image 1" ); } vtkImageData* KernelManagerContour::getSourceImage() @@ -492,49 +506,43 @@ void KernelManagerContour::getConceptsInformation(std::vector& conc modelManager-> getConceptsInformation(conceptNameVect, conceptSizeVect); } - -vtkImageData* KernelManagerContour::getImageAtInstant(std::vector inst){ +vtkImageData* KernelManagerContour::getImageAtInstant(std::vector inst) +{ int index = inst[5]-1; - - if(index < (int)(vectimages.size())&&index!=_currentIndex){ - _currentIndex=index; + if(index < (int)(vectimages.size())&&index!=_currentIndex) + { + _currentIndex = index; return vectimages[index]; } return NULL; } -std::string KernelManagerContour::getCurrentFileName(){ +std::string KernelManagerContour::getCurrentFileName() +{ return filename; } -void KernelManagerContour::setCurrentFileName(std::string filenam){ +void KernelManagerContour::setCurrentFileName(std::string filenam) +{ this->filename = filenam; } -std::string KernelManagerContour::parseOsirixFile(std::string filename){ - - +std::string KernelManagerContour::parseOsirixFile(std::string filename) +{ #ifdef ParserOsirix_BUILD vtkImageData* sourceimage; std::string xsdfile; - xsdfile = _datadir; - xsdfile.append("\\XML\\osirixschema.xsd"); - sourceimage = getSourceImage(); OsirixParser p(xsdfile.c_str(), sourceimage->GetSpacing(), sourceimage->GetExtent()); - - if(p.ParseFile(filename.c_str())!= 0){ - + if(p.ParseFile(filename.c_str())!= 0) + { } - return p.getContoursFileName(); #else return ""; #endif - - }