diff options
| author | Krzysztof Kosi??ski <tweenk.pl@gmail.com> | 2011-04-07 23:42:04 +0000 |
|---|---|---|
| committer | Krzysztof KosiĆski <tweenk.pl@gmail.com> | 2011-04-07 23:42:04 +0000 |
| commit | 945ce419c806c73d70203dec33ececafbe108a92 (patch) | |
| tree | cfcdb59bf47e9db7f9e01f7eebb59924bdeaea94 /src/filter-chemistry.cpp | |
| parent | Merge from trunk (again) (diff) | |
| parent | Extensions. SVG+media fix (see Bug #400356). (diff) | |
| download | inkscape-945ce419c806c73d70203dec33ececafbe108a92.tar.gz inkscape-945ce419c806c73d70203dec33ececafbe108a92.zip | |
Merge from trunk
(bzr r9508.1.73)
Diffstat (limited to 'src/filter-chemistry.cpp')
| -rw-r--r-- | src/filter-chemistry.cpp | 45 |
1 files changed, 23 insertions, 22 deletions
diff --git a/src/filter-chemistry.cpp b/src/filter-chemistry.cpp index 4990404a4..16f5a6e85 100644 --- a/src/filter-chemistry.cpp +++ b/src/filter-chemistry.cpp @@ -40,7 +40,7 @@ static guint count_filter_hrefs(SPObject *o, SPFilter *filter) guint i = 0; - SPStyle *style = SP_OBJECT_STYLE(o); + SPStyle *style = o->style; if (style && style->filter.set && style->getFilter() == filter) @@ -328,7 +328,7 @@ new_filter_simple_from_item (SPDocument *document, SPItem *item, const char *mod width = height = 0; } - Geom::Matrix i2d (item->i2d_affine () ); + Geom::Affine i2d (item->i2d_affine () ); return (new_filter_blend_gaussian_blur (document, mode, radius, i2d.descrim(), i2d.expansionX(), i2d.expansionY(), width, height)); } @@ -354,8 +354,8 @@ SPFilter *modify_filter_gaussian_blur_from_item(SPDocument *document, SPItem *it // If there are more users for this filter, duplicate it if (filter->hrefcount > count_filter_hrefs(item, filter)) { - Inkscape::XML::Node *repr = SP_OBJECT_REPR(item->style->getFilter())->duplicate(xml_doc); - SPDefs *defs = (SPDefs *) SP_DOCUMENT_DEFS(document); + Inkscape::XML::Node *repr = item->style->getFilter()->getRepr()->duplicate(xml_doc); + SPDefs *defs = reinterpret_cast<SPDefs *>(SP_DOCUMENT_DEFS(document)); defs->appendChild(repr); filter = SP_FILTER( document->getObjectByRepr(repr) ); @@ -363,7 +363,7 @@ SPFilter *modify_filter_gaussian_blur_from_item(SPDocument *document, SPItem *it } // Determine the required standard deviation value - Geom::Matrix i2d (item->i2d_affine ()); + Geom::Affine i2d (item->i2d_affine ()); double expansion = i2d.descrim(); double stdDeviation = radius; if (expansion != 0) @@ -381,7 +381,7 @@ SPFilter *modify_filter_gaussian_blur_from_item(SPDocument *document, SPItem *it } // Set the filter effects area - Inkscape::XML::Node *repr = SP_OBJECT_REPR(item->style->getFilter()); + Inkscape::XML::Node *repr = item->style->getFilter()->getRepr(); set_filter_area(repr, radius, expansion, i2d.expansionX(), i2d.expansionY(), width, height); @@ -408,7 +408,7 @@ SPFilter *modify_filter_gaussian_blur_from_item(SPDocument *document, SPItem *it sp_repr_set_svg_double(b_repr, "stdDeviation", stdDeviation); //set feGaussianBlur as child of filter node - SP_OBJECT_REPR(filter)->appendChild(b_repr); + filter->getRepr()->appendChild(b_repr); Inkscape::GC::release(b_repr); return filter; @@ -416,13 +416,14 @@ SPFilter *modify_filter_gaussian_blur_from_item(SPDocument *document, SPItem *it void remove_filter (SPObject *item, bool recursive) { - SPCSSAttr *css = sp_repr_css_attr_new (); - sp_repr_css_unset_property (css, "filter"); - if (recursive) - sp_repr_css_change_recursive(SP_OBJECT_REPR(item), css, "style"); - else - sp_repr_css_change (SP_OBJECT_REPR(item), css, "style"); - sp_repr_css_attr_unref (css); + SPCSSAttr *css = sp_repr_css_attr_new(); + sp_repr_css_unset_property(css, "filter"); + if (recursive) { + sp_repr_css_change_recursive(item->getRepr(), css, "style"); + } else { + sp_repr_css_change(item->getRepr(), css, "style"); + } + sp_repr_css_attr_unref(css); } /** @@ -436,7 +437,7 @@ void remove_filter_gaussian_blur (SPObject *item) { if (item->style && item->style->filter.set && item->style->getFilter()) { // Search for the first blur primitive and remove it. (if found) - Inkscape::XML::Node *repr = SP_OBJECT_REPR(item->style->getFilter()); + Inkscape::XML::Node *repr = item->style->getFilter()->getRepr(); Inkscape::XML::Node *primitive = repr->firstChild(); while (primitive) { if (strcmp("svg:feGaussianBlur", primitive->name()) == 0) { @@ -455,18 +456,18 @@ void remove_filter_gaussian_blur (SPObject *item) bool filter_is_single_gaussian_blur(SPFilter *filter) { - return (SP_OBJECT(filter)->firstChild() && - SP_OBJECT(filter)->firstChild() == SP_OBJECT(filter)->lastChild() && - SP_IS_GAUSSIANBLUR(SP_OBJECT(filter)->firstChild())); + return (filter->firstChild() && + (filter->firstChild() == filter->lastChild()) && + SP_IS_GAUSSIANBLUR(filter->firstChild())); } double get_single_gaussian_blur_radius(SPFilter *filter) { - if (SP_OBJECT(filter)->firstChild() && - SP_OBJECT(filter)->firstChild() == SP_OBJECT(filter)->lastChild() && - SP_IS_GAUSSIANBLUR(SP_OBJECT(filter)->firstChild())) { + if (filter->firstChild() && + (filter->firstChild() == filter->lastChild()) && + SP_IS_GAUSSIANBLUR(filter->firstChild())) { - SPGaussianBlur *gb = SP_GAUSSIANBLUR(SP_OBJECT(filter)->firstChild()); + SPGaussianBlur *gb = SP_GAUSSIANBLUR(filter->firstChild()); double x = gb->stdDeviation.getNumber(); double y = gb->stdDeviation.getOptNumber(); if (x > 0 && y > 0) { |
