manualViewBaseContour.h

Go to the documentation of this file.
00001 #ifndef manualViewBaseContour_h
00002 #define manualViewBaseContour_h
00003 
00004 #include "vtkRenderWindow.h"
00005 
00006 #include "vtkRenderer.h"
00007 #include "vtkRenderWindowInteractor.h" //extremely important with VC++ don't remove !
00008 #include "vtkCommand.h"
00009 #include "vtkPolyData.h"
00010 #include "vtkCellArray.h"
00011 #include "vtkPolyDataMapper.h"
00012 #include "vtkInteractorObserver.h"
00013 #include "vtkInteractorStyleImage.h"
00014 #include <vtkKochanekSpline.h>
00015 
00016 #include <vtkActor.h>
00017 #include <vtkProperty.h>
00018 #include <vtkCellArray.h>
00019 #include <vtkRenderer.h>
00020 #include <vtkCoordinate.h>
00021 #include <vtkTextProperty.h>
00022 #include <vtkTextActor.h>
00023 #include <vtkProperty2D.h>
00024 #include <vtkPointPicker.h>
00025 //#include "widgets/UtilVtk3DGeometriSelection.h"
00026 #include "UtilVtk3DGeometriSelection.h"
00027 #include <vtkCellPicker.h> 
00028 
00029 
00030 #include <vtkCamera.h> 
00031 #include <vtkPolyLine.h>
00032 #include <vtkDataSetMapper.h>
00033 #include <vtkUnstructuredGrid.h>
00034 
00035 #include "wxVTKRenderWindowInteractor.h"
00036 
00037 
00038 //--
00039 
00040 #include <vector>
00041 #include "wxVtkBaseView.h"
00042 #include "marTypes.h"
00043 
00044 #include "manualViewPoint.h"
00045 #include "manualContourModel.h"
00046 
00047 // ----------------------------------------------------------------------------
00048 // ----------------------------------------------------------------------------
00049 // ----------------------------------------------------------------------------
00050 
00051 
00052 class creaMaracasVisu_EXPORT manualViewBaseContour{
00053 public:
00054         manualViewBaseContour();
00055         virtual ~manualViewBaseContour();
00056 
00057         virtual int GetType();
00058         virtual void Save(FILE *pFile);
00059         virtual void Open(FILE *pFile);
00060 
00061         void    AddPoint();
00062         void    AddPoint( manualViewPoint * manualViewPoint );
00063         void    InsertPoint(int id);
00064         void    DeleteContour();
00065         void    DeletePoint(int x, int y,int z);
00066         virtual void    DeletePoint(int id);
00067 
00068         virtual void    UpdateViewPoint(int id);
00069         virtual void    UpdateViewPoints();
00070 
00071         void    SetSelected(bool selected);
00072         void    SetPosibleSelected(bool posibleSelected);
00073         bool    GetSelected();
00074         bool    GetPosibleSelected();
00075         void    DeleteSelectedPoints();
00076         bool    GetEditable();
00077         void    SetEditable( bool * condition );
00078 
00079 
00080 
00081         virtual int             GetIdPoint(int x, int y, int z);
00082 
00083         void    SelectPoint(int i,bool select);
00084         void    SelectLstPoints();
00085         void    SelectAllPoints(bool select);
00086         virtual int             SelectPosiblePoint(int x, int y ,int z);
00087         bool    SelectPosibleContour(int x, int y ,int z);
00088         void    SelectAllPossibleSelected(bool select);
00089         void    SetPointSelected(int id,bool select);
00090         void    SetPointPosibleSelected(int id,bool select);
00091         void    SetIfViewControlPoints(bool ifShow);
00092         bool    GetIfViewControlPoints();
00093         
00094         void    UnSelectPoint(int i);
00095         void    UnSelectLstPoints();
00096         void    UnSelectAllPoints();
00097 
00098         void    SetModel(manualContourModel *manContModel);
00099         void    SetWxVtkBaseView(wxVtkBaseView *wxvtkbaseview);
00100 
00101         virtual void    Refresh();
00102         int             GetNumberOfPoints();                                            // ??? 
00103         //int           GetNumberOfPointsSpline();                              //JSTG 25-02-08 In ContourModel is the same method 
00104         //void  SetNumberOfPointsSpline(int size);                      //JSTG 25-02-08 In ContourModel is the same method 
00105 
00106         void    CreateNewContour();
00107         double* GetVectorPointsXManualContour();
00108         double* GetVectorPointsYManualContour();
00109         double* GetVectorPointsZManualContour();
00110 
00111         virtual bool    ifTouchContour(int x,int y, int z);
00112         void    UpdateColorActor();
00113 
00114         void    SetRange(double range);
00115         double          GetRange();
00116         void    SetZ(int z);
00117         int             GetZ();
00118 
00119         wxVtkBaseView *GetWxVtkBaseView();
00120 
00121         virtual void InitMove(int x, int y, int z);
00122         virtual void MoveContour(int x, int y, int z);
00123         virtual void MoveContour(int horizontalUnits, int verticalUnits );
00124         virtual void GetMinMax( double &minX,double &minY, double &minZ, double &maxX, double &maxY, double &maxZ );
00125         virtual void TransfromCoordViewWorld(double &X, double &Y, double &Z, int type=2);
00126 
00127         void    ClearContour();
00128         virtual void    ClearPoint(int id);
00129 
00130         void    SetVisible(bool ok);
00131         void    SetShowText(bool ok);
00132 
00133         void    GetSpacing(double spc[3]);
00134         void    SetSpacing(double spc[3]);
00135 
00136         void    SetColorNormalContour(double r, double g, double b);
00137         void    GetColorNormalContour(double &r, double &g, double &b);
00138         void    SetColorEditContour(double r, double g, double b);
00139         void    GetColorEditContour(double &r, double &g, double &b);
00140         void    SetColorSelectContour(double r, double g, double b);
00141         void    GetColorSelectContour(double &r, double &g, double &b);
00142         
00143         //Addinging and removing from visualization specific actors included in the viewer contour
00144         void    AddCompleteContourActor( bool ifControlPoints = false);
00145         void    RemoveCompleteContourActor();
00146         virtual void    AddSplineActor();
00147         virtual void    RemoveSplineActor();
00148         void    AddControlPoints();
00149         void    RemoveControlPoints();  
00150         void    AddTextActor();
00151         void    RemoveTextActor();
00152 
00153         virtual manualViewBaseContour * Clone();
00154                         void                                    CopyAttributesTo( manualViewBaseContour *cloneObject );
00155         virtual void                                    RefreshContour();
00156                         void                                    SetWidthLine(double width);
00157                         double                                  GetWidthLine();
00158 
00159         virtual void                    ConstructVTKObjects();
00160 
00161 private:
00162         double                                                          _range;
00163 
00164         wxVtkBaseView                                   *_wxvtkbaseview;
00165         bool                                                    _selected;
00166         bool                                                    *_editable;
00167         bool                                                    _posibleSelected;
00168         bool                                                    _viewControlPoints;
00169 
00170 
00171         vtkPolyData                                             *_pd;
00172         vtkActor                                                *_contourVtkActor;
00173         vtkPolyDataMapper                               *_bboxMapper;
00174 
00175         double                                                  _coulorEdit_r;
00176         double                                                  _coulorEdit_g;
00177         double                                                  _coulorEdit_b;
00178         double                                                  _coulorNormal_r;
00179         double                                                  _coulorNormal_g;
00180         double                                                  _coulorNormal_b;
00181         double                                                  _coulorSelection_r;
00182         double                                                  _coulorSelection_g;
00183         double                                                  _coulorSelection_b;
00184         double                                                  _widthline;
00185 
00186         void                    DeleteVtkObjects();
00187         virtual void    RefreshText();
00188 
00189 
00190 protected:
00191 
00192         // text
00193         bool                                                    _show_text;
00194         int                                                             _id_viewPoint_for_text;
00195         vtkTextActor                                    *_textActor;
00196         manualContourModel                              *_manContModel;
00197         vtkPoints                                               *_pts;
00198 // JSTG 25-02-08 --------------------------------------------
00199         int                                                             _sizePointsContour;
00200 //-----------------------------------------------------------
00201         std::vector<manualViewPoint*>   _lstViewPoints;
00202         double                                                  _spc[3];
00203 
00204 };
00205 
00206 
00207 #endif // manualViewBaseContour_h

Generated on Wed Jul 29 16:35:28 2009 for creaMaracasVisu_lib by  doxygen 1.5.3