add legacy YED format tests
This commit is contained in:
40
tests/17-autoborder-legacy.cpp
Normal file
40
tests/17-autoborder-legacy.cpp
Normal file
@@ -0,0 +1,40 @@
|
||||
/* -----------------------------------------------------------------------------
|
||||
* The Cyberiada GraphML C++ library implemention
|
||||
*
|
||||
* The test
|
||||
*
|
||||
* Copyright (C) 2024 Alexey Fedoseev <aleksey@fedoseev.net>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see https://www.gnu.org/licenses/
|
||||
* ----------------------------------------------------------------------------- */
|
||||
|
||||
#include <iostream>
|
||||
#include "cyberiadamlpp.h"
|
||||
|
||||
using namespace Cyberiada;
|
||||
using namespace std;
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
Document d;
|
||||
try {
|
||||
d.load(string(argv[0]) + "-input.graphml", formatLegacyYED);
|
||||
cout << d << endl;
|
||||
d.save(string(argv[0]) + ".graphml", formatCyberiada10);
|
||||
} catch (const Cyberiada::Exception& e) {
|
||||
cerr << e.str() << endl;
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
166
tests/17-autoborder-legacy.test-input.graphml
Normal file
166
tests/17-autoborder-legacy.test-input.graphml
Normal file
@@ -0,0 +1,166 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:java="http://www.yworks.com/xml/yfiles-common/1.0/java" xmlns:sys="http://www.yworks.com/xml/yfiles-common/markup/primitives/2.0" xmlns:x="http://www.yworks.com/xml/yfiles-common/markup/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:y="http://www.yworks.com/xml/graphml" xmlns:yed="http://www.yworks.com/xml/yed/3" yed:schemaLocation="http://graphml.graphdrawing.org/xmlns http://www.yworks.com/xml/schema/graphml/1.1/ygraphml.xsd" SchemeName="Автобортник" entryPosition="-1573,862 1002,069">
|
||||
<key attr.name="Description" attr.type="string" for="graph" id="d0" />
|
||||
<key for="port" id="d1" yfiles.type="portgraphics" />
|
||||
<key for="port" id="d2" yfiles.type="portgeometry" />
|
||||
<key for="port" id="d3" yfiles.type="portuserdata" />
|
||||
<key attr.name="url" attr.type="string" for="node" id="d4" />
|
||||
<key attr.name="description" attr.type="string" for="node" id="d5" />
|
||||
<key for="node" id="d6" yfiles.type="nodegraphics" />
|
||||
<key for="graphml" id="d7" yfiles.type="resources" />
|
||||
<key attr.name="url" attr.type="string" for="edge" id="d8" />
|
||||
<key attr.name="description" attr.type="string" for="edge" id="d9" />
|
||||
<key for="edge" id="d10" yfiles.type="edgegraphics" />
|
||||
<graph edgedefault="directed" id="G">
|
||||
<data key="d0" xml:space="preserve" />
|
||||
<node id="">
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.bpmn.Event.withShadow">
|
||||
<y:Geometry x="-1628" y="748" width="10" height="10" />
|
||||
<y:Fill color="#333333" color2="#000000" transparent="false" />
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0" />
|
||||
<y:NodeLabel />
|
||||
</y:GenericNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n0" yfiles.foldertype="group">
|
||||
<data key="d4" xml:space="preserve" />
|
||||
<data key="d6">
|
||||
<y:ProxyAutoBoundsNode>
|
||||
<y:Realizers active="0">
|
||||
<y:GroupNode>
|
||||
<y:Geometry x="-786" y="492" width="517" height="770" />
|
||||
<y:Fill color="#F5F5F5" transparent="false" />
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0" />
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="node_width" backgroundColor="#EBEBEB" borderDistance="0.0" fontFamily="Dialog" fontSize="15" fontStyle="bold" hasLineColor="false" height="22" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="517" x="0" xml:space="preserve" y="0">Бой</y:NodeLabel>
|
||||
<y:NodeLabel alignment="left" autoSizePolicy="node_size" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="770" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="517" x="0" xml:space="preserve" y="0">entry/
|
||||
|
||||
exit/
|
||||
</y:NodeLabel>
|
||||
<y:Shape type="roundrectangle" />
|
||||
<y:State closed="false" closedHeight="50.0" closedWidth="50.0" innerGraphDisplayEnabled="false" />
|
||||
<y:NodeBounds considerNodeLabelSize="true" />
|
||||
<y:Insets bottom="15" bottomF="15.0" left="15" leftF="15.0" right="15" rightF="15.0" top="15" topF="15.0" />
|
||||
<y:BorderInsets bottom="0" bottomF="0.0" left="0" leftF="0.0" right="0" rightF="0.0" top="0" topF="0.0" />
|
||||
</y:GroupNode>
|
||||
</y:Realizers>
|
||||
</y:ProxyAutoBoundsNode>
|
||||
</data>
|
||||
<graph edgedefault="directed" id="n0:">
|
||||
<node id="n0::n1">
|
||||
<data key="d6">
|
||||
<y:GenericNode>
|
||||
<y:Geometry x="-788" y="645" width="413" height="208" />
|
||||
<y:Fill color="#E8EEF7" color2="#B7C9E3" transparent="false" />
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0" />
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="node_width" backgroundColor="#B7C9E3" configuration="com.yworks.entityRelationship.label.name" fontFamily="Dialog" fontSize="15" fontStyle="bold" hasLineColor="false" height="22" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="413" x="0" xml:space="preserve" y="0">Сближение</y:NodeLabel>
|
||||
<y:NodeLabel alignment="left" autoSizePolicy="content" configuration="com.yworks.entityRelationship.label.name" fontFamily="Consolas" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="208" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="413" x="0" xml:space="preserve" y="0">entry/
|
||||
МодульДвижения.ДвигатьсяКЦели()
|
||||
|
||||
exit/
|
||||
</y:NodeLabel>
|
||||
</y:GenericNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n0::n2">
|
||||
<data key="d6">
|
||||
<y:GenericNode>
|
||||
<y:Geometry x="-784" y="311" width="413" height="208" />
|
||||
<y:Fill color="#E8EEF7" color2="#B7C9E3" transparent="false" />
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0" />
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="node_width" backgroundColor="#B7C9E3" configuration="com.yworks.entityRelationship.label.name" fontFamily="Dialog" fontSize="15" fontStyle="bold" hasLineColor="false" height="22" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="413" x="0" xml:space="preserve" y="0">Атака</y:NodeLabel>
|
||||
<y:NodeLabel alignment="left" autoSizePolicy="content" configuration="com.yworks.entityRelationship.label.name" fontFamily="Consolas" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="208" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="413" x="0" xml:space="preserve" y="0">entry/
|
||||
ОружиеЦелевое.АтаковатьЦель()
|
||||
|
||||
exit/
|
||||
</y:NodeLabel>
|
||||
</y:GenericNode>
|
||||
</data>
|
||||
</node>
|
||||
</graph>
|
||||
</node>
|
||||
<node id="n3">
|
||||
<data key="d6">
|
||||
<y:GenericNode>
|
||||
<y:Geometry x="-1573" y="738" width="413" height="288" />
|
||||
<y:Fill color="#E8EEF7" color2="#B7C9E3" transparent="false" />
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0" />
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="node_width" backgroundColor="#B7C9E3" configuration="com.yworks.entityRelationship.label.name" fontFamily="Dialog" fontSize="15" fontStyle="bold" hasLineColor="false" height="22" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="413" x="0" xml:space="preserve" y="0">Скан</y:NodeLabel>
|
||||
<y:NodeLabel alignment="left" autoSizePolicy="content" configuration="com.yworks.entityRelationship.label.name" fontFamily="Consolas" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="288" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="413" x="0" xml:space="preserve" y="0">entry/
|
||||
Сенсор.ПоискВрагаПоДистанции(мин)
|
||||
|
||||
exit/
|
||||
Сенсор.ОстановкаПоиска()
|
||||
</y:NodeLabel>
|
||||
</y:GenericNode>
|
||||
</data>
|
||||
</node>
|
||||
<edge source="n0" target="n3">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0" sy="0" tx="0" ty="0" />
|
||||
<y:LineStyle color="#000000" type="line" width="1.0" />
|
||||
<y:Arrows source="none" target="standard" />
|
||||
<y:EdgeLabel alignment="center" backgroundColor="#F5F5F5" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasLineColor="false" horizontalTextPosition="center" iconTextGap="4" modelName="centered" modelPosition="center" preferredPlacement="center_on_edge" ratio="5.0" textColor="#000000" verticalTextPosition="bottom" visible="true" xml:space="preserve">АнализаторЦели.ЦельПотеряна/
|
||||
<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" placement="center" side="on_edge" sideReference="relative_to_edge_flow" /></y:EdgeLabel>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge source="n0" target="n3">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0" sy="0" tx="0" ty="0" />
|
||||
<y:LineStyle color="#000000" type="line" width="1.0" />
|
||||
<y:Arrows source="none" target="standard" />
|
||||
<y:EdgeLabel alignment="center" backgroundColor="#F5F5F5" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasLineColor="false" horizontalTextPosition="center" iconTextGap="4" modelName="centered" modelPosition="center" preferredPlacement="center_on_edge" ratio="5.0" textColor="#000000" verticalTextPosition="bottom" visible="true" xml:space="preserve">АнализаторЦели.ЦельУничтожена/
|
||||
<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" placement="center" side="on_edge" sideReference="relative_to_edge_flow" /></y:EdgeLabel>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge source="n3" target="n0::n1">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0" sy="0" tx="0" ty="0" />
|
||||
<y:LineStyle color="#000000" type="line" width="1.0" />
|
||||
<y:Arrows source="none" target="standard" />
|
||||
<y:EdgeLabel alignment="center" backgroundColor="#F5F5F5" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasLineColor="false" horizontalTextPosition="center" iconTextGap="4" modelName="centered" modelPosition="center" preferredPlacement="center_on_edge" ratio="5.0" textColor="#000000" verticalTextPosition="bottom" visible="true" xml:space="preserve">Сенсор.ЦельПолучена/
|
||||
<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" placement="center" side="on_edge" sideReference="relative_to_edge_flow" /></y:EdgeLabel>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge source="n0::n1" target="n0::n2">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0" sy="0" tx="0" ty="0" />
|
||||
<y:LineStyle color="#000000" type="line" width="1.0" />
|
||||
<y:Arrows source="none" target="standard" />
|
||||
<y:EdgeLabel alignment="center" backgroundColor="#F5F5F5" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasLineColor="false" horizontalTextPosition="center" iconTextGap="4" modelName="centered" modelPosition="center" preferredPlacement="center_on_edge" ratio="5.0" textColor="#000000" verticalTextPosition="bottom" visible="true" xml:space="preserve">ОружиеЦелевое.ЦельВошлаВЗонуАтаки/
|
||||
<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" placement="center" side="on_edge" sideReference="relative_to_edge_flow" /></y:EdgeLabel>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge source="n0::n2" target="n0::n1">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0" sy="0" tx="0" ty="0" />
|
||||
<y:LineStyle color="#000000" type="line" width="1.0" />
|
||||
<y:Arrows source="none" target="standard" />
|
||||
<y:EdgeLabel alignment="center" backgroundColor="#F5F5F5" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasLineColor="false" horizontalTextPosition="center" iconTextGap="4" modelName="centered" modelPosition="center" preferredPlacement="center_on_edge" ratio="5.0" textColor="#000000" verticalTextPosition="bottom" visible="true" xml:space="preserve">ОружиеЦелевое.ЦельВышлаИзЗоныАтаки/
|
||||
<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" placement="center" side="on_edge" sideReference="relative_to_edge_flow" /></y:EdgeLabel>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge source="" target="n3">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0" sy="0" tx="0" ty="0" />
|
||||
<y:LineStyle color="#000000" type="line" width="1.0" />
|
||||
<y:Arrows source="none" target="standard" />
|
||||
<y:EdgeLabel alignment="center" backgroundColor="#F5F5F5" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasLineColor="false" horizontalTextPosition="center" iconTextGap="4" modelName="centered" modelPosition="center" preferredPlacement="center_on_edge" ratio="5.0" textColor="#000000" verticalTextPosition="bottom" visible="false" xml:space="preserve">
|
||||
<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" placement="center" side="on_edge" sideReference="relative_to_edge_flow" />
|
||||
</y:EdgeLabel>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
</graph>
|
||||
</graphml>
|
||||
143
tests/17-output.graphml
Normal file
143
tests/17-output.graphml
Normal file
@@ -0,0 +1,143 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<graphml xmlns="http://graphml.graphdrawing.org/xmlns">
|
||||
<data key="gFormat">Cyberiada-GraphML-1.0</data>
|
||||
<key id="gFormat" for="graphml" attr.name="format" attr.type="string"/>
|
||||
<key id="dName" for="graph" attr.name="name" attr.type="string"/>
|
||||
<key id="dName" for="node" attr.name="name" attr.type="string"/>
|
||||
<key id="dStateMachine" for="graph" attr.name="stateMachine" attr.type="string"/>
|
||||
<key id="dSubmachineState" for="node" attr.name="submachineState" attr.type="string"/>
|
||||
<key id="dGeometry" for="graph" attr.name="geometry"/>
|
||||
<key id="dGeometry" for="node" attr.name="geometry"/>
|
||||
<key id="dGeometry" for="edge" attr.name="geometry"/>
|
||||
<key id="dSourcePoint" for="edge" attr.name="sourcePoint"/>
|
||||
<key id="dTargetPoint" for="edge" attr.name="targetPoint"/>
|
||||
<key id="dLabelGeometry" for="edge" attr.name="labelGeometry"/>
|
||||
<key id="dNote" for="node" attr.name="note" attr.type="string"/>
|
||||
<key id="dVertex" for="node" attr.name="vertex" attr.type="string"/>
|
||||
<key id="dData" for="node" attr.name="data" attr.type="string"/>
|
||||
<key id="dData" for="edge" attr.name="data" attr.type="string"/>
|
||||
<key id="dMarkup" for="node" attr.name="markup" attr.type="string"/>
|
||||
<key id="dColor" for="node" attr.name="color" attr.type="string"/>
|
||||
<key id="dColor" for="edge" attr.name="color" attr.type="string"/>
|
||||
<key id="dPivot" for="edge" attr.name="pivot" attr.type="string"/>
|
||||
<key id="dChunk" for="edge" attr.name="chunk" attr.type="string"/>
|
||||
<graph id="G" edgedefault="directed">
|
||||
<data key="dName">Автобортник</data>
|
||||
<node id="nMeta">
|
||||
<data key="dNote">formal</data>
|
||||
<data key="dName">CGML_META</data>
|
||||
<data key="dData">standardVersion/ 1.0
|
||||
|
||||
name/ Автобортник
|
||||
|
||||
transitionOrder/ transitionFirst
|
||||
|
||||
eventPropagation/ block
|
||||
|
||||
</data>
|
||||
</node>
|
||||
<node id="n1">
|
||||
<data key="dVertex">initial</data>
|
||||
<data key="dName"></data>
|
||||
<data key="dGeometry">
|
||||
<point x="-1623.000000" y="753.000000"/>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n0">
|
||||
<data key="dName">Бой</data>
|
||||
<data key="dData">entry/
|
||||
|
||||
exit/</data>
|
||||
<data key="dGeometry">
|
||||
<rect x="-786.000000" y="492.000000" width="517.000000" height="770.000000"/>
|
||||
</data>
|
||||
<graph id="n0:" edgedefault="directed">
|
||||
<node id="n0::n1">
|
||||
<data key="dName">Сближение</data>
|
||||
<data key="dData">entry/
|
||||
МодульДвижения.ДвигатьсяКЦели()
|
||||
|
||||
exit/</data>
|
||||
<data key="dGeometry">
|
||||
<rect x="-788.000000" y="645.000000" width="413.000000" height="208.000000"/>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n0::n2">
|
||||
<data key="dName">Атака</data>
|
||||
<data key="dData">entry/
|
||||
ОружиеЦелевое.АтаковатьЦель()
|
||||
|
||||
exit/</data>
|
||||
<data key="dGeometry">
|
||||
<rect x="-784.000000" y="311.000000" width="413.000000" height="208.000000"/>
|
||||
</data>
|
||||
</node>
|
||||
</graph>
|
||||
</node>
|
||||
<node id="n3">
|
||||
<data key="dName">Скан</data>
|
||||
<data key="dData">entry/
|
||||
Сенсор.ПоискВрагаПоДистанции(мин)
|
||||
|
||||
exit/
|
||||
Сенсор.ОстановкаПоиска()
|
||||
</data>
|
||||
<data key="dGeometry">
|
||||
<rect x="-1573.000000" y="738.000000" width="413.000000" height="288.000000"/>
|
||||
</data>
|
||||
</node>
|
||||
<edge id="n0-n3" source="n0" target="n3">
|
||||
<data key="dData">АнализаторЦели.ЦельПотеряна/</data>
|
||||
<data key="dSourcePoint">
|
||||
<point x="0.000000" y="0.000000"/>
|
||||
</data>
|
||||
<data key="dTargetPoint">
|
||||
<point x="0.000000" y="0.000000"/>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="n0-n3#0" source="n0" target="n3">
|
||||
<data key="dData">АнализаторЦели.ЦельУничтожена/</data>
|
||||
<data key="dSourcePoint">
|
||||
<point x="0.000000" y="0.000000"/>
|
||||
</data>
|
||||
<data key="dTargetPoint">
|
||||
<point x="0.000000" y="0.000000"/>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="n3-n0::n1" source="n3" target="n0::n1">
|
||||
<data key="dData">Сенсор.ЦельПолучена/</data>
|
||||
<data key="dSourcePoint">
|
||||
<point x="0.000000" y="0.000000"/>
|
||||
</data>
|
||||
<data key="dTargetPoint">
|
||||
<point x="0.000000" y="0.000000"/>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="n0::n1-n0::n2" source="n0::n1" target="n0::n2">
|
||||
<data key="dData">ОружиеЦелевое.ЦельВошлаВЗонуАтаки/</data>
|
||||
<data key="dSourcePoint">
|
||||
<point x="0.000000" y="0.000000"/>
|
||||
</data>
|
||||
<data key="dTargetPoint">
|
||||
<point x="0.000000" y="0.000000"/>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="n0::n2-n0::n1" source="n0::n2" target="n0::n1">
|
||||
<data key="dData">ОружиеЦелевое.ЦельВышлаИзЗоныАтаки/</data>
|
||||
<data key="dSourcePoint">
|
||||
<point x="0.000000" y="0.000000"/>
|
||||
</data>
|
||||
<data key="dTargetPoint">
|
||||
<point x="0.000000" y="0.000000"/>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="n1-n3" source="n1" target="n3">
|
||||
<data key="dSourcePoint">
|
||||
<point x="0.000000" y="0.000000"/>
|
||||
</data>
|
||||
<data key="dTargetPoint">
|
||||
<point x="0.000000" y="0.000000"/>
|
||||
</data>
|
||||
</edge>
|
||||
</graph>
|
||||
</graphml>
|
||||
1
tests/17-output.txt
Normal file
1
tests/17-output.txt
Normal file
@@ -0,0 +1 @@
|
||||
Document: {id: '', name: 'Автобортник', format: 'yEd Berloga', meta: {standard version: '1.0', name: 'Автобортник', transition order: transition first, event propagation: block events}, elements: {State Machine: {id: 'G', name: 'Автобортник', elements: {Initial: {id: 'n1', name: '', geometry: (-1623; 753)}, Composite State: {id: 'n0', name: 'Бой', actions: {a {entry}, a {exit}}, geometry: (-786; 492; 517; 770), elements: {Simple State: {id: 'n0::n1', name: 'Сближение', actions: {a {entry, behavior: 'МодульДвижения.ДвигатьсяКЦели()'}, a {exit}}, geometry: (-788; 645; 413; 208)}, Simple State: {id: 'n0::n2', name: 'Атака', actions: {a {entry, behavior: 'ОружиеЦелевое.АтаковатьЦель()'}, a {exit}}, geometry: (-784; 311; 413; 208)}}}, Simple State: {id: 'n3', name: 'Скан', actions: {a {entry, behavior: 'Сенсор.ПоискВрагаПоДистанции(мин)'}, a {exit, behavior: 'Сенсор.ОстановкаПоиска()'}}, geometry: (-1573; 738; 413; 288)}, Transition: {id: 'n0-n3', source: 'n0', target: 'n3', action: {trigger: 'АнализаторЦели.ЦельПотеряна'}, sp: (0; 0), tp: (0; 0)}, Transition: {id: 'n0-n3#0', source: 'n0', target: 'n3', action: {trigger: 'АнализаторЦели.ЦельУничтожена'}, sp: (0; 0), tp: (0; 0)}, Transition: {id: 'n3-n0::n1', source: 'n3', target: 'n0::n1', action: {trigger: 'Сенсор.ЦельПолучена'}, sp: (0; 0), tp: (0; 0)}, Transition: {id: 'n0::n1-n0::n2', source: 'n0::n1', target: 'n0::n2', action: {trigger: 'ОружиеЦелевое.ЦельВошлаВЗонуАтаки'}, sp: (0; 0), tp: (0; 0)}, Transition: {id: 'n0::n2-n0::n1', source: 'n0::n2', target: 'n0::n1', action: {trigger: 'ОружиеЦелевое.ЦельВышлаИзЗоныАтаки'}, sp: (0; 0), tp: (0; 0)}, Transition: {id: 'n1-n3', source: 'n1', target: 'n3', sp: (0; 0), tp: (0; 0)}}}}
|
||||
40
tests/18-orbita.cpp
Normal file
40
tests/18-orbita.cpp
Normal file
@@ -0,0 +1,40 @@
|
||||
/* -----------------------------------------------------------------------------
|
||||
* The Cyberiada GraphML C++ library implemention
|
||||
*
|
||||
* The test
|
||||
*
|
||||
* Copyright (C) 2024 Alexey Fedoseev <aleksey@fedoseev.net>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see https://www.gnu.org/licenses/
|
||||
* ----------------------------------------------------------------------------- */
|
||||
|
||||
#include <iostream>
|
||||
#include "cyberiadamlpp.h"
|
||||
|
||||
using namespace Cyberiada;
|
||||
using namespace std;
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
Document d;
|
||||
try {
|
||||
d.load(string(argv[0]) + "-input.graphml", formatLegacyYED);
|
||||
cout << d << endl;
|
||||
d.save(string(argv[0]) + ".graphml", formatCyberiada10);
|
||||
} catch (const Cyberiada::Exception& e) {
|
||||
cerr << e.str() << endl;
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
588
tests/18-orbita.test-input.graphml
Normal file
588
tests/18-orbita.test-input.graphml
Normal file
@@ -0,0 +1,588 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:java="http://www.yworks.com/xml/yfiles-common/1.0/java" xmlns:sys="http://www.yworks.com/xml/yfiles-common/markup/primitives/2.0" xmlns:x="http://www.yworks.com/xml/yfiles-common/markup/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:y="http://www.yworks.com/xml/graphml" xmlns:yed="http://www.yworks.com/xml/yed/3" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://www.yworks.com/xml/schema/graphml/1.1/ygraphml.xsd">
|
||||
<!--Created by yEd 3.22-->
|
||||
<key attr.name="Description" attr.type="string" for="graph" id="d0"/>
|
||||
<key for="port" id="d1" yfiles.type="portgraphics"/>
|
||||
<key for="port" id="d2" yfiles.type="portgeometry"/>
|
||||
<key for="port" id="d3" yfiles.type="portuserdata"/>
|
||||
<key attr.name="url" attr.type="string" for="node" id="d4"/>
|
||||
<key attr.name="description" attr.type="string" for="node" id="d5"/>
|
||||
<key for="node" id="d6" yfiles.type="nodegraphics"/>
|
||||
<key for="graphml" id="d7" yfiles.type="resources"/>
|
||||
<key attr.name="url" attr.type="string" for="edge" id="d8"/>
|
||||
<key attr.name="description" attr.type="string" for="edge" id="d9"/>
|
||||
<key for="edge" id="d10" yfiles.type="edgegraphics"/>
|
||||
<graph edgedefault="directed" id="G">
|
||||
<data key="d0" xml:space="preserve"/>
|
||||
<node id="n0" yfiles.foldertype="group">
|
||||
<data key="d6">
|
||||
<y:ProxyAutoBoundsNode>
|
||||
<y:Realizers active="0">
|
||||
<y:GroupNode>
|
||||
<y:Geometry height="725.3842622366843" width="1149.4752403124412" x="409.9045651123043" y="50.595300857790946"/>
|
||||
<y:Fill color="#F5F5F5" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="node_width" backgroundColor="#EBEBEB" borderDistance="0.0" fontFamily="Consolas" fontSize="15" fontStyle="plain" hasLineColor="false" height="21.4609375" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="1149.4752403124412" x="0.0" xml:space="preserve" y="0.0">orientation</y:NodeLabel>
|
||||
<y:NodeLabel alignment="left" autoSizePolicy="node_size" bottomInset="10" fontFamily="Consolas" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="725.3842622366843" horizontalTextPosition="center" iconTextGap="4" leftInset="10" modelName="internal" modelPosition="tr" rightInset="10" textColor="#000000" topInset="10" verticalTextPosition="bottom" visible="true" width="1149.4752403124412" x="-4.0" xml:space="preserve" y="4.0">
|
||||
|
||||
entry/</y:NodeLabel>
|
||||
<y:Shape type="roundrectangle"/>
|
||||
<y:State closed="false" closedHeight="50.0" closedWidth="50.0" innerGraphDisplayEnabled="false"/>
|
||||
<y:NodeBounds considerNodeLabelSize="true"/>
|
||||
<y:Insets bottom="15" bottomF="15.0" left="15" leftF="15.0" right="15" rightF="15.0" top="15" topF="15.0"/>
|
||||
<y:BorderInsets bottom="13" bottomF="13.379942942133312" left="17" leftF="16.55746774366395" right="10" rightF="9.570776255707642" top="7" topF="6.657305253647749"/>
|
||||
</y:GroupNode>
|
||||
<y:GroupNode>
|
||||
<y:Geometry height="50.0" width="89.0" x="647.4531034482759" y="-202.83523673221987"/>
|
||||
<y:Fill color="#F5F5F5" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="right" autoSizePolicy="node_width" backgroundColor="#EBEBEB" borderDistance="0.0" fontFamily="Dialog" fontSize="15" fontStyle="plain" hasLineColor="false" height="21.4609375" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="89.0" x="0.0" xml:space="preserve" y="0.0">get_shot</y:NodeLabel>
|
||||
<y:Shape type="roundrectangle"/>
|
||||
<y:State closed="true" closedHeight="50.0" closedWidth="89.0" innerGraphDisplayEnabled="false"/>
|
||||
<y:NodeBounds considerNodeLabelSize="true"/>
|
||||
<y:Insets bottom="5" bottomF="5.0" left="5" leftF="5.0" right="5" rightF="5.0" top="5" topF="5.0"/>
|
||||
<y:BorderInsets bottom="0" bottomF="0.0" left="0" leftF="0.0" right="0" rightF="0.0" top="0" topF="0.0"/>
|
||||
</y:GroupNode>
|
||||
</y:Realizers>
|
||||
</y:ProxyAutoBoundsNode>
|
||||
</data>
|
||||
<graph edgedefault="directed" id="n0:">
|
||||
<node id="n0::n0" yfiles.foldertype="group">
|
||||
<data key="d6">
|
||||
<y:ProxyAutoBoundsNode>
|
||||
<y:Realizers active="0">
|
||||
<y:GroupNode>
|
||||
<y:Geometry height="506.21265704722373" width="297.494718399637" x="445.46203285596823" y="97.71354361143867"/>
|
||||
<y:Fill color="#F5F5F5" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="node_width" backgroundColor="#EBEBEB" borderDistance="0.0" fontFamily="Consolas" fontSize="15" fontStyle="plain" hasLineColor="false" height="21.4609375" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="297.494718399637" x="0.0" xml:space="preserve" y="0.0">turn</y:NodeLabel>
|
||||
<y:NodeLabel alignment="left" autoSizePolicy="node_size" bottomInset="10" fontFamily="Consolas" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="506.21265704722373" horizontalTextPosition="center" iconTextGap="4" leftInset="10" modelName="internal" modelPosition="br" rightInset="10" textColor="#000000" topInset="10" verticalTextPosition="bottom" visible="true" width="297.494718399637" x="-4.0" xml:space="preserve" y="-4.0">
|
||||
|
||||
entry/
|
||||
orientation.start_motor(AXIS_Z)
|
||||
|
||||
exit/
|
||||
orientation.stop_motor(AXIS_Z)</y:NodeLabel>
|
||||
<y:Shape type="roundrectangle"/>
|
||||
<y:State closed="false" closedHeight="50.0" closedWidth="50.0" innerGraphDisplayEnabled="false"/>
|
||||
<y:NodeBounds considerNodeLabelSize="true"/>
|
||||
<y:Insets bottom="15" bottomF="15.0" left="15" leftF="15.0" right="15" rightF="15.0" top="15" topF="15.0"/>
|
||||
<y:BorderInsets bottom="13" bottomF="13.399086757990858" left="0" leftF="0.0" right="0" rightF="0.0" top="105" topF="105.27853881278551"/>
|
||||
</y:GroupNode>
|
||||
<y:GroupNode>
|
||||
<y:Geometry height="50.0" width="89.0" x="647.4531034482759" y="-202.83523673221987"/>
|
||||
<y:Fill color="#F5F5F5" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="right" autoSizePolicy="node_width" backgroundColor="#EBEBEB" borderDistance="0.0" fontFamily="Dialog" fontSize="15" fontStyle="plain" hasLineColor="false" height="21.4609375" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="89.0" x="0.0" xml:space="preserve" y="0.0">get_shot</y:NodeLabel>
|
||||
<y:Shape type="roundrectangle"/>
|
||||
<y:State closed="true" closedHeight="50.0" closedWidth="89.0" innerGraphDisplayEnabled="false"/>
|
||||
<y:NodeBounds considerNodeLabelSize="true"/>
|
||||
<y:Insets bottom="5" bottomF="5.0" left="5" leftF="5.0" right="5" rightF="5.0" top="5" topF="5.0"/>
|
||||
<y:BorderInsets bottom="0" bottomF="0.0" left="0" leftF="0.0" right="0" rightF="0.0" top="0" topF="0.0"/>
|
||||
</y:GroupNode>
|
||||
</y:Realizers>
|
||||
</y:ProxyAutoBoundsNode>
|
||||
</data>
|
||||
<graph edgedefault="directed" id="n0::n0:">
|
||||
<node id="n0::n0::n0">
|
||||
<data key="d4" xml:space="preserve"/>
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.entityRelationship.big_entity">
|
||||
<y:Geometry height="69.21185172122063" width="267.494718399637" x="460.4620328559683" y="286.4530199242241"/>
|
||||
<y:Fill color="#E8EEF7" color2="#B7C9E3" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="node_width" backgroundColor="#B7C9E3" configuration="com.yworks.entityRelationship.label.name" fontFamily="Dialog" fontSize="12" fontStyle="bold" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="267.494718399637" x="0.0" xml:space="preserve" y="4.0">slow_down</y:NodeLabel>
|
||||
<y:NodeLabel alignment="left" autoSizePolicy="content" configuration="com.yworks.entityRelationship.label.attributes" fontFamily="Consolas" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="59.875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="tl" textColor="#000000" verticalTextPosition="bottom" visible="true" width="97.134765625" x="4.0" xml:space="preserve" y="4.0">
|
||||
|
||||
entry/
|
||||
reduce_speed()</y:NodeLabel>
|
||||
<y:StyleProperties>
|
||||
<y:Property class="java.lang.Boolean" name="y.view.ShadowNodePainter.SHADOW_PAINTING" value="false"/>
|
||||
<y:Property class="java.lang.Boolean" name="doubleBorder" value="false"/>
|
||||
</y:StyleProperties>
|
||||
</y:GenericNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n0::n0::n1">
|
||||
<data key="d4" xml:space="preserve"/>
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.entityRelationship.big_entity">
|
||||
<y:Geometry height="69.21185172122068" width="267.494718399637" x="460.4620328559683" y="396.3841410518375"/>
|
||||
<y:Fill color="#E8EEF7" color2="#B7C9E3" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="node_width" backgroundColor="#B7C9E3" configuration="com.yworks.entityRelationship.label.name" fontFamily="Dialog" fontSize="12" fontStyle="bold" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="267.494718399637" x="0.0" xml:space="preserve" y="4.0">start_turn</y:NodeLabel>
|
||||
<y:NodeLabel alignment="left" autoSizePolicy="content" configuration="com.yworks.entityRelationship.label.attributes" fontFamily="Consolas" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="59.875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="tl" textColor="#000000" verticalTextPosition="bottom" visible="true" width="98.4765625" x="4.0" xml:space="preserve" y="4.0">
|
||||
|
||||
entry/
|
||||
calculate_turn()</y:NodeLabel>
|
||||
<y:StyleProperties>
|
||||
<y:Property class="java.lang.Boolean" name="y.view.ShadowNodePainter.SHADOW_PAINTING" value="false"/>
|
||||
<y:Property class="java.lang.Boolean" name="doubleBorder" value="false"/>
|
||||
</y:StyleProperties>
|
||||
</y:GenericNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n0::n0::n2">
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.bpmn.Event">
|
||||
<y:Geometry height="17.0" width="8.83984375" x="589.7894701807868" y="239.45301992422418"/>
|
||||
<y:Fill color="#333333" color2="#000000" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="12.83984375" y="4.333333333333343">
|
||||
<y:LabelModel>
|
||||
<y:SmartNodeLabelModel distance="4.0"/>
|
||||
</y:LabelModel>
|
||||
<y:ModelParameter>
|
||||
<y:SmartNodeLabelModelParameter labelRatioX="-0.5" labelRatioY="-0.5" nodeRatioX="0.5" nodeRatioY="-0.24509803921568613" offsetX="4.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
|
||||
</y:ModelParameter>
|
||||
</y:NodeLabel>
|
||||
<y:StyleProperties>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.line.color" value="#000000"/>
|
||||
<y:Property class="com.yworks.yfiles.bpmn.view.EventCharEnum" name="com.yworks.bpmn.characteristic" value="EVENT_CHARACTERISTIC_START"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.fill2" value="#d4d4d4cc"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.fill" value="#ffffffe6"/>
|
||||
<y:Property class="com.yworks.yfiles.bpmn.view.BPMNTypeEnum" name="com.yworks.bpmn.type" value="EVENT_TYPE_PLAIN"/>
|
||||
</y:StyleProperties>
|
||||
</y:GenericNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n0::n0::n3">
|
||||
<data key="d4" xml:space="preserve"/>
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.entityRelationship.big_entity">
|
||||
<y:Geometry height="69.21185172122068" width="267.494718399637" x="460.46203285596823" y="506.3152621794508"/>
|
||||
<y:Fill color="#E8EEF7" color2="#B7C9E3" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="node_width" backgroundColor="#B7C9E3" configuration="com.yworks.entityRelationship.label.name" fontFamily="Dialog" fontSize="12" fontStyle="bold" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="267.494718399637" x="0.0" xml:space="preserve" y="4.000000000000057">finish_turn</y:NodeLabel>
|
||||
<y:NodeLabel alignment="left" autoSizePolicy="content" configuration="com.yworks.entityRelationship.label.attributes" fontFamily="Consolas" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="59.875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="tl" textColor="#000000" verticalTextPosition="bottom" visible="true" width="100.263671875" x="4.0" xml:space="preserve" y="4.000000000000057">
|
||||
|
||||
entry/
|
||||
complete_turn()</y:NodeLabel>
|
||||
<y:StyleProperties>
|
||||
<y:Property class="java.lang.Boolean" name="y.view.ShadowNodePainter.SHADOW_PAINTING" value="false"/>
|
||||
<y:Property class="java.lang.Boolean" name="doubleBorder" value="false"/>
|
||||
</y:StyleProperties>
|
||||
</y:GenericNode>
|
||||
</data>
|
||||
</node>
|
||||
</graph>
|
||||
</node>
|
||||
<node id="n0::n1">
|
||||
<data key="d4" xml:space="preserve"/>
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.entityRelationship.big_entity">
|
||||
<y:Geometry height="117.95245407947306" width="313.21683037237307" x="766.1680201290268" y="103.96248223336107"/>
|
||||
<y:Fill color="#E8EEF7" color2="#B7C9E3" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="node_width" backgroundColor="#B7C9E3" configuration="com.yworks.entityRelationship.label.name" fontFamily="Dialog" fontSize="12" fontStyle="bold" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="313.21683037237307" x="0.0" xml:space="preserve" y="4.0">idle</y:NodeLabel>
|
||||
<y:NodeLabel alignment="left" autoSizePolicy="content" configuration="com.yworks.entityRelationship.label.attributes" fontFamily="Consolas" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="45.90625" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="tl" textColor="#000000" verticalTextPosition="bottom" visible="true" width="39.771484375" x="4.0" xml:space="preserve" y="4.0">
|
||||
|
||||
entry/
|
||||
</y:NodeLabel>
|
||||
<y:StyleProperties>
|
||||
<y:Property class="java.lang.Boolean" name="y.view.ShadowNodePainter.SHADOW_PAINTING" value="false"/>
|
||||
<y:Property class="java.lang.Boolean" name="doubleBorder" value="false"/>
|
||||
</y:StyleProperties>
|
||||
</y:GenericNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n0::n2" yfiles.foldertype="group">
|
||||
<data key="d6">
|
||||
<y:ProxyAutoBoundsNode>
|
||||
<y:Realizers active="0">
|
||||
<y:GroupNode>
|
||||
<y:Geometry height="640.6628002976208" width="432.21290979421633" x="1102.5961193748215" y="106.93681985472102"/>
|
||||
<y:Fill color="#F5F5F5" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="node_width" backgroundColor="#EBEBEB" borderDistance="0.0" fontFamily="Consolas" fontSize="15" fontStyle="plain" hasLineColor="false" height="21.4609375" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="432.21290979421633" x="0.0" xml:space="preserve" y="0.0">wait</y:NodeLabel>
|
||||
<y:NodeLabel alignment="left" autoSizePolicy="node_size" bottomInset="10" fontFamily="Consolas" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="640.6628002976208" horizontalTextPosition="center" iconTextGap="4" leftInset="10" modelName="internal" modelPosition="br" rightInset="10" textColor="#000000" topInset="10" verticalTextPosition="bottom" visible="true" width="432.21290979421633" x="-4.0" xml:space="preserve" y="-4.0">
|
||||
|
||||
entry/
|
||||
</y:NodeLabel>
|
||||
<y:Shape type="roundrectangle"/>
|
||||
<y:State closed="false" closedHeight="50.0" closedWidth="50.0" innerGraphDisplayEnabled="false"/>
|
||||
<y:NodeBounds considerNodeLabelSize="true"/>
|
||||
<y:Insets bottom="15" bottomF="15.0" left="15" leftF="15.0" right="15" rightF="15.0" top="15" topF="15.0"/>
|
||||
<y:BorderInsets bottom="12" bottomF="11.781924910944781" left="0" leftF="0.0" right="4" rightF="3.5016189987190955" top="11" topF="11.040951918376578"/>
|
||||
</y:GroupNode>
|
||||
<y:GroupNode>
|
||||
<y:Geometry height="50.0" width="89.0" x="647.4531034482759" y="-202.83523673221987"/>
|
||||
<y:Fill color="#F5F5F5" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="right" autoSizePolicy="node_width" backgroundColor="#EBEBEB" borderDistance="0.0" fontFamily="Dialog" fontSize="15" fontStyle="plain" hasLineColor="false" height="21.4609375" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="89.0" x="0.0" xml:space="preserve" y="0.0">get_shot</y:NodeLabel>
|
||||
<y:Shape type="roundrectangle"/>
|
||||
<y:State closed="true" closedHeight="50.0" closedWidth="89.0" innerGraphDisplayEnabled="false"/>
|
||||
<y:NodeBounds considerNodeLabelSize="true"/>
|
||||
<y:Insets bottom="5" bottomF="5.0" left="5" leftF="5.0" right="5" rightF="5.0" top="5" topF="5.0"/>
|
||||
<y:BorderInsets bottom="0" bottomF="0.0" left="0" leftF="0.0" right="0" rightF="0.0" top="0" topF="0.0"/>
|
||||
</y:GroupNode>
|
||||
</y:Realizers>
|
||||
</y:ProxyAutoBoundsNode>
|
||||
</data>
|
||||
<graph edgedefault="directed" id="n0::n2:">
|
||||
<node id="n0::n2::n0" yfiles.foldertype="group">
|
||||
<data key="d6">
|
||||
<y:ProxyAutoBoundsNode>
|
||||
<y:Realizers active="0">
|
||||
<y:GroupNode>
|
||||
<y:Geometry height="400.0737264670697" width="393.60012474356904" x="1121.5961193748215" y="320.7439687743274"/>
|
||||
<y:Fill color="#F5F5F5" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="node_width" backgroundColor="#EBEBEB" borderDistance="0.0" fontFamily="Consolas" fontSize="15" fontStyle="plain" hasLineColor="false" height="21.4609375" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="393.60012474356904" x="0.0" xml:space="preserve" y="0.0">maintain</y:NodeLabel>
|
||||
<y:NodeLabel alignment="left" autoSizePolicy="node_size" bottomInset="10" fontFamily="Consolas" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="400.0737264670697" horizontalTextPosition="center" iconTextGap="4" leftInset="10" modelName="internal" modelPosition="br" rightInset="10" textColor="#000000" topInset="10" verticalTextPosition="bottom" visible="true" width="393.60012474356904" x="-4.0" xml:space="preserve" y="-4.0">
|
||||
|
||||
entry/
|
||||
orientation.start_motor(AXIS_Z)
|
||||
|
||||
exit/
|
||||
orientation.stop_motor(AXIS_Z)</y:NodeLabel>
|
||||
<y:Shape type="roundrectangle"/>
|
||||
<y:State closed="false" closedHeight="50.0" closedWidth="50.0" innerGraphDisplayEnabled="false"/>
|
||||
<y:NodeBounds considerNodeLabelSize="true"/>
|
||||
<y:Insets bottom="15" bottomF="15.0" left="15" leftF="15.0" right="15" rightF="15.0" top="15" topF="15.0"/>
|
||||
<y:BorderInsets bottom="6" bottomF="6.317196313421391" left="4" leftF="3.75365630476972" right="2" rightF="1.5313242009133319" top="75" topF="75.03254994929318"/>
|
||||
</y:GroupNode>
|
||||
<y:GroupNode>
|
||||
<y:Geometry height="50.0" width="89.0" x="647.4531034482759" y="-202.83523673221987"/>
|
||||
<y:Fill color="#F5F5F5" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="right" autoSizePolicy="node_width" backgroundColor="#EBEBEB" borderDistance="0.0" fontFamily="Dialog" fontSize="15" fontStyle="plain" hasLineColor="false" height="21.4609375" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="89.0" x="0.0" xml:space="preserve" y="0.0">get_shot</y:NodeLabel>
|
||||
<y:Shape type="roundrectangle"/>
|
||||
<y:State closed="true" closedHeight="50.0" closedWidth="89.0" innerGraphDisplayEnabled="false"/>
|
||||
<y:NodeBounds considerNodeLabelSize="true"/>
|
||||
<y:Insets bottom="5" bottomF="5.0" left="5" leftF="5.0" right="5" rightF="5.0" top="5" topF="5.0"/>
|
||||
<y:BorderInsets bottom="0" bottomF="0.0" left="0" leftF="0.0" right="0" rightF="0.0" top="0" topF="0.0"/>
|
||||
</y:GroupNode>
|
||||
</y:Realizers>
|
||||
</y:ProxyAutoBoundsNode>
|
||||
</data>
|
||||
<graph edgedefault="directed" id="n0::n2::n0:">
|
||||
<node id="n0::n2::n0::n0">
|
||||
<data key="d4" xml:space="preserve"/>
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.entityRelationship.big_entity">
|
||||
<y:Geometry height="75.33714852487361" width="358.3151442378855" x="1140.3497756795916" y="479.23745622362065"/>
|
||||
<y:Fill color="#E8EEF7" color2="#B7C9E3" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="node_width" backgroundColor="#B7C9E3" configuration="com.yworks.entityRelationship.label.name" fontFamily="Dialog" fontSize="12" fontStyle="bold" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="358.3151442378855" x="0.0" xml:space="preserve" y="4.0">correct_cw</y:NodeLabel>
|
||||
<y:NodeLabel alignment="left" autoSizePolicy="content" configuration="com.yworks.entityRelationship.label.attributes" fontFamily="Consolas" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="59.875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="tl" textColor="#000000" verticalTextPosition="bottom" visible="true" width="263.705078125" x="4.0" xml:space="preserve" y="4.000000000000057">
|
||||
|
||||
entry/
|
||||
orientation.set_motor_moment(AXIS_Z, -M)</y:NodeLabel>
|
||||
<y:StyleProperties>
|
||||
<y:Property class="java.lang.Boolean" name="y.view.ShadowNodePainter.SHADOW_PAINTING" value="false"/>
|
||||
<y:Property class="java.lang.Boolean" name="doubleBorder" value="false"/>
|
||||
</y:StyleProperties>
|
||||
</y:GenericNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n0::n2::n0::n1">
|
||||
<data key="d4" xml:space="preserve"/>
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.entityRelationship.big_entity">
|
||||
<y:Geometry height="75.33714852487361" width="358.3151442378855" x="1140.3497756795912" y="624.1633504031022"/>
|
||||
<y:Fill color="#E8EEF7" color2="#B7C9E3" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="node_width" backgroundColor="#B7C9E3" configuration="com.yworks.entityRelationship.label.name" fontFamily="Dialog" fontSize="12" fontStyle="bold" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="358.3151442378855" x="0.0" xml:space="preserve" y="4.0">correct_ccw</y:NodeLabel>
|
||||
<y:NodeLabel alignment="left" autoSizePolicy="content" configuration="com.yworks.entityRelationship.label.attributes" fontFamily="Consolas" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="59.875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="tl" textColor="#000000" verticalTextPosition="bottom" visible="true" width="259.375" x="4.0" xml:space="preserve" y="4.0">
|
||||
|
||||
entry/
|
||||
orientation.set_motor_moment(AXIS_Z, M)</y:NodeLabel>
|
||||
<y:StyleProperties>
|
||||
<y:Property class="java.lang.Boolean" name="y.view.ShadowNodePainter.SHADOW_PAINTING" value="false"/>
|
||||
<y:Property class="java.lang.Boolean" name="doubleBorder" value="false"/>
|
||||
</y:StyleProperties>
|
||||
</y:GenericNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n0::n2::n0::n2">
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.bpmn.Event">
|
||||
<y:Geometry height="8.230320699708443" width="31.376914946017564" x="1303.8188903255257" y="432.2374562236206"/>
|
||||
<y:Fill color="#333333" color2="#000000" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="35.37691494601768" y="2.0979248842394327">
|
||||
<y:LabelModel>
|
||||
<y:SmartNodeLabelModel distance="4.0"/>
|
||||
</y:LabelModel>
|
||||
<y:ModelParameter>
|
||||
<y:SmartNodeLabelModelParameter labelRatioX="-0.5" labelRatioY="-0.5" nodeRatioX="0.5" nodeRatioY="-0.24509803921568613" offsetX="4.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
|
||||
</y:ModelParameter>
|
||||
</y:NodeLabel>
|
||||
<y:StyleProperties>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.line.color" value="#000000"/>
|
||||
<y:Property class="com.yworks.yfiles.bpmn.view.EventCharEnum" name="com.yworks.bpmn.characteristic" value="EVENT_CHARACTERISTIC_START"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.fill2" value="#d4d4d4cc"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.fill" value="#ffffffe6"/>
|
||||
<y:Property class="com.yworks.yfiles.bpmn.view.BPMNTypeEnum" name="com.yworks.bpmn.type" value="EVENT_TYPE_PLAIN"/>
|
||||
</y:StyleProperties>
|
||||
</y:GenericNode>
|
||||
</data>
|
||||
</node>
|
||||
</graph>
|
||||
</node>
|
||||
<node id="n0::n2::n1">
|
||||
<data key="d4" xml:space="preserve"/>
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.entityRelationship.big_entity">
|
||||
<y:Geometry height="75.33714852487361" width="393.6001247435691" x="1122.7072854267496" y="201.4387092730976"/>
|
||||
<y:Fill color="#E8EEF7" color2="#B7C9E3" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="node_width" backgroundColor="#B7C9E3" configuration="com.yworks.entityRelationship.label.name" fontFamily="Dialog" fontSize="12" fontStyle="bold" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="393.6001247435691" x="0.0" xml:space="preserve" y="4.0">static</y:NodeLabel>
|
||||
<y:NodeLabel alignment="left" autoSizePolicy="content" configuration="com.yworks.entityRelationship.label.attributes" fontFamily="Consolas" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="45.90625" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="tl" textColor="#000000" verticalTextPosition="bottom" visible="true" width="39.771484375" x="4.0" xml:space="preserve" y="4.0">
|
||||
|
||||
entry/</y:NodeLabel>
|
||||
<y:StyleProperties>
|
||||
<y:Property class="java.lang.Boolean" name="y.view.ShadowNodePainter.SHADOW_PAINTING" value="false"/>
|
||||
<y:Property class="java.lang.Boolean" name="doubleBorder" value="false"/>
|
||||
</y:StyleProperties>
|
||||
</y:GenericNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n0::n2::n2">
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.bpmn.Event">
|
||||
<y:Geometry height="8.230320699708443" width="31.376914946017564" x="1303.8188903255254" y="154.4387092730976"/>
|
||||
<y:Fill color="#333333" color2="#000000" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="35.37691494601768" y="2.0979248842394043">
|
||||
<y:LabelModel>
|
||||
<y:SmartNodeLabelModel distance="4.0"/>
|
||||
</y:LabelModel>
|
||||
<y:ModelParameter>
|
||||
<y:SmartNodeLabelModelParameter labelRatioX="-0.5" labelRatioY="-0.5" nodeRatioX="0.5" nodeRatioY="-0.24509803921568613" offsetX="4.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
|
||||
</y:ModelParameter>
|
||||
</y:NodeLabel>
|
||||
<y:StyleProperties>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.line.color" value="#000000"/>
|
||||
<y:Property class="com.yworks.yfiles.bpmn.view.EventCharEnum" name="com.yworks.bpmn.characteristic" value="EVENT_CHARACTERISTIC_START"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.fill2" value="#d4d4d4cc"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.fill" value="#ffffffe6"/>
|
||||
<y:Property class="com.yworks.yfiles.bpmn.view.BPMNTypeEnum" name="com.yworks.bpmn.type" value="EVENT_TYPE_PLAIN"/>
|
||||
</y:StyleProperties>
|
||||
</y:GenericNode>
|
||||
</data>
|
||||
</node>
|
||||
</graph>
|
||||
</node>
|
||||
</graph>
|
||||
</node>
|
||||
<node id="n1">
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.bpmn.Event">
|
||||
<y:Geometry height="17.0" width="8.83984375" x="941.3644224011249" y="-33.90241603718603"/>
|
||||
<y:Fill color="#333333" color2="#000000" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="12.83984375" y="4.333333333333336">
|
||||
<y:LabelModel>
|
||||
<y:SmartNodeLabelModel distance="4.0"/>
|
||||
</y:LabelModel>
|
||||
<y:ModelParameter>
|
||||
<y:SmartNodeLabelModelParameter labelRatioX="-0.5" labelRatioY="-0.5" nodeRatioX="0.5" nodeRatioY="-0.24509803921568613" offsetX="4.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
|
||||
</y:ModelParameter>
|
||||
</y:NodeLabel>
|
||||
<y:StyleProperties>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.line.color" value="#000000"/>
|
||||
<y:Property class="com.yworks.yfiles.bpmn.view.EventCharEnum" name="com.yworks.bpmn.characteristic" value="EVENT_CHARACTERISTIC_START"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.fill2" value="#d4d4d4cc"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.fill" value="#ffffffe6"/>
|
||||
<y:Property class="com.yworks.yfiles.bpmn.view.BPMNTypeEnum" name="com.yworks.bpmn.type" value="EVENT_TYPE_PLAIN"/>
|
||||
</y:StyleProperties>
|
||||
</y:GenericNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n2">
|
||||
<data key="d4" xml:space="preserve"/>
|
||||
<data key="d6">
|
||||
<y:UMLNoteNode>
|
||||
<y:Geometry height="95.04560645259676" width="160.08441028104863" x="445.46203285596823" y="652.5540136997452"/>
|
||||
<y:Fill color="#FFCC00" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="left" autoSizePolicy="content" bottomInset="10" fontFamily="Consolas" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="75.875" horizontalTextPosition="center" iconTextGap="4" leftInset="10" modelName="internal" modelPosition="t" rightInset="10" textColor="#000000" topInset="10" verticalTextPosition="bottom" visible="true" width="151.572265625" x="4.256072328024288" xml:space="preserve" y="4.0">Init scripts:
|
||||
|
||||
test3sm_constants.py
|
||||
test3sm_orient.py</y:NodeLabel>
|
||||
</y:UMLNoteNode>
|
||||
</data>
|
||||
</node>
|
||||
<edge id="e0" source="n1" target="n0::n1">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="23.00790896091155" ty="-7.047745352111548"/>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e1" source="n0" target="n0::n1">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="-157.87181814523683" sy="-122.80905699738382" tx="-4.118959516125983" ty="-7.297270290007049">
|
||||
<y:Point x="826.770367123288" y="-4.9513868019391225"/>
|
||||
<y:Point x="918.6574757990874" y="-4.9513868019391225"/>
|
||||
</y:Path>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="35.62890625" x="-50.90453084892238" xml:space="preserve" y="-43.77661474941784">STOP<y:LabelModel><y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/></y:LabelModel><y:ModelParameter><y:SmartEdgeLabelModelParameter angle="6.283185307179586" distance="33.09005910502287" distanceToCenter="true" position="left" ratio="0.5" segment="0"/></y:ModelParameter><y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/></y:EdgeLabel>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="n0::e0" source="n0::n1" target="n0::n0">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="95.23204604496436" sy="21.02917232091835" tx="129.20784467038118" ty="23.561826495086848">
|
||||
<y:Point x="1018.0084813601777" y="374.3816986301374"/>
|
||||
</y:Path>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="31.9375" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="238.861328125" x="-248.97679143659298" xml:space="preserve" y="112.88070634823896">TANGENT(target_a) /
|
||||
update_turn_parameters(target_a, 0.0)<y:LabelModel><y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/></y:LabelModel><y:ModelParameter><y:SmartEdgeLabelModelParameter angle="6.283185307179586" distance="23.58386276529688" distanceToCenter="true" position="right" ratio="0.8600797235850546" segment="-1"/></y:ModelParameter><y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/></y:EdgeLabel>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="n0::e1" source="n0::n1" target="n0::n0">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="113.64346807762149" sy="25.929409763840738" tx="148.77410037814377" ty="117.96722332279865">
|
||||
<y:Point x="1036.4199033928348" y="468.7870954578492"/>
|
||||
</y:Path>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="31.9375" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="254.130859375" x="-263.4272210589752" xml:space="preserve" y="205.21680871258775">BACK(target_a) /
|
||||
update_turn_parameters(target_a, 180.0)<y:LabelModel><y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/></y:LabelModel><y:ModelParameter><y:SmartEdgeLabelModelParameter angle="0.0" distance="25.691227907370774" distanceToCenter="true" position="right" ratio="0.8448804036363177" segment="-1"/></y:ModelParameter><y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/></y:EdgeLabel>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="n0::n0::e0" source="n0::n0::n2" target="n0::n0::n0">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="n0::n0::e1" source="n0::n0::n0" target="n0::n0::n1">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="86.39453125" x="1.5749479275011709" xml:space="preserve" y="11.3861701670005">[completed()]<y:LabelModel><y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/></y:LabelModel><y:ModelParameter><y:SmartEdgeLabelModelParameter angle="6.283185307179586" distance="44.77223311780813" distanceToCenter="true" position="left" ratio="0.5000000000000022" segment="-1"/></y:ModelParameter><y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/></y:EdgeLabel>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="n0::n0::e2" source="n0::n0::n1" target="n0::n0::n3">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="86.39453125" x="5.91246478010396" xml:space="preserve" y="11.386169468442006">[completed()]<y:LabelModel><y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/></y:LabelModel><y:ModelParameter><y:SmartEdgeLabelModelParameter angle="6.283185307179586" distance="49.10974997041092" distanceToCenter="true" position="left" ratio="0.5" segment="-1"/></y:ModelParameter><y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/></y:EdgeLabel>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="n0::e2" source="n0::n2" target="n0::n1">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="-216.09354057786163" sy="98.8431288457129" tx="128.21976031506392" ty="13.393254819548332">
|
||||
<y:Point x="1050.9961956302773" y="526.1113488492443"/>
|
||||
</y:Path>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="45.90625" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="231.630859375" x="-237.11585723043345" xml:space="preserve" y="17.656166371763447">TIME_TICK [orientation_completed()] /
|
||||
DISPATCH(cpu, 'ORIENTED')
|
||||
DISPATCH(navigation, 'ORIENTED')<y:LabelModel><y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/></y:LabelModel><y:ModelParameter><y:SmartEdgeLabelModelParameter angle="6.283185307179586" distance="69.71276086852323" distanceToCenter="true" position="left" ratio="-40.60927064751911" segment="-1"/></y:ModelParameter><y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/></y:EdgeLabel>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="n0::n2::n0::e0" source="n0::n2::n0::n0" target="n0::n2::n0::n1">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="-154.388989495136" sy="1.8103811435131574" tx="-154.3889894951362" ty="5.481529825815554"/>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="297.185546875" x="11.403486988376017" xml:space="preserve" y="9.562100644783186">[orientation.get_angular_velocity(AXIS_Z) < DW]<y:LabelModel><y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/></y:LabelModel><y:ModelParameter><y:SmartEdgeLabelModelParameter angle="6.283185307179586" distance="159.99631032560305" distanceToCenter="true" position="left" ratio="0.11012598847800568" segment="-1"/></y:ModelParameter><y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/></y:EdgeLabel>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="n0::n2::n0::e1" source="n0::n2::n0::n1" target="n0::n2::n0::n0">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="163.3004073978625" sy="-10.020716769587466" tx="163.30040739786233" ty="1.0930127555159288"/>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="297.185546875" x="-299.02950504084106" xml:space="preserve" y="-26.17719383487315">[orientation.get_angular_velocity(AXIS_Z) > DW]<y:LabelModel><y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/></y:LabelModel><y:ModelParameter><y:SmartEdgeLabelModelParameter angle="6.283185307179586" distance="150.4367475419249" distanceToCenter="true" position="left" ratio="0.07763648751784133" segment="-1"/></y:ModelParameter><y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/></y:EdgeLabel>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="n0::n2::n0::e2" source="n0::n2::n0::n2" target="n0::n2::n0::n0">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="n0::n2::e0" source="n0::n2::n2" target="n0::n2::n1">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="n0::e3" source="n0::n0::n3" target="n0::n2">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="71.4174301016476" sy="14.49499271795628" tx="-17.616568441025947" ty="284.0153076932616">
|
||||
<y:Point x="665.6268221574344" y="711.283527696793"/>
|
||||
</y:Path>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="86.39453125" x="17.58260885967104" xml:space="preserve" y="96.75264390773054">[completed()]<y:LabelModel><y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/></y:LabelModel><y:ModelParameter><y:SmartEdgeLabelModelParameter angle="0.0" distance="30.0" distanceToCenter="true" position="left" ratio="0.1563381067639392" segment="-1"/></y:ModelParameter><y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/></y:EdgeLabel>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="n0::n2::e1" source="n0::n2::n0" target="n0::n2::n1">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="138.10772495893343" sy="-80.28581743060283" tx="136.99655890700524" ty="11.085690225398537"/>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="98.44140625" x="-100.93222462864446" xml:space="preserve" y="-30.99088017088195">[is_target_dw()]<y:LabelModel><y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/></y:LabelModel><y:ModelParameter><y:SmartEdgeLabelModelParameter angle="6.283185307179586" distance="51.71152195918398" distanceToCenter="true" position="left" ratio="0.5" segment="0"/></y:ModelParameter><y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/></y:EdgeLabel>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="n0::n2::e2" source="n0::n2::n1" target="n0::n2::n0">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="-136.09125450407396" sy="13.45350363647728" tx="-134.98008845214576" ty="-169.29806232856197"/>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="121.908203125" x="9.669483191166364" xml:space="preserve" y="13.809601800578434">[not is_target_dw()]<y:LabelModel><y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/></y:LabelModel><y:ModelParameter><y:SmartEdgeLabelModelParameter angle="6.283185307179586" distance="70.62362915451867" distanceToCenter="true" position="left" ratio="0.5496277473876174" segment="-1"/></y:ModelParameter><y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/></y:EdgeLabel>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
</graph>
|
||||
<data key="d7">
|
||||
<y:Resources/>
|
||||
</data>
|
||||
</graphml>
|
||||
337
tests/18-output.graphml
Normal file
337
tests/18-output.graphml
Normal file
@@ -0,0 +1,337 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<graphml xmlns="http://graphml.graphdrawing.org/xmlns">
|
||||
<data key="gFormat">Cyberiada-GraphML-1.0</data>
|
||||
<key id="gFormat" for="graphml" attr.name="format" attr.type="string"/>
|
||||
<key id="dName" for="graph" attr.name="name" attr.type="string"/>
|
||||
<key id="dName" for="node" attr.name="name" attr.type="string"/>
|
||||
<key id="dStateMachine" for="graph" attr.name="stateMachine" attr.type="string"/>
|
||||
<key id="dSubmachineState" for="node" attr.name="submachineState" attr.type="string"/>
|
||||
<key id="dGeometry" for="graph" attr.name="geometry"/>
|
||||
<key id="dGeometry" for="node" attr.name="geometry"/>
|
||||
<key id="dGeometry" for="edge" attr.name="geometry"/>
|
||||
<key id="dSourcePoint" for="edge" attr.name="sourcePoint"/>
|
||||
<key id="dTargetPoint" for="edge" attr.name="targetPoint"/>
|
||||
<key id="dLabelGeometry" for="edge" attr.name="labelGeometry"/>
|
||||
<key id="dNote" for="node" attr.name="note" attr.type="string"/>
|
||||
<key id="dVertex" for="node" attr.name="vertex" attr.type="string"/>
|
||||
<key id="dData" for="node" attr.name="data" attr.type="string"/>
|
||||
<key id="dData" for="edge" attr.name="data" attr.type="string"/>
|
||||
<key id="dMarkup" for="node" attr.name="markup" attr.type="string"/>
|
||||
<key id="dColor" for="node" attr.name="color" attr.type="string"/>
|
||||
<key id="dColor" for="edge" attr.name="color" attr.type="string"/>
|
||||
<key id="dPivot" for="edge" attr.name="pivot" attr.type="string"/>
|
||||
<key id="dChunk" for="edge" attr.name="chunk" attr.type="string"/>
|
||||
<graph id="G" edgedefault="directed">
|
||||
<data key="dName">orientation</data>
|
||||
<node id="nMeta">
|
||||
<data key="dNote">formal</data>
|
||||
<data key="dName">CGML_META</data>
|
||||
<data key="dData">standardVersion/ 1.0
|
||||
|
||||
name/ orientation
|
||||
|
||||
transitionOrder/ transitionFirst
|
||||
|
||||
eventPropagation/ block
|
||||
|
||||
</data>
|
||||
</node>
|
||||
<node id="n0">
|
||||
<data key="dName">orientation</data>
|
||||
<data key="dData">entry/</data>
|
||||
<data key="dGeometry">
|
||||
<rect x="409.904572" y="50.595303" width="1149.475220" height="725.384277"/>
|
||||
</data>
|
||||
<graph id="n0:" edgedefault="directed">
|
||||
<node id="n0::n0">
|
||||
<data key="dName">turn</data>
|
||||
<data key="dData">entry/
|
||||
orientation.start_motor(AXIS_Z)
|
||||
|
||||
exit/
|
||||
orientation.stop_motor(AXIS_Z)
|
||||
</data>
|
||||
<data key="dGeometry">
|
||||
<rect x="445.462036" y="97.713547" width="297.494720" height="506.212646"/>
|
||||
</data>
|
||||
<graph id="n0::n0:" edgedefault="directed">
|
||||
<node id="n0::n0::n0">
|
||||
<data key="dName">slow_down</data>
|
||||
<data key="dData">entry/
|
||||
reduce_speed()
|
||||
</data>
|
||||
<data key="dGeometry">
|
||||
<rect x="460.462036" y="286.453033" width="267.494720" height="69.211853"/>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n0::n0::n1">
|
||||
<data key="dName">start_turn</data>
|
||||
<data key="dData">entry/
|
||||
calculate_turn()
|
||||
</data>
|
||||
<data key="dGeometry">
|
||||
<rect x="460.462036" y="396.384155" width="267.494720" height="69.211853"/>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n0::n0::n2">
|
||||
<data key="dVertex">initial</data>
|
||||
<data key="dName"></data>
|
||||
<data key="dGeometry">
|
||||
<point x="594.209412" y="247.953018"/>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n0::n0::n3">
|
||||
<data key="dName">finish_turn</data>
|
||||
<data key="dData">entry/
|
||||
complete_turn()
|
||||
</data>
|
||||
<data key="dGeometry">
|
||||
<rect x="460.462036" y="506.315277" width="267.494720" height="69.211853"/>
|
||||
</data>
|
||||
</node>
|
||||
</graph>
|
||||
</node>
|
||||
<node id="n0::n1">
|
||||
<data key="dName">idle</data>
|
||||
<data key="dData">entry/</data>
|
||||
<data key="dGeometry">
|
||||
<rect x="766.168030" y="103.962479" width="313.216827" height="117.952454"/>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n0::n2">
|
||||
<data key="dName">wait</data>
|
||||
<data key="dData">entry/</data>
|
||||
<data key="dGeometry">
|
||||
<rect x="1102.596069" y="106.936821" width="432.212921" height="640.662781"/>
|
||||
</data>
|
||||
<graph id="n0::n2:" edgedefault="directed">
|
||||
<node id="n0::n2::n0">
|
||||
<data key="dName">maintain</data>
|
||||
<data key="dData">entry/
|
||||
orientation.start_motor(AXIS_Z)
|
||||
|
||||
exit/
|
||||
orientation.stop_motor(AXIS_Z)
|
||||
</data>
|
||||
<data key="dGeometry">
|
||||
<rect x="1121.596069" y="320.743958" width="393.600128" height="400.073730"/>
|
||||
</data>
|
||||
<graph id="n0::n2::n0:" edgedefault="directed">
|
||||
<node id="n0::n2::n0::n0">
|
||||
<data key="dName">correct_cw</data>
|
||||
<data key="dData">entry/
|
||||
orientation.set_motor_moment(AXIS_Z, -M)
|
||||
</data>
|
||||
<data key="dGeometry">
|
||||
<rect x="1140.349731" y="479.237457" width="358.315155" height="75.337151"/>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n0::n2::n0::n1">
|
||||
<data key="dName">correct_ccw</data>
|
||||
<data key="dData">entry/
|
||||
orientation.set_motor_moment(AXIS_Z, M)
|
||||
</data>
|
||||
<data key="dGeometry">
|
||||
<rect x="1140.349731" y="624.163330" width="358.315155" height="75.337151"/>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n0::n2::n0::n2">
|
||||
<data key="dVertex">initial</data>
|
||||
<data key="dName"></data>
|
||||
<data key="dGeometry">
|
||||
<point x="1319.507324" y="436.352631"/>
|
||||
</data>
|
||||
</node>
|
||||
</graph>
|
||||
</node>
|
||||
<node id="n0::n2::n1">
|
||||
<data key="dName">static</data>
|
||||
<data key="dData">entry/</data>
|
||||
<data key="dGeometry">
|
||||
<rect x="1122.707275" y="201.438705" width="393.600128" height="75.337151"/>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n0::n2::n2">
|
||||
<data key="dVertex">initial</data>
|
||||
<data key="dName"></data>
|
||||
<data key="dGeometry">
|
||||
<point x="1319.507324" y="158.553864"/>
|
||||
</data>
|
||||
</node>
|
||||
</graph>
|
||||
</node>
|
||||
</graph>
|
||||
</node>
|
||||
<node id="n1">
|
||||
<data key="dVertex">initial</data>
|
||||
<data key="dName"></data>
|
||||
<data key="dGeometry">
|
||||
<point x="945.784363" y="-25.402416"/>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n2">
|
||||
<data key="dNote">informal</data>
|
||||
<data key="dData">Init scripts:
|
||||
|
||||
test3sm_constants.py
|
||||
test3sm_orient.py</data>
|
||||
<data key="dGeometry">
|
||||
<rect x="445.462036" y="652.554016" width="160.084412" height="95.045609"/>
|
||||
</data>
|
||||
</node>
|
||||
<edge id="e0" source="n1" target="n0::n1">
|
||||
<data key="dSourcePoint">
|
||||
<point x="0.000000" y="0.000000"/>
|
||||
</data>
|
||||
<data key="dTargetPoint">
|
||||
<point x="23.007910" y="-7.047745"/>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e1" source="n0" target="n0::n1">
|
||||
<data key="dData">STOP/</data>
|
||||
<data key="dGeometry">
|
||||
<point x="826.770386" y="-4.951387"/>
|
||||
<point x="918.657471" y="-4.951387"/>
|
||||
</data>
|
||||
<data key="dSourcePoint">
|
||||
<point x="-157.871811" y="-122.809059"/>
|
||||
</data>
|
||||
<data key="dTargetPoint">
|
||||
<point x="-4.118959" y="-7.297270"/>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="n0::e0" source="n0::n1" target="n0::n0">
|
||||
<data key="dData">TANGENT(target_a)/
|
||||
update_turn_parameters(target_a, 0.0)
|
||||
</data>
|
||||
<data key="dGeometry">
|
||||
<point x="1018.008484" y="374.381714"/>
|
||||
</data>
|
||||
<data key="dSourcePoint">
|
||||
<point x="95.232048" y="21.029173"/>
|
||||
</data>
|
||||
<data key="dTargetPoint">
|
||||
<point x="129.207840" y="23.561827"/>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="n0::e1" source="n0::n1" target="n0::n0">
|
||||
<data key="dData">BACK(target_a)/
|
||||
update_turn_parameters(target_a, 180.0)
|
||||
</data>
|
||||
<data key="dGeometry">
|
||||
<point x="1036.419922" y="468.787109"/>
|
||||
</data>
|
||||
<data key="dSourcePoint">
|
||||
<point x="113.643471" y="25.929409"/>
|
||||
</data>
|
||||
<data key="dTargetPoint">
|
||||
<point x="148.774094" y="117.967224"/>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="n0::n0::e0" source="n0::n0::n2" target="n0::n0::n0">
|
||||
<data key="dSourcePoint">
|
||||
<point x="0.000000" y="0.000000"/>
|
||||
</data>
|
||||
<data key="dTargetPoint">
|
||||
<point x="0.000000" y="0.000000"/>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="n0::n0::e1" source="n0::n0::n0" target="n0::n0::n1">
|
||||
<data key="dData">[completed()]/</data>
|
||||
<data key="dSourcePoint">
|
||||
<point x="0.000000" y="0.000000"/>
|
||||
</data>
|
||||
<data key="dTargetPoint">
|
||||
<point x="0.000000" y="0.000000"/>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="n0::n0::e2" source="n0::n0::n1" target="n0::n0::n3">
|
||||
<data key="dData">[completed()]/</data>
|
||||
<data key="dSourcePoint">
|
||||
<point x="0.000000" y="0.000000"/>
|
||||
</data>
|
||||
<data key="dTargetPoint">
|
||||
<point x="0.000000" y="0.000000"/>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="n0::e2" source="n0::n2" target="n0::n1">
|
||||
<data key="dData">TIME_TICK [orientation_completed()]/
|
||||
DISPATCH(cpu, 'ORIENTED')
|
||||
DISPATCH(navigation, 'ORIENTED')
|
||||
</data>
|
||||
<data key="dGeometry">
|
||||
<point x="1050.996216" y="526.111328"/>
|
||||
</data>
|
||||
<data key="dSourcePoint">
|
||||
<point x="-216.093536" y="98.843132"/>
|
||||
</data>
|
||||
<data key="dTargetPoint">
|
||||
<point x="128.219757" y="13.393255"/>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="n0::n2::n0::e0" source="n0::n2::n0::n0" target="n0::n2::n0::n1">
|
||||
<data key="dData">[orientation.get_angular_velocity(AXIS_Z) < DW]/</data>
|
||||
<data key="dSourcePoint">
|
||||
<point x="-154.388992" y="1.810381"/>
|
||||
</data>
|
||||
<data key="dTargetPoint">
|
||||
<point x="-154.388992" y="5.481530"/>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="n0::n2::n0::e1" source="n0::n2::n0::n1" target="n0::n2::n0::n0">
|
||||
<data key="dData">[orientation.get_angular_velocity(AXIS_Z) > DW]/</data>
|
||||
<data key="dSourcePoint">
|
||||
<point x="163.300400" y="-10.020717"/>
|
||||
</data>
|
||||
<data key="dTargetPoint">
|
||||
<point x="163.300400" y="1.093013"/>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="n0::n2::n0::e2" source="n0::n2::n0::n2" target="n0::n2::n0::n0">
|
||||
<data key="dSourcePoint">
|
||||
<point x="0.000000" y="0.000000"/>
|
||||
</data>
|
||||
<data key="dTargetPoint">
|
||||
<point x="0.000000" y="0.000000"/>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="n0::n2::e0" source="n0::n2::n2" target="n0::n2::n1">
|
||||
<data key="dSourcePoint">
|
||||
<point x="0.000000" y="0.000000"/>
|
||||
</data>
|
||||
<data key="dTargetPoint">
|
||||
<point x="0.000000" y="0.000000"/>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="n0::e3" source="n0::n0::n3" target="n0::n2">
|
||||
<data key="dData">[completed()]/</data>
|
||||
<data key="dGeometry">
|
||||
<point x="665.626831" y="711.283508"/>
|
||||
</data>
|
||||
<data key="dSourcePoint">
|
||||
<point x="71.417427" y="14.494992"/>
|
||||
</data>
|
||||
<data key="dTargetPoint">
|
||||
<point x="-17.616568" y="284.015320"/>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="n0::n2::e1" source="n0::n2::n0" target="n0::n2::n1">
|
||||
<data key="dData">[is_target_dw()]/</data>
|
||||
<data key="dSourcePoint">
|
||||
<point x="138.107727" y="-80.285820"/>
|
||||
</data>
|
||||
<data key="dTargetPoint">
|
||||
<point x="136.996552" y="11.085690"/>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="n0::n2::e2" source="n0::n2::n1" target="n0::n2::n0">
|
||||
<data key="dData">[not is_target_dw()]/</data>
|
||||
<data key="dSourcePoint">
|
||||
<point x="-136.091248" y="13.453504"/>
|
||||
</data>
|
||||
<data key="dTargetPoint">
|
||||
<point x="-134.980087" y="-169.298065"/>
|
||||
</data>
|
||||
</edge>
|
||||
</graph>
|
||||
</graphml>
|
||||
5
tests/18-output.txt
Normal file
5
tests/18-output.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
Document: {id: '', name: 'orientation', format: 'yEd Ostranna', meta: {standard version: '1.0', name: 'orientation', transition order: transition first, event propagation: block events}, elements: {State Machine: {id: 'G', name: 'orientation', elements: {Composite State: {id: 'n0', name: 'orientation', actions: {a {entry}}, geometry: (409.905; 50.5953; 1149.48; 725.384), elements: {Composite State: {id: 'n0::n0', name: 'turn', actions: {a {entry, behavior: 'orientation.start_motor(AXIS_Z)'}, a {exit, behavior: 'orientation.stop_motor(AXIS_Z)'}}, geometry: (445.462; 97.7135; 297.495; 506.213), elements: {Simple State: {id: 'n0::n0::n0', name: 'slow_down', actions: {a {entry, behavior: 'reduce_speed()'}}, geometry: (460.462; 286.453; 267.495; 69.2119)}, Simple State: {id: 'n0::n0::n1', name: 'start_turn', actions: {a {entry, behavior: 'calculate_turn()'}}, geometry: (460.462; 396.384; 267.495; 69.2119)}, Initial: {id: 'n0::n0::n2', name: '', geometry: (594.209; 247.953)}, Simple State: {id: 'n0::n0::n3', name: 'finish_turn', actions: {a {entry, behavior: 'complete_turn()'}}, geometry: (460.462; 506.315; 267.495; 69.2119)}}}, Simple State: {id: 'n0::n1', name: 'idle', actions: {a {entry}}, geometry: (766.168; 103.962; 313.217; 117.952)}, Composite State: {id: 'n0::n2', name: 'wait', actions: {a {entry}}, geometry: (1102.6; 106.937; 432.213; 640.663), elements: {Composite State: {id: 'n0::n2::n0', name: 'maintain', actions: {a {entry, behavior: 'orientation.start_motor(AXIS_Z)'}, a {exit, behavior: 'orientation.stop_motor(AXIS_Z)'}}, geometry: (1121.6; 320.744; 393.6; 400.074), elements: {Simple State: {id: 'n0::n2::n0::n0', name: 'correct_cw', actions: {a {entry, behavior: 'orientation.set_motor_moment(AXIS_Z, -M)'}}, geometry: (1140.35; 479.237; 358.315; 75.3372)}, Simple State: {id: 'n0::n2::n0::n1', name: 'correct_ccw', actions: {a {entry, behavior: 'orientation.set_motor_moment(AXIS_Z, M)'}}, geometry: (1140.35; 624.163; 358.315; 75.3372)}, Initial: {id: 'n0::n2::n0::n2', name: '', geometry: (1319.51; 436.353)}}}, Simple State: {id: 'n0::n2::n1', name: 'static', actions: {a {entry}}, geometry: (1122.71; 201.439; 393.6; 75.3372)}, Initial: {id: 'n0::n2::n2', name: '', geometry: (1319.51; 158.554)}}}}}, Initial: {id: 'n1', name: '', geometry: (945.784; -25.4024)}, Comment: {id: 'n2', body: 'Init scripts:
|
||||
|
||||
test3sm_constants.py
|
||||
test3sm_orient.py', geometry: (445.462; 652.554; 160.084; 95.0456)}, Transition: {id: 'e0', source: 'n1', target: 'n0::n1', sp: (0; 0), tp: (23.0079; -7.04775)}, Transition: {id: 'e1', source: 'n0', target: 'n0::n1', action: {trigger: 'STOP'}, sp: (-157.872; -122.809), tp: (-4.11896; -7.29727), polyline: [ (826.77; -4.95139), (918.657; -4.95139) ]}, Transition: {id: 'n0::e0', source: 'n0::n1', target: 'n0::n0', action: {trigger: 'TANGENT(target_a)', behavior: 'update_turn_parameters(target_a, 0.0)'}, sp: (95.232; 21.0292), tp: (129.208; 23.5618), polyline: [ (1018.01; 374.382) ]}, Transition: {id: 'n0::e1', source: 'n0::n1', target: 'n0::n0', action: {trigger: 'BACK(target_a)', behavior: 'update_turn_parameters(target_a, 180.0)'}, sp: (113.643; 25.9294), tp: (148.774; 117.967), polyline: [ (1036.42; 468.787) ]}, Transition: {id: 'n0::n0::e0', source: 'n0::n0::n2', target: 'n0::n0::n0', sp: (0; 0), tp: (0; 0)}, Transition: {id: 'n0::n0::e1', source: 'n0::n0::n0', target: 'n0::n0::n1', action: {guard: 'completed()'}, sp: (0; 0), tp: (0; 0)}, Transition: {id: 'n0::n0::e2', source: 'n0::n0::n1', target: 'n0::n0::n3', action: {guard: 'completed()'}, sp: (0; 0), tp: (0; 0)}, Transition: {id: 'n0::e2', source: 'n0::n2', target: 'n0::n1', action: {trigger: 'TIME_TICK', guard: 'orientation_completed()', behavior: 'DISPATCH(cpu, 'ORIENTED')
|
||||
DISPATCH(navigation, 'ORIENTED')'}, sp: (-216.094; 98.8431), tp: (128.22; 13.3933), polyline: [ (1051; 526.111) ]}, Transition: {id: 'n0::n2::n0::e0', source: 'n0::n2::n0::n0', target: 'n0::n2::n0::n1', action: {guard: 'orientation.get_angular_velocity(AXIS_Z) < DW'}, sp: (-154.389; 1.81038), tp: (-154.389; 5.48153)}, Transition: {id: 'n0::n2::n0::e1', source: 'n0::n2::n0::n1', target: 'n0::n2::n0::n0', action: {guard: 'orientation.get_angular_velocity(AXIS_Z) > DW'}, sp: (163.3; -10.0207), tp: (163.3; 1.09301)}, Transition: {id: 'n0::n2::n0::e2', source: 'n0::n2::n0::n2', target: 'n0::n2::n0::n0', sp: (0; 0), tp: (0; 0)}, Transition: {id: 'n0::n2::e0', source: 'n0::n2::n2', target: 'n0::n2::n1', sp: (0; 0), tp: (0; 0)}, Transition: {id: 'n0::e3', source: 'n0::n0::n3', target: 'n0::n2', action: {guard: 'completed()'}, sp: (71.4174; 14.495), tp: (-17.6166; 284.015), polyline: [ (665.627; 711.284) ]}, Transition: {id: 'n0::n2::e1', source: 'n0::n2::n0', target: 'n0::n2::n1', action: {guard: 'is_target_dw()'}, sp: (138.108; -80.2858), tp: (136.997; 11.0857)}, Transition: {id: 'n0::n2::e2', source: 'n0::n2::n1', target: 'n0::n2::n0', action: {guard: 'not is_target_dw()'}, sp: (-136.091; 13.4535), tp: (-134.98; -169.298)}}}}
|
||||
Reference in New Issue
Block a user