Code

Use g_base64_encode_step when importing images via drag and drop.
[inkscape.git] / src / display / nr-filter-gaussian.h
index af6dc0d2a3386146365479cdf07875f3bf3db3f9..763e42de22239d9c87002e4f32d2db5529f60912 100644 (file)
@@ -7,6 +7,7 @@
  * Authors:
  *   Niko Kiirala <niko@kiirala.com>
  *   bulia byak
+ *   Jasper van de Gronde <th.v.d.gronde@hccnet.nl>
  *
  * Copyright (C) 2006 authors
  *
 
 #include "display/nr-filter-primitive.h"
 #include "display/nr-filter-slot.h"
+#include "display/nr-filter-units.h"
 #include "libnr/nr-pixblock.h"
-#include "libnr/nr-matrix.h"
+#include <2geom/forward.h>
+#include "libnr/nr-rect-l.h"
 
 enum {
     BLUR_QUALITY_BEST = 2,
@@ -26,7 +29,8 @@ enum {
     BLUR_QUALITY_WORST = -2
 };
 
-namespace NR {
+namespace Inkscape {
+namespace Filters {
 
 class FilterGaussian : public FilterPrimitive {
 public:
@@ -34,8 +38,9 @@ public:
     static FilterPrimitive *create();
     virtual ~FilterGaussian();
 
-    virtual int render(FilterSlot &slot, Matrix const &trans);
-    virtual int get_enlarge(Matrix const &m);
+    virtual int render(FilterSlot &slot, FilterUnits const &units);
+    virtual void area_enlarge(NRRectL &area, Geom::Matrix const &m);
+    virtual FilterTraits get_input_traits();
 
     /**
      * Set the standard deviation value for gaussian blur. Deviation along
@@ -57,26 +62,11 @@ public:
 private:
     double _deviation_x;
     double _deviation_y;
-
-    int _kernel_size(Matrix const &trans);
-    void _make_kernel(double *kernel, double deviation, double expansion);
-    int _effect_area_scr_x(Matrix const &trans);
-    int _effect_area_scr_y(Matrix const &trans);
-    int _effect_subsample_step(int scr_len_x, int quality);
-    int _effect_subsample_step_log2(int scr_len_x, int quality);
-
-    inline int _min(int const a, int const b)
-    {
-        return ((a < b) ? a : b);
-    }
-    inline int _max(int const a, int const b)
-    {
-        return ((a > b) ? a : b);
-    }
 };
 
 
-} /* namespace NR */
+} /* namespace Filters */
+} /* namespace Inkscape */