]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/include/wxSurfaceSTLWidget.h
2413 creaMaracasVisu Feature New Normal New blackBox BitmapButtonIcon and fix the...
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / include / wxSurfaceSTLWidget.h
1 /*# ---------------------------------------------------------------------
2 #
3 # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
4 #                        pour la Sant�)
5 # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
6 # Previous Authors : Laurent Guigues, Jean-Pierre Roux
7 # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
8 #
9 #  This software is governed by the CeCILL-B license under French law and
10 #  abiding by the rules of distribution of free software. You can  use,
11 #  modify and/ or redistribute the software under the terms of the CeCILL-B
12 #  license as circulated by CEA, CNRS and INRIA at the following URL
13 #  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
14 #  or in the file LICENSE.txt.
15 #
16 #  As a counterpart to the access to the source code and  rights to copy,
17 #  modify and redistribute granted by the license, users are provided only
18 #  with a limited warranty  and the software's author,  the holder of the
19 #  economic rights,  and the successive licensors  have only  limited
20 #  liability.
21 #
22 #  The fact that you are presently reading this means that you have had
23 #  knowledge of the CeCILL-B license and that you accept its terms.
24 # ------------------------------------------------------------------------ */
25
26 /*=========================================================================
27
28   Program:   wxMaracas
29   Module:    $RCSfile: wxSurfaceSTLWidget.h,v $
30   Language:  C++
31   Date:      $Date: 2012/11/15 14:15:18 $
32   Version:   $Revision: 1.2 $
33
34   Copyright: (c) 2002, 2003
35   License:
36   
37      This software is distributed WITHOUT ANY WARRANTY; without even 
38      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
39      PURPOSE.  See the above copyright notice for more information.
40
41 =========================================================================*/
42 #ifndef __WX__3D__SURF__STL__WDG__
43 #define __WX__3D__SURF__STL__WDG__
44
45 //#include "wxVTKRenderWindowInteractor.h"
46 #include "vtk3DSurfaceSTLWidget.h"
47 #include <wx/wx.h>
48 #include <wx/slider.h>
49 #include <kernel/marInterface.h>
50
51 //----------------------------------------------------------------------------
52 /**
53  * \brief Panel class composed of a vtk renderwindow with double click available
54  * and add some buttons
55  */
56 class wxSurfaceSTLWidget : public wxPanel
57 {
58 public:
59     enum ToolBarIDs
60     {
61         ID_TOOL_BAR = 300,
62         ID_BUTTON_NEW_AXIS,
63         ID_BUTTON_DELETE_AXIS,
64         ID_CHECKBOX_ISOVISIBLE,
65         ID_SLIDER_ISOVAL,
66         ID_SLIDER_OPACITY,
67         ID_BUTTON_CHOOSE_COLOR,
68         ID_BUTTON_VESSELS_CONSTRUCTION,
69         ID_BUTTON_3D_CUTTER,
70         ID_BUTTON_EXPORT_STL,
71         ID_CHECKBOX_STL_VISIBLE,
72         ID_SLIDER_STL_THRESH,
73                 ID_CHECKBOX_INVERT_SLICE_ORDER,
74     };
75     enum WidgetsIDs
76     {
77         ID_WORLD3D = 800
78     };
79
80 public:
81
82     wxSurfaceSTLWidget(
83         wxWindow* parent,
84         wxWindowID id = -1,
85         const wxPoint& pos = wxDefaultPosition,
86         const wxSize& size = wxDefaultSize,
87         long style = wxScrolledWindowStyle,
88         const wxString& name = wxPanelNameStr
89         );
90
91     ~wxSurfaceSTLWidget( );
92
93
94         //vessels toolbar
95     void OnVesselConstruction(wxCommandEvent& event);
96     void On3DCutter(wxCommandEvent& event);
97     void OnExportAsSTL(wxCommandEvent& event);
98
99     //surface
100     void OnChooseSurfaceColor(wxCommandEvent& event);
101     void OnIsoVisible(wxCommandEvent& event);
102     void OnSTLSurfaceVisible(wxCommandEvent& event);
103
104     //slider isovalue
105     void OnSliderIsovalueScrollThumbrelease(wxScrollEvent& event);
106
107     //slider opacity
108     void OnSliderOpacityScrollThumbrelease(wxScrollEvent& event);
109
110         // Invers lecture order
111    void OnInvertSliceOrder(wxCommandEvent& WXUNUSED(event));
112
113
114     void OnSliderSTLSurfaceValueThumbrelease(wxScrollEvent& event);
115
116     void ShowMARACASData( marInterface* mar );
117
118     wxToolBar   *_axis_tb;
119     wxToolBar   *_vessels_tb;
120     wxCheckBox  *_isoVisible;
121     wxSlider    *_isoValue;
122     wxSlider    *_opacity;
123     wxButton    *_surface_color; //mat
124     wxCheckBox  *_stlIntSurfaceVisible;
125     wxCheckBox  *_stlExtSurfaceVisible;
126     wxSlider    *_stlSurfaceValue;
127     wxCheckBox  *_chkInvertSliceOrder;
128
129     marInterface* _mar;
130     
131     vtk3DSurfaceSTLWidget *_3DWorldSTL;
132
133     DECLARE_EVENT_TABLE( );
134 };
135
136 #endif // __WX__3D__SURF__STL__WDG__