]> Creatis software - creaContours.git/blobdiff - lib/kernel_ManagerContour_NDimensions/KernelManagerContour.cxx
RaC Changes that includes a Polygon contour in creaMaracasVisu and creaContours
[creaContours.git] / lib / kernel_ManagerContour_NDimensions / KernelManagerContour.cxx
index 2a1586cb2cc959ccff683157451499eb536247ce..ec6251f994dd2b3e51319a3f7f3a4fab92902ed3 100644 (file)
@@ -34,7 +34,8 @@ KernelManagerContour::KernelManagerContour(){
 **/
 
 }
-KernelManagerContour::KernelManagerContour(std::vector<vtkImageData*> images,std::string datadir){
+KernelManagerContour::KernelManagerContour(std::vector<vtkImageData*> images,std::string datadir,std::string tmpdir)
+{
 
 
 /**THIS ALL SHOULD BE IN AN OTHER LIB CALLED PERSISTANCE
@@ -48,14 +49,16 @@ KernelManagerContour::KernelManagerContour(std::vector<vtkImageData*> images,std
        int time = seconds;
 
 
-       stundoredo = datadir+"/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";
 /**
@@ -66,14 +69,14 @@ KernelManagerContour::KernelManagerContour(std::vector<vtkImageData*> images,std
 
 }
 KernelManagerContour::~KernelManagerContour(){
-}
+}      
 
 std::vector<vtkImageData*> KernelManagerContour::getVectImages(){
        return vectimages;
 }
 void KernelManagerContour::setVectImages(std::vector<vtkImageData*> 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);
@@ -100,7 +103,7 @@ void KernelManagerContour::initializeEnvironment(std::string datadir){
        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 < 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);
@@ -127,7 +130,7 @@ OutlineModelManager* KernelManagerContour::getOutlineModelManager(){
        return modelManager;
 }
 
-std::string KernelManagerContour::createOutline(manualContourModel * manModelContour,std::vector<int> instantVector){
+std::string KernelManagerContour::createOutline(manualBaseModel * manModelContour,std::vector<int> instantVector){
        return modelManager->createOutline( manModelContour, instantVector );
 }
 
@@ -150,8 +153,8 @@ std::vector<std::string> 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<std::string> KernelManagerContour::GetLstNameThings(){
        return modelManager->GetLstNameThings();
@@ -165,7 +168,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;
@@ -204,7 +207,7 @@ std::string KernelManagerContour::createCopyContourOf ( std::string anExistingKN
 {
        return modelManager->createCopyContourOf(anExistingKName, instantNoTouchData);
 }
-manualContourModel* KernelManagerContour::getOutlineByKeyName(std::string cloneName){
+manualBaseModel* KernelManagerContour::getOutlineByKeyName(std::string cloneName){
        return modelManager->getOutlineByKeyName (cloneName )->getModel();
 }
 
@@ -311,11 +314,11 @@ void KernelManagerContour::CalculeSplinePropagation(){
        _contourPropagation->CalculeSplinePropagation();
 }
 
-manualContourModel* KernelManagerContour::GetPoints(int z,int type, std::vector<double>* vecCtrlPointX,std::vector<double>* vecCtrlPointY,std::vector<double>* vecCtrlPointZ, std::string& theName,int typeofcontour, std::vector<int> tempVector){
+manualBaseModel* KernelManagerContour::GetPoints(int z,int type, std::vector<double>* vecCtrlPointX,std::vector<double>* vecCtrlPointY,std::vector<double>* vecCtrlPointZ, std::string& theName,int typeofcontour, std::vector<int> tempVector){
     
        
        bool addedModel = false;
-       manualContourModel* manModelContour=NULL;
+       manualBaseModel* manModelContour=NULL;
 
        if (_contourPropagation->ifSliceKeyContourExist(z)==false){
 
@@ -340,7 +343,7 @@ manualContourModel* KernelManagerContour::GetPoints(int z,int type, std::vector<
                for (int j=0 ; j<sizeCtrPt ; j++)
                {
 //JSTG_16-07-08_----------------------------------------------------------------
-                       manModelContour->AddPoint( (*vecCtrlPointX)[j] , (*vecCtrlPointY)[j] , -900  );
+                       manModelContour->AddPoint( (*vecCtrlPointX)[j] , (*vecCtrlPointY)[j] , 900  );
 //--------------------------------------------------------------------
                } // for j
 
@@ -353,12 +356,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)
@@ -389,6 +394,18 @@ manualContourModel * KernelManagerContour::factoryManualContourModel(int typeCon
        {
                manModelContour = new manualContourModelLine();
        }
+       
+       // points
+       if (typeContour==7)
+       {
+               manModelContour = new manualBaseModel();
+       }
+
+       // polygon
+       if (typeContour==10)
+       {
+               manModelContour = new manualContourModelPolygon();
+       }
 
        return manModelContour;
 }
@@ -397,7 +414,7 @@ std::vector<std::string> KernelManagerContour::getOutlinesNameAtInstant(std::vec
        Instant instant(&tempvector);
        std::vector<ContourThing**> vectcont = modelManager->getOutlinesAtInstant( &instant );
        std::vector<std::string> 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());
        }
@@ -408,9 +425,9 @@ std::vector<ContourThing**> KernelManagerContour::getOutlinesAtInstant(Instant*
        return modelManager->getOutlinesAtInstant(instant);
 }
 
-std::vector<manualContourModel*> KernelManagerContour::ExploseEachModel( std::vector<manualContourModel*> lstManConMod ){
-       std::vector<manualContourModel*> lstTmp;
-       std::vector<manualContourModel*> lstResult;
+std::vector<manualBaseModel*> KernelManagerContour::ExploseEachModel( std::vector<manualBaseModel*> lstManConMod ){
+       std::vector<manualBaseModel*> lstTmp;
+       std::vector<manualBaseModel*> lstResult;
        int j,jSize;
        int i,iSize=lstManConMod.size();
        for (i=0;i<iSize;i++)
@@ -433,7 +450,7 @@ void KernelManagerContour::getConceptsInformation(std::vector<std::string>& conc
 vtkImageData* KernelManagerContour::getImageAtInstant(std::vector<int> inst){
        int index = inst[5]-1;
 
-       if(index < vectimages.size()&&index!=_currentIndex){
+       if(index < (int)(vectimages.size())&&index!=_currentIndex){
                _currentIndex=index;
                return vectimages[index];
        }
@@ -446,4 +463,6 @@ std::string KernelManagerContour::getCurrentFileName(){
 
 void KernelManagerContour::setCurrentFileName(std::string filenam){
        this->filename = filenam;
-}
\ No newline at end of file
+}
+
+