From 31cd83e3d7407baefb6c71ca8be3db6710e21f16 Mon Sep 17 00:00:00 2001 From: stefan <stefan@5a81b35b-ba03-0410-adc8-b2c5c5119f08> Date: Mon, 8 Mar 2010 09:09:34 +0000 Subject: [PATCH] Fixed bug in RenderOptions (Tube not updated) git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@1784 5a81b35b-ba03-0410-adc8-b2c5c5119f08 --- modules/gfx/pymod/export_render_options.cc | 1 + modules/gfx/src/impl/cartoon_renderer.cc | 2 +- modules/gfx/src/render_options/cartoon_render_options.cc | 9 +++++++-- modules/gfx/src/render_options/cartoon_render_options.hh | 3 ++- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/modules/gfx/pymod/export_render_options.cc b/modules/gfx/pymod/export_render_options.cc index cb5a530b7..5d2a95172 100644 --- a/modules/gfx/pymod/export_render_options.cc +++ b/modules/gfx/pymod/export_render_options.cc @@ -79,6 +79,7 @@ void export_RenderOptions() ; class_<CartoonRenderOptions, boost::shared_ptr<CartoonRenderOptions>, bases<RenderOptions>, boost::noncopyable>("CartoonRenderOptions") + .def(init<optional<bool> >()) .def("SetSplineDetail", &CartoonRenderOptions::SetSplineDetail) .def("GetSplineDetail", &CartoonRenderOptions::GetSplineDetail) .def("SetPolyMode", &CartoonRenderOptions::SetPolyMode) diff --git a/modules/gfx/src/impl/cartoon_renderer.cc b/modules/gfx/src/impl/cartoon_renderer.cc index 887e4c449..e9b750232 100644 --- a/modules/gfx/src/impl/cartoon_renderer.cc +++ b/modules/gfx/src/impl/cartoon_renderer.cc @@ -32,7 +32,7 @@ using namespace impl; CartoonRenderer::CartoonRenderer(BackboneTrace& trace, bool force_tube): TraceRendererBase(trace, 3), force_tube_(force_tube), - options_(new CartoonRenderOptions()) + options_(new CartoonRenderOptions(force_tube)) { if(force_tube){ this->SetName("Smooth Tube"); diff --git a/modules/gfx/src/render_options/cartoon_render_options.cc b/modules/gfx/src/render_options/cartoon_render_options.cc index 1f3428c15..30996bfd1 100644 --- a/modules/gfx/src/render_options/cartoon_render_options.cc +++ b/modules/gfx/src/render_options/cartoon_render_options.cc @@ -26,7 +26,8 @@ namespace ost { namespace gfx { -CartoonRenderOptions::CartoonRenderOptions(): +CartoonRenderOptions::CartoonRenderOptions(bool force_tube): + force_tube_(force_tube), spline_detail_(6), poly_mode_(2), arc_detail_(4), @@ -41,10 +42,14 @@ CartoonRenderOptions::CartoonRenderOptions(): strand_ecc_(0.3) {} RenderMode::Type CartoonRenderOptions::GetRenderMode(){ - return RenderMode::HSC; + if(force_tube_) + return RenderMode::TUBE; + return RenderMode::HSC; } bool CartoonRenderOptions::CanApplyRenderOptions(RenderOptionsPtr render_options){ + if(force_tube_) + return render_options.get()->GetRenderMode()==RenderMode::TUBE; return render_options.get()->GetRenderMode()==RenderMode::HSC; } diff --git a/modules/gfx/src/render_options/cartoon_render_options.hh b/modules/gfx/src/render_options/cartoon_render_options.hh index cddecbdab..55653bb53 100644 --- a/modules/gfx/src/render_options/cartoon_render_options.hh +++ b/modules/gfx/src/render_options/cartoon_render_options.hh @@ -33,7 +33,7 @@ namespace ost { namespace gfx { class DLLEXPORT_OST_GFX CartoonRenderOptions: public ost::gfx::RenderOptions { public: - CartoonRenderOptions(); + CartoonRenderOptions(bool force_tube=false); virtual RenderMode::Type GetRenderMode(); @@ -76,6 +76,7 @@ public: virtual ~CartoonRenderOptions(); private: + bool force_tube_; uint spline_detail_; uint poly_mode_; uint arc_detail_; -- GitLab