Jon Ciesla bf231a
From 6f1ab5f4b470bcf4e7e72aac6e2f7f6ee3e7b424 Mon Sep 17 00:00:00 2001
Jon Ciesla bf231a
From: Tom Hughes <tom@compton.nu>
Jon Ciesla bf231a
Date: Sat, 22 Jun 2013 12:16:42 +0100
Jon Ciesla bf231a
Subject: [PATCH 13/15] Modify agg conv classes to allow access to the original
Jon Ciesla bf231a
 geometry type
Jon Ciesla bf231a
Jon Ciesla bf231a
---
Jon Ciesla bf231a
 include/agg_conv_adaptor_vcgen.h | 2 ++
Jon Ciesla bf231a
 include/agg_conv_adaptor_vpgen.h | 1 +
Jon Ciesla bf231a
 include/agg_conv_clip_polygon.h  | 1 +
Jon Ciesla bf231a
 include/agg_conv_clip_polyline.h | 1 +
Jon Ciesla bf231a
 include/agg_conv_smooth_poly1.h  | 2 ++
Jon Ciesla bf231a
 5 files changed, 7 insertions(+)
Jon Ciesla bf231a
Jon Ciesla bf231a
diff --git a/include/agg_conv_adaptor_vcgen.h b/include/agg_conv_adaptor_vcgen.h
Jon Ciesla bf231a
index 7bd9b07..fef4579 100644
Jon Ciesla bf231a
--- a/include/agg_conv_adaptor_vcgen.h
Jon Ciesla bf231a
+++ b/include/agg_conv_adaptor_vcgen.h
Jon Ciesla bf231a
@@ -38,6 +38,7 @@ namespace agg
Jon Ciesla bf231a
 
Jon Ciesla bf231a
         void rewind(unsigned) {}
Jon Ciesla bf231a
         unsigned vertex(double*, double*) { return path_cmd_stop; }
Jon Ciesla bf231a
+        unsigned type() const { return 0; }
Jon Ciesla bf231a
     };
Jon Ciesla bf231a
 
Jon Ciesla bf231a
 
Jon Ciesla bf231a
@@ -73,6 +74,7 @@ namespace agg
Jon Ciesla bf231a
         }
Jon Ciesla bf231a
 
Jon Ciesla bf231a
         unsigned vertex(double* x, double* y);
Jon Ciesla bf231a
+        unsigned type() const { return m_source->type(); }
Jon Ciesla bf231a
 
Jon Ciesla bf231a
     private:
Jon Ciesla bf231a
         // Prohibit copying
Jon Ciesla bf231a
diff --git a/include/agg_conv_adaptor_vpgen.h b/include/agg_conv_adaptor_vpgen.h
Jon Ciesla bf231a
index dca9415..a39102d 100644
Jon Ciesla bf231a
--- a/include/agg_conv_adaptor_vpgen.h
Jon Ciesla bf231a
+++ b/include/agg_conv_adaptor_vpgen.h
Jon Ciesla bf231a
@@ -42,6 +42,7 @@ namespace agg
Jon Ciesla bf231a
 
Jon Ciesla bf231a
         void rewind(unsigned path_id);
Jon Ciesla bf231a
         unsigned vertex(double* x, double* y);
Jon Ciesla bf231a
+        unsigned type() const { return m_source->type(); }
Jon Ciesla bf231a
 
Jon Ciesla bf231a
     private:
Jon Ciesla bf231a
         conv_adaptor_vpgen(const conv_adaptor_vpgen<VertexSource, VPGen>&);
Jon Ciesla bf231a
diff --git a/include/agg_conv_clip_polygon.h b/include/agg_conv_clip_polygon.h
Jon Ciesla bf231a
index 3c34590..e417a7d 100644
Jon Ciesla bf231a
--- a/include/agg_conv_clip_polygon.h
Jon Ciesla bf231a
+++ b/include/agg_conv_clip_polygon.h
Jon Ciesla bf231a
@@ -60,6 +60,7 @@ namespace agg
Jon Ciesla bf231a
         double y1() const { return base_type::vpgen().y1(); }
Jon Ciesla bf231a
         double x2() const { return base_type::vpgen().x2(); }
Jon Ciesla bf231a
         double y2() const { return base_type::vpgen().y2(); }
Jon Ciesla bf231a
+        unsigned type() const { return base_type::type(); }
Jon Ciesla bf231a
 
Jon Ciesla bf231a
     private:
Jon Ciesla bf231a
         conv_clip_polygon(const conv_clip_polygon<VertexSource>&);
Jon Ciesla bf231a
diff --git a/include/agg_conv_clip_polyline.h b/include/agg_conv_clip_polyline.h
Jon Ciesla bf231a
index d45067f..0de4b57 100644
Jon Ciesla bf231a
--- a/include/agg_conv_clip_polyline.h
Jon Ciesla bf231a
+++ b/include/agg_conv_clip_polyline.h
Jon Ciesla bf231a
@@ -60,6 +60,7 @@ namespace agg
Jon Ciesla bf231a
         double y1() const { return base_type::vpgen().y1(); }
Jon Ciesla bf231a
         double x2() const { return base_type::vpgen().x2(); }
Jon Ciesla bf231a
         double y2() const { return base_type::vpgen().y2(); }
Jon Ciesla bf231a
+        unsigned type() const { return base_type::type(); }
Jon Ciesla bf231a
 
Jon Ciesla bf231a
     private:
Jon Ciesla bf231a
         conv_clip_polyline(const conv_clip_polyline<VertexSource>&);
Jon Ciesla bf231a
diff --git a/include/agg_conv_smooth_poly1.h b/include/agg_conv_smooth_poly1.h
Jon Ciesla bf231a
index 15f7f8d..0956c4e 100644
Jon Ciesla bf231a
--- a/include/agg_conv_smooth_poly1.h
Jon Ciesla bf231a
+++ b/include/agg_conv_smooth_poly1.h
Jon Ciesla bf231a
@@ -48,6 +48,7 @@ namespace agg
Jon Ciesla bf231a
 
Jon Ciesla bf231a
         void   smooth_value(double v) { base_type::generator().smooth_value(v); }
Jon Ciesla bf231a
         double smooth_value() const { return base_type::generator().smooth_value(); }
Jon Ciesla bf231a
+        unsigned type() const { return base_type::type(); }
Jon Ciesla bf231a
 
Jon Ciesla bf231a
     private:
Jon Ciesla bf231a
         conv_smooth_poly1(const conv_smooth_poly1<VertexSource>&);
Jon Ciesla bf231a
@@ -70,6 +71,7 @@ namespace agg
Jon Ciesla bf231a
 
Jon Ciesla bf231a
         void   smooth_value(double v) { m_smooth.generator().smooth_value(v); }
Jon Ciesla bf231a
         double smooth_value() const { return m_smooth.generator().smooth_value(); }
Jon Ciesla bf231a
+        unsigned type() const { return m_smooth.type(); }
Jon Ciesla bf231a
 
Jon Ciesla bf231a
     private:
Jon Ciesla bf231a
         conv_smooth_poly1_curve(const conv_smooth_poly1_curve<VertexSource>&);
Jon Ciesla bf231a
-- 
Jon Ciesla bf231a
1.8.1.4
Jon Ciesla bf231a