From 91d362a968876d2d4b6b5037bf6b5caea7c9576d Mon Sep 17 00:00:00 2001 From: Alexey Fedoseev Date: Thu, 25 Apr 2024 10:31:24 +0300 Subject: [PATCH] add SM geometry export to Cyberiada-GraphML format --- cyberiadaml.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/cyberiadaml.c b/cyberiadaml.c index a9c11d8..cda4a9e 100644 --- a/cyberiadaml.c +++ b/cyberiadaml.c @@ -3560,6 +3560,18 @@ static int cyberiada_write_sm_cyberiada(CyberiadaSM* sm, xmlTextWriterPtr writer XML_WRITE_TEXT(writer, sm->nodes->title); XML_WRITE_CLOSE_E(writer); + if (sm->nodes->geometry_rect) { + XML_WRITE_OPEN_E_I(writer, GRAPHML_DATA_ELEMENT, 2); + XML_WRITE_ATTR(writer, GRAPHML_KEY_ATTRIBUTE, GRAPHML_CYB_KEY_GEOMETRY); + if ((res = cyberiada_write_geometry_rect_cyberiada(writer, + sm->nodes->geometry_rect, + 3)) != CYBERIADA_NO_ERROR) { + ERROR("Cannot write SM %s geometry rect\n", sm->nodes->id); + return CYBERIADA_XML_ERROR; + } + XML_WRITE_CLOSE_E_I(writer, 2); + } + /* write nodes */ for (cur_node = sm->nodes->children; cur_node; cur_node = cur_node->next) { res = cyberiada_write_node_cyberiada(writer, cur_node, 2);