wxMaracas_ManualTree_MPRDlg.cxx
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "wxMaracas_ManualTree_MPRDlg.h"
00019 #include <wx/splitter.h>
00020
00021
00022
00023
00024
00025
00026 wxMaracas_ManualTree_MPRDlg::wxMaracas_ManualTree_MPRDlg( wxWindow* parent, marImageData* marimagedata,double voxelSize)
00027 : wxDialog( parent, -1,_T("Manual Axis"),wxDefaultPosition,wxDefaultSize,wxCAPTION|wxRESIZE_BORDER | wxMAXIMIZE_BOX )
00028 {
00029
00030 Maximize(true);
00031 _parent=parent;
00032 wxSplitterWindow *splitPanel = new wxSplitterWindow(this ,-1);
00033 _manualTreeMPR = new wxMaracas_ManualTree_MPR(splitPanel,marimagedata,voxelSize);
00034 wxPanel *panel = new wxPanel (splitPanel, -1);
00035
00036 wxButton *btnAccept = new wxButton (panel, wxID_OK, _T("Accept"));
00037 wxButton *btnCancel = new wxButton (panel, wxID_CANCEL, _T("Cancel"));
00038
00039 wxBoxSizer* sizerH1 = new wxBoxSizer( wxHORIZONTAL );
00040 sizerH1->Add(btnAccept , 1, wxALL|wxEXPAND, 0);
00041 sizerH1->Add(btnCancel , 1, wxALL|wxEXPAND, 0);
00042 panel->SetAutoLayout(true);
00043 panel->SetSizer(sizerH1);
00044 Layout();
00045
00046
00047
00048
00049 splitPanel->SplitHorizontally(_manualTreeMPR,panel );
00050 splitPanel->SetMinimumPaneSize(50);
00051
00052 wxBoxSizer* sizer = new wxBoxSizer( wxVERTICAL );
00053 sizer->Add(splitPanel , 1, wxALL|wxEXPAND, 0);
00054 SetAutoLayout(true);
00055 SetSizer(sizer);
00056 Layout();
00057
00058
00059 }
00060
00061
00062
00063 wxMaracas_ManualTree_MPRDlg::~wxMaracas_ManualTree_MPRDlg()
00064 {
00065 }
00066
00067
00068
00069 void wxMaracas_ManualTree_MPRDlg::ConfigureVTK()
00070 {
00071 wxBusyCursor wait;
00072 _manualTreeMPR->ConfigureVTK();
00073 }
00074
00075
00076
00077 void wxMaracas_ManualTree_MPRDlg::SetMarAxis( marAxis *maraxis )
00078 {
00079 _maraxis=maraxis;
00080 }
00081
00082
00083 bool wxMaracas_ManualTree_MPRDlg::ExportPoints()
00084 {
00085 bool ok=false;
00086 double t,x,y,z;
00087 manualContourModel *manualcontourmodel = _manualTreeMPR->GetManualContourModel();
00088
00089 double spc[3];
00090 _manualTreeMPR->GetVtkMPRBaseData()->GetImageData()->GetSpacing(spc);
00091
00092 int sizeLstPoints = manualcontourmodel->GetSizeLstPoints();
00093
00094 if ( sizeLstPoints>=2 ){
00095 manualcontourmodel->UpdateSpline();
00096 int i,max=200;
00097
00098
00099 for (i=0;i<max;i++)
00100 {
00101
00102
00103 manualcontourmodel->GetSpline_i_Point(i,&x,&y,&z);
00104
00105 x=x*spc[0];
00106 y=y*spc[1];
00107 z=z*spc[2];
00108 _maraxis->AddPointToList(x, y, z,100);
00109 }
00110 ok=true;
00111 }
00112 return ok;
00113 }
00114
00115
00116
00117
00118
00119
00120
00121