X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2Fkernel_ManagerContour_NDimensions%2FKernelManagerContour.cxx;h=57f9228ee6499549b0e365b5c5903e11b158e520;hb=fc546c3fa6dc579e173688cb0d5460af7dd668bb;hp=44b56718ccf1a57571b96d76157f7aa0f3a27615;hpb=a6412c16b34449280952c1cfdf4db2ac7568f0b2;p=creaContours.git diff --git a/lib/kernel_ManagerContour_NDimensions/KernelManagerContour.cxx b/lib/kernel_ManagerContour_NDimensions/KernelManagerContour.cxx index 44b5671..57f9228 100644 --- a/lib/kernel_ManagerContour_NDimensions/KernelManagerContour.cxx +++ b/lib/kernel_ManagerContour_NDimensions/KernelManagerContour.cxx @@ -34,7 +34,8 @@ KernelManagerContour::KernelManagerContour(){ **/ } -KernelManagerContour::KernelManagerContour(std::vector images){ +KernelManagerContour::KernelManagerContour(std::vector images,std::string datadir,std::string tmpdir) +{ /**THIS ALL SHOULD BE IN AN OTHER LIB CALLED PERSISTANCE @@ -48,32 +49,34 @@ KernelManagerContour::KernelManagerContour(std::vector images){ int time = seconds; - stundoredo = "data/temp"+intToString(time); + stundoredo = tmpdir+"/temp"+intToString(time); _currentIndex = 0; _contourPropagation = NULL; #if(WIN32) - mkdir(stundoredo.c_str()); + mkdir(tmpdir.c_str()); + mkdir(stundoredo.c_str()); #else - mkdir(stundoredo.c_str(),755); + mkdir(tmpdir.c_str(),755); + mkdir(stundoredo.c_str(),755); #endif stundoredo += "/cont"; /** ** FINISH PERSISTANCE **/ setVectImages(images); - initializeEnvironment(); + initializeEnvironment(datadir); } KernelManagerContour::~KernelManagerContour(){ -} +} std::vector KernelManagerContour::getVectImages(){ return vectimages; } void KernelManagerContour::setVectImages(std::vector vectimg){ - for(int i = 0; i < vectimg.size(); i++){ + for(int i = 0; i < (int)(vectimg.size()); i++){ vtkImageData* img = vectimg[i]; vtkImageChangeInformation* change = vtkImageChangeInformation::New(); change->SetInformationInput(img); @@ -89,9 +92,10 @@ void KernelManagerContour::setVectImages(std::vector vectimg){ vectimages = vectimg; } -void KernelManagerContour::initializeEnvironment(){ - std::string conceptsFN = "data/holaConceptsFile.cf"; - std::string imageSourcesFN = "data/holaImagesInstantsFile.of"; +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 = ""; @@ -100,7 +104,7 @@ void KernelManagerContour::initializeEnvironment(){ std::map* axesMap = new std::map(); std::map* outlinesMap = new std::map(); - for(int i = 0; i < vectimages.size(); i++){ + 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); @@ -108,7 +112,7 @@ void KernelManagerContour::initializeEnvironment(){ } - OutlineModelBuilder * _builder = new OutlineModelBuilder( conceptsFN ); + OutlineModelBuilder * _builder = new OutlineModelBuilder( conceptsFN ,datadir); _builder->buildImageSource_Envornment( imageSourcesFN, sourcesMap ); _builder->buildImageSection_Envornment( imageSectionsFN, sectionsMap ); _builder->buildAxe_Envornment(axeThingsFN, axesMap ); @@ -127,7 +131,7 @@ OutlineModelManager* KernelManagerContour::getOutlineModelManager(){ return modelManager; } -std::string KernelManagerContour::createOutline(manualContourModel * manModelContour,std::vector instantVector){ +std::string KernelManagerContour::createOutline(manualBaseModel * manModelContour,std::vector instantVector){ return modelManager->createOutline( manModelContour, instantVector ); } @@ -150,8 +154,8 @@ std::vector KernelManagerContour::GetLstNameThingsStatic(){ return modelManager->GetLstNameThingsStatic(); } -void KernelManagerContour::SaveThingName(FILE* pFile, std::string name ){ - modelManager->SaveThingName(pFile, name); +void KernelManagerContour::SaveThingName(FILE* pFile, FILE *pFileData, std::string name ){ + modelManager->SaveThingName(pFile, pFileData, name); } std::vector KernelManagerContour::GetLstNameThings(){ return modelManager->GetLstNameThings(); @@ -165,7 +169,7 @@ bool KernelManagerContour::IsPartOfStaticList(std::string theKeyName){ } void KernelManagerContour::deleteCModel(std::string theKeyName){ - manualContourModel* cModel = modelManager->getOutlineByKeyName(theKeyName)->getModel(); + manualBaseModel* cModel = modelManager->getOutlineByKeyName(theKeyName)->getModel(); modelManager->removeOutline( theKeyName ); delete cModel; @@ -200,10 +204,11 @@ void KernelManagerContour::setInstant(std::vector vectInstant){ modelManager->setInstant(act); } -std::string KernelManagerContour::createCopyContourOf ( std::string anExistingKName, std::vector &instantNoTouchData){ +std::string KernelManagerContour::createCopyContourOf ( std::string anExistingKName, std::vector &instantNoTouchData) +{ return modelManager->createCopyContourOf(anExistingKName, instantNoTouchData); } -manualContourModel* KernelManagerContour::getOutlineByKeyName(std::string cloneName){ +manualBaseModel* KernelManagerContour::getOutlineByKeyName(std::string cloneName){ return modelManager->getOutlineByKeyName (cloneName )->getModel(); } @@ -310,11 +315,11 @@ void KernelManagerContour::CalculeSplinePropagation(){ _contourPropagation->CalculeSplinePropagation(); } -manualContourModel* KernelManagerContour::GetPoints(int z,int type, std::vector* vecCtrlPointX,std::vector* vecCtrlPointY,std::vector* vecCtrlPointZ, std::string& theName,int typeofcontour, std::vector tempVector){ +manualBaseModel* KernelManagerContour::GetPoints(int z,int type, std::vector* vecCtrlPointX,std::vector* vecCtrlPointY,std::vector* vecCtrlPointZ, std::string& theName,int typeofcontour, std::vector tempVector){ bool addedModel = false; - manualContourModel* manModelContour=NULL; + manualBaseModel* manModelContour=NULL; if (_contourPropagation->ifSliceKeyContourExist(z)==false){ @@ -339,7 +344,7 @@ manualContourModel* KernelManagerContour::GetPoints(int z,int type, std::vector< for (int j=0 ; jAddPoint( (*vecCtrlPointX)[j] , (*vecCtrlPointY)[j] , -900 ); + manModelContour->AddPoint( (*vecCtrlPointX)[j] , (*vecCtrlPointY)[j] , 900 ); //-------------------------------------------------------------------- } // for j @@ -352,12 +357,14 @@ manualContourModel* KernelManagerContour::GetPoints(int z,int type, std::vector< }// ifSliceKeyContourExist return manModelContour; - } -manualContourModel * KernelManagerContour::factoryManualContourModel(int typeContour) +manualBaseModel * KernelManagerContour::factoryManualContourModel(int typeContour) { - manualContourModel *manModelContour=NULL; + manualBaseModel *manModelContour=NULL; + + // Creating the model + // NOTE: The view and the controler are created in the wxVtkBaseView_SceneManager class, configureViewControlTo method // spline if (typeContour==0) @@ -383,6 +390,24 @@ manualContourModel * KernelManagerContour::factoryManualContourModel(int typeCon manModelContour = new manualContourModelCircle(); } + // line + if (typeContour==6) + { + manModelContour = new manualContourModelLine(); + } + + // points + if (typeContour==7) + { + manModelContour = new manualBaseModel(); + } + + // polygon + if (typeContour==10) + { + manModelContour = new manualContourModelPolygon(); + } + return manModelContour; } @@ -390,7 +415,7 @@ std::vector KernelManagerContour::getOutlinesNameAtInstant(std::vec Instant instant(&tempvector); std::vector vectcont = modelManager->getOutlinesAtInstant( &instant ); std::vector vectname; - for(int i = 0; i < vectcont.size(); i++){ + for(int i = 0; i < (int)(vectcont.size()); i++){ ContourThing **contourthing = vectcont[i]; vectname.push_back((*contourthing)->getName()); } @@ -401,9 +426,9 @@ std::vector KernelManagerContour::getOutlinesAtInstant(Instant* return modelManager->getOutlinesAtInstant(instant); } -std::vector KernelManagerContour::ExploseEachModel( std::vector lstManConMod ){ - std::vector lstTmp; - std::vector lstResult; +std::vector KernelManagerContour::ExploseEachModel( std::vector lstManConMod ){ + std::vector lstTmp; + std::vector lstResult; int j,jSize; int i,iSize=lstManConMod.size(); for (i=0;i& conc vtkImageData* KernelManagerContour::getImageAtInstant(std::vector inst){ int index = inst[5]-1; - if(index < vectimages.size()&&index!=_currentIndex){ + if(index < (int)(vectimages.size())&&index!=_currentIndex){ _currentIndex=index; return vectimages[index]; } @@ -439,4 +464,32 @@ std::string KernelManagerContour::getCurrentFileName(){ void KernelManagerContour::setCurrentFileName(std::string filenam){ this->filename = filenam; -} \ No newline at end of file +} + +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){ + + } + + return p.getContoursFileName(); +#else + return ""; +#endif + + +} + +