//------------------------------------------------------------------------------------------------------------
// 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 <vtkImageChangeInformation.h>
class KernelManagerContour{
** 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<vtkImageData*> images);
+ KernelManagerContour(std::vector<vtkImageData*> images,std::string datadir,std::string tmpdir);
~KernelManagerContour();
std::vector<vtkImageData*> getVectImages();
*/
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<int> instantVector);
+ std::string createOutline(manualBaseModel * manModelContour,std::vector<int> instantVector);
/////////////////////////////////
std::string intToString(int num);
std::vector<std::string> GetLstNameThingsStatic();
- void SaveThingName(FILE* pFile, std::string name );
+ void SaveThingName(FILE* pFile, FILE *pFileData, std::string name );
std::vector<std::string> GetLstNameThings();
void setInstant(Instant* theInstant);
void setInstant(std::vector<int> vectInstant);
std::string createCopyContourOf ( std::string anExistingKName, std::vector<int> &instantNoTouchData);
-
+
Instant * getCurrentInstant();
- manualContourModel* getOutlineByKeyName(std::string cloneName);
+ manualBaseModel* getOutlineByKeyName(std::string cloneName);
bool onRedo(std::string& filename);
void getMaxMinZ(double *minZ,double *maxZ);
- manualContourModel* 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);
-
- manualContourModel* factoryManualContourModel(int typeContour);
+ manualBaseModel* 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);
+
+ //
+ // 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<ContourThing**> getOutlinesAtInstant(Instant* instant );
- std::vector<manualContourModel*> ExploseEachModel( std::vector<manualContourModel*> lstManConMod );
+ std::vector<manualBaseModel*> ExploseEachModel( std::vector<manualBaseModel*> lstManConMod );
+
-
void getConceptsInformation(std::vector<std::string>& conceptNameVect, std::vector<int>& conceptSizeVect);
vtkImageData* getImageAtInstant(std::vector<int> inst);
-
+
//------------------------------------------------------------------------------------------------------------
// Constants
//------------------------------------------------------------------------------------------------------------
-private:
+ void setCurrentFileName(std::string filenam);
+ std::string getCurrentFileName();
+
+ std::string parseOsirixFile(std::string filename);
+private:
//------------------------------------------------------------------------------------------------------------
// Attributes
//------------------------------------------------------------------------------------------------------------
- std::vector<vtkImageData*> vectimages;
+ std::vector<vtkImageData*> vectimages;
+ std::vector<std::vector<double> > 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