diff options
| author | Krzysztof Kosi??ski <tweenk.pl@gmail.com> | 2013-09-19 02:05:00 +0000 |
|---|---|---|
| committer | Krzysztof KosiĆski <tweenk.pl@gmail.com> | 2013-09-19 02:05:00 +0000 |
| commit | f6e99d7d1b76dd7a7933f55ba095bdcb534f81b3 (patch) | |
| tree | cbee5d1eec2e1afe8c3f8033d528cab4504c3c49 /src/sp-mesh-patch.cpp | |
| parent | Encapsulate the shared memory hack for Cairo and GdkPixbuf in a class (diff) | |
| parent | Added gpl notice (diff) | |
| download | inkscape-f6e99d7d1b76dd7a7933f55ba095bdcb534f81b3.tar.gz inkscape-f6e99d7d1b76dd7a7933f55ba095bdcb534f81b3.zip | |
Merge C++ification of the SP tree by Markus Engel
(bzr r12532)
Diffstat (limited to 'src/sp-mesh-patch.cpp')
| -rw-r--r-- | src/sp-mesh-patch.cpp | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/src/sp-mesh-patch.cpp b/src/sp-mesh-patch.cpp index ff1a18a01..216de8270 100644 --- a/src/sp-mesh-patch.cpp +++ b/src/sp-mesh-patch.cpp @@ -17,6 +17,19 @@ #include "sp-mesh-patch.h" #include "style.h" +#include "attributes.h" +#include "xml/repr.h" + +#include "sp-factory.h" + +namespace { + SPObject* createMeshPatch() { + return new SPMeshPatch(); + } + + bool meshPatchRegistered = SPFactory::instance().registerObject("svg:meshPatch", createMeshPatch); +} + SPMeshPatch* SPMeshPatch::getNextMeshPatch() { SPMeshPatch *result = 0; @@ -51,6 +64,61 @@ SPMeshPatch* SPMeshPatch::getPrevMeshPatch() return result; } + +/* + * Mesh Patch + */ + +SPMeshPatch::SPMeshPatch() : SPObject() { + this->tensor_string = NULL; +} + +SPMeshPatch::~SPMeshPatch() { +} + +void SPMeshPatch::build(SPDocument* doc, Inkscape::XML::Node* repr) { + SPObject::build(doc, repr); + + this->readAttr( "tensor" ); +} + +/** + * Virtual build: set meshpatch attributes from its associated XML node. + */ + +void SPMeshPatch::set(unsigned int key, const gchar* value) { + switch (key) { + case SP_ATTR_TENSOR: { + if (value) { + this->tensor_string = new Glib::ustring( value ); + // std::cout << "sp_meshpatch_set: Tensor string: " << patch->tensor_string->c_str() << std::endl; + } + break; + } + default: { + // Do nothing + } + } +} + +/** + * Virtual set: set attribute to value. + */ + +Inkscape::XML::Node* SPMeshPatch::write(Inkscape::XML::Document* xml_doc, Inkscape::XML::Node* repr, guint flags) { + if ((flags & SP_OBJECT_WRITE_BUILD) && !repr) { + repr = xml_doc->createElement("svg:meshPatch"); + } + + SPObject::write(xml_doc, repr, flags); + + return repr; +} + +/** + * Virtual write: write object attributes to repr. + */ + /* Local Variables: mode:c++ |
