From 45157fa7b87e132a95caf22413af307337c8051a Mon Sep 17 00:00:00 2001 From: Otmane Lahlou <otmane.lahlou@c-s.fr> Date: Wed, 25 Mar 2009 18:39:03 +0100 Subject: [PATCH] ENH : enhance the StandardViewer by using the packedWidgetManager --- Code/Visualization/otbStandardImageViewer.h | 14 +++- Code/Visualization/otbStandardImageViewer.txx | 65 ++++++++++--------- .../otbPackedWidgetManagerNew.cxx | 28 ++++++++ 3 files changed, 75 insertions(+), 32 deletions(-) create mode 100644 Testing/Code/Visualization/otbPackedWidgetManagerNew.cxx diff --git a/Code/Visualization/otbStandardImageViewer.h b/Code/Visualization/otbStandardImageViewer.h index 57335c4409..b57430bb4e 100644 --- a/Code/Visualization/otbStandardImageViewer.h +++ b/Code/Visualization/otbStandardImageViewer.h @@ -42,7 +42,8 @@ #include "otbVectorDataExtractROI.h" #include "otbRemoteSensingRegion.h" -#include "otbImageWidgetPackedManager.h" +//#include "otbImageWidgetPackedManager.h" +#include "otbPackedWidgetManager.h" namespace otb { @@ -52,9 +53,9 @@ namespace otb * */ -template <class TImage, class TVectorData = VectorData<double> > +template <class TImage, class TVectorData = VectorData<double> , class TWidgetManager = otb::PackedWidgetManager> class StandardImageViewer - : public itk::Object, public ImageWidgetPackedManager + : public itk::Object//, public ImageWidgetPackedManager { public: /** Standard class typedefs */ @@ -78,6 +79,10 @@ public: typedef TVectorData VectorDataType; typedef typename VectorDataType::Pointer VectorDataPointerType; + /** PackedWidgetManager */ + typedef TWidgetManager WidgetManagerType; + typedef typename WidgetManagerType::Pointer WidgetManagerPointerType; + /** Output image type */ typedef itk::RGBPixel<unsigned char> RGBPixelType; typedef Image<RGBPixelType,2> OutputImageType; @@ -209,6 +214,9 @@ private: /** Path to the DEMDirectory (used if a VectorData is rendered */ std::string m_DEMDirectory; + + /** */ + WidgetManagerPointerType m_DisplayWindow; }; // end class } // end namespace otb diff --git a/Code/Visualization/otbStandardImageViewer.txx b/Code/Visualization/otbStandardImageViewer.txx index 7590d205fb..59567bc76d 100644 --- a/Code/Visualization/otbStandardImageViewer.txx +++ b/Code/Visualization/otbStandardImageViewer.txx @@ -25,12 +25,12 @@ namespace otb { -template <class TImage,class TVectorData> -StandardImageViewer<TImage,TVectorData> +template <class TImage,class TVectorData,class TWidgetManager> +StandardImageViewer<TImage,TVectorData,TWidgetManager> ::StandardImageViewer() : m_Label("Default label"), m_Image(), m_VectorData(), - m_ImageLayer(), m_RenderingModel(),m_PixelDescriptionModel(), - m_View(), m_PixelDescriptionView(), m_CurveWidget(), - m_Controller(), m_RenderingFunction() + m_ImageLayer(), m_RenderingModel(),m_PixelDescriptionModel(), + m_View(), m_PixelDescriptionView(), m_CurveWidget(), + m_Controller(), m_RenderingFunction(), m_DisplayWindow() { // Build a new rendering model m_RenderingModel = RenderingModelType::New(); @@ -88,29 +88,35 @@ StandardImageViewer<TImage,TVectorData> arrowKeyMoveHandler->SetView(m_View); m_Controller->AddActionHandler(arrowKeyMoveHandler); - - m_FullGroup->add(m_View->GetFullWidget()); - - m_QuicklookGroup->add(m_View->GetScrollWidget()); - m_ZoomGroup->add(m_View->GetZoomWidget()); - m_HistogramsGroup->add(m_CurveWidget); - m_PixelInformationGroup->add(m_PixelDescriptionView->GetPixelDescriptionWidget()); - - m_View->GetZoomWidget()->resize(m_ZoomGroup->x(),m_ZoomGroup->y(),m_ZoomGroup->w(),m_ZoomGroup->h()); - m_View->GetFullWidget()->resize(m_FullGroup->x(),m_FullGroup->y(),m_FullGroup->w(),m_FullGroup->h()); - m_View->GetScrollWidget()->resize(m_QuicklookGroup->x(),m_QuicklookGroup->y(),m_QuicklookGroup->w(),m_QuicklookGroup->h()); - m_CurveWidget->resize(m_HistogramsGroup->x(),m_HistogramsGroup->y(),m_HistogramsGroup->w(),m_HistogramsGroup->h()); - m_PixelDescriptionView->GetPixelDescriptionWidget()->resize(m_PixelInformationGroup->x(),m_PixelInformationGroup->y(),m_PixelInformationGroup->w(),m_PixelInformationGroup->h()); + /** Display Window*/ + m_DisplayWindow = WidgetManagerType::New(); + m_DisplayWindow->RegisterFullWidget(m_View->GetFullWidget()); + m_DisplayWindow->RegisterScrollWidget(m_View->GetScrollWidget()); + m_DisplayWindow->RegisterZoomWidget(m_View->GetZoomWidget()); + m_DisplayWindow->RegisterPixelInformationWidget(m_PixelDescriptionView->GetPixelDescriptionWidget()); + m_DisplayWindow->RegisterHistogramWidget(m_CurveWidget); + + //m_FullGroup->add(m_View->GetFullWidget()); + //m_QuicklookGroup->add(m_View->GetScrollWidget()); + //m_ZoomGroup->add(m_View->GetZoomWidget()); + //m_HistogramsGroup->add(m_CurveWidget); + //m_PixelInformationGroup->add(m_PixelDescriptionView->GetPixelDescriptionWidget()); + + //m_View->GetZoomWidget()->resize(m_ZoomGroup->x(),m_ZoomGroup->y(),m_ZoomGroup->w(),m_ZoomGroup->h()); + //m_View->GetFullWidget()->resize(m_FullGroup->x(),m_FullGroup->y(),m_FullGroup->w(),m_FullGroup->h()); + //m_View->GetScrollWidget()->resize(m_QuicklookGroup->x(),m_QuicklookGroup->y(),m_QuicklookGroup->w(),m_QuicklookGroup->h()); + //m_CurveWidget->resize(m_HistogramsGroup->x(),m_HistogramsGroup->y(),m_HistogramsGroup->w(),m_HistogramsGroup->h()); + //m_PixelDescriptionView->GetPixelDescriptionWidget()->resize(m_PixelInformationGroup->x(),m_PixelInformationGroup->y(),m_PixelInformationGroup->w(),m_PixelInformationGroup->h()); } -template <class TImage,class TVectorData> -StandardImageViewer<TImage,TVectorData> +template <class TImage,class TVectorData,class TWidgetManager> +StandardImageViewer<TImage,TVectorData,TWidgetManager> ::~StandardImageViewer() {} -template <class TImage,class TVectorData> +template <class TImage,class TVectorData,class TWidgetManager> void -StandardImageViewer<TImage,TVectorData> +StandardImageViewer<TImage,TVectorData,TWidgetManager> ::Update() { // First check if there is actually an input image @@ -207,7 +213,7 @@ StandardImageViewer<TImage,TVectorData> } // Generate the layer - ImageLayerGeneratorPointerType generator = ImageLayerGeneratorType::New(); + ImageLayerGeneratorPointerType generator = ImageLayerGeneratorType::New(); generator->SetImage(m_Image); FltkFilterWatcher qlwatcher(generator->GetResampler(),0,0,200,20,"Generating QuickLook ..."); generator->GenerateLayer(); @@ -215,18 +221,19 @@ StandardImageViewer<TImage,TVectorData> m_RenderingFunction = generator->GetDefaultRenderingFunction(); // Set the window and layer label - m_Window->label(m_Label.c_str()); + //m_Window->label(m_Label.c_str()); m_ImageLayer->SetName(m_Label); // Add the generated layer to the rendering model m_RenderingModel->AddLayer(generator->GetLayer()); // Show everything - m_Window->show(); - m_View->GetScrollWidget()->show(); - m_View->GetFullWidget()->show(); - m_View->GetZoomWidget()->show(); - m_CurveWidget->show(); +// m_Window->show(); +// m_View->GetScrollWidget()->show(); +// m_View->GetFullWidget()->show(); +// m_View->GetZoomWidget()->show(); +// m_CurveWidget->show(); + m_DisplayWindow->Show(); // Update the rendering model m_RenderingModel->Update(); diff --git a/Testing/Code/Visualization/otbPackedWidgetManagerNew.cxx b/Testing/Code/Visualization/otbPackedWidgetManagerNew.cxx new file mode 100644 index 0000000000..941f0d9855 --- /dev/null +++ b/Testing/Code/Visualization/otbPackedWidgetManagerNew.cxx @@ -0,0 +1,28 @@ +/*========================================================================= + +Program: ORFEO Toolbox +Language: C++ +Date: $Date$ +Version: $Revision$ + + +Copyright (c) Centre National d'Etudes Spatiales. All rights reserved. +See OTBCopyright.txt for details. + + +This software is distributed WITHOUT ANY WARRANTY; without even +the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "otbPackedWidgetManager.h" + +int otbPackedWidgetManagerNew( int argc, char * argv[] ) +{ + + typedef otb::PackedWidgetManager PackedWidgetManagerType; + + PackedWidgetManagerType::Pointer layer = PackedWidgetManagerType::New(); + + return EXIT_SUCCESS; +} -- GitLab