diff --git a/src/sp-filter.cpp b/src/sp-filter.cpp
index 7197c1ec93539c53810f0d0db80ac58703a24882..cfd6253a3e7c0e64b8b9dd023abfad2e95ea0c92 100644 (file)
--- a/src/sp-filter.cpp
+++ b/src/sp-filter.cpp
-#define __SP_FILTER_CPP__
-
/** \file
* SVG <filter> implementation.
*/
/** \file
* SVG <filter> implementation.
*/
* Authors:
* Hugo Rodrigues <haa.rodrigues@gmail.com>
* Niko Kiirala <niko@kiirala.com>
* Authors:
* Hugo Rodrigues <haa.rodrigues@gmail.com>
* Niko Kiirala <niko@kiirala.com>
+ * Jon A. Cruz <jon@joncruz.org>
+ * Abhishek Sharma
*
* Copyright (C) 2006,2007 Authors
*
*
* Copyright (C) 2006,2007 Authors
*
filter->height = 0;
filter->filterUnits = SP_FILTER_UNITS_OBJECTBOUNDINGBOX;
filter->height = 0;
filter->filterUnits = SP_FILTER_UNITS_OBJECTBOUNDINGBOX;
- filter->primitiveUnits = SP_FILTER_UNITS_OBJECTBOUNDINGBOX;
+ filter->primitiveUnits = SP_FILTER_UNITS_USERSPACEONUSE;
filter->filterUnits_set = FALSE;
filter->primitiveUnits_set = FALSE;
filter->filterUnits_set = FALSE;
filter->primitiveUnits_set = FALSE;
@@ -136,17 +136,17 @@ sp_filter_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *rep
}
//Read values of key attributes from XML nodes into object.
}
//Read values of key attributes from XML nodes into object.
- sp_object_read_attr(object, "filterUnits");
- sp_object_read_attr(object, "primitiveUnits");
- sp_object_read_attr(object, "x");
- sp_object_read_attr(object, "y");
- sp_object_read_attr(object, "width");
- sp_object_read_attr(object, "height");
- sp_object_read_attr(object, "filterRes");
- sp_object_read_attr(object, "xlink:href");
+ object->readAttr( "filterUnits" );
+ object->readAttr( "primitiveUnits" );
+ object->readAttr( "x" );
+ object->readAttr( "y" );
+ object->readAttr( "width" );
+ object->readAttr( "height" );
+ object->readAttr( "filterRes" );
+ object->readAttr( "xlink:href" );
//is this necessary?
//is this necessary?
- sp_document_add_resource(document, "filter", object);
+ document->addResource("filter", object);
}
/**
}
/**
if (SP_OBJECT_DOCUMENT(object)) {
/* Unregister ourselves */
if (SP_OBJECT_DOCUMENT(object)) {
/* Unregister ourselves */
- sp_document_remove_resource(SP_OBJECT_DOCUMENT(object), "filter", SP_OBJECT(object));
+ SP_OBJECT_DOCUMENT(object)->removeResource("filter", SP_OBJECT(object));
}
//TODO: release resources here
}
//TODO: release resources here
break;
case SP_ATTR_PRIMITIVEUNITS:
if (value) {
break;
case SP_ATTR_PRIMITIVEUNITS:
if (value) {
- if (!strcmp(value, "userSpaceOnUse")) {
- filter->primitiveUnits = SP_FILTER_UNITS_USERSPACEONUSE;
- } else {
+ if (!strcmp(value, "objectBoundingBox")) {
filter->primitiveUnits = SP_FILTER_UNITS_OBJECTBOUNDINGBOX;
filter->primitiveUnits = SP_FILTER_UNITS_OBJECTBOUNDINGBOX;
+ } else {
+ filter->primitiveUnits = SP_FILTER_UNITS_USERSPACEONUSE;
}
filter->primitiveUnits_set = TRUE;
} else {
}
filter->primitiveUnits_set = TRUE;
} else {
- filter->primitiveUnits = SP_FILTER_UNITS_OBJECTBOUNDINGBOX;
+ filter->primitiveUnits = SP_FILTER_UNITS_USERSPACEONUSE;
filter->primitiveUnits_set = FALSE;
}
object->requestModified(SP_OBJECT_MODIFIED_FLAG);
filter->primitiveUnits_set = FALSE;
}
object->requestModified(SP_OBJECT_MODIFIED_FLAG);
sp_filter_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags)
{
SPFilter *filter = SP_FILTER(object);
sp_filter_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags)
{
SPFilter *filter = SP_FILTER(object);
- SPObject *child;
- Inkscape::XML::Node *crepr;
- /* Original from sp-item-group.cpp */
+ // Original from sp-item-group.cpp
if (flags & SP_OBJECT_WRITE_BUILD) {
if (flags & SP_OBJECT_WRITE_BUILD) {
- GSList *l;
if (!repr) {
repr = doc->createElement("svg:filter");
}
if (!repr) {
repr = doc->createElement("svg:filter");
}
- l = NULL;
- for (child = sp_object_first_child(object); child != NULL; child = SP_OBJECT_NEXT(child) ) {
- crepr = child->updateRepr(doc, NULL, flags);
- if (crepr) l = g_slist_prepend (l, crepr);
+ GSList *l = NULL;
+ for ( SPObject *child = object->firstChild(); child; child = child->getNext() ) {
+ Inkscape::XML::Node *crepr = child->updateRepr(doc, NULL, flags);
+ if (crepr) {
+ l = g_slist_prepend (l, crepr);
+ }
}
while (l) {
repr->addChild((Inkscape::XML::Node *) l->data, NULL);
}
while (l) {
repr->addChild((Inkscape::XML::Node *) l->data, NULL);
@@ -304,7 +303,7 @@ sp_filter_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::N
l = g_slist_remove (l, l->data);
}
} else {
l = g_slist_remove (l, l->data);
}
} else {
- for (child = sp_object_first_child(object) ; child != NULL; child = SP_OBJECT_NEXT(child) ) {
+ for ( SPObject *child = object->firstChild() ; child; child = child->getNext() ) {
child->updateRepr(flags);
}
}
child->updateRepr(flags);
}
}
@@ -322,11 +321,11 @@ sp_filter_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::N
if ((flags & SP_OBJECT_WRITE_ALL) || filter->primitiveUnits_set) {
switch (filter->primitiveUnits) {
if ((flags & SP_OBJECT_WRITE_ALL) || filter->primitiveUnits_set) {
switch (filter->primitiveUnits) {
- case SP_FILTER_UNITS_USERSPACEONUSE:
- repr->setAttribute("primitiveUnits", "userSpaceOnUse");
+ case SP_FILTER_UNITS_OBJECTBOUNDINGBOX:
+ repr->setAttribute("primitiveUnits", "objectBoundingBox");
break;
default:
break;
default:
- repr->setAttribute("primitiveUnits", "objectBoundingBox");
+ repr->setAttribute("primitiveUnits", "userSpaceOnUse");
break;
}
}
break;
}
}
@@ -446,6 +445,8 @@ void sp_filter_build_renderer(SPFilter *sp_filter, Inkscape::Filters::Filter *nr
sp_filter->_renderer = nr_filter;
sp_filter->_renderer = nr_filter;
+ nr_filter->set_filter_units(sp_filter->filterUnits);
+ nr_filter->set_primitive_units(sp_filter->primitiveUnits);
nr_filter->set_x(sp_filter->x);
nr_filter->set_y(sp_filter->y);
nr_filter->set_width(sp_filter->width);
nr_filter->set_x(sp_filter->x);
nr_filter->set_y(sp_filter->y);
nr_filter->set_width(sp_filter->width);
fill-column:99
End:
*/
fill-column:99
End:
*/
-// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :