Mercurial > MadButterfly
changeset 117:e4e47d2cdbcd
Tank
author | Thinker K.F. Li <thinker@branda.to> |
---|---|
date | Sun, 14 Sep 2008 18:51:16 +0800 |
parents | 1d74eb3861b7 |
children | c9c6810a96c1 |
files | Doxyfile dox/first_program.h examples/svg2code_ex/main.c examples/tank/tank_main.c img/core.gaphor img/core.png img/program.png src/Makefile src/animate.c src/animate.h src/rotate.c src/shift.c |
diffstat | 12 files changed, 199 insertions(+), 27 deletions(-) [+] |
line wrap: on
line diff
--- a/Doxyfile Sun Sep 14 09:42:07 2008 +0800 +++ b/Doxyfile Sun Sep 14 18:51:16 2008 +0800 @@ -591,7 +591,7 @@ # directories that contain example code fragments that are included (see # the \include command). -EXAMPLE_PATH = +EXAMPLE_PATH = examples/ # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
--- a/dox/first_program.h Sun Sep 14 09:42:07 2008 +0800 +++ b/dox/first_program.h Sun Sep 14 18:51:16 2008 +0800 @@ -27,5 +27,7 @@ * and initialize a 'foo' instance. An instance is released by calling * foo_free(). * - * - \subpage svg2code_ex + * \dontinclude examples/svg2code_ex/main.c + * \skip main + * \until } */
--- a/examples/svg2code_ex/main.c Sun Sep 14 09:42:07 2008 +0800 +++ b/examples/svg2code_ex/main.c Sun Sep 14 18:51:16 2008 +0800 @@ -1,4 +1,4 @@ -/*! \page svg2code_ex +/*! \file * * svg2code_ex is an example that show programmers how to create a * menu with MadButterfly.
--- a/examples/tank/tank_main.c Sun Sep 14 09:42:07 2008 +0800 +++ b/examples/tank/tank_main.c Sun Sep 14 18:51:16 2008 +0800 @@ -35,7 +35,8 @@ struct _tank_rt { tank1_t *tank1; tank2_t *tank2; - tank_en_t *tank_en; + int n_enemy; + tank_en_t *tank_enemies[10]; void *map[12][16]; X_MB_runtime_t *mb_rt; }; @@ -88,10 +89,14 @@ } tank_rt->tank1 = tank1_new(rdman); + CHANGE_POS(tank_rt->tank1, 5 * 50, 11 * 50); tank_rt->tank2 = tank2_new(rdman); - CHANGE_POS(tank_rt->tank2, 50, 0); - tank_rt->tank_en = tank_en_new(rdman); - CHANGE_POS(tank_rt->tank_en, 100, 0); + CHANGE_POS(tank_rt->tank2, 10 * 50, 11 * 50); + for(i = 0; i < 3; i++) { + tank_rt->tank_enemies[i] = tank_en_new(rdman); + CHANGE_POS(tank_rt->tank_enemies[i], (2 + i * 3) * 50, 0); + } + tank_rt->n_enemy = i; } int
--- a/img/core.gaphor Sun Sep 14 09:42:07 2008 +0800 +++ b/img/core.gaphor Sun Sep 14 18:51:16 2008 +0800 @@ -1,2 +1,3 @@ <?xml version="1.0" encoding="utf-8"?> -<gaphor version="3.0" gaphor-version="0.13.0"><Package id="DCE:9C711C86-7F0F-11DD-87F8-"><name><val><![CDATA[New model]]></val></name><ownedClassifier><reflist><ref refid="DCE:EB8E5F04-7F0F-11DD-87F8-"></ref><ref refid="DCE:F0D6677C-7F0F-11DD-87F8-"></ref><ref refid="DCE:F58834DA-7F0F-11DD-87F8-"></ref><ref refid="DCE:0398B982-7F10-11DD-87F8-"></ref><ref refid="DCE:0728AB5C-7F10-11DD-87F8-"></ref><ref refid="DCE:DBCD2482-7F10-11DD-87F8-"></ref><ref refid="DCE:4AA86B8C-7F13-11DD-87F8-"></ref><ref refid="DCE:69F0555C-7F13-11DD-87F8-"></ref><ref refid="DCE:0317364A-7F14-11DD-87F8-"></ref><ref refid="DCE:12ACAEE8-7F14-11DD-87F8-"></ref><ref refid="DCE:1E53F84E-7F14-11DD-87F8-"></ref><ref refid="DCE:341467E2-7F14-11DD-87F8-"></ref><ref refid="DCE:43403E8A-7F14-11DD-87F8-"></ref><ref refid="DCE:78450778-7F14-11DD-87F8-"></ref></reflist></ownedClassifier><ownedDiagram><reflist><ref refid="DCE:9C73163A-7F0F-11DD-87F8-"></ref></reflist></ownedDiagram></Package><Diagram id="DCE:9C73163A-7F0F-11DD-87F8-"><name><val><![CDATA[core]]></val></name><package><ref refid="DCE:9C711C86-7F0F-11DD-87F8-"></ref></package><canvas><item type="ClassItem" id="DCE:EB8EF5EA-7F0F-11DD-87F8-"><show-attributes><val>1</val></show-attributes><show-operations><val>1</val></show-operations><drawing-style><val>1</val></drawing-style><matrix><val>(1.0, 0.0, 0.0, 1.0, 309.0, 118.0)</val></matrix><width><val>100.0</val></width><height><val>50.0</val></height><subject><ref refid="DCE:EB8E5F04-7F0F-11DD-87F8-"></ref></subject></item><item type="ClassItem" id="DCE:F0D6A19C-7F0F-11DD-87F8-"><show-attributes><val>1</val></show-attributes><show-operations><val>1</val></show-operations><drawing-style><val>1</val></drawing-style><matrix><val>(1.0, 0.0, 0.0, 1.0, 249.0, 237.0)</val></matrix><width><val>100.0</val></width><height><val>51.8125</val></height><subject><ref refid="DCE:F0D6677C-7F0F-11DD-87F8-"></ref></subject></item><item type="ClassItem" id="DCE:F5887742-7F0F-11DD-87F8-"><show-attributes><val>1</val></show-attributes><show-operations><val>1</val></show-operations><drawing-style><val>1</val></drawing-style><matrix><val>(1.0, 0.0, 0.0, 1.0, 420.0, 225.0)</val></matrix><width><val>100.0</val></width><height><val>51.8125</val></height><subject><ref refid="DCE:F58834DA-7F0F-11DD-87F8-"></ref></subject></item><item type="AssociationItem" id="DCE:033C8536-7F10-11DD-87F8-"><subject><ref refid="DCE:0398B982-7F10-11DD-87F8-"></ref></subject><matrix><val>(1.0, 0.0, 0.0, 1.0, 344.0, 168.0)</val></matrix><orthogonal><val>0</val></orthogonal><horizontal><val>0</val></horizontal><points><val>[(0.0, 0.0), (-57.0, 69.0)]</val></points><head-connection><ref refid="DCE:EB8EF5EA-7F0F-11DD-87F8-"></ref></head-connection><tail-connection><ref refid="DCE:F0D6A19C-7F0F-11DD-87F8-"></ref></tail-connection><show-direction><val>0</val></show-direction><head-subject><ref refid="DCE:0398E356-7F10-11DD-87F8-"></ref></head-subject><tail-subject><ref refid="DCE:0399EB2C-7F10-11DD-87F8-"></ref></tail-subject></item><item type="AssociationItem" id="DCE:05F3DAE0-7F10-11DD-87F8-"><subject><ref refid="DCE:0728AB5C-7F10-11DD-87F8-"></ref></subject><matrix><val>(1.0, 0.0, 0.0, 1.0, 374.0, 168.0)</val></matrix><orthogonal><val>0</val></orthogonal><horizontal><val>0</val></horizontal><points><val>[(0.0, 0.0), (110.0, 57.0)]</val></points><head-connection><ref refid="DCE:EB8EF5EA-7F0F-11DD-87F8-"></ref></head-connection><tail-connection><ref refid="DCE:F5887742-7F0F-11DD-87F8-"></ref></tail-connection><show-direction><val>0</val></show-direction><head-subject><ref refid="DCE:0728BDE0-7F10-11DD-87F8-"></ref></head-subject><tail-subject><ref refid="DCE:07294116-7F10-11DD-87F8-"></ref></tail-subject></item><item type="ClassItem" id="DCE:DBCD5F62-7F10-11DD-87F8-"><show-attributes><val>1</val></show-attributes><show-operations><val>1</val></show-operations><drawing-style><val>1</val></drawing-style><matrix><val>(1.0, 0.0, 0.0, 1.0, 248.0, 334.0)</val></matrix><width><val>100.0</val></width><height><val>51.8125</val></height><subject><ref refid="DCE:DBCD2482-7F10-11DD-87F8-"></ref></subject></item><item type="AssociationItem" id="DCE:4A2CCDD6-7F13-11DD-87F8-"><subject><ref refid="DCE:4AA86B8C-7F13-11DD-87F8-"></ref></subject><matrix><val>(1.0, 0.0, 0.0, 1.0, 297.0, 288.8125)</val></matrix><orthogonal><val>0</val></orthogonal><horizontal><val>0</val></horizontal><points><val>[(0.0, 0.0), (-1.0, 45.1875)]</val></points><head-connection><ref refid="DCE:F0D6A19C-7F0F-11DD-87F8-"></ref></head-connection><tail-connection><ref refid="DCE:DBCD5F62-7F10-11DD-87F8-"></ref></tail-connection><show-direction><val>0</val></show-direction><head-subject><ref refid="DCE:4AA87F76-7F13-11DD-87F8-"></ref></head-subject><tail-subject><ref refid="DCE:4AA90658-7F13-11DD-87F8-"></ref></tail-subject></item><item type="AssociationItem" id="DCE:689F96B8-7F13-11DD-87F8-"><subject><ref refid="DCE:69F0555C-7F13-11DD-87F8-"></ref></subject><matrix><val>(1.0, 0.0, 0.0, 1.0, 348.0, 334.0)</val></matrix><orthogonal><val>0</val></orthogonal><horizontal><val>0</val></horizontal><points><val>[(0.0, 0.0), (72.0, -60.0)]</val></points><head-connection><ref refid="DCE:DBCD5F62-7F10-11DD-87F8-"></ref></head-connection><tail-connection><ref refid="DCE:F5887742-7F0F-11DD-87F8-"></ref></tail-connection><show-direction><val>0</val></show-direction><head-subject><ref refid="DCE:69F067D6-7F13-11DD-87F8-"></ref></head-subject><tail-subject><ref refid="DCE:69F0E012-7F13-11DD-87F8-"></ref></tail-subject></item><item type="ClassItem" id="DCE:03176E48-7F14-11DD-87F8-"><show-attributes><val>1</val></show-attributes><show-operations><val>1</val></show-operations><drawing-style><val>1</val></drawing-style><matrix><val>(1.0, 0.0, 0.0, 1.0, 427.0, 334.0)</val></matrix><width><val>100.0</val></width><height><val>51.8125</val></height><subject><ref refid="DCE:0317364A-7F14-11DD-87F8-"></ref></subject></item><item type="AssociationItem" id="DCE:1147E3B0-7F14-11DD-87F8-"><subject><ref refid="DCE:12ACAEE8-7F14-11DD-87F8-"></ref></subject><matrix><val>(1.0, 0.0, 0.0, 1.0, 348.0, 360.0)</val></matrix><orthogonal><val>0</val></orthogonal><horizontal><val>0</val></horizontal><points><val>[(0.0, 0.0), (79.0, 1.0)]</val></points><head-connection><ref refid="DCE:DBCD5F62-7F10-11DD-87F8-"></ref></head-connection><tail-connection><ref refid="DCE:03176E48-7F14-11DD-87F8-"></ref></tail-connection><show-direction><val>0</val></show-direction><head-subject><ref refid="DCE:12ACC1D0-7F14-11DD-87F8-"></ref></head-subject><tail-subject><ref refid="DCE:12AD38C2-7F14-11DD-87F8-"></ref></tail-subject></item><item type="ClassItem" id="DCE:1E542FA0-7F14-11DD-87F8-"><show-attributes><val>1</val></show-attributes><show-operations><val>1</val></show-operations><drawing-style><val>1</val></drawing-style><matrix><val>(1.0, 0.0, 0.0, 1.0, 430.0, 423.0)</val></matrix><width><val>100.0</val></width><height><val>51.8125</val></height><subject><ref refid="DCE:1E53F84E-7F14-11DD-87F8-"></ref></subject></item><item type="AssociationItem" id="DCE:3308A174-7F14-11DD-87F8-"><subject><ref refid="DCE:341467E2-7F14-11DD-87F8-"></ref></subject><matrix><val>(1.0, 0.0, 0.0, 1.0, 430.0, 449.0)</val></matrix><orthogonal><val>0</val></orthogonal><horizontal><val>0</val></horizontal><points><val>[(0.0, 0.0), (-82.0, -63.1875)]</val></points><head-connection><ref refid="DCE:1E542FA0-7F14-11DD-87F8-"></ref></head-connection><tail-connection><ref refid="DCE:DBCD5F62-7F10-11DD-87F8-"></ref></tail-connection><show-direction><val>0</val></show-direction><head-subject><ref refid="DCE:34147AA2-7F14-11DD-87F8-"></ref></head-subject><tail-subject><ref refid="DCE:34150922-7F14-11DD-87F8-"></ref></tail-subject></item><item type="AssociationItem" id="DCE:428B1854-7F14-11DD-87F8-"><subject><ref refid="DCE:43403E8A-7F14-11DD-87F8-"></ref></subject><matrix><val>(1.0, 0.0, 0.0, 1.0, 477.0, 385.8125)</val></matrix><orthogonal><val>0</val></orthogonal><horizontal><val>0</val></horizontal><points><val>[(0.0, 0.0), (-1.0, 37.1875)]</val></points><head-connection><ref refid="DCE:03176E48-7F14-11DD-87F8-"></ref></head-connection><tail-connection><ref refid="DCE:1E542FA0-7F14-11DD-87F8-"></ref></tail-connection><show-direction><val>0</val></show-direction><head-subject><ref refid="DCE:4340515E-7F14-11DD-87F8-"></ref></head-subject><tail-subject><ref refid="DCE:4340C8AA-7F14-11DD-87F8-"></ref></tail-subject></item><item type="AssociationItem" id="DCE:772CEB62-7F14-11DD-87F8-"><subject><ref refid="DCE:78450778-7F14-11DD-87F8-"></ref></subject><matrix><val>(1.0, 0.0, 0.0, 1.0, 348.0, 377.0)</val></matrix><orthogonal><val>0</val></orthogonal><horizontal><val>0</val></horizontal><points><val>[(0.0, 0.0), (79.0, 0.0)]</val></points><head-connection><ref refid="DCE:DBCD5F62-7F10-11DD-87F8-"></ref></head-connection><tail-connection><ref refid="DCE:03176E48-7F14-11DD-87F8-"></ref></tail-connection><show-direction><val>0</val></show-direction><head-subject><ref refid="DCE:78451A2E-7F14-11DD-87F8-"></ref></head-subject><tail-subject><ref refid="DCE:78460B50-7F14-11DD-87F8-"></ref></tail-subject></item></canvas></Diagram><Class id="DCE:EB8E5F04-7F0F-11DD-87F8-"><name><val><![CDATA[rdman]]></val></name><ownedAttribute><reflist><ref refid="DCE:07294116-7F10-11DD-87F8-"></ref><ref refid="DCE:0399EB2C-7F10-11DD-87F8-"></ref></reflist></ownedAttribute><package><ref refid="DCE:9C711C86-7F0F-11DD-87F8-"></ref></package><presentation><reflist><ref refid="DCE:EB8EF5EA-7F0F-11DD-87F8-"></ref></reflist></presentation></Class><Class id="DCE:F0D6677C-7F0F-11DD-87F8-"><name><val><![CDATA[goe_t]]></val></name><ownedAttribute><reflist><ref refid="DCE:4AA90658-7F13-11DD-87F8-"></ref></reflist></ownedAttribute><package><ref refid="DCE:9C711C86-7F0F-11DD-87F8-"></ref></package><presentation><reflist><ref refid="DCE:F0D6A19C-7F0F-11DD-87F8-"></ref></reflist></presentation></Class><Class id="DCE:F58834DA-7F0F-11DD-87F8-"><name><val><![CDATA[coord_t]]></val></name><ownedAttribute><reflist><ref refid="DCE:0728BDE0-7F10-11DD-87F8-"></ref><ref refid="DCE:69F067D6-7F13-11DD-87F8-"></ref></reflist></ownedAttribute><package><ref refid="DCE:9C711C86-7F0F-11DD-87F8-"></ref></package><presentation><reflist><ref refid="DCE:F5887742-7F0F-11DD-87F8-"></ref></reflist></presentation></Class><Association id="DCE:0398B982-7F10-11DD-87F8-"><memberEnd><reflist><ref refid="DCE:0398E356-7F10-11DD-87F8-"></ref><ref refid="DCE:0399EB2C-7F10-11DD-87F8-"></ref></reflist></memberEnd><name><val><![CDATA[]]></val></name><package><ref refid="DCE:9C711C86-7F0F-11DD-87F8-"></ref></package><presentation><reflist><ref refid="DCE:033C8536-7F10-11DD-87F8-"></ref></reflist></presentation></Association><Property id="DCE:0398E356-7F10-11DD-87F8-"><association><ref refid="DCE:0398B982-7F10-11DD-87F8-"></ref></association><lowerValue><ref refid="DCE:0399525C-7F10-11DD-87F8-"></ref></lowerValue><name><val><![CDATA[gen_geos]]></val></name><presentation><reflist></reflist></presentation><type><ref refid="DCE:EB8E5F04-7F0F-11DD-87F8-"></ref></type><upperValue><ref refid="DCE:81C096D6-7F10-11DD-87F8-"></ref></upperValue></Property><LiteralSpecification id="DCE:0399525C-7F10-11DD-87F8-"></LiteralSpecification><Property id="DCE:0399EB2C-7F10-11DD-87F8-"><association><ref refid="DCE:0398B982-7F10-11DD-87F8-"></ref></association><class_><ref refid="DCE:EB8E5F04-7F0F-11DD-87F8-"></ref></class_><lowerValue><ref refid="DCE:039A105C-7F10-11DD-87F8-"></ref></lowerValue><presentation><reflist></reflist></presentation><type><ref refid="DCE:F0D6677C-7F0F-11DD-87F8-"></ref></type></Property><LiteralSpecification id="DCE:039A105C-7F10-11DD-87F8-"></LiteralSpecification><Association id="DCE:0728AB5C-7F10-11DD-87F8-"><memberEnd><reflist><ref refid="DCE:0728BDE0-7F10-11DD-87F8-"></ref><ref refid="DCE:07294116-7F10-11DD-87F8-"></ref></reflist></memberEnd><package><ref refid="DCE:9C711C86-7F0F-11DD-87F8-"></ref></package><presentation><reflist><ref refid="DCE:05F3DAE0-7F10-11DD-87F8-"></ref></reflist></presentation></Association><Property id="DCE:0728BDE0-7F10-11DD-87F8-"><association><ref refid="DCE:0728AB5C-7F10-11DD-87F8-"></ref></association><class_><ref refid="DCE:F58834DA-7F0F-11DD-87F8-"></ref></class_><lowerValue><ref refid="DCE:0728E4FA-7F10-11DD-87F8-"></ref></lowerValue><presentation><reflist></reflist></presentation><type><ref refid="DCE:EB8E5F04-7F0F-11DD-87F8-"></ref></type></Property><LiteralSpecification id="DCE:0728E4FA-7F10-11DD-87F8-"></LiteralSpecification><Property id="DCE:07294116-7F10-11DD-87F8-"><association><ref refid="DCE:0728AB5C-7F10-11DD-87F8-"></ref></association><class_><ref refid="DCE:EB8E5F04-7F0F-11DD-87F8-"></ref></class_><lowerValue><ref refid="DCE:07296614-7F10-11DD-87F8-"></ref></lowerValue><presentation><reflist></reflist></presentation><type><ref refid="DCE:F58834DA-7F0F-11DD-87F8-"></ref></type></Property><LiteralSpecification id="DCE:07296614-7F10-11DD-87F8-"></LiteralSpecification><LiteralSpecification id="DCE:81C096D6-7F10-11DD-87F8-"><value><val><![CDATA[*]]></val></value></LiteralSpecification><Class id="DCE:DBCD2482-7F10-11DD-87F8-"><name><val><![CDATA[shape_t]]></val></name><ownedAttribute><reflist><ref refid="DCE:4AA87F76-7F13-11DD-87F8-"></ref><ref refid="DCE:69F0E012-7F13-11DD-87F8-"></ref><ref refid="DCE:12AD38C2-7F14-11DD-87F8-"></ref><ref refid="DCE:78460B50-7F14-11DD-87F8-"></ref></reflist></ownedAttribute><package><ref refid="DCE:9C711C86-7F0F-11DD-87F8-"></ref></package><presentation><reflist><ref refid="DCE:DBCD5F62-7F10-11DD-87F8-"></ref></reflist></presentation></Class><Association id="DCE:4AA86B8C-7F13-11DD-87F8-"><memberEnd><reflist><ref refid="DCE:4AA87F76-7F13-11DD-87F8-"></ref><ref refid="DCE:4AA90658-7F13-11DD-87F8-"></ref></reflist></memberEnd><package><ref refid="DCE:9C711C86-7F0F-11DD-87F8-"></ref></package><presentation><reflist><ref refid="DCE:4A2CCDD6-7F13-11DD-87F8-"></ref></reflist></presentation></Association><Property id="DCE:4AA87F76-7F13-11DD-87F8-"><association><ref refid="DCE:4AA86B8C-7F13-11DD-87F8-"></ref></association><class_><ref refid="DCE:DBCD2482-7F10-11DD-87F8-"></ref></class_><lowerValue><ref refid="DCE:4AA8A744-7F13-11DD-87F8-"></ref></lowerValue><name><val><![CDATA[shape]]></val></name><presentation><reflist></reflist></presentation><type><ref refid="DCE:F0D6677C-7F0F-11DD-87F8-"></ref></type><upperValue><ref refid="DCE:53DF705C-7F13-11DD-87F8-"></ref></upperValue></Property><LiteralSpecification id="DCE:4AA8A744-7F13-11DD-87F8-"></LiteralSpecification><Property id="DCE:4AA90658-7F13-11DD-87F8-"><association><ref refid="DCE:4AA86B8C-7F13-11DD-87F8-"></ref></association><class_><ref refid="DCE:F0D6677C-7F0F-11DD-87F8-"></ref></class_><lowerValue><ref refid="DCE:4AA92C14-7F13-11DD-87F8-"></ref></lowerValue><name><val><![CDATA[geo]]></val></name><presentation><reflist></reflist></presentation><type><ref refid="DCE:DBCD2482-7F10-11DD-87F8-"></ref></type><upperValue><ref refid="DCE:564488DE-7F13-11DD-87F8-"></ref></upperValue></Property><LiteralSpecification id="DCE:4AA92C14-7F13-11DD-87F8-"></LiteralSpecification><LiteralSpecification id="DCE:53DF705C-7F13-11DD-87F8-"><value><val><![CDATA[1]]></val></value></LiteralSpecification><LiteralSpecification id="DCE:564488DE-7F13-11DD-87F8-"><value><val><![CDATA[1]]></val></value></LiteralSpecification><Association id="DCE:69F0555C-7F13-11DD-87F8-"><memberEnd><reflist><ref refid="DCE:69F067D6-7F13-11DD-87F8-"></ref><ref refid="DCE:69F0E012-7F13-11DD-87F8-"></ref></reflist></memberEnd><name><val><![CDATA[]]></val></name><package><ref refid="DCE:9C711C86-7F0F-11DD-87F8-"></ref></package><presentation><reflist><ref refid="DCE:689F96B8-7F13-11DD-87F8-"></ref></reflist></presentation></Association><Property id="DCE:69F067D6-7F13-11DD-87F8-"><association><ref refid="DCE:69F0555C-7F13-11DD-87F8-"></ref></association><class_><ref refid="DCE:F58834DA-7F0F-11DD-87F8-"></ref></class_><lowerValue><ref refid="DCE:69F08E8E-7F13-11DD-87F8-"></ref></lowerValue><name><val><![CDATA[coord]]></val></name><presentation><reflist></reflist></presentation><type><ref refid="DCE:DBCD2482-7F10-11DD-87F8-"></ref></type><upperValue><ref refid="DCE:70B2401C-7F13-11DD-87F8-"></ref></upperValue></Property><LiteralSpecification id="DCE:69F08E8E-7F13-11DD-87F8-"></LiteralSpecification><Property id="DCE:69F0E012-7F13-11DD-87F8-"><association><ref refid="DCE:69F0555C-7F13-11DD-87F8-"></ref></association><class_><ref refid="DCE:DBCD2482-7F10-11DD-87F8-"></ref></class_><lowerValue><ref refid="DCE:69F104FE-7F13-11DD-87F8-"></ref></lowerValue><name><val><![CDATA[members]]></val></name><presentation><reflist></reflist></presentation><type><ref refid="DCE:F58834DA-7F0F-11DD-87F8-"></ref></type><upperValue><ref refid="DCE:8774F73E-7F13-11DD-87F8-"></ref></upperValue></Property><LiteralSpecification id="DCE:69F104FE-7F13-11DD-87F8-"></LiteralSpecification><LiteralSpecification id="DCE:70B2401C-7F13-11DD-87F8-"><value><val><![CDATA[1]]></val></value></LiteralSpecification><LiteralSpecification id="DCE:8774F73E-7F13-11DD-87F8-"><value><val><![CDATA[*]]></val></value></LiteralSpecification><Class id="DCE:0317364A-7F14-11DD-87F8-"><name><val><![CDATA[paint_t]]></val></name><ownedAttribute><reflist><ref refid="DCE:4340C8AA-7F14-11DD-87F8-"></ref></reflist></ownedAttribute><package><ref refid="DCE:9C711C86-7F0F-11DD-87F8-"></ref></package><presentation><reflist><ref refid="DCE:03176E48-7F14-11DD-87F8-"></ref></reflist></presentation></Class><Association id="DCE:12ACAEE8-7F14-11DD-87F8-"><memberEnd><reflist><ref refid="DCE:12ACC1D0-7F14-11DD-87F8-"></ref><ref refid="DCE:12AD38C2-7F14-11DD-87F8-"></ref></reflist></memberEnd><package><ref refid="DCE:9C711C86-7F0F-11DD-87F8-"></ref></package><presentation><reflist><ref refid="DCE:1147E3B0-7F14-11DD-87F8-"></ref></reflist></presentation></Association><Property id="DCE:12ACC1D0-7F14-11DD-87F8-"><association><ref refid="DCE:12ACAEE8-7F14-11DD-87F8-"></ref></association><lowerValue><ref refid="DCE:12ACE8B8-7F14-11DD-87F8-"></ref></lowerValue><name><val><![CDATA[fill]]></val></name><presentation><reflist></reflist></presentation><type><ref refid="DCE:DBCD2482-7F10-11DD-87F8-"></ref></type></Property><LiteralSpecification id="DCE:12ACE8B8-7F14-11DD-87F8-"></LiteralSpecification><Property id="DCE:12AD38C2-7F14-11DD-87F8-"><association><ref refid="DCE:12ACAEE8-7F14-11DD-87F8-"></ref></association><class_><ref refid="DCE:DBCD2482-7F10-11DD-87F8-"></ref></class_><lowerValue><ref refid="DCE:12AD5DE8-7F14-11DD-87F8-"></ref></lowerValue><presentation><reflist></reflist></presentation><type><ref refid="DCE:0317364A-7F14-11DD-87F8-"></ref></type></Property><LiteralSpecification id="DCE:12AD5DE8-7F14-11DD-87F8-"></LiteralSpecification><Class id="DCE:1E53F84E-7F14-11DD-87F8-"><name><val><![CDATA[shnode_t]]></val></name><ownedAttribute><reflist><ref refid="DCE:34150922-7F14-11DD-87F8-"></ref></reflist></ownedAttribute><package><ref refid="DCE:9C711C86-7F0F-11DD-87F8-"></ref></package><presentation><reflist><ref refid="DCE:1E542FA0-7F14-11DD-87F8-"></ref></reflist></presentation></Class><Association id="DCE:341467E2-7F14-11DD-87F8-"><memberEnd><reflist><ref refid="DCE:34147AA2-7F14-11DD-87F8-"></ref><ref refid="DCE:34150922-7F14-11DD-87F8-"></ref></reflist></memberEnd><package><ref refid="DCE:9C711C86-7F0F-11DD-87F8-"></ref></package><presentation><reflist><ref refid="DCE:3308A174-7F14-11DD-87F8-"></ref></reflist></presentation></Association><Property id="DCE:34147AA2-7F14-11DD-87F8-"><association><ref refid="DCE:341467E2-7F14-11DD-87F8-"></ref></association><lowerValue><ref refid="DCE:3414B814-7F14-11DD-87F8-"></ref></lowerValue><name><val><![CDATA[shape]]></val></name><presentation><reflist></reflist></presentation><type><ref refid="DCE:1E53F84E-7F14-11DD-87F8-"></ref></type><upperValue><ref refid="DCE:3C013CB4-7F14-11DD-87F8-"></ref></upperValue></Property><LiteralSpecification id="DCE:3414B814-7F14-11DD-87F8-"></LiteralSpecification><Property id="DCE:34150922-7F14-11DD-87F8-"><association><ref refid="DCE:341467E2-7F14-11DD-87F8-"></ref></association><class_><ref refid="DCE:1E53F84E-7F14-11DD-87F8-"></ref></class_><lowerValue><ref refid="DCE:34152E34-7F14-11DD-87F8-"></ref></lowerValue><presentation><reflist></reflist></presentation><type><ref refid="DCE:DBCD2482-7F10-11DD-87F8-"></ref></type></Property><LiteralSpecification id="DCE:34152E34-7F14-11DD-87F8-"></LiteralSpecification><LiteralSpecification id="DCE:3C013CB4-7F14-11DD-87F8-"></LiteralSpecification><Association id="DCE:43403E8A-7F14-11DD-87F8-"><memberEnd><reflist><ref refid="DCE:4340515E-7F14-11DD-87F8-"></ref><ref refid="DCE:4340C8AA-7F14-11DD-87F8-"></ref></reflist></memberEnd><package><ref refid="DCE:9C711C86-7F0F-11DD-87F8-"></ref></package><presentation><reflist><ref refid="DCE:428B1854-7F14-11DD-87F8-"></ref></reflist></presentation></Association><Property id="DCE:4340515E-7F14-11DD-87F8-"><association><ref refid="DCE:43403E8A-7F14-11DD-87F8-"></ref></association><lowerValue><ref refid="DCE:434078B4-7F14-11DD-87F8-"></ref></lowerValue><name><val><![CDATA[members]]></val></name><presentation><reflist></reflist></presentation><type><ref refid="DCE:0317364A-7F14-11DD-87F8-"></ref></type><upperValue><ref refid="DCE:49DD0DA4-7F14-11DD-87F8-"></ref></upperValue></Property><LiteralSpecification id="DCE:434078B4-7F14-11DD-87F8-"></LiteralSpecification><Property id="DCE:4340C8AA-7F14-11DD-87F8-"><association><ref refid="DCE:43403E8A-7F14-11DD-87F8-"></ref></association><class_><ref refid="DCE:0317364A-7F14-11DD-87F8-"></ref></class_><lowerValue><ref refid="DCE:4340EDDC-7F14-11DD-87F8-"></ref></lowerValue><presentation><reflist></reflist></presentation><type><ref refid="DCE:1E53F84E-7F14-11DD-87F8-"></ref></type></Property><LiteralSpecification id="DCE:4340EDDC-7F14-11DD-87F8-"></LiteralSpecification><LiteralSpecification id="DCE:49DD0DA4-7F14-11DD-87F8-"><value><val><![CDATA[*]]></val></value></LiteralSpecification><Association id="DCE:78450778-7F14-11DD-87F8-"><memberEnd><reflist><ref refid="DCE:78451A2E-7F14-11DD-87F8-"></ref><ref refid="DCE:78460B50-7F14-11DD-87F8-"></ref></reflist></memberEnd><package><ref refid="DCE:9C711C86-7F0F-11DD-87F8-"></ref></package><presentation><reflist><ref refid="DCE:772CEB62-7F14-11DD-87F8-"></ref></reflist></presentation></Association><Property id="DCE:78451A2E-7F14-11DD-87F8-"><association><ref refid="DCE:78450778-7F14-11DD-87F8-"></ref></association><lowerValue><ref refid="DCE:784541F2-7F14-11DD-87F8-"></ref></lowerValue><name><val><![CDATA[stroke]]></val></name><presentation><reflist></reflist></presentation><type><ref refid="DCE:DBCD2482-7F10-11DD-87F8-"></ref></type></Property><LiteralSpecification id="DCE:784541F2-7F14-11DD-87F8-"></LiteralSpecification><Property id="DCE:78460B50-7F14-11DD-87F8-"><association><ref refid="DCE:78450778-7F14-11DD-87F8-"></ref></association><class_><ref refid="DCE:DBCD2482-7F10-11DD-87F8-"></ref></class_><lowerValue><ref refid="DCE:784630C6-7F14-11DD-87F8-"></ref></lowerValue><presentation><reflist></reflist></presentation><type><ref refid="DCE:0317364A-7F14-11DD-87F8-"></ref></type></Property><LiteralSpecification id="DCE:784630C6-7F14-11DD-87F8-"></LiteralSpecification></gaphor> \ No newline at end of file +<gaphor version="3.0" gaphor-version="0.13.0"><Package id="DCE:9C711C86-7F0F-11DD-87F8-"><name><val><![CDATA[New model]]></val></name><ownedClassifier><reflist><ref refid="DCE:EB8E5F04-7F0F-11DD-87F8-"></ref><ref refid="DCE:F0D6677C-7F0F-11DD-87F8-"></ref><ref refid="DCE:F58834DA-7F0F-11DD-87F8-"></ref><ref refid="DCE:0398B982-7F10-11DD-87F8-"></ref><ref refid="DCE:0728AB5C-7F10-11DD-87F8-"></ref><ref refid="DCE:DBCD2482-7F10-11DD-87F8-"></ref><ref refid="DCE:4AA86B8C-7F13-11DD-87F8-"></ref><ref refid="DCE:69F0555C-7F13-11DD-87F8-"></ref><ref refid="DCE:0317364A-7F14-11DD-87F8-"></ref><ref refid="DCE:12ACAEE8-7F14-11DD-87F8-"></ref><ref refid="DCE:1E53F84E-7F14-11DD-87F8-"></ref><ref refid="DCE:341467E2-7F14-11DD-87F8-"></ref><ref refid="DCE:43403E8A-7F14-11DD-87F8-"></ref><ref refid="DCE:78450778-7F14-11DD-87F8-"></ref><ref refid="DCE:109DAC52-8094-11DD-BE50-"></ref><ref refid="DCE:270D4CC2-8094-11DD-BE50-"></ref><ref refid="DCE:2E04BFF6-8094-11DD-BE50-"></ref><ref refid="DCE:53E8EB66-8094-11DD-BE50-"></ref><ref refid="DCE:558F4D2A-8094-11DD-BE50-"></ref></reflist></ownedClassifier><ownedDiagram><reflist><ref refid="DCE:9C73163A-7F0F-11DD-87F8-"></ref><ref refid="DCE:0801D258-8094-11DD-BE50-"></ref></reflist></ownedDiagram></Package><Diagram id="DCE:9C73163A-7F0F-11DD-87F8-"><name><val><![CDATA[core]]></val></name><package><ref refid="DCE:9C711C86-7F0F-11DD-87F8-"></ref></package><canvas><item type="ClassItem" id="DCE:EB8EF5EA-7F0F-11DD-87F8-"><show-attributes><val>1</val></show-attributes><show-operations><val>1</val></show-operations><drawing-style><val>1</val></drawing-style><matrix><val>(1.0, 0.0, 0.0, 1.0, 309.0, 118.0)</val></matrix><width><val>100.0</val></width><height><val>50.0</val></height><subject><ref refid="DCE:EB8E5F04-7F0F-11DD-87F8-"></ref></subject></item><item type="ClassItem" id="DCE:F0D6A19C-7F0F-11DD-87F8-"><show-attributes><val>1</val></show-attributes><show-operations><val>1</val></show-operations><drawing-style><val>1</val></drawing-style><matrix><val>(1.0, 0.0, 0.0, 1.0, 249.0, 237.0)</val></matrix><width><val>100.0</val></width><height><val>51.8125</val></height><subject><ref refid="DCE:F0D6677C-7F0F-11DD-87F8-"></ref></subject></item><item type="ClassItem" id="DCE:F5887742-7F0F-11DD-87F8-"><show-attributes><val>1</val></show-attributes><show-operations><val>1</val></show-operations><drawing-style><val>1</val></drawing-style><matrix><val>(1.0, 0.0, 0.0, 1.0, 420.0, 225.0)</val></matrix><width><val>100.0</val></width><height><val>51.8125</val></height><subject><ref refid="DCE:F58834DA-7F0F-11DD-87F8-"></ref></subject></item><item type="AssociationItem" id="DCE:033C8536-7F10-11DD-87F8-"><subject><ref refid="DCE:0398B982-7F10-11DD-87F8-"></ref></subject><matrix><val>(1.0, 0.0, 0.0, 1.0, 344.0, 168.0)</val></matrix><orthogonal><val>0</val></orthogonal><horizontal><val>0</val></horizontal><points><val>[(0.0, 0.0), (-57.0, 69.0)]</val></points><head-connection><ref refid="DCE:EB8EF5EA-7F0F-11DD-87F8-"></ref></head-connection><tail-connection><ref refid="DCE:F0D6A19C-7F0F-11DD-87F8-"></ref></tail-connection><show-direction><val>0</val></show-direction><head-subject><ref refid="DCE:0398E356-7F10-11DD-87F8-"></ref></head-subject><tail-subject><ref refid="DCE:0399EB2C-7F10-11DD-87F8-"></ref></tail-subject></item><item type="AssociationItem" id="DCE:05F3DAE0-7F10-11DD-87F8-"><subject><ref refid="DCE:0728AB5C-7F10-11DD-87F8-"></ref></subject><matrix><val>(1.0, 0.0, 0.0, 1.0, 374.0, 168.0)</val></matrix><orthogonal><val>0</val></orthogonal><horizontal><val>0</val></horizontal><points><val>[(0.0, 0.0), (110.0, 57.0)]</val></points><head-connection><ref refid="DCE:EB8EF5EA-7F0F-11DD-87F8-"></ref></head-connection><tail-connection><ref refid="DCE:F5887742-7F0F-11DD-87F8-"></ref></tail-connection><show-direction><val>0</val></show-direction><head-subject><ref refid="DCE:0728BDE0-7F10-11DD-87F8-"></ref></head-subject><tail-subject><ref refid="DCE:07294116-7F10-11DD-87F8-"></ref></tail-subject></item><item type="ClassItem" id="DCE:DBCD5F62-7F10-11DD-87F8-"><show-attributes><val>1</val></show-attributes><show-operations><val>1</val></show-operations><drawing-style><val>1</val></drawing-style><matrix><val>(1.0, 0.0, 0.0, 1.0, 248.0, 334.0)</val></matrix><width><val>100.0</val></width><height><val>51.8125</val></height><subject><ref refid="DCE:DBCD2482-7F10-11DD-87F8-"></ref></subject></item><item type="AssociationItem" id="DCE:4A2CCDD6-7F13-11DD-87F8-"><subject><ref refid="DCE:4AA86B8C-7F13-11DD-87F8-"></ref></subject><matrix><val>(1.0, 0.0, 0.0, 1.0, 297.0, 288.8125)</val></matrix><orthogonal><val>0</val></orthogonal><horizontal><val>0</val></horizontal><points><val>[(0.0, 0.0), (-1.0, 45.1875)]</val></points><head-connection><ref refid="DCE:F0D6A19C-7F0F-11DD-87F8-"></ref></head-connection><tail-connection><ref refid="DCE:DBCD5F62-7F10-11DD-87F8-"></ref></tail-connection><show-direction><val>0</val></show-direction><head-subject><ref refid="DCE:4AA87F76-7F13-11DD-87F8-"></ref></head-subject><tail-subject><ref refid="DCE:4AA90658-7F13-11DD-87F8-"></ref></tail-subject></item><item type="AssociationItem" id="DCE:689F96B8-7F13-11DD-87F8-"><subject><ref refid="DCE:69F0555C-7F13-11DD-87F8-"></ref></subject><matrix><val>(1.0, 0.0, 0.0, 1.0, 348.0, 334.0)</val></matrix><orthogonal><val>0</val></orthogonal><horizontal><val>0</val></horizontal><points><val>[(0.0, 0.0), (72.0, -60.0)]</val></points><head-connection><ref refid="DCE:DBCD5F62-7F10-11DD-87F8-"></ref></head-connection><tail-connection><ref refid="DCE:F5887742-7F0F-11DD-87F8-"></ref></tail-connection><show-direction><val>0</val></show-direction><head-subject><ref refid="DCE:69F067D6-7F13-11DD-87F8-"></ref></head-subject><tail-subject><ref refid="DCE:69F0E012-7F13-11DD-87F8-"></ref></tail-subject></item><item type="ClassItem" id="DCE:03176E48-7F14-11DD-87F8-"><show-attributes><val>1</val></show-attributes><show-operations><val>1</val></show-operations><drawing-style><val>1</val></drawing-style><matrix><val>(1.0, 0.0, 0.0, 1.0, 427.0, 334.0)</val></matrix><width><val>100.0</val></width><height><val>51.8125</val></height><subject><ref refid="DCE:0317364A-7F14-11DD-87F8-"></ref></subject></item><item type="AssociationItem" id="DCE:1147E3B0-7F14-11DD-87F8-"><subject><ref refid="DCE:12ACAEE8-7F14-11DD-87F8-"></ref></subject><matrix><val>(1.0, 0.0, 0.0, 1.0, 348.0, 360.0)</val></matrix><orthogonal><val>0</val></orthogonal><horizontal><val>0</val></horizontal><points><val>[(0.0, 0.0), (79.0, 1.0)]</val></points><head-connection><ref refid="DCE:DBCD5F62-7F10-11DD-87F8-"></ref></head-connection><tail-connection><ref refid="DCE:03176E48-7F14-11DD-87F8-"></ref></tail-connection><show-direction><val>0</val></show-direction><head-subject><ref refid="DCE:12ACC1D0-7F14-11DD-87F8-"></ref></head-subject><tail-subject><ref refid="DCE:12AD38C2-7F14-11DD-87F8-"></ref></tail-subject></item><item type="ClassItem" id="DCE:1E542FA0-7F14-11DD-87F8-"><show-attributes><val>1</val></show-attributes><show-operations><val>1</val></show-operations><drawing-style><val>1</val></drawing-style><matrix><val>(1.0, 0.0, 0.0, 1.0, 430.0, 423.0)</val></matrix><width><val>100.0</val></width><height><val>51.8125</val></height><subject><ref refid="DCE:1E53F84E-7F14-11DD-87F8-"></ref></subject></item><item type="AssociationItem" id="DCE:3308A174-7F14-11DD-87F8-"><subject><ref refid="DCE:341467E2-7F14-11DD-87F8-"></ref></subject><matrix><val>(1.0, 0.0, 0.0, 1.0, 430.0, 447.0)</val></matrix><orthogonal><val>0</val></orthogonal><horizontal><val>0</val></horizontal><points><val>[(0.0, 0.0), (-83.0, -61.1875)]</val></points><head-connection><ref refid="DCE:1E542FA0-7F14-11DD-87F8-"></ref></head-connection><tail-connection><ref refid="DCE:DBCD5F62-7F10-11DD-87F8-"></ref></tail-connection><show-direction><val>0</val></show-direction><head-subject><ref refid="DCE:34147AA2-7F14-11DD-87F8-"></ref></head-subject><tail-subject><ref refid="DCE:34150922-7F14-11DD-87F8-"></ref></tail-subject></item><item type="AssociationItem" id="DCE:428B1854-7F14-11DD-87F8-"><subject><ref refid="DCE:43403E8A-7F14-11DD-87F8-"></ref></subject><matrix><val>(1.0, 0.0, 0.0, 1.0, 477.0, 385.8125)</val></matrix><orthogonal><val>0</val></orthogonal><horizontal><val>0</val></horizontal><points><val>[(0.0, 0.0), (-1.0, 37.1875)]</val></points><head-connection><ref refid="DCE:03176E48-7F14-11DD-87F8-"></ref></head-connection><tail-connection><ref refid="DCE:1E542FA0-7F14-11DD-87F8-"></ref></tail-connection><show-direction><val>0</val></show-direction><head-subject><ref refid="DCE:4340515E-7F14-11DD-87F8-"></ref></head-subject><tail-subject><ref refid="DCE:4340C8AA-7F14-11DD-87F8-"></ref></tail-subject></item><item type="AssociationItem" id="DCE:772CEB62-7F14-11DD-87F8-"><subject><ref refid="DCE:78450778-7F14-11DD-87F8-"></ref></subject><matrix><val>(1.0, 0.0, 0.0, 1.0, 348.0, 377.0)</val></matrix><orthogonal><val>0</val></orthogonal><horizontal><val>0</val></horizontal><points><val>[(0.0, 0.0), (79.0, 0.0)]</val></points><head-connection><ref refid="DCE:DBCD5F62-7F10-11DD-87F8-"></ref></head-connection><tail-connection><ref refid="DCE:03176E48-7F14-11DD-87F8-"></ref></tail-connection><show-direction><val>0</val></show-direction><head-subject><ref refid="DCE:78451A2E-7F14-11DD-87F8-"></ref></head-subject><tail-subject><ref refid="DCE:78460B50-7F14-11DD-87F8-"></ref></tail-subject></item></canvas></Diagram><Class id="DCE:EB8E5F04-7F0F-11DD-87F8-"><name><val><![CDATA[rdman]]></val></name><ownedAttribute><reflist><ref refid="DCE:07294116-7F10-11DD-87F8-"></ref><ref refid="DCE:0399EB2C-7F10-11DD-87F8-"></ref></reflist></ownedAttribute><package><ref refid="DCE:9C711C86-7F0F-11DD-87F8-"></ref></package><presentation><reflist><ref refid="DCE:EB8EF5EA-7F0F-11DD-87F8-"></ref></reflist></presentation></Class><Class id="DCE:F0D6677C-7F0F-11DD-87F8-"><name><val><![CDATA[goe_t]]></val></name><ownedAttribute><reflist><ref refid="DCE:4AA90658-7F13-11DD-87F8-"></ref></reflist></ownedAttribute><package><ref refid="DCE:9C711C86-7F0F-11DD-87F8-"></ref></package><presentation><reflist><ref refid="DCE:F0D6A19C-7F0F-11DD-87F8-"></ref></reflist></presentation></Class><Class id="DCE:F58834DA-7F0F-11DD-87F8-"><name><val><![CDATA[coord_t]]></val></name><ownedAttribute><reflist><ref refid="DCE:0728BDE0-7F10-11DD-87F8-"></ref><ref refid="DCE:69F067D6-7F13-11DD-87F8-"></ref></reflist></ownedAttribute><package><ref refid="DCE:9C711C86-7F0F-11DD-87F8-"></ref></package><presentation><reflist><ref refid="DCE:F5887742-7F0F-11DD-87F8-"></ref></reflist></presentation></Class><Association id="DCE:0398B982-7F10-11DD-87F8-"><memberEnd><reflist><ref refid="DCE:0398E356-7F10-11DD-87F8-"></ref><ref refid="DCE:0399EB2C-7F10-11DD-87F8-"></ref></reflist></memberEnd><name><val><![CDATA[]]></val></name><package><ref refid="DCE:9C711C86-7F0F-11DD-87F8-"></ref></package><presentation><reflist><ref refid="DCE:033C8536-7F10-11DD-87F8-"></ref></reflist></presentation></Association><Property id="DCE:0398E356-7F10-11DD-87F8-"><association><ref refid="DCE:0398B982-7F10-11DD-87F8-"></ref></association><lowerValue><ref refid="DCE:0399525C-7F10-11DD-87F8-"></ref></lowerValue><presentation><reflist></reflist></presentation><type><ref refid="DCE:EB8E5F04-7F0F-11DD-87F8-"></ref></type><upperValue><ref refid="DCE:81C096D6-7F10-11DD-87F8-"></ref></upperValue></Property><LiteralSpecification id="DCE:0399525C-7F10-11DD-87F8-"></LiteralSpecification><Property id="DCE:0399EB2C-7F10-11DD-87F8-"><association><ref refid="DCE:0398B982-7F10-11DD-87F8-"></ref></association><class_><ref refid="DCE:EB8E5F04-7F0F-11DD-87F8-"></ref></class_><lowerValue><ref refid="DCE:039A105C-7F10-11DD-87F8-"></ref></lowerValue><name><val><![CDATA[gen_geos]]></val></name><presentation><reflist></reflist></presentation><type><ref refid="DCE:F0D6677C-7F0F-11DD-87F8-"></ref></type><upperValue><ref refid="DCE:169380E8-8095-11DD-BE50-"></ref></upperValue></Property><LiteralSpecification id="DCE:039A105C-7F10-11DD-87F8-"></LiteralSpecification><Association id="DCE:0728AB5C-7F10-11DD-87F8-"><memberEnd><reflist><ref refid="DCE:0728BDE0-7F10-11DD-87F8-"></ref><ref refid="DCE:07294116-7F10-11DD-87F8-"></ref></reflist></memberEnd><package><ref refid="DCE:9C711C86-7F0F-11DD-87F8-"></ref></package><presentation><reflist><ref refid="DCE:05F3DAE0-7F10-11DD-87F8-"></ref></reflist></presentation></Association><Property id="DCE:0728BDE0-7F10-11DD-87F8-"><association><ref refid="DCE:0728AB5C-7F10-11DD-87F8-"></ref></association><class_><ref refid="DCE:F58834DA-7F0F-11DD-87F8-"></ref></class_><lowerValue><ref refid="DCE:0728E4FA-7F10-11DD-87F8-"></ref></lowerValue><presentation><reflist></reflist></presentation><type><ref refid="DCE:EB8E5F04-7F0F-11DD-87F8-"></ref></type></Property><LiteralSpecification id="DCE:0728E4FA-7F10-11DD-87F8-"></LiteralSpecification><Property id="DCE:07294116-7F10-11DD-87F8-"><association><ref refid="DCE:0728AB5C-7F10-11DD-87F8-"></ref></association><class_><ref refid="DCE:EB8E5F04-7F0F-11DD-87F8-"></ref></class_><lowerValue><ref refid="DCE:07296614-7F10-11DD-87F8-"></ref></lowerValue><presentation><reflist></reflist></presentation><type><ref refid="DCE:F58834DA-7F0F-11DD-87F8-"></ref></type></Property><LiteralSpecification id="DCE:07296614-7F10-11DD-87F8-"></LiteralSpecification><LiteralSpecification id="DCE:81C096D6-7F10-11DD-87F8-"></LiteralSpecification><Class id="DCE:DBCD2482-7F10-11DD-87F8-"><name><val><![CDATA[shape_t]]></val></name><ownedAttribute><reflist><ref refid="DCE:4AA87F76-7F13-11DD-87F8-"></ref><ref refid="DCE:69F0E012-7F13-11DD-87F8-"></ref><ref refid="DCE:12AD38C2-7F14-11DD-87F8-"></ref><ref refid="DCE:78460B50-7F14-11DD-87F8-"></ref></reflist></ownedAttribute><package><ref refid="DCE:9C711C86-7F0F-11DD-87F8-"></ref></package><presentation><reflist><ref refid="DCE:DBCD5F62-7F10-11DD-87F8-"></ref></reflist></presentation></Class><Association id="DCE:4AA86B8C-7F13-11DD-87F8-"><memberEnd><reflist><ref refid="DCE:4AA87F76-7F13-11DD-87F8-"></ref><ref refid="DCE:4AA90658-7F13-11DD-87F8-"></ref></reflist></memberEnd><package><ref refid="DCE:9C711C86-7F0F-11DD-87F8-"></ref></package><presentation><reflist><ref refid="DCE:4A2CCDD6-7F13-11DD-87F8-"></ref></reflist></presentation></Association><Property id="DCE:4AA87F76-7F13-11DD-87F8-"><association><ref refid="DCE:4AA86B8C-7F13-11DD-87F8-"></ref></association><class_><ref refid="DCE:DBCD2482-7F10-11DD-87F8-"></ref></class_><lowerValue><ref refid="DCE:4AA8A744-7F13-11DD-87F8-"></ref></lowerValue><name><val><![CDATA[geo]]></val></name><presentation><reflist></reflist></presentation><type><ref refid="DCE:F0D6677C-7F0F-11DD-87F8-"></ref></type><upperValue><ref refid="DCE:53DF705C-7F13-11DD-87F8-"></ref></upperValue></Property><LiteralSpecification id="DCE:4AA8A744-7F13-11DD-87F8-"></LiteralSpecification><Property id="DCE:4AA90658-7F13-11DD-87F8-"><association><ref refid="DCE:4AA86B8C-7F13-11DD-87F8-"></ref></association><class_><ref refid="DCE:F0D6677C-7F0F-11DD-87F8-"></ref></class_><lowerValue><ref refid="DCE:4AA92C14-7F13-11DD-87F8-"></ref></lowerValue><name><val><![CDATA[shape]]></val></name><presentation><reflist></reflist></presentation><type><ref refid="DCE:DBCD2482-7F10-11DD-87F8-"></ref></type><upperValue><ref refid="DCE:564488DE-7F13-11DD-87F8-"></ref></upperValue></Property><LiteralSpecification id="DCE:4AA92C14-7F13-11DD-87F8-"></LiteralSpecification><LiteralSpecification id="DCE:53DF705C-7F13-11DD-87F8-"><value><val><![CDATA[1]]></val></value></LiteralSpecification><LiteralSpecification id="DCE:564488DE-7F13-11DD-87F8-"><value><val><![CDATA[1]]></val></value></LiteralSpecification><Association id="DCE:69F0555C-7F13-11DD-87F8-"><memberEnd><reflist><ref refid="DCE:69F067D6-7F13-11DD-87F8-"></ref><ref refid="DCE:69F0E012-7F13-11DD-87F8-"></ref></reflist></memberEnd><name><val><![CDATA[]]></val></name><package><ref refid="DCE:9C711C86-7F0F-11DD-87F8-"></ref></package><presentation><reflist><ref refid="DCE:689F96B8-7F13-11DD-87F8-"></ref></reflist></presentation></Association><Property id="DCE:69F067D6-7F13-11DD-87F8-"><association><ref refid="DCE:69F0555C-7F13-11DD-87F8-"></ref></association><class_><ref refid="DCE:F58834DA-7F0F-11DD-87F8-"></ref></class_><lowerValue><ref refid="DCE:69F08E8E-7F13-11DD-87F8-"></ref></lowerValue><name><val><![CDATA[members]]></val></name><presentation><reflist></reflist></presentation><type><ref refid="DCE:DBCD2482-7F10-11DD-87F8-"></ref></type><upperValue><ref refid="DCE:70B2401C-7F13-11DD-87F8-"></ref></upperValue></Property><LiteralSpecification id="DCE:69F08E8E-7F13-11DD-87F8-"></LiteralSpecification><Property id="DCE:69F0E012-7F13-11DD-87F8-"><association><ref refid="DCE:69F0555C-7F13-11DD-87F8-"></ref></association><class_><ref refid="DCE:DBCD2482-7F10-11DD-87F8-"></ref></class_><lowerValue><ref refid="DCE:69F104FE-7F13-11DD-87F8-"></ref></lowerValue><name><val><![CDATA[coord]]></val></name><presentation><reflist></reflist></presentation><type><ref refid="DCE:F58834DA-7F0F-11DD-87F8-"></ref></type><upperValue><ref refid="DCE:8774F73E-7F13-11DD-87F8-"></ref></upperValue></Property><LiteralSpecification id="DCE:69F104FE-7F13-11DD-87F8-"></LiteralSpecification><LiteralSpecification id="DCE:70B2401C-7F13-11DD-87F8-"><value><val><![CDATA[*]]></val></value></LiteralSpecification><LiteralSpecification id="DCE:8774F73E-7F13-11DD-87F8-"><value><val><![CDATA[1]]></val></value></LiteralSpecification><Class id="DCE:0317364A-7F14-11DD-87F8-"><name><val><![CDATA[paint_t]]></val></name><ownedAttribute><reflist><ref refid="DCE:4340C8AA-7F14-11DD-87F8-"></ref></reflist></ownedAttribute><package><ref refid="DCE:9C711C86-7F0F-11DD-87F8-"></ref></package><presentation><reflist><ref refid="DCE:03176E48-7F14-11DD-87F8-"></ref></reflist></presentation></Class><Association id="DCE:12ACAEE8-7F14-11DD-87F8-"><memberEnd><reflist><ref refid="DCE:12ACC1D0-7F14-11DD-87F8-"></ref><ref refid="DCE:12AD38C2-7F14-11DD-87F8-"></ref></reflist></memberEnd><package><ref refid="DCE:9C711C86-7F0F-11DD-87F8-"></ref></package><presentation><reflist><ref refid="DCE:1147E3B0-7F14-11DD-87F8-"></ref></reflist></presentation></Association><Property id="DCE:12ACC1D0-7F14-11DD-87F8-"><association><ref refid="DCE:12ACAEE8-7F14-11DD-87F8-"></ref></association><lowerValue><ref refid="DCE:12ACE8B8-7F14-11DD-87F8-"></ref></lowerValue><presentation><reflist></reflist></presentation><type><ref refid="DCE:DBCD2482-7F10-11DD-87F8-"></ref></type></Property><LiteralSpecification id="DCE:12ACE8B8-7F14-11DD-87F8-"></LiteralSpecification><Property id="DCE:12AD38C2-7F14-11DD-87F8-"><association><ref refid="DCE:12ACAEE8-7F14-11DD-87F8-"></ref></association><class_><ref refid="DCE:DBCD2482-7F10-11DD-87F8-"></ref></class_><lowerValue><ref refid="DCE:12AD5DE8-7F14-11DD-87F8-"></ref></lowerValue><name><val><![CDATA[fill]]></val></name><presentation><reflist></reflist></presentation><type><ref refid="DCE:0317364A-7F14-11DD-87F8-"></ref></type></Property><LiteralSpecification id="DCE:12AD5DE8-7F14-11DD-87F8-"></LiteralSpecification><Class id="DCE:1E53F84E-7F14-11DD-87F8-"><name><val><![CDATA[shnode_t]]></val></name><ownedAttribute><reflist><ref refid="DCE:34150922-7F14-11DD-87F8-"></ref></reflist></ownedAttribute><package><ref refid="DCE:9C711C86-7F0F-11DD-87F8-"></ref></package><presentation><reflist><ref refid="DCE:1E542FA0-7F14-11DD-87F8-"></ref></reflist></presentation></Class><Association id="DCE:341467E2-7F14-11DD-87F8-"><memberEnd><reflist><ref refid="DCE:34147AA2-7F14-11DD-87F8-"></ref><ref refid="DCE:34150922-7F14-11DD-87F8-"></ref></reflist></memberEnd><package><ref refid="DCE:9C711C86-7F0F-11DD-87F8-"></ref></package><presentation><reflist><ref refid="DCE:3308A174-7F14-11DD-87F8-"></ref></reflist></presentation></Association><Property id="DCE:34147AA2-7F14-11DD-87F8-"><association><ref refid="DCE:341467E2-7F14-11DD-87F8-"></ref></association><lowerValue><ref refid="DCE:3414B814-7F14-11DD-87F8-"></ref></lowerValue><presentation><reflist></reflist></presentation><type><ref refid="DCE:1E53F84E-7F14-11DD-87F8-"></ref></type><upperValue><ref refid="DCE:3C013CB4-7F14-11DD-87F8-"></ref></upperValue></Property><LiteralSpecification id="DCE:3414B814-7F14-11DD-87F8-"></LiteralSpecification><Property id="DCE:34150922-7F14-11DD-87F8-"><association><ref refid="DCE:341467E2-7F14-11DD-87F8-"></ref></association><class_><ref refid="DCE:1E53F84E-7F14-11DD-87F8-"></ref></class_><lowerValue><ref refid="DCE:34152E34-7F14-11DD-87F8-"></ref></lowerValue><name><val><![CDATA[shape]]></val></name><presentation><reflist></reflist></presentation><type><ref refid="DCE:DBCD2482-7F10-11DD-87F8-"></ref></type></Property><LiteralSpecification id="DCE:34152E34-7F14-11DD-87F8-"></LiteralSpecification><LiteralSpecification id="DCE:3C013CB4-7F14-11DD-87F8-"></LiteralSpecification><Association id="DCE:43403E8A-7F14-11DD-87F8-"><memberEnd><reflist><ref refid="DCE:4340515E-7F14-11DD-87F8-"></ref><ref refid="DCE:4340C8AA-7F14-11DD-87F8-"></ref></reflist></memberEnd><package><ref refid="DCE:9C711C86-7F0F-11DD-87F8-"></ref></package><presentation><reflist><ref refid="DCE:428B1854-7F14-11DD-87F8-"></ref></reflist></presentation></Association><Property id="DCE:4340515E-7F14-11DD-87F8-"><association><ref refid="DCE:43403E8A-7F14-11DD-87F8-"></ref></association><lowerValue><ref refid="DCE:434078B4-7F14-11DD-87F8-"></ref></lowerValue><presentation><reflist></reflist></presentation><type><ref refid="DCE:0317364A-7F14-11DD-87F8-"></ref></type><upperValue><ref refid="DCE:49DD0DA4-7F14-11DD-87F8-"></ref></upperValue></Property><LiteralSpecification id="DCE:434078B4-7F14-11DD-87F8-"></LiteralSpecification><Property id="DCE:4340C8AA-7F14-11DD-87F8-"><association><ref refid="DCE:43403E8A-7F14-11DD-87F8-"></ref></association><class_><ref refid="DCE:0317364A-7F14-11DD-87F8-"></ref></class_><lowerValue><ref refid="DCE:4340EDDC-7F14-11DD-87F8-"></ref></lowerValue><name><val><![CDATA[members]]></val></name><presentation><reflist></reflist></presentation><type><ref refid="DCE:1E53F84E-7F14-11DD-87F8-"></ref></type><upperValue><ref refid="DCE:BDE10634-8094-11DD-BE50-"></ref></upperValue></Property><LiteralSpecification id="DCE:4340EDDC-7F14-11DD-87F8-"></LiteralSpecification><LiteralSpecification id="DCE:49DD0DA4-7F14-11DD-87F8-"></LiteralSpecification><Association id="DCE:78450778-7F14-11DD-87F8-"><memberEnd><reflist><ref refid="DCE:78451A2E-7F14-11DD-87F8-"></ref><ref refid="DCE:78460B50-7F14-11DD-87F8-"></ref></reflist></memberEnd><package><ref refid="DCE:9C711C86-7F0F-11DD-87F8-"></ref></package><presentation><reflist><ref refid="DCE:772CEB62-7F14-11DD-87F8-"></ref></reflist></presentation></Association><Property id="DCE:78451A2E-7F14-11DD-87F8-"><association><ref refid="DCE:78450778-7F14-11DD-87F8-"></ref></association><lowerValue><ref refid="DCE:784541F2-7F14-11DD-87F8-"></ref></lowerValue><presentation><reflist></reflist></presentation><type><ref refid="DCE:DBCD2482-7F10-11DD-87F8-"></ref></type></Property><LiteralSpecification id="DCE:784541F2-7F14-11DD-87F8-"></LiteralSpecification><Property id="DCE:78460B50-7F14-11DD-87F8-"><association><ref refid="DCE:78450778-7F14-11DD-87F8-"></ref></association><class_><ref refid="DCE:DBCD2482-7F10-11DD-87F8-"></ref></class_><lowerValue><ref refid="DCE:784630C6-7F14-11DD-87F8-"></ref></lowerValue><name><val><![CDATA[stroke]]></val></name><presentation><reflist></reflist></presentation><type><ref refid="DCE:0317364A-7F14-11DD-87F8-"></ref></type></Property><LiteralSpecification id="DCE:784630C6-7F14-11DD-87F8-"></LiteralSpecification><Diagram id="DCE:0801D258-8094-11DD-BE50-"><name><val><![CDATA[program]]></val></name><package><ref refid="DCE:9C711C86-7F0F-11DD-87F8-"></ref></package><canvas><item type="ClassItem" id="DCE:109E2D58-8094-11DD-BE50-"><show-attributes><val>1</val></show-attributes><show-operations><val>1</val></show-operations><drawing-style><val>1</val></drawing-style><matrix><val>(1.0, 0.0, 0.0, 1.0, 65.0, 72.0)</val></matrix><width><val>100.0</val></width><height><val>51.8125</val></height><subject><ref refid="DCE:109DAC52-8094-11DD-BE50-"></ref></subject></item><item type="ClassItem" id="DCE:270D89D0-8094-11DD-BE50-"><show-attributes><val>1</val></show-attributes><show-operations><val>1</val></show-operations><drawing-style><val>1</val></drawing-style><matrix><val>(1.0, 0.0, 0.0, 1.0, 61.0, 167.0)</val></matrix><width><val>105.0</val></width><height><val>77.8125</val></height><subject><ref refid="DCE:270D4CC2-8094-11DD-BE50-"></ref></subject></item><item type="ClassItem" id="DCE:2E05013C-8094-11DD-BE50-"><show-attributes><val>1</val></show-attributes><show-operations><val>1</val></show-operations><drawing-style><val>1</val></drawing-style><matrix><val>(1.0, 0.0, 0.0, 1.0, 65.0, 293.0)</val></matrix><width><val>100.0</val></width><height><val>51.8125</val></height><subject><ref refid="DCE:2E04BFF6-8094-11DD-BE50-"></ref></subject></item><item type="AssociationItem" id="DCE:532801EE-8094-11DD-BE50-"><subject><ref refid="DCE:53E8EB66-8094-11DD-BE50-"></ref></subject><matrix><val>(1.0, 0.0, 0.0, 1.0, 116.0, 123.8125)</val></matrix><orthogonal><val>0</val></orthogonal><horizontal><val>0</val></horizontal><points><val>[(0.0, 0.0), (0.0, 43.1875)]</val></points><head-connection><ref refid="DCE:109E2D58-8094-11DD-BE50-"></ref></head-connection><tail-connection><ref refid="DCE:270D89D0-8094-11DD-BE50-"></ref></tail-connection><show-direction><val>0</val></show-direction><head-subject><ref refid="DCE:53E92040-8094-11DD-BE50-"></ref></head-subject><tail-subject><ref refid="DCE:53EA10AE-8094-11DD-BE50-"></ref></tail-subject></item><item type="AssociationItem" id="DCE:551C5B30-8094-11DD-BE50-"><subject><ref refid="DCE:558F4D2A-8094-11DD-BE50-"></ref></subject><matrix><val>(1.0, 0.0, 0.0, 1.0, 115.0, 244.8125)</val></matrix><orthogonal><val>0</val></orthogonal><horizontal><val>0</val></horizontal><points><val>[(0.0, 0.0), (0.0, 48.1875)]</val></points><head-connection><ref refid="DCE:270D89D0-8094-11DD-BE50-"></ref></head-connection><tail-connection><ref refid="DCE:2E05013C-8094-11DD-BE50-"></ref></tail-connection><show-direction><val>0</val></show-direction><head-subject><ref refid="DCE:558F630A-8094-11DD-BE50-"></ref></head-subject><tail-subject><ref refid="DCE:55904F86-8094-11DD-BE50-"></ref></tail-subject></item><item type="MessageItem" id="DCE:767BDE06-8097-11DD-91F9-"><subject><ref refid="DCE:767D4AFC-8097-11DD-91F9-"></ref></subject><matrix><val>(1.0, 0.0, 0.0, 1.0, 345.0, 196.0)</val></matrix><orthogonal><val>0</val></orthogonal><horizontal><val>0</val></horizontal><points><val>[(0.0, 0.0), (133.0, -2.0)]</val></points><head-connection><ref refid="DCE:0EA8C1AE-8097-11DD-91F9-"></ref></head-connection><tail-connection><ref refid="DCE:1F1D5FCC-8097-11DD-91F9-"></ref></tail-connection></item><item type="MessageItem" id="DCE:4C308160-8097-11DD-91F9-"><subject><ref refid="DCE:4CEF3C60-8097-11DD-91F9-"></ref></subject><matrix><val>(1.0, 0.0, 0.0, 1.0, 256.0, 168.0)</val></matrix><orthogonal><val>0</val></orthogonal><horizontal><val>0</val></horizontal><points><val>[(0.0, 0.0), (89.0, 0.0)]</val></points><tail-connection><ref refid="DCE:0EA8C1AE-8097-11DD-91F9-"></ref></tail-connection></item><item type="LifelineItem" id="DCE:287B2CA2-8097-11DD-91F9-"><matrix><val>(1.0, 0.0, 0.0, 1.0, 557.0, 65.0)</val></matrix><width><val>100.0</val></width><height><val>50.0</val></height><subject><ref refid="DCE:287B13B4-8097-11DD-91F9-"></ref></subject><lifetime-length><val>301.0</val></lifetime-length></item><item type="LifelineItem" id="DCE:1F1D5FCC-8097-11DD-91F9-"><matrix><val>(1.0, 0.0, 0.0, 1.0, 428.0, 63.0)</val></matrix><width><val>100.0</val></width><height><val>50.0</val></height><subject><ref refid="DCE:1F1D4776-8097-11DD-91F9-"></ref></subject><lifetime-length><val>298.0</val></lifetime-length></item><item type="LifelineItem" id="DCE:0EA8C1AE-8097-11DD-91F9-"><matrix><val>(1.0, 0.0, 0.0, 1.0, 295.0, 63.0)</val></matrix><width><val>100.0</val></width><height><val>50.0</val></height><subject><ref refid="DCE:0EA89544-8097-11DD-91F9-"></ref></subject><lifetime-length><val>310.0</val></lifetime-length></item><item type="MessageItem" id="DCE:F1A4438E-8097-11DD-91F9-"><subject><ref refid="DCE:F1A5B2BC-8097-11DD-91F9-"></ref></subject><matrix><val>(1.0, 0.0, 0.0, 1.0, 478.0, 217.0)</val></matrix><orthogonal><val>0</val></orthogonal><horizontal><val>0</val></horizontal><points><val>[(0.0, 0.0), (129.0, -1.0)]</val></points><head-connection><ref refid="DCE:1F1D5FCC-8097-11DD-91F9-"></ref></head-connection><tail-connection><ref refid="DCE:287B2CA2-8097-11DD-91F9-"></ref></tail-connection></item><item type="MessageItem" id="DCE:0CB2E71E-8098-11DD-91F9-"><subject><ref refid="DCE:0CB456F0-8098-11DD-91F9-"></ref></subject><matrix><val>(1.0, 0.0, 0.0, 1.0, 345.0, 255.0)</val></matrix><orthogonal><val>0</val></orthogonal><horizontal><val>0</val></horizontal><points><val>[(0.0, 0.0), (133.0, 0.0)]</val></points><head-connection><ref refid="DCE:0EA8C1AE-8097-11DD-91F9-"></ref></head-connection><tail-connection><ref refid="DCE:1F1D5FCC-8097-11DD-91F9-"></ref></tail-connection></item><item type="MessageItem" id="DCE:1939164C-8098-11DD-91F9-"><subject><ref refid="DCE:193A8944-8098-11DD-91F9-"></ref></subject><matrix><val>(1.0, 0.0, 0.0, 1.0, 478.0, 273.0)</val></matrix><orthogonal><val>0</val></orthogonal><horizontal><val>0</val></horizontal><points><val>[(0.0, 0.0), (129.0, 0.0)]</val></points><head-connection><ref refid="DCE:1F1D5FCC-8097-11DD-91F9-"></ref></head-connection><tail-connection><ref refid="DCE:287B2CA2-8097-11DD-91F9-"></ref></tail-connection></item><item type="MessageItem" id="DCE:21F4E098-8098-11DD-91F9-"><subject><ref refid="DCE:21F64D8E-8098-11DD-91F9-"></ref></subject><matrix><val>(1.0, 0.0, 0.0, 1.0, 345.0, 316.0)</val></matrix><orthogonal><val>0</val></orthogonal><horizontal><val>0</val></horizontal><points><val>[(0.0, 0.0), (133.0, -1.0)]</val></points><head-connection><ref refid="DCE:0EA8C1AE-8097-11DD-91F9-"></ref></head-connection><tail-connection><ref refid="DCE:1F1D5FCC-8097-11DD-91F9-"></ref></tail-connection></item><item type="MessageItem" id="DCE:2B3F224E-8098-11DD-91F9-"><subject><ref refid="DCE:2B40958E-8098-11DD-91F9-"></ref></subject><matrix><val>(1.0, 0.0, 0.0, 1.0, 478.0, 331.0)</val></matrix><orthogonal><val>0</val></orthogonal><horizontal><val>0</val></horizontal><points><val>[(0.0, 0.0), (129.0, -1.0)]</val></points><head-connection><ref refid="DCE:1F1D5FCC-8097-11DD-91F9-"></ref></head-connection><tail-connection><ref refid="DCE:287B2CA2-8097-11DD-91F9-"></ref></tail-connection></item><item type="MessageItem" id="DCE:498DD4A2-8098-11DD-91F9-"><subject><ref refid="DCE:498F426C-8098-11DD-91F9-"></ref></subject><matrix><val>(1.0, 0.0, 0.0, 1.0, 345.0, 365.0)</val></matrix><orthogonal><val>0</val></orthogonal><horizontal><val>0</val></horizontal><points><val>[(0.0, 0.0), (133.0, 0.0)]</val></points><head-connection><ref refid="DCE:0EA8C1AE-8097-11DD-91F9-"></ref></head-connection><tail-connection><ref refid="DCE:1F1D5FCC-8097-11DD-91F9-"></ref></tail-connection></item><item type="MessageItem" id="DCE:50A00D14-8098-11DD-91F9-"><subject><ref refid="DCE:50A17E72-8098-11DD-91F9-"></ref></subject><matrix><val>(1.0, 0.0, 0.0, 1.0, 478.0, 379.0)</val></matrix><orthogonal><val>0</val></orthogonal><horizontal><val>0</val></horizontal><points><val>[(0.0, 0.0), (129.0, -1.0)]</val></points><head-connection><ref refid="DCE:1F1D5FCC-8097-11DD-91F9-"></ref></head-connection><tail-connection><ref refid="DCE:287B2CA2-8097-11DD-91F9-"></ref></tail-connection></item><item type="Box" id="DCE:83E7A9FA-8098-11DD-91F9-"><matrix><val>(1.0, 0.0, 0.0, 1.0, 318.0, 234.0)</val></matrix><width><val>341.0</val></width><height><val>108.0</val></height></item><item type="CommentItem" id="DCE:8CEE5D8E-8098-11DD-91F9-"><matrix><val>(1.0, 0.0, 0.0, 1.0, 142.0, 373.0)</val></matrix><width><val>180.0</val></width><height><val>42.0</val></height><subject><ref refid="DCE:8CEE37F0-8098-11DD-91F9-"></ref></subject></item><item type="CommentLineItem" id="DCE:C976B562-8098-11DD-91F9-"><matrix><val>(1.0, 0.0, 0.0, 1.0, 236.0, 373.0)</val></matrix><orthogonal><val>0</val></orthogonal><horizontal><val>0</val></horizontal><points><val>[(0.0, 0.0), (83.0, -56.0)]</val></points><head-connection><ref refid="DCE:8CEE5D8E-8098-11DD-91F9-"></ref></head-connection></item></canvas></Diagram><Class id="DCE:109DAC52-8094-11DD-BE50-"><name><val><![CDATA[mb_progm_t]]></val></name><ownedAttribute><reflist><ref refid="DCE:53EA10AE-8094-11DD-BE50-"></ref></reflist></ownedAttribute><package><ref refid="DCE:9C711C86-7F0F-11DD-87F8-"></ref></package><presentation><reflist><ref refid="DCE:109E2D58-8094-11DD-BE50-"></ref></reflist></presentation></Class><Class id="DCE:270D4CC2-8094-11DD-BE50-"><name><val><![CDATA[mb_word_t]]></val></name><ownedAttribute><reflist><ref refid="DCE:55904F86-8094-11DD-BE50-"></ref><ref refid="DCE:6DE1BB7C-8094-11DD-BE50-"></ref><ref refid="DCE:859E6610-8094-11DD-BE50-"></ref></reflist></ownedAttribute><package><ref refid="DCE:9C711C86-7F0F-11DD-87F8-"></ref></package><presentation><reflist><ref refid="DCE:270D89D0-8094-11DD-BE50-"></ref></reflist></presentation></Class><Class id="DCE:2E04BFF6-8094-11DD-BE50-"><name><val><![CDATA[mb_action_t]]></val></name><package><ref refid="DCE:9C711C86-7F0F-11DD-87F8-"></ref></package><presentation><reflist><ref refid="DCE:2E05013C-8094-11DD-BE50-"></ref></reflist></presentation></Class><Association id="DCE:53E8EB66-8094-11DD-BE50-"><memberEnd><reflist><ref refid="DCE:53E92040-8094-11DD-BE50-"></ref><ref refid="DCE:53EA10AE-8094-11DD-BE50-"></ref></reflist></memberEnd><name><val><![CDATA[]]></val></name><package><ref refid="DCE:9C711C86-7F0F-11DD-87F8-"></ref></package><presentation><reflist><ref refid="DCE:532801EE-8094-11DD-BE50-"></ref></reflist></presentation></Association><Property id="DCE:53E92040-8094-11DD-BE50-"><association><ref refid="DCE:53E8EB66-8094-11DD-BE50-"></ref></association><lowerValue><ref refid="DCE:53E97E32-8094-11DD-BE50-"></ref></lowerValue><presentation><reflist></reflist></presentation><type><ref refid="DCE:109DAC52-8094-11DD-BE50-"></ref></type></Property><LiteralSpecification id="DCE:53E97E32-8094-11DD-BE50-"></LiteralSpecification><Property id="DCE:53EA10AE-8094-11DD-BE50-"><association><ref refid="DCE:53E8EB66-8094-11DD-BE50-"></ref></association><class_><ref refid="DCE:109DAC52-8094-11DD-BE50-"></ref></class_><lowerValue><ref refid="DCE:53EA3866-8094-11DD-BE50-"></ref></lowerValue><name><val><![CDATA[words]]></val></name><presentation><reflist></reflist></presentation><type><ref refid="DCE:270D4CC2-8094-11DD-BE50-"></ref></type><upperValue><ref refid="DCE:9A5CC720-8094-11DD-BE50-"></ref></upperValue></Property><LiteralSpecification id="DCE:53EA3866-8094-11DD-BE50-"></LiteralSpecification><Association id="DCE:558F4D2A-8094-11DD-BE50-"><memberEnd><reflist><ref refid="DCE:558F630A-8094-11DD-BE50-"></ref><ref refid="DCE:55904F86-8094-11DD-BE50-"></ref></reflist></memberEnd><package><ref refid="DCE:9C711C86-7F0F-11DD-87F8-"></ref></package><presentation><reflist><ref refid="DCE:551C5B30-8094-11DD-BE50-"></ref></reflist></presentation></Association><Property id="DCE:558F630A-8094-11DD-BE50-"><association><ref refid="DCE:558F4D2A-8094-11DD-BE50-"></ref></association><lowerValue><ref refid="DCE:558F8C5E-8094-11DD-BE50-"></ref></lowerValue><presentation><reflist></reflist></presentation><type><ref refid="DCE:270D4CC2-8094-11DD-BE50-"></ref></type></Property><LiteralSpecification id="DCE:558F8C5E-8094-11DD-BE50-"></LiteralSpecification><Property id="DCE:55904F86-8094-11DD-BE50-"><association><ref refid="DCE:558F4D2A-8094-11DD-BE50-"></ref></association><class_><ref refid="DCE:270D4CC2-8094-11DD-BE50-"></ref></class_><lowerValue><ref refid="DCE:559076AA-8094-11DD-BE50-"></ref></lowerValue><name><val><![CDATA[actions]]></val></name><presentation><reflist></reflist></presentation><type><ref refid="DCE:2E04BFF6-8094-11DD-BE50-"></ref></type><upperValue><ref refid="DCE:A1CD0C72-8094-11DD-BE50-"></ref></upperValue></Property><LiteralSpecification id="DCE:559076AA-8094-11DD-BE50-"></LiteralSpecification><Property id="DCE:6DE1BB7C-8094-11DD-BE50-"><class_><ref refid="DCE:270D4CC2-8094-11DD-BE50-"></ref></class_><defaultValue><ref refid="DCE:6DE4BBEE-8094-11DD-BE50-"></ref></defaultValue><lowerValue><ref refid="DCE:6DE44D9E-8094-11DD-BE50-"></ref></lowerValue><name><val><![CDATA[start_time]]></val></name><presentation><reflist></reflist></presentation><typeValue><ref refid="DCE:6DE3F2A4-8094-11DD-BE50-"></ref></typeValue><upperValue><ref refid="DCE:6DE484BC-8094-11DD-BE50-"></ref></upperValue></Property><LiteralSpecification id="DCE:6DE3F2A4-8094-11DD-BE50-"><value><val><![CDATA[float]]></val></value></LiteralSpecification><LiteralSpecification id="DCE:6DE44D9E-8094-11DD-BE50-"></LiteralSpecification><LiteralSpecification id="DCE:6DE484BC-8094-11DD-BE50-"></LiteralSpecification><LiteralSpecification id="DCE:6DE4BBEE-8094-11DD-BE50-"></LiteralSpecification><Property id="DCE:859E6610-8094-11DD-BE50-"><class_><ref refid="DCE:270D4CC2-8094-11DD-BE50-"></ref></class_><defaultValue><ref refid="DCE:85A0FD72-8094-11DD-BE50-"></ref></defaultValue><lowerValue><ref refid="DCE:85A092A8-8094-11DD-BE50-"></ref></lowerValue><name><val><![CDATA[playing_time]]></val></name><presentation><reflist></reflist></presentation><typeValue><ref refid="DCE:85A034C8-8094-11DD-BE50-"></ref></typeValue><upperValue><ref refid="DCE:85A0C872-8094-11DD-BE50-"></ref></upperValue></Property><LiteralSpecification id="DCE:85A034C8-8094-11DD-BE50-"><value><val><![CDATA[float]]></val></value></LiteralSpecification><LiteralSpecification id="DCE:85A092A8-8094-11DD-BE50-"></LiteralSpecification><LiteralSpecification id="DCE:85A0C872-8094-11DD-BE50-"></LiteralSpecification><LiteralSpecification id="DCE:85A0FD72-8094-11DD-BE50-"></LiteralSpecification><LiteralSpecification id="DCE:9A5CC720-8094-11DD-BE50-"><value><val><![CDATA[*]]></val></value></LiteralSpecification><LiteralSpecification id="DCE:A1CD0C72-8094-11DD-BE50-"><value><val><![CDATA[*]]></val></value></LiteralSpecification><LiteralSpecification id="DCE:BDE10634-8094-11DD-BE50-"><value><val><![CDATA[*]]></val></value></LiteralSpecification><LiteralSpecification id="DCE:169380E8-8095-11DD-BE50-"><value><val><![CDATA[*]]></val></value></LiteralSpecification><Lifeline id="DCE:287B13B4-8097-11DD-91F9-"><coveredBy><reflist><ref refid="DCE:F3C1C286-8097-11DD-91F9-"></ref><ref refid="DCE:1A6A199C-8098-11DD-91F9-"></ref><ref refid="DCE:2C4038FE-8098-11DD-91F9-"></ref><ref refid="DCE:52583C82-8098-11DD-91F9-"></ref></reflist></coveredBy><name><val><![CDATA[:mb_action_t]]></val></name><presentation><reflist><ref refid="DCE:287B2CA2-8097-11DD-91F9-"></ref></reflist></presentation></Lifeline><Lifeline id="DCE:1F1D4776-8097-11DD-91F9-"><coveredBy><reflist><ref refid="DCE:784FDB1A-8097-11DD-91F9-"></ref><ref refid="DCE:F1A77504-8097-11DD-91F9-"></ref><ref refid="DCE:0E277910-8098-11DD-91F9-"></ref><ref refid="DCE:193C407E-8098-11DD-91F9-"></ref><ref refid="DCE:231F9896-8098-11DD-91F9-"></ref><ref refid="DCE:2B42511C-8098-11DD-91F9-"></ref><ref refid="DCE:4A7C4A42-8098-11DD-91F9-"></ref><ref refid="DCE:50A33CCA-8098-11DD-91F9-"></ref></reflist></coveredBy><name><val><![CDATA[:mb_word_t]]></val></name><presentation><reflist><ref refid="DCE:1F1D5FCC-8097-11DD-91F9-"></ref></reflist></presentation></Lifeline><EventOccurrence id="DCE:784FDB1A-8097-11DD-91F9-"><covered><ref refid="DCE:1F1D4776-8097-11DD-91F9-"></ref></covered><receiveMessage><ref refid="DCE:767D4AFC-8097-11DD-91F9-"></ref></receiveMessage></EventOccurrence><Message id="DCE:767D4AFC-8097-11DD-91F9-"><name><val><![CDATA[mb_word_start()]]></val></name><presentation><reflist><ref refid="DCE:767BDE06-8097-11DD-91F9-"></ref></reflist></presentation><receiveEvent><ref refid="DCE:784FDB1A-8097-11DD-91F9-"></ref></receiveEvent><sendEvent><ref refid="DCE:767EF910-8097-11DD-91F9-"></ref></sendEvent></Message><Lifeline id="DCE:0EA89544-8097-11DD-91F9-"><coveredBy><reflist><ref refid="DCE:767EF910-8097-11DD-91F9-"></ref><ref refid="DCE:4CF13B1A-8097-11DD-91F9-"></ref><ref refid="DCE:0CB6126A-8098-11DD-91F9-"></ref><ref refid="DCE:21F80D54-8098-11DD-91F9-"></ref><ref refid="DCE:49910262-8098-11DD-91F9-"></ref></reflist></coveredBy><name><val><![CDATA[:mb_progm_t]]></val></name><presentation><reflist><ref refid="DCE:0EA8C1AE-8097-11DD-91F9-"></ref></reflist></presentation></Lifeline><EventOccurrence id="DCE:767EF910-8097-11DD-91F9-"><covered><ref refid="DCE:0EA89544-8097-11DD-91F9-"></ref></covered><sendMessage><ref refid="DCE:767D4AFC-8097-11DD-91F9-"></ref></sendMessage></EventOccurrence><EventOccurrence id="DCE:4CF13B1A-8097-11DD-91F9-"><covered><ref refid="DCE:0EA89544-8097-11DD-91F9-"></ref></covered><receiveMessage><ref refid="DCE:4CEF3C60-8097-11DD-91F9-"></ref></receiveMessage></EventOccurrence><Message id="DCE:4CEF3C60-8097-11DD-91F9-"><messageSort><val><![CDATA[asynchCall]]></val></messageSort><name><val><![CDATA[mb_progm_start()]]></val></name><presentation><reflist><ref refid="DCE:4C308160-8097-11DD-91F9-"></ref></reflist></presentation><receiveEvent><ref refid="DCE:4CF13B1A-8097-11DD-91F9-"></ref></receiveEvent></Message><Message id="DCE:F1A5B2BC-8097-11DD-91F9-"><name><val><![CDATA[::start()]]></val></name><presentation><reflist><ref refid="DCE:F1A4438E-8097-11DD-91F9-"></ref></reflist></presentation><receiveEvent><ref refid="DCE:F3C1C286-8097-11DD-91F9-"></ref></receiveEvent><sendEvent><ref refid="DCE:F1A77504-8097-11DD-91F9-"></ref></sendEvent></Message><EventOccurrence id="DCE:F1A77504-8097-11DD-91F9-"><covered><ref refid="DCE:1F1D4776-8097-11DD-91F9-"></ref></covered><sendMessage><ref refid="DCE:F1A5B2BC-8097-11DD-91F9-"></ref></sendMessage></EventOccurrence><EventOccurrence id="DCE:F3C1C286-8097-11DD-91F9-"><covered><ref refid="DCE:287B13B4-8097-11DD-91F9-"></ref></covered><receiveMessage><ref refid="DCE:F1A5B2BC-8097-11DD-91F9-"></ref></receiveMessage></EventOccurrence><Message id="DCE:0CB456F0-8098-11DD-91F9-"><name><val><![CDATA[mb_word_step()]]></val></name><presentation><reflist><ref refid="DCE:0CB2E71E-8098-11DD-91F9-"></ref></reflist></presentation><receiveEvent><ref refid="DCE:0E277910-8098-11DD-91F9-"></ref></receiveEvent><sendEvent><ref refid="DCE:0CB6126A-8098-11DD-91F9-"></ref></sendEvent></Message><EventOccurrence id="DCE:0CB6126A-8098-11DD-91F9-"><covered><ref refid="DCE:0EA89544-8097-11DD-91F9-"></ref></covered><sendMessage><ref refid="DCE:0CB456F0-8098-11DD-91F9-"></ref></sendMessage></EventOccurrence><EventOccurrence id="DCE:0E277910-8098-11DD-91F9-"><covered><ref refid="DCE:1F1D4776-8097-11DD-91F9-"></ref></covered><receiveMessage><ref refid="DCE:0CB456F0-8098-11DD-91F9-"></ref></receiveMessage></EventOccurrence><Message id="DCE:193A8944-8098-11DD-91F9-"><name><val><![CDATA[::step()]]></val></name><presentation><reflist><ref refid="DCE:1939164C-8098-11DD-91F9-"></ref></reflist></presentation><receiveEvent><ref refid="DCE:1A6A199C-8098-11DD-91F9-"></ref></receiveEvent><sendEvent><ref refid="DCE:193C407E-8098-11DD-91F9-"></ref></sendEvent></Message><EventOccurrence id="DCE:193C407E-8098-11DD-91F9-"><covered><ref refid="DCE:1F1D4776-8097-11DD-91F9-"></ref></covered><sendMessage><ref refid="DCE:193A8944-8098-11DD-91F9-"></ref></sendMessage></EventOccurrence><EventOccurrence id="DCE:1A6A199C-8098-11DD-91F9-"><covered><ref refid="DCE:287B13B4-8097-11DD-91F9-"></ref></covered><receiveMessage><ref refid="DCE:193A8944-8098-11DD-91F9-"></ref></receiveMessage></EventOccurrence><Message id="DCE:21F64D8E-8098-11DD-91F9-"><name><val><![CDATA[mb_word_step()]]></val></name><presentation><reflist><ref refid="DCE:21F4E098-8098-11DD-91F9-"></ref></reflist></presentation><receiveEvent><ref refid="DCE:231F9896-8098-11DD-91F9-"></ref></receiveEvent><sendEvent><ref refid="DCE:21F80D54-8098-11DD-91F9-"></ref></sendEvent></Message><EventOccurrence id="DCE:21F80D54-8098-11DD-91F9-"><covered><ref refid="DCE:0EA89544-8097-11DD-91F9-"></ref></covered><sendMessage><ref refid="DCE:21F64D8E-8098-11DD-91F9-"></ref></sendMessage></EventOccurrence><EventOccurrence id="DCE:231F9896-8098-11DD-91F9-"><covered><ref refid="DCE:1F1D4776-8097-11DD-91F9-"></ref></covered><receiveMessage><ref refid="DCE:21F64D8E-8098-11DD-91F9-"></ref></receiveMessage></EventOccurrence><Message id="DCE:2B40958E-8098-11DD-91F9-"><name><val><![CDATA[::step()]]></val></name><presentation><reflist><ref refid="DCE:2B3F224E-8098-11DD-91F9-"></ref></reflist></presentation><receiveEvent><ref refid="DCE:2C4038FE-8098-11DD-91F9-"></ref></receiveEvent><sendEvent><ref refid="DCE:2B42511C-8098-11DD-91F9-"></ref></sendEvent></Message><EventOccurrence id="DCE:2B42511C-8098-11DD-91F9-"><covered><ref refid="DCE:1F1D4776-8097-11DD-91F9-"></ref></covered><sendMessage><ref refid="DCE:2B40958E-8098-11DD-91F9-"></ref></sendMessage></EventOccurrence><EventOccurrence id="DCE:2C4038FE-8098-11DD-91F9-"><covered><ref refid="DCE:287B13B4-8097-11DD-91F9-"></ref></covered><receiveMessage><ref refid="DCE:2B40958E-8098-11DD-91F9-"></ref></receiveMessage></EventOccurrence><Message id="DCE:498F426C-8098-11DD-91F9-"><name><val><![CDATA[mb_word_stop()]]></val></name><presentation><reflist><ref refid="DCE:498DD4A2-8098-11DD-91F9-"></ref></reflist></presentation><receiveEvent><ref refid="DCE:4A7C4A42-8098-11DD-91F9-"></ref></receiveEvent><sendEvent><ref refid="DCE:49910262-8098-11DD-91F9-"></ref></sendEvent></Message><EventOccurrence id="DCE:49910262-8098-11DD-91F9-"><covered><ref refid="DCE:0EA89544-8097-11DD-91F9-"></ref></covered><sendMessage><ref refid="DCE:498F426C-8098-11DD-91F9-"></ref></sendMessage></EventOccurrence><EventOccurrence id="DCE:4A7C4A42-8098-11DD-91F9-"><covered><ref refid="DCE:1F1D4776-8097-11DD-91F9-"></ref></covered><receiveMessage><ref refid="DCE:498F426C-8098-11DD-91F9-"></ref></receiveMessage></EventOccurrence><Message id="DCE:50A17E72-8098-11DD-91F9-"><name><val><![CDATA[::stop()]]></val></name><presentation><reflist><ref refid="DCE:50A00D14-8098-11DD-91F9-"></ref></reflist></presentation><receiveEvent><ref refid="DCE:52583C82-8098-11DD-91F9-"></ref></receiveEvent><sendEvent><ref refid="DCE:50A33CCA-8098-11DD-91F9-"></ref></sendEvent></Message><EventOccurrence id="DCE:50A33CCA-8098-11DD-91F9-"><covered><ref refid="DCE:1F1D4776-8097-11DD-91F9-"></ref></covered><sendMessage><ref refid="DCE:50A17E72-8098-11DD-91F9-"></ref></sendMessage></EventOccurrence><EventOccurrence id="DCE:52583C82-8098-11DD-91F9-"><covered><ref refid="DCE:287B13B4-8097-11DD-91F9-"></ref></covered><receiveMessage><ref refid="DCE:50A17E72-8098-11DD-91F9-"></ref></receiveMessage></EventOccurrence><Comment id="DCE:8CEE37F0-8098-11DD-91F9-"><body><val><![CDATA[Repeat n times until playing_time +after the word been started.]]></val></body><presentation><reflist><ref refid="DCE:8CEE5D8E-8098-11DD-91F9-"></ref></reflist></presentation></Comment></gaphor> \ No newline at end of file
--- a/src/Makefile Sun Sep 14 09:42:07 2008 +0800 +++ b/src/Makefile Sun Sep 14 18:51:16 2008 +0800 @@ -1,7 +1,7 @@ SRCS = coord.c geo.c shape_path.c shape_text.c shape_rect.c \ redraw_man.c timer.c animate.c paint.c event.c observer.c \ X_supp.c timertool.c tools.c shift.c chgcolor.c \ - visibility.c + visibility.c rotate.c OBJS = ${SRCS:C/(.*)\.c/\1.o/g} TESTCASE_OBJS = ${SRCS:C/(.*)\.c/testcase-\1.o/g} CFLAGS+= -Wall -I/usr/local/include `pkg-config --cflags cairo`
--- a/src/animate.c Sun Sep 14 09:42:07 2008 +0800 +++ b/src/animate.c Sun Sep 14 18:51:16 2008 +0800 @@ -1,10 +1,15 @@ /*! \file * \brief Animation tools. * - * \sa ani + * \sa \ref ani */ /*! \page ani What is Animation? * + * Animation is a program to move, resize, rotate, ..., changing + * graphics on the output screen. + * + * \image html program.png + * * XXX: Program is a sequence of actions duration a perior. * Actions are grouped into words. A program defines * the order and time of playing of words. A word @@ -22,7 +27,43 @@ * with timer for periodic running. \ref mb_tman_t is timer of * MadButterfly. The update frequence is 10fps by default, now. * - * \sa animate.c + * \section use_progm How to Use Animation Program? + * Following code block creates a program with 2 words. First word is + * started immediately after the program been started. It is consisted + * for 1 second. Second word is started 1 second after the program been + * started. It is consisted for 2 seconds. There are 2 action in + * first word, they shift graphics managed by coord1 & coord2 by (50,50) and + * (-50,50) pixels, respectly. The shifting is performed incrementally + * in 1 second. Second word shifts coord1 and coord2, too. And, graphics + * managed by coord3 are hidden at end of the word. At end of code in the + * block, mb_progm_start() starts the program. 3rd argument of + * mb_progm_start() must be current wall time. + * + * \code + * progm = mb_progm_new(10, &rdman); + * + * MB_TIMEVAL_SET(&start, 0, 0); + * MB_TIMEVAL_SET(&playing, 1, 0); + * word = mb_progm_next_word(progm, &start, &playing); + * + * act = mb_shift_new(50, 50, coord1, word); + * act = mb_shift_new(-50, 50, coord2, word); + * + * MB_TIMEVAL_SET(&start, 1, 0); + * MB_TIMEVAL_SET(&playing, 2, 0); + * word = mb_progm_next_word(progm, &start, &playing); + * + * act = mb_shift_new(0, 20, coord1, word); + * act = mb_shift_new(0, -20, coord2, word); + * act = mb_visibility_new(VIS_HIDDEN, coord3, word); + * + * gettimeofday(&tv, NULL); + * MB_TIMEVAL_SET(&mbtv, tv.tv_sec, tv.tv_usec); + * mb_progm_start(progm, tman, &mbtv); + * \endcode + * + * + * \sa \ref animate.c */ #include <stdio.h> #include <stdlib.h>
--- a/src/animate.h Sun Sep 14 09:42:07 2008 +0800 +++ b/src/animate.h Sun Sep 14 18:51:16 2008 +0800 @@ -5,19 +5,7 @@ #include "mb_timer.h" #include "paint.h" -/*! \defgroup anim Animation - * \brief Animation is a set of functions to make graph moving. - * @{ - */ -typedef struct _mb_progm mb_progm_t; -typedef struct _mb_word mb_word_t; -typedef struct _mb_action mb_action_t; -typedef struct _mb_progm_state mb_progm_state_t; - -/*! \defgroup act_support Action Supports. - * @{ - */ -/*! \brief Basic class of nnimation actions. +/*! \page def_action How to Define An Action? * * A action must implement following 4 functions. * \li start, @@ -31,6 +19,22 @@ * It also means *_new() must have an argument with type of * (mb_word_t *). */ + +/*! \defgroup anim Animation + * \brief Animation is a set of functions to make graph moving. + * @{ + */ +typedef struct _mb_progm mb_progm_t; +typedef struct _mb_word mb_word_t; +typedef struct _mb_action mb_action_t; + +/*! \defgroup act_support Action Supports. + * @{ + */ +/*! \brief Basic class of nnimation actions. + * + * \sa \ref def_action + */ struct _mb_action { void (*start)(mb_action_t *act, const mb_timeval_t *now, @@ -63,6 +67,8 @@ extern mb_action_t *mb_chgcolor_new(co_comp_t r, co_comp_t g, co_comp_t b, co_comp_t a, paint_t *paint, mb_word_t *word); +extern mb_action_t *mb_rotate_new(float angle1, float angle2, + coord_t *coord, mb_word_t *word); enum { VIS_VISIBLE, VIS_HIDDEN }; extern mb_action_t *mb_visibility_new(int visib, coord_t *coord,
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/rotate.c Sun Sep 14 18:51:16 2008 +0800 @@ -0,0 +1,119 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <math.h> +#include "animate.h" + +static float comp_mb_timeval_ratio(const mb_timeval_t *a, + const mb_timeval_t *b) { + float ratio; + + ratio = (float)MB_TIMEVAL_SEC(a) * 1000000.0 + (float)MB_TIMEVAL_USEC(a); + ratio /= (float)MB_TIMEVAL_SEC(b) * 1000000.0 + (float)MB_TIMEVAL_USEC(b); + return ratio; +} + +/*! \brief Animation action to rotate a coordinate. + */ +struct _mb_rotate { + mb_action_t action; + + co_aix angle1, angle2; + coord_t *coord; + + mb_timeval_t start_time; + const mb_timeval_t *playing_time; +}; +typedef struct _mb_rotate mb_rotate_t; + +static void mb_rotate_start(mb_action_t *act, + const mb_timeval_t *now, + const mb_timeval_t *playing_time, + redraw_man_t *rdman) { + mb_rotate_t *rotate = (mb_rotate_t *)act; + co_aix *matrix; + float _sin, _cos; + + _sin = sinf(rotate->angle1); + _cos = cosf(rotate->angle1); + + matrix = rotate->coord->matrix; + memset(matrix, 0, sizeof(co_aix) * 6); + matrix[0] = _cos; + matrix[1] = -_sin; + matrix[3] = _sin; + matrix[4] = _cos; + rdman_coord_changed(rdman, rotate->coord); + + MB_TIMEVAL_CP(&rotate->start_time, now); + rotate->playing_time = playing_time; +} + +static void mb_rotate_step(mb_action_t *act, const mb_timeval_t *now, + redraw_man_t *rdman) { + mb_rotate_t *rotate = (mb_rotate_t *)act; + mb_timeval_t diff; + co_aix *matrix; + float ratio; + float angle; + float _sin, _cos; + + MB_TIMEVAL_CP(&diff, now); + MB_TIMEVAL_DIFF(&diff, &rotate->start_time); + ratio = comp_mb_timeval_ratio(&diff, rotate->playing_time); + + angle = rotate->angle1 * (1 - ratio) + rotate->angle2 * ratio; + _sin = sinf(angle); + _cos = cosf(angle); + + matrix = rotate->coord->matrix; + matrix[0] = _cos; + matrix[1] = -_sin; + matrix[3] = _sin; + matrix[4] = _cos; + rdman_coord_changed(rdman, rotate->coord); +} + +static void mb_rotate_stop(mb_action_t *act, const mb_timeval_t *now, + redraw_man_t *rdman) { + mb_rotate_t *rotate = (mb_rotate_t *)act; + co_aix *matrix; + float _sin, _cos; + + _sin = sinf(rotate->angle2); + _cos = cosf(rotate->angle2); + + matrix = rotate->coord->matrix; + matrix[0] = _cos; + matrix[1] = -_sin; + matrix[3] = _sin; + matrix[4] = _cos; + rdman_coord_changed(rdman, rotate->coord); +} + +static void mb_rotate_free(mb_action_t *act) { + free(act); +} + +mb_action_t *mb_rotate_new(float angle1, float angle2, + coord_t *coord, + mb_word_t *word) { + mb_rotate_t *rotate; + + rotate = (mb_rotate_t *)malloc(sizeof(mb_rotate_t)); + if(rotate == NULL) + return NULL; + + rotate->angle1 = angle1; + rotate->angle2 = angle2; + rotate->coord = coord; + + rotate->action.start = mb_rotate_start; + rotate->action.step = mb_rotate_step; + rotate->action.stop = mb_rotate_stop; + rotate->action.free = mb_rotate_free; + + mb_word_add_action(word, (mb_action_t *)rotate); + + return (mb_action_t *)rotate; +}
--- a/src/shift.c Sun Sep 14 09:42:07 2008 +0800 +++ b/src/shift.c Sun Sep 14 18:51:16 2008 +0800 @@ -13,7 +13,7 @@ } typedef struct _mb_shift mb_shift_t; -/*! \brief Animation action for shift a coordination. */ +/*! \brief Animation action for relative shift a coordination. */ struct _mb_shift { mb_action_t action; @@ -95,5 +95,3 @@ return (mb_action_t *)shift; } - -