From b04be941114df56df8cff9d343abea16a45778d2 Mon Sep 17 00:00:00 2001 From: marco <marco@5a81b35b-ba03-0410-adc8-b2c5c5119f08> Date: Sun, 21 Mar 2010 17:38:11 +0000 Subject: [PATCH] POV export for SIMPLE render mode This is essentially the same as the CUSTOM renderer export, but with a very thin tube and sphere radius. git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@1859 5a81b35b-ba03-0410-adc8-b2c5c5119f08 --- modules/gfx/src/impl/simple_renderer.cc | 26 ++++++++++++++++++++++++- modules/gfx/src/impl/simple_renderer.hh | 2 +- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/modules/gfx/src/impl/simple_renderer.cc b/modules/gfx/src/impl/simple_renderer.cc index cbd012f35..4e228f0dc 100644 --- a/modules/gfx/src/impl/simple_renderer.cc +++ b/modules/gfx/src/impl/simple_renderer.cc @@ -24,7 +24,7 @@ #include <ost/gfx/gl_helper.hh> #include <ost/gfx/scene.hh> #include <ost/gfx/entity.hh> - +#include <ost/gfx/povray.hh> #include "simple_renderer.hh" namespace ost { namespace gfx { namespace impl { @@ -316,4 +316,28 @@ SimpleRenderer::~SimpleRenderer() } +void SimpleRenderer::RenderPov(PovState& pov, const std::string& name) +{ + pov.write_merge_or_union(name); + + for (AtomEntryMap::const_iterator it=view_.atom_map.begin(); + it!=view_.atom_map.end();++it) { + pov.write_sphere(it->second.atom.GetPos(), + options_->GetLineWidth()*0.05, + it->second.color, + name); + } + + for(BondEntryList::const_iterator it=view_.bond_list.begin();it!=view_.bond_list.end();++it) { + const geom::Vec3& p0=it->bond.GetFirst().GetPos(); + const geom::Vec3& p2=it->bond.GetSecond().GetPos(); + geom::Vec3 p1=(p0+p2)*0.5; + pov.write_cyl(p0,p1,options_->GetLineWidth()*0.05, + it->atom1->color,name,true); + pov.write_cyl(p1,p2,options_->GetLineWidth()*0.05, + it->atom2->color,name,true); + } + pov.inc() << " }\n"; +} + }}} diff --git a/modules/gfx/src/impl/simple_renderer.hh b/modules/gfx/src/impl/simple_renderer.hh index 87162e168..78038ffe5 100644 --- a/modules/gfx/src/impl/simple_renderer.hh +++ b/modules/gfx/src/impl/simple_renderer.hh @@ -45,7 +45,7 @@ public: virtual void Render(RenderPass pass); virtual ~SimpleRenderer(); - + virtual void RenderPov(PovState& pov, const std::string& name); void BlurSnapshot(); private: void RenderBlur(); -- GitLab