diff --git a/modules/gui/pymod/export_data_viewer.cc b/modules/gui/pymod/export_data_viewer.cc index 1a3ada014c63e320b7448a0896238fa169a280b0..6efdef65e1a980d4a77b4b79111a0e77bd38babf 100644 --- a/modules/gui/pymod/export_data_viewer.cc +++ b/modules/gui/pymod/export_data_viewer.cc @@ -67,8 +67,7 @@ void export_data_viewer() .def("SetData",&DataViewer::SetData) .def("SetName",&DataViewer::SetName) .def("GetOverlayManager",&DataViewer::GetOverlayManager) - .def("GetNormalizer",&DataViewer::GetNormalizer, - return_value_policy<return_by_value>()) + .def("GetNormalizer",&DataViewer::GetNormalizer,return_value_policy<return_by_value>()) .def("Renormalize",&DataViewer::Renormalize) .def("AddOverlay",&DataViewer::AddOverlay,o_AddOverlay()) .def("ClearOverlays",&DataViewer::ClearOverlays) @@ -81,6 +80,24 @@ void export_data_viewer() .def("SetSlab", &DataViewer::SetSlab) .def("GetSlab", &DataViewer::GetSlab) .add_property("slab", &DataViewer::GetSlab, &DataViewer::SetSlab) + .def("SetZoomScale", &DataViewer::SetZoomScale) + .def("GetZoomScale", &DataViewer::GetZoomScale) + .add_property("zoomscale", &DataViewer::GetZoomScale, &DataViewer::SetZoomScale) + .def("SetViewerMin", &DataViewer::SetViewerMin) + .def("GetViewerMin", &DataViewer::GetViewerMin) + .add_property("viewer_min", &DataViewer::GetViewerMin, &DataViewer::SetViewerMin) + .def("SetViewerMax", &DataViewer::SetViewerMax) + .def("GetViewerMax", &DataViewer::GetViewerMax) + .add_property("viewer_max", &DataViewer::GetViewerMax, &DataViewer::SetViewerMax) + .def("SetGamma", &DataViewer::SetGamma) + .def("GetGamma", &DataViewer::GetGamma) + .add_property("gamma", &DataViewer::GetGamma, &DataViewer::SetGamma) + .def("SetInvert", &DataViewer::SetInvert) + .def("GetInvert", &DataViewer::GetInvert) + .add_property("invert", &DataViewer::GetInvert, &DataViewer::SetInvert) + .def("SetOffset", &DataViewer::SetOffset) + .def("GetOffset", &DataViewer::GetOffset) + .add_property("offset", &DataViewer::GetOffset, &DataViewer::SetOffset) .def("AddDockWidget",add_dock3) .def("AddDockWidget",add_dock4) .def("RemoveDockWidget",&DataViewer::RemoveDockWidget) diff --git a/modules/gui/src/data_viewer/data_viewer.cc b/modules/gui/src/data_viewer/data_viewer.cc index a0d75b28f02c392663832d1e4b02d427326115e1..2bc7d368f8ce6b178a01d9580de9d7d383edddd2 100644 --- a/modules/gui/src/data_viewer/data_viewer.cc +++ b/modules/gui/src/data_viewer/data_viewer.cc @@ -134,6 +134,66 @@ int DataViewer::GetSlab() const return panel_->GetSlab(); } +void DataViewer::SetZoomScale(Real zoomscale) +{ + panel_->SetZoomScale(zoomscale); +} + +Real DataViewer::GetZoomScale() const +{ + return panel_->GetZoomScale(); +} + +void DataViewer::SetViewerMin(Real min) +{ + panel_->SetViewerMin(min); +} + +Real DataViewer::GetViewerMin() const +{ + return panel_->GetViewerMin(); +} + +void DataViewer::SetViewerMax(Real max) +{ + panel_->SetViewerMax(max); +} + +Real DataViewer::GetViewerMax() const +{ + return panel_->GetViewerMax(); +} + +void DataViewer::SetGamma(Real gamma) +{ + panel_->SetGamma(gamma); +} + +Real DataViewer::GetGamma() const +{ + return panel_->GetGamma(); +} + +void DataViewer::SetInvert(bool invert) +{ + panel_->SetInvert(invert); +} + +bool DataViewer::GetInvert() const +{ + return panel_->GetInvert(); +} + +void DataViewer::SetOffset(const geom::Vec2& offset) +{ + panel_->SetOffset(offset); +} + +geom::Vec2 DataViewer::GetOffset() const +{ + return panel_->GetOffset(); +} + int DataViewer::AddOverlay(const OverlayPtr& ov, bool make_active) { int retval= ov_manager_->AddOverlay(ov,make_active); diff --git a/modules/gui/src/data_viewer/data_viewer.hh b/modules/gui/src/data_viewer/data_viewer.hh index 6594b588cfb4a00b9710d8da4dcd618680b64d3b..e9e417f6b0c6a0076ab728ae8dd60b0dacabf71d 100644 --- a/modules/gui/src/data_viewer/data_viewer.hh +++ b/modules/gui/src/data_viewer/data_viewer.hh @@ -104,9 +104,41 @@ public: //! event filter for DataViewerPanel virtual bool eventFilter(QObject * object, QEvent *event); - void SetSlab(int slab); + //! set z slab + void SetSlab(int slab); + //! get z slab int GetSlab() const; + //! set zoom scale (range: 1e-8 to 1e8) + void SetZoomScale(Real zoomscale); + //! get zoom scale (range: 1e-8 to 1e8) + Real GetZoomScale() const; + + //! set minimum level of the viewer (e.g. the value that will be displayed as black) + void SetViewerMin(Real min); + //! get minimum level of the viewer (e.g. the value that will be displayed as black) + Real GetViewerMin() const; + + //! set maximum level of the viewer (e.g. the value that will be displayed as white) + void SetViewerMax(Real max); + //! get maximum level of the viewer (e.g. the value that will be displayed as white) + Real GetViewerMax() const; + + //! set viewer gamma + void SetGamma(Real gamma); + //! get viewer gamma + Real GetGamma() const; + + //! set invert flag + void SetInvert(bool invert); + //! get invert flag + bool GetInvert() const; + + //! set image offset + void SetOffset(const geom::Vec2& offset); + //! get image offset + geom::Vec2 GetOffset() const; + signals: void released(); diff --git a/modules/gui/src/data_viewer/data_viewer_panel_base.cc b/modules/gui/src/data_viewer/data_viewer_panel_base.cc index 9249bef7d2bf66487ef423ad37f50e9f4e506ae0..1da089d2dffdc1c07897622c67ed4a9798a4559a 100644 --- a/modules/gui/src/data_viewer/data_viewer_panel_base.cc +++ b/modules/gui/src/data_viewer/data_viewer_panel_base.cc @@ -939,6 +939,53 @@ void DataViewerPanelBase::SetInvert(bool invert) UpdateView(true); } +Real DataViewerPanelBase::GetGamma() const +{ + return normalizer_->GetGamma(); +} + +void DataViewerPanelBase::SetGamma(Real gamma) +{ + UpdateNormalizer(normalizer_->GetMinimum(), + normalizer_->GetMaximum(), + gamma,normalizer_->GetInvert()); + UpdateView(true); +} + +Real DataViewerPanelBase::GetViewerMin() const +{ + return normalizer_->GetMinimum(); +} + +void DataViewerPanelBase::SetViewerMin(Real min) +{ + UpdateNormalizer(min,normalizer_->GetMaximum(),normalizer_->GetGamma(),normalizer_->GetInvert()); + UpdateView(true); +} + +Real DataViewerPanelBase::GetViewerMax() const +{ + return normalizer_->GetMaximum(); +} + +void DataViewerPanelBase::SetViewerMax(Real max) +{ + UpdateNormalizer(normalizer_->GetMinimum(),max,normalizer_->GetGamma(),normalizer_->GetInvert()); + UpdateView(true); +} + +geom::Vec2 DataViewerPanelBase::GetOffset() const +{ + return geom::Vec2(offset_x_,offset_y_); +} + +void DataViewerPanelBase::SetOffset(const geom::Vec2& offset) +{ + offset_x_=offset[0]; + offset_y_=offset[1]; + UpdateView(true); +} + void DataViewerPanelBase::SetAntialiasing(bool f) { antialiasing_=f; diff --git a/modules/gui/src/data_viewer/data_viewer_panel_base.hh b/modules/gui/src/data_viewer/data_viewer_panel_base.hh index 9e165925e8e516f9320ee85da51ca895eb1b806c..4c4b59bb5df8bb4df9853d6f10dd42d577e78ed0 100644 --- a/modules/gui/src/data_viewer/data_viewer_panel_base.hh +++ b/modules/gui/src/data_viewer/data_viewer_panel_base.hh @@ -177,6 +177,12 @@ public: Real GetDataMax() const; bool GetInvert() const; void SetInvert(bool invert); + Real GetGamma() const; + void SetGamma(Real gamma); + void SetViewerMin(Real min); + Real GetViewerMin() const; + void SetViewerMax(Real max); + Real GetViewerMax() const; void UpdateNormalizer(Real min, Real max, Real gamma, bool invert); int GetSlab(); void SetSlab(int slab); @@ -184,6 +190,10 @@ public: int GetSelectionMode(); void SetAntialiasing(bool f); bool GetAntialiasing() const; + geom::Vec2 GetOffset() const; + void SetOffset(const geom::Vec2& offset); + + signals: void clicked(const geom::Vec3& mousepos);