Code

filterUnits and primitiveUnits are now actually read/set, percentages for primitiveUn...
[inkscape.git] / src / display / nr-filter-displacement-map.h
index 4b5c6ada55a3e2b1232bffb0e1a0deaf136ac75f..bb15b77a3c200c8a2cd98c122de61716390ea28e 100644 (file)
@@ -5,19 +5,21 @@
  * feDisplacementMap filter primitive renderer
  *
  * Authors:
- *   Felipe CorrĂȘa da Silva Sanches <felipe.sanches@gmail.com>
+ *   Felipe CorrĂȘa da Silva Sanches <juca@members.fsf.org>
  *
  * Copyright (C) 2007 authors
  *
  * Released under GNU GPL, read the file 'COPYING' for more information
  */
 
+#include "filters/displacementmap.h"
 #include "display/nr-filter-primitive.h"
 #include "display/nr-filter-slot.h"
-#include "libnr/nr-matrix.h"
+#include "display/nr-filter-units.h"
 #include "libnr/nr-rect-l.h"
 
-namespace NR {
+namespace Inkscape {
+namespace Filters {
 
 class FilterDisplacementMap : public FilterPrimitive {
 public:
@@ -27,19 +29,21 @@ public:
 
     virtual void set_input(int slot);
     virtual void set_input(int input, int slot);
-    virtual void set_scale(int s);
-    virtual void set_channel_selector(int channel, int s);
-    virtual int render(FilterSlot &slot, Matrix const &trans);
-    virtual void area_enlarge(NRRectL &area, Matrix const &trans);
+    virtual void set_scale(double s);
+    virtual void set_channel_selector(int s, FilterDisplacementMapChannelSelector channel);
+    virtual int render(FilterSlot &slot, FilterUnits const &units);
+    virtual void area_enlarge(NRRectL &area, Geom::Matrix const &trans);
+    virtual FilterTraits get_input_traits();
 
 private:
-    int scale;
+    double scale;
     int _input2;
-    int Xchannel;
-    int Ychannel;
+    FilterDisplacementMapChannelSelector Xchannel;
+    FilterDisplacementMapChannelSelector Ychannel;
 };
 
-} /* namespace NR */
+} /* namespace Filters */
+} /* namespace Inkscape */
 
 #endif /* __NR_FILTER_DISPLACEMENT_MAP_H__ */
 /*