X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2Fkernel_ManagerContour_NDimensions%2FKernelManagerContour.h;h=029ecd9a6ec1c21027028ce7f0f641cd7080a3ad;hb=refs%2Fheads%2Fvtk9itk4wx3-macos;hp=296fbca1abe004b4778faa32ed2463bf81e990cb;hpb=b935f54c82b090852001860eb12f5433779c22c4;p=creaContours.git diff --git a/lib/kernel_ManagerContour_NDimensions/KernelManagerContour.h b/lib/kernel_ManagerContour_NDimensions/KernelManagerContour.h index 296fbca..029ecd9 100644 --- a/lib/kernel_ManagerContour_NDimensions/KernelManagerContour.h +++ b/lib/kernel_ManagerContour_NDimensions/KernelManagerContour.h @@ -1,3 +1,28 @@ +/*# --------------------------------------------------------------------- +# +# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image +# pour la Sant�) +# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton +# Previous Authors : Laurent Guigues, Jean-Pierre Roux +# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil +# +# This software is governed by the CeCILL-B license under French law and +# abiding by the rules of distribution of free software. You can use, +# modify and/ or redistribute the software under the terms of the CeCILL-B +# license as circulated by CEA, CNRS and INRIA at the following URL +# http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +# or in the file LICENSE.txt. +# +# As a counterpart to the access to the source code and rights to copy, +# modify and redistribute granted by the license, users are provided only +# with a limited warranty and the software's author, the holder of the +# economic rights, and the successive licensors have only limited +# liability. +# +# The fact that you are presently reading this means that you have had +# knowledge of the CeCILL-B license and that you accept its terms. +# ------------------------------------------------------------------------ */ + #ifndef __KERNELMANAGERCONTOUR__ #define __KERNELMANAGERCONTOUR__ @@ -6,15 +31,24 @@ //------------------------------------------------------------------------------------------------------------ // Includes //------------------------------------------------------------------------------------------------------------ -#include "ImageSourceThing.h" -#include "ImageSectionThing.h" -#include "AxeThing.h" -#include "ContourThing.h" +//#include "ImageSourceThing.h" +//#include "ImageSectionThing.h" +//#include "AxeThing.h" +//#include "ContourThing.h" #include "OutlineModelManager.h" #include "OutlineModelBuilder.h" - +#include "time.h" +#ifdef ParserOsirix_BUILD +#include "OsirixParser.h" +#endif #include "ContourPropagation.h" +#include "manualContourModel.h" +#include "manualContourModelCircle.h" +#include "manualContourModelLine.h" +#include "manualContourModelRoi.h" +#include "manualContourModelPolygon.h" + #include class KernelManagerContour{ @@ -32,34 +66,37 @@ public: ** If images are available before the construction of the kernelManager this method should be used ** it sets the vector images and initializes the environment **/ - KernelManagerContour(std::vector images); + KernelManagerContour(std::vector images,std::string datadir,std::string tmpdir); ~KernelManagerContour(); std::vector getVectImages(); void setVectImages(std::vector vectimg); + void GetSpacing(double *vecspc, int iImage); + + /** ** This method returns the source of the image data selected by the user. */ vtkImageData* getSourceImage(); - - void initializeEnvironment(); + + void initializeEnvironment(std::string datadir); /** ** This methods connect the event in the class interfNewContourMenu with the world of the appli - **/ + **/ - std::string createOutline(manualContourModel * manModelContour,std::vector instantVector); + std::string createOutline(manualBaseModel * manModelContour,std::vector instantVector); ///////////////////////////////// std::string intToString(int num); std::vector GetLstNameThingsStatic(); - void SaveThingName(FILE* pFile, std::string name ); + void SaveThingName(FILE* pFile, FILE *pFileData, std::string name ); std::vector GetLstNameThings(); @@ -80,10 +117,10 @@ public: void setInstant(Instant* theInstant); void setInstant(std::vector vectInstant); std::string createCopyContourOf ( std::string anExistingKName, std::vector &instantNoTouchData); - + Instant * getCurrentInstant(); - manualContourModel* getOutlineByKeyName(std::string cloneName); + manualBaseModel* getOutlineByKeyName(std::string cloneName); bool onRedo(std::string& filename); @@ -101,9 +138,22 @@ public: void getMaxMinZ(double *minZ,double *maxZ); - manualContourModel* GetPoints(int z,int type, std::vector* vecCtrlPointX,std::vector* vecCtrlPointY,std::vector* vecCtrlPointZ, std::string& theName,int typeofcontour, std::vector tempVector); - - manualContourModel* factoryManualContourModel(int typeContour); + manualBaseModel* GetPoints(int z,int type, std::vector* vecCtrlPointX,std::vector* vecCtrlPointY,std::vector* vecCtrlPointZ, std::string& theName,int typeofcontour, std::vector tempVector); + + // + // Method which creates the model associated with the type in parameter. The possible contour types are: + // 0-spline + // 1-spline + // 2-rectangle + // 3-circle + // 4-BullEye + // 5-BullEyeSector + // 6-Line + // 7-Points + // NOTE: The view and the controler are created in the wxVtkBaseView_SceneManager class, configureViewControlTo method + // @param typeContour - int + // @return manualBaseModel - Model created based on the type + manualBaseModel* factoryManualContourModel(int typeContour); void CalculeSplinePropagation(); @@ -111,38 +161,44 @@ public: std::vector getOutlinesAtInstant(Instant* instant ); - std::vector ExploseEachModel( std::vector lstManConMod ); + std::vector ExploseEachModel( std::vector lstManConMod ); + - void getConceptsInformation(std::vector& conceptNameVect, std::vector& conceptSizeVect); vtkImageData* getImageAtInstant(std::vector inst); - + //------------------------------------------------------------------------------------------------------------ // Constants //------------------------------------------------------------------------------------------------------------ -private: + void setCurrentFileName(std::string filenam); + std::string getCurrentFileName(); + + std::string parseOsirixFile(std::string filename); +private: //------------------------------------------------------------------------------------------------------------ // Attributes //------------------------------------------------------------------------------------------------------------ - std::vector vectimages; + std::vector vectimages; + std::vector > vectimagesSpacing; - ImageSourceThing * imageSource; + ImageSourceThing *imageSource; //Instant * _actualInstant; //Temporary attribute should be removed - OutlineModelManager * modelManager; + OutlineModelManager *modelManager; - int inredo; - int inundo; - int _currentIndex; - std::string stundoredo; + std::string filename; - ContourPropagation* _contourPropagation; + int inredo; + int inundo; + int _currentIndex; + std::string stundoredo; + std::string _datadir; - bool isInitContourPropagation(); + ContourPropagation *_contourPropagation; - OutlineModelManager* getOutlineModelManager(); + OutlineModelManager *getOutlineModelManager(); }; #endif