]> Creatis software - creaContours.git/blobdiff - lib/kernel_ManagerContour_NDimensions/KernelManagerContour.cxx
#onLoad without interface
[creaContours.git] / lib / kernel_ManagerContour_NDimensions / KernelManagerContour.cxx
index 3edce32a41f4b4b81d45ad16beb41ba2bd6779b5..4a96eae2505cb2f510c1575b14bb4a5e088d9a76 100644 (file)
@@ -59,12 +59,12 @@ KernelManagerContour::KernelManagerContour(std::vector<vtkImageData*> 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<vtkImageData*> KernelManagerContour::getVectImages()
        return vectimages;
 }
 
+void KernelManagerContour::changeImage(int id, vtkImageData *img)
+{
+    if ( id<vectimages.size() )
+    {
+        vectimages[id]=img;
+    }
+    double spc[3];
+    std::vector<double> 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<vtkImageData*> vectimg)
 {
@@ -98,8 +115,8 @@ void KernelManagerContour::setVectImages(std::vector<vtkImageData*> vectimg)
        std::vector<double> vectspc;
        for(int i = 0; i < (int)(vectimg.size()); i++)
        {
-               vtkImageData* img = vectimg[i];
-               vtkImageChangeInformationchange = 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<vtkImageData*> 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<vtkImageData*> 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<std::string, ImageSourceThing *> * sourcesMap          = new std::map<std::string, ImageSourceThing *>();
-       std::map<std::string, ImageSectionThing *>* sectionsMap         = new std::map<std::string, ImageSectionThing *>();
-       std::map<std::string, AxeThing *>* axesMap                                      = new std::map<std::string, AxeThing *>();
-       std::map<std::string, ContourThing *>* outlinesMap                      = new std::map<std::string, ContourThing *>();
-
+                                                _datadir            = datadir;
+       std::string                                 conceptsFN                  = datadir+"holaConceptsFile.cf";
+       std::string                                 imageSourcesFN              = datadir+"holaImagesInstantsFile.of";
+       std::string                                 imageSectionsFN             = "";
+       std::string                                 axeThingsFN                 = "";
+       std::map<std::string, ImageSourceThing *>   *sourcesMap         = new std::map<std::string, ImageSourceThing *>();
+       std::map<std::string, ImageSectionThing *>  *sectionsMap            = new std::map<std::string, ImageSectionThing *>();
+       std::map<std::string, AxeThing *>           *axesMap                    = new std::map<std::string, AxeThing *>();
+       std::map<std::string, ContourThing *>       *outlinesMap                = new std::map<std::string, ContourThing *>();
        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<std::string, ImageSourceThing *>( 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<std::string>& conc
        modelManager-> getConceptsInformation(conceptNameVect, conceptSizeVect);
 }
 
-
-vtkImageData* KernelManagerContour::getImageAtInstant(std::vector<int> inst){
+vtkImageData* KernelManagerContour::getImageAtInstant(std::vector<int> 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
-
-
 }