From ccd283d431d906898d2e256f971144f7812014dc Mon Sep 17 00:00:00 2001 From: andreas <andreas@5a81b35b-ba03-0410-adc8-b2c5c5119f08> Date: Tue, 30 Mar 2010 20:59:29 +0000 Subject: [PATCH] bugfix in log.hh and log.cc / added missing export for overlays git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@1904 5a81b35b-ba03-0410-adc8-b2c5c5119f08 --- modules/base/src/log.cc | 1 + modules/base/src/log.hh | 12 +-- modules/gui/pymod/CMakeLists.txt | 1 + modules/gui/pymod/export_overlay.cc | 127 ++++++++++++++++++++++++++++ modules/gui/pymod/wrap_gui.cc | 2 + 5 files changed, 137 insertions(+), 6 deletions(-) create mode 100644 modules/gui/pymod/export_overlay.cc diff --git a/modules/base/src/log.cc b/modules/base/src/log.cc index 7e3c53798..ec77c8525 100644 --- a/modules/base/src/log.cc +++ b/modules/base/src/log.cc @@ -18,6 +18,7 @@ //------------------------------------------------------------------------------ #include <iostream> + #include <ost/log.hh> namespace ost { diff --git a/modules/base/src/log.hh b/modules/base/src/log.hh index 796de9dcb..ac86280a2 100644 --- a/modules/base/src/log.hh +++ b/modules/base/src/log.hh @@ -58,11 +58,11 @@ private: std::ostream null_; }; -#define PUSH_VERBOSITY(n) Logger::Instance().PushVerbosityLevel(n) -#define POP_VERBOSITY(n) Logger::Instance().PopVerbosityLevel() +#define PUSH_VERBOSITY(n) ::ost::Logger::Instance().PushVerbosityLevel(n) +#define POP_VERBOSITY(n) ::ost::Logger::Instance().PopVerbosityLevel() -#define LOG_ERROR(m) Logger::Instance()(Logger::QUIET) << m; -#define LOGN_ERROR(m) Logger::Instance()(Logger::QUIET) << m << std::endl; +#define LOG_ERROR(m) ::ost::Logger::Instance()(::ost::Logger::QUIET) << m; +#define LOGN_ERROR(m) ::ost::Logger::Instance()(::ost::Logger::QUIET) << m << std::endl; #define LOG_MESSAGE(m) if(::ost::Logger::Instance().GetLogLevel()>=::ost::Logger::NORMAL) {(::ost::Logger::Instance()(::ost::Logger::NORMAL)) << m ;} #define LOGN_MESSAGE(m) if(::ost::Logger::Instance().GetLogLevel()>=::ost::Logger::NORMAL) {(::ost::Logger::Instance()(::ost::Logger::NORMAL)) << m << std::endl;} @@ -70,8 +70,8 @@ private: #define LOG_VERBOSE(m) if(::ost::Logger::Instance().GetLogLevel()>=::ost::Logger::VERBOSE) {(::ost::Logger::Instance()(::ost::Logger::VERBOSE)) << m ;} #define LOGN_VERBOSE(m) if(::ost::Logger::Instance().GetLogLevel()>=::ost::Logger::VERBOSE) {(::ost::Logger::Instance()(::ost::Logger::VERBOSE)) << m << std::endl;} -#define LOG_DEBUG(m) if(Logger::Instance().GetLogLevel()>=::ost::Logger::DEBUG) {(::ost::Logger::Instance()(::ost::Logger::DEBUG)) << m ;} -#define LOGN_DEBUG(m) if(Logger::Instance().GetLogLevel()>=::ost::Logger::DEBUG) {(::ost::Logger::Instance()(::ost::Logger::DEBUG)) << m << std::endl;} +#define LOG_DEBUG(m) if(::ost::Logger::Instance().GetLogLevel()>=::ost::Logger::DEBUG) {(::ost::Logger::Instance()(::ost::Logger::DEBUG)) << m ;} +#define LOGN_DEBUG(m) if(::ost::Logger::Instance().GetLogLevel()>=::ost::Logger::DEBUG) {(::ost::Logger::Instance()(::ost::Logger::DEBUG)) << m << std::endl;} #ifdef NDEBUG diff --git a/modules/gui/pymod/CMakeLists.txt b/modules/gui/pymod/CMakeLists.txt index d3cad752d..c62fe901c 100644 --- a/modules/gui/pymod/CMakeLists.txt +++ b/modules/gui/pymod/CMakeLists.txt @@ -62,6 +62,7 @@ if (ENABLE_IMG) list(APPEND OST_GUI_PYMOD_SOURCES data_viewer_proxy.cc export_data_viewer.cc + export_overlay.cc ) endif() diff --git a/modules/gui/pymod/export_overlay.cc b/modules/gui/pymod/export_overlay.cc new file mode 100644 index 000000000..21019aa74 --- /dev/null +++ b/modules/gui/pymod/export_overlay.cc @@ -0,0 +1,127 @@ +//------------------------------------------------------------------------------ +// This file is part of the OpenStructure project <www.openstructure.org> +// +// Copyright (C) 2008-2010 by the OpenStructure authors +// Copyright (C) 2003-2010 by the IPLT authors +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License as published by the Free +// Software Foundation; either version 3.0 of the License, or (at your option) +// any later version. +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more +// details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +//------------------------------------------------------------------------------ + + +/* + Author: Ansgar Philippsen +*/ + +#include <boost/python.hpp> +#include <ost/gui/data_viewer/overlay.hh> +#include <ost/gui/data_viewer/null_overlay.hh> +#include <ost/gui/data_viewer/pointlist_overlay.hh> +#include <ost/gui/data_viewer/draw_overlay.hh> +#include <ost/gui/data_viewer/mask_overlay.hh> + +using namespace boost::python; +using namespace ost; +using namespace ost::img; +using namespace ost::img::gui; +namespace { + +void plo_add1(PointlistOverlay& plo, const Point& p) +{ + plo.Add(p); +} + + +void plo_add2(PointlistOverlay& plo, const PointList& p) +{ + plo.Add(p); +} + +/*void plo_add3(PointlistOverlay& plo, const Point& p, double scale) +{ + plo.Add(p,scale); +} + +void plo_add4(PointlistOverlay& plo, const PointList& p, double scale) +{ + plo.Add(p,scale); +} +*/ +QColor qcolor_from_pyobj(boost::python::object& obj) +{ +return QColor(boost::python::extract<int>(obj.attr("red")()), + boost::python::extract<int>(obj.attr("green")()), + boost::python::extract<int>(obj.attr("blue")())); +} + +/*void set_active_color(PointlistOverlayBase& plo,boost::python::object& obj) +{ + QColor color=qcolor_from_pyobj(obj); + plo.SetActiveColor(color); +} +void set_passive_color(PointlistOverlayBase& plo,boost::python::object& obj) +{ + QColor color=qcolor_from_pyobj(obj); + plo.SetPassiveColor(color); +}*/ + +}//ns + +void export_overlay() +{ + class_<Overlay, OverlayPtr, boost::noncopyable>("Overlay",no_init) + .def("GetName",&Overlay::GetName) + .def("SetName",&Overlay::SetName) + ; + + class_<NullOverlay,bases<Overlay>,boost::noncopyable>("NullOverlay",init<>()) + ; + + class_<PointlistOverlayBase,bases<Overlay>,boost::noncopyable>("PointlistOverlayBase",init<const String&>()) + .def("SetSymbolSize",&PointlistOverlayBase::SetSymbolSize) + .def("GetSymbolSize",&PointlistOverlayBase::GetSymbolSize) + .def("SetSymbolShape",&PointlistOverlayBase::SetSymbolShape) + .def("GetSymbolShape",&PointlistOverlayBase::GetSymbolShape) + .def("SetCrosshair",&PointlistOverlayBase::SetCrosshair) + .def("GetCrosshair",&PointlistOverlayBase::GetCrosshair) + // .def("SetActiveColor",set_active_color) + // .def("SetPassiveColor",set_passive_color) + ; + + class_<PointlistOverlay,bases<PointlistOverlayBase>,boost::noncopyable>("PointlistOverlay",init<optional<const String&> >()) + .def(init<const PointList&,optional<const String&> >()) + .def("Add",plo_add1) + .def("Add",plo_add2) + // .def("Add",plo_add3) + // .def("Add",plo_add4) + .def("Remove",&PointlistOverlay::Remove) + .def("Clear",&PointlistOverlay::Clear) + ; + + class_<DrawOverlay,bases<Overlay>,boost::noncopyable>("DrawOverlay",init<ImageHandle>()) + ; + + class_<MaskOverlay,bases<Overlay>,boost::noncopyable>("MaskOverlay",init<>()) + .def(init<const MaskPtr&>()) + .def("SetMask",&MaskOverlay::SetMask) + .def("GetMask",&MaskOverlay::GetMask) + .def("ClearMask",&MaskOverlay::ClearMask) + .def("GetShift",&MaskOverlay::GetShift) + .def("ClearShift",&MaskOverlay::ClearShift) + // .def("SetShift",&MaskOverlay::SetShift) + // .def("ApplyShiftToMask",&MaskOverlay::ApplyShiftToMask) + ; + +/* class_<Gauss2DOverlay,bases<Overlay>,boost::noncopyable>("Gauss2DOverlay",init<const alg::ParamsGauss2D&>()) + ;*/ +} diff --git a/modules/gui/pymod/wrap_gui.cc b/modules/gui/pymod/wrap_gui.cc index 19bc5a37a..4034dfe1c 100644 --- a/modules/gui/pymod/wrap_gui.cc +++ b/modules/gui/pymod/wrap_gui.cc @@ -49,6 +49,7 @@ void export_Input(); #ifdef OST_IMG_ENABLED void export_data_viewer(); +void export_overlay(); #endif #include <boost/python/to_python_converter.hpp> @@ -125,5 +126,6 @@ BOOST_PYTHON_MODULE(_gui) #if OST_IMG_ENABLED export_data_viewer(); + export_overlay(); #endif } -- GitLab