From 698bf1bbbe51f7ee599745c0b0e27134438c58c9 Mon Sep 17 00:00:00 2001
From: Ansgar Philippsen <ansgar.philippsen@gmail.com>
Date: Thu, 24 Feb 2011 12:46:55 -0500
Subject: [PATCH] fixed BZDNG-217; autoslab not working properly for hsc
 objects

---
 modules/gfx/src/impl/cartoon_renderer.cc | 21 +++++++++++++++++++++
 modules/gfx/src/impl/cartoon_renderer.hh |  2 ++
 2 files changed, 23 insertions(+)

diff --git a/modules/gfx/src/impl/cartoon_renderer.cc b/modules/gfx/src/impl/cartoon_renderer.cc
index 1403c3891..e2f6071f5 100644
--- a/modules/gfx/src/impl/cartoon_renderer.cc
+++ b/modules/gfx/src/impl/cartoon_renderer.cc
@@ -51,6 +51,27 @@ void CartoonRenderer::SetForceTube(bool force_tube)
   force_tube_ = force_tube;
 }
 
+geom::AlignedCuboid CartoonRenderer::GetBoundingBox() const
+{
+  geom::Vec3 mmin(std::numeric_limits<float>::max(),
+		  std::numeric_limits<float>::max(),
+		  std::numeric_limits<float>::max());
+  geom::Vec3 mmax(-std::numeric_limits<float>::max(),
+		  -std::numeric_limits<float>::max(),
+		  -std::numeric_limits<float>::max());
+		  
+  assert(!(state_ & DIRTY_VIEW));
+  for(unsigned int llc=0;llc<spline_list_list_.size();++llc) {
+    SplineEntryList slist = spline_list_list_[llc];
+    for(unsigned int lc=0;lc<slist.size();++lc) {
+      mmin=geom::Min(mmin, slist[lc].position);
+      mmax=geom::Max(mmax, slist[lc].position);
+    }
+  }
+
+  return geom::AlignedCuboid(mmin, mmax);
+}
+  
 void CartoonRenderer::PrepareRendering()
 {
   TraceRendererBase::PrepareRendering();
diff --git a/modules/gfx/src/impl/cartoon_renderer.hh b/modules/gfx/src/impl/cartoon_renderer.hh
index 59be06b59..1d60eec76 100644
--- a/modules/gfx/src/impl/cartoon_renderer.hh
+++ b/modules/gfx/src/impl/cartoon_renderer.hh
@@ -41,6 +41,8 @@ class DLLEXPORT_OST_GFX CartoonRenderer: public TraceRendererBase {
 public:
   CartoonRenderer(BackboneTrace* trace, bool force_tube=false);
 
+  virtual geom::AlignedCuboid GetBoundingBox() const;  
+  
   virtual void PrepareRendering();
 
   virtual bool CanSetOptions(RenderOptionsPtr& render_options);
-- 
GitLab