X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2Fkernel_ManagerContour_NDimensions%2FKernelManagerContour.h;h=6fd61ce41519791247b374f83ffc84dc272c1694;hb=e4a8d645b4aec3835d1b51a1f8d8f68a9da6a047;hp=ec6cd2131e83351a170d28231c7077b4c65f673a;hpb=1105d4fa1829853319070b3d5144eec7e12b246b;p=creaContours.git diff --git a/lib/kernel_ManagerContour_NDimensions/KernelManagerContour.h b/lib/kernel_ManagerContour_NDimensions/KernelManagerContour.h index ec6cd21..6fd61ce 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,25 @@ //------------------------------------------------------------------------------------------------------------ // 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{ @@ -22,7 +57,6 @@ class KernelManagerContour{ // Constructors & Destructors //------------------------------------------------------------------------------------------------------------ public: - /** ** With this constructor the setVectImages and initialize environment must be called **/ @@ -31,117 +65,92 @@ 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 changeImage(int id, vtkImageData *img); + 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(); - bool IsPartOfStaticList(std::string keyName ); - void deleteCModel(std::string theKeyName); - void removeAllOutlines(); - //void setInstance(theInstant); - std::vector getActualInstantOutlines(); - int getNamesWrappingSize(); - std::string getNameWrapping(int i); - 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); - bool onUndo(std::string& filename); - bool onUndoSaveFile(std::string& filename); - std::string saveState(); - void changeContourOfManager(std::string keyName, Instant *instant); - void resetAppend(); - std::string onSpreadAdd( std::vector *vecX, std::vector *vecY, std::vector *vecZ, std::vector instants); - 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(); - std::vector getOutlinesNameAtInstant(std::vector tempvector); - 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; - - ImageSourceThing * imageSource; - + std::vector vectimages; + std::vector > vectimagesSpacing; + ImageSourceThing *imageSource; //Instant * _actualInstant; //Temporary attribute should be removed - OutlineModelManager * modelManager; - - int inredo; - int inundo; - int _currentIndex; - std::string stundoredo; - - ContourPropagation* _contourPropagation; - - bool isInitContourPropagation(); - - OutlineModelManager* getOutlineModelManager(); + OutlineModelManager *modelManager; + std::string filename; + int inredo; + int inundo; + int _currentIndex; + std::string stundoredo; + std::string _datadir; + ContourPropagation *_contourPropagation; + OutlineModelManager *getOutlineModelManager(); }; #endif