summaryrefslogtreecommitdiffstats
path: root/src/sp-mesh-patch.cpp
diff options
context:
space:
mode:
authorMarkus Engel <markus.engel@tum.de>2013-04-05 23:36:16 +0000
committerMarkus Engel <markus.engel@tum.de>2013-04-05 23:36:16 +0000
commitb0cc47554b385fb68643d07efe6e42366c7121ad (patch)
treebb7fb4babd001b1397386197d7e486187fd0db4d /src/sp-mesh-patch.cpp
parentMerged Item. (diff)
downloadinkscape-b0cc47554b385fb68643d07efe6e42366c7121ad.tar.gz
inkscape-b0cc47554b385fb68643d07efe6e42366c7121ad.zip
Merged PaintServer and subclasses; moved Gradient classes to own files.
(bzr r11608.1.82)
Diffstat (limited to 'src/sp-mesh-patch.cpp')
-rw-r--r--src/sp-mesh-patch.cpp77
1 files changed, 77 insertions, 0 deletions
diff --git a/src/sp-mesh-patch.cpp b/src/sp-mesh-patch.cpp
index ff1a18a01..e3e9044a5 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,70 @@ SPMeshPatch* SPMeshPatch::getPrevMeshPatch()
return result;
}
+
+/*
+ * Mesh Patch
+ */
+
+SPMeshPatch::SPMeshPatch() : SPObject(), CObject(this) {
+ delete this->cobject;
+ this->cobject = this;
+
+ this->tensor_string = NULL;
+}
+
+SPMeshPatch::~SPMeshPatch() {
+}
+
+void SPMeshPatch::build(SPDocument* doc, Inkscape::XML::Node* repr) {
+ SPMeshPatch* object = this;
+
+ CObject::build(doc, repr);
+
+ object->readAttr( "tensor" );
+}
+
+/**
+ * Virtual build: set meshpatch attributes from its associated XML node.
+ */
+
+void SPMeshPatch::set(unsigned int key, const gchar* value) {
+ SPMeshPatch* object = this;
+
+ SPMeshPatch *patch = SP_MESHPATCH(object);
+
+ switch (key) {
+ case SP_ATTR_TENSOR: {
+ if (value) {
+ patch->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");
+ }
+
+ CObject::write(xml_doc, repr, flags);
+
+ return repr;
+}
+
+/**
+ * Virtual write: write object attributes to repr.
+ */
+
/*
Local Variables:
mode:c++