From 67d9b37aa2cc5177dca23acec3c25f764d6fc397 Mon Sep 17 00:00:00 2001 From: Otmane Lahlou <otmane.lahlou@c-s.fr> Date: Wed, 1 Apr 2009 14:14:45 +0200 Subject: [PATCH] ENH: Link images added --- .../otbImageViewerManagerController.cxx | 14 +++ .../otbImageViewerManagerController.h | 2 +- ...otbImageViewerManagerControllerInterface.h | 2 +- .../Model/otbImageViewerManagerModel.cxx | 98 +++++++++++++++++++ .../Model/otbImageViewerManagerModel.h | 8 +- 5 files changed, 120 insertions(+), 4 deletions(-) diff --git a/ViewerManager/Controller/otbImageViewerManagerController.cxx b/ViewerManager/Controller/otbImageViewerManagerController.cxx index 5c33f1fd51..d4131f3755 100644 --- a/ViewerManager/Controller/otbImageViewerManagerController.cxx +++ b/ViewerManager/Controller/otbImageViewerManagerController.cxx @@ -128,5 +128,19 @@ ImageViewerManagerController } } +void +ImageViewerManagerController +::Link(unsigned int leftChoice, unsigned int rightChoice) +{ + try + { + m_Model->Link(leftChoice,rightChoice); + } + catch (itk::ExceptionObject & err) + { + MsgReporter::GetInstance()->SendError(err.GetDescription()); + } +} + } // end namespace otb diff --git a/ViewerManager/Controller/otbImageViewerManagerController.h b/ViewerManager/Controller/otbImageViewerManagerController.h index 9a8c08d767..1f31e15db8 100644 --- a/ViewerManager/Controller/otbImageViewerManagerController.h +++ b/ViewerManager/Controller/otbImageViewerManagerController.h @@ -106,7 +106,7 @@ public: virtual void UpdateGrayScaleChannelOrder(int choice, unsigned int selectedItem ); virtual void UpdateModulusChannelOrder(int realChoice , int imChoice ,unsigned int selectedItem ); virtual void UpdatePhaseChannelOrder(int realChoice , int imChoice, unsigned int selectedItem); - + virtual void Link(unsigned int leftChoice, unsigned int rightChoice); diff --git a/ViewerManager/Controller/otbImageViewerManagerControllerInterface.h b/ViewerManager/Controller/otbImageViewerManagerControllerInterface.h index 9e31bba096..10de1fa831 100644 --- a/ViewerManager/Controller/otbImageViewerManagerControllerInterface.h +++ b/ViewerManager/Controller/otbImageViewerManagerControllerInterface.h @@ -73,7 +73,7 @@ public: virtual void UpdateGrayScaleChannelOrder(int choice, unsigned int selectedItem) = 0; virtual void UpdateModulusChannelOrder(int realChoice , int imChoice,unsigned int selectedItem) = 0; virtual void UpdatePhaseChannelOrder(int realChoice , int imChoice, unsigned int selectedItem) = 0; - + virtual void Link(unsigned int leftChoice, unsigned int rightChoice) = 0; /** NewVisu */ virtual VisuControllerPointerType GetVisuController()=0; virtual VisuControllerPointerType GetPreviewVisuController() = 0; diff --git a/ViewerManager/Model/otbImageViewerManagerModel.cxx b/ViewerManager/Model/otbImageViewerManagerModel.cxx index b306ddd13d..c75895b4a2 100644 --- a/ViewerManager/Model/otbImageViewerManagerModel.cxx +++ b/ViewerManager/Model/otbImageViewerManagerModel.cxx @@ -109,6 +109,7 @@ ImageViewerManagerModel currentComponent.pWidgetController = controller; currentComponent.pRenderFuntion = rendrerFuntion; currentComponent.pPixelView = pixelView; + currentComponent.pPixelModel = pixelModel; currentComponent.pCurveWidget = curveWidget; /** Add the the struct in the list*/ @@ -258,6 +259,103 @@ ImageViewerManagerModel m_HasChangedChannelOrder = false; } +/** + * + */ +void +ImageViewerManagerModel +::Link(unsigned int leftChoice, unsigned int rightChoice) +{ + + //Get the controllers of the selected images + WidgetControllerPointerType rightController = m_ObjectTrackedList.at(rightChoice-1).pWidgetController; + WidgetControllerPointerType leftController = m_ObjectTrackedList.at(leftChoice-1).pWidgetController; + + //Get the models related to the choosen images + VisuModelPointerType rightRenderModel = m_ObjectTrackedList.at(rightChoice-1).pRendering; + VisuModelPointerType leftRenderModel = m_ObjectTrackedList.at(leftChoice-1).pRendering; + + //Get the views related to the choosen images + VisuViewPointerType pRightVisuView = m_ObjectTrackedList.at(rightChoice-1).pVisuView;; + VisuViewPointerType pLeftVisuView = m_ObjectTrackedList.at(leftChoice-1).pVisuView; + + //Pixel View + PixelDescriptionModelPointerType rightPixelModel = m_ObjectTrackedList.at(rightChoice-1).pPixelModel; + PixelDescriptionModelPointerType leftPixelModel = m_ObjectTrackedList.at(leftChoice-1).pPixelModel; + + // Add the resizing handler + ResizingHandlerType::Pointer rightResizingHandler = ResizingHandlerType::New(); + rightResizingHandler->SetModel(rightRenderModel); + rightResizingHandler->SetView(pLeftVisuView); + + ResizingHandlerType::Pointer leftResizingHandler = ResizingHandlerType::New(); + leftResizingHandler->SetModel(leftRenderModel); + leftResizingHandler->SetView(pRightVisuView); + + rightController->AddActionHandler( leftResizingHandler); + leftController->AddActionHandler(rightResizingHandler); + + // Add the change scaled region handler + ChangeScaledRegionHandlerType::Pointer rightChangeScaledHandler =ChangeScaledRegionHandlerType::New(); + rightChangeScaledHandler->SetModel(rightRenderModel); + rightChangeScaledHandler->SetView(pLeftVisuView); + + ChangeScaledRegionHandlerType::Pointer leftChangeScaledHandler =ChangeScaledRegionHandlerType::New(); + leftChangeScaledHandler->SetModel(leftRenderModel); + leftChangeScaledHandler->SetView(pRightVisuView); + + rightController->AddActionHandler(leftChangeScaledHandler); + leftController->AddActionHandler( rightChangeScaledHandler); + + // Add the change extract region handler + ChangeRegionHandlerType::Pointer rightChangeHandler =ChangeRegionHandlerType::New(); + rightChangeHandler->SetModel(rightRenderModel); + rightChangeHandler->SetView(pLeftVisuView); + + ChangeRegionHandlerType::Pointer leftChangeHandler =ChangeRegionHandlerType::New(); + leftChangeHandler->SetModel(leftRenderModel); + leftChangeHandler->SetView(pRightVisuView); + + rightController->AddActionHandler( leftChangeHandler); + leftController->AddActionHandler(rightChangeHandler); + + // Add the change scaled handler + ChangeScaleHandlerType::Pointer rightChangeScaleHandler =ChangeScaleHandlerType::New(); + rightChangeScaleHandler->SetModel(rightRenderModel ); + rightChangeScaleHandler->SetView(pLeftVisuView); + + ChangeScaleHandlerType::Pointer leftChangeScaleHandler =ChangeScaleHandlerType::New(); + leftChangeScaleHandler->SetModel(leftRenderModel ); + leftChangeScaleHandler->SetView(pRightVisuView); + + rightController->AddActionHandler( leftChangeScaleHandler); + leftController->AddActionHandler(rightChangeScaleHandler); + + //Pixel Description Handling + PixelDescriptionActionHandlerType::Pointer rightPixelActionHandler = PixelDescriptionActionHandlerType::New(); + rightPixelActionHandler->SetView(pLeftVisuView ); + rightPixelActionHandler->SetModel(rightPixelModel); + + PixelDescriptionActionHandlerType::Pointer leftPixelActionHandler = PixelDescriptionActionHandlerType::New(); + leftPixelActionHandler->SetView(pRightVisuView); + leftPixelActionHandler->SetModel(leftPixelModel); + + rightController->AddActionHandler(leftPixelActionHandler ); + leftController->AddActionHandler(rightPixelActionHandler); + +} + +/** + * + */ +void +ImageViewerManagerModel +::AddLinkActionHandler(unsigned int choice) +{ + +} + + } diff --git a/ViewerManager/Model/otbImageViewerManagerModel.h b/ViewerManager/Model/otbImageViewerManagerModel.h index 08c516c093..4fb3e307de 100644 --- a/ViewerManager/Model/otbImageViewerManagerModel.h +++ b/ViewerManager/Model/otbImageViewerManagerModel.h @@ -131,7 +131,8 @@ public: VisuViewPointerType pVisuView; StandardRenderingFunctionType::Pointer pRenderFuntion; PixelDescriptionViewType::Pointer pPixelView; - CurvesWidgetType::Pointer pCurveWidget; + PixelDescriptionModelPointerType pPixelModel; + CurvesWidgetType::Pointer pCurveWidget; std::string fileName; }; @@ -152,6 +153,8 @@ public: virtual void UpdateGrayScaleChannelOrder(int choice, unsigned int selectedItem); virtual void UpdateModulusChannelOrder(int realChoice , int imChoice,unsigned int selectedItem ); virtual void UpdatePhaseChannelOrder(int realChoice , int imChoice,unsigned int selectedItem ); + virtual void Link(unsigned int leftChoice, unsigned int rightChoice); + virtual void AddLinkActionHandler(unsigned int choice); /** Method needed to Get the list of componenets stored*/ ObjectTrackedList GetObjectList() @@ -162,7 +165,7 @@ public: /** Boolean Flags */ itkGetMacro(HasImageOpened,bool); itkGetMacro(HasChangedChannelOrder,bool); - + itkGetMacro(HasNewLink,bool); protected: /** This is protected for the singleton. Use GetInstance() instead. */ @@ -192,6 +195,7 @@ private: /** Boolean flags*/ bool m_HasImageOpened; bool m_HasChangedChannelOrder; + bool m_HasNewLink; /** The manipuleted list*/ ObjectTrackedList m_ObjectTrackedList; -- GitLab