ContourCrownWidget.h
Go to the documentation of this file.00001 #ifndef __ContourCrownWidget_h_INCLUDED_H__
00002 #define __ContourCrownWidget_h_INCLUDED_H__
00003
00004 #include "marTypes.h"
00005 #include "manualContourControler.h"
00006 #include "manualContourModel.h"
00007 #include "manualViewContour.h"
00008 #include "manualRoiControler.h"
00009 #include "manualViewRoi.h"
00010 #include "mBarRange.h"
00011
00012
00013 #include "ContourPropagation.h"
00014
00015
00016
00017
00018
00019 class creaMaracasVisu_EXPORT wxMaracasCoutourTool : public wxPanel
00020 {
00021 public:
00022 wxMaracasCoutourTool( wxWindow *parent, wxVtkBaseView *wxvtkbaseview, vtkImageData* imagedata);
00023 ~wxMaracasCoutourTool();
00024 void OnContourA(wxCommandEvent &event);
00025 void OnContourB(wxCommandEvent &event);
00026 void OnContourAB(wxCommandEvent &event);
00027 void ConfigureVTK();
00028
00029 void GetValuesInsideCrown( std::vector<double> *pLstValue,
00030 std::vector<double> *pLstValuePosX,
00031 std::vector<double> *pLstValuePosY,
00032 std::vector<double> *pLstValuePosZ);
00033
00034 wxVtkBaseView *GetWxVtkBaseView();
00035
00036 vtkImageData *GetVtkImageValueResult();
00037 vtkImageData *GetVtkImageMaskResult();
00038
00039
00040 void GetSplinePoints ( std::vector<double> *pLstContourX,
00041 std::vector<double> *pLstContourY,
00042 std::vector<double> *pLstContourZ );
00043
00044 void SetControlPoints ( std::vector<double> *InVectorX,
00045 std::vector<double> *InVectorY,
00046 std::vector<double> *InVectorZ );
00047
00048 void OnSaveContour ( wxCommandEvent &event );
00049 void OnSaveControlPoints( wxCommandEvent &event );
00050
00051 void EreaseLastContour ( wxCommandEvent& event );
00052 void EreaseLastCP ( wxCommandEvent& event );
00053
00054
00055 private:
00056 mBarRange *mbarrange;
00057
00058 vtkImageData *imagedata;
00059 vtkImageData *imagedataValueResult;
00060 vtkImageData *imagedataMaskResult;
00061 wxVtkBaseView *wxvtkbaseview;
00062
00063
00064 std::vector<double> _tempCX;
00065 std::vector<double> _tempCY;
00066 std::vector<int> _tempCZ;
00067 std::vector<int> _SizesC;
00068 std::vector<double> _tempCPX;
00069 std::vector<double> _tempCPY;
00070 std::vector<int> _tempCPZ;
00071 std::vector<int> _SizesCP;
00072 std::vector<double> *pControlVectorX;
00073 std::vector<double> *pControlVectorY;
00074 std::vector<double> *pControlVectorZ;
00075 int _zz;
00076 manualPoint *_mpoint;
00077
00078
00079 ContourPropagation *_contprop;
00080
00081
00082 manualContourControler *_manContourControl_1;
00083 manualContourModel *_mContourModel_1;
00084 manualViewContour *_mViewContour_1;
00085
00086 manualContourControler *_manContourControl_2;
00087 manualContourModel *_mContourModel_2;
00088 manualViewContour *_mViewContour_2;
00089
00090 manualRoiControler *_manRoiControl;
00091 manualContourModel *_mContourModel;
00092 manualViewRoi *_mViewRoi;
00093
00094
00095 bool isInside(int x, int y);
00096 void GetMinMaxPoint(int *minPoint, int *maxPoint);
00097 void GetMinMaxPoint(int *minPoint,
00098 int *maxPoint,
00099 manualViewBaseContour *manualviewbaseecontour,
00100 manualContourModel *manualcontourmodel );
00101 int AnalisisContourInside( int x,
00102 int y,
00103 manualViewBaseContour *manualviewbaseecontour,
00104 manualContourModel *manualcontourmodel );
00105 double GetDataValue(int x, int y);
00106 void ResetImageResult();
00107 void PutVtkImageDataResultValue( int x, int y, double value );
00108 void InitVtkImagesResult();
00109
00110
00111 };
00112
00113
00114 #endif // __ContourCrownWidget_h_INCLUDED_H__
00115