]> Creatis software - creaContours.git/commitdiff
*** empty log message ***
authordonadio <donadio>
Tue, 3 Mar 2009 09:56:23 +0000 (09:56 +0000)
committerdonadio <donadio>
Tue, 3 Mar 2009 09:56:23 +0000 (09:56 +0000)
14 files changed:
data/Icons/Line.png [new file with mode: 0644]
data/Icons/Mirror.png [new file with mode: 0644]
lib/Interface_Icons_NDimensions/interfMainPanel.cxx
lib/Interface_Icons_NDimensions/interfMainPanel.h
lib/Interface_Icons_NDimensions/interfNewContourMenu.cxx
lib/Interface_Icons_NDimensions/interfNewContourMenu.h
lib/Interface_Icons_NDimensions/interfToolsMenu.cxx
lib/Interface_Icons_NDimensions/interfToolsMenu.h
lib/Interface_Icons_NDimensions/interfToolsPanels.cxx
lib/Interface_Icons_NDimensions/interfToolsPanels.h
lib/Interface_ManagerContour_NDimensions/wxContourMainFrame.cxx
lib/Interface_ManagerContour_NDimensions/wxContourMainFrame.h
lib/Interface_ManagerContour_NDimensions/wxVtkBaseView_SceneManager.cxx
lib/kernel_ManagerContour_NDimensions/KernelManagerContour.cxx

diff --git a/data/Icons/Line.png b/data/Icons/Line.png
new file mode 100644 (file)
index 0000000..5e052b3
Binary files /dev/null and b/data/Icons/Line.png differ
diff --git a/data/Icons/Mirror.png b/data/Icons/Mirror.png
new file mode 100644 (file)
index 0000000..b8c892e
Binary files /dev/null and b/data/Icons/Mirror.png differ
index 1ad6cb422b7ae2f87e48920c3dc1b84cf5c74d59..d5a9e52c9401c97e1a3d99db51aa37c35b3d7084 100644 (file)
@@ -29,6 +29,7 @@ interfMainPanel::interfMainPanel(wxWindow * parent, int sizex, int sizey, wxEvtH
        spreadPanel = NULL;
        infoWin=NULL;
        informationPanel=NULL;
+       mirrorPanel=NULL;
        
        splitterwindow = new wxSplitterWindow(this,-1, wxDefaultPosition, wxSize(sizex, sizey), wxSP_3DSASH, wxString(_T("")));
        
@@ -396,6 +397,10 @@ void interfMainPanel::onCreateContourCircle( ){
        wxContourMainFrame::getInstance()->showAxis(false);
     wxContourMainFrame::getInstance()->onCreateContourCircle();
 }
+void interfMainPanel::onCreateContourLine( ){
+       wxContourMainFrame::getInstance()->showAxis(false);
+    wxContourMainFrame::getInstance()->onCreateContourLine();
+}
 void interfMainPanel::onCreateContoursBullEye(wxPanel* panBull){
        wxContourMainFrame::getInstance()->showAxis(false);
        wxContourMainFrame::getInstance()->onCreateContourBullEye(panBull);
@@ -439,7 +444,8 @@ vtkImageData* interfMainPanel::getImageData(){
        return wxContourMainFrame::getInstance()->getImageData();
 }
 
-void interfMainPanel::onSegmentationOneSlice(int isovalue,int sampling,int method){
+void interfMainPanel::onSegmentationOneSlice(int isovalue,int sampling,int method)
+{
        wxContourMainFrame::getInstance()->onSegmentationOneSlice(isovalue, sampling, method);
 }
 
@@ -455,6 +461,11 @@ void interfMainPanel::onSegmentationAllSlice(int minZ,int maxZ,int isovalue,int
        wxContourMainFrame::getInstance()->onSegmentationAllSlice(minZ, maxZ,isovalue,sampling,method);
 }
 
+void interfMainPanel::onMirror()
+{
+       wxContourMainFrame::getInstance()->onMirror();
+}
+
 void interfMainPanel::setLabelSegmentationPanelVTK(wxString tmpString){        
     ((interfSegmentationPanelVTK*)segmentationPanel)->setLabel(tmpString);
 }
@@ -673,3 +684,23 @@ wxString interfMainPanel::getCellValue(int j,int i){
 void interfMainPanel::onSnakePressed(){
     wxContourMainFrame::getInstance()->onSnakePressed();
 }
+
+void interfMainPanel::onMirrorPressed(){
+    if(mirrorPanel==NULL){
+
+               mirrorPanel = new wxPanel(interfMainPanel::getInstance()->getInfoPanel(), -1, wxDefaultPosition, wxDefaultSize, wxBORDER_STATIC, wxString(_T("")));
+               wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1);    
+               mirrorPanel->SetSizer(flexsizer, true);
+               mirrorPanel->SetAutoLayout( true );     
+               panelMirror = new interfMirrorPanel(mirrorPanel);
+       
+               wxStaticText* stattext = new wxStaticText(mirrorPanel, -1, wxString(_T("   Mirroring Tool   ")), wxDefaultPosition,
+                       wxDefaultSize, wxALIGN_CENTRE|wxBORDER_SIMPLE|wxFULL_REPAINT_ON_RESIZE, wxString(_T("")));
+
+               flexsizer->Add(stattext,wxALIGN_CENTER | wxALIGN_CENTRE);
+               flexsizer->Add(panelMirror, wxEXPAND);
+               mirrorPanel->Layout();
+       }       
+       showPanel(mirrorPanel);
+       //hideAxis();
+}
index 0ded70450fd0e97179347a8071bda76df517dc60..cb17e22cc118d30c3c2c938ccb6290490ae3d346 100644 (file)
@@ -82,6 +82,7 @@ public:
        void onCreateContourSpline( );
        void onCreateContourRectangle( );
        void onCreateContourCircle( );
+       void onCreateContourLine( );
        void onCreateContoursBullEye(wxPanel* panBull);
        /////////////////////////////////
        void onDeleteContour();
@@ -109,6 +110,8 @@ public:
 
        void onSegmentationAllSlice(int minZ,int maxZ,int isovalue,int sampling,int method);
 
+       void onMirror();
+
        void setLabelSegmentationPanelVTK(wxString tmpString);
 
        void onSegmentationPressed();
@@ -166,6 +169,9 @@ public:
        wxString getCellValue(int j,int i);
 
        void onSnakePressed();
+
+       void onMirrorPressed();
+
 private:
        
 
@@ -204,6 +210,8 @@ private:
        wxPanel* configPanel;
        wxPanel* spreadPanel;
        interfSpreadPanel* panelSpread;
+       wxPanel* mirrorPanel;
+       interfMirrorPanel* panelMirror; 
        wxWindow* infoWin;
        wxPanel* informationPanel;
 
index db374f0f6a347fbe10cc9f3b8d64b43620812979..4b56e7b2f400f39a3763f855be843f68c63fe019 100644 (file)
@@ -39,6 +39,11 @@ void interfNewContourMenu::initButtons(wxEvtHandler* evtHandler) {
        funct.push_back((wxObjectEventFunction) &interfNewContourMenu::onCreateContourBullseye);
        hand.push_back(this);
 
+       path.push_back(datadir + "/Line.png");
+       nom.push_back("Create a Line");
+       funct.push_back((wxObjectEventFunction) &interfNewContourMenu::onCreateContourLine);
+       hand.push_back(this);
+
     this->addButtons(path, nom);
 
        this->setVectorFunction(funct); 
@@ -77,4 +82,7 @@ void interfNewContourMenu::onCreateContourRectangle( wxCommandEvent& event ){
 void interfNewContourMenu::onCreateContourCircle( wxCommandEvent& event ){
        interfMainPanel::getInstance()->onCreateContourCircle();
 }
+void interfNewContourMenu::onCreateContourLine( wxCommandEvent& event ){
+       interfMainPanel::getInstance()->onCreateContourLine();
+}
 
index bf2ec97a9a8a875a3c88b83b64e6982a3b377130..8f942ecf87a7f8957f436ef267136b9ba0bf2b48 100644 (file)
@@ -41,6 +41,10 @@ private:
        **      This method is in charge of capturing the event when the button is clicked
        **/
        void onCreateContourCircle( wxCommandEvent& event );
+       /**
+       **      This method is in charge of capturing the event when the button is clicked
+       **/
+       void onCreateContourLine( wxCommandEvent& event );
 };
 
 #endif
index 48c4d9f4b5f2e9bc33c046967902442eb7c5155d..5467db7ededd5774088d475d2dde0f6fc1748d8f 100644 (file)
@@ -43,6 +43,10 @@ void interfToolsMenu::initButtons(wxEvtHandler* evtHandler) {
        nom.push_back("Show help page with information about the tools");
        funct.push_back((wxObjectEventFunction) &interfToolsMenu:: onHelpPressed);
 
+       path.push_back(datadir + "/Mirror.png");
+       nom.push_back("Create an Axis and select a contour to mirror it accordingly");
+       funct.push_back((wxObjectEventFunction) &interfToolsMenu:: onMirrorPressed);
+
        this->addButtons(path, nom);    
        this->setVectorFunction(funct);
 
@@ -89,6 +93,14 @@ void  interfToolsMenu::onConfigurationPressed(wxCommandEvent& event){
 }
 
 void interfToolsMenu::onHelpPressed(wxCommandEvent& event){
+
   wxLaunchDefaultBrowser(_T("http://www.creatis.insa-lyon.fr/creatools/node/25"), 0);
+
+}
+
+void interfToolsMenu::onMirrorPressed(wxCommandEvent& event){
+
+  interfMainPanel::getInstance()->onMirrorPressed();
+
 }
 
index 86a51ba8c082dc9c842d7aed9b627cd7c64fe17a..6bf63a947bee4b079b6fc4b1ca8d3f3ef8caeda3 100644 (file)
@@ -32,6 +32,8 @@ public:
 
        void onHelpPressed(wxCommandEvent& event);
 
+       void onMirrorPressed(wxCommandEvent& event);
+
 private:
 
        //wxContourEventHandler* contourevent;
index 32d1173f49c954975da07af65bf5102fc9e11603..5aa8b3fccf31e8d2276cf2f4b193f049a95d2e60 100644 (file)
@@ -392,4 +392,37 @@ void interfInformationPanel::setColLabel(int tmpIntB,wxString tmpTitleString){
 
 wxString interfInformationPanel::getCellValue(int j,int i){
        return _grid->GetCellValue( j , i );
-}
\ No newline at end of file
+}
+
+
+
+/**
+** Begin of the mirror panel
+**/
+
+interfMirrorPanel::interfMirrorPanel(wxWindow* parent)
+: wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_SUNKEN)
+{
+       wxButton *mirrorGoBtn = new wxButton(this,-1,_T("Go"), wxDefaultPosition, wxSize(200,35) );
+       _thickness = new wxSlider(this, -1, 0 , 0, 10, wxDefaultPosition, wxSize(200,35), wxSL_HORIZONTAL|wxSL_LABELS, wxDefaultValidator);
+       
+       Connect( mirrorGoBtn->GetId(),          wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &interfMirrorPanel::onMirrorGo ); 
+
+       wxFlexGridSizer * sizer         = new wxFlexGridSizer(1);
+       sizer -> Add( new wxStaticText(this,-1,_T("Thickness"))  , 1, wxGROW );
+       sizer -> Add( _thickness, 1, wxGROW );
+       sizer -> Add( mirrorGoBtn, 1, wxGROW );
+
+       this->SetSizer( sizer );
+       this->SetAutoLayout( true );
+       this->Layout();
+}
+
+interfMirrorPanel::~interfMirrorPanel(){
+}
+
+void interfMirrorPanel::onMirrorGo(wxCommandEvent& event)
+{
+       //wxString thick=_thickness->GetValue();
+       interfMainPanel::getInstance()->onMirror();
+}
index be7de00986e4296ed3a87a71390da6d1ea57bb08..8d8b128768acd8741a7474e097130cbfe15118cc 100644 (file)
@@ -83,6 +83,20 @@ private:
 
        
                
+};
+
+class interfMirrorPanel
+       : public wxPanel
+{
+public:
+       interfMirrorPanel(wxWindow * parent);           
+       ~interfMirrorPanel();
+
+private:
+
+       wxSlider* _thickness;
+
+       void onMirrorGo(wxCommandEvent& event);
 };
 
 #endif
index bbee55dfafe9f64bc2523254c2df1512fac714da..42ba17cee9f68d21ac81d31c038d0454e38e9263 100644 (file)
@@ -314,6 +314,14 @@ void wxContourMainFrame::onCreateContourCircle( ){
        //JCP 20-10-08 Undo redo implementation 
        createContour( 3 );
 }
+
+void wxContourMainFrame::onCreateContourLine( ){
+    //JCP 20-10-08 Undo redo implementation
+       saveState();
+       //JCP 20-10-08 Undo redo implementation 
+       createContour( 6 );
+}
+
 //------------------------------------------------------------------------------------------------------------
 
 void wxContourMainFrame :: onCreateContourBullEye(wxPanel* panel )
@@ -637,6 +645,7 @@ void wxContourMainFrame::onCopy(){
        _performingOperation->setStartOperationInstantVector( tempVector );
        _performingOperation->setKeyNamesOperationElems( currentSelection );
 }
+
 void wxContourMainFrame::onPaste(){
 
 
@@ -864,6 +873,7 @@ void wxContourMainFrame::onSegmentationOneSlice(int isovalue,int sampling,int me
        RefreshInterface();
 }
 
+
 void wxContourMainFrame::SegmentationOneSlice( int x, int y, int z, int isovalue, int sampling, int method )
 {              
        int typeofcontour = 1;
@@ -1067,6 +1077,37 @@ void wxContourMainFrame::onSegmentationAllSlice(int minZ,int maxZ,int isovalue,i
        RefreshInterface();
 }
 
+void wxContourMainFrame::onMirror()
+{
+       //AD:02-09
+       std::vector<std::string> currentSelection = _theViewPanel->getSelectedObjects();
+
+       std::vector<int> tempVector;
+       _instantPanel->getInstant( tempVector );
+    _performingOperation->reset();
+       _performingOperation->setStartCommand( COPY );
+       _performingOperation->setStartOperationInstantVector( tempVector );
+       _performingOperation->setKeyNamesOperationElems( currentSelection );
+
+       //AD:02-09
+       char theStartCommand = _performingOperation->getStartCommand();
+       if (  theStartCommand == COPY )
+       {
+               //JCP 20-10-08 Undo redo implementation
+               saveState();
+               //JCP 20-10-08 Undo redo implementation
+               std::vector<int> tempVector;
+               _instantPanel->getInstant( tempVector );
+               _performingOperation->setEndOperationInstantVector ( tempVector );
+               std::vector<std::string> elems = _performingOperation->getKeyNamesOperationElems();
+               int i,size = elems.size();                      
+               for( i=0; i<size; i++ )
+               {                               
+                       createCopyContourOf( elems[i], tempVector, i>0 );
+               }               
+       }
+}
+
 void wxContourMainFrame::showAxis(bool show){
        _theViewPanel->SetVisibleAxis(show);
        _theViewPanel->Refresh();
index fb5477af7c9b21b05148550622c488f538afcdde..9a38a68327919ebe24070b491a96c3a159065eed 100644 (file)
@@ -169,6 +169,7 @@ class wxContourMainFrame : public wxPanel {
        void onCreateContourSpline( );
        void onCreateContourRectangle( );
        void onCreateContourCircle( );
+       void onCreateContourLine( );
        void onCreateContourBullEye(wxPanel* pan);
        /////////////////////////////////
        void onDeleteContour();
@@ -214,12 +215,16 @@ class wxContourMainFrame : public wxPanel {
 
        void SegmentationOneSlice( int x, int y, int z, int isovalue, int sampling, int method );
 
+       void Mirror( int x, int y, int z, int isovalue, int sampling, int method );
+
        int GetImageDataSizeZ();
 
        void GetImageDataRange(double *range);
 
        void onSegmentationAllSlice(int minZ,int maxZ,int isovalue,int sampling,int method);
 
+       void onMirror();
+
        void showAxis(bool show);
 
        void onRigidPressed();
index 3d65b286f89258637ee757a8aeb585d2f602dc1a..635dcd3da6f7670efdb1a29f1e9a6ef8d5cce69f 100644 (file)
@@ -165,6 +165,12 @@ DEFINE_EVENT_TYPE( wxEVT_CHANGED_DEEP )
                        manViewerContour        = new manualViewBullEye();
                }
 
+               if (typeContour==6)
+               {
+                       manContourControl       = new manualLineControler();
+                       manViewerContour        = new manualViewLine();
+               }
+
 
 //EED Borrame
 //FILE *ff = fopen("c:/temp/wxVtkBaseView_SceneManagerStadistics.txt","a+");
index 873f7104270b1d8aa6492a20f4b6f6cd167ca972..2070e44d9e120e1064d0e9190c9cd81bc6ff0af6 100644 (file)
@@ -383,6 +383,12 @@ manualContourModel * KernelManagerContour::factoryManualContourModel(int typeCon
                manModelContour = new manualContourModelCircle();
        }
 
+       // line
+       if (typeContour==6)
+       {
+               manModelContour = new manualContourModelLine();
+       }
+
        return manModelContour;
 }