X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Ffilter-chemistry.cpp;h=363663ac3c8c34c946916077a4f73f8bd8cfc9f2;hb=d91c7044b45dde766203822b19e4affead5ce10f;hp=58e2fae6efab6042e78925f1f498dcc1d68a7486;hpb=ce2b2419b56b38d08c79720b2278f4b27e61d175;p=inkscape.git diff --git a/src/filter-chemistry.cpp b/src/filter-chemistry.cpp index 58e2fae6e..363663ac3 100644 --- a/src/filter-chemistry.cpp +++ b/src/filter-chemistry.cpp @@ -8,7 +8,7 @@ * bulia byak * Niko Kiirala * - * Copyright (C) 2006,2007 authors + * Copyright (C) 2006-2008 authors * * Released under GNU GPL, read the file 'COPYING' for more information */ @@ -21,7 +21,7 @@ #include "filter-chemistry.h" #include "filter-enums.h" -#include "sp-feblend.h" +#include "filters/blend.h" #include "sp-filter.h" #include "sp-filter-reference.h" #include "sp-gaussian-blur.h" @@ -115,7 +115,7 @@ SPFilter *new_filter(SPDocument *document) } SPFilterPrimitive * -filter_add_primitive(SPFilter *filter, const NR::FilterPrimitiveType type) +filter_add_primitive(SPFilter *filter, const Inkscape::Filters::FilterPrimitiveType type) { Inkscape::XML::Document *xml_doc = sp_document_repr_doc(filter->document); @@ -125,43 +125,43 @@ filter_add_primitive(SPFilter *filter, const NR::FilterPrimitiveType type) // set default values switch(type) { - case NR::NR_FILTER_BLEND: + case Inkscape::Filters::NR_FILTER_BLEND: repr->setAttribute("blend", "normal"); break; - case NR::NR_FILTER_COLORMATRIX: + case Inkscape::Filters::NR_FILTER_COLORMATRIX: break; - case NR::NR_FILTER_COMPONENTTRANSFER: + case Inkscape::Filters::NR_FILTER_COMPONENTTRANSFER: break; - case NR::NR_FILTER_COMPOSITE: + case Inkscape::Filters::NR_FILTER_COMPOSITE: break; - case NR::NR_FILTER_CONVOLVEMATRIX: + case Inkscape::Filters::NR_FILTER_CONVOLVEMATRIX: repr->setAttribute("order", "3 3"); repr->setAttribute("kernelMatrix", "0 0 0 0 0 0 0 0 0"); break; - case NR::NR_FILTER_DIFFUSELIGHTING: + case Inkscape::Filters::NR_FILTER_DIFFUSELIGHTING: break; - case NR::NR_FILTER_DISPLACEMENTMAP: + case Inkscape::Filters::NR_FILTER_DISPLACEMENTMAP: break; - case NR::NR_FILTER_FLOOD: + case Inkscape::Filters::NR_FILTER_FLOOD: break; - case NR::NR_FILTER_GAUSSIANBLUR: + case Inkscape::Filters::NR_FILTER_GAUSSIANBLUR: repr->setAttribute("stdDeviation", "1"); break; - case NR::NR_FILTER_IMAGE: + case Inkscape::Filters::NR_FILTER_IMAGE: break; - case NR::NR_FILTER_MERGE: + case Inkscape::Filters::NR_FILTER_MERGE: break; - case NR::NR_FILTER_MORPHOLOGY: + case Inkscape::Filters::NR_FILTER_MORPHOLOGY: break; - case NR::NR_FILTER_OFFSET: + case Inkscape::Filters::NR_FILTER_OFFSET: repr->setAttribute("dx", "0"); repr->setAttribute("dy", "0"); break; - case NR::NR_FILTER_SPECULARLIGHTING: + case Inkscape::Filters::NR_FILTER_SPECULARLIGHTING: break; - case NR::NR_FILTER_TILE: + case Inkscape::Filters::NR_FILTER_TILE: break; - case NR::NR_FILTER_TURBULENCE: + case Inkscape::Filters::NR_FILTER_TURBULENCE: break; default: break; @@ -319,20 +319,20 @@ new_filter_blend_gaussian_blur (SPDocument *document, const char *blendmode, gdo SPFilter * new_filter_simple_from_item (SPDocument *document, SPItem *item, const char *mode, gdouble radius) { - NR::Maybe const r = sp_item_bbox_desktop(item, SPItem::GEOMETRIC_BBOX); + Geom::OptRect const r = sp_item_bbox_desktop(item, SPItem::GEOMETRIC_BBOX); double width; double height; if (r) { - width = r->extent(NR::X); - height= r->extent(NR::Y); + width = r->dimensions()[Geom::X]; + height= r->dimensions()[Geom::Y]; } else { width = height = 0; } - NR::Matrix i2d = sp_item_i2d_affine (item); + Geom::Matrix i2d (sp_item_i2d_affine (item) ); - return (new_filter_blend_gaussian_blur (document, mode, radius, NR::expansion(i2d), NR::expansionX(i2d), NR::expansionY(i2d), width, height)); + return (new_filter_blend_gaussian_blur (document, mode, radius, i2d.descrim(), i2d.expansionX(), i2d.expansionY(), width, height)); } /** @@ -349,7 +349,7 @@ modify_filter_gaussian_blur_from_item(SPDocument *document, SPItem *item, gdouble radius) { if (!item->style || !item->style->filter.set) { - //return new_filter_gaussian_blur_from_item(document, item, radius); + return new_filter_simple_from_item(document, item, "normal", radius); } SPFilter *filter = SP_FILTER(item->style->getFilter()); @@ -367,27 +367,27 @@ modify_filter_gaussian_blur_from_item(SPDocument *document, SPItem *item, } // Determine the required standard deviation value - NR::Matrix i2d = sp_item_i2d_affine (item); - double expansion = NR::expansion(i2d); + Geom::Matrix i2d (sp_item_i2d_affine (item)); + double expansion = i2d.descrim(); double stdDeviation = radius; if (expansion != 0) stdDeviation /= expansion; // Get the object size - NR::Maybe const r = sp_item_bbox_desktop(item, SPItem::GEOMETRIC_BBOX); + Geom::OptRect const r = sp_item_bbox_desktop(item, SPItem::GEOMETRIC_BBOX); double width; double height; if (r) { - width = r->extent(NR::X); - height= r->extent(NR::Y); + width = r->dimensions()[Geom::X]; + height= r->dimensions()[Geom::Y]; } else { width = height = 0; } // Set the filter effects area Inkscape::XML::Node *repr = SP_OBJECT_REPR(item->style->getFilter()); - set_filter_area(repr, radius, expansion, NR::expansionX(i2d), - NR::expansionY(i2d), width, height); + set_filter_area(repr, radius, expansion, i2d.expansionX(), + i2d.expansionY(), width, height); // Search for gaussian blur primitives. If found, set the stdDeviation // of the first one and return. @@ -478,6 +478,7 @@ double get_single_gaussian_blur_radius(SPFilter *filter) } return x; } + return 0.0; }