summaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-13 11:50:49 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-13 11:50:49 +0000
commitc853ffb5b2f75f5a889ed2e3ef89b818a736e87a (patch)
tree7d13a0883bb7936b84d6ecdd7bc332b41ed04bee /doc
parentInitial commit. (diff)
downloadinkscape-8a99dde12f4056f9f3e8c91d10a929dbb60d0ab9.tar.xz
inkscape-8a99dde12f4056f9f3e8c91d10a929dbb60d0ab9.zip
Adding upstream version 1.3+ds.upstream/1.3+dsupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'doc')
-rw-r--r--doc/ChangeLog_archive.txt21282
-rw-r--r--doc/LOGGING.txt23
-rw-r--r--doc/NewAppArchitecture/01-title.svg230
-rw-r--r--doc/NewAppArchitecture/02-outline.svg517
-rw-r--r--doc/NewAppArchitecture/03-current.svg581
-rw-r--r--doc/NewAppArchitecture/04-current-main.svg686
-rw-r--r--doc/NewAppArchitecture/05-current-objects.svg1270
-rw-r--r--doc/NewAppArchitecture/06-current-desktop-view.svg785
-rw-r--r--doc/NewAppArchitecture/07-current-problems.svg729
-rw-r--r--doc/NewAppArchitecture/08-inkscape-gtkmm.svg576
-rw-r--r--doc/NewAppArchitecture/09-future-capabilities.svg591
-rw-r--r--doc/NewAppArchitecture/10-future-main.svg609
-rw-r--r--doc/NewAppArchitecture/11-future-ink-app.svg614
-rw-r--r--doc/NewAppArchitecture/12-future-run-modes.svg1048
-rw-r--r--doc/NewAppArchitecture/13-future-ink-app-editor.svg1549
-rw-r--r--doc/NewAppArchitecture/14-evolving.svg619
-rw-r--r--doc/PDF Feature Matrix.odsbin0 -> 11492 bytes
-rw-r--r--doc/PDF Feature Matrix.svg568
-rw-r--r--doc/README.document77
-rw-r--r--doc/architecture.svg826
-rw-r--r--doc/architecture.txt490
-rw-r--r--doc/class-hierarchy.diabin0 -> 6668 bytes
-rw-r--r--doc/coordinates.txt53
-rw-r--r--doc/extension_system.txt411
-rw-r--r--doc/extension_system.xml237
-rw-r--r--doc/inkscape-uml.diabin0 -> 7779 bytes
-rw-r--r--doc/livarot-images/arc-threshold.svg228
-rw-r--r--doc/livarot-images/chgt-addition-sequence.svg262
-rw-r--r--doc/livarot-images/convert-back-data.svg258
-rw-r--r--doc/livarot-images/convert-lines.svg128
-rw-r--r--doc/livarot-images/convert-reconstruction.svg2516
-rw-r--r--doc/livarot-images/convert-simple-high.svg140
-rw-r--r--doc/livarot-images/convert-simple-low.svg110
-rw-r--r--doc/livarot-images/edge-sorting.svg200
-rw-r--r--doc/livarot-images/edge-winding-seed.svg81
-rw-r--r--doc/livarot-images/find-point-2.svg357
-rw-r--r--doc/livarot-images/find-point-same-opp-sweepsense.svg417
-rw-r--r--doc/livarot-images/find-point-same.svg386
-rw-r--r--doc/livarot-images/find-point.svg299
-rw-r--r--doc/livarot-images/intersection-cross-product.svg443
-rw-r--r--doc/livarot-images/intersection-cross-products.svg373
-rw-r--r--doc/livarot-images/intersection-point-calculation.svg1473
-rw-r--r--doc/livarot-images/lastChgtPt-from-avance.svg146
-rw-r--r--doc/livarot-images/problematic-intersection-case.svg185
-rw-r--r--doc/livarot-images/process-flat-to-convert.svg855
-rw-r--r--doc/livarot-images/process-flat-to-convert.svg.2020_08_20_00_55_09.0.svg566
-rw-r--r--doc/livarot-images/rounded-edge-diagonal-avoid.svg271
-rw-r--r--doc/livarot-images/sequence-convert-shape-loop.svg618
-rw-r--r--doc/livarot-images/situation-from-add-chgt.svg152
-rw-r--r--doc/livarot-images/snap-rounding-with.svg806
-rw-r--r--doc/livarot-images/snap-rounding-without.pngbin0 -> 30728 bytes
-rw-r--r--doc/livarot-images/snap-rounding-without.svg802
-rw-r--r--doc/livarot-images/sweep-tree.svg527
-rw-r--r--doc/livarot-images/sweepline-list-node-add-removal.svg524
-rw-r--r--doc/livarot-images/sweepline-list-node-event.svg749
-rw-r--r--doc/livarot-images/sweepline-list-node-intersection.svg607
-rw-r--r--doc/livarot-images/teste-intersection.svg193
-rw-r--r--doc/livarot-images/winding-brutal-bounds.svg121
-rw-r--r--doc/livarot-images/winding-brutal-endpoints-end.svg497
-rw-r--r--doc/livarot-images/winding-brutal-endpoints-start.svg511
-rw-r--r--doc/livarot-images/winding-brutal-endpoints.svg188
-rw-r--r--doc/livarot-images/winding-computation-seed.svg154
-rw-r--r--doc/livarot-images/winding-computation.svg391
-rw-r--r--doc/livarot-images/winding-fundamental-principle.svg116
-rw-r--r--doc/markers_design.txt125
-rw-r--r--doc/nr-filter-interface.txt229
-rw-r--r--doc/refcounting.txt136
-rw-r--r--doc/spsvgview.txt15
68 files changed, 51526 insertions, 0 deletions
diff --git a/doc/ChangeLog_archive.txt b/doc/ChangeLog_archive.txt
new file mode 100644
index 0000000..39e7a68
--- /dev/null
+++ b/doc/ChangeLog_archive.txt
@@ -0,0 +1,21282 @@
+2008-05-23 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * share/extensions/*.py: Use gettext for (many) error messages.
+ share/extensions/inkex.py: (errormsg): New function.
+
+2007-06-24 Joel Holdsworth <joelholdsworth@yahoo.com>
+
+ * modified the windows RC files to add version info and manifest data
+
+2007-03-16 Tim Dwyer <Tim.Dwyer@infotech.monash.edu.au>
+
+ * src/graphlayout/graphlayout.cpp: handle null bounding boxes
+
+2007-03-01 Markus Schwarzenberg <Markus.Schwarzenberg@ipms.fraunhofer.de>
+
+ Solaris 8 / gcc-3.2.3 fixes (selectively effecting only this special
+
+ * src/display/nr-filter-gaussian.cpp:
+
+ * include compatibility header "isnormal.h"
+ * template calcTriggsSdikaInitialization<PC> needs to be
+ specified explicitely for gcc 3.2.3
+
+ * src/display/pixblock-transform.cpp, src/display/nr-filter.cpp,
+ src/display/nr-filter.cpp
+
+ * include compatibility header "round.h"
+ * using Inkscape::round
+
+ * src/extension/internal/ps.cpp, src/print.cpp
+
+ include <unistd.h> on SOLARIS_2_8 for open, unlink
+
+ * src/libcola/gradient_projection.cpp
+
+ include and use compatibility headers "isnan.h" "isinf.h"
+
+ * removed obsolete src/libvpsc/isnan.h
+
+ * added src/isinf.h
+
+ * configure.ac: Added Detection of solaris2.8 --> CXXFLAGS += -DSOLARIS_2_8
+
+2006-08-05 John Bintz <jcoswell@coswellproductions.org>
+
+ * node-context.cpp, nodepath.cpp:
+
+ add checks to make sure given nodepath pointers are not
+ null before working with them
+
+2006-08-01 MenTaLguY <mental@rydia.net>
+
+ * configure.ac: refactor pkg-config tests and add explicit cairo test
+
+2006-07-29 John Bintz <jcoswell@coswellproductions.org>
+
+ * src/nodepath.cpp:
+
+ Fix bug where deleting a node broke the symmetry of neighboring
+ smooth nodes and failed to convert those nodes to cusp nodes
+
+2006-07-29 MenTaLguY <mental@rydia.net>
+
+ * src/sp-object.cpp:
+
+ remove GObject signals from SPObject
+
+ * src/desktop.cpp, src/desktop.h, src/sp-gradient.cpp,
+ src/sp-gradient.h, src/sp-pattern.cpp, src/sp-pattern.h,
+ src/sp-switch.cpp, src/sp-switch.h, src/widgets/desktop-widget.cpp,
+ src/widgets/desktop-widget.h, src/widgets/gradient-image.cpp,
+ src/widgets/gradient-image.h, src/widgets/gradient-toolbar.cpp,
+ src/widgets/gradient-toolbar.cpp:
+
+ switch to sigc++ SPObject signals
+
+2006-07-27 MenTaLguY <mental@rydia.net>
+
+ * src/dialogs/sp-attribute-widget.cpp,
+ src/dialogs/sp-attribute-widget.h, src/sp-offset.cpp,
+ src/sp-offset.h, src/sp-shape.cpp, src/sp-shape.h,
+ src/sp-use-reference.cpp, src/sp-use-reference.h:
+
+ switch to sigc++ SPObject signals
+
+2006-07-26 MenTaLguY <mental@rydia.net>
+
+ * src/dialogs/object-attributes.cpp:
+
+ switch to sigc++ "release"
+
+2006-07-26 MenTaLguY <mental@rydia.net>
+
+ * src/style.cpp, src/style.h:
+
+ finish switching to sigc++ SPObject signals for SPStyle
+
+2006-07-25 MenTaLguY <mental@rydia.net>
+
+ * src/widgets/gradient-vector.cpp, src/widgets/gradient-vector.h:
+
+ switch to sigc++ SPObject signals for SPGradientVectorSelector
+
+2006-07-25 MenTaLguY <mental@rydia.net>
+
+ * autogen.sh, configure.ac, debian/control, tools-version.sh:
+
+ un-libtoolize the build process (yay!) -- we haven't actually
+ used libtool for ages
+
+2006-07-25 MenTaLguY <mental@rydia.net>
+
+ * src/extension/plugin, src/extension/plugin/Makefile_insert,
+ src/extension/plugin/makefile.in, src/extension/plugin/.cvsignore,
+ src/Makefile.am, configure.ac:
+
+ remove vestigal plugin support
+
+2006-07-24 MenTaLguY <mental@rydia.net>
+
+ * configure.ac: further work on LSB build configuration
+
+2006-07-23 John Bintz <jcoswell@coswellproductions.org>
+
+ * src/verbs.cpp, src/event-context.cpp, src/node-context.cpp:
+
+ forced redraw of canvas upon completion of zooming or upon
+ starting rubber band selection events to work around event
+ starvation issue at high zoom levels
+
+2006-07-23 MenTaLguY <mental@rydia.net>
+
+ * src/widgets/paint-selector.cpp:
+
+ Update pattern creation help text to reflect new menu layout. We
+ probably need some way to automatically generate
+ "menu navigation strings" for a given verb.
+
+2006-07-23 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * packaging/osx-app.sh, packaging/macosx/inkscape.ds_store
+ packaging/macosx/dmg_background.svg, packaging/macosx/osx-dmg.sh,
+ packaging/macosx/dmg_background.png, Makefile.am,
+ packaging/macosx/dmg_set_style.scpt:
+
+ Improve the disk image layout for Mac OS X releases. This is
+ based on Jean-Olivier Irisson's work and patches, submitted as
+ #1516212.
+
+2006-07-23 John Bintz <jcoswell@coswellproductions.org>
+
+ * src/desktop.cpp, src/desktop.h:
+
+ added SPDesktop::updateNow()
+
+ * src/event-context.cpp, src/select-context.cpp, src/node-context.cpp:
+
+ forced redraw of canvas upon completion of selection or panning
+ to work around event starvation issue at high zoom levels
+
+2006-07-22 John Bintz <jcoswell@coswellproductions.org>
+
+ * src/desktop.cpp, src/desktop.h, src/document-undo.cpp,
+ src/document.h, src/document-private.h, src/document.cpp:
+
+ forced redraw of canvas upon document commit to work
+ around event starvation issue at high zoom levels
+
+2006-07-21 MenTaLguY <mental@rydia.net>
+
+ * src/splivarot.cpp:
+
+ patch from John Bintz, adding pref to simplify multiple
+ paths separately
+
+2006-07-21 MenTaLguY <mental@rydia.net>
+
+ * configure.ac: first shot at implementing --enable-lsb
+
+2006-07-21 MenTaLguY <mental@rydia.net>
+
+ * src/style.cpp, src/style.h:
+
+ switch to using sigc++ signals
+
+2006-07-21 MenTaLguY <mental@rydia.net>
+
+ * src/layer-manager.cpp, src/layer-manager.h:
+
+ switch to sigc++ signals and manually clean up signal connections
+ (although it may not be strictly necessary to do so here)
+
+2006-07-21 MenTaLguY <mental@rydia.net>
+
+ * src/document-subset.cpp, src/object-hierarchy.cpp,
+ src/object-hierarchy.h, src/selection.cpp, src/selection.h,
+ src/ui/view/edit-widget.cpp, src/ui/view/edit-widget.h,
+ src/uri-references.cpp, src/uri-references.h:
+
+ switch to sigc++ signals for "modified" and "release"
+
+2006-07-21 MenTaLguY <mental@rydia.net>
+
+ * src/document.cpp, src/sp-object.cpp, src/sp-object.h:
+
+ sp_object_invoke_release -> SPObject::releaseReferences,
+ plus the introduction of sigc++ signals for "release" and
+ "modified" which will eventually replace the GObject signals
+
+2006-07-20 MenTaLguY <mental@rydia.net>
+
+ * src/libnrtype/RasterFont.h, src/libnrtype/font-instance.h:
+
+ replace two uses of hash_map with standard STL map
+
+2006-07-18 Bryce Harrington <bryce@bryceharrington.org>
+
+ * src/document.h, src/document.cpp: Refactoring from mental &
+ bryce to consolidate document update functionality from
+ sp_document_ensure_is_up_to_date() and
+ sp_document_idle_handler(). This is the first step in getting
+ updates of defs (and markers) fixed.
+
+2006-07-18 Tim Dwyer <Tim.Dwyer@infotech.monash.edu.au>
+
+ * src/graphlayout/graphlayout.cpp, src/conn-avoid-ref.h:
+ We now use connector spacing to determine the minimum space required
+ between shape bounding boxes when graph layout with avoid overlap
+ constraints is applied. This means that there should always be enough
+ room for connectors to route between shapes. Also changed the default
+ connector spacing to a less extreme 3.
+
+2006-07-17 Tim Dwyer <Tim.Dwyer@infotech.monash.edu.au>
+
+ * src/libcola/cola.h, src/libcola/connected_components.cpp,
+ src/graphlayout/graphlayout.cpp:
+ Disconnected graphs are now handled more gracefully,
+ connected components are arranged separated (in place) and
+ then overlaps between components are removed.
+
+2006-07-13 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/Makefile_insert, src/Makefile.am, src/svg/Makefile_insert,
+ src/xml/Makefile_insert, src/libnr/Makefile_insert:
+ Add "$(srcdir)/" to some things so that "make check" works in
+ the case that the build directory is somewhere other than the
+ source directory.
+
+ * src/sp-conn-end-pair.cpp, src/connector-context.cpp,
+ src/document.cpp, src/libavoid/*:
+ Update libavoid with upstream fixes, optimisations and new features.
+
+2006-07-13 Tim Dwyer <Tim.Dwyer@infotech.monash.edu.au>
+
+ * src/libvpsc/*,
+ src/graphlayout/graphlayout.cpp:
+ Toggle on connector toolbar can force connectors with
+ end-markers (arrows) to point downwards
+
+2006-07-13 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/libavoid/router.cpp: Fixed a bug in the libavoid function
+ Router::attachedConns(). Previously unused, but needed by Tim
+ for new Graph Layout code.
+
+2006-07-13 Jon Phillips <jon@rejon.org>
+
+ * src/inkview: Added commandline option capability to inkview and
+ got code ready to add a timer for an automatic slideshow capability.
+
+2006-07-12 Tim Dwyer <Tim.Dwyer@infotech.monash.edu.au>
+
+ * src/libvpsc/*,
+ src/libcola/*,
+ src/graphlayout/graphlayout.cpp,
+ src/removeoverlaps/removeoverlaps.cpp:
+ Boost graph layout algorithms replaced by custom constraint layout
+ algorithm (implemented in libcola). New layout supports constraints
+ such as downward pointing connectors (directed graph layout) or
+ non-overlapping shapes.
+ libvpsc contains updated code for quadratic program solver used by
+ libcola and removeoverlaps. Fixes bug #1441411.
+
+2006-07-02 Colin Marquardt <colin@marquardt-home.de>
+
+ * AUTHORS, src/ui/dialog/aboutbox.cpp: Add Niko, Hugo, Dale and
+ Gustav.
+
+2006-06-30 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/connector-context.cpp, src/widgets/toolbox.cpp:
+ Add undo event descriptions for the connector context.
+
+2006-06-27 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * packaging/macosx/ScriptExec/main.c:
+ Add some quotes to fix a problem for people on OS X with
+ spaces in their home directory path. Fixes bug #1512019.
+
+2006-06-21 Colin Marquardt <colin@marquardt-home.de>
+
+ * share/templates/DVD_cover_regular_300dpi.svg,
+ share/templates/DVD_cover_slim_300dpi.svg,
+ share/templates/DVD_cover_superslim_300dpi.svg,
+ share/templates/DVD_cover_ultraslim_300dpi.svg:
+ DVD templates by Aleksandar Urosevic. Closes #1507164.
+
+2006-06-19 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * packaging/macosx/Resources/script,
+ packaging/macosx/Resources/bin/inkscape:
+
+ Improve quoting of shell variables.
+
+ * packaging/macosx/ScriptExec/ScriptExec.xcodeproj/project.pbxproj:
+
+ Xcode 2 project file for the OS X launcher. This will build a
+ Universal version of the launcher by default. The project files for
+ different versions are named differently, so this will be picked up and
+ used if the package builder has a sufficiently new version of Xcode.
+
+ * packaging/macosx/ScriptExec/ScriptExec.xcode/sveinbjornt.pbxuser,
+ packaging/macosx/ScriptExec/ScriptExec.xcode/voisine.pbxuser:
+
+ Remove unnecessary user preference files.
+
+ * Makefile.am:
+
+ Update the Xcode project files included when creating releases.
+
+2006-06-13 Jon A. Cruz <jon@joncruz.org>
+
+ * TRANSLATORS, src/ui/dialog/aboutbox.cpp:
+
+ Applied patch #1505715.
+
+2006-06-13 Jon A. Cruz <jon@joncruz.org>
+
+ * packaging/macosx/Resources/etc/fonts/fonts.conf:
+
+ Applied patch #1505765.
+
+2006-06-09 Jon A. Cruz <jon@joncruz.org>
+
+ * src/object-snapper.cpp, src/selection.cpp, src/selection.h,
+ src/seltrans.cpp:
+
+ Applied patch #1503864.
+
+2006-06-09 Jon A. Cruz <jon@joncruz.org>
+
+ * src/widgets/toolbox.cpp:
+
+ Handle case when function call fails.
+ Fixes bug #1501150.
+
+2006-06-07 Jon A. Cruz <jon@joncruz.org>
+
+ * src/seltrans.cpp:
+
+ Work-around for seltrans not getting calls to grab() and ungrab() as
+ expected.
+ Fixes bug #1501156.
+
+2006-06-07 Jon A. Cruz <jon@joncruz.org>
+
+ * src/widgets/toolbox.cpp:
+
+ Applied patch #1502407.
+ Fixes bug #1500049.
+
+2006-06-07 Jon A. Cruz <jon@joncruz.org>
+
+ * packaging/macosx/ScriptExec/main.c, packaging/osx-app.sh:
+
+ Fixing OS X fc-cache problem.
+ Applied patch #1502063.
+
+2006-06-07 Jon A. Cruz <jon@joncruz.org>
+
+ * src/sp-item-group.cpp, src/sp-path.cpp, src/sp-star.cpp,
+ src/sp-switch.cpp, src/ui/widget/ruler.cpp:
+
+ Applied patch #1501709.
+
+2006-06-05 Jon A. Cruz <jon@joncruz.org>
+
+ * trace/siox.cpp, trace/siox.h, trace/trace.cpp,
+ src/ui/dialog/tracedialog.cpp:
+
+ Applied patch #1501375.
+
+2006-06-05 Jon A. Cruz <jon@joncruz.org>
+
+ * trace/siox.cpp, trace/trace.cpp:
+
+ Applied patch #1501134.
+
+2006-06-05 Jon A. Cruz <jon@joncruz.org>
+
+ * src/dialogs/layers-panel.cpp:
+
+ Allow action when no layer selected.
+ Fixes bugs #1494646.
+
+2006-06-05 Jon A. Cruz <jon@joncruz.org>
+
+ * trace/siox.cpp:
+
+ Applied patch #1500659.
+
+2006-06-05 Jon A. Cruz <jon@joncruz.org>
+
+ * src/dialogs/layers-panel.h, src/dialogs/layers-panel.cpp:
+
+ Blocked signal when changes are not from the layers UI.
+ Fixes bugs #1495406 and most of #1494646.
+
+2006-06-02 Colin Marquardt <colin@marquardt-home.de>
+
+ * TRANSLATORS: Add Stefan Graubner.
+
+2006-06-01 Jon A. Cruz <jon@joncruz.org>
+
+ * src/extension/internal/pdf-mini.h
+
+ Fix for delete[] mismatch and binary tweak from Ulf Erikson.
+
+2006-06-01 Jon A. Cruz <jon@joncruz.org>
+
+ * src/dialogs/layers-panel.h, src/dialogs/layers-panel.cpp:
+
+ Added layer opacity slider.
+ Fixes RFE #1496569.
+
+2006-05-31 Colin Marquardt <colin@marquardt-home.de>
+
+ * TRANSLATORS: Add vonHalenbach for tutorial translations.
+
+2006-05-29 Jon A. Cruz <jon@joncruz.org>
+
+ * src/extension/internal/odf.cpp:
+ Corrected deletes and uninitizlied variables.
+ Fixes bug# 1489961.
+
+2006-05-30 John Cliff <simarilius@yahoo.com>
+ src/trace/potrace/inkscape-potrace.cpp
+ Changed bitsPerSample from hardcoded to calculated for multi color traces
+ to fix bugs 1188811 and 1484076
+
+2006-05-29 Jon A. Cruz <jon@joncruz.org>
+
+ * src/xml/repr-io.cpp:
+ Changed to strip leading BOM from input.
+ Fixes bug# 1121666.
+
+2006-05-29 Bryce <bryce@bryceharrington.org>
+ * sp-shape.cpp: Adding documentation
+
+2006-05-29 Jon A. Cruz <jon@joncruz.org>
+
+ * src/desktop.cpp, src/layer-manager.cpp, src/dialogs/layers-panel.cpp:
+ Workaround to avoid assertion upon file revert.
+
+2006-05-28 Bryce <bryce@bryceharrington.org>
+ * sp-marker.cpp: Adding documentation
+
+2006-05-28 MenTaLguY <mental@rydia.net>
+
+ * src/dialogs/clonetiler.cpp, src/dialogs/iconpreview.cpp,
+ src/dialogs/stroke-style.cpp, src/display/curve.cpp,
+ src/display/sp-canvas.cpp, src/dyna-draw-context.cpp,
+ src/extension/internal/gnome.cpp, src/extension/internal/pdf.cpp,
+ src/extension/internal/ps.cpp, src/extension/internal/win32.cpp,
+ src/file.cpp, src/inkview.cpp, src/libnr/nr-macros.h,
+ src/libnr/nr-object.cpp, src/libnr/nr-path.cpp,
+ src/libnr/nr-pixblock.cpp, src/libnr/nr-pixblock-pattern.cpp,
+ src/libnr/nr-svp.cpp, src/libnr/nr-svp-render.cpp,
+ src/libnrtype/FontFactory.cpp, src/libnrtype/Layout-TNG-Output.cpp,
+ src/libnrtype/nr-type-primitives.cpp, src/path-chemistry.cpp,
+ src/splivarot.cpp, src/sp-marker.cpp, src/ui/widget/icon-widget.cpp,
+ src/widgets/icon.cpp:
+
+ replace nr_new() with g_new(), and try to converge on using the
+ glib allocator a little more instead of the others (aside from
+ libgc)
+
+2006-05-28 MenTaLguY <mental@rydia.net>
+
+ * share/icons/icons.svg:
+
+ correct vertical text flow icon to correctly reflect lines stacking
+ right-to-left, as well as improving pixel alignment on both text flow
+ icons
+
+2006-05-28 MenTaLguY <mental@rydia.net>
+
+ * src/widgets/toolbox.cpp:
+
+ add tooltips to text toolbar widgets
+
+2006-05-28 Jon A. Cruz <jon@joncruz.org>
+
+ * src/layer-manager.cpp, src/layer-manager.h,
+ src/preferences-skeleton.h, src/ui/dialog/inkscape-preferences.cpp,
+ src/ui/dialog/inkscape-preferences.h,
+ src/widgets/layer-selector.cpp, src/dialogs/layers-panel.cpp:
+
+ Finished option to turn on or off deslecting when switching layers.
+ Fixes RFE #1495701.
+
+2006-05-28 Jon A. Cruz <jon@joncruz.org>
+
+ * src/dialogs/layers-panel.h, src/dialogs/layers-panel.cpp:
+
+ Changed clicking on visibility and locked toggles to not switch
+ selected layer.
+ Fixes bug #1495856.
+
+2006-05-28 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/sp-conn-end-pair.cpp: Detach connectors from empty groups
+ before trying to route connectors to them. This is required
+ since empty groups have no physical position. Fixes bug #1448811.
+
+2006-05-27 Kees Cook <kees@outflux.net>
+
+ * src/extension/implementation/script.cpp: allow output extension
+ parameters to be prompted and used, closes bug #1495310.
+
+2006-05-26 MenTaLguY <mental@rydia.net>
+
+ * src/dialogs/layers-panel.h, src/dialogs/layers-panel.cpp:
+
+ make button labels translatable, and use HButtonBox instead of HBox for
+ better appearance
+
+2006-05-26 Jon A. Cruz <jon@joncruz.org>
+
+ * src/layer-manager.cpp, src/layer-manager.h,
+ src/dialogs/layer-properties.cpp, src/dialogs/layers-panel.cpp:
+
+ Prevent layer name duplication.
+ Fixes bug #1115407.
+
+2006-05-26 Jon A. Cruz <jon@joncruz.org>
+
+ * src/widgets/desktop-widget.cpp:
+
+ Fixed resize handle in corner of main UI.
+ Fixes bug #1493995.
+
+2006-05-26 Jon A. Cruz <jon@joncruz.org>
+
+ * src/layer-manager.cpp, src/layer-manager.h,
+ src/widgets/layer-selector.cpp:
+
+ Cleaned up propagation of status changes.
+ Fixes bug #1495333.
+
+2006-05-26 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/path-prefix.h: Add missing CREATE_* directory locations
+ for building an OS X application bundle. Fixes bug #1495284.
+
+2006-05-25 Bryce Harrington <bryce@bryceharrington.org>
+
+ * src/inkscape.cpp: i18n on error messages (fix for bug 1490928)
+
+2006-05-23 Jon A. Cruz <jon@joncruz.org>
+
+ * src/dialogs/layers-panel.cpp, src/dialogs/swatches.cpp,
+ src/dialogs/swatches.h, src/preferences-skeleton.h,
+ src/ui/previewfillable.h, src/ui/previewholder.cpp,
+ src/ui/previewholder.h, src/ui/widget/panel.cpp,
+ src/ui/widget/panel.h, src/verbs.cpp,
+ src/widgets/desktop-widget.cpp:
+ Refactored panels.
+ Fixes RFE #1453153. Fixes RFE #1453152.
+
+
+2006-05-23 MenTaLguY <mental@rydia.net>
+
+ * src/extension/internal/ps.cpp:
+
+ move %%EOF to end of output document
+
+2006-05-22 Jon A. Cruz <jon@joncruz.org>
+
+ * src/dialogs/swatches.cpp, src/ui/widget/panel.cpp,
+ src/ui/widget/panel.h:
+ Removed panel menu unless requested. Fixes bug #1492597.
+
+2006-05-22 MenTaLguY <mental@rydia.net>
+
+ * src/extension/internal/svg.cpp:
+
+ replace EXTREMELY inefficient (O(n^2), I think?) stacked C string
+ concatenations with appends to a std::vector, which is amortized O(1)
+
+2006-05-21 Marco Scholten <mscholtn@xs4all.nl>
+
+ * src/ui/dialog/inkscape-preferences.cpp,
+ src/ui/dialog/inkscape-preferences.h:
+ Added 'Show close button on dialogs' option.
+
+2006-05-21 MenTaLguY <mental@rydia.net>
+
+ * src/ui/view/view-widget.cpp:
+
+ request collection pass after destruction of a view widget
+
+2006-05-21 MenTaLguY <mental@rydia.net>
+
+ * src/gc-core.h, src/gc.cpp:
+
+ add GC::request_early_collection() to force a collection from the idle
+ loop at opportune times
+
+ * src/dialogs/filedialog.cpp:
+
+ call GC::request_early_collection() after switching preview images
+
+2006-05-21 Jon A. Cruz <jon@joncruz.org>
+
+ * src/layer-manager.cpp, src/layer-manager.h,
+ src/dialogs/layers-panel.cpp, src/dialogs/layers-panel.h:
+ Adding notification when managed layers change.
+
+2006-05-21 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/extension/internal/pdf.cpp: Compilation fix. For versions
+ of glib older that 2.9.0, use g_date_set_time() instead of
+ g_date_set_time_t().
+
+2006-05-20 MenTaLguY <mental@rydia.net>
+
+ * src/extensin/internal/ps.cpp:
+
+ add %%EOF trailer for DSC-compliance
+
+2006-05-20 Colin Marquardt <colin@marquardt-home.de>
+
+ * share/extensions/lindenmayer.inx,
+ share/extensions/kochify_load.inx,
+ share/extensions/kochify.inx:
+ Rename slightly, also makes for easier translation.
+
+2006-05-20 Jon A. Cruz <jon@joncruz.org>
+
+ * src/widgets/icon.h, src/widgets/icon.cpp, src/dialogs/layers-panel.cpp:
+ Changled dialog from checkboxes to icons for visible and locked.
+
+2006-05-20 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/libnrtype/FontInstance.cpp: patch from David Turner of the
+ FreeType Project. Fixes a compilation problem and a possible
+ segmentation fault.
+
+2006-05-19 Jon A. Cruz <jon@joncruz.org>
+ * src/preferences-skeleton.h, src/dialogs/layers-panel.h,
+ src/dialogs/layers-panel.cpp:
+ Selection and event handling cleanup. Added deeper display.
+
+2006-05-18 Jon A. Cruz <jon@joncruz.org>
+ * src/layer-manager.cpp, src/dialogs/layers-panel.h,
+ src/dialogs/layers-panel.cpp:
+ Next round of layer dialog updates.
+
+2006-05-17 Kees Cook <kees@outflux.net>
+ * src/dialogs/rdf.cpp: corrected localization on array, added comments.
+ * src/ui/widget/licensor.cpp: Localized the license name.
+ * configure.ac: added comment about why sigc++ was upgraded
+
+2006-05-17 Jon A. Cruz <jon@joncruz.org>
+ * src/dialogs/layers-panel.cpp:
+ Flipped top/bottom in layers UI to reflect visible stacking.
+
+2006-05-16 verbalshadow <verbalshadow@gmail.com>
+
+ * src/desktop-style.h, src/desktop-style.cpp:
+ Fixes calligraphy tool so drawing now uses the the correct opacity.
+
+2006-05-17 Jon A. Cruz <jon@joncruz.org>
+ * src/dialogs/layers-panel.cpp, src/dialogs/layers-panel.h:
+ Switched icons to stock generic.
+
+2006-05-17 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/dialogs/layers-panel.cpp: Compile fix from Mathieu Dimanche.
+
+2006-05-16 Jon A. Cruz <jon@joncruz.org>
+
+ * src/document-subset.cpp:
+ Corrected ordering of children in subset.
+
+2006-05-15 Jon A. Cruz <jon@joncruz.org>
+ * src/Makefile_insert, src/desktop.cpp, src/desktop.h,
+ src/layer-manager.cpp, src/menus-skeleton.h, src/verbs.cpp,
+ src/verbs.h, src/dialogs/layers-panel.cpp,
+ src/dialogs/layers-panel.h, src/dialogs/Makefile_insert:
+ Base implementation of a layers dialog.
+
+2006-05-14 Colin Marquardt <colin@marquardt-home.de>
+
+ * src/ui/dialog/inkscape-preferences.cpp (initPageTools):
+ Typofix ("conector").
+
+2006-05-14 Jon A. Cruz <jon@joncruz.org>
+
+ * src/document-subset.cpp, src/layer-manager.h, src/layer-manager.cpp:
+ Corrected base structure and avoiding infinite loop.
+
+2006-05-14 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/widgets/toolbox.cpp: Slightly increase size of the
+ connector toolbar buttons to match button sizes on other
+ toolbars.
+
+2006-05-13 verbalshadow <verbalshadow@gmail.com>
+
+ * src/dyna-draw-context.cpp, src/desktop-style.cpp,
+ src/desktop-style.h:
+
+ Calligraphy tool now draws in the last used color or the
+ tool style depending on the Preference setting.
+
+2006-05-11 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/selection-chemistry.cpp, src/sp-conn-end-pair.cpp:
+
+ When moving/transforming connectors, only detach connectors
+ from objects that are not part of the selection. Previously,
+ connectors moved as part of a selection would be detached from
+ all objects. This has been requested several times via email.
+ The change also fixes bug #1383806.
+
+ * src/ui/dialog/inkscape-preferences.cpp,
+ src/ui/dialog/inkscape-preferences.h, src/connector-context.cpp:
+
+ Add a preferences setting to the connector tool for setting
+ whether or not connectors attach to text objects. This change
+ addresses feature request #1434292.
+
+2006-05-09 Carl Hetherington <inkscape@carlh.net>
+
+ * src/nodepath.cpp: fix silly bug with snapping node edits.
+
+ * src/snapper.cpp, src/snapper.h, src/sp-namedview.cpp:
+ re-enable link between grid visibility and grid snap.
+
+2006-05-08 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * conn-avoid-ref.cpp: Fix a crashbug that could occur in files
+ containing connectors if they were loaded from the file chooser
+ or from the recent file list. Fixes bug #1458820.
+
+2006-05-08 MenTaLguY <mental@rydia.net>
+
+ * src/display/curve.cpp:
+
+ always make local copy of path data so that we have control over memory
+ policy
+
+2006-05-08 MenTaLguY <mental@rydia.net>
+
+ * src/display/curve.h, src/display/curve.cpp, src/dropper-context.cpp:
+
+ get rid of sp_curve_new_from_static_bpath() in a bid to simplify curve
+ memory management
+
+2006-05-08 MenTaLguY <mental@rydia.net>
+
+ * src/display/canvas-bpath.cpp, src/display/curve.cpp, src/display/curve.h,
+ src/display/nr-arena-shape.cpp, src/draw-context.cpp,
+ src/extension/internal/odf.cpp, src/extension/internal/pov-out.cpp,
+ src/nodepath.cpp, src/object-snapper.cpp, src/path-chemistry.cpp,
+ src/sp-flowregion.cpp, src/splivarot.cpp, src/sp-offset.cpp,
+ src/sp-path.cpp, src/sp-shape.cpp, src/sp-spiral.cpp, src/sp-star.cpp,
+ src/sp-use-reference.cpp:
+
+ eliminate direct accesses to SPCurve::bpath
+
+2006-05-08 MenTaLguY <mental@rydia.net>
+
+ * src/streams-zlib.cpp, src/streams-jar.cpp, src/splivarot.cpp,
+ src/extension/internal/bluredge.cpp:
+
+ use std::vector rather than dynamically-sized automatic arrays,
+ plus cleanups and minor fixes, and dead code removal
+
+2006-05-08 MenTaLguY <mental@rydia.net>
+
+ * src/debug/demangle.cpp, src/debug/demangle.h, src/sp-object.cpp,
+ src/gc-anchored.cpp, src/debug/Makefile_insert:
+
+ use c++filt for symbol demangling if available
+
+2006-05-08 MenTaLguY <mental@rydia.net>
+
+ * src/xml/repr-util.cpp:
+
+ comments explaining namespace mapping for the broken sodipodi namespace
+
+2006-05-08 Carl Hetherington <inkscape@carlh.net>
+
+ * src/seltrans.cpp, src/snap.cpp, src/snap.h: fix ctrl-scaling
+ when there is no snap. More snapping cleanups.
+
+2006-05-07 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * knot.h, knot.cpp, connector-context.cpp:
+ Fix glib-gobject-warnings for knots in the connector tool.
+
+2006-05-07 Jon A. Cruz <jon@joncruz.org>
+
+ * src/document-subset.cpp:
+ Corrected two bugs, with the minor one hiding the more severe.
+
+2006-05-06 MenTaLguY <mental@rydia.net>
+
+ * src/xml/repr-util.cpp, src/xml/repr.h:
+
+ add fixup for incorrect sodipodi namespace
+
+2006-05-06 MenTaLguY <mental@rydia.net>
+
+ * doc/NewAppArchitecture/01-title.svg,
+ doc/NewAppArchitecture/04-current-main.svg,
+ doc/NewAppArchitecture/05-current-objects.svg,
+ doc/NewAppArchitecture/06-current-desktop-view.svg,
+ doc/NewAppArchitecture/07-current-problems.svg,
+ doc/NewAppArchitecture/08-inkscape-gtkmm.svg
+ doc/NewAppArchitecture/09-future-capabilities.svg,
+ doc/NewAppArchitecture/10-future-main.svg,
+ doc/NewAppArchitecture/11-future-ink-app.svg,
+ doc/NewAppArchitecture/12-future-run-modes.svg,
+ doc/NewAppArchitecture/13-future-ink-app-editor.svg,
+ doc/NewAppArchitecture/14-evolving.svg,
+ share/examples/art-nouveau-P3.svg,
+ share/examples/eastern-motive-P4G.svg,
+ share/examples/i18n.svg,
+ share/examples/markers.svg,
+ share/examples/tesselation-P3.svg,
+ share/examples/text-on-path.svg,
+ share/icons/David_icons.svg,
+ share/icons/icons.svg,
+ share/icons/legacy_icons.svg,
+ share/screens/about.svg,
+ share/templates/business_card_85x54mm.svg,
+ share/templates/default.cs.svg,
+ share/templates/default.lt.svg,
+ share/templates/default.pl.svg,
+ share/tutorials/gpl-2.svg,
+ share/tutorials/tutorial-advanced.es.svg,
+ share/tutorials/tutorial-advanced.fr.svg,
+ share/tutorials/tutorial-advanced.ja.svg,
+ share/tutorials/tutorial-advanced.sl.svg,
+ share/tutorials/tutorial-advanced.svg,
+ share/tutorials/tutorial-basic.ca.svg,
+ share/tutorials/tutorial-basic.de.svg,
+ share/tutorials/tutorial-basic.es.svg,
+ share/tutorials/tutorial-basic.fr.svg,
+ share/tutorials/tutorial-basic.ja.svg,
+ share/tutorials/tutorial-basic.nn.svg,
+ share/tutorials/tutorial-basic.sl.svg,
+ share/tutorials/tutorial-basic.svg,
+ share/tutorials/tutorial-calligraphy.es.svg,
+ share/tutorials/tutorial-calligraphy.fr.svg,
+ share/tutorials/tutorial-calligraphy.sl.svg,
+ share/tutorials/tutorial-calligraphy.svg,
+ share/tutorials/tutorial-elements.es.svg,
+ share/tutorials/tutorial-elements.fr.svg,
+ share/tutorials/tutorial-elements.sl.svg,
+ share/tutorials/tutorial-elements.svg,
+ share/tutorials/tutorial-shapes.ca.svg,
+ share/tutorials/tutorial-shapes.es.svg,
+ share/tutorials/tutorial-shapes.fr.svg,
+ share/tutorials/tutorial-shapes.ja.svg,
+ share/tutorials/tutorial-shapes.sl.svg,
+ share/tutorials/tutorial-shapes.svg,
+ share/tutorials/tutorial-tips.es.svg,
+ share/tutorials/tutorial-tips.fr.svg,
+ share/tutorials/tutorial-tips.sl.svg,
+ share/tutorials/tutorial-tips.svg,
+ share/tutorials/tutorial-tracing.de.svg,
+ share/tutorials/tutorial-tracing.es.svg,
+ share/tutorials/tutorial-tracing.fr.svg,
+ share/tutorials/tutorial-tracing.sl.svg,
+ share/tutorials/tutorial-tracing.svg,
+ src/extension/dxf2svg/dxf2svg.cpp,
+ src/menus-skeleton.h,
+ src/preferences-skeleton.h:
+
+ get the CORRECT sodipodi namespace in there
+
+2006-05-06 MenTaLguY <mental@rydia.net>
+
+ * src/xml/repr-util.cpp:
+
+ fix for #1483198 ("infectious namespaces")
+
+2006-05-01 Jon A. Cruz <jon@joncruz.org>
+
+ * src/verbs.h, src/verbs.cpp, src/verbs-test.h:
+ Fixed problem with std::map use making last verb inaccessible.
+
+2006-05-05 Carl Hetherington <inkscape@carlh.net>
+
+ * src/draw-context.cpp, src/line-snapper.h, src/snap.cpp,
+ src/snapper.cpp, src/line-snapper.cpp, src/snap.h,
+ src/context-fns.cpp, src/object-snapper.h, src/seltrans.cpp,
+ src/nodepath.cpp, src/snapper.h, src/object-snapper.cpp: various
+ snapping fixes and cleanups.
+
+06-05-04 Carl Hetherington <inkscape@carlh.net>
+
+ * src/guide-snapper.h, src/line-snapper.h, src/snap.cpp,
+ src/snap.h, src/object-snapper.h, src/sp-namedview.cpp,
+ src/grid-snapper.h: clean up knutux's fix for the snapper crash.
+
+2006-05-03 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * po/pt_BR.po: Fix some "Unmatched closing </b>" warnings.
+
+ * src/jabber_whiteboard/pedrodom.cpp: Compile fix for Mac OS.
+
+2006-05-03 Carl Hetherington <inkscape@carlh.net>
+
+ * src/arc-context.cpp, src/connector-context.cpp,
+ src/context-fns.cpp, src/desktop.cpp, src/draw-context.cpp,
+ src/nodepath.cpp, src/object-edit.cpp, src/pencil-context.cpp,
+ src/rect-context.cpp, src/selection-chemistry.cpp,
+ src/seltrans.cpp, src/snap.cpp, src/snap.h, src/sp-namedview.cpp,
+ src/sp-namedview.h, src/spiral-context.cpp, src/star-context.cpp,
+ src/ui/dialog/document-properties.cpp: Give SPNamedView a
+ SnapManager instance and use it for all management of snapping
+ settings.
+
+ * src/snap.cpp, src/snap.h: remove the unused namedview_dim_snap_list()
+
+2006-05-01 Jon A. Cruz <jon@joncruz.org>
+
+ * src/Makefile.am, src/Makefile_insert, src/attributes-test.h,
+ src/color-profile-test.h, src/mod360-test.cpp, src/mod360-test.h,
+ src/round-test.cpp, src/round-test.h, src/sp-gradient-test.cpp,
+ src/sp-gradient-test.h, src/sp-style-elem-test.cpp,
+ src/sp-style-elem-test.h, src/style-test.h, src/test-helpers.h:
+ Replaced four more tests with CxxTest versions.
+
+2006-05-01 MenTaLguY <mental@rydia.net>
+
+ * src/display/nr-arena-item.cpp:
+
+ use GC allocator for bitmap cache and transform
+
+2006-05-01 Marco Scholten <mscholtn@xs4all.nl>
+
+ * src/dialogs/inkscape-preferences.cpp: Moved 'compass like
+ display of angles' from 'windows' to 'steps'.
+
+2006-04-30 MenTaLguY <mental@rydia.net>
+
+ * src/libnr/nr-object.cpp:
+
+ log finalization of NRObjects
+
+2006-04-29 Jon Phillips <jon@rejon.org>
+
+ * src/dialogs/rdf.cpp: Updated cc licenses to 2.5 by default.
+
+ * src/ui/dialog/document-metadata.cpp: Made metadata window
+ resizable so that one can see the licenses and enter long entries.
+
+2006-04-29 MenTaLguY <mental@rydia.net>
+
+ * src/display/nr-arena-group.cpp, src/display/nr-arena-item.cpp,
+ src/display/nr-arena-item.h, src/display/nr-arena-shape.cpp:
+
+ rationalize function names and remove spurious soft_ptr
+
+2006-04-29 MenTaLguY <mental@rydia.net>
+
+ * src/document.cpp:
+
+ use proper unref function on SPRoot to avoid appearance of leak
+
+2006-04-29 MenTaLguY <mental@rydia.net>
+
+ * src/gc-anchored.cpp, src/xml/simple-node.cpp, src/sp-object.cpp:
+
+ switch everyone to simpler debug event API
+
+2006-04-29 MenTaLguY <mental@rydia.net>
+
+ * src/Makefile_insert, src/gc-finalized.cpp, src/gc-finalized.h:
+
+ add finalizer logging
+
+2006-04-29 MenTaLguY <mental@rydia.net>
+
+ * src/debug/simple-event.h: simplify the SimpleEvent API more
+
+2006-04-29 MenTaLguY <mental@rydia.net>
+
+ * src/debug/simple-event.h: make Debug::SimpleEvent more convenient
+
+ * src/debug/event.h, src/debug/logger.cpp: add FINALIZERS category
+
+2006-04-29 MenTaLguY <mental@rydia.net>
+
+ * src/debug/logger.cpp:
+
+ finish interrupted refactoring of log filter configuration
+
+2006-04-29 MenTaLguY <mental@rydia.net>
+
+ * src/doc/Makefile.am, src/doc/refcounting.txt:
+
+ some developer documentation about refcounting
+
+2006-04-29 MenTaLguY <mental@rydia.net>
+
+ * src/ui/view/view.cpp:
+
+ Wait a minute -- UI::View::View and SPDocument are both managed
+ by the collector -- the view doesn't need to ref the document!
+
+2006-04-29 MenTaLguY <mental@rydia.net>
+
+ * src/ui/view/view.cpp: add missing unref
+
+2006-04-29 MenTaLguY <mental@rydia.net>
+
+ * src/gc-anchored.cpp, src/gc-anchored.h:
+
+ added refcount logging to GC::Anchored
+
+ * src/util/Makefile_insert, src/util/format.h:
+
+ shared string printf
+
+2006-04-28 MenTaLguY <mental@rydia.net>
+
+ * src/sp-object.cpp: make refcount logging a little more useful
+ by including the relevent class name
+
+2006-04-28 Jon A. Cruz <jon@joncruz.org>
+
+ * src/Makefile_insert, src/Makefile.am, src/dir-util-test.h,
+ src/dir-util-test.cpp, src/extract-uri-test.h,
+ src/extract-uri-test.cpp:
+ Replaced two tests with CxxTest versions.
+
+2006-04-28 Jon A. Cruz <jon@joncruz.org>
+
+ * src/Makefile_insert, src/MultiPrinter.h, src/verbs.h,
+ src/verbs-test.h:
+ Adding unit test for verbs.
+
+2006-04-27 verbalshadow <verbalshadow@gmail.com>
+
+ * src/io/resource.h, src/io/resource.cpp,
+ src/dialogs/swatches.cpp, src/helper/stock-items.cpp:
+ Added CREATE v0.1 support for gradients/swatches/patterns
+ Support for Linux & Win32. Mac support waiting final support
+ Directory info.
+
+2006-04-26 Jon A. Cruz <jon@joncruz.org>
+
+ * src/Makefile.am, src/MultiPrinter.h, src/PylogFormatter.h,
+ src/TRPIFormatter.h, src/selfname.tpl, src/libnr/Makefile_insert,
+ src/svg/Makefile_insert, src/xml/Makefile_insert:
+ Adding multiple test output formats.
+
+2006-04-23 verbalshadow <verbalshadow@gmail.com>
+
+ * path-prefix.h:
+ Added beginnings of CREATE support in path-prefix.h
+
+2006-04-23 verbalshadow <verbalshadow@gmail.com>
+
+ * src/object-ui.cpp, src/object-ui.h:
+ moved to src/ui/context-menu.cpp, src/ui/context-menu.h
+ to make it easier to find
+
+2006-04-20 MenTaLguY <mental@rydia.net>
+
+ * src/dyna-draw-context.cpp, src/dyna-draw-context.h:
+ remove unused timer code
+
+2006-04-19 Andrius R. <knutux@gmail.com>
+ * src\display\nr-arena-item.cpp, src\display\canvas-arena.cpp,
+ src\display\nr-arena-shape.cpp, src\display\sp-canvas.h,
+ src\display\nr-arena.cpp, src\display\nr-arena-shape.h,
+ src\display\nr-arena-glyphs.cpp, src\display\nr-gradient-gpl.cpp,
+ src\display\sp-canvas.cpp, src\display\sp-ctrlline.cpp,
+ src\livarot\ShapeSweep.cpp, src\livarot\Shape.h, src\livarot\Shape.cpp,
+ src\livarot\Path.h, src\livarot\PathConversion.cpp,
+ src\livarot\ShapeMisc.cpp, src\livarot\Path.cpp, src\libnr\nr-pixblock.h,
+ src\libnr\nr-pixblock.cpp
+
+ Rendering optimisation, which gives best results for zoomed in drawings
+ with complex (multi-node) paths. Optimisation focus - eliminating cubicTo
+ and LineTo nodes outside of visible area, so no unneeded calculations is
+ needed and less memory is consumed (this avoids crashes which were
+ occurring previously if zooming into a complex drawing)
+
+2006-04-18 njh <njh@njhurst.com>
+ * share/extensions/measure.inx, share/extensions/measure.py, share/extensions/Makefile.am
+
+ Added the measure extension that marks lengths onto paths.
+
+2006-04-17 MenTaLguY <mental@rydia.net>
+
+ * src/application/editor.cpp, src/arc-context.cpp, src/conn-avoid-ref.cpp,
+ src/connector-context.cpp, src/desktop-events.cpp, src/desktop-handles.h,
+ src/dialogs/clonetiler.cpp, src/dialogs/export.cpp,
+ src/dialogs/fill-style.cpp, src/dialogs/find.cpp,
+ src/dialogs/iconpreview.cpp, src/dialogs/item-properties.cpp,
+ src/dialogs/layer-properties.cpp, src/dialogs/object-properties.cpp,
+ src/dialogs/stroke-style.cpp, src/dialogs/swatches.cpp,
+ src/dialogs/text-edit.cpp, src/dialogs/tiledialog.cpp,
+ src/dialogs/xml-tree.cpp, src/draw-anchor.cpp, src/draw-context.cpp,
+ src/dropper-context.cpp, src/dyna-draw-context.cpp,
+ src/event-context.cpp, src/extension/implementation/script.cpp,
+ src/file.cpp, src/gradient-context.cpp, src/gradient-drag.cpp,
+ src/helper/stock-items.cpp, src/inkscape.cpp, src/interface.cpp,
+ src/jabber_whiteboard/callbacks.cpp,
+ src/jabber_whiteboard/chat-handler.cpp,
+ src/jabber_whiteboard/message-processors.cpp,
+ src/jabber_whiteboard/message-queue.cpp,
+ src/jabber_whiteboard/session-manager.cpp, src/knot.cpp,
+ src/node-context.cpp, src/nodepath.cpp, src/object-ui.cpp,
+ src/path-chemistry.cpp, src/pencil-context.cpp, src/pen-context.cpp,
+ src/rect-context.cpp, src/rubberband.cpp, src/satisfied-guide-cns.cpp,
+ src/selcue.cpp, src/select-context.cpp, src/selection-chemistry.cpp,
+ src/selection.cpp, src/seltrans.cpp, src/sp-flowtext.cpp,
+ src/spiral-context.cpp, src/splivarot.cpp, src/sp-namedview.cpp,
+ src/sp-text.cpp, src/star-context.cpp, src/text-chemistry.cpp,
+ src/text-context.cpp, src/tools-switch.cpp,
+ src/trace/potrace/inkscape-potrace.cpp, src/trace/trace.cpp,
+ src/ui/dialog/align-and-distribute.cpp, src/ui/dialog/dialog.cpp,
+ src/ui/dialog/document-metadata.cpp,
+ src/ui/dialog/document-properties.cpp,
+ src/ui/dialog/inkscape-preferences.cpp,
+ src/ui/dialog/session-player.cpp, src/ui/dialog/transformation.cpp,
+ src/ui/widget/color-picker.cpp, src/ui/widget/page-sizer.cpp,
+ src/ui/widget/registered-widget.cpp, src/ui/widget/ruler.cpp,
+ src/ui/widget/selected-style.cpp, src/ui/widget/tolerance-slider.cpp,
+ src/verbs.cpp, src/widgets/gradient-toolbar.cpp,
+ src/widgets/layer-selector.cpp, src/widgets/select-toolbar.cpp,
+ src/widgets/sp-xmlview-content.cpp, src/widgets/toolbox.cpp:
+
+ Get rid of the SP_DT_* macros which do nothing more than provide
+ additional, confusing, names for other functions. If shorter names
+ are desired, the actual functions should be renamed -- or better, made
+ into member functions.
+
+2006-04-09 Jon A. Cruz <jon@joncruz.org>
+
+ * share/icons/icons.svg: Fixed jumping eye (layer visibility).
+
+2006-04-07 Jon A. Cruz <jon@joncruz.org>
+
+ * po/eu.po: Fix a "Unmatched closing </b>" warnings.
+
+2006-04-07 Jon A. Cruz <jon@joncruz.org>
+
+ * src/widgets/paint-selector.cpp, src/widgets/gradient-toolbar.cpp,
+ src/widgets/select-toolbar.cpp, src/widgets/toolbox.cpp,
+ src/dialogs/clonetiler.cpp, src/dialogs/object-properties.cpp:
+
+ Shrunk a few icon sizes.
+
+2006-04-07 Jon A. Cruz <jon@joncruz.org>
+
+ * src/widgets/desktop-widget.cpp, src/widgets/icon.cpp,
+ src/widgets/layer-selector.cpp:
+
+ Added implementation of smaller icon size.
+
+2006-04-06 Jon A. Cruz <jon@joncruz.org>
+
+ * src/color-profile.cpp, src/sp-image.cpp:
+
+ Simple debugging #ifdefs added.
+
+2006-04-06 Jon A. Cruz <jon@joncruz.org>
+
+ * src/interface.cpp, src/dialogs/clonetiler.cpp,
+ src/dialogs/object-properties.cpp, src/dialogs/stroke-style.cpp,
+ src/dialogs/text-edit.cpp, src/dialogs/tiledialog.cpp,
+ src/dialogs/xml-tree.cpp, src/ui/dialog/align-and-distribute.cpp,
+ src/ui/widget/labelled.cpp, src/widgets/button.cpp,
+ src/widgets/button.h, src/widgets/desktop-widget.cpp,
+ src/widgets/gradient-toolbar.cpp, src/widgets/icon.cpp,
+ src/widgets/icon.h, src/widgets/layer-selector.cpp,
+ src/widgets/paint-selector.cpp, src/widgets/select-toolbar.cpp,
+ src/widgets/toolbox.cpp, src/widgets/toolbox.h, src/icon-size.h:
+
+ Decoupling from direct use of GtkIconSize to allow for smaller
+ custom ones.
+
+2006-04-06 Jon A. Cruz <jon@joncruz.org>
+
+ * src/Makefile_insert, src/Makefile.am, src/color-profile.cpp
+ src/color-profile.h, src/color-profile-fns.h,
+ src/color-profile-test.h, src/sp-image.cpp:
+
+ Adding rendering-intent to <color-profile>.
+
+2006-04-05 MenTaLguY <mental@rydia.net>
+
+ * configure.ac, share/keyboards/.cvsignore, share/keyboards/Makefile.am,
+ share/keyboards/README, share/keys/.cvsignore, share/keys/Makefile.am,
+ share/keys/Makefile.in, share/Makefile.am:
+
+ share/keyboards -> share/keys
+
+ * share/keys/Makefile.am, share/keys/default.xml, src/Makefile_insert,
+ src/shortcuts.cpp, src/shortcuts-default-xml.cpp:
+
+ first shot at configurable keymaps
+
+2006-04-05 MenTaLguY <mental@rydia.net>
+
+ * src/io/Makefile_insert, src/io/resource.cpp, src/io/resource.h:
+
+ introduce uniform resource path API to replace copy-and-pasted hacks
+
+2006-04-05 Jon A. Cruz <jon@joncruz.org>
+
+ * src/svg/svg-color-test.h, src/svg/svg-color.cpp:
+
+ Tuned icc-color() parsing.
+
+2006-04-02 Jon A. Cruz <jon@joncruz.org>
+
+ * src/color-profile.h, src/color-profile.cpp,
+ src/color-profile-fns.h, src/sp-image.h, src/sp-image.cpp:
+
+ Initial support of color-profile on <image> elements.
+
+2006-04-02 Jon A. Cruz <jon@joncruz.org>
+
+ * src/color-profile.h, src/color-profile.cpp,
+ src/color-profile-fns.h, src/Makefile_insert, src/attributes.cpp,
+ src/attributes.h, src/sp-object-repr.cpp:
+
+ Adding support for <color-profile> element.
+
+2006-04-02 Jon A. Cruz <jon@joncruz.org>
+
+ * src/knot.h: Fixed warning messages.
+
+2006-04-01 Jon A. Cruz <jon@joncruz.org>
+
+ * src/ui/widget/selected-style.cpp:
+
+ Safety check for null pointer.
+
+2006-04-01 Jon A. Cruz <jon@joncruz.org>
+
+ * configure.ac, src/interface.cpp, src/dialogs/swatches.cpp:
+
+ Introducing optional LittleCms use.
+
+2006-03-31 MenTaLguY <mental@rydia.net>
+
+ * src/dyna-draw-context.cpp, src/dyna-draw-context.cpp:
+
+ merge ::dragging and ::dynahand
+
+2006-03-31 MenTaLguY <mental@rydia.net>
+
+ * src/dyna-draw-context.h: add documentation
+
+2006-03-29 Andrius R. <knutux@gmail.com>
+
+ * src/enums.h, src/selection-chemistry.cpp,
+ src/selection.h, src/selection.cpp,
+ src/ui/dialog/inkscape-preferences.cpp,
+ src/ui/dialog/inkscape-preferences.h:
+
+ patch #1450307 - option for select all to work in layer with it's sub-layers
+
+2006-03-29 Andrius R. <knutux@gmail.com>
+
+ * po/lt.po: Translated and added new language - Lithuanian.
+
+2006-03-28 Jon A. Cruz <jon@joncruz.org>
+
+ * src/interface.cpp, src/dialogs/swatches.cpp:
+
+ Fixing name of temporary non-standard tag attributes.
+
+2006-03-28 MenTaLguY <mental@rydia.net>
+
+ * src/layer-manager.cpp, src/layer-manager.h: draft of layer manager
+
+2006-03-28 Jon A. Cruz <jon@joncruz.org>
+
+ * src/interface.cpp, src/dialogs/eek-color-def.h,
+ src/dialogs/eek-preview.h, src/dialogs/eek-preview.cpp,
+ src/dialogs/swatches.h, src/dialogs/swatches.cpp:
+
+ Changed objects to only get liked to "linkable" colors.
+
+2006-03-28 Jon A. Cruz <jon@joncruz.org>
+
+ * src/interface.cpp, src/dialogs/swatches.cpp:
+
+ Objects now change when linked colors change.
+
+2006-03-28 Jon A. Cruz <jon@joncruz.org>
+
+ * src/dialogs/eek-color-def.h, src/dialogs/eek-color-def.cpp,
+ src/dialogs/eek-preview.h, src/dialogs/eek-preview.cpp,
+ src/dialogs/swatches.h, src/dialogs/swatches.cpp:
+
+ Experimenting with linked colors.
+
+2006-03-26 Aaron C. Spike <aaron@ekips.org>
+
+ * inkscape.pod, src/main.cpp:
+
+ Added --export-area-canvas (-C). Area specifying options
+ (--export-area, --export-area-canvas and --export-area-drawing)
+ can now be used in combination with --export-id.
+
+2006-03-23 Jon A. Cruz <jon@joncruz.org>
+
+ * src/dialogs/eek-color-def.cpp, src/dialogs/eek-color-def.h,
+ src/dialogs/Makefile_insert, src/dialogs/swatches.h,
+ src/dialogs/swatches.cpp:
+
+ Bringing in new color class.
+
+2006-03-23 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * packaging/macosx/Resources/bin/inkscape: Fix a packaging
+ problem on Mac OSX where Inkscape wouldn't open if one of the
+ parent directories containing the app bundle contained a '#' in
+ its name. Fixes bug #1443072.
+
+2006-03-15 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * share/icons/Makefile.am: Update a makefile after the icon file
+ renaming.
+
+2005-03-14 MenTaLguY <mental@rydia.net>
+
+ * src/layer-fns.h, src/dialogs/layer-properties.cpp,
+ src/dialogs/layer-properties.h, src/layer-fns.cpp:
+
+ merged patch #1447043 from Andrius "knutux" R. to create sub-layers
+
+2006-03-14 MenTaLguY <mental@rydia.net>
+
+ * src/Makefile_insert, src/display/nr-arena-item.cpp,
+ src/display/nr-arena-item.cpp, src/gc-finalized.h, src/gc-managed.h,
+ src/gc-soft-ptr.h, src/selection.h, src/selection.cpp:
+
+ Replace GC::Managed<>::clearOnceInaccessible with GC::soft_ptr<>
+
+2006-03-14 MenTaLguY <mental@rydia.net>
+
+ * src/debug/event.h, src/debug/gc-heap.h, src/debug/heap.h,
+ src/debug/logger.cpp, src/debug/simple-event.h,
+ src/debug/sysv-heap.h, src/jabber_whiteboard/deserializer.cpp,
+ src/jabber_whiteboard/message-utilities.cpp,
+ src/jabber_whiteboard/message-utilities.h,
+ src/jabber_whiteboard/node-tracker-observer.h,
+ src/jabber_whiteboard/serializer.cpp,
+ src/jabber_whiteboard/serializer.h,
+ src/sp-object.cpp, src/util/share.cpp, src/util/share.h,
+ src/xml/attribute-record.h, src/xml/comment-node.h,
+ src/xml/composite-node-observer.cpp, src/xml/composite-node-observer.h,
+ src/xml/event.cpp, src/xml/event.h, src/xml/log-builder.cpp,
+ src/xml/log-builder.h, src/xml/node-observer.h, src/xml/repr-io.cpp,
+ src/xml/simple-node.cpp, src/xml/simple-node.h,
+ src/xml/simple-session.cpp, src/xml/simple-session.h,
+ src/xml/text-node.h:
+
+ shared_ptr -> ptr_shared
+
+2006-03-13 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/svg/svg-color.cpp (sp_svg_write_color): More readable colour
+ names when possible: e.g. `red', `#cfc'.
+
+2006-03-10 Jon A. Cruz <jon@joncruz.org>
+
+ * src/interface.cpp:
+
+ Shift-drop now sets stroke on target objects.
+
+2006-03-11 MenTaLguY <mental@rydia.net>
+
+ * src/sp-object.cpp: experiment to verify that we can safely release
+ before removing object from document tree
+
+2006-03-10 Jon A. Cruz <jon@joncruz.org>
+
+ * src/dialogs/swatches.cpp:
+
+ Changed color dragging to have a color preview.
+
+2006-03-09 Jon A. Cruz <jon@joncruz.org>
+
+ * src/interface.cpp:
+
+ Initial cut of color drag-n-drop to items on canvas.
+
+2006-03-09 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/path-chemistry.cpp (sp_selected_path_reverse):
+ Fix when multiple paths are selected.
+ Also fix a small memory leak.
+
+2006-03-06 MenTaLguY <mental@rydia.net>
+
+ * src/document-subset.h, src/document-subset.cpp:
+ add DocumentSubset::_clear
+
+2006-03-05 MenTaLguY <mental@rydia.net>
+
+ * src/document-subset.h, src/document-subset.cpp:
+ remove unneeded document parameter from constructor
+
+2006-03-05 MenTaLguY <mental@rydia.net>
+
+ * src/document-subset.cpp:
+
+ Wire up new SPObject signal to DocumentSubset, so order changes
+ will be reflected in the subset.
+
+2006-03-05 MenTaLguY <mental@rydia.net>
+
+ * src/sp-object.h, src/sp-object.cpp:
+
+ Add signal for notification of object position changes.
+
+2006-03-05 MenTaLguY <mental@rydia.net>
+
+ * src/Makefile_insert, src/document-subset.cpp, src/document-subset.h:
+
+ Add DocumentSubset as groundwork for layers.
+
+2006-03-04 Jon A. Cruz <jon@joncruz.org>
+ * src/ui/widget/selected-style.h, src/ui/widget/selected-style.cpp:
+
+ Style minibar now only accepts color drag-n-drop when not N/A.
+ Final tweak for completing RFE #1429027.
+
+2006-02-28 Jon A. Cruz <jon@joncruz.org>
+ * src/ui/widget/selected-style.h, src/ui/widget/selected-style.cpp:
+
+ Made the style minibar a target for color drag-n-drop.
+
+2006-03-01 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/conn-avoid-ref.cpp, src/libavoid/connector.h,
+ src/libavoid/shape.cpp, src/libavoid/graph.cpp, src/libavoid/shape.h,
+ src/libavoid/graph.h, src/libavoid/router.cpp, src/libavoid/router.h,
+ src/libavoid/connector.cpp, src/libavoid/debug.h:
+
+ Some speed improvements and interface cleanups to libavoid.
+
+2006-02-28 Jon A. Cruz <jon@joncruz.org>
+ * src/dialogs/swatches.cpp:
+
+ Fixed drag-n-drop out of color to match GTK+ standard.
+
+2006-02-27 Jon A. Cruz <jon@joncruz.org>
+ * src/dialogs/swatches.cpp, src/ui/previewfillable.h,
+ src/ui/previewholder.h, src/ui/previewholder.cpp:
+
+ Finished cleanup of embedded swatches when switching palettes.
+
+2006-02-26 Jon A. Cruz <jon@joncruz.org>
+ * src/dialogs/swatches.cpp, src/ui/previewholder.h,
+ src/ui/previewholder.cpp:
+
+ Changing embedded swatches resizing.
+
+2006-02-26 Jon A. Cruz <jon@joncruz.org>
+ * src/text-context.cpp:
+
+ Allow Private Use Area characters. Fixes bug #1439016.
+
+2006-02-18 Jon A. Cruz <jon@joncruz.org>
+ * src/dialogs/swatches.cpp, src/dialogs/iconpreview.cpp,
+ src/ui/widget/panel.cpp, src/ui/widget/panel.h:
+
+ Refactoring panel containment. Purged ugly 'X'.
+
+2006-02-18 Jon A. Cruz <jon@joncruz.org>
+ * src/widgets/desktop-widget.cpp, src/dialogs/swatches.cpp,
+ src/dialogs/swatches.h, src/ui/widget/panel.cpp,
+ src/ui/widget/panel.h, src/ui/previewholder.cpp,
+ src/ui/previewholder.h:
+
+ Adding spacer to get swatches scrollbar enough room to move.
+ Tuning up API for better embedding.
+
+2006-02-18 Jon A. Cruz <jon@joncruz.org>
+ * src/widgets/desktop-widget.cpp, src/dialogs/swatches.cpp,
+ src/dialogs/swatches.h, src/ui/previewholder.cpp,
+ src/ui/previewfillable.h, src/ui/previewholder.h:
+
+ Removed horizontal scroll bar from swatches when embedded.
+
+2006-02-15 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/document.cpp, src/document.h, src/sp-conn-end-pair.cpp,
+ src/connector-context.cpp, src/conn-avoid-ref.cpp:
+
+ Keep a seperate connector router for each document.
+
+ * src/libavoid/Makefile_insert, src/libavoid/connector.cpp,
+ src/libavoid/connector.h, src/libavoid/debug.h,
+ src/libavoid/geometry.cpp, src/libavoid/geometry.h,
+ src/libavoid/geomtypes.h, src/libavoid/graph.cpp,
+ src/libavoid/graph.h, src/libavoid/incremental.cpp,
+ src/libavoid/incremental.h, src/libavoid/libavoid.h,
+ src/libavoid/makepath.cpp, src/libavoid/makepath.h,
+ src/libavoid/polyutil.cpp, src/libavoid/polyutil.h,
+ src/libavoid/router.cpp, src/libavoid/router.h,
+ src/libavoid/shape.cpp, src/libavoid/shape.h,
+ src/libavoid/static.cpp, src/libavoid/static.h,
+ src/libavoid/timer.cpp, src/libavoid/timer.h,
+ src/libavoid/vertices.cpp, src/libavoid/vertices.h,
+ src/libavoid/visibility.cpp, src/libavoid/visibility.h:
+
+ Upstream changes to libavoid that allow multiple connector
+ router instances, as well a few other minor bugfixes.
+
+2006-02-14 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/display/sp-canvas.cpp, display/sp-canvas.h, connector-context.cpp:
+
+ Revert a previous change that generated enter events for canvas items
+ other than the current one when mouse buttons were depressed. These
+ events are now only generated in the connector context, where they are
+ required.
+
+2006-02-13 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/graphlayout/graphlayout.cpp, src/conn-avoid-ref.cpp,
+ src/conn-avoid-ref.h, src/libavoid/connector.cpp,
+ src/libavoid/connector.h:
+
+ Change the behaviour and naming of some connector querying code
+ after feedback from Tim Dwyer in implementing graph drawing
+ functionality.
+
+2006-02-11 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/sp-conn-end-pair.cpp, src/conn-avoid-ref.cpp:
+ Fix two bugs from my commit yesterday.
+
+2006-02-10 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/sp-conn-end-pair.cpp, src/sp-conn-end-pair.h,
+ src/conn-avoid-ref.cpp, src/conn-avoid-ref.h,
+ src/libavoid/connector.cpp, src/libavoid/connector.h,
+ src/libavoid/visibility.cpp:
+
+ Add some code to allow querying of items and connectors to find
+ out what is attached to them. This will allow graph layout
+ algorithms (currently being worked on by Tim Dwyer) to determine
+ a graph structure from the diagram.
+
+2006-02-07 MenTaLguY <mental@rydia.net>
+
+ * src/widgets/icon.cpp: get rid of icon prerender time messages
+
+2006-02-07 MenTaLguY <mental@rydia.net>
+
+ * src/debug/gc-heap.h, src/debug/logger.cpp, src/debug/sysv-heap.h,
+ src/jabber_whiteboard/deserializer.cpp, src/sp-object.cpp,
+ src/util/share.h, src/xml/simple-node.cpp:
+
+ share_static -> share_static_string
+
+2006-02-07 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/jabber_whiteboard/message-utilities.h,
+ src/jabber_whiteboard/serializer.cpp,
+ src/jabber_whiteboard/deserializer.cpp,
+ src/jabber_whiteboard/message-utilities.cpp,
+ src/ui/dialog/whiteboard-connect.cpp:
+
+ Some fixes to allow the codebase to compile with Inkboard support
+ after the recent Util::shared_ptr<> and Dialog::present() changes.
+
+2006-02-05 Marco Scholten <mscholtn@xs4all.nl>
+
+ * src/verbs.cpp: updated to make double clicking a tool button
+ open the new preferences dialog.
+ * src/ui/dialog/inkscape-preferences.cpp: updated to enable opening
+ the dialog on the correct page.
+ * src/ui/dialog/dialog.cpp: added virtual void present() so that
+ InkscapePreferences::present() will be called from
+ DialogManager::showDialog()
+
+2006-02-05 MenTaLguY <mental@rydia.net>
+
+ * src/debug/event.h, src/debug/gc-heap.h, src/debug/heap.h,
+ src/debug/logger.cpp, src/debug/simple-event.h, src/debug/sysv-heap.h,
+ src/jabber_whiteboard/deserializer.cpp,
+ src/jabber_whiteboard/message-utilities.cpp,
+ src/jabber_whiteboard/message-utilities.h,
+ src/jabber_whiteboard/node-tracker-observer.h,
+ src/jabber_whiteboard/node-utilities.cpp,
+ src/jabber_whiteboard/serializer.cpp,
+ src/jabber_whiteboard/serializer.h,
+ src/sp-object.cpp, src/util/Makefile_insert, src/util/share.cpp,
+ src/util/shared-c-string-ptr.cpp, src/util/shared-c-string-ptr.h,
+ src/util/share.h, src/xml/attribute-record.h, src/xml/comment-node.h,
+ src/xml/composite-node-observer.cpp, src/xml/composite-node-observer.h,
+ src/xml/event.cpp, src/xml/event.h, src/xml/log-builder.cpp,
+ src/xml/log-builder.h, src/xml/node-observer.h, src/xml/repr.cpp,
+ src/xml/repr-io.cpp, src/xml/simple-node.cpp, src/xml/simple-node.h,
+ src/xml/simple-session.cpp, src/xml/simple-session.h,
+ src/xml/text-node.h:
+
+ replace Util::SharedCStringPtr with the nicer and more general
+ Util::shared_ptr<>
+
+2006-02-03 Jon Phillips <jon@rejon.org>
+
+ * src/verbs.cpp: Added "..." to "Trace Bitmap" text. Yes, what a
+ simple and dumb thing to add for consistency.
+
+2006-01-24 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/libavoid/connector.cpp, src/libavoid/connector.h,
+ src/libavoid/shape.cpp, src/libavoid/graph.cpp,
+ src/libavoid/incremental.cpp, src/libavoid/incremental.h,
+ src/libavoid/static.cpp, src/libavoid/visibility.cpp,
+ src/libavoid/makepath.cpp:
+
+ Some minor upstream libavoid fixes.
+
+2006-01-23 Carl Hetherington <inkscape@carlh.net>
+
+ * src/selection.cpp: fix a typo in one of my previous commits.
+ Closes #1401357.
+
+ * src/xml/repr-io.cpp: catch failures in fopen of XML files.
+ Closes #1374551.
+
+2006-01-20 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/widgets/toolbox.cpp, src/widgets/desktop-widget.cpp,
+ src/conn-avoid-ref.cpp, src/conn-avoid-ref.h, src/sp-namedview.cpp,
+ src/sp-namedview.h, src/attributes.cpp, src/attributes.h,
+ src/attributes-test.cpp:
+
+ Added a "Spacing" control to the connector toolbar which allows
+ the user to adjust the amount of space left around avoided shapes
+ for the purpose of determining auto-routing connector paths.
+
+2006-01-17 Marco Scholten <mscholtn@xs4all.nl>
+
+ * /src/ui/dialog/inkscape-preferences.cpp:
+ Added style swatches,
+ Changed Gtk::Requisition Gtk::Widget::size_request() to
+ void Gtk::Widget::size_request(const Requisition& requisition)
+ * /src/ui/dialog/preferences-widget.cpp & .h:
+ Added DialogPage::set_tip()
+
+2006-01-17 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * packaging/osx-app.sh, packaging/macosx/Resources/etc/fonts/fonts.conf:
+ Use a modified fonts.conf file for Mac OS X that includes the
+ standard user font directory ~/Library/Fonts.
+
+2006-01-16 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/svg/Makefile_insert: Updated to reflect a previous header
+ file renaming.
+
+2006-01-12 Marco Scholten <mscholtn@xs4all.nl>
+
+ * /src/ui/dialog/inkscape-preferences.cpp & .h:
+ Converted preferences dialog to gtkmm
+ * src/ui/widget/preferences-widget.cpp & .h:
+ New files.
+ * src/verbs.cpp: updated to start new dialog.
+
+2006-01-11 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/sp-item-group.cpp, src/sp-path.cpp, src/sp-star.cpp,
+ src/extension/internal/svg.cpp, src/ui/widget/ruler.cpp:
+ Fix some compilation problems on Mac OS X after recent
+ includes cleanup.
+
+2006-01-05 Jon A. Cruz <jon@joncruz.org>
+
+ * src/widgets/desktop-widget.cpp:
+ Corrected resize behavior of canvas/swatches split.
+
+2006-01-06 Mathieu Dimanche <mdimanche@free.fr>
+
+ * src/util/units.cpp: forcin 'C' locale for reading units.txt file
+ Fixes bug #1391348.
+
+2006-01-05 MenTaLguY <mental@rydia.net>
+
+ * src/libnr/nr-maybe.h: fix constness/local reference issues
+
+2006-01-04 MenTaLguY <mental@rydia.net>
+
+ * src/Makefile_insert, src/shortcuts-default-xml.cpp,
+ src/shortcuts.cpp, src/shortcuts.xml:
+
+ Moved default shortcuts XML file into a string constant (for now);
+ replaced hard-coded structure with code to read XML file.
+
+2006-01-04 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/extension/internal/ps.cpp (setup): Clarify the meaning of
+ `Print destination', mentioning the new possibility of leaving
+ as empty.
+ * (PrintPS::begin) If print destination is an empty string, then
+ don't pass `-P %s' to lpr: just let lpr use its default.
+ * (PrintPS::init) Change default print destination from `lp' to empty
+ string.
+
+2006-01-04 Jon A. Cruz <jon@joncruz.org>
+
+ * src/widgets/desktop-widget.cpp:
+ Adding split pane for swatches.
+
+2006-01-03 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/libavoid/visibility.cpp: Add operator!= for the EdgePair class.
+ This is needed to compile on Tru64 UNIX. Fixes bug #1386755.
+
+2005-12-30 Josh Andler <scislac@users.sf.net>
+
+ * src/ui/widget/selected-style.cpp, src/ui/widget/selected-style.h
+ Added "invert" function to right-click menu of style selector.
+
+2005-12-22 Jon A. Cruz <jon@joncruz.org>
+
+ * share/palettes/Tango-Palette.gpl:
+ Updated to newer version from the Tango project.
+
+2005-12-21 Jon A. Cruz <jon@joncruz.org>
+
+ * src/interface.cpp, src/preferences-skeleton.h,
+ src/widgets/desktop-widget.h, src/widgets/desktop-widget.cpp:
+ Adding panels/swatches to main UI.
+
+2005-12-23 Tim Dwyer <tdwyer@mail.csse.monash.edu.au>
+
+ * src/removeoverlap/*.{cpp,h}: Bug fix in removeoverlap algorithm that
+ should finally get timestamps working properly. Specifically, heap
+ timestamps are now refreshed before a merge.
+
+2005-12-19 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/sp-conn-end.cpp, src/connector-context.cpp: Have connectors
+ draw to the correct position on shape bounding boxes. Previously
+ the point where connectors were drawn was on straight line between
+ the two endpoints. These points now lie on the line between the
+ second last point on the polyline and the center of the shape.
+
+ * src/display/curve.cpp, src/display/curve.hpp: Added a couple of
+ functions that return the second and second-last points in a curve.
+
+ * src/removeoverlap/generate-constraints.cpp: Moved the
+ #include "isnan.h" to be the final include. This fixes a
+ compilation error on OS X.
+
+2005-12-16 Carl Hetherington <inkscape@carlh.net>
+
+ * src/conn-avoid-ref.cpp, sp-conn-end-pair.cpp, sp-conn-end.cpp,
+ sp-item.cpp, sp-shape.cpp, dialogs/clonetiler.cpp,
+ dialogs/stroke-style.cpp, dialogs/tiledialog.cpp,
+ dialogs/unclump.cpp, display/nr-arena-shape.cpp,
+ display/nr-arena-shape.h, widgets/icon.cpp: more NRRect removal.
+
+ * src/desktop.cpp, src/desktop.h, src/dyna-draw-context.cpp,
+ src/selection-chemistry.cpp, src/sp-namedview.cpp, src/verbs.cpp,
+ src/display/sp-canvas.cpp, src/display/sp-canvas.h,
+ src/ui/view/edit-widget.cpp, src/ui/widget/zoom-status.cpp,
+ src/widgets/desktop-widget.cpp: more NRRect removals and cleanups.
+
+ * src/grid-snapper.cpp: snap only to visible grid lines (patch
+ from mtou).
+
+2005-12-15 Carl Hetherington <inkscape@carlh.net>
+
+ * src/conn-avoid-ref.cpp, src/gradient-chemistry.cpp,
+ src/sp-conn-end.cpp, src/sp-item.{cpp,h}: NR::Rect version of
+ sp_item_invoke_bbox (SPItem::invokeBbox). Use it in some places.
+
+2005-12-14 Carl Hetherington <inkscape@carlh.net>
+
+ * src/dyna-draw-context.cpp, src/gradient-context.cpp,
+ src/selection.h, src/sp-flowtext.cpp, src/sp-item.cpp,
+ src/sp-item.h, src/sp-shape.cpp, src/sp-text.cpp,
+ src/dialogs/layer-properties.cpp,
+ src/extension/internal/bluredge.cpp,
+ src/extension/internal/grid.cpp, src/ui/dialog/transformation.cpp,
+ src/widgets/desktop-widget.cpp: remove NRMatrix version of
+ sp_item_i2d_affine(). Some include file adjustments.
+
+ * src/arc-context.cpp: some very minor cleanups.
+
+ * src/svg/svg-length.{cpp,h}, src/helper/units.cpp: use INCH
+ rather than IN to avoid breaking the compile on some systems.
+
+2005-12-13 Carl Hetherington <inkscape@carlh.net>
+
+ * src/arc-context.cpp, src/connector-context.cpp,
+ src/context-fns.cpp, src/desktop-affine.cpp, src/desktop-affine.h,
+ src/desktop-events.cpp, src/desktop.cpp, src/desktop.h,
+ src/draw-anchor.cpp src/dropper-context.cpp,
+ src/dyna-draw-context.cpp, src/event-context.cpp
+ src/gradient-context.cpp, src/knot.cpp, src/node-context.cpp,
+ src/object-snapper.cpp src/pen-context.cpp,
+ src/pencil-context.cpp, src/rect-context.cpp
+ src/select-context.cpp, src/selection-chemistry.cpp,
+ src/sp-item.cpp, src/sp-item.h src/spiral-context.cpp,
+ src/star-context.cpp, src/text-context.cpp src/zoom-context.cpp,
+ src/ui/widget/ruler.cpp: make desktop's transforms private
+ members.
+
+ * src/document.cpp, src/object-edit.cpp, src/sp-ellipse.cpp,
+ src/sp-ellipse.h, src/sp-gradient.cpp, src/sp-image.cpp,
+ src/sp-image.h, src/sp-line.cpp, src/sp-line.h,
+ src/sp-linear-gradient.h, src/sp-marker.cpp, src/sp-marker.h,
+ src/sp-pattern.cpp, src/sp-pattern.h, src/sp-radial-gradient.h,
+ src/sp-rect.cpp, src/sp-rect.h, src/sp-root.cpp, src/sp-root.h,
+ src/sp-star.cpp, src/sp-symbol.h, src/sp-text.cpp,
+ src/sp-textpath.h, src/sp-tspan.cpp, src/sp-use.cpp, src/sp-use.h,
+ src/text-tag-attributes.h, src/helper/units.cpp,
+ src/helper/units.h, src/libnrtype/Layout-TNG-Compute.cpp,
+ src/libnrtype/Layout-TNG-Input.cpp,
+ src/libnrtype/Layout-TNG-OutIter.cpp,
+ src/libnrtype/Layout-TNG-Output.cpp, src/libnrtype/Layout-TNG.h,
+ src/libnrtype/TextWrapper.cpp, src/svg/svg-length.cpp,
+ src/svg/svg.h: partial C++-ificiation of SPSVGLength. Rename it
+ to SVGLength.
+
+2005-12-13 Mathieu Dimanche <mdimanche@free.fr>
+
+ * src/snapped-point.{cpp,h} : new files.
+
+ * src/Makefile_insert : Added the new files
+
+ * src/arc-context.cpp, src/connector-context.cpp,
+ src/context-fns.cpp, src/draw-context.cpp, src/nodepath.cpp,
+ src/object-edit.cpp, src/pencil-context.cpp,
+ src/selection-chemistry.cpp, src/seltrans.cpp, src/snap.cpp,
+ src/spiral-context.cpp, src/star-context.cpp,
+ src/line-snapper.cpp, src/line-snapper.h, src/object-snapper.cpp,
+ src/object-snapper.h src/snapper.cpp, src/snapper.h,
+ src/event-context.cpp, src/rect-context.cpp,
+ src/select-context.cpp : Use SnappedPoint class
+
+ * src/color-rgba.h : Added rgba32 unsigned int handling and
+ "inverse" members (NEED TO BE TESTED)
+
+2005-12-12 MenTaLguY <mental@rydia.net>
+
+ * src/widgets/desktop-widget.cpp: moved some widgets into statusbar
+ widget for more aesthetic appearance
+
+2005-12-12 Carl Hetherington <inkscape@carlh.net>
+
+ * src/arc-context.cpp: minor cleanups. Use SnapManager more. Use
+ Inkscape::setup_for_drag_start.
+
+ * src/connector-context.cpp, src/draw-context.cpp,
+ src/object-edit.cpp, src/pencil-context.cpp, src/rect-context.cpp,
+ src/spiral-context.cpp, src/star-context.cpp: use SnapManager.
+
+ * src/rect-context.cpp, src/spiral-context.cpp,
+ src/star-context.cpp: use Inkscape::setup_for_drag_start().
+
+ * src/snapper.{cpp,h}: simplify snap point types code.
+
+ * src/context-fns.{cpp,h}: add setup_for_drag_start().
+
+ * src/dyna-draw-context.cpp: remove unused and erroneous snapping code.
+
+ * src/pen-context.cpp: remove unused variable.
+
+ * src/draw-context.cpp: use SnapManager.
+
+ * src/nodepath.cpp: const fixes. Use SnapManager.
+
+ * src/selection-chemistry.cpp, src/seltrans.cpp: some cleanups.
+ Use new snap API.
+
+ * src/snap.{cpp,h}: remove some dead code.
+
+ * src/sp-item.{cpp,h}, src/node-context.cpp, src/draw-context.cpp:
+ remove an unnecessary parameter from sp_item_dt2i_affine().
+
+2005-12-09 Carl Hetherington <inkscape@carlh.net>
+
+ * src/object-snapper.cpp: make node snapping work again.
+
+ * src/star-context.cpp: use SnapManager. Some other minor cleanups.
+
+ * src/arc-context.cpp, src/connector-context.cpp,
+ src/dyna-draw-context.cpp, src/pen-context.cpp,
+ src/pencil-context.cpp, src/rect-context.cpp,
+ src/selection-chemistry.cpp, src/spiral-context.cpp,
+ src/star-context.cpp, src/text-context.cpp: use
+ Inkscape::have_viable_layer.
+
+ * src/context-fns.{cpp,h}: new files.
+
+ * src/arc-context.cpp, src/context-fns.{cpp,h},
+ src/rect-context.cpp: abstract common code into context-fns and
+ clean it up a bit.
+
+2005-12-08 Carl Hetherington <inkscape@carlh.net>
+
+ * src/grid-snapper.cpp, src/guide-snapper.cpp, src/line-snapper.h:
+ coding style. Change how lines are defined.
+
+ * src/grid-snapper.h, src/guide-snapper.h: coding style.
+
+ * src/line-snapper.cpp, src/object-snapper.{cpp,h}: Coding style.
+ Various cleanups. Small API changes.
+
+ * src/snap.cpp: changes to Snapper API. Added work-in-progress SnapManager.
+
+ * src/snapper.{cpp,h}: API cleanups.
+
+ * src/sp-namedview.{cpp,h}: added getSnappers().
+
+ * src/seltrans.cpp: Cleanup and fix moveTo(). Go back to snapping
+ to snap points rather than the convex hull, at least for a bit.
+
+2005-12-07 Carl Hetherington <inkscape@carlh.net>
+
+ * src/libnr/nr-convex-hull.h: remove unnecessary includes.
+
+ * src/line-snapper.{cpp,h}, src/object-snapper.{cpp,h},
+ src/attributes.{cpp,h}, src/desktop.cpp, src/dyna-draw-context.cpp
+ src/arc-context.cpp, src/grid-snapper.h, src/nodepath.cpp,
+ src/rect-context.cpp, src/selection-chemistry.cpp,
+ src/seltrans.cpp, src/snap.{cpp,h}, src/snapper.{cpp,h},
+ src/sp-namedview.{cpp,h}, src/spiral-context.cpp,
+ src/star-context.cpp, src/dialogs/desktop-properties.{cpp,h},
+ src/Makefile_insert: first cut of object snapping.
+
+ * src/grid-snapper.cpp, src/guide-snapper.{cpp,h}: use Inkscape namespace.
+
+2005-12-06 Carl Hetherington <inkscape@carlh.net>
+
+ * src/libnr/nr-maybe.h: add missing public: to class IsNot.
+
+ * src/splivarot.{cpp,h}: declare some more functions. Fix
+ get_nearest_position_on_Path to not crash if you call it with an
+ Item that isn't Shape or Text.
+
+ * src/node-context.cpp: adapt for changes in splivarot.{cpp,h}.
+
+ * src/nodepath.cpp: remove declaration of a function now declared
+ in splivarot.h.
+
+2005-12-05 Carl Hetherington <inkscape@carlh.net>
+
+ * src/desktop.cpp, src/tools-switch.cpp,
+ src/dialogs/clonetiler.cpp, src/dialogs/display-settings.cpp:
+ re-jig #includes slightly.
+
+ * src/seltrans.{cpp,h}, src/selcue.{cpp,h}: C++-ification and cleanup.
+
+ * src/select-context.{cpp,h}, src/seltrans-handles.h: adapt for
+ changes to SelTrans.
+
+ * src/event-context.{cpp,h}: adapt for changes to SelCue.
+
+ * src/rect-context.cpp, src/gradient-context.cpp: remove unnecessary include.
+
+ * src/connector-context.h, src/draw-context.h: add a forward
+ declaration.
+
+ * src/dropper-context.{cpp,h}: remove an unused variable and its
+ associated includes.
+
+ * src/main.cpp: fix comment for renamed SPSelCue.
+
+ * src/dialogs/display-settings.cpp: adapt for slightly re-jigged SelCue.
+
+2005-12-04 Ted Gould <ted@gould.cx>
+
+ * po/POTFILES.in:
+
+ Adding the .inx files as [type: gettext/xml] so that they will get
+ translated. Good stuff.
+
+ * share/extensions/addnodes.inx, share/extensions/ai_input.inx,
+ share/extensions/ai_output.inx, share/extensions/bluredge.inx,
+ share/extensions/dia.inx, share/extensions/dots.inx,
+ share/extensions/dropshadow.inx, share/extensions/dxf_input.inx,
+ share/extensions/dxf_output.inx, share/extensions/embedimage.inx,
+ share/extensions/eps_input.inx, share/extensions/epsi_output.inx,
+ share/extensions/ffmet.inx, share/extensions/ffms.inx,
+ share/extensions/ffset.inx, share/extensions/ffss.inx,
+ share/extensions/gimpgrad.inx, share/extensions/grid.inx,
+ share/extensions/handles.inx, share/extensions/interp.inx,
+ share/extensions/kochify.inx, share/extensions/kochify_load.inx,
+ share/extensions/lindenmayer.inx, share/extensions/motion.inx,
+ share/extensions/pdf_output.inx, share/extensions/ps_input.inx,
+ share/extensions/radiusrand.inx, share/extensions/randompnt.inx,
+ share/extensions/randompos.inx, share/extensions/rtree.inx,
+ share/extensions/sk_input.inx, share/extensions/straightseg.inx,
+ share/extensions/summersnight.inx, share/extensions/svgz_input.inx,
+ share/extensions/svgz_output.inx, share/extensions/txt2svg.inx,
+ share/extensions/wavy.inx, share/extensions/whirl.inx,
+ share/extensions/wmf_input.inx:
+
+ Marking the user visible strings as translatable.
+
+ * src/extension/dependency.cpp, src/extension/extension.cpp,
+ src/extension/init.cpp, src/extension/input.cpp, src/extension/output.cpp,
+ src/extension/parameter.cpp:
+
+ Changed to handle translated .inx files. They will find the data, and
+ mark the right strings as translated.
+
+ * src/extension/effect.cpp, src/extension/effect.h, src/interface.cpp:
+
+ Changed menu handling to be push instead of pull
+
+2005-12-02 Carl Hetherington <inkscape@carlh.net>
+
+ * src/dropper-context.cpp: coding style.
+ * src/sp-namedview.cpp, src/sp-namedview.h, src/desktop.cpp: some
+ C++-ification of SPNamedView.
+
+2005-12-01 MenTaLguY <mental@rydia.net>
+
+ * src/widgets/desktop-widget.cpp: shuffle status bar around again;
+ add a grippie so we don't have to care about the corner of the window
+ getting covered up
+
+2005-12-01 MenTaLguY <mental@rydia.net>
+
+ * src/widgets/icon.cpp: refactored a bit around the icon prerendering
+ code and added a timer; also kick off the task immediately rather
+ than waiting for the first expose event
+
+2005-12-01 MenTaLguY <mental@rydia.net>
+
+ * src/widgets/desktop-widget.cpp:
+
+ moved zoom selector away from the right edge so it won't get covered
+ by window manager decorations
+
+2005-12-01 MenTaLguY <mental@rydia.net>
+
+ * src/help.cpp, src/ui/dialog/aboutbox.h, src/ui/dialog/aboutbox.cpp:
+
+ Moved creation of the splash widget into the about dialog code,
+ and tweaked the appearance of the dialog in a lot of subtle ways
+ -- we now use an AspectFrame to constrain the aspect ratio of the
+ splash view, and also finally get the correct initial size for the
+ dialog while still allowing it to be arbitrarily resized.
+
+2005-12-01 Carl Hetherington <inkscape@carlh.net>
+
+ * src/sp-namedview.cpp: coding style.
+
+2005-12-01 Jon A. Cruz <jon@joncruz.org>
+
+ * src/widgets/icon.cpp: added idle calback pre-render.
+
+2005-11-30 MenTaLguY <mental@rydia.net>
+
+ * src/ui/dialog/aboutbox.cpp: make 'close' button default widget,
+ and rename "About" tab to "_Splash"
+
+2005-11-30 Carl Hetherington <inkscape@carlh.net>
+
+ * src/svg/svg-path.cpp: add missing #include of assert.h for
+ assert()
+ * src/dialogs/xml-tree.cpp: fix uninitialised variable
+ warnings, move some declarations to first use, coding style fixes.
+ * src/snap.cpp, src/snap.h, src/sp-namedview.cpp: split
+ snap.{cpp,h} up into snapper.{cpp,h}, grid-snapper.{cpp,h},
+ guide-snapper.{cpp,h}. Refactor and simplify. Add another
+ namedview_free_snap().
+ * src/geom.cpp, src/geom.h: cosmetic renaming.
+ * src/pen-context.cpp: a few minor cleanups to
+ pen_handle_button_press(). Other snapping cleanups.
+ * src/draw-context.cpp, src/draw-context.h: split
+ spdc_endpoint_snap_internal() into two functions.
+ * src/pencil-context.cpp: snapping cleanups.
+ * src/ui/widget/unit-menu.cpp: remove definition of a variable
+ that's just been made static.
+
+2005-11-26 MenTaLguY <mental@rydia.net>
+
+ * src/ui/dialog/aboutbox.cpp, src/ui/dialog/aboutbox.h:
+ clean up and simplify About dialog; fix memory management (mostly)
+
+2005-11-25 Robert Crosbie <swingincelt@gmail.com>
+
+ * replaced sp_repr_ref with direct cal to Inkscape::GC::anchor
+ * replaced sp_repr_unref with direct call to Inkscape::GC::release
+ * replaced sp_repr_set_attr with direct call to repr->setAttribute
+
+2005-11-24 MenTaLguY <mental@rydia.net>
+
+ * src/shortcuts.cpp, src/interface.cpp: prune back shortcuts API in
+ preparation for configurable key bindings work
+
+2005-11-24 MenTaLguY <mental@rydia.net>
+
+ * src/sp-item.cpp: remedy erroneous initialization of doubles with NULL
+
+2005-11-24 MenTaLguY <mental@rydia.net>
+
+ * src/seltrans.cpp: prune dead wood (sp_sel_trans_handle_click)
+
+2005-11-24 MenTaLguY <mental@rydia.net>
+
+ * src/display/canvas-arena.cpp, src/display/canvas-bpath.cpp,
+ src/display/canvas-grid.cpp, src/display/guideline.cpp,
+ src/display/sodipodi-ctrl.cpp, src/display/sodipodi-ctrlrect.cpp,
+ src/display/sp-canvas-util.cpp, src/display/sp-canvas-util.h,
+ src/display/sp-ctrlline.cpp, src/display/sp-ctrlquadr.cpp:
+
+ cosmetic renaming
+
+2005-11-23 Robert Crosbie <swingincelt@gmail.com>
+
+ * replaced sp_repr_change_order with direct cal to repr->changeOrder
+ * replaced sp_repr_add_child with direct call to repr->addChild
+ * replaced sp_repr_remove_child with direct call to repr->removeChild
+
+2005-11-23 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/ui/dialog/align-and-distribute.h, src/ui/dialog/align-and-distribute.cpp:
+ Add new action ActionRemoveOverlaps, and add new button & two spin buttons
+ to the Align & Distribute dialog box, to remove overlaps between objects.
+ * configure.ac: New directory src/removeoverlap.
+ * src/Makefile.am: Build new library removeoverlap/libremoveoverlap.a.
+ * src/Makefile_insert: Link against new library removeoverlap/libremoveoverlap.a.
+
+2005-11-23 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * packaging/osx-app.sh, packaging/macosx/Resources/bin/inkscape:
+ Include some missing modules required by gnome-vfs and set shell
+ variables to point to these modules within the OS X app bundle.
+ Fixes bug #1363390.
+
+2005-11-21 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * packaging/osx-app.sh: Fix a typo resulting from last change.
+
+2005-11-18 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * packaging/osx-app.sh: Add libXinerama.1.dylib to the app bundle
+ since users of OS X 10.3.x will not have this file.
+
+2005-11-12 Jon Phillips <jon@rejon.org>
+
+ * po/it.po po/sr.po po/sr@Latn.po: Fixed these po files so that
+ Inkscape builds okay.
+
+
+2005-11-12 Ralf Stephan <ralf@ark.in-berlin.de>
+
+ * src/ui/view/edit-widget.h, src/ui/view/edit-widget.cpp:
+ new-gui: made complete statusbar widget, equals old-gui now
+ * src/widgets/layer-selector.h, src/ui/widget/selected-style.h:
+ classes have now a constructor with default parameter
+ * src/ui/widget/zoom-status.cpp: smaller font
+
+2005-11-12 MenTaLguY <mental@rydia.net>
+
+ * src/display/canvas-arena.cpp, src/display/canvas-bpath.cpp,
+ src/display/canvas-grid.cpp, src/display/guideline.cpp,
+ src/display/sodipodi-ctrl.cpp, src/display/sodipodi-ctrlrect.cpp,
+ src/display/sp-canvas-util.cpp, src/display/sp-canvas-util.h,
+ src/display/sp-canvas.cpp, src/display/sp-canvas.h,
+ src/display/sp-ctrlline.cpp, src/display/sp-ctrlquadr.cpp:
+
+ Refactor canvas buffer code a little. Hint: if you have two flags
+ and an invariant that one will be false if the other is true and
+ vice-versa, you can represent them with a single flag. Fixed
+ cut-and-paste madness between sp_canvas_buf_ensure_buf and
+ sp_canvas_clear_buf also. Finally, renamed sp_canvas_buf_ensure_buf
+ to sp_canvas_prepare_buf.
+
+2005-11-09 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/sp-item.cpp: Call updateRepr before emitting the transformed
+ signal in sp_item_write_transform. This fixes bug #1303423.
+
+ * packaging/osx-app.sh: Fixes to allow building app bundles on both
+ OS X 10.4 and earlier versions of the OS without altering the script.
+ Also, add a note that Inkscape needs to be configured with
+ --enable-osxapp when building the OS X package.
+
+ * po/nl.po: Fix an "Unmatched closing </b>" warning.
+
+2005-11-08 Ralf Stephan <ralf@ark.in-berlin.de>
+
+ merged with branch CXXIFICATION_VIEW_AND_WIDGET
+ * src/arc-context.cpp, src/dyna-draw-context.cpp, src/event-context.cpp,
+ src/file.cpp, gradient-context.cpp, src/inkscape.cpp, src/interface.cpp,
+ src/rect-context.cpp, src/select-context.cpp, src/seltrans.cpp,
+ src/sp-namedview.cpp, src/spiral-context.cpp, src/star-context.cpp,
+ src/verbs.cpp, dialogs/dialog-events.cpp, src/dialogs/layer-properties.cpp,
+ src/ui/dialog/dialog.cpp, src/widgets/desktop-widget.cpp,
+ src/widgets/desktop-widget.h:
+ move gtk code into desktop-widget.cpp, called via desktop
+ * src/ui/view/Makefile_insert: added files edit-widget-interface.h,
+ edit-widget.cpp, edit-widget.h
+ the EditWidget is the Gtkmm version of the SPDesktopWidget
+ * src/ui/widget/Makefile_insert: added files ruler.cpp, ruler.h,
+ svg-canvas.cpp, svg-canvas.h, zoom-status.cpp, zoom-status.h
+ these are widgets part of the EditWidget
+ * src/file.cpp, src/inkscape.cpp, src/ui/dialog/dialog.cpp,
+ src/ui/dialog/dialog.h, src/application/application.h,
+ src/application/application.cpp:
+ divide code /wrt Application::getNewGui(): if true, it's called by the
+ Gtkmm application and the inkscape object is meaningless
+ * src/application/app-prototype.h:
+ replace UI specific return value of getWindow() with void*
+ * src/application/editor.cpp, src/application/editor.h:
+ made Editor a singleton, collect global UI code here that (for Gtk+)
+ lives in inkscape.cpp and elsewhere
+ * src/desktop-events.cpp, src/desktop.cpp, src/event-context.cpp,
+ src/nodepath.cpp, src/seltrans.cpp:
+ simplify calls to desktop->set_coordinate_status
+ * src/desktop-handles.cpp, src/desktop-handles.h,
+ src/extension/internal/ps.cpp, src/widgets/gradient-toolbar.cpp,
+ src/widgets/toolbox.cpp:
+ widget is no longer available through desktop
+ * src/Makefile_insert: added files preferences.h preferences.cpp
+ src/inkscape.h, src/inkscape.cpp, src/application/editor.cpp:
+ move preferences handling into preferences.cpp/h
+ * src/desktop.cpp, src/desktop.h:
+ use EditWidgetInterface, more cosmetics
+ * src/desktop.cpp, src/inkview.cpp, src/slideshow.cpp, src/svg-view-widget.cpp,
+ src/svg-view.cpp, src/svg-view.h, src/ui/view/view.cpp, src/ui/view/view.h:
+ streamline setDoc()/setDocument() logic
+ * src/inkview.cpp: include empty func bodies to make linker happy
+
+2005-11-08 ------------0.43
+
+2005-11-06 Ted Gould <ted@gould.cx>
+
+ * 0.43pre2
+
+2005-11-01 Jon A. Cruz <jon@joncruz.org>
+
+ * src/io/base64stream.h, src/io/base64stream.cpp:
+ Applied modified patch 1341198.
+
+2005-10-31 Jon A. Cruz <jon@joncruz.org>
+
+ * src/verbs.cpp:
+ Applied patch from RFE 1247694.
+
+2005-10-26 Jon A. Cruz <jon@joncruz.org>
+
+ * share/screens/about.svg:
+ Trimmed bad lines. Fixed bug 1310742.
+
+2005-10-24 Ted Gould <ted@gould.cx>
+
+ * 0.43pre1
+
+2005-10-22 Jon A. Cruz <jon@joncruz.org>
+
+ * Makefile.mingw, src/io/sys.cpp:
+ Patch 1334818.
+
+2005-10-22 Jon A. Cruz <jon@joncruz.org>
+
+ * src/main.cpp, src/io/sys.cpp:
+ Updating Win32 parameter filename handling.
+
+2005-10-22 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/connector-context.cpp: Correct two typos. Fixes bug #1333915.
+
+2005-10-21 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/connector-context.cpp: Fix a bug where undoing creation of
+ new connectors revealed intermediate steps.
+
+ * src/libavoid/connector.cpp, src/libavoid/connector.h,
+ src/libavoid/makepath.cpp, src/libavoid/static.cpp:
+ Applied a couple of libavoid fixes. One of which addresses
+ a possible crash bug.
+
+2005-10-19 Ted Gould <ted@gould.cx>
+
+ * 0.43pre0
+
+2005-10-19 Jon A. Cruz <jon@joncruz.org>
+
+ * inkscape32-16.ico: patch 1323419
+
+2005-10-17 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/conn-avoid-ref.cpp: Don't pass avoided objects to libavoid
+ if they have the 'cloned' flag set. Fixes bug #1328401.
+
+2005-10-17 Jon A. Cruz <jon@joncruz.org>
+
+ * src/main.cpp, src/io/sys.h, src/io/sys.cpp:
+ Switched command-line name conversion from filename to locale.
+ Fixes bug #1250124.
+
+2005-10-16 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/sp-conn-end.cpp: Don't update the repr for the curve while
+ manually rerouting connector endpoints. This speeds up undo/redo
+ and allows responsive rerouting with the xml editor window open.
+ Fixes bug #1315489.
+
+ * po/ca.po: Fix unclosed <b> found in translations.
+
+2005-10-15 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/isnan.h: Update to allow compilation on OSX 10.4.
+
+ * src/connector-context.cpp, src/connector-context.h,
+ src/tools-switch.cpp: Allow double-clicking on connectors
+ in the selector tool to swap to the connector tool.
+
+2005-10-14 Jon A. Cruz <jon@joncruz.org>
+
+ * share/palettes/Makefile.am, share/palettes/Tango-Palette.gpl:
+ Adding the Tango palette.
+
+2005-10-13 MenTaLguY <mental@rydia.net>
+
+ * share/screens/about.svg: New copy for about dialog; did some
+ vector clean-up and re-enabled the coffee stains.
+
+2005-10-10 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/sp-conn-end-pair.cpp, src/sp-conn-end-pair.h:
+ Reroute connector lines if the object itself is moved or
+ transformed. Previously a routed line would not unroute if it
+ was moved away from the blocking objects. Fixes bug #1303493.
+
+2005-10-07 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * packaging/macosx/Resources/script, src/path-prefix.h:
+ Don't assume the OSX app bundle will be named "Inkscape.app".
+ This caused things like tool icons to disappear if the app
+ bundle was renamed, e.g., to "Inscape-0.42.2.app".
+ Fixes bug #1289648.
+
+2005-10-06 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/sp-conn-end-pair.cpp: Fix a bug where connectors could
+ sometimes be given strange routes if there was a transform on
+ either of the objects that the connector was attached to.
+
+ * src/conn-avoid-ref.cpp, src/sp-conn-end.cpp: Add a call to
+ sp_document_ensure_up_to_date before checking bounding boxes
+ in response to a transform signal. This is because some
+ objects (e.g., text) will not give the correct bbox until its
+ update function has been called and its internal representation
+ has been updated. This fixes bug #1303523.
+
+ * src/dialogs/display-settings.cpp, src/dialogs/display-settings.h:
+ Restore the Connector tool preferences tab. Use same ordering
+ for tools as on the toolbar. Add the standard selection cue
+ option to the connector tool preferences. Fixes bug #1303360.
+
+2005-10-05 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * packaging/osx-app.sh: Include locale files in the OSX package and
+ a couple of minor updates for building packages on OSX 10.4.x.
+
+ * packaging/macosx/Resources/bin/inkscape: Fix a problem in setting
+ LANG to the current OSX language before launching Inkscape.
+ With this fix, the Inkscape app bundle will obey the user's
+ language setting in the system preferences on OSX.
+
+2005-09-30 Ralf Stephan <ralf@ark.in-berlin.de>
+
+ * src/desktop.*, src/widget/desktop-widget.cpp:
+ make empty destructor, fixes #1291009
+
+2005-09-29 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * Info.plist.in: Associate .svgz files with Inkscape on OSX.
+ Fixes bug #1307083.
+
+2005-09-27 MenTaLguY <mental@rydia.net>
+
+ * src/gc-anchored.h: emphasize initial refcount
+
+ * src/desktop.h, src/svg-view-widget.cpp, src/ui/view/view-widget.cpp,
+ src/ui/view/view.cpp, src/ui/view/view.h,
+ src/widgets/desktop-widget.cpp:
+
+ Move _whole_ UI::View::View hierarchy over to the garbage collector
+ and fix anchor imbalances; you can't do this piecemeal.
+
+2005-09-23 Ben Fowler <bpfowler@users.sourceforge.net>
+
+ * autogen.sh: Cleanup error message.
+
+2005-09-20 Carl Hetherington <inkscape@carlh.net>
+
+ * src/file.cpp, src/file.h, src/help.cpp: don't replace empty
+ desktops with help files / tutorials. Fixes 1249067.
+
+2005-09-17 Ralf Stephan <ralf@ark.in-berlin.de>
+
+ * src/jabber_whiteboard/typedefs.h:
+ gcc4 needs more const correctness, fixes #1294298
+
+2005-09-17 Ralf Stephan <ralf@ark.in-berlin.de>
+
+ * src/desktop.h, src/desktop.cpp, src/interface.cpp,
+ src/dialogs/layer-properties.cpp, src/ui/view/view.cpp,
+ src/widgets/desktop-widget.cpp:
+ correcting old and new oversights, fixes #1290982
+
+2005-09-15 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/xml/repr-util.cpp (sp_repr_set_double): Split into two
+ functions (sp_repr_set_svg_double, sp_repr_set_css_double)
+ according to whether or not an exponent is allowed. Update callers.
+ (sp_repr_set_double_default): Remove this unused function.
+
+2005-09-15 Carl Hetherington <inkscape@carlh.net>
+
+ * src/object-edit.cpp: fix idiotic bug introduced in previous commit.
+
+2005-09-14 Carl Hetherington <inkscape@carlh.net>
+
+ * src/knot.cpp, src/knotholder.cpp: coding style.
+
+2005-09-13 Ralf Stephan <ralf@ark.in-berlin.de>
+
+ * src/desktop.h, src/desktop.cpp, src/svg-view.h, src/svg-view.cpp,
+ src/ui/view/view.h, src/ui/view/view.cpp, src/ui/view/edit.h:
+ View::setDocument() did not call same function in subclass
+ * src/widgets/select-toolbar.cpp: removed usage of SP_DT_WIDGET
+ * src/desktop.cpp: removed last sp_desktop_* function names
+
+2005-09-13 Carl Hetherington <inkscape@carlh.net>
+
+ * src/object-edit.cpp: Add some comments. Minor refactoring.
+ Snap points when editing rectangles; partial fix for bug 1282399.
+
+ * packaging/win32/inkscape.nsi: Correct spelling of associations
+ and associated; fix for bug 1283916.
+
+2005-09-12 Jon A. Cruz <jon@joncruz.org>
+
+ * src/dialogs/iconpreview.cpp, src/dialogs/iconpreview.h,
+ src/widgets/icon.cpp:
+ Icon preview now toggles between selection or whole document.
+ Fixes REF #1281883.
+
+2005-09-12 Ralf Stephan <ralf@ark.in-berlin.de>
+
+ * src/widgets/ruler.cpp: fixed precision problem (bug #1242995)
+
+2005-09-12 Peter Moulder <pmoulder@bowman.csse.monash.edu.au>
+
+ * src/libnrtype/Layout-TNG-Compute.cpp (Calculator::_measureUnbrokenSpan):
+ Fix line breaking for [supposedly] non-breaking whitespace characters.
+
+2005-09-11 Ralf Stephan <ralf@ark.in-berlin.de>
+
+ * po/nl.po: replaced all instances of "verkleint" with "verkleind"
+ (bug #1277695)
+
+2005-09-10 Jon A. Cruz <jon@joncruz.org>
+
+ * src/preferences-skeleton.h, src/dialogs/iconpreview.cpp:
+ Made icon preview sizes configurable. Fixes REF #1281885.
+
+2005-09-08 Carl Hetherington <inkscape@carlh.net>
+
+ * src/object-edit.cpp: Coding style in SPRect portion. Add
+ Emacs/vim mode blocks.
+
+2005-09-08 Ralf Stephan <ralf@ark.in-berlin.de>
+
+ * src/desktop.cpp, src/ui/view/view.cpp:
+ removed placement new signal construction
+ * src/desktop.cpp: selection is no longer anchored
+ * src/desktop.cpp, src/desktop.h: further cleanup
+ * src/main.cpp: minor changes in doxygen main page
+
+2005-09-08 MenTaLguY <mental@rydia.net>
+
+ * src/xml/document.h, src/xml/session.h, src/xml/simple-session.cpp,
+ src/xml/simple-session.h:
+
+ Add Session and Document createElementNode, createCommentNode,
+ and createTextNode methods
+
+2005-09-06 Ralf Stephan <ralf@ark.in-berlin.de>
+
+ * src/desktop-handles.h, src/desktop-handles.cpp:
+ added macros SP_DT_MSGSTACK/NAMEDVIEW/WIDGET, moved last
+ macros from desktop.h
+ * src/desktop.h src/desktop.cpp, src/sp-namedview.h,
+ src/sp-namedview.cpp:
+ moved default_metric and default_unit into namedview
+ * src/desktop.h src/desktop.cpp, src/widgets/desktop-widget.h,
+ src/widgets/desktop-widget.cpp:
+ moved window member into desktop widget
+ * src/dialogs/clonetiler.cpp, src/dialogs/color-picker.cpp,
+ src/dialogs/desktop-properties.cpp, src/dialogs/dialog-events.cpp ,
+ src/dialogs/display-settings.cpp, src/dialogs/export.cpp,
+ src/dialogs/stroke-style.cpp, src/dialogs/swatches.cpp,
+ src/dialogs/transformation.cpp, src/dropper-context.cpp,
+ src/extension/internal/ps.cpp, src/gradient-context.cpp,
+ src/jabber_whiteboard/callbacks.cpp,
+ src/jabber_whiteboard/chat-handler.cpp,
+ src/jabber_whiteboard/message-processors.cpp,
+ src/jabber_whiteboard/message-queue.cpp,
+ src/jabber_whiteboard/session-manager.cpp,
+ src/path-chemistry.cpp, src/satisfied-guide-cns.cpp,
+ src/sp-text.cpp, src/text-chemistry.cpp,
+ src/trace/potrace/inkscape-potrace.cpp,
+ src/trace/trace.cpp, src/ui/dialog/align-and-distribute.cpp:
+ removed dependency on desktop.h
+ * src/arc-context.cpp, src/desktop-events.cpp, src/inkscape.cpp,
+ src/interface.cpp, src/nodepath.cpp, src/rect-context.cpp,
+ src/select-context.cpp, src/seltrans.cpp, src/spiral-context.cpp,
+ src/star-context.cpp, src/text-context.cpp, src/ui/dialog/dialog.cpp,
+ src/widgets/select-toolbar.cpp, src/widgets/toolbox.cpp:
+ minor adaptation due to the above changes
+ * src/ui/dialog/session-player.cpp: didn't #include config.h
+
+2005-09-06 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * doc/keys.html, doc/keys.xml, share/screens/keys.svg,
+ src/shortcuts.cpp:
+ Add keyboard shortcuts for the connector tool -- Ctrl+F2 and 'o'.
+
+2005-09-05 Ralf Stephan <ralf@ark.in-berlin.de>
+
+ * src/document.cpp, src/draw-anchor.cpp, src/knotholder.cpp,
+ src/main.cpp, src/object-ui.cpp, src/selcue.cpp,
+ src/sp-marker.cpp, src/sp-root.cpp, src/sp-shape.cpp,
+ src/sp-star.cpp, src/sp-symbol.cpp, src/sp-tspan.cpp,
+ src/dialogs/docker.cpp, src/dialogs/extensions.cpp,
+ src/dialogs/text-edit.cpp, src/dialogs/tiledialog.cpp,
+ src/extension/system.cpp, src/widgets/gradient-vector.cpp,
+ src/jabber_whiteboard/session-file-player.cpp,
+ src/widgets/paint-selector.cpp, src/widgets/sp-widget.cpp,
+ src/widgets/spw-utilities.cpp, src/extension/implementation/script.cpp,
+ src/ui/dialog/transformation.cpp, src/seltrans.h,
+ src/widgets/sp-widget.h:
+ removed dependency on desktop.h
+ * src/select-context.cpp, src/tools-switch.cpp,
+ src/dialogs/display-settings.cpp, src/dialogs/fill-style.cpp,
+ src/dialogs/object-properties.cpp, src/dialogs/clonetiler.cpp:
+ added dependencies because of above changes
+
+2005-09-04 Kees Cook <kees@outflux.net>
+
+ * TRANSLATORS, Makefile.am, src/verbs.cpp, src/help.cpp,
+ src/ui/dialog/aboutbox.h, src/ui/dialog/aboutbox.cpp,
+ src/menus-skeleton.h, src/ui/dialog/Makefile_insert:
+ Implemented AboutDialog following the Gnome style.
+ * packaging/win32/inkscape.nsi: added quotes around execution name.
+
+2005-09-04 Ralf Stephan <ralf@ark.in-berlin.de>
+
+ * src/desktop.cpp, src/dropper-context.cpp, src/forward.h,
+ src/interface.cpp, src/main.cpp, src/sp-anchor.cpp,
+ src/sp-text.cpp, src/splivarot.cpp, src/svg-view-widget.cpp,
+ src/svg-view-widget.h, src/svg-view.h, src/extension/effect.h,
+ src/extension/implementation/plugin-link.h,
+ src/jabber_whiteboard/session-manager.cpp,
+ src/ui/dialog/dialog.cpp, src/ui/view/edit.h,
+ src/ui/view/view-widget.cpp, src/ui/view/view-widget.h,
+ src/ui/view/view.cpp, src/ui/view/view.h:
+ minor edits to completely remove SPView identifier, and some
+ dependencies
+
+2005-09-04 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/sp-conn-end-pair.cpp: Fix a crash bug when undoing connectors
+ on Linux x86 where we were calling a signal destructor.
+
+ * src/io/sys.cpp: Build fix - conditionally include <glib/gstdio.h>
+ if using glib 2.6.0 or greater, since it is not available in earlier
+ versions.
+
+2005-09-04 Ralf Stephan <ralf@ark.in-berlin.de>
+
+ * src/svg-view-widget.h, src/svg-view-widget.cpp, src/Makefile_insert:
+ separated SPSVGViewWidget from SPSVGView
+ * src/desktop.h, src/svg-view.h, src/ui/view/edit.h,
+ src/ui/view/view-widget.h, src/ui/view/view.h,
+ src/widgets/desktop-widget.h, src/desktop.cpp,
+ src/svg-view.cpp, src/ui/view/view-widget.cpp,
+ src/ui/view/view.cpp, src/widgets/desktop-widget.cpp:
+ moved SPDesktop from GObject to C++/sigc++
+ * src/forward.h:
+ removed SP_DESKTOP*, SP_SVG_VIEW* macros and dependencies
+ * src/widgets/layer-selector.h, src/widgets/layer-selector.cpp:
+ changed to sigc++ but disabled call
+ * src/desktop-events.cpp: removed desktop_enter_notify()
+ * src/sp-anchor.cpp: removed handling of mouse over/out
+ * src/helper/action.h, src/sp-use.cpp: added missing dependency
+ * src/arc-context.cpp, src/desktop-affine.cpp, src/desktop-events.cpp,
+ src/desktop-handles.cpp, src/dyna-draw-context.cpp,
+ src/event-context.cpp, src/file.cpp, src/gradient-context.cpp,
+ src/gradient-drag.cpp, src/help.cpp, src/inkscape.cpp,
+ src/inkview.cpp, src/interface.cpp, src/knot.cpp,
+ src/knotholder.cpp, src/node-context.cpp, src/nodepath.cpp,
+ src/object-ui.cpp, src/path-chemistry.cpp, src/rect-context.cpp,
+ src/rubberband.cpp, src/satisfied-guide-cns.cpp,
+ src/select-context.cpp, src/selection-chemistry.cpp,
+ src/seltrans.cpp, src/shortcuts.cpp, src/slideshow.cpp,
+ src/sp-anchor.cpp, src/sp-flowtext.cpp, src/sp-namedview.cpp,
+ src/sp-text.cpp, src/spiral-context.cpp, src/splivarot.cpp,
+ src/star-context.cpp, src/text-context.cpp, src/text-editing.cpp,
+ src/tools-switch.cpp, src/verbs.cpp, src/zoom-context.cpp,
+ src/dialogs/clonetiler.cpp, src/dialogs/desktop-properties.cpp,
+ src/dialogs/dialog-events.cpp, src/dialogs/export.cpp,
+ src/dialogs/filedialog.cpp, src/dialogs/iconpreview.cpp,
+ src/dialogs/layer-properties.cpp, src/dialogs/stroke-style.cpp,
+ src/dialogs/transformation.cpp, src/dialogs/xml-tree.cpp,
+ src/extension/effect.cpp, src/extension/implementation/script.cpp,
+ src/extension/internal/grid.cpp, src/extension/internal/ps.cpp,
+ src/helper/window.cpp, src/ui/dialog/dialog.cpp,
+ src/ui/widget/imageicon.cpp, src/widgets/gradient-toolbar.cpp,
+ src/widgets/layer-selector.cpp, src/widgets/select-toolbar.cpp,
+ src/widgets/toolbox.cpp:
+ minor adaptations due to the above changes
+ * src/desktop-events.h: removed dependencies
+ * src/selection.cpp: improved doxygen documentation
+
+2005-09-04 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/connector-context.cpp: Fix a bug where a data structure was
+ not being freed, triggering an assertion failure and Inkscape to
+ crash sometimes when the connector tool context was switched.
+
+2005-09-03 Aaron Spike <aaron@ekips.org>
+
+ * src/node-context.cpp, src/livarot.cpp: Fixing a problem where node
+ adding and curve dragging operate on fills. A special thank you to
+ Simon Budig of GIMP fame for working with me and giving very
+ thorough explanations of his curve dragging code.
+
+2005-09-03 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/libavoid/connector.cpp, src/libavoid/connector.h: Autoroute
+ connectors while they are being drawn in the connector context.
+
+ * src/sp-conn-end.cpp: Fix a bug where connectors attached to shapes
+ were not always getting updated. Their path was sometimes thought
+ to be valid even when it was not.
+
+2005-09-02 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/sp-conn-end.cpp: Fix a bug where connectors not attached to
+ shapes were not updating correctly if an object was dropped on
+ their path.
+
+2005-09-01 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/sp-conn-end.cpp, src/sp-conn-end.h, src/sp-conn-end-pair.cpp,
+ src/sp-conn-end-pair.h, src/sp-path.cpp, src/libavoid/graph.cpp,
+ src/libavoid/incremental.cpp:
+
+ Connectors now automagically reroute as a result of any 'avoided'
+ object being placed on their path. They also update to better
+ paths when blocking shapes are removed.
+
+ * src/connector-context.cpp: Update TODO list. Only show endpoints
+ and allow manipulation of paths marked as connectors.
+
+ * src/libavoid/connector.cpp, src/libavoid/connector.h: Connectors
+ with invalid paths can now notify other code via a callback,
+ rather than just setting a boolean flag.
+
+ * src/conn-avoid-ref.cpp: Fix an obscure crash bug in the connector
+ routing code where we were still using a freed data structure.
+
+2005-08-31 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/conn-avoid-ref.cpp, src/conn-avoid-ref.h: Use the correct
+ coordinate system when passing shape geometry to libavoid.
+ Add a small amount of buffer space around objects.
+
+ * src/attributes-test.cpp, src/attributes.cpp, src/attributes.h,
+ src/path.cpp: Add code to handle the "inkscape:connector-type"
+ attribute.
+
+ * src/sp-conn-end-pair.cpp, src/sp-conn-end-pair.h: Store information
+ about type paths, to determine whether they are connectors. Keep
+ a reference to the libavoid representation if necessary. Add code
+ to call libavoid to get a path for a connector.
+
+ * src/sp-conn-end.cpp: Call the connector routing code when connector
+ ends are moved. Move connector endpoints rather than stretching
+ when adjusting to draw to shape edge.
+
+ * src/libavoid/connector.cpp, src/libavoid/connector.h: Make the
+ connector references aware of their own initialisation state.
+
+ * src/connector-context.cpp: Update TODO list. Update for other
+ changes. Fix a bug where multi-segment connectors had a solid
+ black fill while being dragged.
+
+ * src/display/curve.cpp, src/display/curve.h: Add a function to
+ simply move the two endpoints of a curve.
+
+2005-08-30 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/conn-avoid-ref.cpp, src/libavoid/connector.cpp,
+ src/libavoid/graph.cpp, src/libavoid/makepath.cpp,
+ src/libavoid/shape.cpp, src/libavoid/vertices.cpp,
+ src/libavoid/vertices.h, src/libavoid/visibility.cpp:
+
+ Use a better system for unique IDs within libavoid. This properly
+ addresses a hack in SPAvoidRef that was unsafe on amd64 machines.
+
+ * configure.ac: Add the src/libavoid subdir.
+
+2005-08-29 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/attributes.cpp, src/connector-context.cpp, src/sp-item.cpp:
+ Use "inkscape:connector-avoid" instead of "inkscape:avoid".
+
+2005-08-29 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/libavoid/timer.cpp: Remove some code assuming a fixed size for
+ timer types.
+
+2005-08-29 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/connector-context.cpp: Fix a problem where the context didn't
+ notice the current selection when it was entered. Also, fix a
+ problem where connectors disappeared for a moment when an endpoint
+ was clicked (for rerouting), but before the mouse was moved.
+
+2005-08-29 David Yip <yipdw@rose-hulman.edu>
+
+ * src/ui/dialog/whiteboard-connect.{cpp,h},
+ src/ui/dialog/whiteboard-sharewithchat.{cpp,h}:
+ Improved widget layout (switched to Gtk::Table)
+
+ * src/jabber_whiteboard/session-manager.cpp:
+ Fixed crash that occurred when connecting via SSL to a Jabber
+ server that does not support SSL
+
+2005-08-28 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/Makefile_insert, src/attributes-test.cpp, src/attributes.cpp,
+ src/attributes.h, src/conn-avoid-ref.cpp, src/conn-avoid-ref.h,
+ src/forward.h, src/sp-item.cpp, src/sp-item.h:
+
+ Add code that handles the "inkscape:avoid" attribute, used to mark
+ whether an item should be avoided for the purposes of routing
+ connectors. This code also calls libavoid when an 'avoided'
+ item is moved/transformed.
+
+ * src/connector-context.cpp, src/connector-context.h,
+ src/widgets/toolbox.cpp:
+
+ Add a couple of buttons to the connector context's toolbar to
+ allow selected objects to be marked as avoided or ignored for the
+ purpose of connector routing.
+
+ * src/libavoid/debug.h, src/libavoid/geomtypes.h,
+ src/libavoid/polyutil.cpp, src/libavoid/polyutil.h,
+ src/libavoid/shape.cpp:
+
+ Misc fixes: turn off debugging output, put types in the Avoid
+ namespace, and add an assertion for a special case that can
+ cause problems.
+
+2005-08-28 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * share/icons/icons.svg: Add a couple of icons for the connector
+ context toolbar.
+
+2005-08-27 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/Makefile.am, src/Makefile_insert, src/libavoid/*:
+ Add libavoid code, the library that does all the path planning
+ work for autorouting connectors.
+
+2005-08-27 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/Makefile_insert: Remove a reference to the previously moved
+ src/desktop-widget.h. This wasn't breaking the build, but was
+ stopping me from generating tags files.
+
+2005-08-25 Ralf Stephan <ralf@ark.in-berlin.de>
+
+ * src/ui/view/edit.h, src/ui/view/view.h, src/ui/view/view.cpp,
+ src/ui/view/view-widget.h, src/ui/view/view-widget.cpp,
+ src/widgets/desktop-widget.h, src/svg-view.h, src/desktop.cpp:
+ separated SPViewWidget from SPView
+ * src/connector-context.cpp, src/dyna-draw-context.cpp,
+ src/file.cpp, src/gradient-context.cpp, src/knot.cpp,
+ src/node-context.cpp, src/nodepath.cpp, src/path-chemistry.cpp,
+ src/pen-context.cpp, src/pencil-context.cpp, src/rect-context.cpp,
+ src/selection-chemistry.cpp, src/spiral-context.cpp,
+ src/splivarot.cpp, src/star-context.cpp, src/text-chemistry.cpp,
+ src/text-context.cpp, src/verbs.cpp, src/dialogs/display-settings.cpp,
+ src/dialogs/layer-properties.cpp, src/dialogs/find.cpp,
+ src/dialogs/clonetiler.cpp, src/trace/trace.cpp,
+ src/trace/potrace/inkscape-potrace.cpp:
+ all these files relied on a dependency in view.h to include
+ code for MessageStack and/or MessageContext which is now removed
+ * dialogs/desktop-properties.cpp: improved doxygen documentation
+
+2005-08-25 Ralf Stephan <ralf@ark.in-berlin.de>
+
+ * src/desktop.cpp, src/widgets/desktop-widget.h,
+ src/widgets/desktop-widget.cpp:
+ abstracted out all Gtk+ calls from SPDesktop into SPDesktopWidget
+ * src/Doxyfile, src/main.cpp, src/desktop.cpp:
+ improved doxygen documentation
+
+2005-08-25 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/connector-context.cpp, src/connector-context.h:
+ Change the connector context to use Inkscape's standard selection
+ mechanism. Show connector endpoint handles for single connectors
+ in the selection. This is the proposed interaction changes as
+ discussed on the mailing list. See the post there for a greater
+ description of the change.
+
+2005-08-24 Ralf Stephan <ralf@ark.in-berlin.de>
+
+ * src/widgets/desktop-widget.h, src/widgets/desktop-widget.cpp:
+ separated SPDesktopWidget from SPDesktop
+ * src/desktop-widget.h: removed
+ * src/toolbox.cpp, src/toolbox.h, src/select-toolbar.cpp,
+ src/select-toolbar.h, src/gradient-toolbar.cpp,
+ src/gradient-toolbar.h: moved into src/widgets
+ * src/desktop.h, src/desktop.cpp, src/desktop-events.cpp,
+ src/verbs.cpp, src/Makefile_insert, src/widgets/Makefile_insert,
+ src/arc-context.cpp, src/dyna-draw-context.cpp,
+ src/gradient-context.cpp, src/rect-context.cpp,
+ src/select-context.cpp, src/spiral-context.cpp,
+ src/star-context.cpp, src/interface.cpp, src/seltrans.cpp:
+ adapted following SPDesktopWidget separation
+
+2005-08-24 David Yip <yipdw@rose-hulman.edu>
+
+ * src/jabber_whiteboard/session-manager.{cpp.h},
+ src/jabber_whiteboard/callbacks.cpp,
+ src/ui/dialog/whiteboard-connect.{cpp,h}:
+ added support for XMPP over SSL to Inkboard
+
+2005-08-22 Ralf Stephan <ralf@ark.in-berlin.de>
+
+ * src/dialogs/desktop-properties.cpp, src/dialogs/display-settings.cpp:
+ both dialogs are now unresizable (bug #1237865)
+ * src/main.cpp: enhanced doxygen main page
+
+2005-08-21 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * packaging/osx-app.sh: Added a command line option which allows
+ the executable and bundled dylibs to be stripped, significantly
+ reducing the package size.
+
+2005-08-20 Ralf Stephan <ralf@ark.in-berlin.de>
+
+ * src/desktop-style.cpp: fixed bug 1247989: nonstroked objects are
+ no longer counted in stroke_average_width()
+ * src/Doxyfile: added 3 more files
+ * src/main.cpp: introduced doc hierarchy on doxygen main page
+ * src/desktop-style.cpp: improved doxygen documentation
+
+2005-08-20 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/connector-context.cpp, src/connector-context.h:
+ Rework connector context to extend SPEventContext instead of
+ SPDrawContext, and remove most of the borrowed draw context
+ code.
+
+2005-08-20 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/menus-skeleton.h: correct the verb for "Select All In All Layers"
+ since it was just showing a verb error in the menu.
+
+2005-08-19 Kees Cook <kees@outflux.net>
+
+ * autogen.sh, tools-version.sh, distro: report Ubuntu correctly, detect
+ and reject unsafe automake versions (1.9.0 -> 1.9.6).
+
+2005-08-19 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/dialogs/display-settings.cpp:
+ Align the "Oversample bitmaps" option in the preferences
+ dialog with all the other options.
+
+2005-08-18 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/Makefile_insert: Added connector-context.{cpp,h}
+
+ * src/connector-context.cpp, src/connector-context.h: New code for
+ the connector context. Handles the interaction of creating and
+ modifying connectors.
+
+ * src/sp-conn-end.cpp, src/sp-conn-end.h: Added sp_conn_adjust_path
+ for adjusting the path of connectors to the edge of shapes, and
+ sp_conn_end_detach to detach a connector endpoint from a shape.
+ Also, when there is only a single shape attached to a connector
+ and it is moved, then reroute the connector leaving its unattached
+ endpoint where it is, rather than just moving the whole thing with
+ the shape.
+
+ * src/preferences-skeleton.h, src/toolbox.cpp, src/tools-switch.cpp,
+ src/tools-switch.h, src/verbs.cpp, src/verbs.h,
+ src/dialogs/display-settings.cpp, src/dialogs/display-settings.h:
+
+ Enable the connector context. Give it a preferences tab, toolbox,
+ icon, etc. Also, correct some vim modelines.
+
+ * src/display/sp-canvas.cpp: Allow enter and leave events to be generated
+ for canvas items when mouse buttons are depressed.
+
+ * src/pixmaps/cursor-connector.xpm: A cursor for connector context.
+
+2005-08-18 Jon A. Cruz <jon@joncruz.org>
+
+ * src/knot.cpp: Corrected type conflict for crash bugs.
+
+2005-08-18 Ralf Stephan <ralf@ark.in-berlin.de>
+
+ * src/Doxyfile: added 4 more files
+ * src/extension/implementation/plugin-link.h,
+ src/extension/internal/gimpgrad.cpp: improved doxygen documentation
+
+2005-08-16 Ralf Stephan <ralf@ark.in-berlin.de>
+
+ * src/desktop.h, src/desktop.cpp: replaced gboolean with bool
+ * src/display/curve.cpp: made is_moveto() inline
+ * src/knot.cpp, src/extension/extension.cpp, src/helper/action.cpp:
+ added editor footer
+ * src/desktop.h, src/desktop.cpp, src/knot.cpp, src/sp-gradient.cpp,
+ src/display/curve.cpp, src/extension/extension.cpp,
+ src/extension/implementation/plugin.h,
+ src/extension/implementation/plugin.cpp,
+ src/extension/internal/gimpgrad.cpp, src/helper/action.cpp:
+ improved doxygen documentation
+
+2005-08-14 MenTaLguY <mental@rydia.net>
+
+ * src/widgets/layer-selector.cpp: quick fix for crash bug when
+ deleting unnamed layer [bug 1255843]
+
+2005-08-14 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * packaging/macosx/ScriptExec/main.c: Allow the user to ignore the
+ automatic fixing of the fontconfig problem and fix the problem
+ manually. Don't pop up the dialog again in this case when they
+ relaunch Inkscape.
+
+2005-08-13 Ralf Stephan <ralf@ark.in-berlin.de>
+
+ * src/menus-skeleton.h: fixed cvs bug where, in the default menus.xml,
+ given submenus didn't have correct names, so translation on
+ non-English systems was missed.
+
+2005-08-13 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * packaging/macosx/Resources/script, packaging/macosx/ScriptExec/main.c:
+
+ Fix for the fontconfig cache problem on OS X 10.4. The first time
+ Inkscape is launched on 10.4 machines, after checking X11 is available,
+ a dialog is brought up informing users of the fontconfig problem. The
+ dialog has a button to run fc-cache as root. If chosen, an OS X
+ authentication dialog in launched and fc-cache is run following the
+ authentication. A file is stored in ~/.inkscape to mark that fc-cache
+ has been run.
+
+2005-08-11 Ralf Stephan <ralf@ark.in-berlin.de>
+
+ * src/sp-gradient.cpp,src/sp-gradient-fns.h,src/event-context.h,
+ src/event-context.cpp: replaced gboolean with bool
+ * src/document-undo.cpp: added editor footer
+ * src/sp-gradient.cpp, src/desktop.cpp, src/document.h,
+ src/document.cpp, src/document-undo.cpp, src/event-context.h,
+ src/event-context.cpp, src/selection.h:
+ improved doxygen documentation
+
+2005-08-10 David Yip <yipdw@rose-hulman.edu>
+
+ * src/Makefile_insert: added composite-undo-stack-observer.{cpp,h}
+
+ * src/document.{cpp.h},
+ src/document-undo.cpp, src/document-private.h:
+ added hooks for undo stack observer
+
+ * src/jabber_whiteboard/Makefile_insert: added new classes
+
+ * src/jabber_whiteboard/callbacks.cpp: moved document initialization actions
+ here (not the best idea, admittedly...)
+
+ * src/jabber_whiteboard/connection-establishment.cpp,
+ src/jabber_whiteboard/session-manager.*,
+ src/jabber_whiteboard/chat-handler.cpp: updated to work with new listeners
+
+ * src/jabber_whiteboard/message-contexts.cpp,
+ src/jabber_whiteboard/message-handler.*,
+ src/jabber_whiteboard/message-tags.*,
+ src/jabber_whiteboard/defines.h: new message types (TODO: trim out dead
+ types)
+
+ * src/jabber_whiteboard/message-queue.*,
+ * src/jabber_whiteboard/message-node.h: made MessageNode capable of
+ representing more message types, as required by callbacks.cpp
+ and new commit model
+
+ * src/jabber_whiteboard/message-utilities.*: new utilities, although
+ this entire class should be going bye-bye soon (its main tasks have been
+ taken over by SerializerNodeObserver)
+
+ * src/jabber_whiteboard/node-tracker.*: removal of node-level locks
+
+ * src/jabber_whiteboard/node-utilities.*: removal of unnecessary methods;
+ this class should also be removed soon
+
+ * src/jabber_whiteboard/session-file-selector.cpp: miscellaneous tweaks
+
+ * src/jabber_whiteboard/typedefs.h: new type definitions to handle the new
+ commit model (TODO: prune unnecessary types)
+
+ * src/xml/event.cpp: small hack to get Inkboard working (shouldn't be
+ there, but I'm still learning my way around XML::Node and
+ XML::Session...help welcome)
+
+ * src/undo-stack-observer.h: interface for classes that watch undo, redo,
+ and undo log commit events
+
+ * src/composite-undo-stack-observer.*: similar to CompositeNodeObserver;
+ combines multiple undo stack observers
+
+ * src/jabber_whiteboard/serializer-node-observer.*: XML::Event serializer
+
+ * src/jabber_whiteboard/deserializer.*: XML::Event deserializer
+
+ * src/jabber_whiteboard/tracker-action-observer.*: simple observer to
+ watch for added and removed nodes in undo/redo actions (put aside for
+ now)
+
+ * src/jabber_whiteboard/undo-stack-observer.*: Inkboard's undo stack
+ observer implementation
+
+2005-08-10 Ralf Stephan <ralf@ark.in-berlin.de>
+
+ * src/main.cpp: introduced doxygen doc main page with links
+
+2005-08-09 Ralf Stephan <ralf@ark.in-berlin.de>
+
+ * src/Doxyfile: added 5 more files
+ * src/display/curve.h, src/display/curve.cpp, src/knot.cpp,
+ src/dialogs/export.cpp: replaced gboolean with bool
+ * src/display/curve.cpp: removed sp_curve_finish() as it is nowhere
+ called, made sp_curve_ensure_space() static
+ * src/sp-object.cpp, src/sp-item.cpp, src/libnr/n-art-bpath.h,
+ src/libnr/nr-path-code.h, src/ui/view/view.cpp, src/dialogs/export.cpp,
+ src/display/bezier-utils.cpp, src/display/curve.h,
+ src/display/curve.cpp, src/knot.h, src/knot.cpp:
+ improved doxygen documentation
+
+2005-08-08 MenTaLguY <mental@rydia.net>
+
+ * README.txt, README: make autotools happy
+
+2005-08-06 MenTaLguY <mental@rydia.net>
+
+ * Makefile.am, HACKING, HACKING_de, HACKING_fr, HACKING_it,
+ HACKING.txt, HACKING.de.txt, HACKING.fr.txt, HACKING.it.txt,
+ README, README_ca, README_de, README_fr, README_it,
+ README.txt, README.ca.txt, README.de.txt, README.fr.txt, README.it.txt:
+
+ saner filenames
+
+2005-08-06 MenTaLguY <mental@rydia.net>
+
+ * src/xml/Makefile_insert, src/xml/log-builder.cpp,
+ src/xml/log-builder.h, src/xml/simple-session.cpp,
+ src/xml/simple-session.h:
+
+ Implement XML::LogBuilder class and use it from XML::SimpleSession.
+
+2005-08-06 MenTaLguY <mental@rydia.net>
+
+ * src/xml/event.h, src/xml/event.cpp, src/xml/event-fns.h:
+ rejigger the way XML event logs are handled, based on NodeObservers
+
+2005-08-06 MenTaLguY <mental@rydia.net>
+
+ * src/xml/simple-session.cpp: minor formatting cleanups
+
+2005-08-06 Ted Gould <ted@gould.cx>
+
+ * src/interface.cpp, src/verbs.cpp, src/verbs.h:
+
+ Adding in a hash table for Verb ID lookups. This makes searching for them
+ in the dynamic menus much faster.
+
+2005-08-06 Ralf Stephan <ralf@ark.in-berlin.de>
+
+ * src/sp-offset.cpp:
+ removed a dependency, made refresh_offset_source() static
+ * src/svg-view.cpp, src/svg-view.h, src/sp-spiral.cpp, src/sp-spiral.h:
+ replaced gboolean with bool
+ * src/sp-offset.cpp, src/sp-root.cpp, src/sp-stop.h, src/sp-spiral.h,
+ src/sp-spiral.cpp, src/svg-view.h, src/svg-view.cpp, src/style.cpp:
+ improved doxygen documentation
+
+2005-08-05 MenTaLguY <mental@rydia.net>
+
+ * inkscape.spec.in: include translated manpages
+
+2005-08-05 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * po/nl.po: fix a typo: close a bold tag.
+
+2005-08-03 David Yip <yipdw@rose-hulman.edu>
+
+ * src/jabber_whiteboard/typedefs.h:
+ fixed incorrect template specialization syntax,
+ removed duplicate definitions (oops...)
+
+ * src/gc-alloc.h:
+ removed explicit keyword from allocator constructors, as it is
+ necessary to allow implicit conversion for rebinding. Some
+ containers in the libstdc++ in GCC 3.4.x require this, such as anything
+ using the standard library's red-black tree implementation --
+ std::set, std::map, std::multimap
+
+2005-08-03 Ralf Stephan <ralf@ark.in-berlin.de>
+
+ * src/pen-context.cpp: made sp_pen_context_root_handler static
+ * src/snap.h: removed getSnapToBBox() declaration
+ * src/sp-stop.h: removed three dependencies
+ * src/Doxyfile: added further 3 files
+ * src/object-hierarchy.cpp, src/pen-context.h, src/pen-context.cpp,
+ src/pencil-context.h, src/pencil-context.cpp, src/snap.h,
+ src/snap.cpp, src/sp-stop.h, src/sp-gradient.h, src/sp-gradient.cpp,
+ src/sp-linear-gradient.h, src/sp-radial-gradient.h:
+ improved doxygen documentation
+
+2005-08-03 David Yip <yipdw@rose-hulman.edu>
+
+ * src/jabber_whiteboard/Makefile_insert,
+ src/jabber_whiteboard/message-handler.cpp,
+ src/jabber_whiteboard/empty.cpp:
+ fixing some build issues (Apple's ar doesn't like creating
+ archives with an empty member list, so empty.cpp is a null
+ placeholder to be used as the sole member in the jabber_whiteboard
+ archive in the event that a user does not wish to enable
+ Inkboard)
+
+2005-08-02 Bryce Harrington <bryce@bryceharrington.org>
+
+ * src/ui/dialog/*.*: Update copyrights
+
+ * doc/WISHLIST: s/Sodipodi/Inkscape/
+
+ * src/desktop.cpp: Rename SPView to Inkscape::UI::View::View
+
+ * changing include file syntax from "" to <> where appropriate
+
+ * Changing copyrights to be consistent
+
+2005-08-03 David Yip <yipdw@rose-hulman.edu>
+
+ * src/menus-skeleton.h:
+ added WITH_INKBOARD ifdef to prevent Inkboard options from being
+ compiled into the menu skeleton if the Inkboard code is not enabled
+
+2005-08-03 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * src/display/curve.cpp: Correctly free an array with "delete []".
+
+2005-08-02 David Yip <yipdw@rose-hulman.edu>
+
+ * src/jabber/whiteboard/node-tracker.cpp:
+ removed unnecessary anchoring of XML::Nodes in XMLNodeTracker
+
+2005-08-02 David Yip <yipdw@rose-hulman.edu>
+
+ * src/jabber_whiteboard/typedefs.h:
+ moved back to GC::Alloc from traceable_allocator
+
+ * src/jabber_whiteboard/node-tracker.cpp:
+ fixed anchor-release problem with XML::Nodes in XMLNodeTracker
+
+2005-08-01 MenTaLguY <mental@rydia.net>
+
+ * src/gc.cpp, src/gc-core.h: Hans says it's okay to use
+ GC_malloc_atomic_uncollectable
+
+2005-08-01 MenTaLguY <mental@rydia.net>
+
+ * src/gc-alloc.h: fix improper allocation size
+
+2005-08-01 David Yip <yipdw@rose-hulman.edu>
+
+ * src/jabber_whiteboard/message-handler.cpp: removed some
+ debug output
+
+ * src/dialogs/whiteboard-sharewithchat.cpp: removed some excess
+ debugging code
+
+ * src/jabber_whiteboard/session-manager.cpp: removed
+ redundant if (x == NULL) tests surrounding delete
+
+2005-08-01 David Yip <yipdw@rose-hulman.edu>
+
+ * src/ui/icons.cpp, src/ui/stock-items.cpp, src/ui/stock.cpp,
+ src/ui/stock.h:
+ added Inkboard UI stock items
+
+ * src/dialogs/whiteboard*:
+ old C/Gtk Inkboard dialogs for collecting user input necessary
+ to establish Jabber connections and Inkboard sessions (they're
+ still used in some parts of the Inkboard code)
+
+ * src/Makefile.am, src/Makefile_insert, src/desktop.cpp,
+ src/desktop.h, src/document.cpp, src/file.cpp, src/file.h,
+ src/menus-skeleton.h, src/verbs.cpp, src/verbs.h:
+ added necessary UI code to access Inkboard functions
+
+ * src/jabber_whiteboard/Makefile_insert,
+ src/jabber_whiteboard/buddy-list-manager.*,
+ src/jabber_whiteboard/callbacks.*,
+ src/jabber_whiteboard/chat-handler.*,
+ src/jabber_whiteboard/connection-establishment.*,
+ src/jabber_whiteboard/defines.h,
+ src/jabber_whiteboard/error*,
+ src/jabber_whiteboard/internal-constants.*,
+ src/jabber_whiteboard/invitation-confirm-dialog.*,
+ src/jabber_whiteboard/jabber-handlers.*,
+ src/jabber_whiteboard/makefile*,
+ src/jabber_whiteboard/message-*,
+ src/jabber_whiteboard/node-*,
+ src/jabber_whiteboard/received-message-helpers.cpp,
+ src/jabber_whiteboard/player-functors.*,
+ src/jabber_whiteboard/session-*,
+ src/jabber_whiteboard/tracker-node.h,
+ src/jabber_whiteboard/typedefs.h:
+ Initial commit of Inkboard code
+ * src/ui/dialog/session-player*,
+ src/ui/dialog/whiteboard*:
+ C++/Gtkmm replacements for some old C/Gtk dialogs
+ * configure.ac:
+ added Inkboard configure checks
+ * src/ui/view/edit.cpp,
+ src/ui/view/edit.h,
+ src/ui/view/view.cpp:
+ added Inkboard code stubs to new Gtkmm code
+ * share/ui/menus-bars.xml:
+ added Inkboard code stubs to menu UI XML
+
+2005-08-01 Ralf Stephan <ralf@ark.in-berlin.de>
+
+ * src/sp-object.cpp: improved doxygen documentation
+
+2005-07-31 Ralf Stephan <ralf@ark.in-berlin.de>
+
+ * src/nodepath.cpp: removed three dependencies
+
+2005-07-31 MenTaLguY <mental@rydia.net>
+
+ * src/sp-object.cpp, src/sp-object.h, src/sp-use.cpp:
+ adopt more consistent refcounting policy
+
+ * src/sp-object.h: make second parameter to sp_object_ref and
+ sp_object_unref optional
+
+2005-07-30 Ralf Stephan <ralf@ark.in-berlin.de>
+
+ * src/draw-anchor.cpp, src/nodepath.h: reduced dependencies
+ * src/nodepath.cpp: removed duplicate dependency, added two from
+ nodepath.h, made triangle_area() inline
+ * src/node-context.cpp: added dependency removed from nodepath.h
+ * src/Doxyfile: added 2 further files to the scanned list
+ * src/nodepath.h: moved function docs into nodepath.cpp
+ * src/color.cpp: made file work with src/Doxyfile
+ * src/color.cpp, src/draw-anchor.cpp, src/geom.cpp, src/nodepath.cpp:
+ improved doxygen documentation
+ * src/event-context.cpp: added a \todo
+ * src/geom.cpp: added editor footer
+
+2005-07-30 Ted Gould <ted@gould.cx>
+
+ * src/Makefile_insert, src/inkscape.cpp, src/inkscape.h,
+ src/interface.cpp, src/selection.cpp, src/verbs.cpp, src/verbs.h,
+ src/extension/effect.cpp, src/extension/effect.h, src/menus-skeleton.h:
+
+ Doing two things. One, making menus configurable by an external xml file
+ and the second is enabling sensitivity in the verbs. These are both in
+ pretty basic states right now, but workable.
+
+2005-07-29 MenTaLguY <mental@rydia.net>
+
+ * src/shortcuts.cpp: made Ctrl+Shift+G the "primary" ungroup shortcut
+
+2005-07-28 Carl Hetherington <inkscape@carlh.net>
+
+ * src/arc-context.cpp: CodingStyle. Replace gboolean with bool.
+
+ * src/desktop-events.cpp: CodingStyle: whitespace. Add editor
+ variables block. gboolean exorcism. Declaration-to-first-use fixes.
+
+
+2005-07-27 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/style.h (SP_SCALE24_MAX): Change from 0xffffff to 0xff0000,
+ and add documentation for choice of value.
+ (SP_SCALE24_TO_FLOAT) Return a double instead of a float.
+ (SP_SCALE24_FROM_FLOAT) Change rounding behaviour.
+ These changes are intended to combat float rounding bugs on x86.
+
+ * src/style.cpp (sp_style_merge_from_style_string): Use libcroco
+ to parse style="..." attribute strings, to improve CSS parsing.
+
+2005-07-27 Ralf Stephan <ralf@ark.in-berlin.de>
+
+ * src/Doxyfile: added 10 further files to the scanned list
+ * src/gc-anchored.h, src/gc-managed.h, src/object-hierarchy.h,
+ src/pencil-context.h, src/selection.h, src/sp-object.h, src/sp-spiral.h,
+ src/svg-view.h, src/verbs.h, src/livarot/float-line.h, src/util/list.h,
+ src/widgets/paint-selector.h, src/xml/repr.h:
+ made file work with src/Doxyfile
+ * src/livarot/int-line.h, src/livarot/float-line.h:
+ moved part of documentation into *.cpp file
+ * src/gc-anchored.h, src/knot-holder-entity.h, src/nodepath.h,
+ src/pen-context.h, src/pencil-context.h, src/selection.h,
+ src/sp-gradient.h, src/sp-gradient.cpp, src/sp-item.h, src/sp-object.h,
+ src/sp-spiral.h, src/style.h, src/svg-view.h, src/extension/extension.h,
+ src/libnr/nr-matrix.h, src/livarot/int-line.h, src/livarot/int-line.cpp,
+ src/livarot/float-line.h, src/livarot/float-line.cpp,
+ src/livarot/sweep-event.h, src/livarot/sweep-event-queue.h,
+ src/util/list.h, src/widgets/paint-selector.h, src/xml/repr.h,
+ src/xml/repr.cpp: documentation improvements
+ * src/sp-item.h: added editor footer
+
+2005-07-26 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/svg/stringstream.h, src/svg/stringstream.cpp:
+ Trim trailing zeros from after the decimal point when writing
+ float or double to Inkscape::SVGOStringStream.
+ * src/style-test.cpp: Update expected output accordingly.
+ * src/svg/stringstream-test.h: New unit test.
+ * src/Makefile.am, src/svg/Makefile_insert: Add the new unit test.
+ * src/svg/Makefile_insert:
+ Don't link unused ftos.cpp, but do link new file stringstream.cpp.
+
+2005-07-26 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * share/icons/icons.svg: Add icon for connector context.
+
+2005-07-25 Ralf Stephan <ralf@ark.in-berlin.de>
+
+ * src/libnr/nr-pixblock.h: interface cleanup of NRPixBlock: size and mode
+ are now named enums, empty is now bool, changes to function interfaces
+ because of that, changed C macros to C++ inline functions, changed clean
+ flag in some function interfaces from int to bool.
+ * src/libnr/nr-pixblock.cpp: adaptations due to changes in nr-pixblock.h,
+ added assert to ...setup_extern() which remains a bit ... risky,
+ * src/display/sp-canvas.cpp:
+ made sp_canvas_item_construct() static, inlined two other functions
+ * src/svg-view.cpp: piped emit_resized through C++ façade (incomplete)
+ * src/ui/view/view.h: removed legacyMessageContext() member
+ * src/Doxyfile: added files, and options to collect todo and bugs
+ * src/display/curve.cpp: moved member docs into curve.h
+ * src/event-context.cpp: long line cosmetics, moved a function for clarity
+ * src/sp-offset.h, src/sp-spiral.cpp, src/svg-view.cpp,
+ src/libnr/nr-types.h: added editor footer
+ * src/color-rgba.h, src/draw-anchor.h, src/event-context.*, src/knot-*.h,
+ src/message-*.h, src/modifier-fns.h, src/nodepath.h,
+ src/pencil-context.cpp, src/pen-context.*, src/snap.*, src/sp-gradient.h,
+ src/sp-gradient-fns.h, src/sp-item.cpp, src/sp-item-notify-moveto.h,
+ src/sp-linear-gradient*, src/sp-offset.*, src/sp-radial-gradient*,
+ src/sp-spiral.cpp, src/style.cpp, src/svg-view.cpp, src/verbs.cpp,
+ src/dialogs/export.cpp, src/display/bezier-utils.cpp,
+ src/display/curve.*, src/diplay/sp-canvas.*,
+ src/extension/implementation/plugin*, src/extension/internal/gimpgrad.h,
+ src/libnr/nr-matrix.h, src/libnr/nr-matrix-scale-ops.h,
+ src/libnr/nr-matrix-translate-ops.h, src/libnr/nr-pixblock.*,
+ src/libnr/nr-point.h, src/libnr/nr-rotate.h, src/libnr/nr-rotate-fns.h,
+ src/libnr/nr-scale-matrix-ops.h, src/libnr/nr-types.h,
+ src/livarot/int-line.h, src/ui/view/view.*:
+
+ made file work with src/Doxygen, doxygen documentation improvements
+
+2005-07-24 Ted Gould <ted@gould.cx>
+
+ * 0.42 Release
+
+2005-07-21 Ted Gould <ted@gould.cx>
+
+ * 0.42pre3
+
+2005-05-21 Kees Cook <kees@outflux.net>
+
+ * share/icons/*xpm, src/ui/dialog/transformation.cpp,
+ src/ui/widget/labelled.cpp, src/ui/widget/labelled.h:
+ Hooked up Gtkmmified Icon manager correctly. (bug 1217367)
+ * Makefile.mingw, Makefile.mingw.common: patch 1241293 for build fixes
+
+2005-07-12 Ted Gould <ted@gould.cx>
+
+ * 0.42pre2
+
+2005-07-11 MenTaLguY <mental@rydia.net>
+
+ * src/debug/logger.cpp: wrap stack vector in method to avoid
+ potential static initialization issues
+
+ * src/sp-object.cpp: add refcount logging
+
+2005-07-09 MenTaLguY <mental@rydia.net>
+
+ * src/document-undo.cpp, src/inkscape.cpp, src/debug/event.h,
+ src/debug/logger.cpp, src/debug/logger.h, src/debug/simple-event.h,
+ src/xml/composite-node-observer.cpp, src/xml/event.cpp,
+ src/xml/simple-node.cpp:
+
+ Categorize debugging events and add the ability to filter them
+ via setting the INKSCAPE_DEBUG_FILTER environment variable to
+ a comma-separated list of debug event categories.
+
+2005-07-06 Ben Fowler <bpfowler@users.sourceforge.net>
+
+ * src/interface.cpp: Spackle for Bug 1217361 "freeze on quitting
+ with transform dialog"
+
+2005-07-06 Ben Fowler <bpfowler@users.sourceforge.net>
+
+ * src/interface.cpp: Whitespace changes only
+
+2005-07-06 Michael Wybrow <mjwybrow@users.sourceforge.net>
+
+ * Info.plist.in, packaging/osx-app.sh, packaging/macosx/*:
+
+ Changes and new files required to build an Inkscape dmg on Mac OS X.
+
+2005-07-05 Ted Gould <ted@gould.cx>
+
+ * 0.42pre1
+
+2005-07-04 MenTaLguY <mental@rydia.net>
+
+ * src/sp-metadata.cpp: strip id= attributes under rdf:RDF elements
+
+2005-07-04 MenTaLguY <mental@rydia.net>
+
+ * src/sp-object.cpp, src/xml/node-fns.h, src/xml/node-fns.cpp:
+ don't force id= attributes on anything except elements in the SVG,
+ Sodipodi, or Inkscape namespaces.
+
+2005-07-04 MenTaLguY <mental@rydia.net>
+
+ * src/verbs.cpp: redo cryve's fix to use defaultLabel() rather than
+ label()
+
+2005-07-04 Bryce Harrington <bryce@bryceharrington.org>
+
+ * src/livarot/float-line.cpp: Patch from Ralf Stephan
+ <ralf@ark.in-berlin.de> to suppress two warnings.
+
+2005-06-28 Ted Gould <ted@gould.cx>
+
+ * src/verbs.h:
+
+ Changing from gnu::hash_map to std::map. The only reason this was a
+ hash_map before is because I was stealing code that I didn't understand,
+ and a std::map works as well. This fixes bug #1172199 for Tru64.
+
+2005-06-28 Ted Gould <ted@gould.cx>
+
+ * src/extension/dependency.cpp:
+
+ Fix for #1169396 -- setting the default type for a dependency to file,
+ this seems to be the only way that the print function could end up using
+ undefined memory, and then passing it on the gettext.
+
+2005-06-28 Ted Gould <ted@gould.cx>
+
+ * src/extension/implementation/script.cpp,
+ src/extension/implementation/script.h:
+
+ Adding support for information coming back on STDERR from scripts. This
+ fixes bug #1220959 and RFE #1178941
+
+2005-07-04 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/sp-stop.h, sp-gradient.cpp, widgets/gradient-vector.cpp:
+ Implement currentColor as possible value for stop-color, as per spec.
+
+2005-07-02 Kees Cook <kees@outflux.net>
+
+ * src/dialog/rdf.cpp: Added FreeArt license, RFE #1230981.
+
+2005-06-30 Bryce Harrington <bryce@bryceharrington.org>
+
+ * inkscape.nsi: Fix for bug #1230744 'wrong installer language'
+ by theadib.
+
+ * src/swatches.cpp: Fix for bug #1217973. The KDE swatches file
+ consists of 3 column numbers (missing 4th column), and also lacks
+ an ending newline. In this situation, the name variable returned
+ from trim() could be null, thus causing a segfault when used as an
+ input to Glib::ustring.
+
+ * src/sp-image.cpp: Patch for bug #1210100 by bpfowler to help
+ narrow in on the cause of the bug.
+
+ * README: Requested change for bug #1174991. Directions for
+ installation of perl libs
+
+2005-07-01 Ben Fowler <bpfowler@users.sourceforge.net>
+
+ * src/desktop.cpp src/svg-view.cpp src/dialogs/display-settings.cpp
+ src/dialogs/export.cpp src/dialogs/find.cpp
+ src/extension/internal/ps.cpp: Replaced calls to gtk_widget_set_usize
+ with GTK2 version.
+
+2005-06-30 Bryce Harrington <bryce@bryceharrington.org>
+
+ * inkscape.pod, src/main.cpp: Applying Makzu's patch to implement
+ --vacuum-defs
+
+2005-06-28 Ted Gould <ted@gould.cx>
+
+ * 0.42pre0
+
+2005-06-23 MenTaLguY <mental@rydia.net>
+
+ * src/extension/implementation/script.cpp:
+ support for ruby scripts (interpreter="ruby")
+
+2005-06-20 Ted Gould <ted@gould.cx>
+
+ * src/desktop.cpp, src/desktop.h, src/document-private.h,
+ src/document.cpp, src/document.h, src/extension/effect.h,
+ src/extension/implementation/script.cpp:
+
+ Adding in a signal to show that the document is being reconstructed from
+ another document. This is used by the scripting extensions implementation
+ to say to the desktops that they need to save their object references
+ as strings instead of pointers -- and then recreate them when the
+ reconstruction is complete.
+
+ * src/extension/prefdialog.cpp: Making "OK" have focus.
+
+ * src/verbs.cpp, src/verbs.h: Some prototype code to start making verbs
+ sensitive or not. Not tied in to anything currently.
+
+2005-06-20 MenTaLguY <mental@rydia.net>
+
+ * src/xml/repr-io.cpp: whoops... don't emit xmlns:xml
+
+2005-06-18 Richard Hughes <cyreve@users.sourceforge.net>
+
+ * src/text-context.cpp, src/text-context.h, src/libnrtype/Layout-TNG.h:
+ implement double- and triple-clicking of text for selecting the
+ current word and line respectively
+
+2005-06-16 MenTaLguY <mental@rydia.net>
+
+ * src/interface.cpp: removed "Go to root" context menu item
+
+ * src/widgets/layer-selector.cpp: hide "(root)" unless it is the current
+ layer
+
+2005-06-11 Aaron Spike <aaron@ekips.org>
+
+ * confiugre.ac,
+ packaging/autopackage/default.apspec.in:
+
+ Adding the autopackage specfile
+
+2005-06-10 Richard Hughes <cyreve@users.sourceforge.net>
+
+ * src/text-context.cpp:
+ use ctrl-left/right for moving cursor by word in text mode,
+ and ctrl-a for select all text
+
+2005-06-09 Bryce Harrington <bryce@bryceharrington.org>
+
+ * src/ui/dialogs/align-and-distribute.cpp,
+ src/ui/dialogs/align-and-distribute.h,
+ src/verbs.cpp:
+ Hooking up Aubanel's new align and distribute dialog
+
+2005-06-09 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/text-context.cpp (sp_text_context_root_handler):
+ Greater conformance to ISO 14755 for unicode entry. We now
+ implement all of the ``Basic method'' portion of that spec
+ except for non-latin hexadecimal digits (first 6 letters of
+ other alphabets). (Instead, we do the same as for all other
+ shortcuts, viz. force a group0 (latin) interpretation of the
+ keypress.)
+
+2005-06-07 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/pen-context.cpp (spdc_endpoint_snap): Pen tool: do snapping
+ (i.e. namedview_free_snap_all_types) even for initial point.
+
+ * src/Makefile.am (INCLUDES), src/extension/script/Makefile_insert
+ (extension_script_libscript_a_CXXFLAGS):
+
+ Put PERL_CFLAGS PYTHON_CFLAGS into global INCLUDES rather than
+ using a libscript_a_CXXFLAGS var (which involved creating .o files
+ specific to that lib).
+
+2005-06-06 Ted Gould <ted@gould.cx>
+
+ * src/extensions/effect.cpp:
+
+ Adding in the code so that effects can be undoable.
+
+ * src/extensions/implementation/script.[cpp,h]
+
+ Adding in the code so that a new window is not displayed when an
+ effect is executed. Now it is in the same window (much nicer).
+
+ * src/extensions/internal/latex*.[cpp,h]
+
+ Patches from the mailing list to add LaTeX output.
+
+2005-06-04 MenTaLguY <mental@rydia.net>
+
+ * src/extensions/init.cpp:
+
+ That tears it. Showing the error dialog on startup goes. I've
+ had to respond to one too many bloody bug reports. If we released
+ 0.42 with this too we'll drive away users permanently. As it was,
+ a lot of people were assuming 0.41 was broken when they saw this
+ and reverted to 0.40.
+
+2005-05-31 MenTaLguY <mental@rydia.net>
+
+ * src/preferences-skeleton.h: disable extension error dialog on startup
+ -- I'm sick of hearing that Inkscape is broken because people see
+ this dialog on startup. It makes us look bad.
+
+ We're not going to repeat this for 0.42 -- find a better approach.
+
+2005-05-28 MenTaLguY <mental@rydia.net>
+
+ * src/document.cpp, src/sp-ellipse.cpp, src/sp-flowdiv.cpp,
+ src/sp-flowtext.cpp, src/sp-object.cpp, src/sp-object.h,
+ src/sp-path.cpp, src/sp-rect.cpp, src/sp-root.cpp, src/sp-root.h,
+ src/sp-shape.cpp, src/version.cpp, src/version.h:
+
+ propagate SVG version upwards, and move SPVersion into Inkscape
+ namespace
+
+2005-05-24 Simarilius <Simarilius@yahoo.com>
+
+ * src/verbs.cpp, src/dialogs/tiledialog.cpp, src/dialogs/tiledialog.h,
+ src/ui/dialogs/dialog-manager.cpp
+
+ Converted the tiledialog over to the inkscape:ui:dialog class and hooked
+ it into dialog manager
+
+2005-05-24 Ted Gould <ted@gould.cx>
+
+ * src/extension/dependency.cpp, src/extension/extension.cpp,
+ src/extension/extension.h, src/extension/init.cpp,
+ src/extension/implementation/script.cpp:
+
+ Applying patch 1199856 which allows Inkscape to have multiple directories
+ for extensions. Currently those are /share/inkscape/extensions and
+ ~/.inkscape/extensions. The patch was written by Aaron Spike.
+
+2005-05-23 Ted Gould <ted@gould.cx>
+
+ * share/extensions/<alot>
+
+ Adding in Aaron Spike's extensions so that they come with the standard
+ build. Lot's of useful stuff that is worth having for most users.
+
+2005-05-19 MenTaLguY <mental@rydia.net>
+
+ * src/verbs.cpp, src/ui/dialog/align-and-distribute.h,
+ src/ui/dialog/dialog-manager.cpp, src/ui/dialog/dialog-manager.h,
+ src/ui/dialog/document-preferences.h, src/ui/dialog/export.h,
+ src/ui/dialog/extension-editor.h, src/ui/dialog/fill-and-stroke.h,
+ src/ui/dialog/find.h, src/ui/dialog/inkscape-preferences.h,
+ src/ui/dialog/layer-editor.h, src/ui/dialog/messages.h,
+ src/ui/dialog/text-properties.h, src/ui/dialog/transformation.h,
+ src/ui/dialog/xml-editor.h, src/ui/view/edit.cpp:
+
+ refactoring of the dialog manager code, introducing factory
+ functions and a method specifically for showing a dialog
+
+2005-05-19 MenTaLguY <mental@rydia.net>
+
+ * src/widgets/layer-selector.cpp, src/widgets/layer-selector.h:
+
+ fix layer property undo crash bugs (#1192708 and #1171704)
+
+2005-05-19 MenTaLguY <mental@rydia.net>
+
+ * src/debug/Makefile_insert, src/debug/sysv-heap.cpp,
+ src/debug/sysv-heap.h, src/gc.cpp, src/debug/gc-heap.h,
+ src/debug/heap.cpp:
+
+ moved GC Heap statistics stuff into libdebug to ease circular
+ dependencies
+
+2005-05-17 MenTaLguY <mental@rydia.net>
+
+ * src/ui/dialog/memory.cpp:
+
+ reduce magnitude of memory jitter somewhat by avoiding some vector
+ resizing and copying
+
+2005-05-16 MenTaLguY <mental@rydia.net>
+
+ * src/gc.cpp, src/debug/heap.cpp, src/debug/heap.h:
+
+ revised Debug::Heap API slightly
+
+ * src/ui/dialog/memory.cpp, src/ui/dialog/memory.h:
+
+ thousands separators and other niceties. 'apply' now forces a
+ garbage collection and immediate update.
+
+2005-05-16 MenTaLguY <mental@rydia.net>
+
+ * src/ui/dialog/memory.cpp: re-use existing rows, though it doesn't
+ seem to help memory jitter much
+
+2005-05-15 MenTaLguY <mental@rydia.net>
+
+ * src/debug/heap.cpp: fix bounds error
+
+ * src/ui/dialog/memory.cpp, src/ui/dialog/memory.h:
+
+ flesh out basic memory info dialog
+
+2005-05-15 MenTaLguY <mental@rydia.net>
+
+ * configure.ac: cleaned up tests
+
+ * src/debug/heap.cpp: fixed feature macro names
+
+2005-05-15 MenTaLguY <mental@rydia.net>
+
+ * configure.ac: added tests for mallinfo and malloc.h
+
+ * src/gc.cpp, src/debug/heap.cpp, src/debug/heap.h:
+
+ fix up Debug::Heap API slightly
+
+2005-05-14 MenTaLguY <mental@rydia.net>
+
+ * src/interface.cpp, src/verbs.cpp, src/verbs.h,
+ src/ui/dialog/Makefile_insert, src/ui/dialog/dialog-manager.cpp,
+ src/ui/dialog/dialog-manager.h, src/ui/dialog/memory.cpp,
+ src/ui/dialog/memory.h:
+
+ added skeletal memory statistics dialog
+
+2005-05-12 Juerg Billeter <j@bitron.ch>
+
+ * configure.ac: Have pkgconfig explicitly require gdkmm-2.4 & glibmm-2.4
+ (used directly by Inkscape), rather than relying on transitive
+ dependencies. It's said that this is required in some cases with
+ pkgconfig 0.17 and later.
+
+2005-05-08 Bryce Harrington <bryce@bryceharrington.org>
+
+ * ChangeLog configure.ac src/Makefile_insert src/desktop-widget.h
+ src/desktop.h src/dropper-context.cpp src/file.cpp
+ src/shortcuts.cpp src/sp-text.cpp src/splivarot.cpp
+ src/svg-view.h src/text-context.cpp src/verbs.cpp
+ src/extension/implementation/plugin-link.h
+ src/extension/internal/grid.cpp src/helper/action.h
+ src/helper/window.cpp src/ui/dialog/dialog.cpp
+ src/ui/dialog/messages.cpp src/ui/view/view.cpp
+ src/ui/view/view.h:
+
+ Moving view.* into src/ui/view/
+
+2005-05-09 MenTaLguY <mental@rydia.net>
+
+ * src/gc-alloc.h: const-correctness fix
+
+2005-05-08 Bryce Harrington <bryce@bryceharrington.org>
+
+ * configure.ac: Defaulting with-gnome-vfs to on if library is
+ present.
+
+ * po/POTFILES.in : Fixed error causing compile failure
+
+ * src/Makefile_insert src/arc-context.cpp src/desktop-events.cpp
+ src/desktop.cpp src/desktop.h src/dyna-draw-context.cpp
+ src/gradient-context.cpp src/gradient-toolbar.cpp
+ src/interface.cpp src/make.dep src/make.files
+ src/rect-context.cpp src/select-context.cpp
+ src/select-toolbar.cpp src/seltrans.cpp src/spiral-context.cpp
+ src/star-context.cpp src/toolbox.cpp src/verbs.cpp src/view.cpp
+ src/view.h src/application/application.cpp
+ src/application/application.h src/application/editor.cpp
+ src/application/editor.h src/ui/dialog/align-and-distribute.cpp
+ src/ui/dialog/align-and-distribute.h
+ src/ui/dialog/dialog-manager.cpp src/ui/dialog/dialog-manager.h
+ src/ui/dialog/dialog.cpp src/ui/dialog/dialog.h
+ src/ui/dialog/document-preferences.cpp
+ src/ui/dialog/document-preferences.h src/ui/dialog/export.cpp
+ src/ui/dialog/export.h src/ui/dialog/extension-editor.cpp
+ src/ui/dialog/extension-editor.h
+ src/ui/dialog/fill-and-stroke.cpp
+ src/ui/dialog/fill-and-stroke.h src/ui/dialog/find.cpp
+ src/ui/dialog/find.h src/ui/dialog/inkscape-preferences.cpp
+ src/ui/dialog/inkscape-preferences.h
+ src/ui/dialog/layer-editor.cpp src/ui/dialog/layer-editor.h
+ src/ui/dialog/messages.h src/ui/dialog/text-properties.cpp
+ src/ui/dialog/text-properties.h
+ src/ui/dialog/transformation.cpp src/ui/dialog/transformation.h
+ src/ui/dialog/tree-editor.h src/ui/dialog/xml-editor.cpp
+ src/ui/dialog/xml-editor.h src/ui/view/Makefile_insert
+ src/ui/view/edit.cpp src/ui/view/edit.h :
+
+ Renaming sp-desktop-widget.h to desktop-widget.h for
+ consistency with other desktop files. Beginning migration of
+ desktop-* and view* files into ui/view/ subdir. Incorporating
+ DialogManager into existing SPDesktop code. Making SPView
+ derive from GObject. Changing Messages dialog to run via
+ DialogManager. Removing getName() and getDesc() routines from
+ Dialogs.
+
+2005-05-08 MenTaLguY <mental@rydia.net>
+
+ * src/Makefile_insert: change link order since the GC code now
+ depends on the debugging stuff
+
+ * src/debug/Makefile_insert, src/debug/heap.cpp, src/debug/heap.h:
+
+ added heap statistics stuff
+
+ * src/gc.cpp: register the GC heap with the heap statistics facility
+
+2005-05-07 MenTaLguY <mental@rydia.net>
+
+ * src/gc-anchored.h, src/gc-core.h, src/gc-finalized.h,
+ src/gc-managed.h, src/gc.cpp:
+
+ hide the global Ops structure from the outside world, and expose
+ some additional libgc API.
+
+2005-05-07 Ted Gould <ted@gould.cx>
+
+ * src/extension/parameter.cpp: bug fix for empty string parameter
+
+ * share/extensions/dropshadow.inx,
+ src/extension/implementation/script.cpp:
+
+ Adding in an "interpreter" attribute for "command" that will prepend
+ the command with the interpreter. Right now only "perl" and "python"
+ work, and they only prepend "perl" and "python", but more will be
+ added later.
+
+2005-05-07 MenTaLguY <mental@rydia.net>
+
+ * src/xml/composite-node-observer.cpp: bug fixes
+
+ * src/xml/simple-node.cpp, src/xml/simple-node.h: switch to using
+ CompositeNodeObserver, which has saner add/remove semantics
+
+ * src/util/list-container-test.cpp: add another test, just to be sure
+
+ * src/dialogs/xml-tree.cpp: remove need for is_interactive flag on
+ attribute changes (the flag is effectively disabled by the other
+ changes)
+
+2005-05-05 MenTaLguY <mental@rydia.net>
+
+ * src/debug/event.h, src/debug/logger.cpp:
+
+ PropertyPair is now its own class
+
+ * src/xml/simple-node.cpp: add logging of XML node mutation
+
+ * src/xml/Makefile_insert, src/xml/composite-node-observer.cpp,
+ src/xml/composite-node-observer.h:
+
+ added CompositeNodeObserver class, which will eventually replace
+ the existing notifier lists
+
+2005-05-05 MenTaLguY <mental@rydia.net>
+
+ * src/inkscape.cpp: try to cleanly terminate log in case of crashes
+
+2005-05-05 MenTaLguY <mental@rydia.net>
+
+ * src/document-undo.cpp, src/debug/Makefile_insert, src/debug/logger.cpp,
+ src/debug/simple-event.h, src/xml/event.cpp:
+
+ add debug logging for undo+redo+transactions
+
+2005-05-05 MenTaLguY <mental@rydia.net>
+
+ * src/inkscape.cpp, src/main.cpp: initialize and shutdown debug log
+ from more reliable place
+
+ * src/debug/logger.cpp: clean up log via std::atexit()
+
+2005-05-04 MenTaLguY <mental@rydia.net>
+
+ * configure.ac, src/Makefile.am, src/Makefile_insert,
+ src/debug/Makefile_insert, src/debug/makefile.in:
+
+ added src/debug/ subdir
+
+ * src/gc-alloc.h: no default management type for now
+
+ * src/debug/event-tracker.h, src/debug/event.h, src/debug/logger.cpp,
+ src/debug/logger.h: simple XML logging facility
+
+ * src/util/Makefile_insert: fixed cut-and-paste error
+
+2005-04-29 Jon A. Cruz <jon@joncruz.org>
+ * src/dialogs/swatches.cpp, src/dialogs/eek-preview.h,
+ src/dialogs/eek-preview.cpp:
+
+ Added property to swatch to block taking focus.
+
+2005-04-28 Jon A. Cruz <jon@joncruz.org>
+ * src/dialogs/Makefile_insert, src/dialogs/eek-preview.cpp,
+ src/dialogs/eek-preview.h, src/dialogs/swatches.cpp,
+ src/dialogs/swatches.h, src/ui/previewholder.cpp,
+ src/ui/previewable.h, src/ui/widget/panel.cpp:
+
+ Adding new widget for color swatch usage.
+
+2005-04-24 Bryce Harrington <bryce@bryceharrington.org>
+
+ * src/Makefile.am src/Makefile_insert,
+ src/application/Makefile_insert, src/application/editor.cpp,
+ src/application/editor.h, src/extension/internal/svg.cpp,
+ src/ui/Makefile_insert, src/ui/view/Makefile_insert,
+ src/ui/view/edit.cpp, src/ui/view/edit.h, src/ui/view/makefile.in,
+ src/application/editor-impl.cpp, src/application/editor-impl.h:
+
+ Renaming EditorImpl to UI::View::Edit
+
+ Fixing bug 1185873 "batch mode crasher" caused by VFS being
+ called with relative paths. Adding a check to see whether the
+ input is a valid uri, and if not, just calling sp_document_new
+ directly.
+
+
+2005-04-23 Ted Gould <ted@gould.cx>
+
+ * src/extension/input.cpp, src/extension/input.h,
+ src/extension/output.cpp, src/extension/output.h,
+ src/extension/system.cpp, src/extension/implementation/implementation.cpp,
+ src/extension/implementation/implementation.h,
+ src/extension/implementation/plugin-link.h,
+ src/extension/implementation/plugin.cpp,
+ src/extension/implementation/plugin.h,
+ src/extension/implementation/script.cpp,
+ src/extension/implementation/script.h, src/extension/internal/eps-out.cpp,
+ src/extension/internal/eps-out.h:
+
+ Changing the prototype for the input/output preferences to be closer to
+ that of Effects. This is a good thing because now autogui can be used for
+ all, and it is much cleaner. Unfortunately, this caused alot of files to
+ be changed. Also, this sets up the extensions dialog (we're only using
+ one now) to be integrated into the GTKmm codebase easier.
+
+2005-04-21 Jon A. Cruz <jon@joncruz.org>
+ * src/widgets/sp-color-wheel-selector.cpp,
+ src/widgets/sp-color-scales.h, src/widgets/sp-color-slider.cpp,
+ src/widgets/sp-color-scales.cpp:
+ Changed CMYK selector to display values as 0-100. Fixes REF #1124499.
+
+2005-04-21 Jon A. Cruz <jon@joncruz.org>
+ * src/xml/repr-io.cpp:
+ Expand entities; matches 0.41 behavior. Fixes bug #1157478.
+
+2005-04-20 Jon A. Cruz <jon@joncruz.org>
+ * src/sp-object-repr.cpp:
+ Turned off the half-done <animate> element. Fixes bug #1119935.
+
+2005-04-19 Carl Hetherington <inkscape@carlh.net>
+
+ * src/pen-context.cpp: snap first point to grid correctly, fixing
+ #1152057. Remove a pointless call to spdc_endpoint_snap().
+
+ * src/main.cpp: support for command-line export of PS and EPS,
+ with options.
+
+2005-04-19 Piers Titus van der Torren <piersvdt@users.sourceforge.net>
+ * src/seltrans.cpp:
+ Fixed skew so it displays and snaps to angle instead of percentage.
+
+2005-04-18 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/extension/internal/pov-out.cpp (PovOutput::save):
+ Was dividing component bytes by 256 instead of the usual 255 to get
+ floating point component. Changed to use sp_color_get_rgb_floatv
+ instead. (N.B. This change is wrong if pov files disallow 1.0.)
+
+ Multiply opacity by product of all ancestors' opacity property computed
+ value.
+
+2005-04-18 Carl Hetherington <inkscape@carlh.net>
+
+ * src/sp-line.cpp, src/dialogs/unclump.cpp,
+ src/extension/internal/ps.cpp,
+ src/libnrtype/Layout-TNG-Output.cpp,
+ src/Layout-TNG-Scanline-Makers.cpp, src/livarot/PathCutting.cpp:
+ add missing include of nr-point-matrix-ops.h.
+
+2005-04-17 Jon A. Cruz <jon@joncruz.org>
+ * src/toolbox.cpp:
+
+ Corrected improper use of static. Fixes bug #1171919.
+
+2005-04-16 Ted Gould <ted@gould.cx>
+
+ * src/extension/extension.cpp, src/extension/parameter.cpp:
+
+ Adding in autogui for strings and booleans. Also making everything
+ a little more robust.
+
+2005-04-17 cyreve <cyreve@users.sourceforge.net>
+
+ * src/: sp-text.cpp, sp-text.h, text-context.cpp, text-editing.cpp,
+ text-editing.h, libnrtype/Layout-TNG-Compute.cpp: hook up keys
+ for adding rotate= attribute to text elements
+
+ * src/libnrtype/Layout-TNG-OutIter.cpp: visual cursor left/right in
+ counterdirectional text runs
+
+2005-04-16 cyreve <cyreve@users.sourceforge.net>
+
+ * src/: display/nr-arena-glyphs.cpp, libnrtype/FontInstance.cpp,
+ libnrtype/RasterFont.cpp, libnrtype/font-instance.h,
+ libnrtype/font-style.h: make miter-limit work for text outlines
+ (bug 1094430)
+
+2005-04-16 Ted Gould <ted@gould.cx>
+
+ * src/main.cpp:
+
+ Added a command-line arguement --extension-directory to find what
+ extension directory Inkscape is configured for. This should be
+ helpful for external extensions that want to use the same path
+ as Inkscape itself on their install.
+
+ * src/extension/extension.cpp, src/extension/init.cpp:
+
+ Putting in half of Aaron's fix, mostly the one to keep things from
+ crashing, next we need to examine how to add multiple search paths
+ for extension dependencies.
+
+ Also, added a check so that autogui won't create a GUI if there are
+ no preferences.
+
+2005-04-13 Jon Phillips <jon@rejon.org>
+ * src/toolbox.cpp: removed code that was beeping and prepped for new
+ drag-n-drop color swatches.
+
+2005-04-13 cyreve <cyreve@users.sourceforge.net>
+
+ * src/path-chemistry.cpp: wire up converting object to path for
+ flowtext
+
+2005-04-13 Jon A. Cruz <jon@joncruz.org>
+ * src/dialogs/swatches.cpp:
+
+ Simple drag-n-drop out from color swatches.
+
+2005-04-12 cyreve <cyreve@users.sourceforge.net>
+
+ * src/: selection-chemistry.cpp, text-context.cpp, text-context.h,
+ text-editing.cpp, text-editing.h: cut and copy selected text (bug
+ 1175441)
+
+2005-04-12 Ted Gould <ted@gould.cx>
+
+ * src/extension/extension.cpp, src/extension/extension.h,
+ src/extension/parameter.cpp, src/extension/parameter.h,
+ src/extension/implementation/script.cpp:
+
+ This is support for having command line arguments from the parameters,
+ mostly this is a quick hack to get Aaron working, I'll clean it up
+ shortly, I promise. But, it does seem to be working right now. More
+ polish shortly.
+
+2005-04-10 Jon A. Cruz <jon@joncruz.org>
+ * src/interface.cpp:
+
+ Adding drag-n-drop support for arbitrary images. Fixes bug 1177714.
+
+
+2005-04-10 Ted Gould <ted@gould.cx>
+
+ * Lots of files:
+
+ Moving around the plugins, and disabling the feature. I've put all
+ the functionality into the internal directory. This should allow for
+ the features to be used until plugins could work. Also, adding in
+ features to do autogui with the parameters of a given extension.
+
+2005-04-09 Bryce <bryce@bryceharrington.org>
+
+ * src/view.h, src/application/editor-impl.cpp,
+ src/application/editor-impl.h, src/svg-view.h:
+
+ C++-ification. Created some C++ wrapper member functions for
+ SPView and SPSVGView, to enable Gtkmmification of SPDesktop
+
+2005-04-09 MenTaLguY <mental@rydia.net>
+
+ * src/selection.cpp, src/selection.h, src/dialogs/align.cpp,
+ src/extension/implementation/script.cpp,
+ src/extension/plugin/bluredge.cpp, src/util/glib-list-iterators.h:
+
+ excise STL abuse, and fix up the glib list iterators
+
+2005-04-09 MenTaLguY <mental@rydia.net>
+
+ * src/file.cpp, src/interface.cpp, src/shortcuts.cpp,
+ src/sp-object-repr.cpp, src/sp-skeleton.cpp, src/verbs.cpp,
+ src/dialogs/export.cpp, src/display/nr-arena-item.cpp,
+ src/libnrtype/FontFactory.cpp, src/libnrtype/TextWrapper.h,
+ src/livarot/ShapeMisc.cpp, src/livarot/float-line.cpp:
+
+ combined several different 64-bit cleanness patches
+
+2005-04-08 Jon Phillips <jon@rejon.org>
+ * src/ui/dialog/dialog-manager.cpp src/ui/dialog/dialog-manager.h:
+ added copyright statements about dialog manager code I wrote.
+
+2005-04-08 MenTaLguY <mental@rydia.net>
+
+ * src/draw-context.cpp, src/dyna-draw-context.cpp, src/path-chemistry.cpp,
+ src/selection-chemistry.cpp, src/selection.cpp, src/selection.h,
+ src/splivarot.cpp, src/extension/plugin/bluredge.cpp,
+ src/trace/trace.cpp:
+
+ renaming Inkscape::Selection methods that deal with XML::Nodes
+
+2005-04-08 MenTaLguY <mental@rydia.net>
+
+ * src/document-undo.cpp: try again with handling incomplete transactions
+ more gracefully
+
+2005-04-06 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/io/sys.h, src/io/sys.cpp (dir_open, dir_read_utf8name):
+ New functions: utf8 wrappers around g_dir_open, g_dir_read_name.
+
+2005-04-02 Bryce Harrington <bryce@bryceharrington.org>
+
+ * configure.ac share/ui/menus-bars.xml, src/Makefile.am,
+ src/Makefile_insert, src/file.cpp,
+ src/application/editor-impl.cpp,
+ src/application/editor-impl.h,
+ src/extension/init.cpp, src/extension/input.cpp,
+ src/extension/system.cpp,
+ src/extension/implementation/implementation.cpp,
+ src/extension/implementation/plugin.cpp,
+ src/extension/implementation/script.cpp,
+ src/extension/internal/svg.cpp
+ : Implementing preliminary load-from-URI functionality.
+
+
+2005-04-02 MenTaLguY <mental@rydia.net>
+
+ * src/document-undo.cpp, src/xml/event-fns.h, src/xml/event.cpp,
+ src/xml/event.h:
+
+ more debugging info for incomplete transactions
+
+2005-04-02 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/sp-gradient.cpp: Fix crash with cycles in gradient hrefs.
+
+2005-04-01 Jon A. Cruz <jon@joncruz.org>
+ * src/ui/widget/panel.h, src/ui/widget/panel.cpp, src/ui/previewholder.h,
+ src/ui/previewholder.cpp,src/dialogs/swatches.cpp,
+ src/dialogs/swatches.h:
+ Added UI for switching palettes
+
+2005-04-01 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+ * src/style.cpp (sp_style_merge_from_dying_parent): New function to
+ combine the styles of the <use> element and its ghost child when
+ unlinking.
+ * src/sp-use.cpp: Use it.
+
+2005-03-31 Jon A. Cruz <jon@joncruz.org>
+ * src/ui/widget/panel.cpp, src/ui/widget/panel.h, src/path-prefix.h,
+ src/dialogs/swatches.cpp, src/dialogs/swatches.h
+ share/palettes/Makefile.am, share/palettes/svg.gpl:
+ Adding palette loading.
+
+2005-03-31 Jean-François Lemaire <jflemaire@skynet.be>
+ * share/icons/David_icons.svg: new icon theme by David Christian Berg
+
+ * share/icons/README.icons: explanations on how to use the theme
+
+2005-03-30 Jean-François Lemaire <jflemaire@skynet.be>
+ * share/icons/icons.svg: included the layer menu icons
+
+ * src/verbs.cpp: assigned names for the layer menu icons
+
+2005-03-24 Jon A. Cruz <jon@joncruz.org>
+ * src/ui/widget/panel.h, src/ui/widget/panel.cpp,
+ src/ui/previewholder.h, src/ui/previewfillable.h,
+ src/dialogs/iconpreview.cpp, src/dialogs/swatches.cpp:
+ Adding panel menu
+
+2005-03-27 Jon Phillips <jon@rejon.org>
+ * src/toolbox.cpp src/toolbox.h src/ui/dialog/dialog-manager.cpp
+ src/ui/dialog/dialog-manager.h: Added generic dialog adding,
+ deleting, and getting and fixed toolboxes to be static with no
+ warnings.
+
+2005-03-26 Bryce <bryce@bryceharrington.org>
+
+ * share/ui/keybindings.rc, share/ui/menus-bars.xml
+ src/application/editor-impl.cpp, src/application/editor-impl.h,
+ src/extension/internal/svg.cpp, src/ui/dialog/Makefile_insert,
+ src/ui/dialog/dialog-manager.cpp,
+ src/ui/dialog/dialog-manager.h, src/ui/dialog/messages.cpp,
+ src/ui/dialog/messages.h: Initial implementation of canvas in
+ gtkmm. Incorporating Messages dialog.
+
+
+2005-03-24 MenTaLguY <mental@rydia.net>
+
+ * src/sp-item.cpp: fix relative transforms to accommodate viewbox
+
+2005-03-24 Jon A. Cruz <jon@joncruz.org>
+
+ * src/ui/Makefile_insert, src/dialogs/swatches.cpp,
+ src/dialogs/swatches.h, src/ui/previewable.h,
+ src/ui/previewfillable.h, src/ui/previewholder.cpp,
+ src/ui/previewholder.h:
+ Refactoring previewable functionality to be more generic
+
+2005-03-24 cyreve <cyreve@users.sourceforge.net>
+
+ * src/: text-context.cpp, text-editing.cpp, text-editing.h:
+ functions for applying style to selected text, and wire them
+ up to ctrl-b/ctrl-i for bold/italic
+
+2005-03-23 Jon Phillips <jon@rejon.org>
+ * src/toolbox.h src/toolbox.cpp: Fixed warning messages.
+
+2005-03-23 Jon A. Cruz <jon@joncruz.org>
+
+ * src/ui/previewable.h, src/ui/Makefile_insert,
+ src/dialogs/swatches.h, src/dialogs/swatches.cpp:
+ Preliminary work for 'Previewable' interface.
+
+2005-03-23 cyreve <cyreve@users.sourceforge.net>
+
+ * src/: sp-text.cpp, libnrtype/Layout-TNG-Compute.cpp,
+ libnrtype/Layout-TNG-Output.cpp: make text on path work correctly
+ with accent glyphs and suchlike
+
+ * src/: text-chemistry.cpp, libnrtype/Layout-TNG.h: apply text's
+ alignment to startOffset on new textpath elements, fixes bug
+ 1168145
+
+ * src/libnrtype/Layout-TNG-OutIter.cpp: selecting text to the end
+ sometimes displays wrong
+
+2005-03-22 MenTaLguY <mental@rydia.net>
+
+ * src/arc-context.cpp, src/desktop-handles.cpp,
+ src/desktop-handles.h, src/desktop.cpp, src/desktop.h,
+ src/document.h, src/draw-context.cpp, src/draw-context.h,
+ src/file.cpp, src/forward.h, src/gradient-context.cpp,
+ src/gradient-drag.cpp, src/gradient-drag.h, src/gradient-toolbar.cpp,
+ src/inkscape-private.h, src/inkscape.cpp, src/node-context.cpp,
+ src/node-context.h, src/nodepath.cpp, src/object-ui.cpp,
+ src/path-chemistry.cpp, src/rect-context.cpp, src/selcue.cpp,
+ src/selcue.h, src/select-context.cpp, src/select-toolbar.cpp,
+ src/selection-chemistry.cpp, src/selection-chemistry.h,
+ src/selection-describer.cpp, src/selection-describer.h,
+ src/selection.cpp, src/selection.h, src/seltrans.cpp,
+ src/seltrans.h, src/sp-flowtext.cpp, src/spiral-context.cpp,
+ src/splivarot.cpp, src/star-context.cpp, src/text-chemistry.cpp,
+ src/text-context.cpp, src/toolbox.cpp, src/verbs.cpp,
+ src/dialogs/align.cpp, src/dialogs/clonetiler.cpp,
+ src/dialogs/display-settings.cpp, src/dialogs/fill-style.cpp,
+ src/dialogs/find.cpp, src/dialogs/iconpreview.cpp,
+ src/dialogs/item-properties.cpp, src/dialogs/object-properties.cpp,
+ src/dialogs/stroke-style.cpp, src/dialogs/text-edit.cpp,
+ src/dialogs/tiledialog.cpp, src/dialogs/transformation.cpp,
+ src/dialogs/xml-tree.cpp, src/extension/plugin/bluredge.cpp,
+ src/extension/plugin/grid.cpp, src/trace/trace.cpp,
+ src/ui/dialog/dialog.cpp, src/ui/dialog/dialog.h,
+ src/ui/dialog/transformation.cpp, src/ui/dialog/transformation.h,
+ src/widgets/sp-widget.cpp, src/widgets/sp-widget.h:
+
+ SPSelection -> Inkscape::Selection
+
+2005-03-22 cyreve <cyreve@users.sourceforge.net>
+
+ * src/text-context.cpp: pressing esc doesn't hide text selection
+
+ * src/: text-context.cpp, text-context.h, text-editing.cpp,
+ text-editing.h, libnrtype/Layout-TNG-OutIter.cpp,
+ libnrtype/Layout-TNG.h: make text selection inverse
+
+2005-03-21 Jon Phillips <jon@rejon.org>
+
+ * share/icons/icons.svg src/dropper-context.cpp
+ src/dropper-context.h src/toolbox.cpp src/toolbox.h
+ src/dialogs/display-settings.cpp: Added controls for eye dropper
+ so that I could get color values. Removed option from application
+ preferences.
+
+2005-03-21 MenTaLguY <mental@rydia.net>
+
+ * src/util/Makefile_insert, src/util/glib-list.h,
+ src/util/glib-list-iterators.h:
+
+ retired old Glib list to Util::List adaptor and replaced it with
+ new iterator classes that directly wrap the Glib list types
+
+2005-03-21 cyreve <cyreve@users.sourceforge.net>
+
+ * src/: text-editing.cpp, libnrtype/Layout-TNG-OutIter.cpp: text
+ selection doesn't show when it starts at the end of a line
+
+ * src/: text-context.cpp, text-editing.cpp: crash on overtyping
+ selection, and displayed selection not removed on overtype
+
+ * src/text-editing.cpp: kerning information placed wrongly in text
+ after child span element
+
+ * src/libnrtype/Layout-TNG-OutIter.cpp: crash when pressing home key
+
+ * src/: text-context.cpp, text-context.h: text selection using the
+ mouse
+
+ * src/: make.dep, make.files, make.ofiles,
+ libnrtype/Layout-TNG-OutIter.cpp: further optimisation of text
+ selection, and an implementation for text on a path
+
+ * src/: text-editing.cpp, libnrtype/Layout-TNG-OutIter.cpp,
+ libnrtype/Layout-TNG.h: optimisation of text selection and fixing
+ some bugs in it
+
+2005-03-18 MenTaLguY <mental@rydia.net>
+
+ * src/arc-context.cpp, src/file.cpp, src/gradient-context.cpp,
+ src/node-context.cpp, src/object-ui.cpp, src/path-chemistry.cpp,
+ src/rect-context.cpp, src/select-context.cpp,
+ src/selection-chemistry.cpp, src/selection.cpp, src/selection.h,
+ src/sp-flowtext.cpp, src/spiral-context.cpp, src/splivarot.cpp,
+ src/star-context.cpp, src/text-chemistry.cpp, src/text-context.cpp,
+ src/dialogs/find.cpp, src/dialogs/in-dt-coordsys.cpp,
+ src/dialogs/xml-tree.cpp:
+
+ cleaned up the selection API slightly
+
+2005-03-20 cyreve <cyreve@users.sourceforge.net>
+
+ * src/: text-context.cpp, text-context.h, text-editing.cpp,
+ text-editing.h, libnrtype/Layout-TNG-OutIter.cpp,
+ libnrtype/Layout-TNG.h: initial implementation of text selection
+ (keyboard only)
+
+ * src/libnrtype/Layout-TNG-OutIter.cpp: making
+ createSelectionShape() work
+
+ * src/: sp-text.cpp, sp-text.h: text-anchor sometimes won't work in
+ text on a path when x/y coordinates are set
+
+ * src/libnrtype/Layout-TNG-Output.cpp: text on path: cut characters
+ before start of path and calculate bounding box correctly when
+ this happens
+
+2005-03-14 Jon A. Cruz <jon@joncruz.org>
+ * src/dialogs/Makefile_insert, src/dialogs/swatches.cpp,
+ src/dialogs/swatches.h, src/verbs.h, src/verbs.cpp,
+ src/interface.cpp:
+ Initial cut of swatches panel.
+
+2005-03-19 cyreve <cyreve@users.sourceforge.net>
+
+ * src/libnrtype/Layout-TNG-Compute.cpp: rendering of
+ multiple-character clusters in rtl text is wrong (bug 1166603)
+
+ * src/: make.dep, make.files, make.ofiles, sp-text.cpp, sp-text.h,
+ text-editing.cpp: glue kerning info back together on deleting
+ line breaks
+
+ * src/sp-tspan.cpp: textpath startOffset attribute doesn't save
+ correctly when it's a percentage (remnants of bug 1124722)
+
+ * src/: text-context.cpp, text-context.h, text-editing.cpp,
+ text-editing.h, libnrtype/Layout-TNG.h: use Layout::iterator for
+ storing cursor position. Fixes bug 1093660 related to rtl cursor
+ movement
+
+ * src/libnrtype/: Layout-TNG-OutIter.cpp, Layout-TNG.h: implement
+ backend cursor movement functions properly for multidirectional
+ text
+
+ * src/libnrtype/Layout-TNG-Output.cpp: create more efficient
+ postscript output
+
+ * src/libnrtype/: Layout-TNG-OutIter.cpp, Layout-TNG-Output.cpp,
+ Layout-TNG.h: obey text-align attribute when fitting text to a
+ path (fixes bug 1124722)
+
+ * src/: attributes-test.cpp, attributes.cpp, attributes.h,
+ sp-flowtext.cpp, sp-text.cpp, sp-tspan.cpp, sp-tspan.h,
+ style-test.cpp, libnrtype/Layout-TNG-Output.cpp: wire up
+ startOffset attribute to textpath and fix bugs in it
+
+ * src/sp-flowtext.cpp: unflow text command loses formatting
+
+ * src/xml/repr-io.cpp: xml pretty-printer adding whitespace in
+ xml:space=preserve elements
+
+ * src/: sp-flowtext.cpp, text-editing.cpp: line breaks not being
+ put before strings immediately following para elements, and
+ deleting line breaks copies style wrongly
+
+2005-03-18 MenTaLguY <mental@rydia.net>
+
+ * src/file.cpp, src/sp-item-group.cpp, src/xml/Makefile_insert,
+ src/xml/node-fns-tree.cpp, src/xml/node-fns-tree.h,
+ src/xml/node-fns.cpp, src/xml/node-fns.h, src/xml/node-iterators.h,
+ src/xml/repr.cpp, src/xml/simple-node.cpp:
+
+ renamed node-fns-tree to node-fns, and moved sp_repr_prev etc
+ into Inkscape::XML namespace (as e.g. previous_node)
+
+2005-03-18 cyreve <cyreve@users.sourceforge.net>
+
+ * src/libnrtype/Layout-TNG-Compute.cpp: cursor position on blank
+ first line sometimes goes wrong
+
+ * src/: make.dep, make.files, make.ofiles, text-editing.cpp:
+ spurious line break added before text in text and font dialog
+ (bug 1166016)
+
+ * src/: make.dep, make.files, make.ofiles, libnrtype/FlowBoxes.cpp,
+ libnrtype/FlowBoxes.h, libnrtype/FlowDefs.h,
+ libnrtype/FlowDest.cpp, libnrtype/FlowDest.h,
+ libnrtype/FlowEater.cpp, libnrtype/FlowEater.h,
+ libnrtype/FlowRes.cpp, libnrtype/FlowRes.h,
+ libnrtype/FlowResOut.cpp, libnrtype/FlowSols.cpp,
+ libnrtype/FlowSols.h, libnrtype/FlowSrc.cpp, libnrtype/FlowSrc.h,
+ libnrtype/FlowSrcText.cpp, libnrtype/FlowSrcText.h,
+ libnrtype/FlowStyle.cpp, libnrtype/FlowStyle.h,
+ libnrtype/FlowUtils.cpp, libnrtype/FlowUtils.h,
+ libnrtype/Makefile_insert: remove all old text layout code (7,577
+ lines)
+
+ * src/: sp-flowregion.cpp, sp-flowregion.h, sp-flowtext.cpp,
+ sp-string.cpp, sp-tspan.cpp: purge flow_dest class from code
+
+ * src/: text-editing.cpp, libnrtype/Layout-TNG-Compute.cpp,
+ libnrtype/Layout-TNG.cpp, libnrtype/Layout-TNG.h: define a value
+ for line-height:normal and use it consistently
+
+ * src/: sp-text.cpp, sp-text.h, text-editing.cpp: adjust kerning
+ attributes on adding/removing line breaks
+
+2005-03-17 MenTaLguY <mental@rydia.net>
+
+ * src/display/nr-arena-group.cpp, src/display/nr-arena-item.cpp:
+
+ whoops, we were calling the 'children' vfunc rather than
+ 'last_child' when appending, hence the bug... fixed now.
+
+2005-03-17 cyreve <cyreve@users.sourceforge.net>
+
+ * src/: sp-text.cpp, libnrtype/Layout-TNG-Compute.cpp,
+ libnrtype/Layout-TNG-OutIter.cpp, libnrtype/Layout-TNG.h: x,y
+ attributes on tspans set wrongly when alignment != left (bug
+ 1165427)
+
+ * src/: sp-text.cpp, sp-text.h: break before tspan role=line
+ elements, ie allow first tspan not to have role=line
+
+ * src/: make.dep, make.files, make.ofiles, sp-flowtext.cpp,
+ sp-object.cpp: fix inheritance problems with xml:space attribute
+
+ * src/libnrtype/Layout-TNG-OutIter.cpp: crash on pressing enter
+ immediately after creating text
+
+ * src/: object-ui.cpp, sp-flowtext.cpp: set xml:space=preserve on
+ new flowdiv elements
+
+ * src/libnrtype/Layout-TNG-Compute.cpp: second try at solving
+ numerical problems when line-height is set
+
+ * src/: sp-flowtext.cpp, sp-flowtext.h, verbs.cpp: slightly
+ objectify SPFlowtext and rearrange its updating a tiny bit
+
+ * src/: path-chemistry.cpp, sp-flowregion.cpp, sp-offset.cpp,
+ sp-text.cpp, sp-text.h, sp-use-reference.cpp, splivarot.cpp:
+ slightly objectify SPText & rearrange updating code, also fixes
+ bug causing all letters to appear on top of each other
+
+ * src/libnrtype/Layout-TNG-Compute.cpp: characters will draw
+ multiple times when x or y attributes set
+
+2005-03-16 cyreve <cyreve@users.sourceforge.net>
+
+ * src/text-editing.cpp: kerning: add/remove kerns with
+ insertion/deletion of characters, and only apply kerns to the
+ topmost xml object
+
+ * src/: help.cpp, selection-chemistry.cpp, sp-text.cpp, sp-text.h,
+ text-context.cpp, text-editing.cpp, text-editing.h,
+ dialogs/text-edit.cpp: move functions applying to both text and
+ flowtext to text-editing & rename them. Also fixes crash on
+ letter/linespacing adjustment for flowtext
+
+ * src/text-editing.cpp: fix crash on pressing delete at the end of
+ text
+
+ * src/: text-editing.cpp, libnrtype/Layout-TNG-Compute.cpp,
+ libnrtype/Layout-TNG-OutIter.cpp, libnrtype/Layout-TNG.h:
+ position cursor correctly in empty text objects
+
+ * src/: sp-item-group.cpp, sp-object.cpp: optimise adding children
+ to the end of a group - big improvement for tile clones
+
+ * src/: sp-flowtext.cpp, sp-text.cpp, text-context.cpp,
+ text-editing.cpp, text-editing.h: text editing fixes: track line
+ breaks with preceding para tag, finish abstracting line
+ break/remove functions to work on flowtext
+
+ * src/libnrtype/Layout-TNG-Compute.cpp: cursor positioning
+ off-by-one in some cases of wrapped text
+
+2005-03-15 cyreve <cyreve@users.sourceforge.net>
+
+ * src/libnrtype/Layout-TNG-Compute.cpp: small tweak to make cursor
+ positioning work right in counterdirectional spans in fully
+ justified text
+
+ * src/sp-text.cpp: tweak function for adjusting linespacing by
+ keyboard to be more precise
+
+ * src/: attributes-test.cpp, attributes.cpp, make.dep, make.files,
+ make.ofiles, style-test.cpp, style.cpp,
+ libnrtype/Layout-TNG-Output.cpp: make the unit tests pass for the
+ new styles, and workaround build breakage when pango < 1.8
+ installed
+
+ * src/: sp-flowtext.cpp, sp-flowtext.h,
+ libnrtype/Layout-TNG-Compute.cpp,
+ libnrtype/Layout-TNG-Scanline-Makers.cpp, libnrtype/Layout-TNG.h:
+ wiring up full justification to old attribute & fixing bugs in
+ it, which turned in to a major refactoring of layout code
+
+2005-03-14 Jon Phillips <jon@rejon.org>
+ * src/attributes-test.cpp, src/attributes.cpp, src/attributes.h,
+ src/desktop.cpp, src/sp-namedview.cpp, src/sp-namedview.h,
+ src/dialogs/desktop-properties.cpp:
+ Added showpageshadow preference to document preferences. Set to
+ on automatically and saves with document if off.
+
+2005-03-14 MenTaLguY <mental@rydia.net>
+
+ * src/display/nr-arena-item.h, src/display/nr-arena-item.cpp,
+ src/display/nr-arena-group.cpp:
+
+ added virtual accessor for last child
+
+2005-03-14 Jon A. Cruz <jon@joncruz.org>
+ * src/interface.cpp, src/verb.cpp, src/verbs.h,
+ src/ui/widget/panel.cpp, src/dialogs/Makefile_insert,
+ src/dialogs/extensions.cpp, src/dialogs/extensions.h,
+ src/extension/error-file.cpp:
+ Added rough cut of initial extensions panel and dialog.
+
+2005-03-13 Bryce Harrington <bryce@bryceharrington.org>
+
+ * src/path-prefix.h: Rearranging linking of libui and libutil
+
+ * src/application/application.cpp, src/application/application.h
+ src/application/editor-impl.cpp,
+ src/ui/dialog/dialog-manager.cpp, src/ui/dialog/dialog.cpp,
+ src/ui/dialog/dialog.h, src/ui/widget/labelled.cpp,
+ src/ui/dialog/transformation.h, src/ui/dialog/transformation.cpp,
+ src/ui/widget/unit-menu.h, src/util/units.cpp:
+ Integrating Transformation dialog. Removing hardcoded paths.
+
+ * share/icons/Makefile.in, share/icons/arrows-horiz.svg,
+ share/icons/arrows-vert.svg, share/icons/arrows_hor.xpm,
+ share/icons/arrows_ver.xpm, share/icons/rotate.svg,
+ share/icons/rotate.xpm, share/icons/scale_hor.xpm,
+ share/icons/scale_ver.xpm, share/icons/Makefile.am:
+ Adding icons needed by transformation dialog
+
+ * share/ui/units.txt, share/ui/units.xml:
+ Moving units into ui/ subdir. Dunno if this is the best
+ location for them, but pjrm thought it'd be ok for now.
+
+2005-03-13 cyreve <cyreve@users.sourceforge.net>
+
+ * src/sp-text.cpp: allow adjusting letter spacing when cursor is at
+ eol
+
+ * src/: make.dep, make.files, make.ofiles,
+ libnrtype/Layout-TNG-Compute.cpp,
+ libnrtype/Layout-TNG-OutIter.cpp,
+ libnrtype/Layout-TNG-Output.cpp, libnrtype/Layout-TNG.h: fix
+ kerning when align != left, and fix linespacing < 100
+
+ * src/: sp-flowtext.cpp, sp-text.cpp, sp-text.h, style.cpp,
+ style.h, libnrtype/Layout-TNG-Compute.cpp,
+ libnrtype/Layout-TNG-Input.cpp, libnrtype/Layout-TNG-OutIter.cpp,
+ libnrtype/Layout-TNG-Output.cpp,
+ libnrtype/Layout-TNG-Scanline-Maker.h, libnrtype/Layout-TNG.h:
+ implement line-height css property, & fix percentage handling in
+ style
+
+2005-03-12 MenTaLguY <mental@rydia.net>
+
+ * src/node-context.cpp, src/node-context.h, src/nodepath.cpp,
+ src/nodepath.h, src/toolbox.cpp, src/dialogs/align.cpp:
+
+ Renamed Path namespace to Inkscape::NodePath, to avoid conflict
+ with livarot
+
+2005-03-12 Kees Cook <kees@outflux.net>
+
+ * inkscape.nsi: added German translation from Adib Taraben.
+
+2005-03-12 MenTaLguY <mental@rydia.net>
+
+ * src/sp-namedview.cpp, src/sp-metadata.cpp: it's valid for an SPObject
+ 'write' method to be passed the object's own XML node; account for this.
+
+2005-03-12 MenTaLguY <mental@rydia.net>
+
+ * src/xml/simple-node.cpp: assert that src != this in
+ SimpleNode::mergeFrom
+
+2005-03-12 MenTaLguY <mental@rydia.net>
+
+ * src/gc-alloc.h: minor cosmetic adjustments
+
+ * src/util/list-container.h: pedantically correct implementation of
+ ListContainer::max_size()
+
+ * src/xml/simple-node.cpp: use Util::ListContainer iterators in a more
+ STL-ish fashion
+
+2005-03-12 Jon A. Cruz <jon@joncruz.org>
+ * src/ui/widget/panel.h, src/ui/widget/panel.cpp,
+ src/ui/widget/Makefile_insert, src/dialogs/iconpreview.h,
+ src/dialogs/iconpreview.cpp:
+ Initial addition of Panel.
+
+2005-03-12 cyreve <cyreve@users.sourceforge.net>
+
+ * src/sp-flowtext.cpp: text unflow command losing space characters:
+ add xml:space to generated elements
+
+ * src/: attributes.cpp, attributes.h, make.dep, make.files,
+ make.ofiles, sp-flowtext.cpp, sp-text.cpp, style.cpp, style.h,
+ text-context.cpp, text-editing.cpp, dialogs/text-edit.cpp,
+ libnrtype/FlowRes.cpp, libnrtype/Layout-TNG-Compute.cpp,
+ libnrtype/Layout-TNG-Input.cpp: add several new text properties
+ to SPStyle and rearrange some of the existing ones, also remove
+ spurious warning on applying kerning
+
+ * src/sp-flowtext.cpp: svg spec requires us to break after flowline
+ content, not before
+
+2005-03-11 cyreve <cyreve@users.sourceforge.net>
+
+ * src/desktop-style.cpp, src/sp-text.cpp, src/sp-text.h,
+ src/sp-tspan.cpp, src/sp-tspan.h, src/text-chemistry.cpp,
+src/text-editing.cpp,
+ src/text-editing.h: combine the common attribute handling for text,
+ tspan and textpath into one class
+
+ * src/sp-flowtext.cpp, src/sp-string.cpp: reimplement xml:space attribute
+
+ * src/sp-text.cpp, src/libnrtype/Layout-TNG-OutIter.cpp,
+ src/libnrtype/Layout-TNG.h: apply calculated x/y attributes to tspan
+ role=line elements
+
+ * src/libnrtype/Layout-TNG-Output.cpp: postscript text output
+ incorrectly scaled (and other problems)
+
+2005-03-10 cyreve <cyreve@users.sourceforge.net>
+
+ * src/sp-flowdiv.h, src/sp-flowtext.h,
+ src/sp-text.cpp, src/sp-text.h, src/sp-tspan.h, src/text-context.cpp,
+ src/text-editing.cpp, src/text-editing.h,
+ src/libnrtype/Layout-TNG-Compute.cpp,
+ src/libnrtype/Layout-TNG-OutIter.cpp: clean up xml tree properly on
+ deleting line break, & fix various compile issues
+
+ * src/nodepath.cpp, src/sp-flowdiv.cpp,
+ src/sp-flowdiv.h, src/sp-flowtext.cpp, src/sp-flowtext.h,
+src/sp-string.cpp,
+ src/sp-string.h, src/sp-text.cpp, src/sp-text.h, src/sp-tspan.cpp,
+src/sp-tspan.h,
+ src/text-editing.cpp, src/verbs.cpp, src/libnrtype/FontInstance.cpp,
+ src/libnrtype/font-instance.h, src/livarot/Shape.h,
+ src/libnrtype/Layout-TNG-Compute.cpp, src/libnrtype/Layout-TNG-Input.cpp,
+ src/libnrtype/Layout-TNG-OutIter.cpp,
+ src/libnrtype/Layout-TNG-Output.cpp,
+ src/libnrtype/Layout-TNG-Scanline-Maker.h,
+ src/libnrtype/Layout-TNG-Scanline-Makers.cpp,
+ src/libnrtype/Layout-TNG.cpp, libnrtype/Layout-TNG.h: huge rewrite of
+ text layout (and some text editing) code
+
+2005-03-07 Kees Cook <kees@outflux.net>
+
+ * src/libnr/have_mmx.S, src/libnr/nr_mmx_R8G8B8A8_P_EMPTY_A8_RGBAP.S,
+ src/libnr/nr_mmx_R8G8B8A8_P_R8G8B8A8_P_A8_RGBAP.S,
+ src/libnr/nr_mmx_R8G8B8A8_P_R8G8B8A8_P_R8G8B8A8_N_TRANSFORM.S,
+ src/libnr/nr_mmx_R8G8B8_R8G8B8_R8G8B8A8_P.S: execstack patch
+ from Mike Hearn.
+
+2005-03-07 Jon A. Cruz <jon@joncruz.org>
+ * src/interface.cpp, src/verbs.h, src.verbs.cpp, src/widgets/icon.cpp,
+ src/dialogs/iconpreview.h, src/dialogs/iconpreview.cpp,
+ src/dialogs/Makefile_insert:
+ Initial cut of icon preview.
+
+2005-03-05 Bryce Harrington <bryce@bryceharrington.org>
+
+ * share/icons/*.svg, share/icons/Makefile.am: Adding icons for
+ new gui interface
+
+ * src/ui/icons.cpp: Fixing some paths
+
+ * src/main.cpp src/application/Makefile_insert,
+ src/application/app-prototype.h,
+ src/application/application.cpp src/application/editor.cpp,
+ src/ui/widget/toolbox.cpp,
+ src/application/editor-impl.cpp:
+ Broke out editor-impl class to its own file. Continued getting
+ the new interface to the point where it'll load and run.
+
+ * share/ui/keybindings.rc, share/ui/toolbox.xml, share/ui/menus-bars.xml:
+ Migrating some of the UI definition stuff into main codebase
+
+2005-03-05 Jon A. Cruz <jon@joncruz.org>
+ * src/widgets/layer-selector.cpp, src/widgets/icon.h,
+ src/widgets/icon.cpp, src/dialogs/align.cpp, src/dialogs/find.cpp,
+ src/dialogs/object-properties.cpp, src/dialogs/stroke-style.cpp,
+ src/dialogs/text-edit.cpp, src/dialogs/transformation.cpp,
+ src/dialogs/xml-tree.cpp, src/interface.cpp:
+ Purging PixBufFactory and sp_icon_new_scaled.
+
+2005-03-05 Jon A. Cruz <jon@joncruz.org>
+ * src/widgets/icon.cpp, src/widgets/icon.cpp: Switched icon loading
+ to be deferred and react to theme changes on-the-fly.
+
+2005-03-05 Bryce Harrington <bryce@bryceharrington.org>
+
+ * src/application/Makefile_insert,
+ src/application/app-prototype.cpp,
+ src/application/editor.h,
+ src/application/app-prototype.h,
+ src/application/application.cpp:
+ Adding Application::AppPrototype class
+ * src/application/editor.cpp,
+ src/application/editor.h:
+ Changing member function getImpl() to getWindow()
+
+2005-03-04 Jon A. Cruz <jon@joncruz.org>
+ * src/widgets/icon.cpp: Changed stock item loading to use stock
+ GtkImage widgets directly.
+
+2005-03-03 MenTaLguY <mental@rydia.net>
+
+ * src/widgets/icon.cpp: more idiomatic iteration
+
+2005-03-02 Jon A. Cruz <jon@joncruz.org>
+ * src/toolbox.cpp: Added preference to make the top toolbox 'small'.
+
+2005-03-02 Jon A. Cruz <jon@joncruz.org>
+ * src/desktop-events.cpp, src/desktop.cpp, src/gradient-toolbar.cpp,
+ src/interface.cpp, src/select-toolbar.cpp, src/toolbox.cpp,
+ src/toolbox.h, src/dialogs/find.cpp,
+ src/dialogs/object-properties.cpp, src/dialogs/stroke-style.cpp,
+ src/dialogs/text-edit.cpp, src/dialogs/transformation.cpp,
+ src/dialogs/xml-tree.cpp, src/widgets/button.cpp,
+ src/widgets/button.h, src/widgets/icon.cpp, src/widgets/icon.h,
+ src/widgets/layer-selector.cpp, src/widgets/paint-selector.cpp,
+ src/widgets/widget-sizes.h:
+ Initial pass removing hardcoded icon sizes.
+
+2005-03-01 MenTaLguY <mental@rydia.net>
+
+ * src/extensions/internal/ps.cpp: apply patch from Michael Forbes
+ (miforbes@mbhs.edu) to support gradient fills in Postscript
+
+2005-03-01 MenTaLguY <mental@rydia.net>
+
+ * src/xml/node.h, src/xml/simple-node.cpp, src/xml/simple-node.h:
+
+ begin migration of notification interface to use NodeObserver
+ rather than NodeEventVector
+
+2005-03-01 MenTaLguY <mental@rydia.net>
+
+ * src/xml/Makefile_insert, src/xml/node-listener.h, src/xml/repr.cpp,
+ src/xml/simple-node.cpp, src/xml/simple-node.h:
+
+ reworked listener list to use Util::ListContainer
+
+ * src/xml/node-observer.h: minor name cleanups
+
+2005-03-01 MenTaLguY <mental@rydia.net>
+
+ * src/Makefile.am, src/algorithms/find-if-before.h:
+
+ added new generic algorithm
+
+2005-03-01 MenTaLguY <mental@rydia.net>
+
+ * src/Makefile.am, src/util/Makefile_insert,
+ src/util/list-container-test.cpp, src/util/list-container.h:
+
+ tests and fixes for Util::ListContainer
+
+2005-03-01 MenTaLguY <mental@rydia.net>
+
+ * src/Makefile.am, src/libnr/Makefile_insert, src/xml/Makefile_insert:
+ use in-tree copy of cxxtest
+
+ * src/util/Makefile_insert, src/util/list-container.h:
+ add Util::List-based STL container
+
+2005-02-28 SwinginCelt <swinginceltgmail.com>
+
+ * Fixed an improper conversion of sp_repr_document_merge that was causing
+ extra data being written to the prefrences file every time inkscape
+ exited.
+
+2005-02-26 SwinginCelt <swinginceltgmail.com>
+
+ * Replaced all sp_repr_set_content calls with direct call to
+ repr->setContent.
+ * Replaced all sp_repr_merge calls with direct call to
+ repr->mergeFrom.
+ * Removed inline sp_repr_document_merge because it wasn't used anywhere.
+ * Removed inline sp_repr_set_content because it wasn't used anywhere.
+
+2005-02-26 MenTaLguY <mental@rydia.net>
+
+ * cxxtest: imported cxxtest tree
+
+2005-02-24 Jon A. Cruz <jon@joncruz.org>
+ * src/main.cpp, io/sys.h, io/sys.cpp:
+ Refactoring input filename conversion and fallback.
+ Fixes bug #1151536.
+
+2005-02-22 Jon A. Cruz <jon@joncruz.org>
+ * src/main.cpp:
+ Refactoring sp_main_*. Adding cleanup phase on extracted filename list.
+
+2005-02-22 Bryce Harrington <bryce@bryceharringotn.org>
+
+ * src/main.cpp, src/application/application.cpp: Adding --new-gui
+ option.
+
+2005-02-22 Ted Gould <ted@gould.cx>
+
+ * src/interface.cpp:
+
+ Changing the effects menu to be driven by the preferences file so that the
+ file can be the same whether or not the effects are shown.
+
+2005-02-22 MenTaLguY <mental@rydia.net>
+
+ * src/desktop-style.cpp, src/selection-chemistry.cpp,
+ src/xml/attribute-record.h, src/xml/node.h, src/xml/repr-css.cpp,
+ src/xml/repr-io.cpp, src/xml/simple-node.cpp, src/xml/simple-node.h:
+
+ use Inkscape::Util::List for attribute lists, and sprinkle some
+ appropriate 'using's in to make things less verbose
+
+2005-02-22 Jon A. Cruz <jon@joncruz.org>
+ * src/inkscape.cpp, src/main.cpp, src/extension/input.cpp, src/io/sys.cpp,
+ src/xml/repr-io.cpp:
+ Better catching of problematic filenames.
+ Made segv handler only use dialog box when app is using a gui.
+ Fixes bug #1145847.
+
+2005-02-22 Ted Gould <ted@gould.cx>
+
+ * src/extension/effect.cpp, src/extension/prefdialog.cpp,
+ src/extension/prefdialog.h,
+ src/extension/implementation/implementation.cpp,
+ src/extension/implementation/implementation.h,
+ src/extension/implementation/plugin-link.h,
+ src/extension/implementation/plugin.cpp,
+ src/extension/implementation/plugin.h,
+ src/extension/implementation/script.cpp,
+ src/extension/implementation/script.h, src/extension/plugin/grid.cpp:
+
+ Changing the API of the effects preferences so that it doesn't use
+ sockets and plugs anymore. Now there is a generic widget passed down so
+ that should work on every platform.
+
+ * src/extension/plugin/grid.cpp:
+
+ Fixing the grid so that it uses the right axis.
+
+ * share/extensions/Makefile.am, share/extensions/bluredge.inx,
+ share/extensions/randompnt.inx, share/extensions/randompos.inx,
+ src/extension/plugin/Makefile_insert, src/extension/plugin/bluredge.cpp,
+ src/extension/plugin/randompnt.cpp, src/extension/plugin/randompos.cpp:
+
+ Adding some cool new effects, well, they're not really done yet,
+ but getting the basis code into CVS so I don't loose it :)
+
+2005-02-21 MenTaLguY <mental@rydia.net>
+
+ * src/file.cpp, src/sp-item-group.cpp, src/xml/Makefile_insert,
+ src/xml/node-fns-tree.cpp, src/xml/node-fns-tree.h,
+ src/xml/repr-get-children.cpp, src/xml/repr-get-children.h,
+ src/xml/repr.cpp, src/xml/simple-node.cpp:
+
+ renamed header files
+
+ * src/xml/Makefile_insert, src/xml/invalid-operation-exception.h:
+
+ added Inkscape::XML::InvalidOperationException
+
+ * src/xml/simple-node.h:
+
+ avoid a second indirect function call from SimpleNode::appendChild
+
+2005-02-20 SwinginCelt <swinginceltgmail.com>
+
+ * Replaced all sp_repr_attr calls with direct call to
+ repr->attribute.
+ * Replaced all sp_repr_document_unref calls with direct call to
+ Inkscape::GC::release(...).
+ * Removed iinline sp_repr_document_ref because it wasn't used anywhere.
+
+2005-02-20 MenTaLguY <mental@rydia.net>
+
+ * src/inkscape.cpp: removed unused signals
+
+2005-02-19 MenTaLguY <mental@rydia.net>
+
+ * src/arc-context.cpp, src/desktop.cpp, src/document-private.h,
+ src/document-undo.cpp, src/document.cpp, src/event-context.cpp,
+ src/gradient-chemistry.cpp, src/gradient-chemistry.h,
+ src/gradient-drag.cpp, src/gradient-drag.h, src/node-context.cpp,
+ src/rect-context.cpp, src/sp-object.cpp, src/spiral-context.cpp,
+ src/star-context.cpp, src/toolbox.cpp,
+ src/dialogs/desktop-properties.cpp, src/widgets/gradient-vector.cpp,
+ src/widgets/layer-selector.cpp, src/widgets/sp-widget.cpp,
+ src/widgets/sp-xmlview-attr-list.cpp, src/widgets/sp-xmlview-content.cpp,
+ src/widgets/sp-xmlview-tree.cpp, src/xml/Makefile_insert,
+ src/xml/attribute-record.h, src/xml/document.h, src/xml/event-fns.h,
+ src/xml/event.cpp, src/xml/event.h, src/xml/node-event-vector.h,
+ src/xml/node-iterators.h, src/xml/node-listener.h, src/xml/node.h,
+ src/xml/repr-action-test.cpp, src/xml/repr-css.cpp, src/xml/repr-io.cpp,
+ src/xml/repr-sorting.cpp, src/xml/repr-util.cpp, src/xml/repr.cpp,
+ src/xml/repr.h, src/xml/simple-document.h, src/xml/simple-node.cpp,
+ src/xml/simple-node.h, src/xml/simple-session.cpp,
+ src/xml/sp-css-attr.h, src/xml/sp-repr-action-fns.h,
+ src/xml/sp-repr-action.cpp, src/xml/sp-repr-action.h,
+ src/xml/sp-repr-attr.h, src/xml/sp-repr-doc.h,
+ src/xml/sp-repr-event-vector.h, src/xml/sp-repr-iterators.h,
+ src/xml/sp-repr-listener.h, src/xml/sp-repr.h:
+
+ renamed header files to match new class names
+
+2005-02-19 MenTaLguY <mental@rydia.net>
+
+ * src/arc-context.cpp, src/arc-context.h, src/desktop-events.cpp,
+ src/desktop-style.cpp, src/desktop-style.h, src/desktop.cpp,
+ src/document-private.h, src/document-undo.cpp, src/document.cpp,
+ src/document.h, src/draw-context.cpp, src/dyna-draw-context.cpp,
+ src/dyna-draw-context.h, src/event-context.cpp, src/event-context.h,
+ src/file.cpp, src/gradient-chemistry.cpp, src/inkscape.cpp,
+ src/inkscape.h, src/inkview.cpp, src/interface.cpp, src/knotholder.cpp,
+ src/knotholder.h, src/layer-fns.cpp, src/main.cpp, src/node-context.cpp,
+ src/nodepath.cpp, src/nodepath.h, src/object-ui.cpp,
+ src/path-chemistry.cpp, src/prefs-utils.cpp, src/rect-context.cpp,
+ src/rect-context.h, src/selection-chemistry.cpp, src/selection.cpp,
+ src/selection.h, src/seltrans.cpp, src/sp-anchor.cpp,
+ src/sp-animation.cpp, src/sp-clippath.cpp, src/sp-conn-end-pair.cpp,
+ src/sp-conn-end-pair.h, src/sp-defs.cpp, src/sp-ellipse.cpp,
+ src/sp-flowdiv.cpp, src/sp-flowregion.cpp, src/sp-flowtext.cpp,
+ src/sp-gradient-fns.h, src/sp-gradient-test.cpp, src/sp-gradient.cpp,
+ src/sp-guide.cpp, src/sp-image.cpp, src/sp-item-group.cpp,
+ src/sp-item.cpp, src/sp-item.h, src/sp-line.cpp,
+ src/sp-linear-gradient-fns.h, src/sp-marker.cpp, src/sp-mask.cpp,
+ src/sp-metadata.cpp, src/sp-namedview.cpp, src/sp-namedview.h,
+ src/sp-object-group.cpp, src/sp-object-repr.cpp, src/sp-object-repr.h,
+ src/sp-object.cpp, src/sp-object.h, src/sp-offset.cpp, src/sp-offset.h,
+ src/sp-path.cpp, src/sp-pattern.cpp, src/sp-polygon.cpp,
+ src/sp-polyline.cpp, src/sp-radial-gradient-fns.h, src/sp-rect.cpp,
+ src/sp-root.cpp, src/sp-shape.cpp, src/sp-skeleton.cpp,
+ src/sp-spiral.cpp, src/sp-star.cpp, src/sp-string.cpp,
+ src/sp-symbol.cpp, src/sp-text.cpp, src/sp-tspan.cpp,
+ src/sp-use-reference.h, src/sp-use.cpp, src/spiral-context.cpp,
+ src/spiral-context.h, src/splivarot.cpp, src/star-context.cpp,
+ src/star-context.h, src/style.cpp, src/style.h, src/text-chemistry.cpp,
+ src/text-context.cpp, src/text-editing.cpp, src/toolbox.cpp,
+ src/verbs.cpp, src/application/application.cpp,
+ src/application/application.h, src/application/editor.h,
+ src/dialogs/clonetiler.cpp, src/dialogs/desktop-properties.cpp,
+ src/dialogs/export.cpp, src/dialogs/fill-style.cpp, src/dialogs/rdf.cpp,
+ src/dialogs/sp-attribute-widget.cpp, src/dialogs/sp-attribute-widget.h,
+ src/dialogs/stroke-style.cpp, src/dialogs/text-edit.cpp,
+ src/dialogs/tiledialog.cpp, src/dialogs/xml-tree.cpp,
+ src/ecma/EcmaBinding.cpp, src/ecma/EcmaBinding.h,
+ src/extension/dependency.cpp, src/extension/dependency.h,
+ src/extension/effect.cpp, src/extension/effect.h,
+ src/extension/extension.cpp, src/extension/extension.h,
+ src/extension/input.cpp, src/extension/input.h,
+ src/extension/output.cpp, src/extension/output.h,
+ src/extension/print.cpp, src/extension/print.h, src/extension/system.cpp,
+ src/extension/implementation/plugin.cpp,
+ src/extension/implementation/script.cpp,
+ src/extension/implementation/script.h,
+ src/extension/internal/gdkpixbuf-input.cpp,
+ src/extension/internal/pov-out.cpp, src/extension/internal/ps.cpp,
+ src/extension/internal/svg.cpp, src/extension/plugin/grid.cpp,
+ src/helper/stock-items.cpp, src/trace/trace.cpp,
+ src/widgets/dash-selector.cpp, src/widgets/dash-selector.h,
+ src/widgets/gradient-selector.cpp, src/widgets/gradient-vector.cpp,
+ src/widgets/layer-selector.cpp, src/widgets/layer-selector.h,
+ src/widgets/paint-selector.cpp, src/widgets/sp-widget.cpp,
+ src/widgets/sp-widget.h, src/widgets/sp-xmlview-attr-list.cpp,
+ src/widgets/sp-xmlview-attr-list.h, src/widgets/sp-xmlview-content.cpp,
+ src/widgets/sp-xmlview-content.h, src/widgets/sp-xmlview-tree.cpp,
+ src/widgets/sp-xmlview-tree.h, src/widgets/spw-utilities.h,
+ src/xml/comment-node.h, src/xml/element-node.h, src/xml/node-observer.h,
+ src/xml/repr-action-test.cpp, src/xml/repr-css.cpp,
+ src/xml/repr-get-children.cpp, src/xml/repr-get-children.h,
+ src/xml/repr-io.cpp, src/xml/repr-sorting.cpp, src/xml/repr-sorting.h,
+ src/xml/repr-util.cpp, src/xml/repr.cpp, src/xml/repr.h,
+ src/xml/session.h, src/xml/simple-document.h, src/xml/simple-node.cpp,
+ src/xml/simple-node.h, src/xml/simple-session.cpp,
+ src/xml/simple-session.h, src/xml/sp-css-attr.h,
+ src/xml/sp-repr-action-fns.h, src/xml/sp-repr-action.cpp,
+ src/xml/sp-repr-action.h, src/xml/sp-repr-attr.h,
+ src/xml/sp-repr-doc.h, src/xml/sp-repr-event-vector.h,
+ src/xml/sp-repr-iterators.h, src/xml/sp-repr-listener.h,
+ src/xml/sp-repr.h, src/xml/text-node.h, src/xml/transaction-logger.h:
+
+ SPRepr -> Inkscape::XML::Node
+ SPReprDoc -> Inkscape::XML::Document
+ SPReprAttr -> Inkscape::XML::AttributeRecord
+ SPReprAction -> Inkscape::XML::Event
+ SPReprEventVector -> Inkscape::XML::EventVector
+ SPReprListener -> Inkscape::XML::NodeListener
+
+ etc..
+
+2005-02-19 Jon A. Cruz <jon@joncruz.org>
+ * src/extension/extension.h, src/extension/internal/svg.cpp,
+ src/extension/internal/svgz.cpp:
+ Fixing .svgz Inkscape save and adding .svgz Plain save.
+ Fixes bug #1144223
+
+2005-02-18 Jon A. Cruz <jon@joncruz.org>
+ * src/Makefile.am, src/libnr/Makefile_insert,
+ src/libnr/nr-point-fns-test.h src/libnr/nr-types-test.h:
+ Adding initial version of CxxTest test cases.
+
+2005-02-17 Jon A. Cruz <jon@joncruz.org>
+
+ * src/io/gzipinputstream.h, src/io/gzipinputstream.cpp: Changed
+ decompression to be streammed and removed hardcoded limit.
+
+2005-02-17 MenTaLguY <mental@rydia.net>
+
+ * src/inkscape.h, src/inkscape.cpp, src/desktop.cpp:
+
+ rewrote "last desktop standing" test to not suck
+
+2005-02-15 SwinginCelt <swinginceltgmail.com>
+
+ * Replaced some sp_repr_attr calls with direct call to
+ repr->attribute.
+
+2005-02-16 John Cliff <simarilius@yahoo.com>
+
+ * src/dialogs/tiledialog.h, src/dialogs/tiledialog.cpp,
+ src/dialogs/makefile_insert, src/verbs.cpp, src/verbs.h:
+ Added a dialog that allows you to arrange the selection
+ in a grid pattern with user defined spacing.
+ its in objects->grid arrange...
+
+2005-02-15 SwinginCelt <swinginceltgmail.com>
+
+ * Replaced inline function sp_repr_name with direct call to
+ repr->name.
+ * Replaced inline function sp_repr_content with direct call to
+ repr->content.
+ * Replaced inline function sp_repr_has_attr with direct call to
+ repr->matchAttributeName.
+
+2005-02-15 MenTaLguY <mental@rydia.net>
+
+ * src/document.cpp, src/document.h, src/file.cpp, src/help.cpp,
+ src/inkscape.cpp, src/inkview.cpp, src/slideshow.cpp,
+ src/dialogs/filedialog.cpp, src/dialogs/stroke-style.cpp,
+ src/extension/internal/gdkpixbuf-input.cpp,
+ src/extension/internal/svg.cpp, src/extension/plugin/gimpgrad.cpp,
+ src/helper/stock-items.cpp, src/widgets/icon.cpp:
+
+ removed unused SPDocument::advertize
+
+2005-02-14 MenTaLguY <mental@rydia.net>
+
+ * src/document.cpp: remove redundant assignment that appears to confuse
+ gcc anyhow
+
+2005-02-14 SwinginCelt <swingincelt@gmail.com>
+
+ * Replaced inline function sp_repr_set_position_absolute with
+ direct call to repr>->setPosition.
+
+2005-02-13 Bryce <bryce@bryceharrington.org>
+
+ * src/main.cpp, src/application/application.cpp, src/inkscape.h,
+ src/application/editor-impl.h, src/application/editor.cpp
+ src/application/editor.h, src/ui/dialog/dialog-manager.cpp,
+ src/ui/dialog/dialog-manager.h, src/application/app-prototype.h
+ src/application/application.h: Integrating I::A::Application
+ into the execution path. Now its run() routine is called from
+ main().
+
+ * src/application/Makefile_insert, src/application/makefile.in,
+ src/application/editor-impl.h, src/application/editor.cpp,
+ src/application/editor.h: Initial import of inkscape_gtkmm
+ code. Also see doc/NewAppArchitecture/ presentation for the
+ rationale behind this.
+
+ * src/ui/dialog/align-and-distribute.cpp,
+src/ui/dialog/align-and-distribute.h,
+ src/ui/dialog/dialog-manager.cpp, src/ui/dialog/dialog-manager.h,
+ src/ui/dialog/dialog.cpp, src/ui/dialog/dialog.h,
+ src/ui/dialog/document-preferences.cpp,
+src/ui/dialog/document-preferences.h,
+ src/ui/dialog/export.cpp, src/ui/dialog/export.h,
+ src/ui/dialog/extension-editor.cpp, src/ui/dialog/extension-editor.h,
+ src/ui/dialog/fill-and-stroke.cpp, src/ui/dialog/fill-and-stroke.h,
+ src/ui/dialog/find.cpp, src/ui/dialog/find.h,
+ src/ui/dialog/inkscape-preferences.cpp,
+src/ui/dialog/inkscape-preferences.h,
+ src/ui/dialog/layer-editor.cpp, src/ui/dialog/layer-editor.h,
+ src/ui/dialog/messages.cpp, src/ui/dialog/messages.h,
+ src/ui/dialog/text-properties.cpp, src/ui/dialog/text-properties.h,
+ src/ui/dialog/tree-editor.cpp, src/ui/dialog/tree-editor.h,
+ src/ui/dialog/xml-editor.cpp, src/ui/dialog/xml-editor.h,
+ src/ui/widget/combo-text.cpp, src/ui/widget/combo-text.h,
+ src/ui/widget/handlebox.cpp, src/ui/widget/handlebox.h,
+ src/ui/widget/icon-widget.cpp, src/ui/widget/icon-widget.h,
+ src/ui/widget/labelled.cpp, src/ui/widget/labelled.h,
+ src/ui/widget/notebook-page.cpp, src/ui/widget/notebook-page.h,
+ src/ui/widget/scalar-unit.cpp, src/ui/widget/scalar-unit.h,
+ src/ui/widget/scalar.cpp, src/ui/widget/scalar.h,
+ src/ui/widget/toolbox.cpp, src/ui/widget/toolbox.h,
+ src/ui/widget/unit-menu.cpp, src/ui/widget/unit-menu.h:
+ Initial import of the gtkmm code. These are mainly
+ unimplemented stubs, but have few dependencies so are easy to
+ integrate at this stage.
+
+ * src/ui/widget/Makefile_insert, src/ui/widget/makefile.in,
+ src/ui/dialog/Makefile_insert, src/ui/dialog/makefile.in,
+ src/ui/Makefile_insert, src/ui/makefile.in: Adding makefile
+ support for new code.
+
+ * io/simple-sax.h, io/simple-sax.cpp: Adding Jon's simple SAX
+ code
+
+ * util/units.h, util/units.cpp: New inkscape_gtkmm units code
+
+2005-02-12 MenTaLguY <mental@rydia.net>
+
+ * src/document.cpp, src/document.h, src/sp-gradient-test.cpp:
+
+ SPDocument is now a "real C++ class", managed by the garbage collector
+
+2005-02-12 MenTaLguY <mental@rydia.net>
+
+ * src/document-private.h, src/document.cpp, src/document.h, src/view.cpp,
+ src/view.h, src/dialogs/xml-tree.cpp:
+
+ switched SPDocument to sigc++ signals
+
+2005-02-12 Kees Cook <kees@outflux.net>
+
+ * Makefile.am, configure.ac, Makefile.mingw.common, inkscape.nsi: undoing
+ my "configure" changes. Was dumb and forgot about native compiles on
+ win32.
+ * inkview.1.in, share/extensions/inkscape-shadow-white.sh,
+ share/extensions/inkscape-shadow.sh: corrections found by Wolfram
+ Quester during Debian packaging.
+ * src/desktop-events.cpp, src/file.cpp, src/gradient-chemistry.cpp,
+ src/interface.cpp, src/layer-fns.cpp, src/nodepath.cpp,
+ src/object-ui.cpp, src/path-chemistry.cpp, src/prefs-utils.cpp,
+ src/selection-chemistry.cpp, src/seltrans.cpp, src/sp-flowtext.cpp,
+ src/sp-object.cpp, src/sp-pattern.cpp, src/sp-text.cpp, src/splivarot.cpp,
+ src/text-editing.cpp, src/dialogs/clonetiler.cpp, src/dialogs/rdf.cpp,
+ src/dialogs/stroke-style.cpp, src/dialogs/xml-tree.cpp,
+ src/extension/internal/gdkpixbuf-input.cpp, src/extension/plugin/grid.cpp,
+ src/widgets/gradient-selector.cpp, src/xml/repr-action-test.cpp,
+ src/xml/repr-css.cpp, src/xml/repr-io.cpp, src/xml/repr-util.cpp,
+ src/xml/repr.cpp, src/xml/repr.h: inline function removal patches from
+ Robert Crosbie.
+
+2005-02-11 Kees Cook <kees@outflux.net>
+
+ * src/Makefile.mingw, src/make.*: win32 compile updates.
+ * src/extensions/internal/gnome.cpp: added my missing "comment" code.
+ * src/shortcuts.cpp, doc/keys.xml, doc/keys.html, share/screens/keys.svg:
+ added explicit ctrl-w. since gtk already binds it, we may as well show it.
+
+2005-02-10 Jon A. Cruz <jon@joncruz.org>
+
+ * src/inkscape.cpp: Changed from SHGetSpecialFolderPath to
+ SHGetSpecialFolderLocation. Fixes bug #1085641
+
+2005-02-10 MenTaLguY <mental@rydia.net>
+
+ * src/document.h, src/document.cpp: get rid of casting macro uses
+
+2005-02-10 MenTaLguY <mental@rydia.net>
+
+ * src/desktop.cpp, src/document-undo.cpp, src/document.cpp, src/file.cpp,
+ src/gradient-chemistry.cpp, src/inkscape.cpp, src/interface.cpp,
+ src/sp-metadata.cpp, src/sp-namedview.cpp, src/sp-object-repr.cpp,
+ src/sp-object.cpp, src/svg-view.cpp, src/uri-references.cpp,
+ src/view.cpp, src/dialogs/stroke-style.cpp,
+ src/widgets/gradient-selector.cpp, src/widgets/gradient-vector.cpp:
+
+ get rid needless uses of SP_IS_DOCUMENT (if we can't trust the
+ compiler's type checking, what can we trust?)
+
+2005-02-10 MenTaLguY <mental@rydia.net>
+
+ * src/desktop-style.h, src/desktop.h, src/document.h, src/event-context.h,
+ src/inkscape.h, src/knotholder.h, src/nodepath.h,
+ src/selection-chemistry.h, src/selection.h, src/sp-conn-end-pair.h,
+ src/sp-object-repr.h, src/sp-object.h, src/style.h,
+ src/dialogs/sp-attribute-widget.h, src/extension/implementation/script.h,
+ src/xml/repr-get-children.h, src/xml/repr.h, src/xml/sp-repr-action.h,
+ src/xml/sp-repr-attr.h, src/xml/xml-forward.h:
+
+ got rid of xml-forward.h
+
+2005-02-10 Kees Cook <kees@outflux.net>
+
+ * configure.ac, Makefile.am, src/Makefile.am, Makefile.mingw.common.in,
+ inkscape.nsi.in: setting up "configure" to build the other files that
+ expect version numbers to get updated. Including mingw files in dist
+ package.
+
+2005-02-10 Jon A. Cruz <jon@joncruz.org>
+ * src/io/uristream.h, src/io/uristream.cpp,
+ src/extension/internal/svg.h, src/extension/internal/svg.cpp,
+ src/extension/internal/Makefile_insert,
+ src/extension/internal/extension.h,
+ src/extension/internal/init.cpp:
+ Adding internal .svgz load and save extension.
+ Probable fix for bugs #1074996, #1050361, #925033, #1052307
+
+2005-02-08 Kees Cook <kees@outflux.net>
+
+ * src/extension/implementation/script.cpp: proper /tmp handling.
+ Closes bug #1074996.
+ * src/inkscape.cpp, src/inkscape.h, src/dialogs/export.cpp: correction
+ for export dialog paths. Closes bug #1114714.
+ * inkscape.nsi, Makefile.mingw.common: version bumps
+ * src/text-context.cpp: removed preedit code; it was broken and unneeded.
+
+2005-02-08 Ted Gould <ted@gould.cx>
+
+ * Released 0.41
+
+2005-02-01 Kees Cook <kees@outflux.net>
+
+ * src/xml/sp-css-attr.h, src/desktop-style.cpp, src/xml/repr-css.cpp,
+ src/xml/repr.h: Fixed SPCSSAttr to be a "real" class, at mental's
+ direction. Fixes my "default prefs don't show attrs" bug.
+ * src/helper/stock-items.cpp: removing redundant code.
+ * src/libnr/nr-point.h, src/libnrtype/FlowUtils.h, src/livarot/Shape.h:
+ added explicit initializations to keep valgrind happy.
+ * src/dir-util.cpp, src/sp-path.cpp, src/splivarot.cpp,
+ src/svg/svg-length.cpp, src/widgets/icon.cpp:
+ cleaning up memory leaks detected by valgrind.
+ * src/extension/dependancy.cpp: made repr-attr tags untranslatable.
+ * src/extension/system.cpp: correcting extension autodetection when
+ there are conflicting matching modules.
+ * src/dialogs/filedialog.cpp, src/extension/extension.h,
+ src/extension/internal/svg.cpp: .svgz loading works again as
+ expected. Non-functioning modules are not listed in file dialogs.
+ * src/text-context.cpp, src/text-editing.cpp: preedit modes don't
+ work correctly for multi-byte characters. See bug 1086769.
+
+2005-01-31 Jon A. Cruz <jon@joncruz.org>
+ * src/file.cpp, src/inkscape.cpp, src/interface.cpp,
+ src/dialogs/export.cpp, src/extension/init.cpp:
+ sanitize messages before passing to display dialogs.
+
+2005-01-31 Kees Cook <kees@outflux.net>
+
+ * src/libnrtype/FontFactory.cpp: added a crude font name detection
+ routine to work around a Pango crash bug. This can be removed once
+ Pango is fixed. See bug #1025565. Actually, I figured out a fix.
+ * print.cpp, print.h, sp-shape.cpp, extension/print.cpp,
+ extension/print.h, extension/implementation/implementation.cpp,
+ extension/implementation/implementation.h,
+ extension/implementation/plugin.cpp, extension/implementation/plugin.h,
+ extension/internal/gnome.h, extension/internal/ps.cpp,
+ extension/internal/ps.h, extension/internal/win32.h:
+ In an attempt to start debugging print rendering, I've added the
+ Print::comment function so that SPItem boundries can be easily
+ seen in rendered output.
+ * src/preferences-skeleton.h, src/sp-shape.cpp,
+ src/dialogs/display-settings.cpp, src/extension/internal/ps.cpp:
+ Added printout comments for print debugging. Fixed dash output
+ bug #1104050.
+ * src/dialogs/rdf.cpp: fixed rdf:bag displays. Closes bug #1113316.
+
+2005-01-30 Jon A. Cruz <jon@joncruz.org>
+ * src/io/sys.h, src/io/sys.cpp: added utility routine to cleanup
+ strings with invalid UTF-8 for display.
+
+2004-01-30 Kees Cook <kees@outflux.net>
+
+ * src/make.dep, src/make.exclude, src/make.files, src/make.ofiles,
+ src/io/uristream.cpp, src/io/sys.cpp: additional win32 changes
+ using Jon Cruz's new mkdir function. Getting Win32 to compile the
+ "io" directory. Closes bug #1107305.
+ * src/file.cpp, src/inkscape-stock.cpp, src/inkscape.cpp,
+ src/interface.cpp, src/main.cpp, src/dialogs/export.cpp,
+ src/dialogs/stroke-style.cpp, src/extension/input.cpp,
+ src/extension/implementation/script.cpp, src/helper/stock-items.cpp,
+ src/io/sys.cpp, src/io/sys.h, src/widgets/icon.cpp: wrapped
+ g_file_test with new Inkscape::IO::file_test since g_file_test isn't
+ utf8-safe.
+ * src/inkscape.cpp: removed call to g_free on non-alloced string.
+ fixed up crash-save location to be utf8-okay.
+ * src/extension/extension.cpp: convert from utf8 before open.
+ * src/sp-spiral.cpp, src/object-edit.cpp: found place where CLAMP on
+ spiral's t0 wasn't working. Closes bug #1075640.
+
+2004-01-28 MenTaLguY <mental@rydia.net>
+
+ * src/sp-object.h, src/sp-object.cpp:
+ efficiency fixes which should be helpful when loading large documents
+
+2005-01-29 Jon A. Cruz <jon@joncruz.org>
+
+ * src/file.h, src/file.cpp, src/inkscape.cpp, src/sp-image.cpp,
+ src/extension/implementation/script.cpp,
+ src/extension/internal/pov-out.cpp, src/extension/internal/ps.cpp,
+ src/extension/plugin/gimpgrad.cpp, src/helper/png-write.cpp,
+ src/io/Makefile_insert, src/io/sys.h, src/io/sys.cpp,
+ src/trace/imagemap.cpp, src/xml/repr-io.cpp:
+
+ Refactored open routine to better location.
+
+2004-01-28 Kees Cook <kees@outflux.net>
+
+ * configure.ac: added test for libgc 6.4 or better.
+ * src/main.cpp: calling new SPRepr methods instead of inline wrappers.
+
+2004-01-27 MenTaLguY <mental@rydia.net>
+
+ * src/xml/simple-node.h, src/xml/simple-node.cpp:
+
+ SimpleNode::lastChild() and SimpleNode::appendChild() are now
+ O(1) rather than O(n)
+
+2004-01-26 MenTaLguY <mental@rydia.net>
+
+ * src/xml/repr-util.cpp, src/xml/repr.cpp, src/xml/repr.h,
+ src/xml/sp-repr-action.h, src/xml/sp-repr-event-vector.h:
+
+ inlined legacy wrappers
+
+ * src/xml/simple-node.cpp: really fixed #1108231 now
+
+2005-01-25 Jon A. Cruz <jon@joncruz.org>
+
+ * src/interface.cpp: Passed file import call to shared code.
+ Fixed bug #1108620.
+
+2005-01-25 MenTaLguY <mental@rydia.net>
+
+ * src/xml/simple-node.cpp: fixed bug #1108231
+
+2005-01-25 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/dialogs/desktop-properties.cpp: Changed set of paper sizes offered:
+
+ Removed `Folio' pagesize (which means a different paper size to
+ different people; will Folio be missed? If so, can we improve
+ the name?).
+
+ Changed ISO page sizes (A0..A10, B0..B10) to match official ISO
+ specification in mm.
+
+ Note that these differ from ghostscript's idea of page sizes;
+ see comment in desktop-properties.cpp for speculation of
+ possible problems (fuzziness from antialiasing).
+
+ (Note also that our previous sizes differed even more from
+ gs_statd.ps...)
+
+ Coalesced Ledger and Tabloid to a single entry (11x17in);
+ previously they differed in size.
+
+ Changed Icon 16x16 from 16pt to 16px; similarly Icon 32x32 and
+ Banner 468x60.
+
+2004-01-24 MenTaLguY <mental@rydia.net>
+
+ * src/xml/simple-node.cpp: potential fix for bug #1108231
+
+2004-01-23 Ted Gould <ted@gould.cx>
+
+ * po/POTFILES.in, share/extensions/dia.inx,
+ src/preferences-skeleton.h, src/extension/Makefile_insert,
+ src/extension/dependency.cpp, src/extension/dependency.h,
+ src/extension/error-file.cpp, src/extension/error-file.h,
+ src/extension/extension.cpp, src/extension/extension.h,
+ src/extension/init.cpp, src/extension/prefdialog.cpp:
+
+ Adding in functionality to write out an error log based on the failing to
+ load of extensions. There is also a new error dialog that appears if one
+ or more fail to alert the user and tell them where the error log is
+ stored. In the log there is more complex descriptions of what failed.
+
+2004-01-23 MenTaLguY <mental@rydia.net>
+
+ * src/sp-object.cpp: fix for id binding bug
+
+2004-01-23 MenTaLguY <mental@rydia.net>
+
+ * src/xml/repr-io.cpp: don't complain about not having a namespace
+ URI for the standard xml: prefix
+
+ * src/desktop-style.cpp, src/desktop.cpp, src/document-undo.cpp,
+ src/file.cpp, src/gradient-chemistry.cpp, src/inkscape.cpp,
+ src/interface.cpp, src/nodepath.cpp, src/object-edit.cpp,
+ src/path-chemistry.cpp, src/prefs-utils.cpp, src/select-toolbar.cpp,
+ src/selection-chemistry.cpp, src/sp-defs.cpp, src/sp-flowdiv.cpp,
+ src/sp-flowtext.cpp, src/sp-gradient.cpp, src/sp-item.cpp,
+ src/sp-object-group.cpp, src/sp-object-repr.cpp, src/sp-object.cpp,
+ src/sp-offset.cpp, src/sp-pattern.cpp, src/sp-string.cpp,
+ src/sp-text.cpp, src/sp-tspan.cpp, src/sp-use.cpp, src/splivarot.cpp,
+ src/text-chemistry.cpp, src/text-context.cpp, src/text-editing.cpp,
+ src/dialogs/clonetiler.cpp, src/dialogs/display-settings.cpp,
+ src/dialogs/stroke-style.cpp, src/dialogs/xml-tree.cpp,
+ src/extension/extension.h, src/extension/implementation/script.cpp,
+ src/widgets/dash-selector.cpp, src/widgets/gradient-vector.cpp,
+ src/widgets/sp-xmlview-tree.cpp, src/xml/Makefile_insert,
+ src/xml/comment-node.h, src/xml/element-node.h,
+ src/xml/repr-action-test.cpp, src/xml/repr-css.cpp,
+ src/xml/repr-get-children.cpp, src/xml/repr-io.cpp,
+ src/xml/repr-private.h, src/xml/repr-util.cpp, src/xml/repr.cpp,
+ src/xml/repr.h, src/xml/simple-document.cpp, src/xml/simple-document.h,
+ src/xml/simple-node.cpp, src/xml/simple-node.h,
+ src/xml/sp-repr-action.cpp, src/xml/sp-repr-doc.h, src/xml/sp-repr.h,
+ src/xml/text-node.h:
+
+ got rid of xml/repr-private.h, removed
+ sp_repr_document_createTextNode(), made SPRepr and SPReprDoc abstract
+ interfaces, and moved the SPRepr implementations into separate files
+ in the Inkscape::XML namespace
+
+ * src/util/shared-c-string-ptr.h: added equality operators to avoid
+ certain ambiguities
+
+2004-01-22 MenTaLguY <mental@rydia.net>
+
+ * src/xml/Makefile_insert, src/xml/repr-private.h, src/xml/repr.cpp,
+ src/xml/session.h, src/xml/simple-session.cpp, src/xml/simple-session.h,
+ src/xml/sp-repr-action.cpp, src/xml/transaction-logger.h:
+
+ added Inkscape::XML::Session and Inkscape::XML::TransactionLogger
+ to provide a new interface for transactions, rather than doing it from
+ SPReprDoc
+
+2004-01-22 MenTaLguY <mental@rydia.net>
+
+ * src/xml/Makefile_insert, src/xml/node-observer.h,
+ src/xml/repr-private.h, src/xml/repr.cpp:
+
+ moved repr loging behind generic observer interface
+
+2005-01-22 Ted Gould <ted@gould.cx>
+
+ * src/display/canvas-grid.cpp, src/display/canvas-grid.h;
+
+ Fixing 1103001. Now major grid lines work alot more like you
+ think that they should.
+
+2005-01-21 MenTaLguY <mental@rydia.net>
+
+ * src/util/Makefile_insert, src/util/shared-c-string-ptr.cpp,
+ src/util/shared-c-string-ptr.h, src/util/shared-c-string.cpp,
+ src/util/shared-c-string.h, src/xml/repr-io.cpp,
+ src/xml/repr-private.h, src/xml/repr-util.cpp, src/xml/repr.cpp,
+ src/xml/sp-repr-action.h, src/xml/sp-repr-attr.h:
+
+ renamed Util::SharedCString to Util::SharedCStringPtr, which is
+ more descriptive of what it actually is
+
+2005-01-21 MenTaLguY <mental@rydia.net>
+
+ * src/xml/repr-private.h, src/xml/repr-util.cpp, src/xml/repr.cpp:
+
+ simplify the cacheing of repr position indices, and make it something
+ that can work with an abstract interface
+
+2005-01-20 Kees Cook <kees@outflux.net>
+
+ * src/file.cpp: added some debug output to help bulia debug bug #1102318.
+ * configure.ac: more attempts at detecting the -lgc libs.
+
+2005-01-19 Kees Cook <kees@outflux.net>
+
+ * configure.ac: trying to correct the -lgc detection.
+ * inkscape.pod: added theme details.
+ * src/widgets/widget-sizes.h: went from 20 to 24 for toolbar icon size
+ to match other GTK applications.
+ * src/extension/db.cpp: corrected STL "not found" handling. Didn't
+ fix bug #1102318.
+
+2005-01-18 Kees Cook <kees@outflux.net>
+
+ * src/inkscape.h, src/inkscape.cpp, src/widgets/icons.cpp:
+ Added basic theme support! Whee!
+ * share/inkscape/icons.svg: restoring original up/down/flip icons since
+ icons are themable now. We should stick to our original look.
+ * share/screens/about.svg: added Brisgeek's 0.41 about screen. Had
+ to tweak background: looks like doc background isn't imported.
+ * share/icons/*.xpm, share/icons/*.png: removed them. Not being used.
+
+2005-01-17 MenTaLguY <mental@rydia.net>
+
+ * src/desktop-style.cpp, src/inkscape.cpp, src/interface.cpp,
+ src/path-chemistry.cpp, src/prefs-utils.cpp, src/selection-chemistry.cpp,
+ src/sp-flowtext.cpp, src/sp-gradient.cpp, src/sp-object.cpp,
+ src/sp-text.cpp, src/sp-tspan.cpp, src/splivarot.cpp,
+ src/dialogs/xml-tree.cpp, src/extension/internal/pov-out.cpp,
+ src/widgets/dash-selector.cpp, src/xml/repr-css.cpp,
+ src/xml/repr-get-children.cpp, src/xml/repr-io.cpp,
+ src/xml/repr-private.h, src/xml/repr-util.cpp, src/xml/repr.cpp,
+ src/xml/sp-repr-action.cpp:
+
+ Made all SPRepr fields private, and moved most functionality into
+ member functions. Also shuffled SPReprDoc members, to avoid
+ need for SPReprDoc to be finalized.
+
+2005-01-17 Kees Cook <kees@outflux.net>
+
+ * share/markers/markers.svg: applied patch #990884, which provides a
+ few mirrored arrows until marker transforms are finished.
+ * share/icons/icons.svg: updates per Bulia's request.
+
+2005-01-16 MenTaLguY <mental@rydia.net>
+
+ * src/sp-object.cpp: non-elements no longer get ids assigned
+
+2005-01-15 MenTaLguY <mental@rydia.net>
+
+ * src/arc-context.cpp, src/document-private.h, src/document.cpp,
+ src/document.h, src/event-context.cpp, src/node-context.cpp,
+ src/rect-context.cpp, src/sp-object.cpp, src/spiral-context.cpp,
+ src/star-context.cpp, src/toolbox.cpp, src/uri-references.cpp,
+ src/dialogs/desktop-properties.cpp, src/widgets/gradient-vector.cpp,
+ src/widgets/layer-selector.cpp, src/widgets/sp-widget.cpp,
+ src/widgets/sp-xmlview-attr-list.cpp, src/widgets/sp-xmlview-content.cpp,
+ src/widgets/sp-xmlview-tree.cpp, src/xml/repr.cpp,
+ src/xml/sp-repr-event-vector.h:
+
+ Removed attribute setting callback, and decoupled ids and object/repr
+ bindings (object <-> repr associations are now remembered directly,
+ though ids are still tracked too).
+
+ This means it is now possible to set a null id on an object without
+ anything breaking (hopefully). For now we will still assign ids
+ to everything by default...
+
+2005-01-15 MenTaLguY <mental@rydia.net>
+
+ * src/arc-context.cpp, src/event-context.cpp, src/node-context.cpp,
+ src/rect-context.cpp, src/sp-object.cpp, src/spiral-context.cpp,
+ src/star-context.cpp, src/toolbox.cpp,
+ src/dialogs/desktop-properties.cpp, src/widgets/gradient-vector.cpp,
+ src/widgets/layer-selector.cpp, src/widgets/sp-widget.cpp,
+ src/widgets/sp-xmlview-attr-list.cpp, src/widgets/sp-xmlview-content.cpp,
+ src/widgets/sp-xmlview-tree.cpp, src/xml/repr.cpp,
+ src/xml/sp-repr-event-vector.h:
+
+ remove all veto callbacks but setting attributes
+
+2005-01-15 Kees Cook <kees@outflux.net>
+
+ * src/inkscape.cpp: correcting windows path for preferences. Closes
+ bug #933461.
+
+ * src/file.cpp, src/nodepath.cpp, src/selection-describer.cpp,
+ src/seltrans.cpp, src/sp-item-group.cpp, src/sp-path.cpp,
+ src/sp-spiral.cpp, src/sp-star.cpp, src/dialogs/find.cpp:
+ Using ngettext for plural localized strings. Please try to keep this
+ up. Closes bug #1076872.
+
+ * share/icons/Makefile.am, share/icons/icons.svg, src/inkscape-stock.cpp,
+ src/inkscape-stock.h, src/dialogs/stroke-style.cpp,
+ src/dialogs/text-edit.cpp, src/dialogs/transformation.cpp,
+ src/dialogs/xml-tree.cpp: Finished the last of the missing pixmap
+ replacements from Andreas Nilsson. Fixed some mistakes in the earlier
+ changes (need to call sp_icon_new_scaled not sp_icon_new).
+
+2005-01-14 MenTaLguY <mental@rydia.net>
+
+ * src/gc.cpp: leave the free space multiplier at the default, which
+ will hopefully (according to Hans) avoid some of the odd gc issues
+ we've had, if nothing else does
+
+2005-01-14 Kees Cook <kees@outflux.net>
+
+ * share/icons/Makefile.am, share/icons/icons.svg, src/inkscape-stock.cpp,
+ src/inkscape-stock.h, src/verbs.cpp, src/dialogs/stroke-style.cpp,
+ src/dialogs/transformation.cpp, src/widgets/icon.cpp, src/widgets/icon.h,
+ src/widgets/paint-selector.cpp:
+ Fixed up code and replaced pixmaps with icons from myself and
+ Andreas Nilsson.
+
+2005-01-11 MenTaLguY <mental@rydia.net>
+
+ * src/xml/repr-io.cpp: promote non-namespaced SVG documents into SVG
+ namespace
+
+2005-01-08 MenTaLguY <mental@rydia.net>
+
+ * src/Makefile_insert, src/gc-anchored.cpp, src/gc-anchored.h:
+ abstracted allocation of anchors
+
+2005-01-06 Ted Gould <ted@gould.cx>
+
+ * src/interface.cpp, src/extension/effect.cpp,
+ src/extension/implementation/implementation.cpp,
+ src/extension/implementation/implementation.h,
+ src/extension/implementation/plugin-link.h,
+ src/extension/implementation/plugin.cpp,
+ src/extension/implementation/plugin.h,
+ src/extension/implementation/script.cpp,
+ src/extension/implementation/script.h, src/extension/plugin/gimpgrad.cpp,
+ src/extension/plugin/grid.cpp:
+
+ Changing the effects preferences so that it uses sockets and plugs which
+ will allow out of process GUIs to work too. This is a first pass with
+ nothing beautiful, but it does seem to work.
+
+2005-01-03 MenTaLguY <mental@rydia.net>
+
+ * src/document.cpp, src/main.cpp, src/sp-root.cpp:
+ get rid of ugly xmlns hacks
+
+ * src/inkscape.cpp, src/extension/internal/svg.cpp, src/xml/repr-io.cpp:
+ automatically include xmlns declarations for the required namespaces,
+ and make a best effort at using a default namespace when requested
+ and possible
+
+2005-01-02 Kees Cook <kees@outflux.net>
+
+ * share/icons/icons.svg: updated view and location
+ * src/document.cpp, src/dialogs/rdf.cpp: fixed another bug in metadata
+ due to svg: prefix change.
+ * src/inkscape-stock.h, src/inkscape-stock.cpp, share/icons/Makefile.am:
+ removed unused xpm icons
+
+2005-01-02 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/fontsize-expansion.h, src/fontsize-expansion.cpp:
+ New files.
+ * src/Makefile_insert: Add the new files to libinkpre_a_SOURCES.
+ * src/desktop-style.cpp (sp_desktop_apply_css_recursive):
+ When calling sp_css_attr_scale, change the expansion calculation
+ to use fontsize_expansion().
+ * src/sp-text.cpp (sp_text_set_transform): Similarly use
+ fontsize_expansion() instead of generic m.expansion().
+
+2005-01-01 Kees Cook <kees@outflux.net>
+
+ * src/extension/db.h, src/extension/db.cpp, src/extension/init.cpp:
+ created "modulelist" to maintain initialization order for extension
+ lists.
+
+2004-12-31 MenTaLguY <mental@rydia.net>
+
+ * src/xml/repr-io.cpp, src/xml/repr.h: initial scaffoliding for more
+ cosmetic use of prefixes in output files (and eventually more proper
+ namespace handling for output as well)
+
+2004-12-31 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/sp-text.cpp (sp_text_set_transform): Change scaling of font size.
+ The result should be closer to what CorelDraw, XaraX, Canvas 7 and
+ Expression3 do according to vellum, though I don't know the exact
+ rule that they use.
+
+2004-12-25 Ted Gould <ted@gould.cx>
+
+ * share/extensions/grid.inx, src/extension/extension.cpp,
+ src/extension/extension.h, src/extension/plugin/grid.cpp:
+
+ Futher improvements to the grid plugin. This involves mostly adding in
+ parameters at this time, but, ofcourse, I never implemented floating
+ point parameters -- so that had to be done first. More modular code so
+ that things can be adjusted externally better.
+
+2004-12-25 Ted Gould <ted@gould.cx>
+
+ * share/extensions/Makefile.am, share/extensions/grid.inx,
+ src/extension/implementation/plugin-link.h,
+ src/extension/implementation/plugin.cpp,
+ src/extension/plugin/Makefile_insert, src/extension/plugin/gimpgrad.cpp,
+ src/extension/plugin/grid.cpp:
+
+ Adding in a new effect plugin, grid. It draws a grid on the canvas which
+ is just an easy way to do some neat things. It is mostly done, but still
+ needs cleanup. Some other files required modification to make this
+ possible.
+
+2004-12-25 MenTaLguY <mental@rydia.net>
+
+ * src/event-context.cpp: removed unused handler
+
+2004-12-25 Ted Gould <ted@gould.cx>
+
+ * share/extensions/svg_dropshadow:
+
+ Changing to use "svg:g" instead of "g" for the group.
+
+ * src/verbs.cpp, src/extension/effect.cpp, src/extension/effect.h,
+ src/extension/system.cpp, src/extension/system.h,
+ src/extension/implementation/implementation.cpp,
+ src/extension/implementation/implementation.h,
+ src/extension/implementation/plugin.cpp,
+ src/extension/implementation/plugin.h,
+ src/extension/implementation/script.cpp,
+ src/extension/implementation/script.h:
+
+ Final stuff to get Effects working as well as the did before, which
+ is okay, but not great. This involved changing the API to get an SPView
+ instead of an SPDocument because then I can get the selection information
+ from the view that is being used.
+
+2004-12-24 MenTaLguY <mental@rydia.net>
+
+ * src/sp-object-repr.cpp, src/sp-tspan.cpp, src/splivarot.cpp,
+ src/dialogs/rdf.cpp, src/dialogs/xml-tree.cpp,
+ src/widgets/sp-xmlview-tree.cpp, src/xml/repr-io.cpp,
+ src/xml/repr-private.h, src/xml/repr-util.cpp, src/xml/repr.cpp,
+ src/xml/repr.h:
+
+ cleaned out unused code and unhygenic macros, as well as fixing
+ constructors for text and comment nodes
+
+2004-12-24 Ted Gould <ted@gould.cx>
+
+ * src/verbs.cpp, src/extension/effect.cpp, src/extension/effect.h:
+
+ Okay, now the effects menu really works! Well, the implementation seems
+ to be broken, but the wrapper seems to be all working.
+
+2004-12-24 Ted Gould <ted@gould.cx>
+
+ * src/interface.cpp, src/verbs.cpp, src/verbs.h, src/extension/effect.cpp,
+ src/extension/effect.h:
+
+ Getting the Effects menu basically working. This included some fixes to
+ the verbs where they were incrementing the database incorrectly. The
+ effects are the first component to take advantage of the dynamically
+ created verbs, and exercised new code. Now the basic menu is available,
+ but there is no functionality there.
+
+2004-12-24 Ted Gould <ted@gould.cx>
+
+ * src/interface.cpp, src/verbs.cpp, src/verbs.h:
+
+ Basic code for the effects menu.
+
+ * src/dialogs/filedialog.cpp, src/dialogs/filedialog.h,
+ src/extension/db.cpp, src/extension/db.h:
+
+ Changing the DB access functions to use std::list instead of GSList so
+ that it is more standard, and we get rid of a specialized class that
+ really isn't that useful. Less memory usage, and fixes a leak.
+
+ * src/extension/effect.cpp, src/extension/effect.h:
+
+ Adding in a "Last Effect" to be used in the menus.
+
+ * src/extension/extension-forward.h, src/extension/extension.cpp,
+ src/extension/extension.h, src/extension/input.cpp,
+ src/extension/output.cpp, src/extension/timer.cpp, src/extension/timer.h,
+ src/extension/Makefile_insert:
+
+ Adding in the timer functions so that modules will unload in a given
+ amount of time. For more information on this read the documentation
+ in the files. Kinda a lazy deallocation.
+
+ * src/extension/implementation/implementation.cpp:
+
+ Fix unload so that it is not recursive.
+
+2004-12-23 MenTaLguY <mental@rydia.net>
+
+ * src/arc-context.cpp, src/document.cpp, src/draw-context.cpp,
+ src/dyna-draw-context.cpp, src/file.cpp, src/gradient-chemistry.cpp,
+ src/interface.cpp, src/layer-fns.cpp, src/main.cpp, src/object-ui.cpp,
+ src/path-chemistry.cpp, src/rect-context.cpp,
+ src/selection-chemistry.cpp, src/sp-anchor.cpp, src/sp-clippath.cpp,
+ src/sp-defs.cpp, src/sp-ellipse.cpp, src/sp-flowdiv.cpp,
+ src/sp-flowregion.cpp, src/sp-flowtext.cpp, src/sp-gradient-test.cpp,
+ src/sp-gradient.cpp, src/sp-image.cpp, src/sp-item-group.cpp,
+ src/sp-line.cpp, src/sp-marker.cpp, src/sp-mask.cpp,
+ src/sp-object-group.cpp, src/sp-object-repr.cpp, src/sp-offset.cpp,
+ src/sp-path.cpp, src/sp-pattern.cpp, src/sp-polygon.cpp,
+ src/sp-polyline.cpp, src/sp-rect.cpp, src/sp-root.cpp,
+ src/sp-spiral.cpp, src/sp-star.cpp, src/sp-symbol.cpp, src/sp-text.cpp,
+ src/sp-tspan.cpp, src/sp-use.cpp, src/spiral-context.cpp,
+ src/splivarot.cpp, src/star-context.cpp, src/text-chemistry.cpp,
+ src/text-context.cpp, src/dialogs/find.cpp, src/dialogs/rdf.cpp,
+ src/dialogs/xml-tree.cpp, src/ecma/EcmaBinding.cpp,
+ src/extension/internal/gdkpixbuf-input.cpp,
+ src/extension/internal/svg.cpp, src/livarot/ShapeDraw.cpp,
+ src/xml/repr-io.cpp, src/xml/repr-util.cpp, src/xml/repr.cpp:
+
+ use normalized qnames for SVG elements too
+
+2004-12-23 Kees Cook <kees@outflux.net>
+
+ * configure.ac, src/Makefile_insert, src/extension/script/Makefile_insert:
+ adding Perl and Python compile tests. Corrected library locations.
+ * src/extension/script/InkscapeScript.h,
+ src/extension/script/InkscapePython.cpp,
+ src/extension/script/InkscapeScript.cpp: white space fix, and
+ added config.h, and some small debugging for myself. Hope Bob doesn't
+ mind! :)
+ * src/dialogs/scriptdialog.cpp: added comments to default code.
+
+2004-12-22 Kees Cook <kees@outflux.net>
+
+ * configure.ac, src/extension/script/Makefile_insert: automake cleanups
+ to deal with perl/python detection.
+
+2004-12-20 David Turner <novalis@gnu.org>
+ * src/widgets/gradient-vector.cpp:
+ Fixed bug with gradient stops at 0 and 100%. Closes 1085920.
+
+2004-12-18 Bob Jamison <rjamison@titan.com>
+
+ * src/extensions/script/*:
+ New files that enable embedding of scripting languages
+ in Inkscape. Currently using Swig to embed Perl and Python.
+
+ * autoconf.ac:
+ Allow opting for perl or python with --with-perl=yes|no
+ and --with-python=yes|no
+
+2004-12-15 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * streq.h (streq), strneq.h (strneq), memeq.h (memeq):
+ New convenience functions for strcmp(a,b)==0 etc.
+
+ * src/dir-util.cpp (sp_relative_path_from_path):
+ Fix when base is a string prefix of path but a directory prefix
+ (e.g. path=/foo/barney, base=/foo/bar).
+
+2004-12-10 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/sp-conn-end.cpp (sp_conn_end_move_compensate):
+ Fix for undo/save: wasn't calling updateRepr().
+
+2004-12-09 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/style.cpp (sp_style_merge_from_style_string):
+ More standards-conforming parsing of style strings into prop:value
+ pairs.
+
+2004-12-08 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/style.h, src/style.cpp, src/libnrtype/font-style-to-pos.cpp:
+ Fix font-weight value: s/darker/bolder/.
+
+ * src/style.cpp (sp_style_merge_from_parent):
+ Fix bug with specifying stroke-width with unit of em or ex.
+ (We were ignoring the number, treating it as 1em or 1ex.)
+
+ * src/style.h, src/style.cpp (sp_style_read_dash,
+ sp_style_write_string, sp_style_write_difference):
+ Allow `inherit' as a value for dasharray.
+ (Also plug small memory leak in sp_style_read_dash.)
+
+2004-12-07 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/style.cpp (sp_style_write_string):
+ Fix for when stroke-dasharray either explicitly set to `none', or
+ inherits non-none.
+
+ * src/style.cpp (sp_style_write_ienum):
+ Fix: preserve explicit `inherit' request.
+ * (sp_style_read, sp_style_merge_property):
+ Allow explicit `inherit' for `display' property.
+
+ * src/style.cpp (sp_style_read):
+ Fix copy&paste bug affecting `visibility' and `display' properties.
+
+2004-12-07 David Turner <novalis@gnu.org>
+
+ * src/libnrtype/RasterFont.cpp, src/display/nr-arena-shape.cpp:
+ Fixed dash rendering bug (#1077213)
+
+2004-12-06 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/style.h, src/style.cpp: Support all `display' values
+ required by SVG 1.1. (No functional change, insofar as the new
+ values all have the same behaviour as our existing `block' value
+ in SVG.)
+ * src/sp-item.cpp, src/style.cpp: Use `inline' (SP_CSS_DISPLAY_INLINE)
+ rather than `block' as our generic display value meaning `don't hide
+ this', as per spec.
+
+ * src/style.cpp: Prefer to write lr-tb etc. rather than the
+ abbreviations lr etc. (Also add comment saying why.)
+
+2004-12-03 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/dialogs/xml-tree.cpp (on_attr_select_row_set_value_content):
+ Fix segfault: treat NULL as empty string for display purposes.
+
+2004-11-30 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/svg/svg.h, src/svg/sp-svg.def, src/svg/svg-length.cpp:
+ (sp_svg_boolean_read, sp_svg_write_percentage):
+ Remove these unused functions.
+ (sp_svg_length_read_lff, sp_svg_number_write_d,
+ sp_svg_number_write_i): Mark static.
+
+ * configure.ac:
+ When adding -lgc to LIBS, also add its dependencies -lpthread -ldl.
+
+2004-11-28 Ted Gould <ted@gould.cx>
+
+ * 0.40
+
+2004-11-25 MenTaLguY <mental@rydia.net>
+
+ * share/tutorials/tutorial-calligraphy.svg: spelling fix
+
+ * src/widgets/layer-selector.cpp: fixing the layer selector update bug;
+ sigc++ apparently doesn't deal with reference arguments very well
+
+2004-11-25 MenTaLguY <mental@rydia.net>
+
+ * src/layer-fns.cpp: fix layer creation within sublayers
+
+ * src/dialogs/layer-properties.cpp: fix dialog leak
+
+2004-11-25 MenTaLguY <mental@rydia.net>
+
+ * src/inkscape.cpp: eliminate duplicated code across #ifdefs
+
+ * src/verbs.cpp, src/dialogs/layer-properties.cpp,
+ src/dialogs/layer-properties.h:
+
+ LayerPropertiesDialog is no longer a singleton, since it's kind of a
+ per-desktop (well, ideally per-document) thing. Remaining to do:
+ fix update of layer selector widget, and eliminate leak of dialog
+ objects.
+
+2004-11-24 Kees Cook <kees@outflux.net>
+
+ * inkscape.spec: added SMP flags, added static library link capability.
+
+2004-11-24 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/draw-context.cpp (spdc_concat_colors_and_flush):
+ Do nothing if empty curve; in particular, don't try to close an
+ empty curve.
+
+ * src/pen-context.cpp (spdc_endpoint_snap):
+ Fix use of uninitialized value when snapping.
+
+2004-11-23 Bryce Harrington <bryce@bryceharrington.org>
+
+ * src/dialogs/layer-properties.cpp: Fixing bug causing two new
+ layers to get created when hitting enter
+
+2004-11-23 Kees Cook <kees@outflux.net>
+
+ * share/tutorials: added Josh's changes, resized, repositioned for
+ 800x600.
+ * src/verbs.h, src/verbs.cpp, src/interface.cpp: added tracing
+ tutorial.
+
+2004-11-23 MenTaLguY <mental@rydia.net>
+
+ * src/rect-context.cpp: disallow drawing on locked or invisible layers
+
+ * src/widgets/layer-properties.h, src/widgets/layer-properties.cpp:
+ slight HIG-ification
+
+ * src/desktop.cpp, src/desktop.h, src/widgets/layer-selector.cpp,
+ src/widgets/layer-selector.h, src/verbs.cpp, src/sp-desktop-widget.h
+
+ removed vestigal layer renaming thing
+
+ * src/verbs.cpp, src/dialogs/layer-properties.cpp,
+ src/dialogs/layer-properties.h:
+
+ reuse dialog for creating layers as well as for renaming them
+
+2004-11-22 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/display/bezier-utils.cpp (generate_bezier): For the sake of
+ our current pencil tool, don't use free optimization of the end
+ tangent vector.
+
+2004-11-21 MenTaLguY <mental@rydia.net>
+
+ * src/verbs.cpp: add accels for layer menu items
+
+2004-11-21 Bryce Harrington <bryce@bryceharrington.org>
+
+ * src/dialogs/layer-properties.cpp, src/verbs.cpp,
+ src/dialogs/layer-properties.h: Hooking up layer rename
+ functionality, and making it show correctly.
+
+ * src/dialogs/debugdialog.cpp, src/dialogs/find.cpp,
+ src/dialogs/tracedialog.cpp: Fixing dialog show behavior
+
+2004-11-21 Kees Cook <kees@outflux.net>
+
+ * src/sp-object.cpp, src/sp-metadata.cpp: added some debugging, and
+ fixed a dumb error in my metadata _release handler. Should mostly
+ close bug 1069772.
+ * src/Makefile_insert, src/sp-skeleton.cpp, src/sp-skeleton.h:
+ created some example SPObject implementations for a basis for any
+ new SPObjects in the future.
+ * src/dialogs/xml-tree.cpp: fixing logic bug in identability checker.
+ Added immutability test to actually close 1069772.
+ * share/icons/icons.svg, src/verbs.cpp, src/interface.cpp: adding
+ icons for the "new" menu, vacuum, reverse, make bitmap, and trace.
+
+2004-11-20 Jon A. Cruz <jon@joncruz.org>
+
+ * src/extension/db.h, src/extension/db.cpp, src/dialogs/filedialog.cpp:
+ Added extension matching pattern. Fixed bug 1064888.
+
+ * src/dialogs/filedialog.cpp (isValidImageFile):
+ Fixed previewing bug 1067551.
+
+2004-11-20 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/display/bezier-utils.cpp (sp_bezier_fit_cubic_full):
+ Add splitpoints parameter. Callers updated.
+
+ * src/display/bezier-utils.cpp
+ (sp_bezier_fit_cubic_r, sp_bezier_fit_cubic_full):
+ Change last parameter from lg_max_beziers to max_beziers.
+ Callers updated.
+
+2004-11-19 Bryce <bryce@bryceharrington.org>
+
+ * src/dialogs/layer-properties.cpp,
+ src/dialogs/layer-properties.h: Adding some widgets.
+
+2004-11-18 Bryce <bryce@bryceharrington.org>
+
+ * src/dialogs/Makefile_insert, src/dialogs/makefile.msc,
+ src/dialogs/layer-properties.h, src/dialogs/layer-properties.h:
+ Adding a layer properties dialog for renaming layers
+
+ * src/desktop.cpp src/interface.cpp, src/verbs.cpp,
+ src/verbs.h src/dialogs/layer-properties.cpp,
+ src/dialogs/layer-properties.h,
+ src/widgets/layer-selector.cpp: Hooking in layer props dialog.
+
+2004-11-16 MenTaLguY <mental@rydia.net>
+
+ * src/widgets/document-tree-model.cpp, src/widgets/document-tree-model.h,
+ src/widgets/layer-selector.cpp, src/widgets/Makefile_insert:
+
+ removed Widgets::DocumentTreeModel because unused
+
+ * src/xml/repr-private.h, src/xml/repr-util.cpp, src/xml/repr.cpp,
+ src/xml/repr.h:
+
+ cache successive sibling counts (self+subsequent siblings) in SPRepr
+ to make sp_repr_n_children() and sp_repr_position() more efficient,
+ which will be needed later for e.g. GTK tree models.
+
+ sp_repr_nth_child() isn't any faster as a result of the changes,
+ but it probably won't need to be
+
+ * src/xml/repr.cpp: fixed refcount leak in SPRepr::SPRepr(SPRepr const &)
+
+2004-11-15 MenTaLguY <mental@rydia.net>
+
+ * src/gc.cpp: add initial stubs that print an informative error
+ if the GC functions are used before Inkscape::GC::init() is called
+
+2004-11-14 MenTaLguY <mental@rydia.net>
+
+ * configure.ac, src/gc-core.h, src/gc-managed.h, src/gc-anchored.h,
+ src/gc-finalized.h, src/gc.cpp:
+
+ make disabling the collector a run-time rather than a compile-time
+ option; there are now three garbage collector options, selectable
+ by setting the _INKSCAPE_GC environment variable:
+
+ * enable - the normal collector (default)
+ * debug - the debugging collector
+ * disable - use standard malloc in place of the libgc allocator
+
+2004-11-14 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/display/bezier-utils.cpp: Make end tangent/s be unconstrained for
+ sp_bezier_fit_cubic, sp_bezier_fit_cubic_r, and around corner nodes.
+
+ * src/pencil-context.cpp (fit_and_split): Allow the bezier fitter to
+ choose the middle control points freely except to the extent required
+ for smooth nodes.
+
+ * src/display/bezier-utils.cpp (generate_bezier):
+ If either end tangent is specified as zero then estimate the
+ corresponding control point without constraining its direction
+ from the endpoint.
+
+ * src/pencil-context.h, src/pencil-context.cpp
+ (fit_and_split, sp_pencil_context_init): Explicitly remember required
+ tangent instead of using "first two points" hack.
+
+ * src/display/bezier-utils.cpp (sp_bezier_fit_cubic_full):
+ Detect & prevent "ghost spikes", by allowing a corner node if
+ the specified tangent would result in a spike.
+
+ * src/display/bezier-utils.cpp (generate_bezier): Better handling
+ of the case of infinite solutions for the lengths of the two
+ tangent vectors: try requiring that the lengths equal each other,
+ and solving for that length (just one variable).
+
+2004-11-13 Kees Cook <kees@outflux.net>
+
+ * src/document.cpp: wrapped updateDisplay call in undo insensitivity.
+ Closes bug #1030436.
+
+2004-11-12 MenTaLguY <mental@rydia.net>
+
+ * src/main.cpp: fpresetsticky -> fpsetsticky
+
+ * src/verbs.cpp: cast width changes
+
+ * src/libnrtype/FlowBoxes.h, src/libnrtype/FlowDefs.h,
+ src/libnrtype/FlowDest.h, src/libnrtype/FlowEater.h,
+ src/libnrtype/FlowRes.h, src/libnrtype/FlowSols.h,
+ src/libnrtype/FlowSrc.h, src/libnrtype/FlowSrcText.h,
+ src/libnrtype/FlowStyle.h, src/libnrtype/FlowUtils.h:
+ remove stdint.h which isn't being used here
+
+ * src/widgets/icon.h, src/widgets/icon.cpp:
+ icon greys out when insensitive
+
+ * src/gc-anchored.h, src/gc-finalized.h, src/gc-managed.h:
+ documentation
+
+ * src/verbs.cpp: changed cast to reinterpret_cast to hopefully
+ avoid compiler warning
+
+2004-11-11 Kees Cook <kees@outflux.net>
+
+ * src/seltrans.cpp, src/select-context.cpp: ref counting SPObjects
+ correctly so undo's don't blow up an active resize/move. Closes
+ bug #1018756.
+
+2004-11-11 MenTaLguY <mental@rydia.net>
+
+ * src/inkscape.cpp, src/main.cpp, src/widgets/icon.cpp:
+ removed sp_bitmap_icons
+
+ * configure.ac, src/sp-image.cpp, src/object-ui.cpp:
+ removed stale autotrace support code
+
+2004-11-10 MenTaLguY <mental@rydia.net>
+
+ * src/sp-item.cpp, src/sp-clippath.cpp, src/cp-mask.cpp:
+ minor refcounting tweaks
+
+ * src/sp-image.cpp: fixed failure to release GdkPixbufLoader when
+ done with it (fixes bug #1063054)
+
+2004-11-10 Kees Cook <kees@outflux.net>
+
+ * configure.ac, src/gc-core.h: corrected gc.h path detection.
+
+2004-11-09 MenTaLguY <mental@rydia.net>
+
+ * src/dialogs/fileselector.cpp: fixed cut-and-paste refcount bug
+ between SVGPreview::setFileName and SVGPreview::setFromMem that
+ was leaking bitmap image preview SPDocuments
+
+2004-11-09 Bryce Harrington <bryce@bryceharrington.org>
+
+ * src/dialogs/item-properties.cpp
+
+2004-11-09 MenTaLguY <mental@rydia.net>
+
+ * src/sp-item.cpp, src/style.cpp, src/style.h:
+ use 'display' rather than 'visibility' for hiding, and give display
+ a more "modern" representation in SPStyle like visibility's
+
+2004-11-09 Kees Cook <kees@outflux.net>
+
+ * src/dialogs/xml-tree.cpp: added better context to the status bar.
+ added warning flash for id conflicts.
+ * src/toolbox.cpp: killed some copy/paste code while bug hunting.
+
+2004-11-08 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/sp-item.h, src/sp-item.cpp
+ (isExplicitlyHidden, setExplicitlyHidden): New methods.
+
+ * src/dialogs/item-properties.cpp: Change from having a `Visible'
+ checkbox that explicitly sets the SVG visibility property to
+ having a `Hide' checkbox that controls whether or not the
+ element has visibility:hidden. (Mitigates #1061934.)
+
+ * src/sp-object.h, src/sp-object.cpp (visible, setVisible):
+ Remove these methods.
+
+2004-11-07 MenTaLguY <mental@rydia.net>
+
+ * src/gc-finalized.h: fix for Debian bug #279991 (cast to ptrdiff_t
+ rather than int), and basic documentation
+
+2004-11-06 MenTaLguY <mental@rydia.net>
+
+ * src/sp-item.cpp: fix desktop-specific version of SPItem::isHidden()
+ to deal correctly with parent visibility
+
+2004-11-05 MenTaLguY <mental@rydia.net>
+
+ * src/widgets/layer-selector.cpp: more work on making the lock/hide
+ buttons actually do something
+
+ * src/sp-item.cpp, src/sp-item.h: implement lock/hide related methods
+
+ * src/verbs.cpp: "Remove All Kerns" -> "Remove Manual Kerning"
+
+2004-11-04 Kees Cook <kees@outflux.net>
+
+ * src/dialogs/rdf.h, src/dialogs/rdf.cpp: added rdf:Bag for the
+ dc:subject keyword list. Closed bug #1021025.
+ * src/dialogs/xml-tree.cpp, src/widgets/sp-xmlview-attr-list.cpp,
+ src/widgets/sp-xmlview-attr-list.h: added status bar to XML
+ editor. added row-change callback for XML tree view. This
+ all supports a possible future solution to bug #869683.
+ * src/dialogs/desktop-properties.cpp: memory leak in RDF code.
+
+2004-11-04 MenTaLguY <mental@rydia.net>
+
+ * src/widgets/layer-selector.cpp: togglable images and formatting
+ changes (make current layer bold)
+
+ * src/uri.h, src/uri.cpp: added assignment operator
+
+2004-11-03 MenTaLguY <mental@rydia.net>
+
+ * src/widgets/Makefile_insert, src/widgets/shrink-wrap-button.cpp,
+ src/widgets/shrink-wrap-button.h:
+
+ added Inkscape::Widgets::shrink_wrap_button, to make any gtk button
+ an SPButton-like shrink-wrapped button
+
+ * src/widgets/layer-selector.h, src/widgets/layer-selector.cpp:
+
+ abandon SPButton for layer selector buttons
+
+2004-11-03 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * po/check-markup: New script: detects <b>markup<b> <b>problems<7b>
+ in the <b>translated strings. (~10 such problems found.)
+ * Makefile.am (all, check, distcheck): Run po/check-markup (with
+ varying permissiveness of errors).
+
+2004-11-02 MenTaLguY <mental@rydia.net>
+
+ * doc/keys.xml: added documentation of layer keys
+
+2004-11-01 Kees Cook <kees@outflux.net>
+
+ * src/dialogs/align.cpp, src/dialogs/debugdialog.cpp: localized
+ some missed strings.
+
+2004-11-01 MenTaLguY <mental@rydia.net>
+
+ * share/icons/icons.svg: gave bulia's eye icons ids
+
+ * src/widgets/layer-selector.h, src/widgets/layers-selector.cpp:
+ fixed up visibility/lock toggles... now to make them actually do
+ something
+
+2004-10-31 MenTaLguY <mental@rydia.net>
+
+ * src/util/glib-list.h: adaptor for glib lists
+
+ * src/widgets/layer-selector.h, src/widgets/layer-selector.cpp:
+ save the repr next to the SPObject
+
+2004-10-30 MenTaLguY <mental@rydia.net>
+
+ * src/util/list.h: more list cleanups and documentation
+
+ * src/verbs.cpp: call sp_document_done() for layer verbs too
+
+2004-10-30 Bryce Harrington <bryce@bryceharrington.org>
+
+ * src/dialogs/item-properties.cpp, src/sp-object.h: Cleaning up
+ stubs, disabling some more of the desc code to prevent crash.
+ The change to SPObject::label() broke the label editing code;
+ fixing it.
+
+2004-10-30 Kees Cook <kees@outflux.net>
+
+ * src/sp-metadata.cpp, src/sp-metadata.h, src/Makefile_insert,
+ src/document.cpp, src/sp-object-repr.cpp, src/sp-object.cpp:
+ I've created my very first SPObject! SPMetadata is alive! No
+ more nasty hack to have it disappear from SVG Plain. Mental
+ won't have to take away my CVS access any more! :)
+ * inkscape2.nsi: update from Adib Taraben
+
+2004-10-30 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/libnr/nr-matrix.cpp (nr_matrix_invert):
+ Fix for last commit to this file, which broke src==dest case.
+ * src/libnr/nr-matrix-test.cpp: Add test cases for nr_matrix_invert.
+
+2004-10-30 MenTaLguY <mental@rydia.net>
+
+ * src/widgets/layer-selector.cpp, src/widgets/layer-selector.h:
+ update when layers added/removed/reordered.
+
+ * src/verbs.h, src/verbs.cpp: added "rename layer" verb.
+
+2004-10-29 Kees Cook <kees@outflux.net>
+
+ * src/Makefile_insert, src/trace/Makefile_insert,
+ src/util/Makefile_insert: distcheck cleanups.
+
+2004-10-29 MenTaLguY <mental@rydia.net>
+
+ * src/widgets/layer-selector.cpp: default labels in italic
+
+ * src/sp-object.h, src/sp-object.cpp: inkscape:label fixes
+
+ * src/layer-fns.cpp: make ordering of layers complete; not just among
+ siblings
+
+ * src/util/list.h: documentation update
+
+2004-10-29 Bryce Harrington <bryce@bryceharrington.org>
+
+ * layer-fns.cpp: documenting
+ * layer-selector.cpp: documenting & fixing funky widget resizing
+ * object-ui.cpp, dialogs/item-properties.cpp, sp-object.h,
+ sp-object.cpp, widgets/layer-selector.cpp: add ability to set
+ inkscape:label from "Item Properties", remove id setting from
+ "Item Properties", switch to using
+ SPObject::label()/SPObject?::defaultLabel() in UI where object
+ ID is currently used. Documenting. Switching from "label" to
+ "inkscape:label" where appropriate. Adding
+ visible()/setVisible() functions and activating checkbox.
+ * dialogs/item-properties.cpp: Adding title and desc boxes.
+ Adjusting layout of dialog a bit. Changing to use of tables
+ instead of horiz/vert boxes for layout. Setting to inactive
+ until some underlying bits get finished.
+
+2004-10-29 Kees Cook <kees@outflux.net>
+
+ * src/dialogs/export.cpp: moved function-based static state variable
+ into the dialog state variables. Closes bug #993447.
+ * src/display/curve.cpp: fixed compile warning.
+ * src/sp-namedview.cpp: wasn't ref counting correctly. Closes #955020.
+
+2004-10-29 Jon A. Cruz <jon@joncruz.org>
+
+ * src/sp-image.cpp, src/extension/internal/gdkpixbuf-input.cpp:
+ Refactoring filenames and file opening
+ Scales imported images if DPI is known and not 72 DPI. Fixes
+ #1029755
+
+2004-10-29 MenTaLguY <mental@rydia.net>
+
+ * src/widgets/layer-selector.cpp, src/verbs.cpp:
+ unselect objects when layer is manually switched
+
+2004-10-28 Kees Cook <kees@outflux.net>
+
+ * src/document-undo.cpp, src/document.cpp, src/sp-namedview.cpp,
+ src/sp-text.cpp, src/dialogs/desktop-properties.cpp,
+ src/dialogs/export.cpp, src/extension/input.cpp,
+ src/extension/output.cpp, src/extension/system.cpp:
+ Fixing calls to sp_document_set_undo_sensitive to correct allow for
+ nesting, as suggested by mental. Found while tracking down bug
+ #1030436.
+
+2004-10-28 MenTaLguY <mental@rydia.net>
+
+ * src/util/list.h: cleanups of list class. I think, aside from
+ documentation and maybe fixes for g++ 3.4 (if required), this
+ is the last set of changes I will need to make.
+
+ * src/sp-item.cpp, src/splivarot.cpp, src/util/reverse-list.h,
+ src/util/filter-list.h, src/util/map-list.h:
+ adjust for changes in the list class' interface
+
+ * src/desktop.cpp, src/sp-desktop-widget.h:
+ removed old layer selector and added SPDesktop::itemIsHidden()
+
+ * src/widgets/layer-selector.cpp, src/widgets/layer-selector.h:
+ more work; it's now at least as functional as the old selector it
+ replaces
+
+2004-10-27 Kees Cook <kees@outflux.net>
+
+ * src/libnr/nr-point.h: use NR::X and NR::Y instead of "0" and "1".
+ * src/dialogs/export.cpp: stack/register weirdness requires a function
+ call to get true == comparison of NR::Rect's. Closes bug #1048614.
+ * src/dialogs/align.cpp: saving erased iterator. Closes bug #1054270.
+ * share/extensions/ill2svg.pl: added strict, warnings, and detection
+ of Image::Magick module. Closes bug #990659.
+ * src/dialogs/find.h, src/dialogs/find.cpp: removed unfinished new
+ find dialog instantiation. Closes bug #1048802.
+
+2004-10-27 Carl Hetherington <inkscape@carlh.net>
+
+ * src/extension/output.cpp: better fix for 1004134 after advice
+ from Ted.
+
+2004-10-26 Carl Hetherington <inkscape@carlh.net>
+
+ * src/extension/output.cpp: don't reset modified flag until after
+ save has happened, in case it fails. Fixes 1004134.
+
+ * src/livarot/ShapeSweep.cpp: fix a typo in my cleanups. Fixes
+ 1048151.
+
+2004-10-25 Bryce Harringotn <bryce@bryceharrington.org>
+
+ * file.cpp, file.h, dialogs/export.cpp: Adding error return logic
+ for png export code so that failure to write can be tracked.
+ Adding an error dialog for when this occurs. Fixes bug 1038932.
+
+ * extension/system.cpp: Changing sp_ui_error_dialog to g_warning
+ so won't crash when running from commandline. Fixes bug
+ 1000350.
+
+ * inkscape.cpp, inkscape.h, main.cpp, dialogs/filedialog.cpp:
+ Adding Inkscape::Application::use_gui flag as temporary hack to
+ prevent gui dialogs from being used when running from
+ commandline. Fixes bug 1045067.
+
+2004-10-26 Carl Hetherington <inkscape@carlh.net>
+
+ * src/livarot/PathCutting.cpp: fix a couple of bugs that I
+ introduced that cause crashes on cut path.
+
+2004-10-25 Kees Cook <kees@outflux.net>
+
+ * src/sp-object.cpp: nasty hack to not export metadata on "Plain SVG".
+ I promise I'll fix this with a proper SPObject soon.
+
+2004-10-25 Jon A. Cruz <jon@joncruz.org>
+ * src/file.cpp, src/file.h, src/inkscape.cpp, src/sp-image.cpp,
+ src/uri.cpp, src/uri.h, src/dialogs/filedialog.cpp,
+ src/extension/input.cpp, src/extension/implementation/script.cpp,
+ src/extension/internal/pov-out.cpp, src/extension/internal/ps.cpp,
+ src/extension/internal/win32.h, src/extension/plugin/gimpgrad.cpp,
+ src/helper/png-write.cpp, src/trace/imagemap.cpp, src/xml/repr-io.cpp:
+
+ Refactoring filenames and file opening
+
+2004-10-24 MenTaLguY <mental@rydia.net>
+
+ * src/Makefile.am: added/removed files
+
+ * src/util/copy-list.h: nobody's using it right now, get rid of it
+
+ * src/traits/copy.h, src/traits/list-copy.h:
+ traits for determining the type to make a copy of a value
+
+ * src/sp-item.cpp, src/util/filter-list.h src/util/map-list.h,
+ src/util/reverse-list.h, src/widgets/layer-selector.cpp
+ src/xml/sp-repr-action.cpp:
+
+ let the list functions infer their own result type (where possible)
+
+ * src/util/forward-pointer-iterator.h: its value type is a reference
+
+2004-10-23 MenTaLguY <mental@rydia.net>
+
+ * src/desktop.cpp: removed vertical usize limits on statusbar
+
+ * src/widgets/layer-selector.cpp, src/widgets/layer-selector.h:
+ more layer selector work; simplfied model and customized CellRenderer
+ settings a bit
+
+ * src/attributes.cpp, src/attributes.h, src/sp-object.cpp, src/sp-object.h:
+ add inkscape:label attribute
+
+ * src/file.cpp, src/sp-anchor.h, src/sp-animation.h, src/sp-chars.h,
+ src/sp-clippath.h, src/sp-conn-end.cpp, src/sp-defs.h, src/sp-ellipse.h,
+ src/sp-gradient.h, src/sp-guide.h, src/sp-image.h, src/sp-line.h,
+ src/sp-linear-gradient.h, src/sp-marker.h, src/sp-mask.h,
+ src/sp-namedview.h, src/sp-object-group.h, src/sp-offset.h, src/sp-path.h,
+ src/sp-pattern.h, src/sp-polygon.h, src/sp-polyline.h,
+ src/sp-radial-gradient.h, src/sp-rect.cpp, src/sp-rect.h, src/sp-root.h,
+ src/sp-spiral.h, src/sp-star.h, src/sp-stop.h, src/sp-string.h,
+ src/sp-symbol.h, src/sp-text.h, src/sp-tspan.h, src/sp-use.h,
+ src/sp-offset.cpp, src/sp-shape.h:
+
+ make inheritance actual
+
+2004-10-23 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/libnr/*: Move some things from nr-matrix-ops.h to new files.
+
+ * src/libnr/nr-point-fns.h, src/libnr/nr-point-fns.cpp:
+ New function is_zero. Move is_unit_vector here
+ (was private to sp-spiral.cpp).
+
+ * src/display/bezier-utils-test.cpp: Disable a test, replacing with a
+ todo printf and adding a comment explaining.
+
+2004-10-22 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/pencil-context.cpp: Ensure that data points array p is uniqued
+ and contains no NaNs.
+
+ * src/libnr/nr-point-fns.cpp (LInfty): Fix bug with NaN coordinates:
+ return NaN (rather than unspecified behaviour).
+ * src/libnr/nr-point-fns-test.cpp: Add test cases for L1,L2,LInfty
+ handling of NaN.
+
+ * src/pencil-context.cpp: Fix bug: undesirable interactions between
+ snapping and snap-to-anchor.
+
+2004-10-21 MenTaLguY <mental@rydia.net>
+
+ * src/desktop.cpp: SPDesktop::currentRoot() should pull from
+ the current layer hierarchy just like SPDesktop::currentLayer();
+ doubly so, since currently when switching documents the layer hierarchy
+ is updated before the document is switched
+
+ * src/util/Makefile_insert, src/util/copy-list.h: add list copy thingy
+
+ * src/util/list.h: add rest()
+
+ * src/util/reverse-list.h: bug fixes to reverse_list_in_place()
+
+ * src/widgets/layer-selector.cpp, src/widgets/layer-selector.h:
+ more work on layer selector
+
+2004-10-21 Carl Hetherington <inkscape@carlh.net>
+
+ * src/livarot/Path.cpp, src/livarot/Path.h,
+ src/livarot/PathConversion.cpp, src/livarot/PathCutting.cpp,
+ src/livarot/PathOutline.cpp, src/livarot/PathSimplify.cpp,
+ src/livarot/ShapeMisc.cpp: excise separate path description data
+ structure.
+
+ * src/livarot/Path.h, src/livarot/Path.cpp,
+ src/livarot/PathConversion.cpp, src/livarot/PathCutting.cpp,
+ src/livarot/PathOutline.cpp, src/livarot/PathSimplify.cpp,
+ src/livarot/ShapeMisc.cpp, src/livarot/livarot-forward.h: move
+ path description structs into their own files, and rename a few
+ member variables.
+
+ * src/livarot/Path.h, src/livarot/PathConversion.cpp,
+ src/livarot/PathOutline.cpp: remove some unused functions.
+
+2004-10-20 Carl Hetherington <inkscape@carlh.net>
+
+ * src/livarot/Path.cpp: fix for 1050379, and probably lots of
+ others.
+
+ * src/livarot/Path.h, src/livarot/PathOutline.cpp: bug fix for a
+ previous commit.
+
+ * src/livarot/Path.cpp: fix a memory leak.
+
+2004-10-19 Carl Hetherington <inkscape@carlh.net>
+
+ * src/livarot/Path.h, src/livarot/PathSimplify.cpp: more
+ simplification cleanups.
+
+ * src/livarot/PathStroke.cpp: coding style cleanups.
+
+ * src/livarot/Path.h, src/livarot/PathSimplify.cpp,
+ src/livarot/PathStroke.cpp: more cleanups; don't modify Path::pts
+ and Path::nbPt.
+
+ * src/livarot/Path.cpp, src/livarot/Path.h,
+ src/livarot/PathConversion.cpp, src/livarot/PathCutting.cpp,
+ src/livarot/PathSimplify.cpp, src/livarot/PathStroke.cpp: use a
+ std::vector for Path::pts.
+
+2004-10-18 Carl Hetherington <inkscape@carlh.net>
+
+ * src/livarot/Path.h, src/livarot/PathSimplify.cpp: coding style
+ and const cleanups.
+
+ * src/livarot/PathSimplify.cpp: some very minor cleanups, and
+ temporary comments for myself.
+
+ * src/livarot/PathConversion.cpp: coding style cleanups.
+
+ * src/livarot/PathConversion.cpp: fix for bug 1048827.
+
+ * src/livarot/Path.h, src/livarot/PathSimplify.cpp: clean up
+ simplification code.
+
+2004-10-17 MenTaLguY <mental@rydia.net>
+
+ * share/templates/Makefile.am, share/templates/layers.svg:
+ added a layer template
+
+ * src/widgets/layer-selector.h, src/widgets/layer-selector.cpp:
+ more layer selector work
+
+ * src/util/filter-list.h, src/util/Makefile_insert:
+ added filter_list()
+
+2004-10-15 Carl Hetherington <inkscape@carlh.net>
+
+ * src/livarot/PathSimplify.cpp: remove #ifdef
+ pseudo_douglas_pecker code that wasn't being used.
+
+2004-10-15 MenTaLguY <mental@rydia.net>
+
+ * src/view.h: removed obsolete status message functions
+
+ * src/attributes.h: remove unused #define
+
+ * src/sp-object.cpp: fix for bug #1048268 (inkscape:collect being written
+ in "plain SVG" files)
+
+ * src/sp-item.h, src/sp-item.cpp: added isLocked() and isHidden()
+ predicates
+
+ * src/sp-item.cpp, src/sp-style.cpp: basic support for visibility CSS
+ property
+
+2004-10-14 Ted Gould <ted@gould.cx>
+
+ * share/extension/*.inkmod -> *.inx
+ src/extension/init.cpp
+
+ Changing the filename extension that is used to identify Inkscape
+ extensions to the one specified in the design document.
+
+2004-10-14 MenTaLguY <mental@rydia.net>
+
+ * src/util/list.h: more 3.4 fixes
+
+2004-10-13 MenTaLguY <mental@rydia.net>
+
+ * src/util/list.h, src/util/forward-pointer-iterator.h:
+
+ fixes to (hopefully) build with g++ 3.4 (and generally be less evil
+ anyway)
+
+2004-10-14 Carl Hetherington <inkscape@carlh.net>
+
+ * src/livarot/int-line.cpp: coding style cleanups.
+
+ * src/livarot/float-line.cpp, src/livarot/float-line.h:
+ refactoring, removal of dead code.
+
+ * src/display/guideline.cpp, src/display/guideline.h: coding style
+ cleanups.
+
+ * src/livarot/Path.cpp, src/livarot/Path.h,
+ src/livarot/PathConversion.cpp, src/livarot/PathCutting.cpp,
+ src/livarot/PathSimplify.cpp, src/livarot/PathStroke.cpp: merge
+ Path::path_lineto and Path::path_lineto_b.
+
+2004-10-14 Carl Hetherington <inkscape@carlh.net>
+
+ * src/Path.cpp, src/Path.h, src/PathConversion.cpp,
+ src/PathCutting.cpp, src/PathOutline.cpp, src/PathSimplify.cpp,
+ src/ShapeMisc.cpp: use a vector of pointers for Path::descr_cmd.
+
+ * src/livarot/Ligne.cpp, src/livarot/Ligne.h,
+ src/livarot/int-line.cpp, src/livarot/int-line.h,
+ src/livarot/float-line.cpp, src/livarot/float-line.h,
+ src/livarot/livarot-forward.h, src/livarot/ShapeRaster.cpp,
+ src/sp-flowregion.cpp, src/display/canvas-bpath.cpp,
+ src/display/nr-arena-glyphs.cpp, src/display/nr-arena-shape.cpp,
+ src/display/sp-ctrlline.cpp, src/libnrtype/FlowDest.cpp,
+ src/libnrtype/RasterFont.cpp: split Ligne into float-line and
+ int-line.
+
+ * src/libnrtype/FlowDest.cpp, src/libnrtype/RasterFont.cpp,
+ src/libnrtype/raster-position.h, src/livarot/float-line.cpp,
+ src/livarot/float-line.h, src/livarot/int-line.cpp: use
+ std::vector for arrays in FloatLigne.
+
+ * src/livarot/float-line.cpp, src/livarot/float-line.h: remove
+ lots of dead code. Make some methods private.
+
+2004-10-12 MenTaLguY <mental@rydia.net>
+
+ * src/Makefile.am: added files
+
+ * src/layer-fns.cpp, src/sp-item.cpp: use iterators, simplifying code
+
+ * src/sp-object.cpp, src/splivarot.cpp: adapt to new version of
+ Inkscape::Algorithms::longest_common_suffix
+
+ * src/sp-object.h, src/sp-repr-iterators.h: add new iterator classes
+
+ * src/algorithms/find-last-if.h: add counterpart of std::find_if
+
+ * src/algorithms/longest-common-suffix.h: rewrite to use iterators
+
+ * src/algorithms/longest-prefix.h, src/algorithms/longest-suffix.h,
+ src/algorithms/shortest-prefix.h, src/algorithms/shortest-suffix.h:
+
+ removed; these algorithms are no longer necessary when using
+ iterators
+
+ * src/traits/list.h: no longer needed
+
+ * src/traits/reference.h: add "Pointer" member type
+
+ * src/util/Makefile_insert: shuffled files
+
+ * src/util/list.h: reworked Inkscape::Util::List to be a "handle" type
+ that can also be used as an STL iterator
+
+ * src/util/forward-pointer-iterator.h: treat a pointer as an iterator,
+ given a base pointer type and a type which defines the iteration
+ strategy
+
+ * src/util/map.h: obsolete
+
+ * src/util/map-list.h: iterator-based implementation
+
+ * src/traits/tree-iterator.h: no longer necessary (superceded by
+ specific applications of Inkscape::Util::ForwardPointerIterator)
+
+ * src/sp-object-tree-iterator.h, src/util/parent-axis.h,
+ src/util/sibling-axis.h: obsolete
+
+ * src/util/map.h, src/util/reverse.h: obsolete
+
+ * src/util/map-list.h, src/util/reverse-list.h:
+ iterator-based implementations
+
+ * src/xml/Makefile_insert: added file
+
+ * src/xml/repr.h: removed old tree iterator stuff
+
+ * src/xml/sp-repr-action.cpp, src/xml/sp-repr-action.h: use new
+ pointer iterator facility
+
+ * src/xml/sp-repr-iterators.h: pointer iterators for SPRepr
+
+2004-10-12 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/display/bezier-utils.h, src/display/bezier-utils.cpp
+ (sp_bezier_fit_cubic_r, sp_bezier_fit_cubic_full): Change the meaning
+ of the last parameter: was max_depth, now lg_max_beziers, with the
+ relationship lg_max_beziers = max_depth + 1. Callers updated.
+
+ * src/xml/repr.cpp (sp_repr_change_order):
+ Add g_return_if_fail for some conditions that would break structural
+ integrity, and add a TODO comment indicating incompleteness.
+ Use sp_repr_prev function.
+
+ * src/xml/repr-get-children.h, src/xml/repr-get-children.cpp
+ (sp_repr_prev_sibling): Rename to sp_repr_prev for consistency
+ with sp_repr_next. Don't consider it an error for child to be
+ NULL or parentless. Callers updated.
+
+ * src/draw-context.cpp (spdc_concat_colors_and_flush,
+ spdc_flush_white): Misc readability cleanups.
+
+ * src/display/curve.cpp (sp_curve_reverse): Fix a bug where the
+ reversed curve wrongly included a trailing moveto command. (Bug
+ introduced in my 2004-09-05 change: one of the callers I didn't
+ know how to cause to run.)
+
+2004-10-12 Ted Gould <ted@gould.cx>
+
+ * share/extensions/ai_input.inkmod, share/extensions/ai_output.inkmod,
+ share/extensions/dia.inkmod, share/extensions/dropshadow.inkmod,
+ share/extensions/eps_input.inkmod, share/extensions/epsi_output.inkmod,
+ share/extensions/gimpgrad.inkmod, share/extensions/ps_input.inkmod,
+ share/extensions/roundhole.inkmod, share/extensions/sk_input.inkmod,
+ share/extensions/svgz_input.inkmod, share/extensions/svgz_output.inkmod,
+ share/extensions/txt2svg.inkmod, share/extensions/wmf_input.inkmod,
+ src/extension/dependency.cpp, src/extension/dependency.h,
+ src/extension/extension.cpp, src/extension/init.cpp:
+
+ Moving all of the dependency stuff from the scripts, up to the root
+ extension level. This means that everyone can have dependencies, and
+ dependency checking (a good thing). This makes use of the new
+ 'Dependency' class that is also in the extension directory.
+
+2004-10-11 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/pencil-context.cpp (sp_pencil_context_root_handler): Split into
+ many functions, fixing some illegal union aliasing along the way (as
+ was done for sp_pen_context_root_handler).
+
+ * src/modifier-fns.h: New file of inline functions based on macros.h
+ MOD__CTRL etc. macros.
+ * src/Makefile_insert: Add the new file.
+
+ * src/pen-context.h: Change size of p array from SP_DRAW_MAX_POINTS to
+ 5 now that we aren't sharing with SPPencilContext.
+
+ * src/draw-context.cpp, src/draw-context.h, src/pen-context.cpp,
+ src/pen-context.h, src/pencil-context.cpp, src/pencil-context.h:
+ Move npoints,p from SPDrawContext to both SPPenContext and
+ SPPencilContext.
+
+ * src/draw-context.cpp, src/draw-context.h: Split off new files
+ pen-context.h, pen-context.cpp, pencil-context.h, pencil-context.cpp,
+ draw-anchor.h, draw-anchor.cpp.
+ * src/Makefile_insert: Add the new files.
+
+2004-10-10 Ted Gould <ted@gould.cx>
+
+ * src/event-context.cpp, src/file.cpp, src/file.h, src/print.cpp,
+ src/print.h, src/selection-chemistry.h, src/sp-image.cpp, src/sp-item.cpp,
+ src/sp-marker.cpp, src/sp-root.cpp, src/sp-shape.cpp, src/sp-symbol.cpp,
+ src/tools-switch.cpp, src/dialogs/export.cpp, src/dialogs/filedialog.cpp,
+ src/extension/Makefile_insert, src/extension/db.cpp,
+ src/extension/dependency.cpp, src/extension/dependency.h,
+ src/extension/effect.cpp, src/extension/effect.h,
+ src/extension/extension-forward.h, src/extension/extension.cpp,
+ src/extension/extension.h, src/extension/input.cpp, src/extension/input.h,
+ src/extension/output.cpp, src/extension/output.h, src/extension/print.cpp,
+ src/extension/print.h, src/extension/system.cpp,
+ src/extension/internal/eps-out.cpp, src/extension/internal/ps.cpp,
+ src/extension/internal/svg.cpp, src/libnrtype/FlowResOut.cpp:
+
+ Splitting out the different types of extensions into their own files so
+ that the overall dependencies can be reduced. Caused a ripple through
+ lots of other files. Hopefully the dependency situation is better now.
+
+2004-10-10 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/draw-context.cpp:
+ Change xp,yp file globals to NR::Point pen_draw_origin_w.
+
+ * src/draw-context.cpp (sp_pen_context_root_handler):
+ Split into many routines. Fix some illegal union member aliasing.
+ (pen_handle_key_press): Minor code cleanups in backspace handling.
+ (pen_handle_motion_notify): Make tolerance var local instead of
+ file-global. (This transformation is applicable to many
+ dragtolerance users.)
+
+ * src/draw-context.cpp (spdc_endpoint_snap_handle):
+ Change argument type from SPDrawContext to SPPenContext, and
+ specialize definition accordingly. Caller updated.
+
+ * src/draw-context.h: Change red_curve_is_valid from char to bool.
+ * src/draw-context.cpp: Change red_curve_is_valid assignments from
+ 0x00/0x01 to false/true (using find & replace).
+
+2004-10-07 Carl Hetherington <inkscape@carlh.net>
+
+ * src/nr-object.cpp, src/nr-object.h: coding style and const
+ fixes.
+
+ * src/nr-rect.cpp: added a doxygen comment. Some coding style
+ fixes.
+
+ * src/sp-paint-server.cpp: coding style fixes.
+
+ * src/nr-arena-item.cpp, src/nr-arena-item.h: move a comment to
+ the .cpp file and make it doxygen-style.
+
+ * src/livarot/Path.cpp: coding style cleanups. Add an assert to
+ Path::Transform().
+
+ * src/livarot/Path.cpp, src/livarot/Path.h: fix some archaic
+ notation.
+
+ * src/livarot/Ligne.cpp: coding style cleanups.
+
+ * src/livarot/PathOutline.cpp, src/livarot/Path.h: fix a rather
+ nasty hack in the outlining code.
+
+ * src/livarot/Path.cpp, src/livarot/Path.h,
+ src/livarot/PathConversion.cpp, src/livarot/PathCutting.cpp,
+ src/livarot/PathOutline.cpp, src/livarot/PathSimplify.cpp,
+ src/livarot/ShapeMisc.cpp, src/splivarot.cpp, src/sp-offset.cpp:
+ use std::vector for Path::descr_cmd.
+
+ * src/livarot/Path.cpp, src/livarot/Path.h,
+ src/livarot/PathConversion.cpp, src/livarot/PathCutting.cpp,
+ src/livarot/PathOutline.cpp, src/livarot/PathSimplify.cpp,
+ src/livarot/ShapeMisc.cpp: getType() and setType() in Path::path_descr.
+
+2004-10-07 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/sp-object-repr.cpp (sp_repr_type_lookup): Distinguish between XML
+ element name and sodipodi:type attribute value: use a separate table
+ for each.
+ * src/sp-object-repr.h, src/sp-object-repr.cpp (sp_object_type_lookup):
+ Don't export this function. (Also rename it to name_to_gtype and
+ change its definition for separate tables.)
+
+2004-10-03 Kees Cook <kees@outflux.net>
+
+ * src/dialogs/rdf.cpp, src/dialogs/repr-util.cpp, src/dialogs/repr.h:
+ Since "dc:title" can appear at multiple XML levels, a way to
+ control max depth in searching was added. (Closes bug #1009290)
+
+2004-09-30 MenTaLguY <mental@rydia.net>
+
+ * src/widgets/document-tree-model.cpp:
+ more bug fixes
+
+ * src/widgets/layer-selector.cpp, src/widgets/layer-selector.h:
+ get the layer selector sort of in more order
+
+2004-09-28 Ted Gould <ted@gould.cx>
+
+ * src/verbs.cpp, src/verbs.h, src/view.cpp:
+
+ Making it so that actions get deleted as views get destroyed.
+
+2004-09-27 Ted Gould <ted@gould.cx>
+
+ * src/desktop.h, src/forward.h, src/interface.cpp, src/interface.h,
+ src/select-toolbar.cpp, src/shortcuts.cpp, src/shortcuts.h,
+ src/toolbox.cpp, src/toolbox.h, src/verbs.cpp, src/verbs.h,
+ src/dialogs/align.cpp, src/dialogs/align.h,
+ src/dialogs/desktop-properties.cpp, src/dialogs/display-settings.cpp,
+ src/dialogs/export.cpp, src/dialogs/find.cpp,
+ src/dialogs/item-properties.cpp, src/dialogs/object-properties.cpp,
+ src/dialogs/text-edit.cpp, src/dialogs/transformation.cpp,
+ src/dialogs/xml-tree.cpp, src/helper/action.cpp, src/helper/action.h:
+
+ Wow, alot of files changed. The ones that changed the most are
+ verb.cpp and verb.h, which are almost entirely different. What happened
+ here is the verbs were made object oriented. So, as the verbs
+ are built into everything, lots of files changed. Now the code
+ for the verbs is much cleaner, and I think a little bit faster.
+ Also, it will be easier to extend the verbs for use in effects.
+
+2004-09-26 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/libnr/nr-matrix.h, src/libnr/nr-matrix.cpp:
+ Get rid of operator NR::translate(), which was allowing
+ *implicit* (and typically lossy) conversion to NR::translate,
+ and which made a bug hard to find.
+
+ * src/sp-gradient-test.cpp: New unit test file. I believe this is the
+ first test that tests an SPObject.
+ * src/Makefile_insert, src/Makefile.am: Invoke the new test.
+
+2004-09-24 MenTaLguY <mental@rydia.net>
+
+ * src/selection-chemistry.cpp:
+
+ "select all" and "clear" now operate on the current layer rather than on
+ the document root
+
+ * src/verbs.cpp, src/shortcuts.cpp, layer-fns.cpp, src/sp-item.cpp:
+
+ keyboard shortcuts and fixes for layer verbs
+
+2004-09-23 MenTaLguY <mental@rydia.net>
+
+ * src/message-stack.h, src/message-stack.cpp:
+
+ return id of flashed messages so they are cancellable
+
+ * src/message-context.h, src/message-context.cpp:
+
+ message context flashes now supercede one another, as regular
+ messages do (they do not supercede regular messages though)
+
+ * src/interface.cpp, src/layer-fns.cpp, src/layer-fns.h, src/verbs.cpp:
+
+ initial stab at layers menu; not everything works the way it should
+ quite yet
+
+ * src/message-context.h, src/message-context.cpp:
+
+ added flash methods to Inkscape::MessageContext
+
+ * src/gc-core.h, src/display/nr-arena-glyphs.cpp,
+src/display/nr-arena-group.cpp,
+ src/display/nr-arena-item.cpp, src/display/nr-arena-item.h,
+ src/display/nr-arena-shape.cpp, src/libnr/nr-object.cpp,
+src/libnr/nr-object.h,
+
+ eliminate more sources of leaks; managed objects shouldn't use refcounts
+ among themselves
+
+ * src/xml/repr.cpp: don't nuke log pointer
+
+2004-09-21 MenTaLguY <mental@rydia.net>
+
+ * src/gc-finalized.h: fix for stupid bug preventing finalizable objects
+ from being collected
+
+ * src/Makefile_insert, src/gc.cpp, src/gc-core.h:
+ move Inkscape::GC::init out-of-line, and funnel GC warnings through
+ glib
+
+2004-09-21 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/sp-marker.h, src/sp-marker.cpp (sp_marker_show_instance):
+ Change to using NR::Matrix instead of NRMatrix. Update caller.
+
+ * src/sp-gradient.cpp (sp_gradient_get_g2d_matrix,
+ sp_gradient_get_gs2d_matrix, sp_gradient_set_gs2d_matrix):
+ New NR::Matrix/NR::Rect versions of existing functions.
+
+ * src/libnr/nr-matrix-translate-ops.h (operator/): New function.
+
+ * src/libnr/nr-matrix-scale-ops.cpp: New file.
+ * src/libnr/nr-matrix-scale-ops.h (operator/(Matrix,scale)):
+ New function.
+
+2004-09-20 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/sp-gradient.h: Change gradientTransform from NRMatrix to
+ NR::Matrix. Users updated.
+
+ * src/Makefile.am (EXTRA_DIST), Makefile_insert
+ dialogs/Makefile_insert extension/implementation/Makefile_insert
+ extension/internal/Makefile_insert helper/Makefile_insert
+ livarot/Makefile_insert (blah_SOURCES):
+ Add some .h files for `make dist'.
+
+2004-09-19 MenTaLguY <mental@rydia.net>
+
+ * src/gc-core.h: don't defer finalizers
+
+ * src/gc-core.h: bump up free space divisor -- collections should
+ happen ~32x more frequently
+
+2004-09-19 Carl Hetherington <inkscape@carlh.net>
+
+ * src/display/canvas-bpath.cpp, src/display/nr-arena-shape.cpp,
+ src/display/sp-ctrlline.cpp, src/libnrtype/RasterFont.cpp,
+ src/livarot/Shape.h, src/livarot/ShapeRaster.cpp: remove some
+ unused parameters from calls to raster code.
+
+ * src/livarot/ShapeRaster.cpp: coding style cleanups.
+
+ * src/livarot/Shape.h, src/livarot/ShapeRaster.cpp: factored out
+ _updateIntersection().
+
+ * src/livarot/AVL.cpp, src/livarot/AVL.h: remove DblLinked. Cleanups.
+
+2004-09-18 MenTaLguY <mental@rydia.net>
+
+ * src/dialogs/filedialog.cpp: unref the preview document we created
+
+2004-09-18 Carl Hetherington <inkscape@carlh.net>
+
+ * src/livarot/AVL.cpp, src/livarot/AVL.h,
+ src/livarot/DblLinked.cpp, src/livarot/DblLinked.h,
+ src/livarot/LivarotDefs.h, src/livarot/ShapeRaster.cpp,
+ src/livarot/ShapeSweep.cpp, src/livarot/sweep-tree.cpp,
+ src/livarot/sweep-tree.h, src/sweep-event.h: replace leftFoo and
+ rightFoo with foo[2] in a few places. Associated cleanups.
+
+ * src/livarot/Shape.h: use Side rather than a bool for
+ TesteIntersection. Add some methods. Remove some unused variables.
+
+ * src/livarot/ShapeSweep.cpp: simplify TesteIntersection with use
+ of Side.
+
+ * src/livarot/sweep-event.h: const fix.
+
+ * src/livarot/sweep-event.cpp: simplifications with use of Side.
+
+ * src/sp-offset.cpp, src/splivarot.cpp, src/livarot/Shape.cpp,
+ src/livarot/ShapeMisc.cpp, src/ShapeSweep.cpp: lastA/firstA in
+ Shape::dg_point ->
+
+ further work on stroking; break out bezier approximation into
+ public functions
+
+2004-09-10 MenTaLguY <mental@rydia.net>
+
+ * src/render/polygon.h, src/render/shape-builder.h,
+ src/render/shape-builder.cpp, src/render/stroke.h,
+ src/render/dash.h:
+
+ beginnings of a simple alternate renderer
+
+2004-09-09 Carl Hetherington <inkscape@carlh.net>
+
+ * src/sp-flowtext.cpp, src/sp-offset.cpp, src/splivarot.cpp,
+ src/display/nr-arena-shape.cpp, src/libnrtype/FlowDest.cpp,
+ src/livarot/PathConversion.cpp, src/livarot/Shape.h: make
+ Shape::nbPt and Shape::nbAr private and provide accessor methods.
+
+ * src/display/nr-arena-shape.cpp, src/livarot/Shape.h: make
+ Shape::flags private.
+
+ * src/splivarot.cpp, src/livarot/PathStroke.cpp,
+ src/livarot/Shape.cpp, src/livarot/Shape.h, src/livarot/ShapeMisc.cpp,
+ src/livarot/ShapeRaster.cpp, src/livarot/ShapeSweep.cpp:
+ Clean up handling of flags in Shape class
+
+ * src/livarot/AlphaLigne.cpp, src/livarot/Path.cpp,
+ src/livarot/PathSimplify.cpp, src/livarot/Shape.cpp,
+ src/livarot/ShapeSweepUtils.cpp: it's ok to free NULL.
+
+ * src/livarot/Shape.h, src/sp-offset.cpp, src/splivarot.cpp,
+ src/display/nr-arena-shape.cpp: Make Shape::pts private and offer
+ a read-only accessor.
+
+ * src/livarot/Shape.cpp, src/livarot/Shape.h,
+ src/livarot/ShapeDraw.cpp, src/livarot/ShapeMisc.cpp,
+ src/livarot/ShapeRaster.cpp, src/livarot/ShapeSweep.cpp, src/
+ livarot/ShapeSweepUtils.cpp, src/livarot/ShapeUtils.h: Rename
+ Shape::pts to Shape::_pts, and use getPoint() wherever possible.
+
+ * src/sp-offset.cpp, src/splivarot.cpp, src/livarot/Shape.cpp,
+ src/livarot/Shape.h, src/livarot/ShapeMisc.cpp,
+ src/livarot/ShapeRaster.cpp, src/livarot/ShapeSweep.cpp: Add
+ dg_point::totalDegree() and make use of it.
+
+
+2004-09-08 MenTaLguY <mental@rydia.net>
+
+ * src/libnr/nr-object.h, src/libnr/nr-object.cpp: fix NRObject
+ initialization
+
+ * configure.in, src/gc-core.h, src/gc-managed.h, src/gc-anchored,
+ src/gc-finalized.h:
+
+ add a --disable-gc ./configure option to omit garbage collection
+ from the build (the normal allocator will be used, although
+ memory will obviously leak since it does not get explicitly freed)
+
+ * src/xml/repr.cpp: SPRepr's copy constructor needs to properly
+ initialize its fields
+
+ * src/xml/repr-util.cpp, src/xml/repr-private.h,
+ src/xml/repr.h, src/xml/repr.cpp:
+
+ new child-count-related routines, and added mutation signals
+ to SPReprDoc
+
+ * src/desktop.cpp: call the "Active Group" widget by its TRUE NAME!
+
+ * src/widgets/Makefile_insert, src/widgets/document-tree-model.cpp,
+ src/widgets/document-tree-model.h, src/widgets/layer-selector.cpp,
+ src/widgets/layer-selector.h:
+
+ very cursory start on new layers UI
+
+2004-09-08 Carl Hetherington <inkscape@carlh.net>
+
+ * src/helper/stock-items.cpp: fix a bad free(). Improve coding
+ style compliance.
+
+ * src/libnrtype/FlowRes.cpp: slightly unpleasant fix for a buffer
+ overrun.
+
+2004-09-07 MenTaLguY <mental@rydia.net>
+
+ * src/livarot/Shape.cpp, src/livarot/Shape.h, src/livarot/ShapeMisc.cpp,
+ src/livarot/ShapeSweep.cpp:
+
+ use std::vector for points array (seems to crash less?)
+
+ * src/livarot/AlphaLigne.cpp, src/livarot/BitLigne.cpp,
+ src/livarot/Ligne.cpp, src/livarot/Path.cpp,
+ src/livarot/PathCutting.cpp, src/livarot/PathSimplify.cpp,
+ src/livarot/Shape.cpp, src/livarot/ShapeMisc.cpp,
+ src/livarot/ShapeSweep.cpp, src/livarot/ShapeSweepUtils.cpp:
+
+ switch to glib's allocator routines, which have the expected
+ semantics
+
+ * src/livarot/evil-malloc.h: removed
+
+2004-09-07 Ted Gould <ted@gould.cx>
+
+ * src/color-rgba.h:
+
+ Some comments and some little code clean up things. Added a couple
+ of constructors to make life a little simpler.
+
+2004-09-06 Ted Gould <ted@gould.cx>
+ * src/extension/plugin/gimgrad.cpp, src/extension/implementation/plugin*
+ share/extension/gimpgrad.inkmod, src/extension/system.cpp,
+ src/extension/extension.h:
+
+ Mega commit. This commit does two things, it adds in the ability to
+ do plugins in Inkscape. This means that there are loadable modules
+ that can be used for just about anything. It also provides a sample
+ implementation of a plugin to load GIMP gradients. This means that
+ GIMP gradients can be imported into Inkscape, giving a larger set of
+ gradients that can be used in Inkscape.
+
+ Currently, nothing here is really complete, but it is functional. The
+ plugins really only work for input plugins, and the GIMP gradient example
+ isn't very robust. They will come shortly.
+
+2004-09-05 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/display/curve.h, src/display/curve.cpp:
+ Change x,y members to NR::Point.
+ Rename posset (spiced&spiked hot milk) to posSet as per CodingStyle.
+
+ * src/display/curve.cpp (sp_curve_reverse): Previously this
+ routine returned only the last subpath, and made it an open
+ path. Now it preserves all aspects of the curve other than
+ reversing it. I believe this change makes no difference to the
+ draw-context and dyna-draw-context callers (though I haven't
+ managed to test all of these callers), whereas for the `reverse
+ path' command, users presumably expect the new behaviour.
+
+ * src/display/curve.cpp (sp_curve_closepath_current):
+ Fix bad assertion.
+
+ * src/libnr/nr-matrix-fns.h, src/libnr/nr-matrix-fns.cpp
+ (get_translation): New function.
+
+ * src/sp-polygon.cpp (polygon_get_value): Use static linkage.
+ (sp_polygon_set): Remove debugging output. Add `todo' comment.
+
+2004-09-03 MenTaLguY <mental@rydia.net>
+
+ * src/attributes.cpp, src/attributes.h, src/sp-namedview.cpp,
+ src/sp-namedview.h:
+
+ remember previously selected layer on load
+
+2004-09-02 MenTaLguY <mental@rydia.net>
+
+ * src/attributes.cpp, src/attributes.h, src/sp-item-group.cpp:
+
+ reintroduced the inkscape:groupmode attribute
+
+ * src/gc-core.h, src/gc-finalized.h, src/gc-anchored.h,
+ src/libnr/nr-object.cpp:
+
+ remove USE_LIBGC macro again
+
+2004-08-30 MenTaLguY <mental@rydia.net>
+
+ * src/sp-object.cpp:
+
+ ref the object while SPObject::deleteObject runs, so it doesn't
+ get destroyed halfway through [ fix for bug #1012874 ]
+
+2004-08-29 MenTaLguY <mental@rydia.net>
+
+ * src/gc-core.h:
+
+ turn off scanning of dynamic library data segments; we don't need
+ it, and it seems to cause problems on FC2
+
+2004-08-27 MenTaLguY <mental@rydia.net>
+
+ * src/traits/function.h: add typedefs for all argument positions,
+ specifying 'void' for all arguments after the last
+
+ * src/livarot/evil-malloc.h, src/livarot/BitLigne.cpp,
+ src/livarot/PathCutting.cpp, src/livarot/PathSimplify.cpp,
+ src/livarot/Shape.cpp, src/livarot/ShapeSweepUtils.cpp:
+
+ work around livarot bugs so I can use ElectricFence
+
+ * src/gc-core.h, src/gc-finalized.h, src/gc-anchored.h,
+ src/libnr/nr-object.cpp:
+
+ make the garbage collector easy to disable by undefining
+ USE_LIBGC in src/gc-core.h
+
+2004-08-26 MenTaLguY <mental@rydia.net>
+
+ * src/document-private.h, src/document.h, src/document.cpp:
+
+ add notification signal when resources are added or removed
+
+2004-08-25 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/xml/repr-css.cpp (sp_repr_css_print):
+ Fix for shared string change.
+
+ * src/sp-text.cpp (sp_text_description):
+ Fix for when font Name() call fails.
+
+ * src/sp-text.cpp: CodingStyle changes, including moving some
+ declarations to first use.
+ Remove unused __SP_TEXT_C__ define.
+
+2004-08-25 Carl Hetherington <inkscape@carlh.net>
+
+ * src/sp-cursor.cpp, src/sp-cursor.h, src/sp-guide.cpp:
+ coding style cleanups.
+
+2004-08-24 MenTaLguY <mental@rydia.net>
+
+ * src/gc-anchor.h: fix to always use the GC base address, since
+ that will not always be the same as 'this', when I::GC::Anchored
+ is used via multiple inheritance.
+
+2004-08-24 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/libnrtype/TextWrapper.h, src/libnrtype/TextWrapper.cpp (AppendUTF8):
+ Use strlen instead of for-loop.
+ Change printf to g_return_if_fail (and document that the argument
+ must be valid UTF-8).
+ Mark the text pointer as not being written through (const).
+
+2004-08-23 MenTaLguY <mental@rydia.net>
+
+ * src/xml/repr.cpp, src/xml/sp-repr-action.h:
+
+ removed stupid default 'next' constructor arguments and force them
+ to be specified explicitly (and fix the omission of one, which
+ fixes bug #1014541)
+
+2004-08-22 MenTaLguY <mental@rydia.net>
+
+ * src/Makefile_insert, src/gc-alloc.h:
+
+ introduced a GC-aware STL allocator
+
+ * src/document-private.h, src/document.h, src/document.cpp:
+
+ switch to using STL map for "id changed" signals
+
+2004-08-21 MenTaLguY <mental@rydia.net>
+
+ * src/Makefile_insert, src/util/Makefile_insert: get libinkutil
+ deps straightened out
+
+ * src/document-private.h, src/document-undo.cpp, src/document.cpp:
+
+ adapt for new APIs, header cleanups/refactorings
+
+ * src/gc-core.h, src/gc-anchored.h, src/gc-finalized.h, src/gc-managed.h:
+
+ rewrote interface to Boehm GC for increased flexibility; there are now
+ three main classes:
+
+ - Inkscape::GC::Managed: objects managed by the GC; replaces
+ Inkscape::GC::Object
+
+ - Inkscape::GC::Finalized: objects for which the GC will call
+ destructors automatically; replaces
+ Inkscape::GC::FinalizedObject
+
+ - Inkscape::GC::Anchored: managed objects which can be 'anchored'
+ to prevent collection while non-gc-aware
+ objects are holding references; replaces
+ Inkscape::Refcounted
+
+ Note that they no longer inherit from each other(!), so you will
+ need to mix-and-match via multiple inheritance. The latter two
+ don't do anything useful without the first, however.
+
+ * src/gc-object.h, src/refcounted.h: removed
+
+ * src/message-context.cpp, src/message-stack.h, src/selection.h,
+ src/view.cpp, src/libnr/nr-object.h, src/util/list.h,
+ src/xml/sp-repr-attr.h, src/xml/sp-repr-listener.h, src/desktop.cpp:
+
+ adopt new GC API and header refatorings
+
+ * src/Makefile.am, src/util/Makefile_insert:
+
+ list util/* files in util's Makefile_insert now.
+
+ * src/util/reverse.h: revive anx fix Inkscape::Util::reverse
+
+ * src/util/share-c-string.cpp, src/util/share-c-string.h: removed
+
+ * src/util/shared-c-string.cpp, src/util/shared-c-string.h:
+
+ employ the type system to make shared strings a little safer to use;
+ you can still shoot yourself in the foot, but at least now you need
+ to aim and pull the trigger first
+
+ * src/xml/Makefile_insert, src/xml/repr-action-test.cpp,
+ src/xml/sp-repr-action-fns.h, src/xml/sp-repr-action.h:
+
+ reorganize transaction logging files
+
+ * src/xml/repr-action-test.cpp: updated headers
+
+ * src/xml/repr-action.cpp, src/xml/repr-action.h: removed
+
+ * src/xml/repr-private.h, src/xml/repr.cpp, src/xml/repr.h:
+
+ update for new GC API and shared strings
+
+ * src/xml/sp-repr-action-fns.h, src/xml/sp-repr-action.cpp,
+ src/xml/sp-repr-action.h:
+
+ header refactoring and new GC API
+
+ * src/xml/sp-repr-attr.h, src/xml/sp-repr-listener.h:
+
+ new GC API
+
+2004-08-20 Carl Hetherington <inkscape@carlh.net>
+
+ * src/zoom-context.cpp, src/view.cpp, src/version.cpp,
+ src/sp-defs.cpp: coding style cleanups.
+
+ * src/sp-polygon.cpp: coding style and a few other small cleanups.
+
+ * src/sp-anchor.cpp: coding style cleanups. Remove unnecessary
+ static variable.
+
+2004-08-18 Bryce Harrington <bryce@bryceharrington.org>
+
+ * autogen.sh: Fixing the 'missing ltmain.sh' bug
+
+2004-08-17 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/sp-star.cpp: Use cast to guint32 instead of using modulo 2**32.
+ Fix a uint compilation bug on Windows reported by mrchapp.
+ Mark a few functions as static.
+
+2004-08-16 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/sp-conn-end.cpp (change_endpts):
+ Use new sp_curve_stretch_endpoints function: i.e. preserve the
+ shape of the connector path.
+
+ * src/display/curve.h, src/display/curve.cpp
+ (sp_curve_stretch_endpoints): New function.
+
+ * src/sp-use-reference.cpp: CodingStyle changes.
+
+ * src/sp-item.h, src/sp-item.cpp (sp_item_write_transform):
+ Indicate that adv won't get written to.
+
+ * src/sp-rect.cpp (sp_rect_set_transform): Call sp_rect_set_shape,
+ so that bbox is up-to- src/livarot/PathConversion.cpp,
+src/livarot/Shape.cpp,
+ src/livarot/Shape.h, src/livarot/ShapeDraw.cpp, src/livarot/ShapeMisc.cpp,
+ src/livarot/ShapeRaster.cpp, src/livarot/ShapeSweep.cpp,
+ src/livarot/ShapeSweepUtils.cpp:
+ Revert these files to their state prior to mental's "2004-08-08"
+ entry (the change made in 2004-08-09 02:23 UTC).
+
+2004-08-11 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/algorithms/longest-common-suffix.h: Fix bug I introduced three
+ days ago.
+
+ * src/attributes.h, src/attributes.cpp: New attributes
+ SP_ATTR_CONNECTION_START, SP_ATTR_CONNECTION_END.
+ * src/sp-conn-end.h, src/sp-conn-end.cpp,
+ src/sp-conn-end-pair.h, src/sp-conn-end-pair.cpp:
+ New files.
+ * src/Makefile_insert (libinkpre_a_SOURCES): Add the new files.
+
+ * src/sp-path.cpp, src/sp-path.h: Call the new connector stuff.
+
+ * src/display/curve.h, src/display/curve.cpp
+ (sp_curve_first_point, sp_curve_last_point): New functions.
+
+ (sp_curve_transform): Re-implement with NR::Matrix/NR::Point.
+ The old code appears to be buggy for sheer/rotate matrices
+ due to calculating each y coord using the new corresponding x coord
+ instead of the previous value.
+
+ Also add NR::translate version.
+
+ Get rid of the return value. Callers updated.
+
+ * src/sp-item.h, src/sp-item.cpp: (i2anc_affine): New function
+ (essentially a rename of existing private partial_xform function, but
+ differing behaviour on encountering non-SPItem in the hierarchy).
+
+ (i2i_affine): New function (essentially a rename of existing
+ SPItem::getRelativeAffine). Implement SPItem::getRelativeAffine in
+ terms of the new function.
+
+ (sp_item_dt2i_affine): NR::Matrix version.
+
+ * src/libnr/nr-path.h (c, setC): new methods.
+
+2004-08-09 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/desktop-affine.cpp (sp_desktop_w2doc_affine,
+ sp_desktop_doc2w_affine, sp_desktop_doc2d_xy_point),
+ src/knotholder.cpp (knot_moved_handler), src/sp-item.cpp
+ (SPItem::getRelativeTransform), src/sp-rect.cpp
+ (sp_rect_set_transform), src/display/sp-canvas-util.cpp
+ (sp_canvas_item_i2i_affine, sp_canvas_item_set_i2w_affine):
+ Cleanup: Use the new division operators instead of multiplication by
+ inverse. (Currently the division operators are implemented as
+ multiplication by inverse.)
+
+ * src/splivarot.cpp, src/livarot/Shape.cpp, src/livarot/ShapeMisc.cpp,
+ src/livarot/ShapeRaster.cpp, src/livarot/ShapeSweep.cpp:
+ Hurriedly fix some problems caused by overly-hurried changes.
+ Address some signed/unsigned warnings.
+ Add some assertions.
+ (Haven't checked the performance cost of the assertions.)
+
+ * src/livarot/Shape.h: Make constructors explicit.
+
+2004-08-08 MenTaLguY <mental@rydia.net>
+
+ * src/sp-flowregion.cpp, src/sp-flowtext.cpp, src/sp-offset.cpp,
+ src/splivarot.cpp, src/display/nr-arena-shape.cpp,
+ src/livarot/PathConversion.cpp, src/livarot/Shape.cpp,
+ src/livarot/Shape.h, src/livarot/ShapeDraw.cpp,
+ src/livarot/ShapeMisc.cpp, src/livarot/ShapeRaster.cpp,
+ src/livarot/ShapeSweep.cpp, src/livarot/ShapeSweepUtils.cpp:
+
+ replace ad-hoc realloced arrays with std::vector and deal with
+ uninitialized data problems that valgrind complained about
+
+ * libgc.supp: valgrind suppression profile for libgc, which necessarily
+ reads and runs comparisons on a lot of uninitalized data; the present
+ form of this file is probably too broad however
+
+2004-08-08 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/libnr/nr-matrix-div.h, src/libnr/nr-matrix-div.cpp:
+ operator/(NR::Point, NR::Matrix), operator/(NR::Matrix, NR::Matrix):
+ new functions, new files.
+
+ * src/algorithms/longest-common-suffix.h:
+ Handle in O(1) time the common case of equal tails.
+ Documentation.
+
+2004-08-08 Ted Gould <ted@gould.cx>
+
+ * src/svg-profile.h, src/Makefile_insert:
+
+ Adding the first support in for trying to determine which profiles are
+ used with certain functionality, and if that is used by the current
+ document. Really, right now, there is no code changes to anything that
+ compiles. But this is the header file that contains the class that
+ I'm plannig to use in the future.
+
+2004-08-07 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/libnrtype/RasterFont.h, src/libnrtype/RasterFont.cpp:
+ Get rid of argumentless constructor (which was leaving
+ style.transform as random bits), replace with constructor taking
+ style argument. Caller updated.
+ Disable default copy constructor and operator=.
+
+2004-08-06 MenTaLguY <mental@rydia.net>
+
+ * configure.in, src/gc-core.h, src/gc-object.h,
+ src/display/nr-arena-glyphs.cpp, src/display/nr-arena-group.cpp,
+ src/display/nr-arena-image.cpp, src/display/nr-arena-item.cpp,
+ src/display/nr-arena-shape.cpp, src/display/nr-arena.cpp,
+ src/helper/action.cpp, src/libnr/nr-object.cpp, src/libnr/nr-object.h:
+
+ make NRObject GC-aware
+
+2004-08-06 David Turner <novalis@gnu.org>
+ * src/sp-shape.cpp (sp_shape_marker_get_transform): Make marker handling
+match
+ SVG spec better.
+
+2004-08-06 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/libnr/nr-matrix.h, src/libnr/nr-matrix.cpp:
+ NR::Matrix *= NR::scale: new.
+
+ * src/sp-object.cpp, src/sp-object.h, src/sp-object-tree-iterator.h:
+ Move TreeIterator<SPObject *> specialization to snew file
+ sp-object-tree-iterator.h.
+ Mark several pointers as not being written through.
+ Correspondingly change TreeIterator specialization to
+ <SPObject const *> instead of <SPObject *>.
+
+ * display/nr-arena-item.cpp, display/nr-arena-item.h:
+ Add NR::Matrix version of nr_arena_item_set_transform.
+
+ * src/sp-item.h, src/sp-item.cpp (getRelativeTransform, partial_xform):
+ Mark pointers as not written through.
+
+ * src/arc-context.cpp, src/draw-context.cpp, src/dyna-draw-context.cpp,
+ src/path-chemistry.cpp, src/rect-context.cpp,
+ src/selection-chemistry.cpp, src/seltrans.cpp, src/sp-flowdiv.cpp,
+ src/sp-flowregion.cpp, src/sp-flowtext.cpp, src/sp-item-group.cpp,
+ src/sp-item-notify-moveto.cpp, src/sp-item-transform.cpp,
+ src/sp-item.cpp, src/sp-item.h, src/sp-offset.cpp, src/sp-rect.cpp,
+ src/sp-shape.cpp, src/sp-use.cpp, src/spiral-context.cpp,
+ src/splivarot.cpp, src/star-context.cpp, src/text-context.cpp,
+ src/dialogs/item-properties.cpp:
+ Change SPItem->transform from NRMatrix to NR::Matrix.
+
+ * src/libnr/nr-matrix-ops.h (operator*(NR::Matrix, NRMatrix)): new.
+
+ * src/libnr/nr-matrix.h: NR::Matrix *= NR::translate: new operator.
+
+ * src/nodepath.cpp: Mark NodeSort operator< as static.
+ Indentation as per CodingStyle.
+
+ * src/libnr/nr-scale.h (NR::scale(double)): new constructor.
+
+ * src/svg/svg-affine.cpp (sp_svg_transform_write), src/svg/svg.h:
+ Add NR::Matrix version.
+
+2004-08-05 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/display/bezier-utils.cpp: Misc. minor changes.
+
+2004-08-04 MenTaLguY <mental@rydia.net>
+
+ * configure.in, src/gc-object.h, src/refcounted.h:
+
+ start using libgc in earnest; Inkscape::Refcounted is now GC-aware
+
+2004-08-04 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/nodepath.cpp: Cleanups: Mark some things as static. Switch from
+ pointer to reference in some places. Make const placement conform to
+ CodingStyle.
+
+ * src/inkview.cpp (sp_svgview_main_key_press): Accept some common keys
+ like PgUp, q.
+
+ * src/draw-context.cpp (fit_and_split):
+ Slight simplification: don't handle impossible condition npoints < 2.
+ * src/proofs: Update accordingly. (Also add some bezier-utils proofs.)
+
+2004-08-04 David Turner <novalis@gnu.org>
+
+ * sp-path.cpp: 'd' is a required attribute for paths. Ensure that
+ all paths have it.
+
+2004-08-03 MenTaLguY <mental@rydia.net>
+
+ * src/dialogs/rdf.cpp, src/xml/repr-util.cpp, src/xml/repr.h:
+ removed sp_repr_recursive_drop() which is unneeded and
+ creates unnecessary thrash in the undo logs
+
+ * src/livarot/Shape.h, src/livarot/Shape.cpp,
+ src/livarot/ShapeSweep.cpp, src/livarot/ShapeMisc.cpp:
+
+ experiment to replace ad-hoc realloc() arrays with std::vector
+
+2004-08-02 David Turner <novalis@gnu.org>
+
+ * file.cpp, file.h, interface.cpp, toolbox.cpp, verbs.cpp, verbs.h:
+
+ Added vacuum command to remove unused defs.
+
+2004-08-02 MenTaLguY <mental@rydia.net>
+
+ * configure.in: sigc++ 2.0.2 (and before?) has a bug that
+ causes us to crash. require >= 2.0.3
+
+ * src/Makefile.am, src/Makefile_insert, src/gc-core.h,
+ src/gc-object.h, src/algorithms/longest-common-suffix.h,
+ src/traits/list.h, src/traits/reference.h, src/util/flip.h,
+ src/util/fold.h, src/util/list-iterator.h, src/util/list.h,
+ src/util/map.h, src/util/parent-axis.h, src/util/reverse.h,
+ src/util/sibling-axis.h, src/util/tuple.h, src/util/zip.h:
+
+ more "functional" work
+
+2004-08-02 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/display/curve.cpp, src/display/curve.h:
+ Greater conformance with CodingStyle.
+
+2004-07-31 David Turner <novalis@gnu.org>
+
+ * dialogs/xml-tree.cpp: Improved focus, added keystroke for attr commit.
+
+2004-07-31 Ted Gould <ted@gould.cx>
+
+ * src/extension/extension.cpp,
+ src/extension/implementation/implementation.cpp,
+ src/extension/implementation/implementation.h,
+ src/extension/implementation/script.cpp,
+ src/extension/implementation/script.h, src/extension/internal/eps-out.cpp,
+ src/extension/internal/eps-out.h:
+
+ Okay, changed the prefs_ prototypes to include which extension they are
+ working with. This should clean up some warnings before they become
+ problems later.
+
+2004-07-31 Ted Gould <ted@gould.cx>
+
+ * src/print.cpp, src/extension/extension.cpp, src/extension/extension.h,
+ src/extension/internal/eps-out.cpp, src/extension/internal/ps.cpp:
+
+ Changed the get and set param prototypes so that they aren't overloaded
+ anymore - this was flaky. Also added a document to the prototype so
+ that document specific parameters can be supported in the future.
+
+2004-07-28 David Turner <novalis@gnu.org>
+
+ * sp-gradient.cpp, widgets/gradient-vector.cpp: fixed gradient handling to
+ properly render gradients with sharp color boundaries
+
+2004-07-29 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/inkview.cpp: Make the window title be the name of the
+ instead of the current file instead of the first file.
+
+ * src/round-test.cpp: New unit-test file.
+
+ * src/desktop.h, src/sp-desktop-widget.h:
+ Move SPDesktopWidget stuff from desktop.h to new file
+ sp-desktop-widget.h.
+
+ * debian/*: Copy lots of changes from wolfi's official Debian package
+ of inkscape.
+ Also use separate builddir, which simplifies the `clean' target.
+
+2004-07-24 MenTaLguY <mental@rydia.net>
+
+ * configure.in, src/Makefile.am, src/main.cpp, src/gc-core.h:
+ added libgc dependency
+
+ * src/Makefile.am, traits/function.h:
+ added trait class for functions and C++ "functors"
+
+ * src/Makefile.am, util/flip.h:
+ added flip() which, given a function with two arguments,
+ returns an identical function with its arguments reversed
+
+2004-07-23 MenTaLguY <mental@rydia.net>
+
+ * src/Makefile.am, src/traits/reference.h, src/util/tuple.h:
+ added generic Tuple type
+
+2004-07-23 Ted Gould <ted@gould.cx>
+
+ * src/attributes.cpp, src/attributes.h, src/sp-namedview.cpp,
+ src/sp-namedview.h, src/dialogs/desktop-properties.cpp,
+ src/display/canvas-grid.cpp, src/display/canvas-grid.h:
+
+ Adding in the ability to have 'emphasis grid lines' where some lines are a
+ different color than others. In the default case every fifth grid line
+ gets to be 0x11 darker alpha. Nothing that will get in your way, but
+ enough that you can find the spacing. All parameters are changeable in
+ document preferences.
+
+2004-07-23 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * autogen.sh: Move unversioned automake to last resort.
+
+2004-07-20 Kees Cook <kees@outflux.net>
+
+ * src/dialogs/desktop-preferences.cpp: corrected my usage of static
+ l18n strings.
+ * src/dialogs/stroke-style.cpp: fixed missing l18n. (bug #994837)
+ * src/dialogs/sp-attribute-widget.cpp: went hunting for other static
+ l18n strings. Fixed some here too.
+ * autogen.sh: cleanups and more debugging.
+ * share/extensions/sk2svg.sh: tempfile cleanups from pjrm (patch #990009)
+
+2004-07-20 Nathan Hurst <njh@mail.csse.monash.edu.au>
+
+ * debian/changelog, configure.in: Moved to 0.40cvs and updated
+ debian stuff.
+
+2004-07-18 MenTaLguY <mental@rydia.net>
+
+ * configure.in, src/Makefile.am, src/algorithms/Makefile_insert,
+ src/algorithms/makefile.in, src/traits/Makefile_insert,
+ src/traits/makefile.in, src/util/Makefile_insert, src/util/makefile.in:
+
+ added src/algorithms, src/traits, and src/util subdirs
+
+ * src/algorithms/longest-common-suffix.h:
+
+ added generic "longest common suffix" algorithm
+
+ * src/traits/list.h: added traits class for lists
+
+ * src/traits/tree-iterator.h: added traits class for n-ary tree iterators
+
+ * src/util/list-iterator.h: STL iterator for lists
+
+ * src/util/parent-axis.h: parent "axis" of tree iterator as list
+
+ * src/util/sibling-axis.h: sibling "axis" of tree iterator as list
+
+ * src/xml/repr.h: specialize Traits::TreeIterator for SPRepr *
+
+ * src/sp-object.h: specialize Traits::TreeIterator for SPObject *
+
+ * src/sp-object.cpp: use generic "longest common suffix" to find
+ nearest common ancestor
+
+ * src/splivarot.cpp: use genric "longest common suffix" to find
+ nearest common ancestor here too
+
+2004-07-18 Kees Cook <kees@outflux.net>
+
+ * Makefile.am, configure.in, autogen.sh, toolversions.sh:
+ cleaning up some automake misbehavior from the gtkmm patch.
+ automake 1.4isms snuck back in.
+ * src/desktop-events.cpp: unlocalized strings updated.
+
+2004-07-18 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/sp-path.cpp (sp_path_write): Handle shape->curve==NULL.
+
+2004-07-18 MenTaLguY <mental@rydia.net>
+
+ * Makefile.am, configure.in, m4/Makefile.am, m4/codeset.m4, m4/gettext.m4,
+ m4/glibc21.m4, m4/iconv.m4, m4/isc-posix.m4, m4/lcmessage.m4,
+ m4/progtest.m4, src/arc-context.cpp, src/arc-context.h, src/desktop.cpp,
+ src/desktop.h, src/document.cpp, src/document.h, src/draw-context.cpp,
+ src/draw-context.h, src/event-context.h, src/main.cpp,
+ src/message-stack.h, src/node-context.cpp, src/node-context.h,
+ src/nodepath.cpp, src/nodepath.h, src/object-hierarchy.h,
+ src/rect-context.cpp, src/rect-context.h, src/selcue.cpp, src/selcue.h,
+ src/selection-describer.cpp, src/selection-describer.h,
+ src/selection.h, src/seltrans.cpp, src/sp-gradient.cpp,
+ src/sp-item.cpp, src/sp-item.h, src/sp-object.cpp, src/sp-object.h,
+ src/sp-offset.cpp, src/sp-offset.h, src/sp-pattern.cpp, src/sp-use.cpp,
+ src/sp-use.h, src/spiral-context.cpp, src/spiral-context.h,
+ src/star-context.cpp, src/star-context.h, src/text-context.cpp,
+ src/text-context.h, src/toolbox.cpp, src/uri-references.cpp,
+ src/uri-references.h, src/view.cpp, src/view.h,
+ src/dialogs/xml-tree.cpp:
+
+ merged Aubanel MONNIER's gtkmm upgrade patch
+
+2004-07-17 Carl Hetherington <inkscape@carlh.net>
+
+ * src/sp-use.cpp: fix a compiler warning (closes #992960)
+
+ * src/sp-offset.cpp: fix a compiler warning (closes #992960)
+
+ * src/sp-text.cpp: fix a compiler warning (closes #992959)
+
+2004-07-16 Kees Cook <kees@outflux.net>
+
+ * src/verbs.h, src/verbs.cpp: added "sp_verbs_find" function for bryce.
+
+2004-07-15 Ted Gould <ted@gould.cx>
+
+ * 0.39 Release
+
+2004-07-14 MenTaLguY <mental@rydia.net>
+
+ * src/sp-object.cpp: disable recursive update warning for release
+
+ * src/select-context.cpp: work around probable cut-and-paste bug
+ between sp_select_context_item_handler and
+ sp_select_context_root_handler by checking for drag_escaped
+
+2004-07-13 MenTaLguY <mental@rydia.net>
+
+ * src/make.exclude: omit extension/script/js/js.c from build
+
+2004-07-13 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/dialogs/rdf.cpp: Don't add dc:description entry to SVG files.
+
+ * src/utest/utest.h: Add include guard.
+
+2004-07-12 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/decimal-round.h (decimal_round): New file, new function.
+ * src/round.h (decimal_round): New file, new function.
+ * src/Makefile_insert: Add to libinkpost_a_SOURCES.
+
+2004-07-11 MenTaLguY <mental@rydia.net>
+
+ * src/document.h, src/document-undo.cpp:
+ added sp_document_get_undo_sensitive() for capturing and restoring
+ undo sensitivity
+
+ * src/sp-object.cpp: don't log id changes made to resolve
+ duplicate ids (to avoid undo badness) (fix for bug #989023)
+
+2004-07-11 Kees Cook <kees@outflux.net>
+
+ * src/preferences-skeleton.h, src/extension/init.cpp: with simarilius,
+ tracked down the cause of bug #988445. Extension code now has a
+ small section that validates preferences for valid extension names.
+ * src/dialogs/filedialog-win32.cpp: corrected an assert test, and
+ changed dialog to take the passed window title.
+ * autogen.sh, config.h.mingw, configure.in, src/Makefile_insert,
+ src/help.cpp, src/inkscape-stock.cpp, src/inkscape.cpp, src/main.cpp,
+ src/make.dep, src/make.files, src/path-prefix.h, src/prefix.cpp,
+ src/prefix.h, src/dialogs/stroke-style.cpp,
+ src/extension/Makefile_insert, src/extension/init.cpp,
+ src/extension/implementation/Makefile_insert,
+ src/extension/implementation/script.cpp,
+ src/extension/internal/Makefile_insert, src/helper/stock-items.cpp,
+ src/widgets/icon.cpp:
+ Cleaned up all the path #define's and usage. In the process found at
+ least 3 separate bugs associated with file locations. This should
+ hopefully work for Win32 as well. Bottom line in this change: don't use
+ INKSCAPE_DATADIR anywhere except in "path-prefix.h". This includes
+ an update to the autopackage code as well with fixes so that
+ a change to "--enable-binreloc" will get recompiled correctly. These
+ changes should address bug #978391.
+
+2004-07-11 Carl Hetherington <inkscape@carlh.net>
+
+ * src/attributes.cpp, src/attributes.h: remove confusing
+ snaptogrid and snaptoguides options.
+
+ * src/desktop-events.cpp: use inkscape:guide-bbox instead of
+ snaptoguides to turn guides on.
+
+ * src/desktop.cpp: no need to worry about Snapper::getEnabled().
+
+ * src/snap.cpp, src/snap.h: Remove explicit enabled flag from
+ Snapper, as itconfuses people. Added
+ namedview_dim_snap_all_types(). Return useful stuff from
+ vector_snap_list.
+
+ * src/rect-context.cpp: Use hack to make snapping kind of work
+ even with snap-to-bbox enabled.
+
+ * src/sp-namedview.cpp, src/dialogs/desktop-properties.cpp: remove
+ snaptogrid and snaptoguides options as they confuse people. Use
+ better names for the scale origin radio buttons, as suggested by
+ Bulia.
+
+ * src/seltrans.cpp: Fix some cases where snap wasn't correctly applied.
+
+2004-07-10 MenTaLguY <mental@rydia.net>
+
+ * src/sp-image.cpp: prospective fix for bug #979858
+
+ * src/select-context.cpp, src/select-context.h,
+ src/seltrans.cpp, src/seltrans.h:
+
+ gave SPSelTrans its own Inkscape::MessageContext, fixing
+ bug #977971
+
+2004-07-10 Kees Cook <kees@outflux.net>
+
+ * src/knot.cpp: solved bug #988513: knot could stay grabbed in
+ situations where the tool went away but never got "button_release"
+ event. This patch uses the "enter" and "leave" notifiers to disable
+ the grab before a "motion" can come and snag the knot.
+
+2004-07-09 Kees Cook <kees@outflux.net>
+
+ * src/widgets/paint-selector.cpp: solved bug #984902: the pattern
+ menu was being destroyed since it was remaining part of the frame
+ that was being destroyed whenever the selector changed. It gets
+ ref-counted, disconnected, and destroyed correctly now.
+ * mkinstalldirs: automake 1.8 stopped including "mkinstalldirs", but
+ intltool still uses it. We'll need to keep this until intltool
+ fixes the bug. intltool 0.31 and earlier are all buggy.
+
+2004-07-09 Carl Hetherington <inkscape@carlh.net>
+
+ * src/draw-context.cpp: remove some debugging g_prints.
+
+2004-07-08 MenTaLguY <mental@rydia.net>
+
+ * src/interface.cpp: fixed crash on desktop context menu
+
+ * src/desktop.h, src/desktop.cpp:
+
+ added SPDesktop::isWithinViewport() to conveniently determine
+ if an item is within view
+
+ also made isLayer() const
+
+ * src/sp-object.h: added SPObject::hasChildren() predicate
+
+ * src/sp-object.cpp: revert to old behavior of breaking parent
+ link before emitting "release" signal
+
+ * src/selection-chemistry.cpp: rewrote sp_selection_item_next()
+ and sp_selection_item_prev() to work with layers
+
+2004-07-08 Carl Hetherington <inkscape@carlh.net>
+
+ * src/libnrtype/FontFactory.cpp: disable printing of debug
+ messages.
+
+ * src/sp-item-group.cpp: give it a snappoints method to fix
+ 937318.
+
+ * src/draw-context.cpp: fix a couple of places where Shift isn't
+ checked before snapping.
+
+
+2004-07-07 MenTaLguY <mental@rydia.net>
+
+ * src/desktop.cpp, src/interface.cpp: remove the word "layer"
+ for now, and disable the layer selector when the user is not
+ inside a group
+
+2004-07-07 Kees Cook <kees@outflux.net>
+
+ * src/dialogs/desktop-properties.cpp: added a few g_asserts, and
+ added a missing sp_signal_disconnect_by_data for the color picker,
+ which closes bug #975864. Stopped accidentally calling
+ sp_document_done from the update handler (fixes bug #986411).
+ * src/dialogs/dialog-events.cpp, src/helper/action.cpp:
+ whitespace changes, typo fixes, added a few g_asserts.
+ * src/selection-chemistry.cpp, src/desktop.cpp: when deleting items
+ from the desktop, the selection context may need to be cleared since
+ it may have pointers to the deleted items. To do this, I just
+ reselect the current tool (fixes bug #983243).
+ * src/dialogs/xml-tree.cpp, src/dialogs/desktop-properties.cpp:
+ corrected tooltips memory handling.
+
+2004-07-06 MenTaLguY <mental@rydia.net>
+
+ * src/desktop.cpp: minor tweaks to make the existing layers
+ code easier to work with in its current state (particularly,
+ to sidestep some existing bugs that otherwise require more
+ UI work to fix)
+
+2004-07-06 Carl Hetherington <inkscape@carlh.net>
+
+ * src/seltrans.cpp, src/sp-namedview.cpp,
+ src/display/bezier-utils.cpp, src/libnr/nr-types.cpp:
+ isnan appears to need a std:: namespace qualifier.
+
+2004-07-06 Ted Gould <ted@gould.cx>
+
+ * src/libnr/nr-point.h, src/libnr/nr-rect.h:
+
+ Adding in a function to round the points and rectangles. Using this
+ for less precise comparisons. Also, added in a function to print
+ each of these.
+
+ * src/dialogs/export.cpp:
+
+ Major revisions to do all kinds of fun stuff. The major one being
+ that filenames and dpi's can now be stored on selections. This
+ makes it so that people working on a section of a document can export
+ it consistently.
+
+2004-07-06 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/sp-typeset-utils.h: Greatly reduce #includes.
+
+ * src/color-rgba.h, src/Makefile_insert, src/desktop.h:
+ Move ColorRGBA from desktop.h to new file color-rgba.h.
+ * src/desktop.cpp, src/dropper-context.cpp: #include it.
+
+2004-07-05 Kees Cook <kees@outflux.net>
+
+ * src/dialogs/desktop-properties.cpp, src/dialogs/rdf.cpp,
+ src/dialogs/rdf.h: added multiline data entry items, reduced
+ overall width of the dialog, and created the license entry areas.
+ Auto-detection of license on load works now.
+
+2004-07-05 MenTaLguY <mental@rydia.net>
+
+ * src/desktop.cpp: comitted further work which gives us a
+ partially-functional layers menu (not actually hooked up to
+ change layers yet), and it is not always updated when it needs
+ to be (yet). It does also fix the crash though.
+
+ * src/desktop.cpp, src/desktop.h, src/document.cpp,
+ src/sp-item-group.cpp, src/sp-item-group.h:
+
+ additional layers work; backed off on promoting siblings to
+ layers automatically and reintroduced "global" layer mode
+
+2004-07-05 Carl Hetherington <inkscape@carlh.net>
+
+ * src/desktop.cpp: prevent crash by adding a check for
+ layer == NULL to SPDesktopWidget::_buildLayerStatusMenuItem.
+
+ * src/selection-chemistry.cpp: prevent crash on copying empty
+ groups.
+
+2004-07-04 MenTaLguY <mental@rydia.net>
+
+ * src/sp-object.cpp: fixed bug #979281 -- I had accidentally
+ reversed the sense of a test in SPObject::requestModified(),
+ such that CHILD_MODIFIED notifications were never being sent
+
+ * src/widgets/sp-color-notebook.cpp: always assume colors are
+ 8-digit hex rrggbbaa, and zero-fill accordingly
+
+ HAPPY NATHAN#@$?#$#@$!?!?!?
+
+ * src/desktop.cpp, src/desktop.h, src/document.cpp, src/document.h,
+ src/interface.cpp, src/select-context.cpp, src/selection-chemistry.cpp,
+ src/sp-item-group.cpp, src/sp-item-group.h, src/widgets/widget-sizes.h:
+
+ Added selection-changes-current-layer and other layer refinements.
+ Except for fixing the currently broken layer combo box on the status
+ bar, I think this is pretty much the last of the layerish work I'm
+ willing to do for 0.39 since we're in freeze now.
+
+2004-07-03 Kees Cook <kees@outflux.net>
+
+ * src/document.cpp, src/dialogs/desktop-properties.cpp,
+ src/dialogs/rdf.cpp, src/dialogs/rdf.h:
+ Added several more RDF entities. Created entry tooltips. Set
+ a few RDF defaults for the document.
+
+2004-07-03 MenTaLguY <mental@rydia.net>
+
+ * src/desktop.cpp, src/document.cpp:
+
+ siblings of a layer now become layers too
+
+ * src/interface.cpp: switched to command names suggested by bulia
+
+ * src/object-hierarchy.cpp, src/object-hierarchy.h:
+
+ bugfixes and cleanups
+
+ * src/sp-item-group.cpp, src/sp-item-group.h, src/sp-root.cpp:
+
+ new layerMode() and setLayerMode() methods; SPGroupMode becomes
+ SPGroup::LayerMode
+
+ * src/sp-object.h: added isSiblingOf() method
+
+ * src/sp-object.cpp: leave parent pointer in place until after
+ "release" handlers finish
+
+2004-07-02 Kees Cook <kees@outflux.net>
+
+ * src/document.cpp, src/dialogs/desktop-properties.cpp,
+ src/dialogs/rdf.cpp, src/dialogs/rdf.h, src/xml/repr.h:
+ Made RDF's writable now. Handling modifications and defaults.
+ Mental and others will most likely kill me when they finally
+ read this code.
+
+2004-07-02 MenTaLguY <mental@rydia.net>
+
+ * src/attributes.cpp, src/attributes.h, src/sp-item-group.cpp,
+ src/sp-item-group.h:
+
+ Removed the "inkscape:groupmode" attribute and added note about how
+ the group/layer mode setting needs to be per-view, not global.
+
+ * src/desktop.cpp, src/desktop.h,
+ src/object-hierarchy.cpp, src/object-hierarchy.h:
+
+ Added notification signals for switching layers, as well as putting
+ groups in layer mode when they are being used as layers.
+
+ Notably, you can now call SPDesktop::connectCurrentLayerChanged() to
+ connect to a SigC++ signal to be notified when the current layer
+ changes.
+
+ * src/interface.cpp, src/object-ui.cpp:
+
+ Fixed up the "Enter Group" and "Leave Group" context menu
+ commands a bit, and implement them both in the same places.
+
+2004-07-02 Carl Hetherington <inkscape@carlh.net>
+
+ * src/desktop-snap.cpp, src/desktop-snap.h, src/snap.cpp, src/snap.h,
+ src/Makefile_insert src/arc-context.cpp src/draw-context.cpp
+ src/dyna-draw-context.cpp src/make.dep src/make.files src/make.ofiles
+ src/makefile.msc src/nodepath.cpp src/rect-context.cpp
+ src/select-context.cpp src/selection-chemistry.cpp src/seltrans.cpp
+ src/sp-namedview.h src/spiral-context.cpp src/star-context.cpp:
+ renamed desktop-snap.* to snap.* since it has nothing to do with the
+ desktop any more.
+
+ * src/draw-context.cpp: Temporary hack to prevent snapping
+ completely failing to work when snapping to bbox points. Support
+ shift-disables-snap for freehand drawing.
+
+ * src/snap.cpp, src/snap.h: Added some temporary methods to assist
+ with hacks elsewhere.
+
+2004-07-01 Kees Cook <kees@outflux.net>
+
+ * src/xml/repr.h, src/xml/repr-util.h, src/dialogs/rdf.cpp:
+ moved "repr_lookup_name" into the repr-util collection so
+ that the RDF stuff doesn't need to know about SPRepr internals.
+ Now that I've started to grok the SPRepr stuff, this seems best.
+ Added "sp_repr_recursive_drop" for use in the future when I may
+ want to throw away an entire tree of SPRepr items (like ditching
+ a blank "dc:rights" section).
+
+2004-07-01 MenTaLguY <mental@rydia.net>
+
+ * src/sp-item.cpp: fix clip path loading bug
+
+ * src/sp-object.cpp: relax analness about object ids a little
+
+2004-06-30 Kees Cook <kees@outflux.net>
+
+ * src/dialogs/desktop-properties.cpp, src/dialogs/rdf.h,
+ src/dialogs/rdf.cpp: built the various functions needed to extract
+ the RDF text elements from the DOM. XML in the document will now
+ be displayed in the entry fields.
+
+2004-06-28 MenTaLguY <mental@rydia.net>
+
+ * src/xml/repr-action.cpp, src/xml/repr-action.h, src/xml/repr-css.cpp,
+ src/xml/repr-io.cpp, src/xml/repr-private.h, src/xml/repr-util.cpp,
+ src/xml/repr.cpp, src/xml/sp-repr-attr.h: applied peter's patch to
+ break out NRReprAttr
+
+ * src/sp-object.cpp, src/sp-object.h:
+
+ added SPObject::nearestCommonAncestor, which given another SPObject
+ returns the nearest common ancestor of the two SPObjects.
+
+ * src/sp-item.cpp, src/sp-item.h:
+
+ added SPItem::getRelativeTransform, which computes the SPItem's
+ transform relative to another SPObject
+
+ * src/arc-context.cpp, src/draw-context.cpp, src/dyna-draw-context.cpp,
+ src/rect-context.cpp, src/spiral-context.cpp, src/star-context.cpp,
+ src/text-context.cpp:
+
+ drawing tools now cope with drawing within transformed groups
+ (i.e. layers)
+
+2004-06-27 MenTaLguY <mental@rydia.net>
+
+ * src/sp-object.h: remove sp_object_request_update,
+ sp_object_invoke_update, sp_object_invoke_modified,
+ sp_object_request_modified, and sp_object_invoke_write, which have been
+ deprecated and are now completely unused
+
+ * src/Makefile_insert, src/desktop.cpp, src/desktop.h,
+ src/object-hierarchy.cpp, src/object-hierarchy.h, src/sp-object.cpp,
+ src/sp-object.h:
+
+ Implemented SPDesktop::setCurrentLayer(), introducing
+ Inkscape::ObjectHierarchy to permit falling back to parents if
+ the current layer is removed.
+
+ * src/object-ui.cpp, src/interface.cpp: really crude hack of
+ Sodipodi-like "enter group" and "leave group"
+
+2004-06-26 MenTaLguY <mental@rydia.net>
+
+ * src/refcounted.h: allow reffing/unreffing const objects
+
+ * src/arc-context.cpp, src/draw-context.cpp, src/dropper-context.cpp,
+ src/event-context.cpp, src/event-context.h, src/node-context.cpp,
+ src/rect-context.cpp, src/selcue.cpp, src/selcue.h,
+ src/select-context.cpp, src/select-context.h, src/seltrans.cpp,
+ src/seltrans.h, src/spiral-context.cpp, src/star-context.cpp,
+ src/text-context.cpp, src/zoom-context.cpp:
+
+ Make SPSelTrans and SPSelCue proper C++ classes with constructors.
+
+ * src/document.h, src/dialogs/xml-tree.cpp: removed sp_document_lookup_id
+
+ * src/sp-object.cpp: clarify what is happening with bug #980407 --
+ the clone is getting attached to the repr before the original SPObject
+ is.
+
+2004-06-26 Carl Hetherington <inkscape@carlh.net>
+
+ * src/node-context.cpp: make sure nodepath->nodeContext is set up
+ when the selection changes. Fixes 936739.
+
+2004-06-25 MenTaLguY <mental@rydia.net>
+
+ * src/display/sp-canvas.cpp: enabled win32 current item workaround on
+ all platforms
+
+2004-06-25 Kees Cook <kees@outflux.net>
+
+ * src/dialogs/rdf.h, src/dialogs/rdf.cpp, src/dialogs/Makefile_insert,
+ src/dialogs/desktop-properties.cpp:
+
+ Added data entry widgets for document metadata, including a rough
+ license selector, and debug rdf generator. Corrected whitespace,
+ added table for RDF entity lookup, tag, and title mapping. Added
+ initial loading framework. Cleaned up rdf_work_entity_t usage.
+
+2004-06-25 Carl Hetherington <inkscape@carlh.net>
+
+ * src/sp-namedview.cpp: cleanups in grid snap settings. Fix a
+ typo.
+
+ * src/seltrans.cpp: optional default origin for scaling. Fixes
+ to snap during scale.
+
+ * src/seltrans.h: s/opposit/opposite/. Add some comments.
+
+ * src/dialogs/display-settings.cpp: add default scale origin
+ option.
+
+ * src/desktop-snap.h: changes to snap_list_scale prototype.
+
+ * src/desktop-snap.cpp: snap_list_scale now returns whether
+ it snapped or not. The best scale snap is now the one that
+ changes the scale factor least, rather than the one that
+ results in the snap point being closest to where it used to be.
+
+ * src/display/sp-canvas.cpp: fix for win32 freeze-at-border bug,
+ copied from SP.
+
+ * src/knot.cpp, src/select-context.cpp: change spellings from
+ British to American English for translators.
+
+2004-06-24 rejon <kidproto@users.sf.net>
+
+ * src/verbs.cpp: I changed the reverse command to be more verbose and
+ explanative.
+
+2004-06-24 MenTaLguY <mental@rydia.net>
+
+ * src/seltrans.cpp: slight change to make showing/hiding center
+ mark easier later on
+
+ * configure.in, src/main.cpp, src/star-context.cpp,
+ src/display/bezier-utils.cpp, src/display/canvas-bpath.cpp,
+ src/display/nr-arena-glyphs.cpp, src/display/nr-arena-shape.cpp,
+ src/display/sp-ctrlline.cpp, src/libnr/nr-svp.cpp,
+ src/libnrtype/FontFactory.cpp, src/libnrtype/RasterFont.cpp,
+ src/livarot/AlphaLigne.cpp, src/livarot/BitLigne.cpp,
+ src/livarot/Ligne.cpp, src/livarot/PathOutline.cpp,
+ src/livarot/ShapeMisc.cpp, src/widgets/font-selector.cpp:
+
+ fixes for floating-point portability issues, courtesy of
+ Colin Marquardt.
+
+ * src/extensions/init.cpp: dirent.h requires inttypes.h on OS X
+
+2004-06-23 MenTaLguY <mental@rydia.net>
+
+ * src/Makefile_insert, src/desktop.cpp, src/managed.h,
+ src/message-context.cpp, src/message-stack.h, src/refcounted.h,
+ src/selection.h, src/view.cpp:
+
+ Changed my mind.
+
+ Inkscape::Managed is more properly called Inkscape::Refcounted
+
+ * src/libnrtype/Makefile_insert, src/libnrtype/codepages.h,
+ src/libnrtype/cp1250.cpp, src/libnrtype/cp1251.cpp,
+ src/libnrtype/cp1252.cpp, src/libnrtype/cp1253.cpp,
+ src/libnrtype/cp1254.cpp, src/libnrtype/cp1255.cpp,
+ src/libnrtype/cp1256.cpp, src/libnrtype/cp1257.cpp,
+ src/libnrtype/cp1258.cpp, src/libnrtype/cp874.cpp,
+ src/libnrtype/cp932.cpp, src/libnrtype/cp936.cpp,
+ src/libnrtype/cp949.cpp, src/libnrtype/cp950.cpp:
+
+ removed unused Win32 codepage crap
+
+2004-06-23 Carl Hetherington <inkscape@carlh.net>
+
+ * src/inkscape.cpp: Don't connect to SIGBUS on Win32, as
+ it doesn't seem to exist. Add Emacs mode line.
+ Declaration-to-first-use and coding style cleanups.
+
+ * src/desktop-snap.h: a few double -> NR::Coord fixes.
+
+ * src/nodepath.cpp: turn off snapping when Shift is held down.
+ Some minor cleanups.
+
+ * src/dialogs/display-settings.cpp: remove my rather dubious
+ move_with_grid option.
+
+ * src/select-context.cpp: rationalise grid modifiers; now Shift
+ disables snap and Alt snaps movement to the grid.
+
+2004-06-23 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * share/extensions/dia2svg.sh: Fix bashism and insecure tempfile usage.
+
+2004-06-23 Ted Gould <ted@gould.cx>
+
+ * share/extensions/dropshadow.inkmod, share/extensions/roundhole.inkmod,
+ src/extension/system.cpp:
+
+ Setting it up so that poorly formed inkmod files generate actual GTK
+ warnings so that they can be easily hidden. Also, fixing these two inkmod
+ files so that they don't generate the above mentioned warnings.
+
+2004-06-22 Kees Cook <kees@outflux.net>
+
+ * src/inkscape.cpp: added SIGBUS and SIGABRT handling.
+
+2004-06-22 John Cliff <simarilius@yahoo.com>
+
+ * src/object-edit.cpp: Added knots for manipulation of pattern fills.
+ * src/sp-shape.cpp, src/sp-shape.h: Added sp_shape_set_pattern to
+ explictly set the transform rather than multiplying like adjust.
+
+
+2004-06-22 Carl Hetherington <inkscape@carlh.net>
+
+ * src/sp-shape.cpp: add sp_shape_snappoints.
+
+ * src/desktop-snap.cpp: minor cleanups. Added a comment.
+
+ * src/sp-text.cpp: removed an old comment.
+
+ * src/sp-ellipse.cpp: fix snappoints method now that the parent
+ class method has changed.
+
+ * src/sp-rect.cpp: snappoints method is not required as it's now
+ handled by SPShape.
+
+ * src/sp-image.cpp: use SPItem's snappoints method.
+
+ * src/file.cpp: fix another call to g_file_test with a
+ possibly-NULL parameter. Fixes #977413.
+
+2004-06-21 Carl Hetherington <inkscape@carlh.net>
+
+ * src/file.cpp: don't call g_file_test with a NULL path. Fixes
+ #976703.
+
+ * src/desktop-snap.cpp: default to snapping to bounding boxes when
+ snapping is first enabled. Rework in terms of SPNamedView rather
+ than SPDesktop.
+
+ * src/desktop-snap.h: rework in terms of SPNamedView rather than
+ SPDesktop.
+
+ * src/arc-context.cpp, src/draw-context.cpp,
+ src/dyna-draw-context.cpp, src/nodepath.cpp src/rect-context.cpp,
+ src/select-context.cpp, src/selection-chemistry.cpp,
+ src/seltrans.cpp, src/sp-namedview.cpp, src/spiral-context.cpp,
+ src/star-context.cpp: Adapt for changes to snap code naming.
+
+ * src/seltrans.cpp: cleanups to sp_sel_trans_skew_request and
+ sp_sel_trans_scale_request.
+
+2004-06-20 Ted Gould <ted@gould.cx>
+
+ * share/extensions/ai_input.inkmod, share/extensions/ai_output.inkmod,
+ share/extensions/dia.inkmod, share/extensions/dropshadow.inkmod,
+ share/extensions/epsi_output.inkmod, share/extensions/roundhole.inkmod,
+ share/extensions/svgz_input.inkmod, share/extensions/svgz_output.inkmod,
+ share/extensions/txt2svg.inkmod, src/extension/extension.h,
+ src/extension/system.cpp, src/extension/implementation/script.cpp,
+ src/extension/internal/eps-out.cpp,
+ src/extension/internal/gdkpixbuf-input.cpp,
+ src/extension/internal/gnome.cpp, src/extension/internal/ps-out.cpp,
+ src/extension/internal/ps.cpp, src/extension/internal/svg.cpp,
+ src/extension/internal/win32.cpp:
+
+ Changing the naming of the extensions to be more Java style naming to
+ allow for more extension in the future.
+
+2004-06-21 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/extension/internal/ps.cpp (PrintPS): Initialize _stream to
+ NULL (fixes segfaults when exporting to an unopenable file), and
+ initialize _bitmap to false instead of random.
+
+2004-06-20 MenTaLguY <mental@rydia.net>
+
+ * src/desktop.cpp, src/managed.h, src/message-context.h,
+ src/message-stack.h, src/message.h, src/view.cpp:
+
+ Document classes, and change Managed to have an initial refcount
+ of one at creation.
+
+2004-06-20 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/libnrtype/FontFactory.cpp, src/libnrtype/FontInstance.cpp,
+ src/libnrtype/font-instance.h: If both WIN32 and WITH_XFT are
+ defined, then use just the WITH_XFT code. (I don't know if it's
+ possible for both to be defined, but we might as well document
+ that the existing code doesn't handle both being defined, AFAICT.)
+
+ * src/libnrtype/FontFactory.cpp (ink_strstr): Document brokenness.
+ (is_regular, is_nonbold, is_italic, etc.): Mark as static.
+
+ * src/Makefile.am (EXTRA_DIST): Remove reference to deleted files
+ libnrtype/nr-type-w32.cpp, libnrtype/nr-type-w32.h,
+ libnrtype/nr-type-xft.cpp, libnrtype/nr-type-xft.h.
+
+ * src/config.h.win32: Define PACKAGE_TARNAME, for require-config.h.
+ More accurate mathematical constants (20 decimal places instead of 3).
+
+2004-06-19 MenTaLguY <mental@rydia.net>
+
+ * src/desktop.cpp, src/managed.h, src/rect-context.cpp,
+ src/rect-context.h, src/selection.h, src/view.cpp:
+
+ SPSelection now derives from Inkscape::Managed
+
+ * src/Makefile_insert, src/select-context.cpp, src/select-context.h,
+ src/selection-describer.h, src/selection-describer.cpp:
+
+ Introduced Inkscape::SelectionDescriber to which SPSelectContext
+ delegates the task of displaying descriptions of the current
+ selection. This fixes bug #945735.
+
+2004-06-19 Carl Hetherington <inkscape@carlh.net>
+
+ * src/desktop-snap.{cpp,h}: sp_desktop_dim_snap_list returns
+ whether or not it snapped anything.
+
+ * src/select-context.cpp: fix snap on move behaviour (again)
+
+ * src/widgets/dash-selector.cpp: fix off-by-one spotted by
+ valgrind.
+
+2004-06-19 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/extension/internal/ps.cpp (begin): Add some basic error handling.
+
+ * src/extension/internal/ps.cpp (setup): Simplify an expression now that
+ _bitmap is a bool.
+
+ * src/extension/internal/ps.h: Twiddle the order of the fields.
+ Replace bitfields with bool/short.
+
+ * src/libnrtype/Makefile_insert, src/libnrtype/FontInstance.h,
+ src/make.files, src/make.ofiles, src/make.dep:
+ Remove src/libnrtype/FontInstance.h (see change below).
+
+ * src/libnrtype/RasterFont.h, src/libnrtype/raster-glyph.h,
+ src/libnrtype/raster-position.h:
+ Move raster_glyph, raster_position from RasterFont.h to new files
+ raster-glyph.h, raster-position.h.
+ * src/libnrtype/Makefile_insert: Add the new files to SOURCES.
+
+ * src/libnrtype/FontInstance.h, src/libnrtype/font-glyph.h,
+ src/libnrtype/font-instance.h, src/libnrtype/font-style.h:
+ Move font_glyph, font_instance, and font_style definitions from
+ FontInstance.h into new files font-glyph.h, font-instance.h,
+ font-style.h.
+ * src/libnrtype/Makefile_insert: Add the new files to SOURCES.
+
+ * src/libnrtype/nrtype-forward.h: New file.
+ * src/libnrtype/Makefile_insert: Add it to SOURCES.
+ * src/libnrtype/FontFactory.h, src/libnrtype/TextWrapper.h:
+ #include it (replacing local declarations in some cases).
+
+ * src/livarot/livarot-forward.h: New file.
+ * src/livarot/Ligne.h, src/livarot/Path.h, src/livarot/Shape.h:
+ #include it (replacing local declarations in some cases).
+ * src/livarot/Makefile_insert: Add it to SOURCES.
+
+2004-08-18 Ted Gould <ted@gould.cx>
+
+ * src/file.cpp, src/preferences-skeleton.h:
+
+ Adding the feature that the save and open directories are saved in the
+ preferences. The last one will be used.
+
+2004-08-18 Carl Hetherington <inkscape@carlh.net>
+
+ * src/widgets/font-selector.cpp: uint -> guint to fix
+ compile errors.
+
+ * src/desktop-snap.{cpp,h}: make snap functions aware of the
+ type of point they are snapping, so they can decide whether
+ to ignore it.
+
+ * src/arc-context.cpp, src/rect-context.cpp,
+ src/spiral-context.cpp, src/star-context.cpp,
+ src/draw-context.cpp, src/dyna-draw-context.cpp, src/nodepath.cpp,
+ src/selection-chemistry.cpp, src/seltrans.cpp:
+ temporarily update for changes to snapping API.
+
+ * src/sp-namedview.cpp, src/dialogs/desktop-properties.cpp:
+ adapt for small changes to Snapper API.
+
+ * src/select-context.cpp: use new snapping API.
+
+2004-08-17 Bryce Harrington <bryce@bryceharrington.org>
+
+ * nodepath.cpp path-chemistry.cpp selection-chemistry.cpp,
+ seltrans.cpp sp-typeset.cpp splivarot.cpp text-context.cpp,
+ tools-switch.cpp dialogs/find.cpp: Converting statusbar
+ messages from old style to new, as per
+ http://inkscape.org/cgi-bin/wiki.pl?StatusbarAPI
+
+2004-06-18 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/mkdep.pl: Add `by mkdep.pl' to `automatically generated' line.
+
+ * src/dialogs/desktop-properties.cpp:
+ Greater conformance to CodingStyle. Add FIXME comment.
+
+ * src/sp-namedview.cpp: Tighter scoping for iteration var.
+ Simplify some code by greater use of cheap sp_unit_get_by_id.
+
+2004-06-17 MenTaLguY <mental@rydia.net>
+
+ * src/Makefile_insert, src/arc-context.cpp, src/arc-context.h,
+ src/desktop-events.cpp, src/desktop.cpp, src/desktop.h,
+ src/draw-context.cpp, src/dropper-context.cpp, src/event-context.cpp,
+ src/event-context.h, src/file.cpp, src/interface.cpp, src/knot.cpp,
+ src/managed.h, src/message-context.cpp, src/message-context.h,
+ src/message-stack.cpp, src/message-stack.h, src/message.h,
+ src/select-context.cpp, src/view.cpp, src/view.h,
+ src/libnrtype/FontFactory.cpp, src/libnrtype/nr-type-primitives.h,
+ src/widgets/font-selector.cpp:
+
+ New status messages primitives (statusbar bug not fixed yet though).
+
+2004-06-17 Carl Hetherington <inkscape@carlh.net>
+
+ * src/helper/stock-items.cpp: fix a compiler warning. Minor
+ coding style cleanups.
+
+ * src/arc-context.cpp, src/desktop-snap.cpp, src-desktop-snap.h,
+ src/rect-context.cpp, src/spiral-context.cpp,
+ src/star-context.cpp: Replace desktop.h include with forward
+ references in desktop-snap.h, and add desktop.h includes in
+ files which require them.
+
+ * src/widgets/spw-utilities.cpp, src/widgets/spw-utilities.h:
+ add spw_vbox_checkbutton.
+
+ * src/attributes.cpp, src/attributes.h, src/sp-namedview.cpp,
+ src/sp-namedview.h, src/desktop-snap.cpp, src/desktop-snap.h,
+ src/desktop.cpp, src/desktop.h,
+ src/dialogs/desktop-properties.cpp, src/seltrans.cpp,
+ src/seltrans.h, src/selection.cpp, src/selection.h,
+ src/select-context.cpp, src/selection-chemistry.cpp:
+
+ Start of new and hopefully improved snapping code.
+
+2004-06-17 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/helper/units.h, src/helper/units.cpp:
+ (sp_unit_get_by_id): new function.
+ (sp_convert_distance_full): Change arguments & return value.
+ Call g_log if no conversion possible.
+ Callers updated.
+ (sp_unit_get_default, sp_unit_get_by_name): Remove unused functions.
+ sp_units: Less rounding error in unittobase.
+
+2004-06-16 Carl Hetherington <inkscape@carlh.net>
+
+ * src/sp-item.h: added a comment.
+
+2004-06-15 Ted Gould <ted@gould.cx>
+
+ * share/extensions/ai_input.inkmod:
+ Removing the command-line argument to specify line endings.
+
+ * src/print.cpp, src/print.h, src/sp-text.cpp,
+ src/extension/extension.cpp, src/extension/extension.h,
+ src/extension/implementation/implementation.cpp,
+ src/extension/implementation/implementation.h,
+ src/extension/internal/ps.cpp, src/extension/internal/ps.h:
+
+ Changing it so that the text to vector is its own function. This way it
+ can be used as a parameter in Postscript, but then can be easily used for
+ drivers which only support vector drawing.
+
+2004-06-16 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/select-toolbar.cpp: Cleanups and preparation for px units.
+
+ * src/helper/units.h, src/helper/units.cpp:
+ Add reference version of sp_points_get_units, sp_units_get_points.
+ Implement as simple multiplication instead of sp_convert_distance.
+ (sp_units_table_sane): New function.
+ * src/helper/units-test.cpp: Test sp_units_table_sane.
+
+ * src/sp-object-repr.cpp: Move some declarations to first use.
+ * src/sp-object-repr.h, src/sp-object-repr.cpp (sp_object_type_register):
+ Change return type to void.
+
+ * src/sp-item.cpp (sp_item_repr_compare_position):
+ Reimplement as shallow wrapper around sp_repr_compare_position.
+
+ * src/helper/units.h, src/helper/units.cpp:
+ SPUnitId: new enum, to allow replacing string lookups.
+ Get rid of handling for unused SP_UNIT_USERSPACE.
+ Remove unused SPUnit.version field.
+
+ * src/helper/units-test.cpp (test_bases): Test sp_unit_get_identity.
+
+ * src/helper/Makefile_insert (helper_units_test_LDADD): Fix the previous
+ commit: -lglib-2.0 instead of -lglib.
+
+2004-06-15 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/Makefile.am, src/helper/Makefile_insert,
+ src/helper/units-test.cpp:
+ New unit test file units-test.cpp.
+
+ * src/select-toolbar.cpp: Greater conformance to CodingStyle.
+
+2004-06-14 Carl Hetherington <inkscape@carlh.net>
+
+ * src/libnrtype/TextWrapper.cpp: Fix what looks like an off-by-one.
+
+ * ChangeLog, src/prefs-utils.cpp:
+ Fix bracketing typo that causes an array to be overrun.
+
+2004-06-14 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/sp-path.cpp: Move some declarations to first use.
+
+2004-06-13 Kees Cook <kees@outflux.net>
+
+ * src/xml/repr.h, src/xml/repr-utils.cpp: adding additional RDF URIs
+ to the default namespace prefix list.
+
+2004-06-13 MenTaLguY <mental@rydia.net>
+
+ * src/arc-context.cpp, src/desktop.cpp, src/desktop.h, src/document.cpp,
+ src/document.h, src/draw-context.cpp, src/dyna-draw-context.cpp,
+ src/file.cpp, src/gradient-chemistry.cpp, src/interface.cpp,
+ src/rect-context.cpp, src/selection-chemistry.cpp, src/sp-object.cpp,
+ src/sp-object.h, src/spiral-context.cpp, src/splivarot.cpp,
+ src/star-context.cpp, src/svg-view.h, src/text-context.cpp,
+ src/extension/internal/gdkpixbuf-input.cpp:
+
+ added SPDesktop::currentRoot() and SPDesktop::currentLayer(), which
+ report the current "view" root and current "editing" layer,
+ respectively; I've also added SPObject::appendReprChild().
+
+ Between the two of them, they replace sp_document_add_repr, which
+ has been removed. Generally to add a repr to a document, you would
+ now use either:
+
+ SP_DOCUMENT_DEFS(document)->appendReprChild(repr);
+
+ or:
+
+ desktop->currentLayer()->appendReprChild(repr);
+
+2004-06-13 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/sp-clippath.h, src/sp-gradient.h, src/sp-marker.h, src/sp-mask.h,
+src/sp-pattern.h:
+ Explicitly mark _acceptObject as virtual.
+ (Already declared as virtual in base class.)
+
+ * src/file.cpp, src/main.cpp: Greater conformance to CodingStyle.
+
+ * src/node-context.h, src/selcue.h, src/sp-pattern.h,
+ src/widgets/sp-color-wheel-selector.h:
+ Add missing includes as found by src/check-header-compile.
+
+ * src/Makefile_insert:
+ * src/sp-use-reference.cpp:
+ * src/sp-use-reference.h:
+ * src/sp-use.cpp:
+ * src/sp-use.h:
+ Move SPUseReference from sp-use.h to new files sp-use-reference.h,
+ sp-use-reference.cpp.
+
+ * src/sp-use.h (_acceptObject): Fix can't-use-ancestor check.
+
+ * src/uri-references.h (getOwner): Fix copy&paste bug.
+
+2004-06-11 MenTaLguY <mental@rydia.net>
+
+ * src/sp-object.h, src/sp-object.cpp:
+
+ migrated several SPObject methods to C++ methods:
+
+ sp_object_invoke_write -> SPObject::updateRepr
+ sp_object_request_update -> SPObject::requestDisplayUpdate
+ sp_object_invoke_update -> SPObject::updateDisplay
+ sp_object_request_modified -> SPObject::requestModified
+ sp_object_invoke_modified -> SPObject::emitModified
+
+ (leaving deprecated wrappers in place for now)
+
+ * src/document.cpp, src/object-edit.cpp, src/sp-clippath.cpp,
+ src/sp-defs.cpp, src/sp-ellipse.cpp, src/sp-image.cpp,
+ src/sp-item-group.cpp, src/sp-item.cpp, src/sp-line.cpp,
+ src/sp-marker.cpp, src/sp-mask.cpp, src/sp-offset.cpp,
+ src/sp-pattern.cpp, src/sp-rect.cpp, src/sp-root.cpp,
+ src/sp-shape.cpp, src/sp-spiral.cpp, src/sp-star.cpp,
+ src/sp-symbol.cpp, src/sp-text.cpp, src/sp-typeset.cpp,
+ src/sp-use.cpp, src/dialogs/stroke-style.cpp, src/sp-path.cpp:
+
+ transitioned to SPObject::requestDisplayUpdate and
+ SPObject::updateDisplay
+
+ * src/arc-context.cpp, src/document.cpp, src/gradient-chemistry.cpp,
+ src/knotholder.cpp, src/main.cpp, src/rect-context.cpp,
+ src/sp-anchor.cpp, src/sp-clippath.cpp, src/sp-defs.cpp,
+ src/sp-gradient.cpp, src/sp-item-group.cpp, src/sp-item.cpp,
+ src/sp-mask.cpp, src/sp-namedview.cpp, src/sp-object-group.cpp,
+ src/sp-object.cpp, src/sp-object.h, src/sp-offset.cpp,
+ src/sp-pattern.cpp, src/sp-rect.cpp, src/sp-shape.cpp,
+ src/sp-spiral.cpp, src/sp-text.cpp, src/sp-use.cpp,
+ src/spiral-context.cpp, src/splivarot.cpp, src/star-context.cpp,
+ src/style.cpp, src/toolbox.cpp, src/dialogs/fill-style.cpp,
+ src/dialogs/stroke-style.cpp, src/extension/internal/svg.cpp:
+
+ transitioned to SPObject::requestModified, SPObject::emitModified,
+ and SPObject::updateRepr; also reworked "minimal" version of
+ updateRepr.
+
+ * src/sp-object.h: added a little documentation
+
+ * src/document.cpp, src/document.h, src/file.cpp,
+ src/gradient-chemistry.cpp, src/help.cpp, src/object-ui.cpp,
+ src/selection-chemistry.cpp, src/selection.cpp, src/seltrans.cpp,
+ src/sp-clippath.cpp, src/sp-item-group.cpp, src/sp-mask.cpp,
+ src/sp-namedview.cpp, src/sp-object.cpp, src/sp-offset.cpp,
+ src/sp-pattern.cpp, src/sp-root.cpp, src/sp-text.cpp,
+ src/sp-typeset.cpp, src/sp-use.cpp, src/splivarot.cpp,
+ src/uri-references.cpp, src/dialogs/fill-style.cpp,
+ src/dialogs/item-properties.cpp, src/dialogs/stroke-style.cpp,
+ src/helper/stock-items.cpp, src/widgets/gradient-selector.cpp,
+ src/widgets/gradient-vector.cpp, src/widgets/icon.cpp:
+
+ replaced sp_document_lookup_id with SPDocument::getObjectById,
+ and SPDocument::getObjectByRepr
+
+ (left deprecated stub in place, but it should be unused at this point)
+
+2004-06-11 Ted Gould <ted@gould.cx>
+
+ * src/file.cpp, src/inkscape.cpp, src/interface.cpp, src/prefs-utils.cpp,
+ src/prefs-utils.h:
+
+ Moving the recent document setting and getting code into the prefs-utils
+ files so that they'll be with the preferences (which they really kinda
+ are). Then, moved the place where they are set from the removing of the
+ document to where the files are opened and 'save as'd. (yes, I made up a
+ word/contraction).
+
+2004-06-10 Carl Hetherington <inkscape@carlh.net>
+
+ * src/desktop-snap.cpp, src/desktop-snap.h,
+ src/satisfied-guide-cns.cpp, src/satisfied-guide-cns.h,
+ select-context.cpp, selection.cpp, selection.h, seltrans.cpp,
+ seltrans.h, sp-ellipse.cpp, sp-image.cpp,
+ sp-item-notify-moveto.cpp, sp-item-rm-unsatisfied-cns.cpp,
+ sp-item-update-cns.cpp, sp-item.cpp, sp-item.h, sp-offset.cpp,
+ sp-rect.cpp, sp-spiral.cpp, sp-star.cpp, sp-text.cpp:
+
+ Use a std::vector to store snap points, rather than a fixed-size
+ array.
+
+2004-06-09 Carl Hetherington <inkscape@carlh.net>
+
+ * src/desktop-snap.cpp, src/desktop-snap.h: Coding style fixes.
+ Use NR::Coord rather than double where appropriate. Added some
+ comments. Use NR::Dim2 where appropriate. Use NR_HUGE rather
+ than hardcoded 1e18s.
+
+ * src/rect-context.cpp, src/nodepath.cpp, src/arc-context.cpp:
+ Adapt for changes to sp_desktop_dim_snap prototype.
+
+ * src/select-context.cpp:
+ Adapt for changes to sp_desktop_dim_snap_list prototype.
+
+2004-06-08 MenTaLguY <mental@rydia.net>
+
+ * src/display/sp-canvas.h, src/livarot/DblLinked.h,
+ src/livarot/LivarotDefs.h, src/livarot/AVL.h, src/livarot/Shape.h,
+ src/livarot/ShapeUtils.h, src/livarot/Ligne.h,
+ src/object-edit.cpp, src/spiral-context.cpp, src/sp-shape.cpp:
+
+ Portability fixes from Colin Marquardt <colin@marquardt-home.de>.
+
+2004-06-08 Carl Hetherington <inkscape@carlh.net>
+
+ * src/main.cpp: remove the call to
+ Extension::Internal::PrintWin32::init() entirely after Ted pointed
+ out that it would be called by code in src/extension/init.cpp
+ anyway.
+
+2004-06-08 Ted Gould <ted@gould.cx>
+
+ * src/main.cpp:
+
+ Added in a version command to our command line args. This fixes
+ enhancement request 968642.
+
+2004-06-07 MenTaLguY <mental@rydia.net>
+
+ * src/document.cpp, src/document.h, src/document-undo.cpp,
+ src/sp-object.h, src/sp-object.cpp:
+ renamed object garbage collection routines to fit the "orphan"
+ terminology
+
+2004-06-07 Carl Hetherington <inkscape@carlh.net>
+
+ * src/main.cpp: tentative fix for startup crash on Win32. Ensure
+ that Extension::Internal::PrintWin32::init() is not called until
+ after inkscape_application_init().
+
+2004-06-07 Ted Gould <ted@gould.cx>
+
+ * src/inkscape.cpp, src/main.cpp:
+
+ Moving the initialization of the extensions into the Inkscape application
+ init. I have mixed feelings on this. On one hand, basically extension
+ init gets called directly after applicaiton init and extensions init has
+ nothing to do with anything else in main. On the other hand I'm not sure
+ that it is directly related to the structure of the application itself.
+ Comments are welcome.
+
+2004-06-06 MenTaLguY <mental@rydia.net>
+
+ * src/attributes.cpp, src/attributes.h: added inkscape:collect attribute
+ to specify orphan collection policy (collect with parent, or always
+ collect)
+
+ * src/document-undo.cpp, src/document.cpp, src/document.h: added an orphan
+ collection pass as part of comitting an undo step
+
+ * src/sp-object.cpp, src/sp-object.h:
+ add total hrefcount for all descendants, and basic orphan collection
+ facilities
+
+ * src/gradient-chemistry.cpp, src/dialogs/stroke-style.cpp,
+ src/extension/internal/gdkpixbuf-input.cpp:
+ mark automatically added gradients, patterns, and markers for orphan
+ collection
+
+2004-06-06 Bryce Harrington <bryce@bryceharrington.org>
+
+ * libnrtype/nr-type-xft.cpp, libnrtype/nr-font.cpp,
+ libnrtype/nr-rasterfont.cpp, libnrtype/nr-type-directory.cpp,
+ libnrtype/nr-typeface.cpp, libnrtype/nr-type-w32.cpp,
+ libnrtype/nr-type-ft2.cpp, libnrtype/nr-type-pos-def.cpp,
+ libnrtype/nr-type-primitives.cpp:
+
+ Documenting the routines. This adds basic code docs for
+ everything in libnrtype.
+
+2004-06-06 Ted Gould <ted@gould.cx>
+
+ * src/main.cpp, src/preferences-skeleton.h, src/extension/extension.cpp:
+
+ Making it so that the extension parameters get saved in the Inkscape
+ preferences. Most people will notice that their printer gets saved now.
+ But this does alot more than that. Added an "extensions" group to the
+ preferences skeleton for all these settings. All settings get saved as
+ "module ID"."param name". Also had to change where the extensions get
+ init'd in the startup to put it behind the Inkscape application so that
+ prerefences could be used.
+
+2004-06-03 Ted Gould <ted@gould.cx>
+
+ * src/file.cpp, src/dialog/filedialog.cpp:
+
+ Making the whole file dialog alot more fun. Basically, now the
+ first filename will always be unique on files that don't have a
+ filename already. And, if you've selected a different default
+ extension, that extension's filename extension will be placed
+ on the file. Also, when you change the extension to save with
+ in the dialog, the filename extension will change with you (assuming
+ that you were using filename extensions previously ofcourse).
+ Finally, the checkbox to autoappend extensions is no insensitive
+ when "Autodetect" is selected.
+
+2004-06-03 MenTaLguY <mental@rydia.net>
+
+ * src/file.cpp, src/extension/internal/ps.cpp,
+ src/extension/internal/win32.cpp, src/sp-pattern.cpp,
+ src/dialogs/stroke-style.cpp, src/display/nr-arena-glyphs.cpp,
+ src/display/nr-arena-group.cpp, src/display/nr-arena-image.cpp,
+ src/display/nr-arena-item.cpp, src/display/nr-arena-shape.cpp,
+ src/widgets/icon.cpp, src/dialogs/nr-arena-item.h:
+
+ Introduced the notion of "parent" NRGCs
+
+2004-06-02 bulia byak <bulia@users.sourceforge.net>
+
+ * src/selection.h, src/selection.cpp:
+
+ * preferences-skeleton.h dialogs/display-settings.cpp sp-item.cpp: New
+settings
+ for various compensations
+
+ * sp-shape.cpp sp-shape.h sp-rect.cpp sp-path.cpp: Factored out adjustments
+ (stroke and pattern so far) from optimizing items into sp-shape.
+
+ * libnr: Added distance function for a couple of points. Added expansions
+for X and Y.
+
+ * object-edit.cpp sp-rect.cpp sp-item.cpp toolbox.cpp: Made rect use
+absolute
+ radii, added recursive compensation on item_transform. Added new knot for
+ rect, moved corner knots to the top right corner. Rect toolbar shows visible
+ rx/ry.
+
+ * toolbox.cpp: Finally got the freeze semaphores right (prevent loops for
+ changes both from the repr and from toolbar UI).
+
+ * sp-namedview.cpp: Guarding against nan in zoom, cx, cy
+
+ * select-toolbar.cpp helper/unit-menu.cpp helper/unit-menu.h: Fix units menu
+size
+
+ * node-context.cpp: Second Esc or empty-click deselects object
+
+ * desktop.cpp desktop.h: Restored sticky zoom
+
+ * preferences-skeleton.h extension/internal/gdkpixbuf-input.cpp file.cpp: Do
+not
+ group import if only one item; move its defs to our defs; select and move
+ under cursor the imported item/group. Optionally import bitmaps as filled
+ rects.
+
+ * many -context files: Decoupled seltrans and selcue so that the latter can
+be
+ used outside of selector; enabled optional selcue in all tools
+
+ * many files: New set_color signals on desktop, switching the dropper to
+them;
+ needs to be redone for style. Excise the old inkscape::color_set signal.
+
+ * dialogs/stroke-style.cpp: Fix the "all clubs" marker preview bug. In
+markers
+ menu, skip document markers with stockid only if the same stockid is in
+ markers.svg; add separator.
+
+ * many fill and stroke files: Remove old mode selector, remove dropper
+checkbox
+ (now always on). Remember active colorselector page. Remove redundant checks
+ in setting color (fixes at least one bug). Cosmetics, cleanup, b/w icons,
+ shortened labels, added mnemonics and tooltips, removed the drop-down modes
+ list. Switched color spinbuttons to 0..255 enabling 0..1 floats to be typed
+as
+ well.
+
+ * dialogs/find.* et al: Find dialog, command
+
+ * selection-chemistry.cpp: Fix copying objects from different parents; fix
+and
+ reorganize copying gradients, recurse into groups
+
+ * dialogs/xml-tree.cpp: Removed unused desktop shutdown signal, fixes
+problem
+ with saving window settings on exit
+
+ * select-toolbar.cpp: Percentage unit, lock toggle, NR::Rectification
+
+ * sp-object.cpp path-chemistry.cpp splivarot.cpp et al: Sending
+_delete_signal
+ recursively for descendants; switched to deleteObject where appropriate to
+ notify clones
+
+ * preferences-skeleton.h desktop.cpp desktop.h interface.cpp: Window layout
+ fully configurable, commands in the View menu
+
+ * path-chemistry.cpp: Fixed transform when combining inside group
+
+ * preferences-skeleton.h sp-item.cpp dialogs/display-settings.cpp: Fixes in
+ scalestroke (coded by Carl): arbitrary depth recusion, setting stroke-width
+ via repr, pref in the transforms tab
+
+ * widgets/sp-xmlview-attr-list.cpp: More robust listener
+
+2004-06-01 Ted Gould <ted@gould.cx>
+
+ * src/extension/internal/gdkpixbuf-input.cpp:
+ Making it so that the lists of extensions and mimetypes are
+ used in the creation of the plugins. Also, free'ing everything
+ properly so that we don't have a memory leak.
+
+2004-05-30 MenTaLguY <mental@rydia.net>
+
+ * src/selection.h, src/selection.cpp:
+ rework SPSelection to be SPObject- rather than SPItem- oriented;
+ this will be needed later for the layers/document tree dialog
+ (and could prove useful for the XML editor later too)
+
+ * src/sp-item.h: make SPItem a proper C++ subclass of SPObject
+
+ * src/dialogs/item-properties.cpp:
+ correct overly intimate knowledge of SPObject (use SP_OBJECT_ID rather
+ than directly accessing the SPObject::id member)
+
+2004-05-27 Kees Cook <kees@outflux.net>
+
+ * src/extension/internal/ps.h, src/extension/internal/ps.cpp:
+ Hopefully fixed the locale problems in the PS output generator.
+ * src/sp-offset.cpp, src/display/bezier-utils-test.cpp,
+ src/display/nr-arena-item.cpp, src/libnr/nr-svp-render.cpp,
+ src/libnr/testnr.cpp, src/livarot/AlphaLigne.cpp,
+ src/livarot/Ligne.cpp, src/livarot/Path.cpp,
+ src/livarot/PathCutting.cpp, src/livarot/Shape.cpp,
+ src/livarot/ShapeDraw.cpp, src/livarot/ShapeSweep.cpp,
+ src/svg/svg-affine.cpp: added comments and notes to all remaining
+ "printf"ish calls that have %g or %f in them. Most are just debug
+ output, etc. Hopefully we are actually free of locale bugs! :)
+ * src/desktop.h, src/desktop.cpp: desktop's knowledge of
+ fullscreen-ness doesn't depend on having the ability to DO it. Other
+ functions already test "is_fullscreen" to alter their behavior.
+
+2004-05-23 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/extension/system.h, src/extension/system.cpp (build_from_file):
+ Remove unused second argument. Callers updated.
+ * src/extension/system.cpp (build_from_reprdoc):
+ Just one call to sp_repr_name per child.
+ * src/extension/system.h, src/extension/system.cpp:
+ Cleanup: greater conformance to CodingStyle.
+
+2004-05-23 MenTaLguY <mental@rydia.net>
+
+ * src/libnrtype/Makefile_insert, src/libnrtype/nr-type-gnome.cpp,
+ src/libnrtype/nr-type-gnome.h, src/libnrtype/nr-type-dictionary:
+
+ removed gnome-print libnrtype backend
+
+2004-05-20 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/xml/repr.h, src/xml/repr-util.cpp:
+ Remove unused function sp_repr_set_position_relative.
+
+ * src/xml/repr-util.cpp (sp_repr_compare_position, sp_repr_position):
+ Minor cleanups.
+
+2004-05-19 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/sp-use.cpp: Cleanup: greater conformance to CodingStyle.
+
+ * src/sp-item-group.cpp (sp_item_group_ungroup): Fix bug #956334:
+ ungrouping was reversing the order of the group members.
+
+ * src/xml/repr-get-children.h, src/xml/repr-get-children.cpp: New files.
+ * src/xml/Makefile_insert (xml_libspxml_a_SOURCES): Add the new files.
+
+ * src/xml/repr-private.h, src/xml/repr.cpp (sp_repr_nth_child):
+ Remove this unused function.
+
+ * src/xml/repr.h, src/xml/repr.cpp (sp_repr_parent):
+ Mark pointer as not written through (const).
+
+2004-05-18 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/xml/repr.cpp: Cleanup: greater conformance to CodingStyle.
+
+ * src/Makefile_insert: Add missing dependencies on inkscape_version.h.
+ * src/display/Makefile_insert: Adapt dependency object names for
+ `subdir-objects' automake option.
+ * src/helper/Makefile_insert: Adapt dependency object names for
+ lack of libspchelp-specific CPPFLAGS.
+
+2004-05-17 Carl Hetherington <inkscape@carlh.net>
+
+ * src/libnrtype/nr-type-w32.cpp: Tentative fix for
+ build problems on Win32.
+
+ * src/extension/internal/svg.cpp: Coding style cleanups.
+
+2004-05-17 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/sp-item.h, src/sp-item.cpp: Remove unused
+ distance-conversion functions sp_item_distance_to_svg_bbox,
+ sp_item_distance_to_svg_viewport.
+
+ * src/sp-item.cpp: Cleanup: greater conformance to CodingStyle.
+
+ * acinclude.m4: Remove.
+
+2004-05-16 Carl Hetherington <inkscape@carlh.net>
+
+ * src/extension/internal/svg.cpp:
+ Throw an exception if sp_repr_save_file fails. This should close
+ bug 948921.
+
+2004-05-16 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/check-header-compile.in: New script.
+ * configure.in: Add it to list of files for substitution.
+
+ * src/star-context.cpp: Minor cleanups, and use g_strdup_printf instead
+ of fixed-size buffer for translated string.
+
+ * src/selection-chemistry.cpp: Use NR::Rect bounds() method instead of
+ old bounds(NRRect*).
+
+ * src/document.cpp (sp_document_create):
+ * src/preferences-skeleton.h:
+ Use INKSCAPE_VERSION from inkscape_version.h instead of VERSION.
+
+ * src/libnr/nr-rotate-test.cpp: Use new rotate_equalp function.
+
+ * src/libnr/nr-translate-ops.h (operator-): New function.
+
+ * src/select-context.cpp:
+ * src/selection-chemistry.cpp:
+ * src/xml/repr.h:
+ * src/sp-defs.h:
+ Cleanup: greater conformance to CodingStyle.
+
+ * src/libnr/nr-macros.h: Don't #include nr-matrix.h, nr-rect.h.
+
+ * src/arc-context.h, src/desktop-affine.h, src/dir-util.h,
+ src/draw-context.h, src/dyna-draw-context.h, src/help.h,
+ src/knotholder.h, src/prefs-utils.h, src/select-toolbar.h,
+ src/sp-clippath.h, src/sp-mask.h, src/sp-pattern.h, src/sp-use.h,
+ src/text-context.h, src/toolbox.h, src/tools-switch.h,
+ src/dialogs/dialog-events.h, src/dialogs/sp-attribute-widget.h,
+ src/display/sp-canvas.h, src/helper/gnome-utils.h,
+ src/helper/png-write.h, src/helper/stock-items.h, src/inkjar/jar.h,
+ src/libnr/nr-matrix.cpp, src/libnr/nr-point-l.h,
+ src/svg/stringstream.h, src/svg/svg-affine.cpp,
+ src/widgets/gradient-selector.h, src/widgets/paint-selector.h,
+ src/widgets/spinbutton-events.h, src/widgets/spw-utilities.h,
+ src/xml/repr-action.h:
+ Add missing header files as detected by check-header-compile script.
+
+ * src/libnr/nr-rotate-fns.h, src/libnr/nr-rotate-fns.cpp: New files.
+ * src/libnr/nr-rotate-fns-test.cpp: New unit test.
+ * src/libnr/Makefile_insert, src/Makefile.am: Reference new files,
+ add to unit tests.
+
+ * src/libnr/nr-rotate.h: Add Coord,Coord constructor.
+
+ * src/libnr/nr-rotate.h, src/libnr/nr-rotate-ops.h (operator*=):
+ New method.
+
+ * src/libnr/nr-point-fns.h (point_equalp): New function.
+
+ * src/radial.h: Remove this unused header.
+
+ * src/xml/xml-forward.h: New file.
+ * src/xml/Makefile_insert: Add it to xml_libspxml_a_SOURCES.
+ * src/xml/repr-private.h: Include it.
+
+2004-05-16 MenTaLguY <mental@rydia.net>
+
+ * src/libnrtype/nr-type-directory.cpp, src/libnrtype/nr-type-ft2.cpp,
+ src/libnrtype/nr-type-ft2.h, src/libnrtype/nr-type-gnome.h,
+ src/libnrtype/nr-type-w32.h, src/libnrtype/nr-type-xft.cpp,
+ src/libnrtype/nr-typeface.h:
+
+ transition to C++ inheritance
+
+ * src/verbs.cpp, src/helper/action.h, src/helper/action.cpp,
+ src/widgets/button.cpp, src/libnr/nr-object.cpp, src/libnr/nr-object.h:
+
+ removed barely-used "in-place construction" facility for NRObject
+
+ * src/helper/action.h, src/helper/action.cpp,
+ src/display/nr-arena-glyphs.cpp, src/display/nr-arena-glyphs.h,
+ src/display/nr-arena-image.cpp, src/display/nr-arena-image.h,
+ src/display/nr-arena-item.cpp, src/display/nr-arena-shape.cpp,
+ src/helper/action.cpp, src/helper/action.h, src/libnr/nr-object.cpp,
+ src/libnr/nr-object.h, src/libnrtype/nr-type-ft2.cpp,
+ src/libnrtype/nr-type-gnome.cpp, src/libnrtype/nr-type-w32.cpp,
+ src/libnrtype/nr-typeface.cpp:
+
+ Made NRObject "C++-compatible". All C++ features including virtual
+ methods and RTTI should now be available to NRObject subclasses
+ _provided_:
+
+ a) there is an unbroken chain of _C++_ inheritance from the subclass
+ back to NRObject
+
+ b) the NRObject-derived inheritance chain is always first in cases
+ of multiple inheritance (the NRObject must be first in the memory
+ layout)
+
+ c) The subclass in question overrides NRObjectClass::cpp_ctor in its
+ own class_init function, with a pointer to a function that calls
+ the specific subclass' constructor (via placement new -- you will
+ need to #include <new> for this to work)
+
+ n.b. Objects of classes which do not override cpp_ctor will appear
+ to the C++ runtime system (RTTI and virtual dispatch, at least) as
+ objects of the closest ancestor class which does override it
+ (NRObject or NRActiveObject if nothing else).
+
+2004-05-15 MenTaLguY <mental@rydia.net>
+
+ * src/display/nr-arena-shape.h, src/display/nr-arena-shape.cpp:
+ further reduced dependency on SPStyle
+
+2004-05-14 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/libnr/nr-path.cpp, src/libnr/nr-path.h (nr_path_matrix_bbox_union):
+ Get rid of no-longer-needed tolerance arg. Update callers.
+
+ * src/selection.cpp, src/sp-chars.cpp, src/sp-image.cpp,
+ src/sp-item-group.cpp, src/sp-item.cpp, src/sp-item.h,
+ src/sp-marker.cpp, src/sp-root.cpp, src/sp-shape.cpp,
+ src/sp-symbol.cpp, src/sp-text.cpp, src/sp-typeset.cpp,
+ src/sp-use.cpp, src/dialogs/fill-style.cpp,
+ src/dialogs/stroke-style.cpp, src/display/nr-arena-shape.cpp,
+ src/libnr/nr-path.cpp, src/libnr/nr-path.h,
+ src/libnrtype/nr-font.cpp, src/libnrtype/nr-rasterfont.cpp,
+ src/libnrtype/nr-type-gnome.cpp, src/widgets/icon.cpp,
+ src/widgets/paint-selector.cpp:
+ Change argument from NRMatrix to NR::Matrix in SPItemClass->bbox,
+ sp_item_invoke_bbox, sp_item_invoke_bbox_full,
+ nr_path_matrix_bbox_union. Users updated.
+
+ * src/libnr/nr-rect.h, src/libnr/nr-rect.cpp (nr_rect_union_pt):
+ new function.
+
+ * src/libnr/nr-matrix-fns.h, src/libnr/nr-matrix-fns.cpp
+ (NR::transform): new function.
+
+ * src/Makefile_insert: Move fixes.cpp from libinkpre.a to libinkpost.a.
+ * src/xml/Makefile_insert (xml_repr_action_test_LDADD):
+ Add libinkpost.a, for fixes.o. `make check' now works again.
+
+ * src/sp-text.cpp (sp_text_set_transform):
+ Don't include SP_OBJECT_CHILD_MODIFIED_FLAG in flags for
+ sp_object_request_update. Addresses `critical' warning.
+
+2004-05-13 John Cliff <simarilius@yahoo.com>
+
+ * src/dialogs/stroke-style.cpp: Switched to using get_stock to retrieve
+markers.
+ * src/helpers/stock-items.h, src/helpers/stock-items.cpp: created to handle
+stock items.
+ * src/prefix.h: Added marker and gradient directorys.
+
+2004-05-13 Kees Cook <kees@outflux.net>
+
+ * configure.in, src/main.cpp, config.h.mingw, debian/rules:
+ made popt a requirement instead of an option.
+
+2004-05-13 Carl Hetherington <cth103@houllier.home>
+
+ * sp-color-notebook.cpp: Fix uninitialised value spotted by valgrind.
+
+ * stroke-style.cpp:
+ Fix ink_extract_marker_name returning a pointer into a free()d buffer.
+
+2004-05-13 Ted Gould <ted@gould.cx>
+
+ * src/file.cpp:
+ Making the default filename _("untitled.svg")
+
+2004-05-12 Kees Cook <kees@outflux.net>
+
+ * config.h.mingw: added g_ascii_strtod macro.
+
+2004-05-12 Carl Hetherington <inkscape@carlh.net>
+
+ * src/dialogs/export.cpp: fix faulty logic with exporting of
+ selections, as reported by Artemio on the ML.
+
+ * src/dialogs/desktop-properties.cpp: Fix a gtk_table size.
+ Make use of spw_dropdown in one place.
+
+ * src/select-context.cpp: Remove alt-drag "slow move" mode.
+ Make alt-drag move without any grid snap, even if the grid
+ is enabled. Add a new mode, shift-drag, which preserves
+ objects' grid offsets rather than snapping their snappoints.
+
+ * src/selection-chemistry.cpp: Pasted objects have the same
+ offset from the grid as the original, if the grid is enabled.
+ Also a NRRect -> NR::Rect fix thrown in for no extra charge.
+
+ * src/dialogs/display-settings.cpp: Added option to reverse
+ the actions of drag and shift-drag when moving objects.
+
+2004-05-12 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/main.cpp (main): Test ENABLE_NLS instead of HAVE_NLS (which
+ wasn't getting defined). Restores translations on *nix systems
+ when inkscape translations aren't in system-wide /usr/share/locale.
+
+2004-05-10 Carl Hetherington <inkscape@carlh.net>
+
+ * src/sp-item.cpp, src/dialogs/display-settings.cpp: primitive
+ support for preserving line widths when scaling. Thanks to Bulia
+ for telling me what to do :)
+ * src/dialogs/align.cpp: refactor some cut-and-paste code into
+ a separate function. Remove NRRect. Declaration-to-first-use
+ cleanups.
+ * src/dialogs/transformation.cpp, src/dialogs/fill-stype.cpp:
+ NRRect removal. Declaration-to-first-use cleanups.
+
+2004-05-09 MenTaLguY <mental@rydia.net>
+
+ * src/sp-paint-server.h: SPPaintServer now uses C++ inheritance
+
+ (bigger question -- should SPPaintServer derive from SPObject? I think
+ not, actually ... it's more something that should be aggregated into
+ the various paint-server-capable types)
+
+ * src/display/nr-arena-shape.h, src/display/nr-arena-shape.cpp:
+ first steps in removing SPStyle dependency from NRArenaShape --
+ add fill and stroke paint server members, and use those instead
+ of reading directly from an SPStyle.
+
+2004-05-09 Kees Cook <kees@outflux.net>
+
+ * src/libnrtype/nr-type-xft.cpp: added patch 898200, hopefully this
+ won't break anyone.
+ * src/dialogs/desktop-properties.cpp: added patch 947127, along with
+ some orientation bugfixes, list cleanup, and logic to select the
+ correct menu items based on document settings.
+ * configure.in: default to always replace g_ascii_strtod.
+
+2004-05-08 Kees Cook <kees@outflux.net>
+
+ * src/extension/internal/gdkpixbuf-input.cpp: skip SVG files. (open bug)
+ * configure.in, src/Makefile_insert, src/fixes.cpp: added replacement
+ for g_ascii_strtod, since it has locale-related bugs in gnome 2.0.
+ The upstream version is fixed, so some day, we won't need this any
+ more. (fixes "ugly icons" bug, and possibly the spinbutton locale bug)
+ * src/dyna-draw-context.cpp, src/rect-context.cpp, src/sp-namedview.cpp,
+ src/sp-object.cpp, src/sp-object.h, src/sp-pattern.cpp,
+ src/sp-polygon.cpp, src/sp-polyline.cpp, src/sp-root.cpp,
+ src/sp-spiral.cpp, src/sp-star.cpp, src/sp-symbol.cpp,
+ src/sp-text.cpp, src/spiral-context.cpp, src/star-context.cpp,
+ src/svg/ftos.cpp, src/svg/svg-affine.cpp, src/svg/svg-color.cpp,
+ src/svg/svg-length.cpp: adding "config.h", making a few extra
+ locale-sensitive functions use g_ascii versions.
+
+2004-05-08 MenTaLguY <mental@rydia.net>
+
+ * src/sp-item.cpp: move "transformed" signal emission after actual
+ application of transform
+
+ * src/xml/repr-action.cpp, src/xml/repr-action.h, src/xml/repr.cpp:
+ fix lifecycle issues with content and attribute strings
+
+ * src/sp-object.h, src/sp-object.cpp: added SPObject::setId()
+
+2004-05-08 Kees Cook <kees@outflux.net>
+
+ * src/verbs.cpp, src/help.cpp: localizing "about" and "keys" stuff.
+ * po/*.po: rebuilt for new strings.
+
+2004-05-08 Carl Hetherington <inkscape@carlh.net>
+
+ * src/dialogs/desktop-properties.cpp: the usual cleanups. Also
+ add some sp_document_done()s in various places.
+
+2004-05-08 bulia byak <bulia@users.sourceforge.net>
+
+ * widgets/paint-selector.cpp: Tooltips, slight cosmetics
+
+ * main.cpp: --help edit
+
+ * sp-use.h sp-use.cpp: Redid move compensation using _transformed_signal
+
+ * sp-item.h sp-item.cpp: Added _transformed_signal, emitted by
+write_transform,
+ passes the difference transform relative to the old one (not the new
+transform
+ set)
+
+ * nodepath.cpp: Fix lagging update of the other handle for smooth nodes
+
+ * widgets/dash-selector.cpp: (Almost) fixed display of shorter-than-0.5
+dashes
+ in selector; proper fixing will require manual drawing the dashes instead of
+ using gdk dashes
+
+ * preferences-skeleton.h: lots of new dasharrays
+
+ * dialogs/stroke-style.cpp: Remove repetitive code; relocation patch from
+ mhearn; fixed, reenabled, and automated marker previews (no need for
+previews
+ in markers.svg)
+
+ * share/markers/markers.svg: Cleanup, sizes, remove manual previews
+
+ * style.cpp: Disabled warning for overflow property (we need it for markers)
+
+ * splivarot.cpp: Fixed transform when doing boolop inside group
+
+ * libnr/nr-path.cpp: Ported fix from sodi, fixes two bugs with endnodes of a
+ curve on the same hor/vert line
+
+ * sp-namedview.cpp: Use set_default_size instead of _resize for setting
+window
+ from namedview
+
+ * preferences-skeleton.h dialogs/item-properties.cpp: Objects props
+ transientized (better late than never)
+
+ * dialogs/display-settings.cpp: Added simplify threshold
+
+ * sp-use.cpp: Mega-kill use on unlink
+
+ * preferences-skeleton.h dialogs/display-settings.cpp: Orphaned clones
+options
+
+ * sp-item-group.cpp: Prevent jumps when ungrouping clone with its original
+
+ * sp-object.cpp: Fix crash when deleting clone and its original
+
+ * toolbox.cpp, tool contexts: Alt-x and top panel keyboard shortcuts now
+work
+ for all tools
+
+ * sp-use.cpp enums.h: Unlink option on self-delete
+
+ * sp-use.cpp: Fix: disappeating clone on undoing ungrouping (_show finally
+works properly)
+
+ * splivarot.cpp: Boolops: cleanup, preserve id, parent, position, fix to
+take
+ style from the bottom object
+
+ * interface.cpp verbs.cpp shortcuts.cpp: Mnemonics, tooltips, shortcuts,
+ cleanup, autoraise removed from menu
+
+2004-05-07 Kees Cook <kees@outflux.net>
+
+ * src/verbs.cpp: re-localizing tutorials. My goof!
+ * po/POTFILES.in: removed arikkei references
+
+2004-05-07 Carl Hetherington <inkscape@carlh.net>
+
+ * src/desktop.cpp: make sure that a SPNamedView's modified signal
+ is connected to the SPDesktop even when a file is loaded into an
+ existing SPDesktop. Fixes problems whereby grid snap does not
+ work for the first file loaded in a session. Fix a && -> & typo.
+
+ * src/sp-object.cpp: declaration-to-first-use and coding style
+ cleanups.
+
+2004-05-05 Spundun Bhatt <spundun@isi.edu>
+
+ * configure.in: Stole Nathan's configure hack and used it to
+ support gtkmm-2.4
+
+2004-05-06 Ted Gould <ted@gould.cx>
+
+ * src/file.cpp, src/extension/extension.cpp, src/extension/init.cpp,
+ src/extension/internal/Makefile_insert,
+ src/extension/internal/gdkpixbuf-input.cpp,
+ src/extension/internal/gdkpixbuf-input.h:
+ Changing the import functionality so that it works much more like open.
+ You can use any format, and it will place that file directly in the
+ document that you are working on. Added input extensions that cover all
+ of the bitmap formats that are covered with gdkpixbuf. Also, more
+ formats can be used using the scripting system.
+
+2004-05-06 Carl Hetherington <inkscape@carlh.net>
+
+ * src/sp-line.cpp, src/sp-mask.cpp, src/sp-metrics.cpp:
+ declaration-to-first-use and coding style cleanups
+
+2004-05-05 MenTaLguY <mental@rydia.net>
+
+ * src/libnrtype/nr-type-dictionary.cpp: removed 'private-fonts'
+ feature (we should rely on fontconfig for "custom" font stuff)
+
+ * configure.in, src/Makefile_include, src/Makefile.am,
+ src/libarikkei/*: removed the now unused libarikkei
+
+2004-05-05 Nathan Hurst <njh@mail.csse.monash.edu.au>
+
+ * src/dialogs/text-edit.cpp, configure.in: Added support for spell
+ checking in text dialog.
+
+2004-05-04 MenTaLguY <mental@rydia.net>
+
+ * src/display/nr-arena-glyphs.h: fixed cut-and-paste error in
+ NRArenaGlyphsGroup::create()
+
+ * src/selection.cpp, src/selection.h: fixed global "changed" propagation
+
+2004-05-02 MenTaLguY <mental@rydia.net>
+
+ * src/file.cpp, src/print.cpp, src/sp-chars.cpp, src/sp-clippath.cpp,
+ src/sp-image.cpp, src/sp-item-group.cpp, src/sp-mask.cpp,
+ src/sp-pattern.cpp, src/sp-shape.cpp, src/sp-text.cpp,
+ src/sp-use.cpp, src/dialogs/stroke-style.cpp,
+ src/display/canvas-arena.cpp, src/display/nr-arena-glyphs.cpp,
+ src/display/nr-arena-glyphs.h, src/display/nr-arena-group.h,
+ src/display/nr-arena-image.h, src/display/nr-arena-item.cpp,
+ src/display/nr-arena-item.h, src/display/nr-arena-shape.h,
+ src/display/nr-arena.h, src/libnr/nr-object.h, src/widgets/icon.cpp:
+
+ removed nr_arena_item_new in favor of static ::create() functions
+ which call NRArenaItem::init() to perform setup (i.e. setting
+ NRArenaItem::arena). Eventually NRArenaItem::init() and
+ nr_arena_item_init will merge and become NRArenaItem's constructor.
+
+2004-04-30 MenTaLguY <mental@rydia.net>
+
+ * src/sp-use.cpp: call parent class' write methods rather than
+ attempting to do everything (wrongly) ourselves; among other
+ things, <use> transform attributes weren't getting written
+
+ * src/sp-object.h, src/sp-object.cpp:
+
+ designate a "successor" object so we still perform as
+ expected if objects are replaced in the middle of e.g. a
+ bulk delete operation
+
+ * src/sp-use.cpp: cleanups and succession logic for <use>
+ deletion
+
+ * src/widgets/sp-hwrap-box.cpp, src/widgets/sp-hwrap-box.h,
+ src/widgets/sp-vwrap-box.cpp, src/widgets/sp-vwrap-box.h,
+ src/widgets/sp-wrap-box.cpp, src/widgets/sp-wrap-box.h,
+ src/widgets/test-wrapbox.cpp, src/widgets/Makefile_insert:
+
+ Removed unused (and imperfect) "wrapbox" widgets.
+
+ * src/sp-object.h, src/sp-object.cpp, src/sp-item-group.cpp:
+
+ Removed unused sp_object_invoke_forall and sp_object_sequence
+ methods. (forall might be nice to have, but we can do better
+ implementation-wise now that we're in C++-land)
+
+2004-04-30 njh <njh@mail.csse.monash.edu.au>
+
+ * main.cpp: replaced gtk_init with g_type_init for console mode.
+ Closes 944969.
+
+2004-04-29 MenTaLguY <mental@rydia.net>
+
+ * src/sp-image.cpp, src/sp-item.cpp, src/sp-item.h, src/sp-line.cpp,
+ src/sp-path.cpp, src/sp-rect.cpp, src/sp-text.cpp:
+
+ write_transform becomes set_transform, which applies the given
+ transform to the object without (!) invoking a repr write
+
+ * src/sp-star.cpp, src/svg/svg-length.h, src/svg/svg-length.cpp,
+ src/svg-types.h, src/svg/svg.h:
+
+ replaced raw integers with real units enum
+
+ * src/libnr/nr-matrix.h:
+
+ removed dead assertion (it's always valid to retrieve the
+ translation component of a matrix)
+
+ * src/selection-chemistry.cpp:
+
+ delete items via SPItem (SPObject), not repr
+
+ * src/sp-object.h, src/sp-object.cpp:
+
+ added SPObject::deleteObject() and a delete notification signal;
+ SPObject now inherits from GObject in the C++ sense
+
+ * src/sp-use.h:
+
+ don't accept references to the use or its ancestors (preventing
+ infinite loops)
+
+ * src/sp-use.cpp, src/sp-use.h:
+
+ added automatic deletion when referrent is deleted
+
+ * src/uri-reference.h:
+
+ added URIReference::getOwner()
+
+2004-04-29 Carl Hetherington <inkscape@carlh.net>
+
+ * src/extension/internal/win32.cpp: add textToPath parameter to
+ description in order to fix #944131.
+
+2004-04-28 Carl Hetherington <inkscape@carlh.net>
+
+ * src/desktop.cpp, src/inkscape.cpp, src/sp-namedview.cpp
+ Part of the fix for #942149. Also fixed some compiler warnings.
+
+ * src/display/nr-arena.cpp: Fixed an unused variable warning.
+
+ * src/main.cpp: Fix a warning that is raised on Windows.
+
+2004-04-28 bulia byak <bulia@users.sourceforge.net>
+
+ * inkscape.cpp: Fixed prev/next desktop; numbered from 0
+
+ * Lots of files: Replaced all strtod() and atof() by g_ascii_strtod()
+
+ * interface.cpp verbs.cpp: Tooltip edits
+
+ * view.cpp view.h desktop.cpp: Signal and function to pop statusbar message
+
+ * dialogs/dialog-events.cpp: Only set the UTILITY hint for non-modal
+windows,
+ fixes "disappearing save as"
+
+ * toolbox.cpp widgets/widget-sizes.h widgets/button.cpp: Got rid of button
+ relief, top panel made less tall
+
+ * desktop.cpp preferences-skeleton.h dialogs/display-settings.cpp: Done away
+ with the sticky zoom button, now in prefs
+
+ * path-chemistry.cpp: Preserve id= in combine/break, convert to paths;
+preserve
+ z-order in combine/break; cleanups
+
+ * splivarot.cpp: New selection API, Simplify preserves id=
+
+ * select-context.cpp preferences-skeleton.h sp-item.cpp display-settings.cpp
+ splivarot.cpp sp-item-group.cpp sp-item-transform.cpp
+ sp-item-notify-moveto.cpp nodepath.cpp node-context.cpp seltrans.cpp
+ seltrans.h: Switched to global preservetransform, transform writing
+ unification (no more manual transform= setting all over the place), stamp
+ preserves parent, mental's new SPSelection API, pruning dead code
+
+ * verbs.cpp interface.cpp: Eliminated Dialogs menu, added ... to dialog
+ commands, rearrangements, menu items display tooltips in statusbar when
+ selected
+
+ * sp-item-group.cpp sp-item-group.h: Made document_done optional in ungroup
+(not
+ done when the function is called from another function)
+
+ * dialogs/display-settings.cpp enums.h preferences-skeleton.h sp-use.cpp
+ sp-use.h: Clone move compensation (3 modes), settable in prefs
+
+ * seltrans.cpp selection-chemistry.cpp: Do not translate a clone if its
+original
+ is in the selection
+
+ * verbs.cpp verbs.h interface.cpp shortcuts.cpp sp-use.cpp sp-use.h
+ selection-chemistry.cpp selection-chemistry.h: Unlink Clone verb and menu
+ command (preserves id=)
+
+ * selection-chemistry.cpp selection-chemistry.h verbs.h verbs.cpp
+shortcuts.cpp
+ interface.cpp: Select Original verb and command, scrolls to the original
+
+ * selection-chemistry.cpp selection-chemistry.h verbs.cpp verbs.h
+interface.cpp:
+ Clone command
+
+ * sp-use.h sp-use.cpp: Use URIReference; Propagate update to parent class
+ (SPItem) (fixes redraw on dragging a clone)
+
+ * dropper-context.cpp dropper-context.h dialogs/display-settings.cpp:
+ Implemented pick modes (pick either actual color with transparency or
+visible
+ color without transparency); added statusbar indication; color is only set
+on
+ mouse release
+
+ * seltrans.cpp display/sodipodi-ctrlrect.cpp: Finally the correct selection
+cue
+ rect (fixed displacement)
+
+2004-04-27 Carl Hetherington <inkscape@carlh.net>
+
+ * src/desktop.cpp: Check for there being no items when zooming to
+ the drawing. This fixes bug #942137.
+
+2004-04-26 Carl Hetherington <inkscape@carlh.net>
+
+ * config.h.mingw, prefix.h:
+ INKSCAPE_VERSION moved to inkscape_version.h.
+ INKSCAPE_{PIXMAP,SCREENS,TUTORIALS,MARKERS}DIR moved to prefix.h
+
+ * src/Makefile.mingw, src/inkscape_version.h.mingw
+ Use CVS inkscape_version.h.mingw for inkscape_version.h on Win32.
+
+ * src/sp-use.cpp: fix a warning.
+
+2004-04-26 Ted Gould <ted@gould.cx>
+
+ * share/extensions/ai_input.inkmod, share/extensions/dia.inkmod,
+ share/extensions/txt2svg.inkmod, src/extension/extension.cpp,
+ src/extension/internal/svg.cpp:
+
+ Making the names of the input extensions look like the output ones.
+ Also, threw in a slight memory savings in removing the implementation on
+ deactivated extensions.
+
+2004-04-26 MenTaLguY <mental@rydia.net>
+
+ * src/selection.cpp: migrate to new glib idle API
+
+ * src/extension/db.cpp: can't call ->deactivated() on a NULL pointer..
+
+2004-04-26 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * configure.in: Replace use of old AM_PROG_LIBTOOL macro with
+ AC_PROG_LIBTOOL.
+
+2004-04-26 Ted Gould <ted@gould.cx>
+
+ * share/extensions/epsi_output.inkmod:
+
+ Added in a check for ps2epsi
+
+ * src/dialogs/filedialog.cpp, src/extension/db.cpp, src/extension/db.h,
+ src/extension/extension.cpp, src/extension/extension.h,
+ src/extension/init.cpp, src/extension/system.cpp:
+
+ Implementing a 'deactivated' extension. This means that it should
+ still exist, but show up as insensitive in any GUI element that could use
+ it. The idea here is that users should know what they don't have, but
+ Inkscape supports.
+
+2004-04-26 Nathan Hurst <njh@mail.csse.monash.edu.au>
+
+ * src/{libnr,libnrtype,widgets,display,helper,.}*.{h,cpp}: moved
+ from typedef _name name; to C++ style struct name; forward
+ references.
+
+2004-04-25 Ted Gould <ted@gould.cx>
+
+ * share/extensions/ai_output.inkmod, share/extensions/dia.inkmod,
+ share/extensions/dropshadow.inkmod, share/extensions/epsi_output.inkmod,
+ share/extensions/roundhole.inkmod, share/extensions/svgz_input.inkmod,
+ share/extensions/svgz_output.inkmod, share/extensions/txt2svg.inkmod,
+ src/extension/implementation/script.cpp,
+ src/extension/implementation/script.h:
+
+ Adding in support for superior checking of dependencies. Now scripts
+ can include a line, which will look for a binary in the path. So
+ something like dia input will no be loaded if there isn't dia available in
+ the path.
+
+2004-04-25 Carl Hetherington <inkscape@carlh.net>
+
+ * src/verbs.cpp, src/rect-context.cpp, src/spiral-context.cpp,
+ src/event-context.cpp, src/text-context.cpp,
+ src/dialogs/stroke-style.cpp, src/xml-tree.cpp, src/widgets/sp-widget.cpp:
+ SPSelection OO-ification.
+
+ * src/display/curve.cpp: Don't raise a critical error if a new
+ curve cannot be created in sp_curve_new_from_bpath(). This can
+ happen if a file contains a strange path, like one with only a
+ move in it and nothing else. This is part of the fix for bug
+ 934882.
+
+ * src/sp-path.cpp: cope with sp_curve_new_from_bpath() returning
+ NULL in sp_path_set(). This is the other part of the fix for 934882.
+
+ * src/path-chemistry.cpp, src/sp-offset.cpp, src/sp-ellipse.cpp,
+ src/display/nr-arena-glyhs.cpp:
+ added asserts for calls to sp_curve_new_from_bpath() which look
+ like they might not expect it to return NULL.
+
+ * src/desktop.h: add a comment about how SPDesktop::selection
+ should never generally be NULL.
+
+ * src/desktop-handles.cpp: ensure that sp_desktop_selection never
+ returns NULL, so that we don't have to check for this eventuality
+ elsewhere.
+
+ * src/arc-context.cpp, src/seltrans.cpp, src/desktop.cpp: be less defensive
+about
+ SPDesktop::selection being NULL.
+
+ * src/path-chemistry.cpp, src/select-context.cpp,
+ src/selection-chemistry.cpp, src/star-context.cpp,
+ src/dialogs/align.cpp, src/dialogs/item-properties.cpp,
+src/dialogs/text-edit.cpp:
+ SPSelection OO-ification. Also some coding style and
+ declaration-to-first-use cleanups.
+
+ * src/toolbox.cpp: SPSelection OO-ification. Various cleanups.
+
+ * src/selection.h: remove deprecated access functions.
+
+ * src/dialogs/fill-style.cpp: declaration-to-first-use cleanups.
+
+ * src/selection.cpp: add vim and Emacs mode blocks.
+
+ * src/object-ui.cpp: very minor coding style fix.
+
+2004-04-24 MenTaLguY <mental@rydia.net>
+
+ * src/arc-context.cpp, src/dyna-draw-context.cpp, src/object-ui.cpp,
+ src/path-chemistry.cpp, src/rect-context.cpp, src/select-context.cpp,
+ src/select-toolbar.cpp, src/selection-chemistry.cpp, src/selection.h,
+ src/spiral-context.cpp, src/star-context.cpp, src/text-context.cpp,
+ src/verbs.cpp, src/dialogs/export.cpp, src/dialogs/fill-style.cpp,
+ src/dialogs/in-dt-coordsys.cpp, src/dialogs/stroke-style.cpp,
+ src/dialogs/transformation.cpp, src/dialogs/xml-tree.cpp:
+
+ removed sp_selection_set_item(), sp_selection_set_repr(),
+ sp_selection_is_empty(), sp_selection_item_selected(),
+ and sp_selection_repr_selected()
+
+2004-04-24 Ted Gould <ted@gould.cx>
+
+ * share/extensions/ill2svg.pl:
+
+ Applying a patch made to the Sodipodi list by Tuukka Pasanen which adds in
+ support for text in Illustrator files. Also, I backed out the changes
+ which removed being able to specify the line endings. This will, by
+ default, force them back to mac compatible. Mac files didn't work with
+ those changes.
+
+2004-04-24 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * configure.in: Tentatively remove config.h definitions of
+ INKSCAPE_MARKERSDIR, INKSCAPE_PIXMAPDIR, INKSCAPE_SCREENSDIR,
+ INKSCAPE_TUTORIALSDIR, with the understanding that these are to be
+ provided by prefix.h.
+ * src/prefix.h: Define INKSCAPE_MARKERSDIR.
+
+ * src/extension/extension.cpp (Extension):
+ * src/extension/init.cpp (check_extensions):
+ Address warning.
+
+ * src/dialogs/stroke-style.cpp: #include prefix.h.
+
+ * src/Makefile.am (EXTRA_DIST): Add */makefile.in.
+
+ * src/libnr/Makefile_insert (libnr_libnr_a_SOURCES):
+ Add libnr/nr-convex-hull.h, needed by sp-canvas.cpp.
+
+2004-04-24 Ted Gould <ted@gould.cx>
+
+ * src/Makefile_include, src/prefix.cpp:
+
+ Removing the redefition of NULL and adding to the make system.
+
+2004-04-24 Ted Gould <ted@gould.cx>
+
+ * src/extension/db.cpp, src/extension/db.h, src/extension/extension.cpp,
+ src/extension/extension.h, src/extension/init.cpp,
+ src/extension/internal/eps-out.cpp, src/extension/internal/eps-out.h,
+ src/extension/internal/ps-out.cpp, src/extension/internal/ps-out.h:
+
+ Adding in more checks for individual extensions. All of them
+ should still pass though. Also, moved the extension database from
+ glib to STL. This allows extensions to be deleted while using the
+ foreach functions (which causes instability with the glib hash
+ table).
+
+2004-04-24 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/dialogs/Makefile_insert:
+ * src/display/Makefile_insert:
+ * src/xml/Makefile_insert:
+ Get rid of unneeded CPPFLAGS specification.
+
+ * src/Makefile.am:
+ * src/Makefile_insert:
+ New generated file inkscape_version.h, to replace
+ -DINKSCAPE_VERSION=\"$(VERSION)\".
+ * src/help.cpp: #include it.
+
+2004-04-23 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/sp-polygon.cpp:
+ * src/splivarot.cpp:
+ * src/style.cpp:
+ Change include stringstream.h to include svg/stringstream.h.
+
+ * src/Makefile.am, src/Makefile_insert: Change libinkscape.a use
+ to eliminate triple compilation of these object files.
+
+ * src/Makefile.am: Use `subdir-objects' option.
+
+ * src/Makefile.am: Add global INCLUDES setting.
+ * src/*/Makefile_insert: Get rid of now-redundant $(INKSCAPE_CFLAGS)
+ from *_CPPFLAGS.
+
+ * src/*/makefile.in: `%' as a target doesn't behave as intended,
+ so replace with less general `clean %.a %.o' and add .SUFFIXES.
+
+2004-04-22 Ted Gould <ted@gould.cx>
+
+ * src/draw-context.cpp, src/dropper-context.cpp,
+ src/dyna-draw-context.cpp, src/node-context.cpp, src/nodepath.cpp,
+ src/sp-ellipse.cpp, src/sp-offset.cpp, src/sp-path.cpp,
+ src/sp-polygon.cpp, src/sp-shape.cpp, src/splivarot.cpp, src/toolbox.cpp,
+ src/display/curve.cpp, src/display/nr-arena-shape.cpp,
+ src/extension/internal/gnome.cpp, src/extension/internal/ps.cpp,
+ src/libnr/nr-path.cpp, src/libnr/nr-path.h,
+ src/libnrtype/nr-rasterfont.cpp, src/libnrtype/nr-type-ft2.cpp,
+ src/libnrtype/nr-type-gnome.cpp, src/libnrtype/nr-type-w32.cpp,
+ src/libnrtype/nr-typeface.cpp, src/livarot/PathCutting.cpp,
+ src/svg/gnome-canvas-bpath-util.cpp, src/svg/svg-path.cpp:
+
+ Changing the ART_ enums to NR_ so that if libart is include (like if
+ you are building gnome-print) it doesn't conflict with the internal
+ definitions.
+
+ * share/extensions/svgz_output.inkmod, src/extension/extension.cpp,
+ src/extension/init.cpp, src/extension/implementation/script.cpp:
+
+ Adding in a little more checking code. Now extensions can start
+ deleting themseleves if they fail certain tests. More tests are
+ needed, along with more testing of this feature. Consider this
+ an 'early release' of the feature. ;)
+
+2004-04-22 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/Makefile.am: Make non-recursive. Now sources */Makefile_insert.
+ See HACKING or discussion on mailing list.
+ * autogen.sh: Bump requirement from automake-1.6 to automake-1.7.
+ * configure.in: Don't generate src/blah/Makefile, but do generate
+ src/blah/makefile.
+ * src/*/Makefile.am: Remove.
+ * src/*/makefile.in: New wrapper makefiles to allow typing `make' from
+ subdirectories of src. (Not used by compiles started from top-level
+ or from src/.)
+
+2004-04-21 MenTaLguY <mental@rydia.net>
+
+ * src/libnrtype/nr-type-w32.h: fixed unremoved underscores
+
+ * src/select-context.cpp, src/selection.cpp, src/selection.h,
+ src/seltrans.cpp, src/tools-switch.cpp, src/dialogs/align.cpp:
+ remove improper twiddling of desktop message line from SPSelection;
+ some additional work is now required in SPSelectContext to update
+ the message properly in all cases.
+
+ * src/selection.h, src/selection.cpp: touched up and documented
+ SPSelection
+
+ * src/uri-references.h: documentation touch-ups
+
+2004-04-20 Kees Cook <kees@outflux.net>
+
+ * src/file.cpp, src/desktop.cpp: moved sp_file_open unselection code into
+ sp_desktop_change_document. Generalized Carl's fix for unref counting
+ since it applies in both cases. (My bad!)
+
+2004-04-20 MenTaLguY <mental@rydia.net>
+
+ * src/text-context.cpp: merged Carl's fix for signal cleanup
+
+ * src/selection.h: marked wrappers for old API as deprecated
+
+2004-04-20 Carl Hetherington <inkscape@carlh.net>
+
+ * src/extension/internal/ps.cpp, src/extension/internal/ps.h:
+ Fixed some bugs in exporting images that seem to have been
+ introduced when the code was copied from the gimp. They caused
+ problems when exporting bitmap images to PS.
+
+ * src/file.cpp: fix bug whereby the first file loaded in a session
+ would not have its modified status checked when closed. Hence if
+ you modified the first file you loaded and then closed it, you
+ would not be asked to confirm the close.
+
+ * src/preferences-skeleton.h: add \n to the end of each line to
+ fix bug 938368.
+
+2004-04-19 MenTaLguY <mental@rydia.net>
+
+ * src/arc-context.cpp, src/desktop-handles.h, src/desktop.h,
+ src/draw-context.cpp, src/draw-context.h, src/forward.h,
+ src/inkscape-private.h, src/inkscape.cpp, src/node-context.cpp,
+ src/node-context.h, src/rect-context.cpp, src/selection-chemistry.cpp,
+ src/selection-chemistry.h, src/selection.cpp, src/selection.h,
+ src/seltrans.h, src/spiral-context.cpp, src/star-context.cpp,
+ src/star-context.h, src/text-context.cpp, src/dialogs/xml-tree.cpp,
+ src/widgets/sp-widget.h:
+
+ finished GObject removal from SPSelection
+
+ * src/arc-context.h, src/arc-context.cpp, src/desktop.cpp, src/desktop.h,
+ src/draw-context.cpp, src/draw-context.h, src/node-context.cpp,
+ src/node-context.h, src/rect-context.cpp, src/rect-context.h,
+ src/selection.cpp, src/selection.h, src/seltrans.cpp, src/seltrans.h,
+ src/spiral-context.cpp, src/spiral-context.h, src/text-context.cpp,
+ src/text-context.h, src/toolbox.cpp:
+
+ migrated SPSelection to SigC++ signals (though it's a bit messy
+ right now)
+
+2004-04-19 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/dialogs/stroke-style.cpp: Cleanups: greater conformance to
+ CodingStyle. Moved some declarations to their first use.
+
+2004-04-19 Carl Hetherington <inkscape@carlh.net>
+
+ * src/dialogs/stroke-style.cpp, libnr/nr-rect-l.cpp:
+ Fix a couple of compiler warnings.
+
+ * src/dialogs/filedialog-win32.cpp: add OFN_NOCHANGEDIR to Win32
+ flags in OPENFILENAME structs. This prevents the open / save
+ boxes from changing the current directory. Any change to the
+ current directory causes problems for subsequent attempts to
+ load icons from pixmaps. Also, fix a bug whereby the save
+ dialogue would sometimes not open due to being passed a filename
+ it didn't like.
+
+2004-04-19 bulia byak <bulia@users.sourceforge.net>
+
+ * shortcuts.cpp selection-chemistry.cpp selection-chemistry.h verbs.cpp
+verbs.h
+ interface.cpp: Clone command (Edit menu, Shift+Ctrl+N)
+
+ * sp-use.cpp: Update propagated to parent class (SPItem), misc fixes
+
+ * sp-polygon.cpp: Fix for points= updating by adding set_shape call into
+_write
+ (bug 910142)
+
+ * text-context.cpp: Do not create text object unless a printable key was
+ pressed; fixes 934280
+
+ * widgets/dash-selector.cpp dialogs/stroke-style.cpp: Removed marker
+buttons,
+ fixed g_free crash in marker menus, added tooltips, added stroke-miterlimit
+ spinbutton
+
+ * splivarot.cpp: Outline handles multiple objects; All commands use correct
+ stroke_miterlimit
+
+ * splivarot.cpp sp-offset.cpp: Fix for 932642
+
+ * helper/sodipodi-ctrlrect.cpp: Simplify and fix dashes and offsets
+
+ * widgets/gradient-selector.cpp: Tooltip edits
+
+ * verbs.cpp verbs.h interface.cpp...: Remove tool options
+
+ * seltrans.cpp: Pivot marker made inverse
+
+ * toolbox.cpp: More defocusing
+
+ * *-context.cpp: Eliminated config widgets from all tools
+
+ * toolbox.cpp sp-ellipse.cpp: Ellipse fixes, tooltips
+
+ * verbs.cpp: Options -> Preferences
+
+ * dialogs/display-settings.cpp: An options dialog, completely new; selector
+ widget grafted here
+
+ * preferences-skeleton.h node-context.cpp select-context.cpp: scaling uses
+ defaultscale
+
+ * dialogs/display-settings.cpp display/nr-arena-image.cpp: Make oversample
+ saveable
+
+ * toolbox.cpp: Aux toolbar for calligraphic
+
+ * preferences-skeleton.h: fill-opacity:1 for calligraphic
+
+ * select-context.cpp seltrans.cpp seltrans.cpp: Patch to enable box and none
+ options for per-object selection cue
+
+ * main.cpp: Removed C-locale setting, not needed anymore; temporary switch
+of
+ gettext encoding for console output
+
+ * inkscape.cpp: Memory fix from sodi
+
+ * right-click finishes pen (patch by Carl) draw-context.cpp
+
+2004-04-19 Carl Hetherington <inkscape@carlh.net>
+
+ * src/livarot/ShapeRaster.cpp
+ Fix an unitialised value error that was spotted by valgrind.
+
+2004-04-18 MenTaLguY <mental@rydia.net>
+
+ * src/selection.cpp, src/selection.h, src/selection-chemistry.cpp,
+ src/seltrans.cpp, src/nodepath.cpp:
+ made all SPSelection members private, and changed all methods into
+ real C++ methods (with temporary inline wrappers for the old C
+ pseudo-methods)
+
+2004-04-18 Carl Hetherington <inkscape@carlh.net>
+
+ * src/print.cpp, src/print.h, src/sp-text.cpp
+ src/extension/extension.cpp src/extension/extension.h,
+ src/extension/implementation/implementation.cpp,
+ src/extension/implementation/implementation.h,
+ src/extension/internal/eps-out.cpp, src/extension/internal/eps-out.h,
+ src/extension/internal/ps.cpp, src/extension/internal/ps.h,
+ Add very basic feature to allow PS text to be exported as real
+ text, rather than being converted to paths first. Needs some
+ work, mostly on font handling.
+
+ * src/seltrans.cpp: Slightly improve placement of the bounding
+ box selection cue.
+
+ * src/sp-shape.cpp: various marker-related cleanups, mostly factoring out
+ common code into functions.
+
+2004-04-17 MenTaLguY <mental@rydia.net>
+ * src/inkscape.cpp, src/node-context.cpp, src/selection-chemistry.cpp,
+ src/selection.cpp, src/selection.h, src/seltrans.cpp, src/sp-gradient.cpp,
+ src/sp-item.cpp, src/sp-offset.cpp, src/dialogs/transformation.cpp,
+ src/libnr/nr-rect.cpp, src/libnr/nr-rect.h:
+ Cleaned up NR::Rect API and made SPSelection's desktop pointer private.
+
+ * src/display/sp-canvas.cpp, src/libnr/nr-convex-hull.h,
+ src/libnr/nr-rect.h:
+
+ First use of NR::ConvexHull (for propagating canvas bounding boxes)
+
+2004-04-17 Kees Cook <kees@outflux.net>
+
+ * share/icons/icons.svg, src/verbs.cpp: made last three ugly menu icons.
+
+2004-04-17 Nathan Hurst <njh@mail.csse.monash.edu.au>
+
+ * configure.in src/draw-context.cpp src/dropper-context.cpp
+ src/dyna-draw-context.cpp src/nodepath.cpp src/nodepath.h
+ src/path-chemistry.cpp src/sp-chars.cpp src/sp-ellipse.cpp
+ src/sp-offset.cpp src/sp-path.cpp src/sp-polygon.cpp
+ src/sp-shape.cpp src/sp-text.cpp src/splivarot.cpp src/style.cpp
+ src/style.h src/dialogs/fill-style.cpp
+ src/dialogs/object-properties.cpp src/dialogs/stroke-style.cpp
+ src/display/canvas-bpath.cpp src/display/canvas-bpath.h
+ src/display/canvas-grid.h src/display/curve.cpp
+ src/display/curve.h src/display/nr-arena-glyphs.cpp
+ src/display/nr-arena-glyphs.h src/display/nr-arena-shape.cpp
+ src/display/sodipodi-ctrl.cpp src/display/sodipodi-ctrl.h
+ src/display/sodipodi-ctrlrect.h src/display/sp-canvas-util.cpp
+ src/display/sp-canvas-util.h src/display/sp-canvas.cpp
+ src/display/sp-canvas.h src/display/sp-ctrlline.cpp
+ src/extension/internal/ps.cpp src/extension/internal/ps.h
+ src/libnr/Makefile.am src/libnr/libnr.def src/libnr/nr-path.cpp
+ src/libnr/nr-path.h src/libnr/nr-svp-private.h
+ src/libnr/nr-svp-render.cpp src/libnr/nr-svp-render.h
+ src/libnr/nr-svp.cpp src/libnr/nr-svp.h
+ src/libnrtype/nr-rasterfont.cpp src/libnrtype/nr-type-ft2.cpp
+ src/libnrtype/nr-type-gnome.cpp src/libnrtype/nr-type-w32.cpp
+ src/libnrtype/nr-typeface.cpp src/livarot/PathCutting.cpp
+ src/svg/gnome-canvas-bpath-util.cpp
+ src/svg/gnome-canvas-bpath-util.h src/svg/svg-path.cpp
+ src/svg/svg.h: removed libart.
+
+ * src/libnr/nr-svp-uncross.cpp src/libnr/nr-svp-uncross.h: deleted
+ uncross and SVL routines.
+
+
+2004-04-15 Carl Hetherington <inkscape@carlh.net>
+
+ * src/make.exclude, src/make.dep, src/make.files, src/make.ofiles:
+ Various fixes to the Win32 build following rearrangement of some
+ source files and cleanups to libnr.
+
+ * src/sp-text.cpp: remove an unused variable.
+
+ * src/display/sodipodi-ctrlrect.cpp: removed two unused variables.
+
+2004-04-16 MenTaLguY <mental@rydia.net>
+
+ * src/selection.cpp, src/selection.h, src/forward.h: initial
+ C++ification of SPSelection class
+
+2004-04-15 Kees Cook <kees@outflux.net>
+
+ * debian/control, debian/changes: dropping (currently) unused
+ dependancies. Added "0.39cvs" tag.
+
+2004-04-15 Carl Hetherington <inkscape@carlh.net>
+
+ * src/seltrans.cpp, src/helper/sodipodi-ctrlrect.cpp,
+ src/helper/sodipodi-ctrlrect.h:
+ Use black, dashed bounding boxes for indicating itemselection,
+ rather than red, solid boxes (as suggested by Bulia).
+
+ * src/desktop.cpp:
+ Small fix for the problem whereby the first file loaded in an
+ Inkscape session will not have its grid set up properly. This was
+ my patch #935013.
+
+ * src/dialogs/filedialog-win32.cpp:
+ Use the extension system to build the list of allowable file types
+ for save. This means that save as PS and EPS work properly.
+
+ * src/streams-zlib.cpp, src/livarot/PathConversion.cpp,
+ src/livarot/PathCutting.cpp, src/livarot/PathSimplify.cpp,
+ src/livarot/PathStroke.cpp, src/livarot/Shape.cpp,
+ src/livarot/ShapeMisc.cpp, src/display/nr-arena-glyphs.cpp,
+ src/helper/sodipodi-ctrlrect.cpp, src/helper/sp-canvas.cpp,
+ src/extension/internal/win32.cpp:
+ Fix compiler warnings, mostly about unused variables.
+
+ * src/helper/sp-canvas-util.cpp:
+ Fix what I and someone else considered to be an obvious typo. The
+ function in question isn't used, however, so it's a bit difficult
+ to test.
+
+ * src/libnrtype/nr-rasterfont.cpp:
+ Fix a warning wrt a cast from NR::Matrix to NRMatrix.
+
+ * src/sp-shape.cpp:
+ Fix bug #935758.
+
+
+2004-04-14 Ted Gould <ted@gould.cx>
+
+ * src/file.cpp, dialogs/filedialog.cpp:
+ Making it so that the filename will get placed in the save as dialog
+ if there is a name for the file. Otherwise the last save directory
+ is used (properly now)
+
+2004-04-15 MenTaLguY <mental@rydia.net>
+
+ * most files in src/: removed many old "compatable" struct typedefs
+
+ * src/libarikkei/arikkei-dict.cpp, src/libarikkei/arikkei-dict.h:
+ removed unused arikkei files
+
+ * configure.in: added gtkmm dependency
+
+2004-04-14 Kees Cook <kees@outflux.net>
+
+ * src/helper/unit-menu.cpp: Turns out I found a 2nd bug while
+ investigating patch 934358. I've applied this patch again, which gives
+ us the entire fix.
+ * src/draw-context.cpp: Investigated patch 934351 from cth103. Applied a
+ slight variation to conform to the function calling styles of that code.
+ * configure.in: Implemented gcc version test for >= 3.0.0
+ * src/file.cpp, src/interface.cpp, share/icons/icons.svg, src/verbs.cbb:
+ finished "File / Revert" implementation. Found a memory leak in
+ "file_save". Added more sanity checking to "sp_file_revert" and more
+ status messages.
+ * src/main.cpp, src/file.h, src/file.cpp: removed redundant code,
+implemented
+ in "sp_file_open".
+
+2004-04-13 Kees Cook <kees@outflux.net>
+
+ * tools-version.sh: added a possible fix for BSDish tools.
+ * configure.in, share/patterns/Makefile.am: inkscape janitor strikes
+ again! This is a quick cleanup to Ted's new directories. Looks
+ like "patterns" got left out.
+ * share/clipart/.cvsignore, share/templates/.cvsignore,
+ share/examples/.cvsignore, share/fonts/.cvsignore,
+ share/gradients/.cvsignore, share/keyboards/.cvsignore,
+ share/palettes/.cvsignore, share/patterns/.cvsignore:
+ Added Makefile build-cruft to .cvsignores.
+ * src/helper/unit-menu.cpp: applied a variation to patch 934358 from cth103
+ to fix grid unit changing bug.
+ * configure.in: fixed capitalization of "libpng" to avoid confusion.
+ * src/sp-namedview.cpp, src/document.cpp, src/document.h, src/file.cpp,
+ src/file.h, src/document-undo.cpp, src/interface.cpp, src/verbs.cpp,
+ src/verbs.h:
+ Newly opened files will only create new windows if the current document
+ is untouched. (RFE#928517)
+ Added support for future "File/Revert" handling. Needs
+ a little more support in the SPDocument structure. See notes in
+ "src/file.cpp", function "sp_file_revert_dialog".
+
+2004-04-13 Ted Gould <ted@gould.cx>
+
+ * configure.in, share/Makefile.am, share/clipart/Makefile.am,
+ share/examples/Makefile.am, share/fonts/Makefile.am
+ share/gradients/Makefile.am, share/keyboards/Makefile.am
+ share/markers/Makefile.am, share/palettes/Makefile.am
+ share/screens/Makefile.am, share/templates/Makefile.am:
+ Making it so that the clipart and everything else gets put in
+ the tarball, and also get installed in the share directory. Many
+ of these have just 'README' files, but they now have good place-
+ holders for further development.
+
+2004-04-12 Kees Cook <kees@outflux.net>
+
+ * src/dialogs/stroke-style.cpp, src/Makefile.am, src/dialogs/Makefile.am,
+ src/widgets/Makefile.am, configure.in: fixed up INKSCAPE_*DIR paths so CVS
+ will compile happily for me. This way if paths change, files will be
+ recompiled. The old way would let configure run again (changing the
+ datadir path) without forcing a recompile, which could break the
+ compiled paths.
+
+2004-04-13 John Cliff <simarilius@yahoo.com>
+ * src/sp-shape.cpp, src/dialogs/stroke-style.cpp:
+ Couple of changes to marker related code, mid and end markers now point in
+correct
+ direction, turning off start markers behaves correctly.
+ This follows on from changes made by me and Carl Hetherington that were
+commited
+ yesterday to
+ src/inkscape-stock.cpp, src/sp-item.cpp, src/sp-marker.cpp,
+src/sp-shape.cpp,
+ src/style.cpp, src/style.h, src/dialogs/stroke-style.cpp
+ to implement marker UI and fixes to the marker rendering code.
+
+2004-04-11 Ted Gould <ted@gould.cx>
+
+ * src/extension/system.cpp, src/extension/internal/eps-out.cpp
+ src/extension/internal/eps-out.h:
+ First pass at a file save dialog with EPS output. The dialog
+ sets the bounding box in the file. Comments encouraged.
+
+2004-04-11 Ted Gould <ted@gould.cx>
+
+ * src/file.cpp, src/main.cpp, src/print.cpp, src/extension/init.cpp,
+ src/extension/init.h, src/extension/system.cpp, src/extension/system.h,
+ src/extension/implementation/script.cpp,
+src/extension/internal/eps-out.cpp,
+ src/extension/internal/gnome.cpp, src/extension/internal/ps-out.cpp,
+ src/extension/internal/ps.cpp, src/extension/internal/svg.cpp,
+ src/extension/internal/win32.cpp:
+ Change alot of files, but small changes. Basically just took
+ system.cpp and init.cpp and finally ported them to the Inkscape::
+ Extension namespace. Cleaned up the code in them a bunch, it is
+ much easier to read now! All the other files are just referencing
+ these changes.
+
+2004-04-11 Kees Cook <kees@outflux.net>
+
+ * src/verbs.h, src/verbs.cpp, src/interface.cpp, src/interface.h: replaced
+ the rest of the missing menu verbs: "View New", "Cleanup". Created
+ generic function to add icons to a given menu item (for submenu icons
+ mostly).
+ * share/icons/icons.svg: added "selection_cleanup", "selection_deselect",
+ "selection_select_all". Corrected "view_new" and "selection_smooth",
+ "dialog_toggle", "dialog_tool_options", "file_open_recent".
+ * src/selection-chemistry.cpp, src/selection-chemistry.h: renamed
+ "selection_cleanup" function.
+
+2004-04-11 Jon Phillip <jon@rejon.org>
+
+ * Makefile.mingw share/Makefile.am src/Makefile.am
+ share/markers/Makefile.am share/markers/.cvsignore config.h.mingw
+ configure.in:
+ Added the proper infrastructure to get files to the right location for
+ markers.
+
+ * share/tutorials/tipsandtricks.svg: Deleted the URL trick because it no
+ longer works or something.
+
+2004-04-11 Kees Cook <kees@outflux.net>
+
+ * src/verbs.h, src/verbs.cpp: added verbs for the Help and Tutorials menus.
+ * src/interface.cpp: replaced contents of sp_ui_menu_help to use new verbs.
+ * src/help.h, src/help.cpp: replaced sp_help_keys with more generic
+ sp_help_open_screen, similar to sp_help_open_tutorial.
+ * share/icons/icons.svg: created really ugly "help_tutorials" and
+ "help_keys" icons. The "help_keys" one needs the most help. :)
+
+2004-04-09 Ted Gould <ted@gould.cx>
+
+ * share/extensions/Makefile.am, share/extensions/epsi_output.inkmod,
+ share/extensions/ps2epsi.sh, src/extension/extension.cpp,
+ src/extension/extension.h, src/extension/init.cpp,
+ src/extension/implementation/implementation.cpp,
+ src/extension/implementation/implementation.h,
+ src/extension/implementation/script.cpp,
+ src/extension/implementation/script.h,
+ src/extension/internal/Makefile.am, src/extension/internal/eps-out.cpp,
+ src/extension/internal/eps-out.h, src/extension/internal/ps.cpp:
+
+ Okay, these are some changes that I've had in my directory for
+ a little while.
+
+ 1) adding the basics of checking extensions. This will allow
+ them to remove themselves based on their dependencies failing.
+
+ 2) Adding the concepts of a 'helper extension' to scripts. This
+ allows them to use other extensions for handling the data, so
+ they don't have to deal with SVG directly - Inkscape will
+ build the pipeline. An example of this is the epsi output.
+
+ 3) Adding the bounding box change provided by Carl Hetherington
+ to the Postscript output. The EPS output plugin sets this, so
+ now EPSes have smaller bounding boxes. A GUI needs to be
+ written for this setting.
+
+2004-04-08 MenTaLguY <mental@rydia.net>
+
+ * configure.in, src/svg/ftos.cpp: fix for OS X build
+
+ * src/extensions/internal.ps.cpp: crash fix
+
+2004-04-07 MenTaLguY <mental@rydia.net>
+
+ * src/xml/repr.cpp: adjusted the advertising comment in the default
+ document template (we need a real default document template, btw)
+
+ * src/svg/ftos.cpp, src/svg/itos.cpp, src/svg/round.cpp,
+ src/svg/ftos.h, src/svg/stringstream.h: incorporated Bryce's number
+ serializing code (disabled for now, due to the impending release)
+
+ * src/dialogs/stroke-style.cpp, src/dialogs/sp-shape.cpp:
+ nuked unused variables
+
+2004-04-07 bulia byak <bulia@users.sourceforge.net>
+
+ * icons.svg: Alignment fix
+
+ * src/select-toolbar.cpp: Swapped rotate buttons
+
+ * share/tutorials/: Cleanup, added Russian translation of basic
+
+ * extension/extension.cpp extension/system.cpp extension/internal/ps.cpp
+ extension/implementation/script/cpp: Fixes to make non-ascii filenames work
+again
+
+ * src/verbs.cpp: Remove xpm icon that causes trouble on win32
+
+ * share/examples/: new gradient.svg, tiger.svgz, cleanup
+
+ * src/widgets/gradient-vector.cpp: Crash fix: loading new gradient into the
+ editor does not completely reset it
+
+ * share/icons/icons.svg: New dialog icons, draw tool icons, changed colors
+
+ * src/dialogs/align.cpp src/helper/bezier-utils.cpp: remove pjrm's debug
+output
+
+ * share/tutorials/: SVG cleanup: remove unused font properties, wrong radius
+ paths in ellipses (leftovers from old versions). Expanded & updated tips &
+tricks.
+
+ * file.cpp: Set uri on save in one place; save 'offcially' from here only
+
+ * system.cpp system.h: Remove redundant uri-setting on open and save, add
+ official arg to sp_module_system_save to prevent docname/docbase changing on
+ temporary saves
+
+ * many files: _() fixes, edits in labels, messages, tooltips, mnemonics
+
+ * src/inkscape.cpp: remove redundancy in error messages for failing to load
+prefs
+
+ * share/extensions src/extension/internal: Renaming file formats to include
+(*.ext)
+
+ * src/interface.cpp src/dialogs/filedialog.cpp: Transientize, make modal
+ open/save dialogs, ditto for warning overwrite and make it unresizeable
+
+ * src/dialogs/xml-tree.cpp: Do not deselect item on canvas when a
+non-selectable
+ thing is highlighted in xml editor
+
+ * src/sp-guide.cpp: Guide position updated after undo
+
+ * src/widgets/sp-xmlview-attr-list.cpp: Max length of viewable attributes
+ increased
+
+ * many files: Adib's svgostringstream patches to remove printfs
+
+ * src/selection-chemistry.cpp: Crash fix when pasting style to an object
+that
+ has none (e.g. group)
+
+ * src/knot.cpp: Knot dragging autoscrolls
+
+ * src/sp-text.cpp src/text-context.cpp: Cursor movements autoscroll
+
+ * src/desktop.h src/desktop.cpp: autoscrollspeed can be overridden in call
+to
+ sp_desktop_scroll_to_point
+
+ * src/text-context.cpp src/sp-text.cpp: Text cursor made inverse. Initial
+cursor
+ after click is no longer horizontal.
+
+ * src/helper/sp-ctrlline.cpp: Always-visible inversion for ctrlline
+
+ * src/libnrtype/nr-type-w32.cpp: Fix stretch and variant on win32
+
+ * src/widgets/gradient-vector.cpp: Undo fix; new stop takes average of its
+ neighbors' colors; is between stops even when the last stop is selected
+
+2004-04-06 Ted Gould <ted@gould.cx>
+
+ * src/file.cpp, src/dialogs/filedialog.cpp, src/extension/extension.cpp,
+ src/extension/system.cpp:
+ Moving code around so that the filename extension gets put on by
+ the extension that is saving the file. This adds a couple complications
+ in that the extension now needs to check for overwriting the file
+ and also set the document URI. Better overall, but a PITA.
+
+2004-04-05 njh <njh@mail.csse.monash.edu.au>
+
+ * debian/rules,debian/control: applied patch from Kees Cook to remove
+ obsolete libraries, and to tidy things up a tad.
+
+2004-04-04 Ted Gould <ted@gould.cx>
+
+ * src/main.cpp, src/extension/extension.cpp, src/extension/system.cpp:
+ Now the input autodetect will try the SVG filter if the autodetect
+ fails. This was done by the command line, but now it is done
+ everywhere.
+
+2004-04-04 MenTaLguY <mental@rydia.net>
+
+ * src/xml/repr-io.cpp, src/xml/repr.cpp, src/xml/repr.h:
+ Take the full list of document node children from libxml, and
+ append them in the correct order. This fixes bug #929348.
+
+ * src/xml/repr-io.cpp, src/xml/repr.cpp, src/xml/repr-private.h:
+ Added API for coping with comments at the root level (i.e. siblings
+ of the root XML node), and made corresponding changes to the repr-io
+ code. In theory this should be enough to preserve them upon loading,
+ though in practice it still doesn't appear to be working (bug #929348).
+ Is there some libxml thing we need to do?
+
+2004-04-04 Ted Gould <ted@gould.cx>
+
+ * a bunch of files
+ Sorry, I seem to be in some delay getting e-mail. Anyway, a few
+ files were changed to add in a new parameter 'dataloss' Basically
+ this signifies that a format was used to save that may not save
+ the whole document and thus, a pop-up is elevated on close to signal
+ that you might want to 'really save' this document.
+
+2004-04-03 Ted Gould <ted@gould.cx>
+
+ * share/extensions/svgz_input.inkmod, src/file.cpp,
+ src/extension/extension.cpp, src/extension/internal/svg.cpp:
+ Making it so that input extensions can specify the output extension
+ that gets used to save them. If this field isn't filled in, the value
+ gets set to NULL, and then the Save As dialog is used instead of
+ just trying to save.
+
+2004-04-03 Ted Gould <ted@gould.cx>
+
+ * src/file.cpp, src/main.cpp, src/extension/extension.cpp,
+ src/extension/extension.h, src/extension/system.cpp,
+ src/extension/internal/svg.cpp:
+ Fixing the output_extension flag to not be saved in a file, but also
+ to be able to be specified by the input module. Also, this fixes
+ the commandline processing of files to make them use the extension
+ system.
+
+2004-04-02 Ted Gould <ted@gould.cx>
+
+ * src/file.cpp, src/extension/db.cpp, src/extension/internal/svg.cpp:
+ Changing it so that SVG documents open and default to with
+ extension namespace. Also, autodetect is reenabled.
+
+2004-04-03 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/helper/bezier-utils.cpp (NewtonRaphsonRootFind): Fix my
+ previous commit.
+
+2004-04-02 Ted Gould <ted@gould.cx>
+
+ * share/extensions/svgz_output.inkmod, src/main.cpp, src/print.cpp,
+ src/extension/init.cpp, src/extension/implementation/script.cpp,
+ src/extension/implementation/script.h,
+ src/extension/internal/Makefile.am, src/extension/internal/ps-out.cpp,
+ src/extension/internal/ps-out.h, src/extension/internal/ps.cpp:
+ Fixing the commandline printing. This required fixing both the
+ print driver to handle the newer extensions stuff. It seems
+ happy now. I went ahead and implemented save as postscript
+ while I was at it.
+
+2004-04-02 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/helper/bezier-utils.cpp (NewtonRaphsonRootFind): Ensure that the
+ "improved" value is never worse than the previous guess.
+
+ * src/helper/bezier-utils.cpp:
+ Greater CodingStyle conformance, mainly whitespace changes.
+
+ * src/helper/bezier-utils.cpp (sp_bezier_fit_cubic_full):
+ Always reparameterize between generate_bezier and calc_max_error.
+ Switch from discouraged alloca (see man page) to g_new, at cost of
+ some extra g_free calls in the code.
+ (reparameterize): Do in-place modification.
+
+ * src/helper/bezier-utils-test.cpp:
+ Add tests for generate_bezier, sp_bezier_fit_cubic_full.
+ Change to a simpler test bezier.
+
+ * src/helper/bezier-utils.cpp (sp_darray_left_tangent,
+ sp_darray_right_tangent):
+ Switch to using just the two end points for calculating the gradient.
+ (The old code could sometimes cause g_warning's.)
+ Correct the documentation of requirements.
+ (sp_darray_center_tangent): Similarly remove the #if'ed out code for
+ looking at more than two points.
+
+2004-03-31 Ted Gould <ted@gould.cx>
+
+ * src/interface.cpp: Changing the default size so that it matches
+ the default template size. This way, for blank documents, the
+ window doesn't open and then resize.
+
+2004-03-31 Ted Gould <ted@gould.cx>
+ * src/file.cpp, src/dialogs/filedialog.cpp, src/extension/db.cpp,
+ src/extension/db.h, src/extension/system.cpp:
+ A bunch of changes for Bulia's bug 925875. Basically now the
+ save dialog remembers which extension you've used. This also
+ means that save works with non-standard extensions. Also, it
+ will add extensions for you if you didn't put them on. Finally,
+ the error dialog doesn't come up if you hit cancel in the
+ 'Save As...' dialog. Whew!
+
+ * src/preferences-skeleton.h: Added in settings to make the save
+ extension global, along with whether or not the files should have
+ extensions tacked on the end of them.
+
+2004-03-31 Ted Gould <ted@gould.cx>
+
+ * src/interface.cpp, src/interface.h, src/file.cpp:
+ Adding a cute little dialog to tell you if you are about to
+ overwrite a file you want to keep. This fixes bug #911237
+
+2004-03-30 Jon Phillips <kidproto@users.sf.net>
+
+ * share/icons/icons.svg src/interface.cpp src/verbs.cpp src/verbs.h:
+ Added rest of icons for the menu. I think they are a good start.
+ There still needs to be continuity between styles, but at least
+ all needed icons are present. I didn't create icons for elements
+ that are going to be removed eventually.
+
+ * share/tutorials/tipsandtricks.svg src/help.cpp src/interface.cpp:
+ Added this tutorial so that people can consolidate their information
+ onto this page.
+
+2004-03-30 Ted Gould <ted@gould.cx>
+
+ * src/file.cpp, src/file.h, src/dialogs/filedialog-win32.cpp,
+ src/dialogs/filedialog.cpp, src/dialogs/filedialog.h
+ src/extension/system.cpp, src/extension/system.h,
+ src/extension/implementation/script.cpp:
+ Making all of the file operations have lists of the extensions
+ that can be used to save and open. This also fixes the bug
+ which talks about mis-saving file without an error - there is
+ an error message now. Probably not the most clear, but you
+ won't miss it.
+
+2004-03-29 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/helper/bezier-utils-test.cpp: Finish the sp_bezier_fit_cubic test.
+
+ * src/dyna-draw-context.cpp, src/mod360.cpp, src/mod360.h,
+ src/Makefile.am: Move mod360 to new files mod360.cpp, mod360.h.
+ Add unit test for it.
+
+2004-03-28 Bryce Harrington <bryce@bryceharrington.com>
+
+ * inkscape.cpp, inkscape.h, xml/repr-io.cpp, xml/repr.h: Adding
+ better error handling for the situation where the
+ preferences.xml file is not successfully loaded. In this case,
+ we want to suppress saving it, lest we overwrite the file with
+ the default skeleton preferences.
+
+2004-03-28 Jon Phillips <jon@users.sourceforge.net>
+
+ * src/interface.cpp src/select-toolbar.cpp src/verbs.cpp src/verbs.h:
+ Changed rotate verb to be SP_VERB_OBJECT_ROTATE_90_CW so that I can
+ now install SP_VERB_OBJECT_ROTATE_90_CCW.
+
+ * share/icons/icons.svg src/interface.cpp src/select-toolbar.cpp
+ src/selection-chemistry.cpp src/selection-chemistry.h
+ src/verbs.cpp src/verbs.h: Added rotation 90 degrees CCW to the menu,
+ icons, and the interface. It was a pretty simple thing to do but was
+ not available on the interface.
+
+2004-03-28 MenTaLguY <mental@rydia.net>
+
+ * src/sp-gradient.cpp: request SP_OBJECT_MODIFIED_FLAG if gradient stops
+ are added or removed
+
+2004-03-27 bulia byak <bulia@users.sourceforge.net>
+
+ * src/main.cpp: Removed redundancy in error messages, reworded some
+
+ * src/verbs.cpp src/toolbox.cpp src/nodepath.cpp src/inkscape.cpp
+ src/extension/internal/ps.cpp src/main.cpp: Typos, reported by Arpad Biro
+
+ * AUTHORS: Added John Cliff, Fred (long overdue), Adib
+
+ * src/widgets/gradient-vector.cpp: John Cliff: multistage gradient editor
+
+ * src/splivarot.cpp src/style.cpp src/xml/repr-util.cpp src/sp-polygon.cpp:
+ Adib's svgostringstream patches
+
+ * src/toolbox.cpp: All default buttons work correctly with undo, use freezing to
+ prevent double changes; tooltip edits, formatting; defocusing on all widgets
+
+ * src/display/nr-arena-image.cpp: Tentative fix for 906376: image always uses
+ _P_P_P_ compositing
+
+ * src/dialogs/item-properties.cpp: Refixing the slider 0.99 problem properly,
+ reported by simarilius
+
+ * src/help.cpp src/help.h src/interface.cpp: Expanded and split tutorial, all
+ tutorials in submenu
+
+ * src/sp-text.cpp: Do not write dx/dy if they only contain 0s
+
+ * src/verbs.cpp src/verbs.h src/splivarot.cpp src/splivarot.h src/shortcuts.cpp:
+ Inset/outset by pixels: commands, keys
+
+ * src/preferences-skeleton.h: Default nudge 2pt
+
+ * src/event-context.cpp: Increased accelerated-scroll delay
+
+ * src/sp-text.cpp,h src/text-context.cpp: Clicking positions cursor closest to
+ the click point
+
+ * src/extension/internal/ps.cpp: Print dialog transient; Enter activates print;
+ patches from sodi to flush stream and add boundingBox to PS output
+
+ * src/dialogs/xml-tree.cpp: XML editor watches desktop change
+
+ * src/sp-root.cpp: Fix from sodi: default preserveAspectRatio value
+
+ * src/libnrtype/nr-type-w32.cpp: Fix for 915440 (from sodi)
+
+2004-03-27 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/dyna-draw-context.cpp (sp_dyna_draw_context_set):
+ Tweak angle setting: prefer 0.0 instead of 360.0.
+
+ * src/dyna-draw-context.h, src/dyna-draw-context.cpp: Cleanup:
+ Greater conformance to CodingStyle. Mostly whitespace changes.
+
+2004-03-24 Ted Gould <ted@gould.cx>
+
+ * src/extension/db.[ch]: Adding in functions to get lists of
+ input and output extensions for the file dialogs
+
+2004-03-25 Alexander Clausen <alex@skip86.com>
+
+ * src/inkview.cpp Fix inkview crash on startup
+
+2004-03-24 Ted Gould <ted@gould.cx>
+
+ * Minor changes to get distcheck to work.
+
+2004-03-24 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/draw-context.h, src/draw-context.cpp: Cleanup: greater
+ conformance to CodingStyle. Mostly whitespace changes.
+
+2004-03-23 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/widgets/sp-widget.h, src/widgets/sp-widget.cpp
+ (sp_widget_new_repr): Remove this unused function.
+
+ * src/libnrtype/nr-rasterfont.cpp (nr_rasterfont_ensure_glyph_slot):
+ Address compiler warning.
+
+ * src/seltrans.cpp (sp_sel_trans_ungrab): Disable the persistent
+ snapping stuff added 2004-02-19.
+
+ * src/desktop-events.cpp (sp_dt_ruler_event): Minor cleanup.
+
+2004-03-19 bulia byak <bulia@users.sourceforge.net>
+
+ * src/selection-chemistry.cpp: Prevent it from scaling above 1e6 pt
+
+ * src/preferences-skeleton.h src/dialogs/dialog-events.cpp: "Skip taskbar" hint
+ for dialogs
+
+ * src/selection-chemistry.cpp: Patch for copying gradients from johncliff
+
+ * src/event-context.cpp: Increased accelerated-scroll delay
+
+ * nr-pixops.h: INK_COMPOSE: Always-visible inversion compose method
+
+ * sp-gradient.cpp: Default linear gradient goes through center
+
+ * nr-plain-stuff.cpp: Tweaked checkerboard size and color
+
+ * gradient-position.cpp: Inverse colors for handles, axes, and bbox; dragging
+ snaps with Ctrl; radius handle in radial gradient
+
+ * src/sp-rect.cpp src/sp-path.cpp: Finished fixing 918478
+
+ * src/gradient-chemistry.cpp src/widgets/gradient-vector.cpp: Fix for 902319,
+ remove some debug output
+
+ * src/toolbox.cpp: Polygon mode off by default
+
+ * src/toolbox.cpp: Crash fix, reported by David Christian Berg
+
+ * src/radial.h src/nodepath.cpp: Moved Radial:: to nodepath.h for now
+
+ * stringstream.h: New stream class for serialization
+
+ * svg-path.cpp: Use new stream class
+
+ * src/toolbox.cpp: Smarter Sharpness, r1 and r2 undistinguishable for the user
+
+ * src/svg/svg-path.cpp: Restore mising break (fixes smearing for paths with h and v)
+
+ * src/dialogs/align.cpp src/dialogs/transformation.cpp: Reverse pjrm's change in delete
+ handlers (fixes crash on closing)
+
+ * src/splivarot.cpp: Simplify threshold depends on selection size, not item size
+
+ * src/select-toolbar.cpp: Reordered select toolbar buttons
+
+ * icons.svg: Reworked selector toolbar icons
+
+2004-03-17 Ted Gould <ted@gould.cx>
+
+ * src/extension/db.h, src/extension/db.cpp, src/extension/extension.cpp,
+ src/extension/system.cpp: Changing the database stuff to be C++
+ object oriented (actually it wasn't OO before). But this helps
+ as we start to connect to the File dialogs.
+
+2004-03-16 Ted Gould <ted@gould.cx>
+
+ * src/file.cpp,
+ src/file.h,
+ src/extension/Makefile.am,
+ src/extension/extension.cpp,
+ src/extension/extension.h,
+ src/extension/menu.cpp,
+ src/extension/system.cpp,
+ src/extension/implementation/implementation.cpp,
+ src/extension/implementation/implementation.h,
+ src/extension/implementation/script.cpp,
+ src/extension/implementation/script.h:
+ A few of changes.
+ 1) removed the extensions menu stuff from the build as it seems
+ no one is using it.
+ 2) Changing Filter to Effect internally to the extensions
+ 3) Adding an exception to the save and open extensions to
+ signal a failure. There is no way to test this currently,
+ but it doesn't break anything.
+
+2004-03-16 jon phillips <kidproto@users.sf.net>
+
+ * share/icons/icons.svg: Added a couple of icons but haven't linked them
+ to the code yet.
+
+ * share/tutorials/elementsofdesign.svg: Added the first part of the
+ basic graphics for this tutorial. I added boxes for the rest, which
+ I need to finish. I need to use Bulia's tutorial top part to keep
+ the tutorials consistent.
+
+2004-03-16 bulia byak <bulia@users.sourceforge.net>
+
+ * nr-type-directory.cpp: Cache NRTypeFaceDef *, not NRTypeFace *, fixes 916155
+
+ * src/arc-context.cpp src/arc-context.h src/event-context.h src/rect-context.cpp
+ src/spiral-context.cpp src/spiral-context.h src/star-context.cpp
+ src/star-context.h src/toolbox.cpp: John Cliff's patch #2 for shape tools,
+ with my fixes
+
+ * icons.svg: Tweaks: stroke to curve, flip/rotate, text
+
+ * src/sp-ellipse.cpp: Fixes: SPArc never writes <ellipse>; in d=, no L to the center when start==end
+
+ * src/nodepath.cpp: Fix for 916119
+
+ * src/widgets/icon.cpp: Remove not-enough-room-for-icon warning
+
+ * src/dialogs/text-edit.cpp src/dialogs/dialog-events.cpp: Do not eat key events in the text view
+
+2004-03-15 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/widgets/gradient-vector.cpp
+ (sp_gradient_vector_widget_load_gradient, sp_gradient_vector_color_dragged):
+ Cleanup: Convert to table-driven style.
+
+ * src/style.cpp (sp_style_read_from_object): Additional check.
+
+ * src/rect-context.cpp: Cleanup: Coding Style conformance,
+ move declarations to first use.
+
+ * src/sp-gradient.cpp (sp_gradient_rebuild_vector): Add assertion.
+
+2004-03-15 Ted Gould <ted@gould.cx>
+
+ * src/extension/extension.cpp: Adding in some comments for my
+ previous checkin and also adding in the integer functions that
+ I forgot (but aren't used yet).
+
+2004-03-14 Jon Phillips <jon@jonphillips.info>
+
+ * src/toolbox.cpp src/verbs.cpp src/interface.cpp
+ share/icons/icons.svg: Added all the icons in the VIEW
+ menu. They might need some tweaking, but its a start. Also
+ cleaned up some coding conventions for these files.
+
+2004-03-14 Bryce Harrington <bryce@bryceharrington.com>
+
+ * src/view.cpp: Adding an accumulator function for checking
+ return values of shutdown signal handlers, so that if any one of
+ them returns a value indicating an abort of the shutdown, the
+ shutdown process will be aborted.
+
+2004-03-14 Ted Gould <ted@gould.cx>
+
+ * src/extension/extension.cpp, src/extension/extension.h,
+ src/extension/internal/ps.cpp: Adding in parameters for extensions.
+ This will make it so that extensions can have easy settings that
+ are used. They are not currently persistent - but that will be
+ a future feature.
+
+2004-03-14 MenTaLguY <mental@rydia.net>
+
+ * src/ast/*: more AST sketching
+
+ * src/xml/repr.cpp: existing listeners were getting dropped when new
+ listeners were added; this fix makes the behavior documented in
+ bug #896706 a little worse, but fixes bug #915913
+
+ * src/sp-use.cpp: SPUse does not need to manually detach its child
+ anymore, so now it doesn't
+
+ * src/sp-object.cpp: detach our SPRepr listener before we start
+ releasing our children, which makes listener removal faster (since
+ we are then always removing from the beginning of the listener
+ list -- i.e. removing in roughly the order in which they were added)
+ This should help bug #896706 a little more.
+
+ * src/event-context.cpp, src/node-context.cpp, src/rect-context.cpp,
+ src/sp-object.cpp, src/sp-offset.cpp, src/dialogs/desktop-properties.cpp,
+ src/dialogs/xml-tree.cpp, src/widgets/sp-widget.cpp,
+ src/widgets/sp-xmlview-attr-list.cpp, src/widgets/sp-xmlview-tree.cpp,
+ src/xml/repr-private.h, src/xml/repr-util.cpp, src/xml/repr.cpp,
+ src/xml/repr.h:
+ SPObjects now ::write() immediately on attribute changes, if those
+ changes are "interactive" (i.e. from the XML editor); this fixes
+ the problem with SPStar's points= attribute updating (bug #910142)
+
+ * src/sp-clippath.cpp, src/sp-mask.cpp, src/sp-namedview.cpp,
+ src/sp-root.cpp, src/sp-symbol.cpp:
+ simplified SPObject::remove_child handlers, focusing particularly
+ on making them not rely on the repr still being attached
+
+ * src/sp-object.cpp: SPObject::remove_child is now invoked after
+ the repr has been removed (fixes bug #916188)
+
+ * src/text-context.cpp: don't unparent the repr if it's already
+ been unparented (fixes bug #915435)
+
+2004-03-14 rejon <jon@protofunk.org>
+
+ * src/toolbox.cpp share/icons/icons.svg: Cleaned the file up to coding
+ standards. I also have begun to add new icons to our program.
+
+2004-03-13 MenTaLguY <mental@rydia.net>
+
+ * src/document.cpp: bumped the update limit on documents a bit
+ (bug #896076)
+
+ * src/sp-text.cpp: SPString now copes with parents that don't have style
+ information (comment on bug #896706)
+
+ * src/xml/repr.cpp, src/xml/repr-private.h:
+ adding listeners is now O(1), which should make files which make heavy
+ use of <use> more tolerable; I decided to add an extra "last" pointer
+ rather than just prepending to the list (which would have reversed
+ its order, and make the common case for removal traverse the entire
+ list -- removal is still O(N) overall, but at least this way we usually
+ hit the best-case) (bug #896076)
+
+2004-03-11 bulia byak <bulia@users.sourceforge.net>
+
+ * src/sp-item.h src/sp-item.cpp: Restore i2root_affine: same as i2doc but
+ without c2p, fixes 914039
+
+ * src/selection-chemistry.cpp: Grouping z-order fix
+
+ * src/path-chemistry.cpp: Combine/Break Apart fixes: preserve z-order and
+ parent, diagnostics, multiple selected, cleanup, fixes
+
+ * src/libnrtype/nr-type-directory.cpp: Fix win32 memory hog (unfreed
+ g_ascii_tolower in ink_strstr), implement caching of looked-up faces
+
+2004-03-10 bulia byak <bulia@users.sourceforge.net>
+
+ * src/sp-offset.cpp: Coalesce threshold depends on item size (less transform),
+ guarding against invalid item bbox, comments
+
+ * src/sp-text.cpp: TODO comment for effective_dx/dy
+
+ * src/splivarot.cpp src/preferences-skeleton.h: Inset/Outset handle multiple
+ selections, preserve z-order and grouping; Simplify handles multiple
+ selections, preserves z-order and grouping, threshold taken from prefs,
+ accelerated
+
+ * src/node-context.cpp src/text-context.cpp: Disregard groups when clicking
+
+ * src/shortcuts.cpp: Ctrl+/ for division, ctrl-alt-/ for slice (cut path),
+ bigger window for keys
+
+ * src/rect-context.cpp src/rect-context.h: Knotholder, signals and listeners,
+ selection by click, tolerance, Esc deselects
+
+ * src/toolbox.cpp: Rect toolbar: Spinbuttons cosmetics, keys, defocusing,
+ tooltips, fixes
+
+ * src/shortcuts.cpp: Ctrl+e zooms to window, export is ctrl+shift+e now
+
+ * src/selection-chemistry.cpp: Z-order fixes: Raise rewritten, diagnostics,
+ relative raise/lower only for overlapping objects
+
+ * src/verbs.cpp: raise/lower commands named more consistently
+
+ * src/sp-item.cpp src/sp-item.h: Sorting function for items
+
+ * src/selection-chemistry.cpp: fix for 910017
+
+ * src/splivarot.cpp: Remove fill for slice
+
+2004-03-09 rejon <jon@protofunk.org>
+
+ * samples: Moved the contents of samples into the proper share dirs.
+
+ * share/tutorials/tutorial.svg: Moved the default tutorial.svg to this
+ location. It was in the wrong place.
+
+ * share/tutorials/elementsofdesign.svg src/help.cpp src/interface.cpp:
+ Added the textual gloss of this new tutorial. I need to add some
+ more graphics to it. But I just wanted to first of all flesh out
+ the document so that others could chunk in graphics and so
+ forth.
+
+2004-03-09 MenTaLguY <mental@rydia.net>
+
+ * src/ast/*: more AST work
+
+ * src/sp-text.cpp: fixed uninitialized variable
+
+ * src/sp-text.cpp: rewrote recursive character-counting algorithm
+
+2004-03-08 MenTaLguY <mental@rydia.net>
+
+ * src/sp-text.cpp: fixes for initialization and updating of SPString
+
+2004-03-07 MenTaLguY <mental@rydia.net>
+
+ * src/sp-item.cpp: the item's arenaitems shouldn't be destroyed until
+ its children have had a chance to clean up
+
+ * src/sp-object.cpp: fix sp_object_reorder() to correctly handle
+ next == NULL
+
+ * src/sp-item.cpp, src/sp-object-group.cpp, src/sp-object-repr.cpp,
+ src/sp-object.cpp, src/sp-object.h, src/sp-text.cpp, src/sp-use.cpp:
+ finished transition to SPObject::children
+
+ * src/sp-text.cpp: reworked SPTSpan a bit so that it copes with
+ the child changes a little better with respect to SPTSpan::string
+
+2004-03-06 MenTaLguY <mental@rydia.net>
+
+ * src/ast/*: initial work on AST code
+
+ * src/libnr/nr-convex-hull-ops.h, src/libnr/nr-convex-hull.h,
+ src/libnr/nr-matrix-fns.h, src/libnr/nr-maybe.h,
+ src/libnr/nr-rect-ops.h:
+ basic cleanups and work on NR::ConvexHull
+
+ * src/document.cpp, src/gradient-chemistry.cpp,
+ src/selection-chemistry.cpp, src/selection.cpp, src/sp-clippath.cpp,
+ src/sp-defs.cpp, src/sp-defs.h, src/sp-gradient.cpp, src/sp-gradient.h,
+ src/sp-item-group.cpp, src/sp-item-group.h, src/sp-item.cpp,
+ src/sp-item.h, src/sp-mask.cpp, src/sp-namedview.cpp,
+ src/sp-object-group.cpp, src/sp-object-group.h, src/sp-object-repr.cpp,
+ src/sp-object.cpp, src/sp-object.h, src/sp-pattern.cpp, src/sp-pattern.h,
+ src/sp-root.cpp, src/sp-text.cpp, src/sp-text.h,
+ src/widgets/gradient-vector.cpp:
+
+ children are now uniformly handled by SPObject
+
+2004-03-05 bulia byak <bulia@users.sourceforge.net>
+
+ * src/desktop.cpp src/preferences-skeleton.h: Autoscroll now accepts
+ distance-from-edge parameter, may be negative, default is
+ options.autoscrolldistance = -10
+
+ * src/style.cpp src/style.h src/document.cpp: Store uri for paintsever and
+ serialize it back instead of paintserver id. find_items functions do not find
+ insensitive items by default.
+
+ * src/sp-item.cpp: tentative fix: do not remove style attribute if
+ write_difference fails or object has no parent
+
+ * src/desktop-events.cpp: transientize guide dialog
+
+ * splivarot.cpp, livarot/*: fred's new rasterizer, fixes
+
+ * src/widgets/gradient-vector.cpp: fix 906301
+
+ * src/dialogs/text-edit.cpp: do not rebuild text of object if not changed in the
+ dialog, fixes 906279
+
+ * src/selection.cpp: suppress a few meaningless warnings
+
+ * src/xml/repr.cpp: fix for 907056, 906222
+
+ * about.svg: redrawn from rejon's draft, with a highlight on lauris :)
+
+ * libnrtype: Full font-variant, font-weight, font-stretch support. Better family
+ and style matching algorithm. Support for generic families and multiple family
+ specifications. Xft sees all font styles, reads pfa fonts again. Font styles
+ are sorted in the list and use the native style names with Xft.
+
+ * src/sp-text.cpp,h src/text-context.cpp: Keys, function for adjusting linespacing
+
+ * keys.xml,svg,html: Linespacing keys
+
+2004-03-05 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/draw-context.cpp (fit_and_split,
+ sp_pencil_context_root_handler, spdc_add_freehand_point):
+ * src/dyna-draw-context.cpp (sp_dyna_draw_timeout_handler,
+ sp_dyna_draw_context_root_handler, fit_and_split_line,
+ fit_and_split_calligraphics):
+ Cleanups.
+
+ * src/Makefile.am: Fix missing backslash at end of line.
+
+2004-03-05 Ted Gould <ted@gould.cx>
+ * src/extension/impelementation/implementation.cpp,
+ src/extension/impelementation/implementation.h,
+ src/extension/impelementation/script.h,
+ src/extension/impelementation/script.cpp:
+ Adding in some more comments and doing some general cleanup
+ of the code. It is getting better everyday.
+
+2004-03-05 Ted Gould <ted@gould.cx>
+
+ * src/Makefile.am: Adding back in inkview. This was fixed by
+ Bob, but he didn't add it back in. It's back in the build now.
+ Thanks Bob for fixing my mistakes!
+
+2004-03-04 Ted Gould <ted@gould.cx>
+
+ * src/extension/extension.h: Cleaning up and adding comments.
+
+2004-03-04 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/livarot/Shape.cpp (Distance): Convert to DistanceLE(p, d)
+ function returning true iff Distance(p) <= d. (Saves 7% of total
+ inkscape CPU time for "big scribbles" test cases.) Update callers.
+
+2004-03-04 Ted Gould <ted@gould.cx>
+
+ * src/extension/system.cpp, src/extension/system.h,
+ src/extension/extension.cpp, src/extension/extension.h,
+ src/extension/init.cpp, src/extension/internal/gnome.cpp,
+ src/extension/internal/ps.cpp, src/extension/internal/svg.cpp,
+ src/extension/internal/win32.cpp:
+ Making it so that an implementation is a require element to
+ build an extension. This means that checking for one in every
+ other function is not required. Makes a touch more sense.
+
+2004-03-04 Jon A. Cruz <jon@joncruz.org>
+
+ * src/file.cpp, src/interface.cpp, src/inkscape-stock.cpp,
+ src/sp-image.cpp, src/helper/png-write.cpp,
+ src/widgets/icon.cpp:
+ Fixed filename/URI translation to keep UTF-8 internally.
+
+2004-03-03 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/seltrans.cpp (sign):
+ New function to replace `FOO / fabs(FOO)' expressions in various places.
+ * src/seltrans.cpp (sp_sel_trans_stretch_request, sp_sel_trans_stretch):
+ Fix #906221. Also change the behaviour to allow growing.
+
+ * src/libnr/nr-scale.h: operator[]: new versions returning writable reference.
+
+ * src/desktop-snap.h, src/desktop-snap.cpp
+ (sp_desktop_vector_snap_list):
+ Change final arg from NR::Point to NR::scale. Update callers.
+
+2004-03-02 Ted Gould <ted@gould.cx>
+
+ * src/Makefile.am, src/print.cpp,
+ src/extension/db.cpp, src/extension/db.h,
+ src/extension/extension.cpp, src/extension/extension.h,
+ src/extension/system.cpp, src/extension/system.h,
+ src/extension/init.cpp, src/extension/menu.cpp,
+ src/extension/impelementation/Makefile.am,
+ src/extension/impelementation/implementation.cpp,
+ src/extension/impelementation/implementation.h,
+ src/extension/impelementation/script.h,
+ src/extension/impelementation/script.cpp,
+ src/extension/internal/gnome.cpp, src/extension/internal/gnome.h,
+ src/extension/internal/ps.cpp, src/extension/internal/ps.h,
+ src/extension/internal/svg.cpp, src/extension/internal/svg.h,
+ src/extension/internal/win32.cpp, src/extension/internal/win32.h:
+
+ Turning the extensions stuff into having C++ objects instead
+ of GTK+ objects. This affected a lot of files.
+
+2004-03-02 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/helper/curve.h, src/helper/curve.cpp
+ (sp_curve_new_from_foreign_bpath and many static functions):
+ Mark various ArtBpath[] parameters as not being written to.
+
+ * src/draw-context.cpp (fit_and_split): Fix to fix to edge case in
+ freehand tool. (Hopefully to be replaced by different approach.)
+
+ * src/dialogs/transformation.cpp (sp_transformation_move_apply,
+ sp_transformation_scale_apply, sp_transformation_rotate_apply,
+ sp_transformation_skew_apply):
+ Remove unused `copy' parameter. Update caller.
+
+ * src/dialogs/align.cpp, src/dialogs/transformation.cpp: Cleanups.
+
+ * src/display/nr-arena-shape.cpp (nr_arena_shape_set_path):
+ Remove affine argument (all current callers were passing NULL) and
+ unused `lieutenant' argument. Update callers.
+
+ * src/selection-chemistry.h, src/selection-chemistry.cpp
+ (sp_selection_delete, sp_selection_duplicate, sp_edit_clear_all,
+ sp_edit_select_all, sp_selection_group, sp_selection_ungroup,
+ sp_selection_raise, sp_selection_raise_to_top, sp_selection_lower,
+ sp_selection_lower_to_bottom, sp_selection_cut, sp_selection_copy,
+ sp_selection_paste, sp_selection_paste_style):
+ Remove unused parameters. Update callers.
+
+2004-03-01 Nathan Hurst <njh@mail.csse.monash.edu.au>
+
+ * src/draw-context.cpp: Fixed edge case in freehand tool. Added
+ comment about curve fitting.
+
+2004-03-01 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/sp-guide.cpp (sp_guide_set_property, sp_guide_get_property):
+ Minor cleanups.
+
+ * src/interface.h, src/interface.cpp
+ (sp_ui_new_view, sp_ui_new_view_preview): Make static.
+
+ * src/dyna-draw-context.cpp (sp_ddc_defaults):
+ * src/rect-context.cpp (sp_rc_defaults):
+ Cleanup: Use table and loop instead of copy&paste.
+
+ * configure.in: If -Wno-unused-parameter isn't recognized (g++ 3.2 and
+ earlier) then use -Wno-unused.
+
+ * src/libnr/nr-point.h: NR::Point: Add explicit copy constructor and
+ operator= in the hope of fixing #907059.
+
+ * src/desktop-events.cpp (sp_dt_ruler_event): NR::Point'ification.
+
+ * src/selection.cpp (sp_selection_item_selected):
+ * src/seltrans.cpp (sp_sel_trans_stretch_request):
+ * src/display/nr-arena-shape.cpp (shape_run_A8_OR):
+ * src/livarot/PathStroke.cpp (DoJoin):
+ * src/livarot/ShapeMisc.cpp (ReFormeBezierTo):
+ Address compiler warnings.
+
+2004-02-28 Jon Phillips <jon@protofunk.org>
+
+ * share/*: Move extensions, icons, and made a new folder screens
+ for screens that are pulled up in using inkscape. Please test
+ this heavily as it implements the most troublesome chunks of the
+ directory reorganization.
+
+ * Makefile.am, Makefile.mingw, config.h.mingw, configure.in:
+ Changed to coincide with the new changes.
+
+2004-02-28 Nathan Hurst <njh@mail.csse.monash.edu.au>
+
+ * src/nodepath.cpp,h: Moved radial to class Radial. Moved
+ NodePath into namespace Path and partially classified.
+
+2004-02-28 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/nodepath.cpp: Mark several functions as static.
+
+ * src/dialogs/stroke-style.cpp: Rename DEBUG_MARKERS ifdef to
+ WITH_MARKER_GUI, and make more things conditional on it.
+ (Fixes failing assertion for the !defined case.)
+
+2004-02-27 Alexander Clausen <alex@skip86.com>
+
+ * src/desktop-events.cpp: fix my last fix *sigh*
+
+ * src/inkview.cpp: fix inkview crash when none of the files
+ on commandline exist, add very basic error reporting
+
+2004-02-27 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/dialogs/stroke-style.cpp (sp_stroke_style_set_marker_buttons):
+ Cleanup: restructure.
+
+ * src/dialogs/Makefile.am: in-dt-coordsys.cpp, in-dt-coordsys.h:
+ New files.
+ * src/dialogs/xml-tree.cpp (set_dt_select): Fix bug when clicked on a
+ shape that's a descendent of a <defs> node: don't try to select it
+ in the canvas.
+
+2004-02-26 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/dialogs/stroke-style.cpp:
+ Fix: free marker_xpm[i] instead of marker_xpm.
+ Misc cleanups.
+
+ * src/Makefile.am: New files extract-uri.cpp, extract-uri.h.
+ New unit test extract-uri-test.cpp.
+ * src/style.cpp (extract_uri): Move to src/extract-uri.cpp, and fix.
+
+ * src/Makefile.am (inkscapelib_src):
+ marker-status.h, marker-status.cpp: New files.
+ * src/dialogs/stroke-style.cpp, src/sp-shape.cpp, src/style.cpp:
+ Change marker debugging status messages from conditional g_message
+ to unconditional marker_status call.
+
+ * src/dialogs/stroke-style.cpp (marker_id_to_string):
+ Remove unused function.
+
+2004-02-24 Alexander Clausen <alex@skip86.com>
+
+ * src/desktop-events.cpp: Fix crash when opening the guide dialog for
+ the second time
+
+2004-02-24 bulia byak <bulia@users.sourceforge.net>
+
+ * src/helper/sodipodi-ctrlrect.cpp: A smart always-visible inversion for ctrlrect border
+
+ * src/select-toolbar.cpp: Fix for 873723
+
+ * src/style.h src/style.cpp: write_difference only writes what is .set in the target style
+
+ * src/selection-chemistry.cpp: Paste style merges the style of the clipboard
+ with the object's current style
+
+ * src/xml/repr-io.cpp: Do not cut leading/trailing whitespace on text nodes,
+ only reject all-whitespace nodes
+
+ * src/pixmaps/handles.xpm src/seltrans.cpp src/knot.cpp src/nodepath.cpp
+ src/helper/sodipodi-ctrl.cpp: Changed xor compositing for ctrls, made seltrans
+ handles inverse, tweaked knot colors
+
+ * doc/keys-html.xsl doc/keys.html: keys.html now validates
+
+ * src/desktop.cpp src/desktop.h: New function to autoscroll desktop so a point
+ becomes visible
+
+ * src/rubberband.cpp src/select-context.cpp src/nodepath.cpp: Use the new
+ function to scroll desktop to a point
+
+ * src/desktop.cpp src/preferences-skeleton.h: options.autoscrollspeed
+
+2004-02-24 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/libnr/nr-matrix.h: Add `explicit' to Matrix constructors
+ from rotate/scale/translate, to reduce the number of mysterious
+ implicit conversions used in client code.
+ Don't #include nr-rotate-ops.h, nr-scale-ops.h, nr-translate-ops.h.
+
+ * src/selection-chemistry.cpp (sp_selection_apply_affine):
+ Change final argument from double[6] to NR::Matrix.
+ Update callers.
+ (sp_selection_scale_relative): Change from dx,dy to NR::scale argument.
+ Update callers.
+ (sp_selection_scale, sp_selection_scale_times): Cleanup.
+
+ * src/libnr/Makefile.am:
+ New files nr-rotate-test.cpp, nr-scale-test.cpp, nr-translate-test.cpp.
+ * src/libnr/nr-matrix-test.cpp: Move lots of things to the new files.
+ Add tests for the operator* additions of 2004-02-23.
+ Don't #include .cpp files where linking against them suffices.
+
+ * src/livarot/Makefile.am (Path_test_LDADD): Fix order of libs.
+
+ * src/select-toolbar.cpp (sp_object_layout_any_value_changed):
+ NR::Matrix'ification.
+
+2004-02-23 MenTaLguY <mental@rydia.net>
+
+ * src/selection-chemistry.cpp, src/selection-chemistry.h,
+ src/seltrans.cpp, src/seltrans.h, src/verbs.cpp,
+ src/dialogs/transformation.cpp, src/libnr/nr-point-fns.h,
+ src/libnr/nr-point.h, src/libnr/nr-rect.h: more NRPoint removal
+
+2004-02-23 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/sp-item-transform.cpp (sp_item_rotate_rel):
+ Use NR::Rect and .midpoint.
+
+ * src/dropper-context.cpp (sp_dropper_context_root_handler):
+ * src/sp-text.cpp (sp_string_set_shape):
+ Cleanup: use translate rather than setting individual matrix elements.
+
+ * src/libnr/nr-matrix-ops.h (operator*: Matrix*rotate, translate*scale,
+ scale*translate, Matrix*scale): New functions.
+
+2004-02-22 Ted Gould <ted@gould.cx>
+
+ * src/extension/Makefile.am, src/extension/implementation/Makefile.am,
+ src/Makefile.am, po/POTFILES.in, po/*.po (because of previous change):
+ Okay, I screwed up. Here are some distcheck fixes for various
+ things. Still not entirely clean. But these are much closer
+ than we were.
+
+2004-02-22 Ted Gould <ted@gould.cx>
+
+ * src/modules -> src/extensions:
+ Changing the directory name so that it fits the new naming
+ conventions that we're working with.
+
+2004-02-23 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/desktop.cpp (sp_desktop_init, sp_desktop_set_display_area):
+ * src/libnrtype/nr-font.cpp (nr_font_generic_glyph_outline_get):
+ * src/libnrtype/nr-typeface.cpp (nr_font_new_default):
+ Don't use implicit NR::Matrix conversions.
+
+ * src/libnr/nr-translate-ops.h (operator!=): new.
+
+ * src/sp-item.h, src/sp-item.cpp (sp_item_bbox_desktop):
+ Add NR::Rect version.
+
+ * src/inkview.cpp: Address compiler warning: declare is_jar iff it is
+ defined, i.e. #ifdef WITH_INKJAR.
+
+ * src/desktop-snap.cpp, src/desktop.h, src/object-edit.cpp,
+ src/sp-root.cpp, src/livarot/PathConversion.cpp,
+ src/widgets/sp-color-wheel.cpp:
+ Add some #include's to reduce how much nr-matrix.h must pull in.
+
+ * src/desktop-affine.cpp, src/knotholder.cpp,
+ src/desktop-events.cpp, src/nodepath.cpp, src/sp-ellipse.cpp,
+ src/sp-image.cpp, src/sp-item-notify-moveto.cpp, src/sp-rect.cpp,
+ src/text-context.cpp:
+ #include libnr/nr-matrix-ops.h.
+
+2004-02-22 Ted Gould <ted@gould.cx>
+
+ * doc/Makefile.am, po/POTFILES.in: keeping these up to date
+ for distchecks.
+
+2004-02-21 Ted Gould <ted@gould.cx>
+
+ * extensions/txt2svg.inkmod, extensions/txt2svg.pl:
+ Adding a script that Bryce wrote that will take in text. Plus
+ the inkscape module file to make it so that you can open text
+ files in Inkscape.
+
+2004-02-21 MenTaLguY <mental@rydia.net>
+
+ * src/xml/repr-util.cpp, src/xml/repr.h: added RDF namespace by default
+
+ * src/inkscape.cpp, src/inkscape.h, src/widgets/sp-widget.cpp,
+ src/inkview.cpp: nuked global 'inkscape' variable and replaced
+ it with a module-local variable and an accessor function.
+
+ * src/uri.h, src/uri.c: added native filename to/from thingy
+
+2004-02-20 bulia byak <bulia@users.sourceforge.net>
+
+ * src/text-context.cpp: [shift+]alt+arrows to kern
+
+ * src/sp-text.cpp,h: Complete support for dx/dy vectors, including inheritance
+ as per SVG spec. Preserve dx/dy lists in editing. Function to adjust dx/dy by
+ screen pixels.
+
+ * src/svg/svg-length.cpp: Function to read length in absolute units
+ only. Function to read a length into a float instead of SPSVGLength. Function
+ to read a length vector into a list of SPSVGLength's.
+
+ * src/sp-root.cpp src/sp-image.cpp src/sp-offset.cpp src/sp-spiral.cpp:
+ Eliminated sp_svg_length_read_ldd calls and ugly repetitive unit checks, used
+ sp_svg_length_read_[computed_]absolute instead.
+
+ * doc/keys.xml doc/keys.html icons/keys.svg: Updated guide and grid
+ shortcuts. Added paste in place, more notes. Added kerning keys and notes.
+
+ * src/libnrtype/nr-type-ft2.cpp: Crash fix, patch 895344.
+
+ * src/sp-namedview.cpp src/sp-namedview.h: Proper showguides support, functions
+ for toggling guides and grid.
+
+ * src/desktop-events.cpp: Turn showguides on when creating a new guide.
+
+ * src/verbs.cpp: Used the new toggle functions for showguides and showgrid.
+
+ * src/interface.cpp: Added Guides to View.
+
+ * src/xml/repr-util.cpp: sp_repr_get_boolean fix.
+
+ * src/dialogs/desktop-properties.cpp: Reenabled showguides support, added
+ namedview listener to reflect outside changes to the namedview.
+
+2004-02-20 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * Lots of files: Refine #include's according to reorganization of
+ libnr/nr-types.h and libnr/nr-matrix.h.
+
+ * src/libnr/Makefile.am (libnr_a_SOURCES):
+ nr-coord.h nr-dim2.h nr-i-coord.h nr-matrix-ops.h nr-point-l.h
+ nr-point-ops.h nr-point.h nr-rect-l.h nr-rotate.h nr-rotate-ops.h
+ nr-scale-ops.h nr-scale.h nr-translate-ops.h nr-translate.h:
+ New files; code moved from nr-types.h and nr-matrix.h.
+ * src/libnr/nr-matrix.h:
+ * src/libnr/nr-types.h:
+ #include the new files.
+
+ * src/desktop-affine.h, src/desktop-affine.cpp
+ (sp_desktop_w2d_xy_point, sp_desktop_d2w_xy_point,
+ sp_desktop_w2doc_xy_point, sp_desktop_doc2w_xy_point,
+ sp_desktop_d2doc_xy_point, sp_desktop_doc2d_xy_point,
+ sp_desktop_root2dt_xy_point, sp_desktop_dt2root_xy_point):
+ Remove old NRPoint versions of these functions.
+
+ * src/select-toolbar.cpp:
+ * src/toolbox.cpp:
+ * src/widgets/spw-utilities.cpp:
+ Remove unused #include sp-item-transform.h.
+
+ * src/sp-item-transform.cpp (sp_item_rotate_rel): NR::Matrix'ification.
+
+ * src/sp-item-transform.h, src/sp-item-transform.cpp
+ (sp_item_scale_rel, sp_item_skew_rel): Remove these unused functions.
+
+ * src/sp-item-transform.h, src/sp-item-transform.cpp
+ (sp_item_rotate_rel, sp_item_move_rel): Change from pair of points to
+ NR::rotate and NR::translate respectively. Update callers.
+
+ * src/node-context.cpp (sp_node_context_root_handler):
+ * src/rect-context.cpp (sp_rect_context_root_handler):
+ * src/zoom-context.cpp (sp_zoom_context_root_handler):
+ NR::Point'ification and var cleanup.
+
+ * src/event-context.cpp
+ (sp_event_context_private_root_handler, set_event_location):
+ * src/dialogs/align.cpp (sp_align_arrange_clicked):
+ NR::Point'ification.
+
+ * src/desktop.h (sp_desktop_zoom_relative_keep_point,
+ sp_desktop_scroll_world): Add NR::Point version.
+
+2004-02-19 Johan Ceuppens <jceuppen@easynet.be>
+
+ * src/inkjar/jar.cpp, src/inkjar/jar.h src/inkview.cpp:
+ inkview accepts .jar archives of SVG files on the command line.
+
+2004-02-19 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/Makefile.am: sp-item-rm-unsatisfied-cns.cpp,
+ sp-item-rm-unsatisfied-cns.h, sp-guide-attachment.h,
+ sp-item-notify-moveto.cpp, sp-item-notify-moveto.h,
+ sp-guide-constraint.h, satisfied-guide-cns.cpp,
+ satisfied-guide-cns.h, sp-item-update-cns.cpp,
+ sp-item-update-cns.h: New files.
+ * src/desktop-events.cpp (sp_dt_guide_event):
+ * src/seltrans.cpp (sp_sel_trans_ungrab):
+ * src/sp-guide.cpp (sp_guide_moveto, sp_guide_remove):
+ * src/sp-guide.h:
+ * src/sp-item.cpp (sp_item_set):
+ * src/sp-item.h:
+ Make snap-to-guide more persistent. (Still not saved to XML though.)
+
+ * src/sp-spiral.cpp (sp_spiral_fit_and_draw, sp_spiral_set_shape):
+ Address NRPoint warning.
+
+ * src/widgets/icon.cpp (sp_icon_paint): Cleanup.
+
+ * src/libnr/nr-types.h: Change deprecated-cast warning from runtime
+ to compile-time.
+
+ * src/helper/sp-canvas.h, src/helper/sp-canvas.cpp
+ (sp_canvas_world_pt_inside_window): New function.
+
+2004-02-18 MenTaLguY <mental@rydia.net>
+
+ * src/widgets/icon.cpp, src/widgets/icon.h: rewrote to use gdk for
+ compositing; now it looks tolerable with ANY theme!
+
+ * src/dialogs/item-properties.cpp: slight stabs at implementing "visible"
+
+ * src/libnr/nr-types.h: added warning for deprecated casts
+
+2004-02-18 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/dialogs/align.cpp (sp_align_arrange_clicked): Cleanup.
+
+ * src/sp-item-transform.cpp (sp_item_move_rel): NR::Matrix'ification.
+
+ * src/desktop-events.cpp (sp_dt_guide_event): Get guide line dialog
+ working again: double-click on a guide to show the guide dialog.
+
+ * src/utest/utest.h (UTEST_NAMED_ASSERT):
+ Wrap this macro in static_cast<void>().
+
+2004-02-17 MenTaLguY <mental@rydia.net>
+
+ * src/interface.cpp: fixed signal connection in recent items menu
+
+ * src/file.cpp: fix compile and pass UTF-8 "URIs" down to module code
+
+2004-02-17 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/sp-guide.h, src/sp-guide.cpp (sp_guide_moveto,
+ sp_guide_position_set):
+ Combine into a single sp_guide_moveto routine accepting a `commit'
+ argument. Update callers.
+
+2004-02-16 MenTaLguY <mental@rydia.net>
+
+ * src/interface.cpp: fixed bug with underscores in 'open recent' filenames
+
+ * src/libnr/nr-rect.h, src/libnr/nr-types.h: moved NR::Rect to nr-rect.h,
+ minor updates
+
+ * src/libnr/nr-maybe.h: continued work on maybe implementation
+
+ * src/libnr/nr-types.h, src/libnr/nr-rect.cpp, src/libnr/nr-maybe.h,
+ src/seltrans.cpp:
+ started on revising the NR::Rect stuff, and introduced NR::ConvexHull
+
+2004-02-16 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/xml/repr.cpp (sp_repr_document_root): Fix typo in most recent commit.
+
+2004-02-14 MenTaLguY <mental@rydia.net>
+
+ * src/svg/svg-path.cpp: switched to locale-safe iostreams-based path
+ serialization.
+
+ * src/xml/repr-io.cpp, src/xml/repr.cpp, src/widgets/sp-xmlview-tree.cpp,
+ src/widgets/sp-xmlview-content.cpp, src/dialogs/xml-tree.cpp:
+ basic support for XML comments
+
+2004-02-14 bulia byak <bulia@users.sourceforge.net>
+
+ * src/dialogs/dialog-events.cpp: Added UTILITY hint to sp_transientize()
+
+ * po/fr.po: Update from f.rodrigo@tuxfamily.org
+
+ * src/interface.cpp: Fix for underscore in the recent files menu, by alxrem
+
+ * src/event-context.cpp src/preferences-skeleton.h: Accelerated scrolling by Ctrl-arrows
+
+ * src/event-context.cpp: Ctrl-middle-click zooms in
+
+ * doc/keys.xml doc/keys-svg.xsl doc/keys-html.xsl doc/keys.html icons/keys.svg:
+ Updated middle and right buttons scroll/zoom, cosmetics
+
+ * src/shortcuts.cpp: Menu shortcut fix
+
+ * src/verbs.cpp,h: New verb: deselect
+
+ * src/selection.cpp,h: Removed unused function
+
+ * src/interface.cpp: Removed Edit/Clear All, added Edit/Deselect. Comment fix
+
+ * src/toolbox.cpp: Spelling fix: symmetric, not symmetrical
+
+ * src/desktop.cpp,h: sp_desktop_point(): returns mouse point in document coordinates
+
+ * src/selection-chemistry.cpp,h: sp_selection_paste obeys in_place parameter
+
+ * src/verbs.cpp src/verbs.h src/shortcuts.cpp: Paste in place verb, shortcut
+
+ * src/interface.cpp: Paste In Place command in Edit
+
+ * src/selection-chemistry.cpp: Toolbar message fix
+
+2004-02-14 MenTaLguY <mental@rydia.net>
+
+ * src/libnr/nr-types.h: added intersects() and contains() tests
+ for points and rects
+
+2004-02-13 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/selection.cpp (sp_selection_snappoints):
+ * src/sp-image.cpp (sp_image_snappoints):
+ * src/sp-item.cpp (sp_item_private_snappoints):
+ Don't use more than two opposite points of bounding box.
+
+ * src/seltrans.cpp (sp_show_handles): Add precondition !seltrans.empty.
+ * src/proofs: Update accordingly.
+ * src/seltrans.cpp: Change seltrans from pointer to reference in
+ several places.
+
+2004-02-13 Johan Ceuppens <jceuppen@easynet.be>
+
+ * src/inkjar/{jar.cpp,jar.h}: changed some file offsets,
+ uncompressing multiple files in a jar works now. There
+ is an improved testing program at the end of jar.cpp.
+
+2004-02-12 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/seltrans.cpp (sp_sel_trans_update_volatile_state):
+ Minor cleanups.
+
+ * src/desktop-snap.h, src/desktop-snap.cpp
+ (sp_desktop_horizontal_snap, sp_desktop_vertical_snap,
+ sp_desktop_horizontal_snap_list_scale,
+ sp_desktop_vertical_snap_list_scale,
+ sp_desktop_horizontal_snap_list_skew,
+ sp_desktop_vertical_snap_list_skew):
+ Remove these now-unused functions.
+
+ * src/arc-context.cpp (sp_arc_drag):
+ * src/rect-context.cpp (sp_rect_drag):
+ Simplification: use sp_desktop_dim_snap instead of
+ sp_desktop_horizontal_snap / sp_desktop_vertical_snap.
+
+ * src/desktop-snap.cpp (sp_desktop_vector_snap): Minor cleanups.
+
+ * src/libnr/Makefile.am, src/libnr/nr-point-fns-test.cpp:
+ New unit test file nr-point-fns-test.cpp.
+
+ * src/libnr/nr-point-fns.h, src/libnr/nr-point-fns.cpp (unit_vector):
+ New function.
+
+ * src/livarot/Path.h: Trim unnecessary includes.
+
+ * src/livarot/LivarotDefs.h: #include <stdint.h> (moved from Path.h).
+
+ * src/livarot/PathOutline.cpp, src/livarot/PathSimplify.cpp,
+ src/livarot/PathStroke.cpp, src/sp-offset.cpp:
+ #include libnr/nr-point-fns.h.
+
+2004-02-12 MenTaLguY <mental@rydia.net>
+
+ * src/xml/repr-util.cpp, src/xml/repr.h: pruned some obsolete
+ functions
+
+2004-02-12 Johan Ceuppens <jceuppen@easynet.be>
+
+ * configure.in src/Makefile.am: --with-inkjar (default no)
+ * src/inkjar/Makefile.am src/inkjar/jar.cpp src/inkjar/jar.h:
+ inital import of libinkjar, this can be moved to LGPL after
+ rewriting the macros.
+
+2004-02-11 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/seltrans.cpp (sp_sel_trans_handle_new_event,
+ sp_sel_trans_handle_request): NR::Point'ification.
+
+ * src/seltrans-handles.cpp, src/seltrans-handles.h, src/seltrans.cpp:
+ Preserve constness of SPSelTransHandle's.
+
+ * src/sp-item.h, src/sp-item.cpp (sp_item_set_item_transform):
+ Make static. Use NR::Matrix, and avoid NULL special case.
+ Update callers.
+
+ * src/sp-item.h, src/sp-item.cpp (sp_item_set_i2d_affine):
+ Get rid of NRMatrix version.
+ Calculate 1.25 directly rather than less accurate reciprocal of 0.8.
+
+ * src/libnr/nr-matrix.h, src/libnr/nr-matrix.cpp (matrix_equalp):
+ New function.
+ (assert_close): Use matrix_equalp.
+
+ * src/seltrans.h, src/seltrans.cpp (sp_sel_trans_transform):
+ Get rid of non-NR::Point version. Make affine argument const.
+ Update callers.
+
+ * src/desktop-events.cpp (sp_dt_guide_event): NR::Point'ification.
+
+ * src/view.h (sp_view_set_position): Add NR::Point version.
+
+ * src/desktop.h (sp_desktop_set_coordinate_status):
+ Add NR::Point version.
+
+2004-02-09 bulia byak <bulia@users.sourceforge.net>
+
+ * doc/keys.xml doc/keys-svg.xsl: Keys and Mouse Reference: source, SVG stylesheet
+
+ * icons/keys.svg: Keys SVG chart (generated, do not edit)
+
+ * icons/Makefile.am: Added keys.svg
+
+ * src/help.cpp src/help.h src/interface.cpp: Added Keys and Mouse command
+
+ * doc/keyboard-shortcuts.txt Obsoleted, removed
+
+ * doc/keys-html.xsl doc/keys.html: Keys reference in HTML, stylesheet for HTML
+
+ * doc/Makefile.am: updated
+
+ * src/libnr/nr-pixblock.cpp: A better fix for 859364
+
+ * src/libnrtype/nr-rasterfont.cpp: Reverting my previous fix for 859364, a better
+ one is in nr-pixblock.cpp
+
+ * icons/tutorial.svg: Switched to Bitstream Vera, updated tutorial
+
+ * src/file.cpp: Fix for save bug 891852
+
+ * src/preferences-skeleton.h: transientpolicy=1 again
+
+ * src/nodepath.cpp: Ctrl-Alt-drag fix in point_line_closest()
+
+ * src/select-toolbar.cpp: Small space before unit selector
+
+ * src/widgets/paint-selector.cpp: Hidden buttons removed
+
+2004-02-09 MenTaLguY <mental@rydia.net>
+
+ * src/interface.cpp: disabled the autoraise checkbox on Windows
+
+ * src/widgets/paint-selector.cpp, src/widgets/paint-selector.h:
+ removed unused selector-type buttons (with Bulia)
+
+2004-02-09 Jon A. Cruz <jon@joncruz.org>
+
+ * src/widgets/sp-color-wheel.h, src/widgets/sp-color-wheel.cpp,
+ src/widgets/sp-color-wheel-selector.h,
+ src/widgets/sp-color-wheel-selector.cpp,
+ src/widgets/sp-color-gtkselector.cpp,
+ src/widgets/sp-color-notebook.cpp
+ Added new, smaller color wheel selector.
+
+2004-02-09 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/desktop-affine.cpp, src/desktop-snap.cpp,
+ src/desktop-snap.h, src/desktop.cpp, src/knotholder.cpp,
+ src/nodepath.cpp, src/selection-chemistry.cpp, src/seltrans.cpp,
+ src/seltrans.h, src/sp-ellipse.cpp, src/sp-image.cpp,
+ src/sp-item.cpp, src/sp-item.h, src/sp-rect.cpp, src/sp-root.cpp,
+ src/text-context.cpp, src/dialogs/xml-tree.cpp,
+ src/libnr/Makefile.am, src/libnr/nr-matrix.cpp,
+ src/libnr/nr-matrix.h, src/libnr/nr-types.h,
+ src/libnrtype/nr-rasterfont.cpp, src/livarot/Path.h,
+ src/livarot/PathConversion.cpp, src/livarot/PathSimplify.cpp,
+ src/livarot/ShapeSweep.cpp, src/widgets/gradient-position.cpp,
+ src/widgets/sp-color-wheel-selector.cpp,
+ src/widgets/sp-color-wheel.cpp:
+ Change matrices to be suitable for right multiplication.
+ (Also miscellaneous cleanups as mentioned below.)
+
+ * src/widgets/sp-color-wheel-selector.cpp
+ (sp_color_wheel_selector_get_type):
+ Address harmless warning: add value_table initializer.
+
+ * src/display/nr-arena-group.h, src/display/nr-arena-group.cpp
+ (nr_arena_group_set_child_transform): Add NR::Matrix version.
+
+ * src/verbs.cpp: Add g++-2.95 portability for hash_map.
+ (Still using hash_map, though, not yet GHashTable.)
+
+ * src/uri-references.h (operator=): Remove definition, forcing link
+ errors for accidental usage.
+
+ * src/sp-chars.h, src/sp-chars.cpp (sp_chars_add_element):
+ Add NR::Matrix version.
+
+ * src/selection.cpp (sp_selection_snappoints): Performance fix: add
+ just 4 corner points, not a thousand.
+
+ * src/print.h, src/print.cpp (sp_print_bind): Add NR::Matrix version.
+
+ * src/inkscape.cpp: #include sys/types.h, sys/stat.h.
+
+ * src/desktop.h (SP_DESKTOP_ZOOM): Define in terms of expansion()
+ function instead of implicit casting.
+
+ * src/arc-context.cpp, src/document.cpp, src/draw-context.cpp,
+ src/selection.cpp, src/selection.h,
+ src/sp-ellipse.cpp, src/sp-gradient.cpp, src/sp-image.cpp,
+ src/sp-namedview.cpp, src/sp-offset.cpp, src/sp-rect.cpp,
+ src/sp-spiral.cpp, src/sp-star.cpp,
+ src/sp-text.cpp, src/bonobo/canvas-translator.cpp:
+ Cleanups: greater conformance to Coding_Style, combine declaration
+ and first assignment of some vars.
+
+2004-02-08 MenTaLguY <mental@rydia.net>
+
+ * src/interface.cpp: added "Autoraise Dialogs" menu item to toggle
+ the transient policy thing
+
+2004-02-08 Bryce Harrington <brycehar@bryceharrington.com>
+
+ * src/sp-namedview.cpp: This assert appears to serve no purpose
+ except to cause Inkscape to crash when the user chooses to
+ exit the app when the XML editor is open. Commenting out the
+ assert doesn't seem to cause any particular untoward behavior.
+
+ * src/xml/: repr.cpp, repr.h: Hacking in a check to prevent
+ deletion of the namedview entity, in order to close bug
+ Inkscape Bug #850971.
+
+2004-02-07 Johan Ceuppens <jceuppen@easynet.be>
+ * src/libnrtype/nr-type-gnome.cpp src/libnrtype/nr-type-directory
+ src/libnrtype/nr-type-xft.cpp src/widgets/font-selector.cpp
+ src/print.cpp src/module.h src/module.cpp
+ modules/gnome.cpp: activated --with-gnome-print
+ libnrtype/nr-type-primitives.h: removed possible gchar signedness
+ bug.
+
+2004-02-07 Nathan Hurst <njh@mail.csse.monash.edu.au>
+
+ * src/widgets/gradient-position.*: modified the gradient knot
+ editor to manipulate the knots, rather than rebuilding a gradient
+ from scratch each time.
+
+2004-02-07 MenTaLguY <mental@rydia.net>
+
+ * src/xml/repr.h, src/xml/repr-util.cpp:
+
+ cleaned up old code in #if 0 sections
+
+ * src/display/canvas-arena.cpp, src/display/nr-arena-glyphs.cpp,
+ src/display/nr-arena-item.cpp, src/display/nr-arena-shape.cpp,
+ src/display/nr-arena.cpp, src/display/nr-arena.h:
+
+ cleaned up old code in #if 0 sections
+
+ * src/desktop-affine.cpp, src/desktop.cpp, src/draw-context.cpp,
+ src/dropper-context.cpp, src/dyna-draw-context.cpp,
+ src/seltrans.cpp, src/sp-root.cpp, src/sp-text.cpp,
+ src/libnr/nr-macros.h, src/libnr/nr-types.h, src/libnr/nr-matrix.h,
+ src/libnr/nr-matrix.cpp, src/libnrtype/nr-font.cpp,
+ src/libnrtype/nr-rasterfont.cpp, src/livarot/PathSimplify.cpp,
+ src/livarot/ShapeSweep.cpp:
+
+ The array data member of NR::Matrix is now private; use the
+ [] operator to access elements individually. More matrix routines
+ now pass by reference, and the casting operators to cast to NRMatrix
+ no longer leak memory (by allocating temporary objects that were
+ never freed).
+
+ * src/modules/db.cpp: cleaned up some very grotty code that gcc 3.4
+ (rightly) refused to compile
+
+ * src/xml/repr-action.cpp: undo of content changes was pulling
+ from the wrong union member (note to self: unions = evil)
+ This fixes the problem with text editing undos yielding the wrong
+ apparent undo order (bug #861462).
+
+2004-02-05 bulia byak <bulia@users.sourceforge.net>
+
+ * src/sp-text.cpp src/sp-text.h: Function to adjust letterspacing
+
+ * src/style.cpp: Comments
+
+ * src/text-context.cpp: Alt+<> adjust letterspacing
+
+ * src/helper/png-write.cpp: PNG comment: Software: www.inkscape.org
+
+ * src/text-context.cpp: Support keypad keys, keypad +/- always zoom even when editing
+
+ * src/shortcuts.cpp: Enable keypad Del
+
+ * src/event-context.cpp: Enable keypad arrows with Ctrl to scroll canvas
+
+ * src/zoom-context.cpp src/rect-context.cpp src/arc-context.cpp src/star-context.cpp
+ src/spiral-context.cpp src/draw-context.cpp src/dyna-draw-context.cpp
+ src/text-context.cpp src/dropper-context.cpp: Swallow keypad up/down keys too,
+ preventing them from focusing the zoom field
+
+2004-02-05 Jon Phillips <kidproto@users.sf.net>
+
+ * src/dialogs/item-properties.cpp, src/dialogs/item-properties.h,
+ src/dialogs/object-attributes.cpp, src/dialogs/object-attributes.h,
+ src/dialogs/object-properties.cpp, src/dialogs/object-properties.h,
+ src/dialogs/sp-attribute-widget.cpp, src/dialogs/sp-attribute-widget.h,
+ src/dialogs/stroke-style.cpp, src/dialogs/stroke-style.h,
+ src/dialogs/text-edit.cpp, src/dialogs/text-edit.h,
+ src/dialogs/tool-options.cpp, src/dialogs/tool-options.h,
+ src/dialogs/transformation.cpp, src/dialogs/transformation.h,
+ src/dialogs/xml-tree.cpp, src/dialogs/xml-tree.h,
+ src/dialogs/xml-tree.cpp, src/dialogs/xml-tree.h: Converted
+ the aforementioned to coding style.
+
+
+2004-02-04 Ted Gould <ted@gould.cx>
+
+ * src/desktop-snap.cpp: Removing some unused code that had
+ been replaced.
+
+2004-02-04 jon phillips <kidproto@user.sf.net>
+
+ * COPYING, COPYING.LIB, ChangeLog, Makefile.am, Makefile.mingw,
+ Makefile.mingw.common, NEWS, README, autogen.sh, configure.in,
+ inkscape-cvs-0.ebuild, inkscape.1.in, inkscape.spec.in:
+ all files converted from tabs to 4 spaces and cleaned up the
+ coding style, tested, they build, and have committed.
+
+ * extension/*: I converted all files to coding style.
+
+ * src/dialogs/align.cpp, src/dialogs/align.h,
+ src/dialogs/desktop-properties.cpp, src/dialogs/desktop-properties.h,
+ src/dialogs/dialog-events.cpp, src/dialogs/dialog-events.h: Converted
+ the following files to use our coding convention.
+
+ * src/dialogs/desktop-properties.cpp, src/dialogs/desktop-properties.h,
+ src/dialogs/display-settings.cpp, src/dialogs/display-settings.h,
+ src/dialogs/export.cpp, src/dialogs/export.h,
+ src/dialogs/fill-style.cpp, src/dialogs/fill-style.h: converted the
+ aforementioned files to new coding conventions.
+
+2004-02-04 bulia byak <bulia@users.sourceforge.net>
+
+ * src/style.h src/style.cpp src/sp-text.cpp: Read-only (so far) support for
+ letter-spacing CSS property
+
+ * src/event-context.cpp src/select-context.cpp src/draw-context.cpp
+ src/dyna-draw-context.cpp src/knotholder.cpp src/nodepath.cpp src/object-edit.cpp:
+ Trimming #if 0
+
+ * src/text-context.cpp: Trimming #if 0, removing unneeded document_done
+
+ * src/spiral-context.cpp src/star-context.cpp: Trimming #if 0, enabling ctrl-drag
+
+ * src/dialogs/dialog-events.cpp src/preferences-skeleton.h: Added
+ options.transientpolicy, 1 as default
+
+ * src/preferences-skeleton.h: Increased options.keyscroll
+
+ * src/dialogs/xml-tree.cpp: Fix for 852619, fix for failed asserts when selecting root
+
+ * src/widgets/gradient-selector.cpp: Fix for 854514, 856682
+
+2004-02-02 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/desktop-snap.h, src/desktop-snap.cpp: Indicate that the snap_list
+ functions don't modify the passed snap points. For the wrapper versions,
+ don't bother "copying back the new [actually unchanged] versions".
+
+2004-01-31 bulia byak <bulia@users.sourceforge.net>
+
+ * src/zoom-context.cpp src/rect-context.cpp src/arc-context.cpp src/star-context.cpp
+ src/spiral-context.cpp src/draw-context.cpp src/dyna-draw-context.cpp
+ src/text-context.cpp src/dropper-context.cpp: Fix to swallow up/down keys in
+ contexts so as to prevent zoom field from activation, but allow ctrl with up/down
+ keys to scroll canvas.
+
+ * src/interface.cpp: Removed New Preview, Remove Transform commands. Added Tutorial
+ command to Help.
+
+ * src/preferences-skeleton.h: Reduced default stroke width to 1 pt.
+
+ * src/help.cpp src/help.h: Tutorial command.
+
+ * icons/tutorial.svg: First try at the tutorial.
+
+ * icons/Makefile.am: Adding tutorial.
+
+ * src/nodepath.cpp: No-nodepath crash fixes.
+
+ * doc/architecture.svg: Added namedview.
+
+ * doc/default.svg: Removed, now reworked into icons/tutorial.svg.
+
+ * src/event-context.cpp: Swapped scrollwheel modifiers.
+
+ * src/xml/repr.cpp src/xml/repr-io.cpp: Small comment fix.
+
+2004-01-31 Johan Ceuppens <jceuppen@easynet.be>
+ * src/verbs.cpp src/verbs.h: removed sp_fullscreen and put it in
+ desktop.cpp and desktop.h as fullscreen
+ * configure.in src/interface.cpp src/shortcuts.cpp src/inkscape.cpp
+ src/inkscape.h src/desktop.cpp src/desktop.h:
+ Added HAVE_GTK_WINDOW_FULLSCREEN as conditional compilation based
+ on a function check for gtk_window_fullscreen in configure script
+
+2004-01-30 Johan Ceuppens <jceuppen@easynet.be>
+ * src/verbs.cpp src/verbs.h: Added fullscreen verb. Fullscreen action
+ is in SP_VERB_IS_ZOOM.
+ * src/interface.cpp: Added fullscreen menuitem.
+ * src/shortcuts.cpp: Linked in fullscreen shortcut (untested)
+ * src/inkscape.cpp src/inkscape.h
+ * src/desktop.cpp src/desktop.h: Added is_fullscreen gboolean to
+ SPDesktop.
+
+2004-01-30 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/libnr/nr-path.h, src/libnr/nr-path.cpp: Mark some functions
+ as not modifying the matrix passed to them.
+
+ * src/display/nr-arena-group.h, src/display/nr-arena-group.cpp
+ (nr_arena_group_set_child_transform):
+ Indicate that matrix isn't written to.
+
+ * src/sp-item-transform.cpp (sp_item_rotate_rel, sp_item_scale_rel,
+ sp_item_skew_rel),
+ src/sp-marker.cpp (sp_marker_update, sp_marker_show_instance),
+ src/sp-shape.cpp (sp_shape_bbox),
+ src/sp-symbol.cpp (sp_symbol_update, sp_symbol_show, sp_symbol_print),
+ src/display/nr-arena-shape.cpp (nr_arena_shape_update, nr_arena_shape_pick):
+ Remove uses of nr_matrix_f_from_d.
+ * src/libnr/nr-matrix.h, src/libnr/nr-matrix.cpp (nr_matrix_f_from_d),
+ src/libnr/libnr.def:
+ Remove now-unused nr_matrix_f_from_d.
+
+ * src/nodepath.cpp (sp_nodepath_new),
+ src/path-chemistry.cpp (sp_selected_path_combine, sp_selected_path_break_apart),
+ src/selection-chemistry.cpp (sp_selection_apply_affine),
+ src/selection.cpp (sp_selection_bbox_document),
+ src/sp-item.cpp (sp_item_bbox_desktop, sp_item_private_snappoints),
+ src/sp-pattern.cpp (sp_pattern_painter_new),
+ src/modules/gnome.cpp (sp_module_print_gnome_fill),
+ src/widgets/icon.cpp (sp_icon_image_load_svg):
+ Remove uses of nr_matrix_d_from_f.
+ * src/libnr/nr-matrix.h, src/libnr/nr-matrix.cpp (nr_matrix_d_from_f),
+ src/libnr/libnr.def:
+ Remove now-unused nr_matrix_d_from_f.
+
+ * src/sp-item.h, src/sp-item.cpp (sp_item_set_i2d_affine_d,
+ sp_item_i2doc_affine_d, sp_item_i2d_affine_d, sp_item_dt2i_affine_d):
+ Merge _d version with non-_d version. Update callers.
+
+ * src/rubberband.h, src/rubberband.cpp (sp_rubberband_start):
+ Add NR::Point version.
+ Implement x,y version as call to NR::Point version.
+
+2004-01-29 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/desktop-snap.h, src/desktop-snap.cpp (sp_desktop_dim_snap_list):
+ Export this function.
+ (sp_desktop_horizontal_snap_list, sp_desktop_vertical_snap_list):
+ Remove these now-unused functions.
+ * src/select-context.cpp (sp_selection_moveto):
+ Use sp_desktop_dim_snap_list instead of
+ sp_desktop_horizontal_snap_list, sp_desktop_vertical_snap_list.
+
+ * src/select-context.cpp (sp_selection_moveto): Fix what appears to be
+ a memory leak.
+
+ * src/rubberband.h, src/rubberband.cpp (sp_rubberband_move):
+ Add NR::Point version.
+
+ * src/seltrans.h (sp_sel_trans_point_desktop): Add NR::Point version.
+
+ * src/seltrans.h, src/seltrans.cpp (sp_sel_trans_point_desktop,
+ sp_sel_trans_origin_desktop): Indicate that pointer isn't written through.
+
+ * src/node-context.cpp, src/select-context.cpp:
+ Make some globals static.
+
+ * src/style.cpp (sp_style_read_pfloat, SPS_READ_IFLOAT_IF_UNSET,
+ SPS_READ_PFLOAT_IF_UNSET): Remove these unused functions/macros.
+
+2004-01-28 MenTaLguY <mental@rydia.net>
+
+ * src/toolbox.cpp: aux toolbar now expands properly when torn off
+ (fix for bug #874923)
+
+ * src/libnr/nr-svp.cpp, src/libnr/nr-stroke.cpp,
+ src/libnr/nr-svp-private.h, src/libnr/nr-svp.h,
+ src/libnr/nr-svp-render.cpp, src/libnr/nr-svp-uncross.cpp:
+
+ NRCoord -> NR::Coord
+
+ * src/interface.cpp: removed Filters menu
+
+ * src/modules/win32.cpp: the Win32 GDI uses BRGx, rather than
+ RGBA, so we reverse the B and R bytes before blitting (fix
+ for bug #887428)
+
+2004-01-28 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/seltrans.cpp: Various cleanups, including addressing some
+ warnings, and doing some more NR::Point'ification.
+
+ * src/knot.h, src/knot.cpp (sp_knot_set_position): Change from
+ pass-by-value to pass-by-const-reference.
+
+ * src/geom.cpp (sp_intersector_line_intersection): Restore
+ definition of previous local `cross' function, but "inline" the
+ dot(rot90(a), b) definition. This makes the definition conform to
+ the documentation.
+ * src/desktop-snap.cpp (sp_intersector_a_vector_snap): Undo a recent
+ change that adapted to the previously-introduced bug in
+ sp_intersector_line_intersection.
+
+ * icons/Makefile.am: s/icons_dir/iconsdir/g for automake.
+ * src/dialogs/Makefile.am, src/widgets/Makefile.am:
+ s/icons_dir/iconsdir/g for consistency with icons/Makefile.am.
+
+2004-01-27 jon phillips <jon@users.sourceforge.net>
+
+ * Makefile.am: changed 'glade' globally to 'icons'
+
+ * Makefile.mingw: changed 'glade' globally to 'icons'
+
+ * config.h.mingw: changed 'INKSCAPE_GLADEDIR' to 'INKSCAPE_ICONS_DIR'
+
+ * configure.in: changed 'glade' globally to 'icons'
+
+ * Makefile.am: changed 'gladedir' to 'icons_dir', and fixed spacing,
+ changed 'glad_DATA' to 'icons_DATA'
+
+ * glade/about_svg.tmpl: changed 'glade' globally to 'icons'
+
+ * po/pl.po: changed 'glade' globally to 'icons'
+
+ * src/config.h.win32: changed 'SODIPODI_GLADEDIR' to 'SODIPODI_ICONS_DIR'
+ * src/dialogs/Makefile.am: changed 'gladedir' to 'icons_dir', changed
+ '-DINKSCAPE_GLADEDIR=\""$(gladedir)"\" \' to
+ '-DINKSCAPE_ICONS_DIR=\""$(icons_dir)"\" \'
+
+ * src/dialogs/makefile.msc: changed 'gladedir' to 'icons_dir'
+
+ * src/dialogs/object-properties.cpp: changed 'INKSCAPE_GLADEDIR' to
+ 'INKSCAPE_ICONS_DIR'
+
+ * src/dialogs/stroke-style.cpp: changed 'INKSCAPE_GLADEDIR' to
+ 'INKSCAPE_ICONS_DIR'
+
+ * src/widgets/Makefile.am: changed 'gladedir' to 'icons_dir'
+
+ * src/widgets/icon.cpp: changed 'glade' globally to 'icons'
+
+ * src/widgets/makefile.msc: changed 'gladedir' to 'icons_dir'
+
+
+2004-01-26 bulia byak <bulia@users.sourceforge.net>
+
+ * src/inkscape.cpp: failed assertion fix
+
+ * src/shortcuts.cpp: Linked/dynamic offset shortcuts, zoom to page width
+
+ * src/preferences-skeleton.h: Add inkscape:pageopacity, borderopacity
+
+ * src/attributes.cpp,h src/sp-namedview.cpp,h: Add inkscape:pageopacity
+
+ * src/dialogs/desktop-properties.cpp: Get/set inkscape:pageopacity in the page
+ background color picker; reword and rearrange labels, spacing fix
+
+ * src/dialogs/export.cpp: Use inkscape:pageopacity for export background; fix crash on
+ exit
+
+ * src/file.cpp: Remove debug output when exporting
+
+ * src/sp-gradient.cpp src/svg/svg-path.cpp src/libnr/nr-compose.cpp src/dir-util.cpp
+ src/desktop.cpp: Fixes from sodipodi
+
+ * src/main.cpp: Fix PNG size limits when exporting from commandline
+
+ * src/style.cpp src/style.h: currentColor support from sodipodi
+
+ * src/sp-gradient.cpp: Fix for 876614 from sodipodi
+
+ * src/dialogs/desktop-properties.cpp: Convert meters to cm on writing (to make
+ svg/@height and svg/@width SVG compliant)
+
+ * src/sp-rect.cpp: Fix in description
+
+ * src/dialogs/text-edit.cpp: Fix bug: undo broken when font applied to more than one
+ text object. And another bug: do not apply text, only style, when more than one text
+ object selected.
+
+ * src/widgets/font-selector.cpp: Make font and style lists scroll automatically to
+ show selected row
+
+2004-01-26 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * config.h.win32: Remove this outdated and apparently-unused file.
+
+ * src/livarot/Path-test.cpp: new file.
+ * src/livarot/Makefile.am: New test program Path-test.
+ Remove $(cflags) from INCLUDES.
+
+ * configure.in: Adjust some things for our C to C++ transition.
+ Add warning flags to CXXFLAGS if the compiler is g++.
+
+2004-01-26 MenTaLguY <mental@rydia.net>
+
+ * src/configure.in, src/Makefile.am, src/modules/Makefile.am,
+ src/libnrtype/Makefile.am:
+ merged patch #847856 for autotools builds on mingw/win32
+
+ * src/sp-marker.h: added a URIReference subclass for markers
+
+ * src/sp-path.cpp: fixed backwards-compatiblilty thing with
+ (ancient) Sodipodi
+
+ * src/xml/repr-action.c, src/xml/repr-action.h,
+ src/xml/repr-private.h, src/xml/repr.cpp:
+
+ made SPReprDoc::is_logging a C++ bool, and fixed sp_repr_rollback()
+ to respect the no-logging-during-rollback invariant
+
+2004-01-25 MenTaLguY <mental@rydia.net>
+
+ * src/sp-object-repr.cpp, src/splivarot.cpp, src/sp-offset.cpp:
+ changed "offset" to "inkscape:offset" for sodipodi:type
+
+2004-01-24 bryce <brycehar@bryceharrington.com>
+
+ * src/dialogs/stroke-style.cpp: Hooking up marker buttons to
+ underlying marker style setting code, & etc.
+
+2004-01-24 bulia byak <bulia@users.sourceforge.net>
+
+ * src/document.cpp src/sp-namedview.cpp: Desensitize undo for changing document uri
+ and for saving window geometry/viewarea into namedview
+
+ * src/xml/repr-util.cpp: Increase precision in set_double_attr
+
+ * src/arc-context.cpp: Call invoke_write when finishing arc, instead of setting attrs
+ manually
+
+ * src/sp-ellipse.cpp: Add write method to genericellipse; fix handling of start and
+ end attrs; fix undo bug (877238)
+
+2004-01-24 MenTaLguY <mental@rydia.net>
+
+ * src/xml/repr-action.h, src/xml/repr-action.c: made the
+ SPReprAction::act union anonymous, and reworked the transaction
+ log optimization code. sp_repr_coalesce_log() should be a bit
+ faster now, and no more strcmp()s.
+
+2004-01-23 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/livarot/Path.h, src/livarot/Path.cpp (Path::Affiche): remove
+ unused function.
+ Doing so allows removal of path_descr_moveto::pathLength field and the
+ code for calculating its value.
+
+ * src/livarot/Path.cpp (SizeForData): Change from private method to
+ static function.
+ Use new function roundup_div instead of `%' calculation.
+
+ (Path::CloseSubpath): Remove loop that calculated pathLength.
+ Consequently remove the no-longer-used argument. Update callers.
+
+ (Path::MoveTo, Path::LineTo, Path::CubicTo, Path::ArcTo,
+ Path::TempBezierTo, Path::EndBezierTo, Path::IntermBezierTo,
+ Path::BezierTo, Path::AddPoint, Path::PointAt,
+ Path::PointAndTangentAt):
+ Change some C-style casts to reinterpret_cast's.
+
+ (Path::PointAt, Path::PointAndTangentAt): code transformations
+ in preparation for merging some branches.
+
+ * src/libnr/nr-types-test.cpp (main): Update for NR::Point .pt
+ privateness change.
+
+ * src/libnr/nr-svp-uncross.cpp (nr_segment_intersection): Mark some
+ pointer arguments as not being written through.
+ Add doc comment.
+
+ * src/selection-chemistry.cpp (sp_matrix_d_set_rotate):
+ Slight reduction in numerical error.
+ (Also rename variables from `angle' to `angle_degrees' in several
+ places.)
+
+ * src/node-context.cpp (sp_node_context_root_handler):
+ * src/object-edit.cpp (sp_arc_start_set, sp_arc_end_set,
+ sp_spiral_inner_set, sp_spiral_outer_set):
+ * src/select-context.cpp (sp_select_context_root_handler):
+ * src/seltrans.cpp (sp_sel_trans_rotate_request):
+ Fix for options.rotationsnapsperpi == 0.
+
+ * src/event-context.cpp (sp_event_context_private_root_handler):
+ Address warning.
+
+2004-01-22 bulia byak <bulia@users.sourceforge.net>
+
+ * src/attributes.h src/attributes.cpp: Added pagecolor, bordercolor, borderopacity (from sodipodi), pageshadow.
+
+ * src/sp-namedview.h src/sp-namedview.cpp: Added reading page attributes.
+
+ * src/desktop.cpp: Added setting page and border color (from sodipodi), pageshadow taken from namedview.
+
+ * src/preferences-skeleton.h: Moved pageshadow into namedview, added page and border colors to the template.
+
+ * src/dialogs/desktop-properties.cpp: Added page and border color selectors (from
+ sodipodi), moved former document settings here.
+
+ * src/verbs.cpp src/verbs.h: Removed document settings, renamed editing window into document options.
+
+ * src/interface.cpp: Removed document settings command.
+
+ * src/dialogs/document-properties.cpp,h src/dialogs/tool-attributes.cpp,h: Removed.
+
+ * src/dialogs/object-properties.cpp: Removed size and position dialog.
+
+ * src/dialogs/Makefile.am: Removed unused dialogs.
+
+ * src/verbs.cpp src/verbs.h: Removed unused dialog verbs.
+
+ * src/dyna-draw-context.cpp: Removed debug output.
+
+ * src/node-context.h: New members for tracking left, right/alt, ctrl.
+
+ * src/nodepath.cpp: Reorganize [] <> code, add update_repr (oops). Fix near-zero handles behavior with <>.
+
+ * src/sp-item-transform.cpp: More correct transformation writing method: use each
+ item's transform writer instead of simply adding transform= attribute.
+
+ * src/document.cpp src/document.h src/document-undo.cpp: Added
+ sp_document_ensure_up_to_date on each undoable action, fixes bbox problems (bug
+ 879249). Added callback to reset actionkey on each selection change, so that
+ same-key actions on different objects are not lumped together.
+
+ * src/selection-chemistry.cpp: Removed spurious sp_selection_changed calls from all
+ transformation functions, coalesced [] <> rotates and scales.
+
+ * src/select-toolbar.cpp: Coalesced spinbutton moves and scales.
+
+2004-01-21 MenTaLguY <mental@rydia.net>
+
+ * src/desktop-snap.cpp, src/desktop.cpp, src/nodepath.cpp,
+ src/object-edit.cpp, src/sp-namedview.cpp, src/sp-offset.cpp,
+ src/splivarot.cpp, src/uri.h, src/dialogs/desktop-properties.cpp,
+ src/libnr/nr-matrix.cpp, src/libnr/nr-matrix.h,
+ src/libnr/nr-point-fns.cpp, src/libnr/nr-point-fns.h,
+ src/libnr/nr-rect.cpp, src/libnr/nr-types.cpp, src/libnr/nr-types.h,
+ src/livarot/Path.cpp, src/livarot/PathConversion.cpp,
+ src/livarot/PathOutline.cpp, src/livarot/PathSimplify.cpp,
+ src/livarot/PathStroke.cpp, src/livarot/Shape.cpp,
+ src/livarot/ShapeMisc.cpp, src/livarot/ShapeSweep.cpp,
+ src/livarot/ShapeSweepUtils.cpp:
+ Cleanup; made data member of NR::Point private and replaced
+ a few 'magic' [0] and [1] indices with the more meaningful NR::X
+ and NR::Y.
+
+2004-01-20 Jon Phillips <jon@protofunk.org>
+
+ * src/help.cpp: I cleaned up the code a little according to our coding
+ standards and have/am adding comments to the help system.
+
+2004-01-20 bulia byak <bulia@users.sourceforge.net>
+
+ * src/selection-chemistry.cpp,h: New scaling utility functions
+
+ * src/select-context.cpp: <> [] with modifiers to scale/rotate objects
+
+ * src/nodepath.cpp,h: New functions for scaling and rotating nodes
+
+ * src/node-context.cpp: <> [] with modifiers to scale/rotate nodes, left/right
+ modifiers affect one of the two handles
+
+ * src/node-context.h: New node context members for tracking left/right alt/ctrl
+
+ * src/event-context.cpp: Use cursor coords when zooming by scrollwheel (fixme)
+
+2004-01-19 MenTaLguY <mental@rydia.net>
+
+ * src/dialogs/xml-tree.cpp: automatically scroll tree view to show selected item
+
+2004-01-19 Jon Phillips <jon@protofunk.org>
+
+ * src/desktop.cpp: Changed the document shadow to be an option. It is
+ option.pageshadow. I also made some wrapper code so that if the value
+ is set to 0, then the constructor for page shadow is not
+ initialized.
+
+2004-01-18 bulia byak <bulia@users.sourceforge.net>
+
+ * src/sp-spiral.cpp,h: Moved defines to .h
+
+ * src/object-edit.cpp: Reenabled restricted ctrl-rotation of spiral and arc. Added
+ alt-drag in spiral to lock radius. Used PI/options.rotationsnapsperpi everywhere
+ instead of PI/4.
+
+ * src/selection-chemistry.cpp,h src/select-context.cpp: Enable [ ] keys to rotate
+ selected objects by rotationsnapsperpi. Alt [ ] rotate by angular pixels.
+
+ * src/event-context.cpp src/preferences-skeleton.h src/desktop.h src/zoom-context.cpp
+ src/select-context.cpp: Behavior fixes, simplifications, & unifications in handling
+ dragtolerance, rubberband, and shift/ctrl+selection
+
+ * src/event-context.cpp src/preferences-skeleton.h src/desktop.h: Define & use new
+ options for scrolling distances: keyscroll, wheelscroll
+
+2004-01-18 MenTaLguY <mental@rydia.net>
+
+ * src/uri.h, src/uri.cpp, src/uri-reference.h, src/uri-reference.cpp,
+ src/sp-item.h, src/sp-item.cpp, src/sp-clippath.h,
+ src/sp-gradient.h, src/sp-gradient.cpp, src/sp-mask.h,
+ src/sp-item.h, src/sp-item.cpp:
+
+ Reworked URIs to use libxml, and URIReferences to be specialized
+ for particular object types. Also switched gradients to using
+ URIReferences.
+
+2004-01-17 Jon <jon@protofunk.org>
+
+ * src/desktop.cpp: Changed the document shadow to 1 pixel. It as
+ set to 5, which is really cheesy. I changed it in the
+ constructor for SP_desktop_new in the function
+ sp_ctrlrect_set_shadow().
+
+2004-01-17 Bryce <bryce@bryceharrington.com>
+
+ * src/sp-root.cpp, src/sp-symbol.cpp: Fixing NRMatrix's a -> &a
+ so codebase will build.
+
+ * Adding marker xpm's to Makefile.in so the button images display
+ in the stroke style dialog (must do a make install)
+
+2004-01-17 MenTaLguY <mental@rydia.net>
+
+ * src/uri.h, src/uri.cpp, src/uri-references.cpp:
+ new Inkscape::URI implementation using libxml URI stuff
+
+2004-01-15 bulia byak <bulia@users.sourceforge.net>
+
+ * src/preferences-skeleton.h: Added: tools.freehand.perncil tolerance,
+ options.zoomincrement, rotationsnapsperpi, maxrecentdocuments
+
+ * src/seltrans.cpp src/draw-context.cpp src/nodepath.cpp: Rotation snaps taken from
+ preferences
+
+ * src/inkscape.cpp: Max recent documents from prefs
+
+ * src/desktop.cpp,h: New _keep_point zoom functions
+
+ * src/event-context.cpp: Zoom in/out on (shift+)middle click, use
+ options.dragtolerance, use options.zoomincrement, use _keep_point zoom functions
+
+ * src/verbs.cpp: Use options.zoomincrement
+
+ * src/zoom-context.cpp: Use options.zoomincrement, use _keep_point zoom functions
+
+ * src/tools-switch.cpp: Fix for 865740
+
+ * src/draw-context.cpp: Fix for 877188
+
+ * src/nodepath.cpp: Swapped ctrl-click and ctrl-alt-click
+
+ * src/knot.cpp src/knotholder.cpp src/nodepath.cpp: Knot colors, using XOR paint mode
+
+ * src/widgets/widget-sizes.h src/desktop.cpp: Coord skip taken from define, limited
+ height of the bottom bar
+
+ * src/splivarot.h src/splivarot.cpp src/verbs.cpp src/verbs.h src/interface.cpp: Added
+ dynamic and linked offsets to menu
+
+ * src/knot.cpp src/select-context.cpp src/zoom-context.cpp src/draw-context.cpp:
+ Unified within_tolerance handling; take curve fitting tolerance from preferences in
+ freehand tool (default 10)
+
+2004-01-15 MenTaLguY <mental@rydia.net>
+
+ * glade/about.svg, glade/about_svg.tmpl, samples/inkscape.logo.svg:
+ updated to match the current standard logos from
+ inskcape_project/artwork
+
+2004-01-15 Nathan Hurst <njh@mail.csse.monash.edu.au>
+
+ * src/livarot/* an ungodly number of changes for improved use of
+ NR::Point. Const propagation. Minor bugfixes.
+
+2004-01-15 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/widgets/paint-selector.cpp (sp_paint_selector_set_color_alpha,
+ sp_paint_selector_get_color_alpha, sp_paint_selector_system_color_set),
+ src/widgets/sp-color-gtkselector.cpp (ColorGtkselector::_colorChanged),
+ src/widgets/sp-color-notebook.cpp (ColorNotebook::_colorChanged,
+ ColorNotebook::_updateRgbaEntry), src/widgets/sp-color-selector.cpp
+ (ColorSelector::setAlpha, ColorSelector::setColorAlpha,
+ ColorSelector::_updateInternals):
+ Add assertions that alpha is in [0.0, 1.0].
+
+ * src/libnr/nr-types.h, src/libnr/nr-rect.cpp (NR::Rect::corner):
+ Change argument to unsigned, thus changing remainder operator to modulo
+ operator, thus fixing bug for "negative" arguments (-1u etc.).
+
+ * src/dialogs/stroke-style.cpp (sp_stroke_style_paint_update_repr): fix
+ bug with unsigned->float alpha conversion.
+
+ * src/nodepath.cpp (angle_normalize): Remove no-longer-used function.
+
+ * src/draw-context.cpp (spdc_endpoint_snap_internal): Fix for
+ negative options.rotationsnapsperpi.
+
+2004-01-14 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/selection-chemistry.cpp (sp_selection_item_next,
+ sp_selection_item_prev): cleanups, including moving some common
+ code into new static function scroll_to_show_item.
+
+ * src/widgets/font-selector.h, src/widgets/font-selector.cpp
+ (sp_font_selector_set_font_fuzzy): Remove this unused function.
+
+ * src/sp-text.cpp (sp_text_font_style_to_lookup),
+ src/dialogs/text-edit.cpp (sp_text_edit_dialog_font_style_to_lookup):
+ Move this duplicated function to src/libnrtype/font-style-to-pos.cpp
+ as font_style_to_pos, rewriting & fixing its bugs in the process.
+ Adjust callers.
+ * src/libnrtype/font-style-to-pos.cpp, src/libnrtype/font-style-to-pos.h:
+ New files.
+ * src/libnrtype/Makefile.am: Mention the new files.
+ * src/libnrtype/nr-type-pos-def.h: Make the default constructor fill in
+ sensible values.
+ Add constants for CSS weight numbers.
+
+2004-01-13 MenTaLguY <mental@rydia.net>
+
+ * src/object-ui.cpp: 'Fill Settings' -> 'Fill and Stroke'
+
+ * src/FilePath.cpp, src/FilePath.h: removed until we can rethink
+ the file stuff
+
+2004-01-13 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/libnrtype/nr-type-directory.h,
+ src/libnrtype/nr-type-directory.cpp (nr_type_directory_lookup_fuzzy):
+ Change second arg from char const* to NRTypePosDef.
+ (nr_type_calculate_position) Move to nr-type-pos-def.cpp as implicit
+ NRTypePosDef constructor from string.
+ * src/libnrtype/nr-typeface.h: NRTypePosDef changed from struct to class.
+ * src/libnrtype/nr-type-pos-def.h, src/libnrtype/nr-type-pos-def.cpp:
+ new files.
+ * src/libnrtype/Makefile.am: Mention the new files.
+
+ * src/sp-text.cpp (sp_text_font_style_to_lookup): Fix segfault I
+ introduced, reported by ishmal.
+
+2004-01-12 bulia byak <bulia@users.sourceforge.net>
+
+ * src/sp-rect.cpp: Removed coordinates from rect description
+
+ * src/selection-chemistry.cpp: Delete fix from sodipodi, more statusbar diagnostics
+
+ * src/prefs-utils.cpp,h: New functions for setting/getting string values
+
+ * src/dialogs/export.cpp: Export dialog tracks selection and document changes (fix for
+ 853849). Export area, dpi remembered in prefs. Misc fixes and cleanups
+
+ * src/preferences-skeleton.h: New options for export: exportarea, defaultxdpi
+
+ * src/widgets/spw-utilities.cpp,h: New function for recursively searching widgets for
+ key/value pair
+
+ * src/svg/svg-affine.cpp: Ignore whitespace at the end of transform attribute - fix
+ for 850943 (from sodipodi)
+
+ * src/select-toolbar.cpp: Correctly handle zero dimensions - fix for 871552
+
+2004-01-12 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/sp-gradient.cpp (sp_gradient_repr_set_vector): "Fix" a memory
+ leak. However, I haven't worked out how to get this code to run, in
+ order to check that the guessed replacement code is correct. Instead
+ I've inserted a g_warning and a TODO comment.
+
+ * src/libnrtype/nr-type-directory.cpp
+ (nr_type_calculate_position): Fix bug where `ultra bold' and `extra
+ bold' were getting parsed as `bold'.
+ (nr_type_distance_family_better, nr_type_distance_position_better):
+ Rename to nr_type_distance_family and nr_type_distance_position
+ respectively, and return just the distance.
+ (nr_type_distance_family): Use g_ascii_strcasecmp instead of
+ strcasecmp/stricmp.
+ (nr_type_distance_family): Return unsigned instead of float.
+ (nr_type_distance_position): Use double instead of float.
+
+ * src/libnrtype/nr-rasterfont.cpp
+ (nr_rasterfont_generic_glyph_area_get,
+ nr_rasterfont_generic_glyph_mask_render): Suppress warning:
+ s/CLAMP/MIN/ if the type is unsigned and the lower bound is 0.
+
+ * src/helper/sp-canvas.cpp (paint): Cache canvas->{x0,y0} +
+ GTK_WIDGET(canvas)->allocation.{width,height}.
+ Remove some commented-out variables.
+
+ * src/tools-switch.cpp, src/tools-switch.h: Make some functions static.
+ (tools_num2name): Remove unused function.
+ (tools_isactive): Add assertion of not accessing past the end of the
+ array.
+
+ * src/knot.cpp (sp_knot_handler): Fix bug where event wasn't
+ getting consumed.
+ Get rid of hypot macro.
+
+ * src/svg/svg-affine.cpp (sp_svg_transform_write): Add assertions
+ that buffer overflow hasn't occurred.
+
+ * src/sp-text.cpp (sp_text_font_style_to_lookup),
+ src/dialogs/text-edit.cpp (sp_text_edit_dialog_font_style_to_lookup):
+ Slight restructuring using g_snprintf instead of less readable (&
+ slightly less efficient in this case) strlen/memcpy.
+
+ * src/sp-metrics.h: Increase accuracy of PT_PER_CM etc.
+ Add FIXME comment.
+
+ * src/dialogs/item-properties.cpp, src/display/nr-arena-shape.cpp:
+ Address `-Wshadow' warnings.
+
+ * src/nodepath.h, src/nodepath.cpp: Make some functions static.
+ (sp_nodepath_node_deselect) Remove unused function.
+
+ * src/dialogs/align.cpp (sp_quick_align_dialog): Switch to data-driven approach.
+ Mark some things as static.
+ (sp_quick_align_dialog_close) Remove unused function.
+ (sp_align_arrange_clicked) Change aligns constant array from ints to
+ doubles. Adjust caller.
+
+2004-01-11 Iain <iain@prettypeople.org>
+
+ * src/modules/ps.cpp: Swap the Print and Cancel buttons around, and
+ remove the separator.
+
+2004-01-11 bulia byak <bulia@users.sourceforge.net>
+
+ * src/desktop.cpp,h: New functions and SPDesktop members for maintaining lists of past
+ and future zooms. New commands for toggling rulers and scrollbars, removed old and
+ unused toggle_borders. Zoom spinbutton editable again, coord_status uses gtk_label
+ instead of statusbar, misc cosmetics. Reduced sizes of the window bottom
+ stuff. Save/restore the status of rulers and scrollbars in preferences.
+
+ * src/preferences-skeleton.h: New options: showrulers, showscrollbars. Added default
+ namedview for a 640x480 new document window.
+
+ * src/widgets/spinbutton-events.cpp,h: Common spinbutton callbacks.
+
+ * src/widgets/Makefile.am: Added spinbutton-events.
+
+ * src/select-toolbar.cpp: Remove code into spinbutton-events.
+
+ * src/widgets/widget-sizes.h: Added sizes for bottom stuff: zoom field, coord status,
+ statusbar. Misc cosmetic changes.
+
+ * src/verbs.cpp,h: New verbs for next/prev zoom. New verbs for toggling rulers and
+ scrollbars.
+
+ * src/sp-namedview.cpp: Cancel past zooms at the end of window_from_document.
+
+ * src/shortcuts.cpp: `, shift-` to navigate the history of zooms. Ctrl-r, Ctrl-b to
+ toggle rulers and scrollbars.
+
+ * src/interface.cpp: Added next/prev zoom commands in the view menu. Added three
+ toggle commands (grid, rulers, scrollbars) in the view menu.
+
+ * src/widgets/ruler.cpp: Use fixed smaller font size, defined in widget-sizes.
+
+2004-01-10 bulia byak <bulia@users.sourceforge.net>
+
+ * src/draw-context.cpp: Changed alt to shift for one-handle drag.
+
+2004-01-10 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/desktop-events.cpp, src/desktop-snap.cpp, src/draw-context.cpp,
+ src/gradient-chemistry.cpp, src/selection-chemistry.cpp,
+ src/seltrans.cpp, src/sp-shape.cpp:
+ Address some `-Wshadow' warnings.
+
+ * src/attributes.cpp, src/color.cpp, src/inkscape.cpp,
+ src/interface.cpp, src/helper/units.h, src/libnrtype/nr-type-xft.cpp,
+ src/svg/svg-color.cpp, src/widgets/gradient-vector.cpp:
+ Address some `-Wwrite-strings' warnings.
+
+ * src/document.h, src/document.cpp,
+ src/prefs-utils.h, src/prefs-utils.cpp,
+ src/select-toolbar.cpp,
+ src/helper/unit-menu.h, src/helper/unit-menu.cpp,
+ src/libnr/nr-object.h, src/libnr/nr-object.cpp:
+ Mark some pointer function arguments as not being written through.
+
+ * src/path-chemistry.cpp (sp_selected_path_combine): Fix what appears
+ to be a memory leak. Change string concatenation from Omega(n^2) to
+ Omega(n).
+
+2004-01-09 bulia byak <bulia@users.sourceforge.net>
+
+ * src/zoom-context.cpp: Added drag tolerance
+
+ * src/widgets/widget-sizes.h: Spinbutton steps defined here
+
+ * src/widgets/spw-utilities.cpp,h: New function for recursively searching widgets for data
+
+ * src/select-context.cpp: Alt-x activates aux toolbar
+
+ * src/select-toolbar.cpp: Implement esc, ctrl-z, up/down, pgup/pgdn, tab in the aux
+ toolbar, identified default spinbutton for activating by alt-x
+
+ * src/nodepath.cpp: Fix for uninitialized variable, reported by Bob Jamison
+
+ * src/draw-context.cpp: Fix for 873092; Never snap if hitting anchor
+
+2004-01-08 bulia byak <bulia@users.sourceforge.net>
+
+ * src/select-context.cpp: Fixed ctrl-drag (without breaking ctrl-click)
+
+ * src/verbs.cpp: Tooltip edits
+
+ * src/desktop.cpp: Changed initial statusbar message (suggested by Daniel Diaz)
+
+ * src/tools-switch.cpp src/nodepath.cpp src/selection.cpp: Edited statusbar messages,
+ made them translatable
+
+2004-01-08 Nathan Hurst <njh@mail.csse.monash.edu.au>
+
+ * src/helper, src/libnr and various: removed senescent code inside
+ #if 0s and changed scoping of variables to be close to use. minor
+ performance tweeks.
+
+2004-01-08 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/widgets/sp-color-notebook.cpp (getCurrentSelector): Address
+ unsignedness warning (thus fixing a minor buglet).
+
+ * Too many files to list (58 .cpp files, phew!): Address `missing
+ initializer for member _GTypeInfo::value_table' warnings.
+
+ * src/toolbox.cpp, src/helper/sp-canvas.cpp: Address miscellaneous
+ other `missing initializer' warnings.
+
+ * src/libnr/nr-values.h, src/libnr/nr-values.cpp: Add `Point
+ component_vectors[2]' global constant (moved from desktop-snap.cpp).
+
+ * src/sp-namedview.cpp:
+ Combine SPNamedview .hguides & .vguides into .guides.
+ Combine .gridspacingx, .gridspacingy scalars into .gridspacing Point.
+ Consequently reduce copy&paste code both here & in callers.
+
+ * src/sp-guide.h, src/sp-guide.cpp (sp_guide_moveto,
+ sp_guide_position_set): Take a scalar (.position value) as argument,
+ not a point.
+ (sp_guide_position_from_pt): new function. Adapt callers.
+ (sp_guide_description): New function.
+ (sp_guide_compare): Remove, not used.
+ Change SPGuide.orientation (horizontal/vertical enum) to .normal (a
+ Point to be used with dot product), as a step towards allowing
+ arbitrary-direction guide lines.
+
+ * src/desktop-events.cpp: Adapt to SPGuide change.
+ Remove some #if 0'ed code that would otherwise require updating.
+
+ * src/desktop-snap.h, src/desktop-snap.cpp: Convert some pass-by-value
+ Point arguments to const references. Unexport
+ sp_desktop_dim_snap_list_scale. Adapt to above changes.
+
+ * src/dialogs/desktop-properties.cpp: Adapt to .gridspacing change.
+
+2004-01-07 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/geom.h, src/geom.cpp (sp_intersector_line_intersection):
+ change arguments from `Point' to `Point const &'.
+
+ * src/libnr/nr-types.h: Move cross to its sole user, src/geom.cpp.
+
+2004-01-06 bulia byak <bulia@dr.com>
+
+ * src/widgets/spw-utilities.cpp,h: Recursive font setting functions
+
+ * src/widgets/widget-sizes.h: New: defines sizes and intervals, for toolbars etc.
+
+ * src/select-toolbar.cpp src/helper/unit-menu.cpp src/toolbox.cpp,h: Use
+ widget-sizes.h and recursive font_set
+
+2004-01-06 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/desktop-snap.cpp: Make the `horizontal' and `vertical'
+ global constants be static.
+ Similarly, make functions sp_intersector_a_vector_snap,
+ sp_desktop_dim_snap_list static.
+
+ * configure.in: Fix sigc++ checking code: add it to the existing
+ PKG_CHECK_MODULES(INKSCAPE, ...) list instead of modifying
+ $CXXFLAGS,$LIBS.
+
+ * distro: Remove some bashisms: change `function f {...}' to
+ `f () {...}', and invoke self with `sh' rather than `bash'.
+
+ Also change a strange-looking "tr ' ' ' '" to "tr -s ' '", as
+ a guess as to the intended meaning. (The actual meaning of the
+ original is a noop.)
+
+2004-01-06 bulia byak <bulia@dr.com>
+
+ * src/document-undo.cpp src/document.h: Undo and redo now return gbooleans
+
+ * src/selection-chemistry.{cpp|h}: sp_undo, sp_redo: new, with statusbar
+ diagnostics. Duplicate command adds statusbar diagnostics, places duplicate
+ into the source's parent instead of document root
+
+ * src/verbs.cpp: Use sp_undo, sp_redo. Tooltip edits
+
+ * src/toolbox.cpp src/toolbox.h: New aux_toolbox_space()
+
+ * src/interface.cpp: New commands in view (cycling desktops) and dialogs (hide dialogs)
+
+ * src/main.cpp: Removed unneeded include
+
+ * src/select-toolbar.cpp src/select-toolbar.h: New selector aux toolbar with XYWH
+ spinbuttons (taken mostly from the size&position dialog)
+
+ * src/toolbox.cpp src/toolbox.h: Removed selector aux toolbar code from here
+
+ * src/helper/unit-menu.cpp: Use abbreviations in the unit menu
+
+ * src/widgets/sp-widget.cpp: Added checks that the inkscape object is valid before
+ disconnecting SPWidget from it
+
+2004-01-06 MenTaLguY <mental@rydia.net>
+
+ * src/Makefile.am: removed monostd.h
+
+ * src/sp-item.cpp, src/uri-reference.h, src/uri-reference.cpp:
+ redid URI reference stuff a bit
+
+2004-01-06 Nathan Hurst <njh@mail.csse.monash.edu.au>
+
+ * src/desktop-snap.{h,cpp} is now built using NR::Point.
+
+2004-01-06 Nathan Hurst <njh@mail.csse.monash.edu.au>
+
+ * src/draw-context.cpp closing a segment now remains snapped.
+ Lots of snapping fixes.
+
+2004-01-05 MenTaLguY <mental@rydia.net>
+
+ * src/uri-references.cpp, src/uri-references.h,
+ src/uri.cpp, src/uri.h, sp-item.cpp:
+ new URI code
+
+2004-01-04 MenTaLguY <mental@rydia.net>
+
+ * src/object-ui.cpp: flattened group submenu
+
+ * src/uri-references.cpp: fixed initialization bug; for
+ pre-existing references, the "release" signal wasn't being
+ connected
+
+2004-01-04 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/helper/bezier-utils.cpp: Greater use of NR::Point instead of
+ NRPoint. (Readability improved as a result.)
+ Get rid of now-unused sp_vector_add etc. functions.
+ Get rid of MAXPOINTS fixed upper limit, in the process making more efficient.
+ NewtonRaphsonFindRoot: handle the case where f'(u) <= 0. (Previously
+ it would seek a local maximum instead of minimum in this case.)
+ Rename lots of static functions according to our coding standards.
+ Fix some documentation.
+ Filter out any NaN points in the input.
+ Change the iteration cutoff from the square of the requested error to
+ 3 * the requested error. Change the "acceptable error" test from `<'
+ to `<='.
+ * src/helper/bezier_utils.h (sp_bezier_fit_cubic_full): change
+ arguments from NRPoint to NR::Point.
+ * src/sp-spiral.cpp: Adapt to sp_bezier_fit_cubic_full change.
+ Greater use of NR::Point instead of NRPoint.
+
+ * src/helper/curve.h, src/helper/curve.cpp (sp_curve_moveto,
+ sp_curve_lineto, sp_curve_curveto): Add convenience wrappers that
+ take n NR::Point's instead of 2*n gdoubles.
+
+ * src/helper/curve.h, src/helper/curve.cpp: Indicate that certain
+ functions don't modify the curve passed to them.
+
+ * src/libnr/nr-types.h: operator[], operator+=, operator/=, unary operator-,
+ operator==, operator!=: new. Remove methods L1,L2,Linfty, move them to
+ functions in nr-point-fns.{h,cpp}. Rename Normalize to normalize with
+ more sophisticated non-inline implementation in nr-types.cpp.
+ * src/libnr/{nr-types.cpp,nr-point-fns.h,nr-point-fns.cpp}: new files.
+ * src/libnr/nr-types-test.cpp: new unit test file.
+ * src/libnr/Makefile.am: mention the new files.
+
+ * src/Makefile.am: Add `check-recursive: all-recursive' dependency
+ (and a comment with related discussion).
+
+ * src/xml/Makefile.am: Append $(EXEEXT) to executables in TESTS.
+
+ * src/verbs.cpp (sp_action_get_title): Get rid of fixed-sized buffer.
+
+ * src/nodepath.cpp: Miscellaneous cleanups including fixing
+ erroneous indentation, changing `g_list_length(foo) == 0' to `foo
+ == NULL', removing unused function closest_of_three, specifying
+ some functions as `static', adding doc.
+
+ * src/inkscape.cpp (inkscape_remove_desktop): Change
+ `g_slist_length (foo) == 0' to `foo == NULL'.
+
+ * src/dyna-draw-context.cpp (fit_and_split_calligraphics): Fix the
+ calculation of BEZIER_MAX_LENGTH.
+ Add assertions that the corresponding buffers haven't been overrun.
+
+2004-01-03 Ted Gould <ted@gould.cx>
+
+ * src/helper/bezier-utils.cpp, src/inkscape-stock.h:
+ Fixing some Doxygen errors.
+
+2004-01-03 bulia byak <bulia@dr.com>
+
+ * src/dialogs/dialog-events.{cpp|h}: Hide/unhide callbacks
+
+ * all dialog files: Connected hide/unhide signals
+
+ * src/inkscape.cpp src/inkscape.h: New functions for dialog hide, unhide, toggle
+
+ * src/verbs.cpp src/verbs.h: New verb for dialog toggle
+
+ * src/shortcuts.cpp: F12, quoteleft toggle dialogs
+
+ * src/desktop.cpp: Zoom field width increased
+
+ * src/node-context.cpp: Crash fix by Robert Crosbie
+
+2004-01-03 MenTaLguY <mental@rydia.net>
+
+ * src/inkscape.cpp, src/inkscape.h, src/main.cpp:
+ fixes to preference loading
+
+ * src/uri-reference.h: documented Inkscape::URIReference
+
+ * src/sp-item.cpp: fixed double hunref problem
+
+ * src/sp-item.cpp, src/uri-references.h, src/uri-references.cpp:
+ reworked Inkscape::URIReference a little
+
+ * src/sp-item.cpp: masks now use Inkscape::URIReference as well
+
+2004-01-02 MenTaLguY <mental@rydia.net>
+
+ * src/shortcuts.cpp: zoom in shortcut fix for german and other
+ keyboards from schumaml
+
+ * configure.in: added SigC++ 1.2 dependency
+
+ * src/document-private.h, src/document.h, src/document.cpp,
+ src/sp-item.h, src/sp-item.cpp, src/uri-reference.h,
+ src/uri-reference.cpp: rewrote URI monitoring code using SigC++
+
+ * src/inkscape.cpp: fix some portability issues
+
+ * src/inkscape.cpp, src/widgets/icon.cpp, src/monostd.h: cleaning up
+ more platform stuff
+
+ * src/dir-util.cpp, src/dir-util.h, src/dialogs/export.cpp:
+ remove sp_filename_from_path(); use g_path_from_filename instead
+
+2004-01-02 Alexander Clausen <alex@skip86.com>
+
+ * src/spsvgview.cpp src/inkview.cpp src/Makefile.am: re-enabled svg viewer,
+ renamed to inkview to avoid name clash with spsvgview from sodipodi
+
+2004-01-01 bulia byak <bulia@dr.com>
+
+ * src/desktop.cpp: Pass keyboard events from desktop widget to event contexts (if
+ there is no current item on the canvas); now all keys work regardless of mouse
+ position, so long as the document window has focus.
+
+ * src/verbs.cpp src/verbs.h: New verbs for switching desktops
+
+ * src/inkscape.cpp src/inkscape.h: New functions for switching desktops
+
+ * src/nodepath.cpp: Fix crash: Tab when no nodepath
+
+ * src/shortcuts.cpp: Ctrl-Tab, Shift-Ctrl-Tab cycle desktops
+
+ * src/node-context.cpp src/event-context.cpp src/select-context.cpp: Do not consume
+ Ctrl-Tab/Shift-Ctrl-Tab in contexts. Explicitly run the corresponding verb in
+ event-context.cpp because otherwise GTK gobbles it.
+
+ * src/splivarot.cpp: Edits in statusbar error messages
+
+2004-01-01 MenTaLguY <mental@rydia.net>
+
+ * src/document-private.h, src/document.h, src/document.cpp,
+ src/sp-item.h, src/sp-item.cpp, src/uri-reference.h,
+ src/uri-reference.cpp:
+ added code to handle notifications when uri/id mappings
+ changed
+
+ * src/desktop.cpp, src/style.cpp: compilation cleanups
+
+ * src/libnr/nr-types.h: documented NR::Coord and NR::ICoord
+
+2003-12-31 MenTaLguY <mental@rydia.net>
+
+ * removed *S variants of NR structs
+
+ * src/libnr/gen_nr_config.c: removed!
+
+ * src/xml/repr.h, src/xml/repr-private.h, src/xml/repr-io.cpp,
+ src/xml/repr.cpp: very preliminary comment support
+
+ * configure.in, src/desktop.cpp, src/main.cpp: removed gtkmm
+ dependency for now
+
+2003-12-30 bulia byak <bulia@dr.com>
+
+ * src/selection-chemistry.cpp: Grouping: Statusbar messages for nothing to group or
+ only one object, prevent crash when trying to group objects with different parents,
+ add new group to the members' common parent rather than to the document
+ root. Ungrouping: ungroup all groups in selection, statusbar messages for nothing to
+ ungroup.
+
+ * src/node-context.cpp src/node-context.h src/knotholder.h src/knotholder.cpp
+ src/nodepath.h src/nodepath.cpp src/document-undo.cpp: Add repr listener in node
+ context recreating nodepath or knotholder when the repr was changed outside of the
+ node editor, remove the change selection signal hack in document_undo, fixes many
+ bugs.
+
+2003-12-28 Daniel Borgmann <spark@mayl.de>
+
+ * src/main.cpp: Include gtkmm/main.h and gtkmmify the main loop
+
+ * src/desktop.cpp: convert save confirmation dialog to Gtkmm
+
+2003-12-28 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/helper/Makefile.am: Try not to require Gnu make.
+
+2003-12-27 Alexander Clausen <alex@skip86.com>
+
+ * src/interface.{h,cpp} (sp_ui_error_dialog): new function.
+
+ * src/file.cpp src/main.cpp src/dialogs/export.cpp src/interface.cpp: use it
+
+2003-12-27 bulia byak <bulia@dr.com>
+
+ * src/draw-context.cpp: Added drag_tolerance to bezier tool, messages to statusbar
+
+ * src/knot.cpp: Do not consume Esc when not escaping knot dragging
+
+ * src/select-context.cpp: Enable dragging objects selected within group
+
+2003-12-27 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/helper/bezier-utils.cpp: Simplifications & documentation.
+
+2003-12-26 bulia byak <bulia@dr.com>
+
+ * src/document.cpp: added rel2abs to sp_document_set_uri, simplified
+
+ * src/document.cpp: removed rel2abs into dir-util
+
+ * src/dir-util.cpp src/dir-util.h: moved rel2abs and abs2rel here
+
+ * src/modules/svg.cpp: Cleaned up svg_save: removed extraneous setting of docbase and
+ docname, moved uri_set before save, added comments
+
+ * src/document.h src/document.cpp src/desktop.h src/desktop.cpp: item_at_point: add
+ into_groups; group_at_point: new
+
+ * src/selection.cpp: When selecting a group, deselect all its descendants to prevent
+ double selection
+
+ * src/select-context.cpp src/select-context.h: Added ctrl-click/ctrl-shift-click to
+ select/add to selection regardless of grouping
+
+ * src/verbs.cpp: 2 more mnemo changes
+
+2003-12-26 Nathan Hurst <njh@mail.csse.monash.edu.au>
+
+ * libnr: moving towards a fully class based Point and Matrix.
+ This change adds an initial sketch of matrix.
+
+2003-12-26 MenTaLguY <mental@rydia.net>
+
+ * configure.in: added Gtkmm dependency, removed AC_FUNC_MALLOC
+
+2003-12-25 MenTaLguY <mental@rydia.net>
+
+ * src/desktop.cpp: changed g_sprintf to g_strdup_printf
+
+2003-12-25 Daniel Borgmann <spark@mayl.de>
+
+ * src/interface.cpp src/verbs.cpp: Fixed a few more mnemonics (mostly
+ duplicates) and changed shortcut labels to use uppercase letters like the
+ rest of the world. :-)
+
+2003-12-25 Alexander Clausen <alex@skip86.com>
+
+ * src/file.cpp src/main.cpp src/dialogs/export.cpp: Made error dialogs
+ and progressbar transient and non-resizable; made export file selector
+ transient.
+
+2003-12-24 bulia byak <bulia@dr.com>
+
+ * src/select-context.cpp: Added statusbar update in a few places
+
+ * src/interface.cpp: Changed order of keyboard modifiers. Split view and object menus.
+
+ * src/verbs.cpp: A couple fixes in mnemonics to better match shortcuts
+
+ * samples/tux.svg: Added missing sodipodi namespace, added namedview
+
+2003-12-24 Alexander Clausen <alex@skip86.com>
+
+ * src/file.cpp src/modules/system.cpp: Fix for 860199; returning NULL in
+ sp_module_system_open when doc == NULL; added error dialog.
+
+ * src/main.cpp: Add error dialog when file given on command line does not
+ exist, and create an empty document in that case.
+
+2003-12-24 MenTaLguY <mental@rydia.net>
+
+ * src/verbs.cpp: renamed 'XOR' to 'Exclude' on the menu
+
+ * src/object-ui.cpp: moved object-specific menuitems out onto the
+ main context menu, instead of sequestered in their own submenus.
+
+2003-12-24 Alexander Clausen <alex@skip86.com>
+
+ * src/interface.cpp:
+ Added partial DND (drop part only for now) for image/svg and image/svg+xml,
+ and a tweak to make uri-dnd with konqueror work.
+
+2003-12-24 Daniel Borgmann <spark@mayl.de>
+
+ * src/interface.cpp src/verbs.cpp src/object-ui.cpp src/modules/menu.cpp:
+ Added mnemonics and some HIGification
+
+ * src/verbs.cpp: New: sp_action_get_title(), get action name without
+ underscores (for use in dialog titles or other places without mnemonics)
+
+2003-12-23 bulia byak <bulia@dr.com>
+
+ * src/helper/sp-canvas.h: float-to-double fix
+
+ * src/sp-namedview.h src/sp-namedview.cpp: New namedview attributes for zoom and
+ window geometry; functions for updating them from a desktop and for setting up a
+ desktop from these attributes
+
+ * src/preferences-skeleton.h: new options.savewindowgeometry
+
+ * src/attributes.h src/attributes.cpp: New namedview attributes
+
+ * src/desktop.cpp: Remove/comment out extraneous code. Float-to-double fixes, prevent
+ sliding when zooming in at max zoom.
+
+ * src/file.cpp src/main.cpp src/interface.cpp: Added document_from_window and
+ window_from_document hooks to file opening and saving functions
+
+ * src/document.cpp: New: inkscape_rel2abs() (based on g_rel2abs by Shigio Yamaguchi),
+ store absolute filenames in document->uri. Fixed reading namedview template from
+ preferences, fixed namedview template id, added comments.
+
+ * src/nodepath.cpp: Ctrl + click node: delete node
+
+ * src/desktop.cpp src/file.cpp src/file.h: New save confirm dialog (patch by spark)
+
+2003-12-23 MenTaLguY <mental@rydia.net>
+
+ * src/desktop.cpp: shortened rulers to canvas dimensions for now
+
+ * src/main.cpp, src/Makefile.am: renamed DATADIR to INKSCAPE_DATADIR
+ for the remaining platforms
+
+2003-12-23 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/desktop-snap.h, src/desktop-snap.cpp (all functions):
+ Indicate that the given point(s) aren't modified by these functions.
+
+2003-12-22 bulia byak <bulia@dr.com>
+
+ * src/nodepath.cpp: Ctrl + Alt + click node: toggle smooth/cusp/symmetric.
+
+ * src/select-context.cpp: No more snapping back to the origin because of drag
+ tolerance (once you trespass the drag tolerance limit once, it does not affect you
+ anymore).
+
+ * src/knot.cpp: Used global drag tolerance, no snapping to the origin.
+
+ * src/node-context.cpp: Click outside of nodepath deselects. Added drag tolerance for
+ selecting non-selected paths by click. Removed drag_escaped - there's no dragging to
+ escape in node context (only in knot).
+
+2003-12-22 bulia byak <bulia@dr.com>
+
+ * src/nodepath.cpp src/nodepath.h>: restrict control handle movement with ctrl, alt,
+ shift; utility functions for radial coordinates; fixed several crashes when nodepath
+ operations are called but there's no nodepath
+
+ * src/desktop.cpp: filled in sp_desktop_set_coordinate_status implementation, added
+ comment
+
+2003-12-22 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/helper/bezier-utils.cpp (sp_darray_center_tangent,
+ sp_darray_left_tangent, sp_darray_right_tangent),
+ src/helper/bezier-utils.h, src/sp-spiral.h, src/sp-spiral.cpp
+ (sp_spiral_get_tangent):
+ Make these functions static.
+
+ * src/helper/bezier-utils.cpp (GenerateBezier): Back out accidental
+ commit of inserted g_assert(!isnan(bezier coordinate)). (Having a NaN
+ bezier coordinate is usually a problem, perhaps worth warning about,
+ but it's hard to make it impossible, so it shouldn't be g_assert.)
+ Reported by bulia byak.
+
+2003-12-22 Nathan Hurst <njh@mail.csse.monash.edu.au>
+
+ * Added a new class NR::Point which will replace NRPoint
+ throughout the code, and replace things like .cx, .cx in the
+ circle structure.
+
+2003-12-21 MenTaLguY <mental@rydia.net>
+
+ * Finally cleaned up the linker issues
+
+2003-12-21 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/Makefile.am (inkscapelib_src):
+ src/livarot/Makefile.am (libvarot_a_SOURCES):
+ Add some header files to SOURCES, so that `make distcheck' works.
+
+ * src/style.cpp (sp_style_read_ipaint): Skip leading whitespace.
+ Fixes #853804. Improves rendering of Dia-exported SVG.
+
+2003-12-20 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/sp-spiral.cpp (sp_spiral_set): Fix clamping of t0 value: change
+ min from -1.0 to 0.0 as per all other t0 clamps and as required in some
+ circumstances by sp_spiral_get_xy.
+ (sp_spiral_fit_and_draw): Avoid useless adjacent dups in point sampling.
+
+ (sp_spiral_fit_and_draw, sp_spiral_set_shape): Call proper tangent
+ routine instead of trying to estimate from samples.
+ (sp_spiral_get_tangent): New function.
+
+ * src/helper/bezier-utils.cpp (sp_bezier_fit_cubic): Implement as a call
+ to sp_bezier_fit_cubic_r.
+ (sp_bezier_fit_cubic_full): Mark *tHat1 and *tHat2 as const.
+ (sp_bezier_fit_cubic_full, ChordLengthParameterize): Add minimal
+ handling for the case where the input data is a zero-length path.
+ (NewtonRaphsonRootFind): If "improved" value is NaN or +/-inf then
+ return the original.
+
+ * src/libnr/nr-macros.h (CLAMP): Change the behaviour if the first
+ argument is NaN: previously it would return NaN, now it returns the
+ requested lower bound. Document the behaviour. Add an assertion that
+ the requested lower bound <= the requested upper bound.
+
+ * src/libnrtype/nr-type-ft2.cpp (nr_typeface_ft2_lookup): Change apparently-erroneous
+ arguments to CLAMP, and add a FIXME comment indicating that the new arguments are
+ just a guess as to the original intent.
+
+2003-12-20 MenTaLguY <mental@rydia.net>
+
+ * src/help.cpp, glade/about_svg.tmpl, glade/about.svg:
+ fixed version display in about box
+
+ * src/desktop.cpp, src/desktop.h, src/document.cpp, src/document.h:
+ added sp_desktop_item_at_point()
+
+2003-12-19 bulia byak <bulia@dr.com>
+
+ * src/sp-item.cpp src/sp-item.h: new sp_item_get_arenaitem (by mental)
+
+ * src/main.cpp src/file.cpp src/file.h src/dialogs/export.cpp: export UI improvements
+ (patches from the tracker)
+
+ * src/select-context.cpp: shift-click selection is now in root_handler, uses
+ sp_document_item_at_point(); changed shift-rubberband selection to always select
+ instead of toggle
+
+ * src/document.h src/document.cpp: wrong order of arguments in overlap() fixed; new:
+ sp_document_item_at_point(), uses sp_item_get_arenaitem
+
+ * src/Makefile.am: fix: ps.c -> ps.cpp
+
+ * src/nodepath.cpp: dragging node with ctrl+alt restricts it to the directions of its
+ handles and their perpendiculars
+
+2003-12-19 MenTaLguY <mental@rydia.net>
+
+ * Fixed most shortcut key regressions from the SPAction rework
+
+ * Renamed the Inkscape class (struct really) to Inkscape::Application; we can now
+ use the Inkscape namespace.
+
+ * src/toolbox.cpp, src/helper/action.cpp, src/helper/action.h:
+ SPActions now know their desktop, and toolbar buttons get it assigned correctly
+
+ * src/desktop.cpp, src/interface.h, src/interface.cpp, src/verbs.cpp:
+ Verbs now use the desktop associated with an action rather than SP_ACTIVE_DESKTOP
+
+2003-12-18 Jon A. Cruz <jon@joncruz.org>
+
+ * fix for 859133; Reduced number of generated events.
+
+2003-12-18 Jon A. Cruz <jon@joncruz.org>
+
+ * src/widgets/sp-color-gtkselector.cpp: fix for 859131; Changed descriptive name of GTK+
+ selector.
+
+2003-12-18 MenTaLguY <mental@rydia.net>
+
+ * First steps towards making actions per-view
+
+2003-12-17 Jon A. Cruz <jon@joncruz.org>
+
+ * src/widgets/sp-color-notebook.cpp: fix for 859128; changed selectors to grow when
+ given more space.
+
+2003-12-17 Jon A. Cruz <jon@joncruz.org>
+
+ * Converted color selectors to C++ classes.
+
+2003-12-18 Nathan Hurst <njh@csse.monash.edu.au>
+
+ * Merged NRPointF and D, similarly Matrix and Rect.
+
+2003-12-18 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/toolbox.cpp: re-added spiral button (reverting MenTaLguY's change).
+
+2003-12-17 bulia byak <bulia@dr.com>
+
+ * src/xml/repr-io.cpp src/xml/repr.h: fix to suppress formatting whitespace when
+ serializing text and its children
+
+ * src/select-context.cpp: shift now prevents dragging objects, creating rubberband
+ instead
+
+2003-12-17 Nathan Hurst <njh@csse.monash.edu.au>
+
+ * provided some initial thoughts on how to do Points uniformly across inkscape. geom.h
+ * partial currying of zoom menu
+
+2003-12-17 MenTaLguY <mental@rydia.net>
+
+ * src/toolbox.cpp: removed spiral button
+
+2003-12-16 bulia byak <bulia@dr.com>
+
+ * src/nodepath.cpp src/nodepath.h: node drag is now restricted to hor/vert by ctrl
+
+2003-12-16 bulia byak <bulia@dr.com>
+
+ * src/seltrans.cpp: fix for 860201; ctrl restricts rotation by 15 degrees (from
+ sodipodi); used new status display function
+
+ * src/sp-text.cpp: removed non-printable char error into text-context, removed
+ extraneous assignment
+
+ * src/verbs.cpp: typo fix
+
+ * src/knot.cpp: in cancelling drag, use the knot's desktop instead of active; add
+ statusbar flash
+
+ * src/draw-context.cpp: changing useful messages to statusf_flash, removing useless
+ debug output
+
+ * src/nodepath.cpp: statusbar error message if joining nodes fails; expanded
+ update_statusbar
+
+ * src/select-context.cpp: statusbar flash when esc cancels selection or drag
+
+ * src/selection.cpp: expanded update_statusbar
+
+ * src/text-context.cpp: used statusf_flash for no-break space, added non-printable
+ char error
+
+ * src/tools-switch.cpp: added default statusbar message for each tool
+
+ * src/desktop.cpp: new handler for status_set, with timeout; initialize message in
+ statusbar
+
+ * src/view.cpp src/view.h: status_set signal: added msec, removed isdefault; added
+ _flash and _error functions for temporary statusbar display; added docs
+
+2003-12-14 Ted Gould <ted@gould.cx>
+
+ * src/widgets/button.cpp, src/helper/action.h, src/helper/action.cpp,
+ src/verbs.h, src/verbs.cpp, src/toolbox.cpp, src/shortcuts.h,
+ src/shortcuts.cpp, src/interface.h, src/interface.cpp:
+ Adding in a sp_verb_t to identify verbs to make later conversions
+ easier. Also adding an arguement to the perform function of
+ SPActionEventVector so that data can be passed to modules (when
+ they're converted to action/verb).
+
+2003-12-14 MenTaLguY <mental@rydia.net>
+
+ * src/view.h, src/view.c: added new utility things for setting status
+
+ * src/draw-context.c, src/text-context.c, src/view.c, src/view.h:
+ retired sp_status_display() and sp_status_clear()
+
+2003-12-14 bulia byak <bulia@dr.com>
+
+ * src/verbs.h src/verbs.c: changed 'offset' to 'outset' (more logical), added simplify
+ path command
+
+ * src/interface.c: added sp_key_name to make shortcuts more readable, added simplify
+ path command, regrouped commands more logically
+
+ * src/shortcuts.c: changed shortcuts for boolean ops, readability, minor cleanups
+
+ * src/inkscape.c: increased max length of recent documents list to 15, fixed trimming
+ the list
+
+ * src/seltrans.c: fixed crash when scaling very small objects at max zoom
+
+2003-12-12 MenTaLguY <mental@rydia.net>
+
+ * doc/Makefile.am, Makefile.am, configure.in: include doc/
+ subdirectory in distribution tarballs
+
+ * src/widgets/icon.c: final tweaks for getting icon highlights
+ right on buttons (temporary hack, hopefully)
+
+ * src/splivarot.cpp: compilation fix
+
+ * src/widgets/sp-color-notebook.c: minor tweak so selector menu
+ is a little more obvious
+
+2003-12-12 bulia byak <bulia@dr.com>
+
+ * src/svg/svg-path.c src/desktop.h src/libnr/gen_nr_config.c src/libnr/nr-object.c
+ src/libnr/nr-types.h: made all floats doubles and all shorts ints in libnr; maximum
+ zoom is increased to 256; SVG paths are stored with 8 digits precision (was 6)
+
+2003-12-11 bulia byak <bulia@dr.com>
+
+ * src/node-context.c adding node edit statusbar updates
+
+ * src/selection.c: update statusbar only if selector is active
+
+ * src/tools-switch.c: update statusbar when selector is activated
+
+ * src/nodepath.c src/nodepath.h: function for node edit statusbar display; fixes for
+ several tab-cycling and node-deleting bugs
+
+ * src/sp-path.c: added description for SPPath (used in statusbar display)
+
+ * src/draw-context.c: moved some messages from console to statusbar
+
+ * src/view.c src/view.h: utility functions for statusbar display
+
+ * src/text-context.c: statusbar display for unimode
+
+2003-12-10 Ted Gould <ted@gould.cx>
+
+ * configure.in: Changing to 0.37cvs
+
+2003-12-10 bulia byak <bulia@dr.com>
+
+ * src/verbs.c: SELECT_ALL is now tool-sensitive, comments
+
+ * src/shortcuts.c: ctrl-a for the SELECT_ALL global verb; h and v for flips
+
+ * src/interface.c: split edit menu into edit and object
+
+ * src/node-context.c: removed ctrl-a, now taken care of by the global verb
+
+ * src/nodepath.c: select_all silently returns if given null arg
+
+ * doc/keyboard-shortcuts.txt: new shortcuts from wiki
+
+2003-12-09 bulia byak <bulia@dr.com>
+
+ * src/helper/png-write.c: fix for png comments (from sodipodi)
+
+ * src/nodepath.c: fix for 856700, 856686; a better control point positioning for
+ join_segment
+
+ * src/shortcuts.c: fix default shortcut for star tool
+
+ * src/prefs-utils.c src/prefs-utils.h: new *_limited functions to get data guarding
+ against through-the-roof values
+
+ * src/select-context.c src/node-context.c: using *_limited functions to get preference
+ values
+
+ * src/document-undo.c: fix in sp_document_maybe_done to combine same-key steps
+
+ * src/selection-chemistry.c src/nodepath.c: put subsequent same-direction arrow-key
+ movements into one undo step
+
+ * src/sp-text.c src/sp-text.h: removed the preservews argument of sp_text_insert
+
+ * src/text-context.c src/text-context.h: if there's no text object selected, keys are
+ not consumed; fixed passing unconsumed keys to parent context; any non-hex-digit now
+ cancels unimode
+
+ * src/dialogs/transformation.c: re-fixing pjrm's fix properly
+
+2003-12-08 bulia byak <bulia@dr.com>
+
+ * src/sp-text.c: fixed typing non-ascii chars; copied (with fixes) treatment of
+ xml:space from sodipodi 0.33
+
+ * src/sp-text.h: small fix from sodipodi 0.33
+
+ * src/text-context.c: copied sp_text_context_preedit_reset and related code from
+ sodipodi 0.33; xml:space='preserve' is added to newly created text objects; esc
+ deselects; uncatched keys are passed on; misc fixes
+
+2003-12-08 MenTaLguY <mental@rydia.net>
+
+ * src/widgets/button.c: put errors to rest for now
+
+ * src/document-undo.c: removed code to limit undo list length
+
+2003-12-07 MenTaLguY <mental@rydia.net>
+
+ * src/widgets/button.c: fixed unsignedness warning
+
+2003-12-06 bulia byak <bulia@dr.com>
+
+ * src/dialogs/align.c: tooltip fix (from sodipodi)
+
+ * src/libnr/nr-stroke.c: fix for 853827, rendering of short paths (from sodipodi)
+
+ * src/sp-text.c src/sp-text.h src/text-context.c: enabled home/end in text (from sodipodi)
+
+ * src/document-undo.c: increased MAX_UNDO to 512
+
+ * src/file.c src/dialogs/export.c: fix for 851012: the smallest possible exported png
+ is now 1x1
+
+ * src/widgets/font-selector.c: fix for 851789: no exponential display in font size field
+
+2003-12-06 MenTaLguY <mental@rydia.net>
+
+ * src/desktop.c: permit the canvas widget to take keyboard focus
+
+ * src/widgets/button.c, src/widgets/button.h: reworked perform
+ callback as separate callback, so we can use
+ g_signal_handlers_{un,}block...() on it rather than the stupid
+ semaphore counter thing I had originally.
+
+ Also switched to sp_icon_new() instead of sp_icon_new_scaled(), as
+ otherwise the small icons were too small (but the large icons are
+ now smaller than they could be... darn it... ><)
+
+2003-12-05 Bryce W. Harrington <brycehar@bryceharrington.com>
+
+ * style.*, sp-path.*, sp-shape.*, more: Hooking up preliminary
+ support for path markers (arrowheads). Also adding
+ documentation, fixing if statement style, etc.
+
+2003-12-05 MenTaLguY <mental@rydia.net>
+
+ * src/widgets/icon.c, src/widgets/button.c, src/widgets/button.h, src/toolbox.c:
+ Reworked SPButton to derive from GtkToggleButton.
+
+ * src/svg/svg-length.c, src/helper/units.c: removed #ifdef WIN32 insanity
+
+ * src/Makefile.am, src/extension.c,
+ src/extension.h, src/extensions-skeleton.h,
+ src/main.c, src/inkscape.c, src/toolbox.c: Removed dead code left
+ over from first extensions implementation
+
+ * configure.in, src/main.c: removed freebsd-specific test and just check for fpsetmask() instead
+
+ * src/verbs.c: fixed quit icon
+
+2003-12-04 bulia byak <bulia@dr.com>
+
+ * src/toolbox.c: added convert to curves button, cosmetic changes in aux toolbar
+
+ * src/text-context.c: made text editing via xml editor undoable
+
+ * src/nodepath.c: new functions to duplicate node, fixes to node_break and selection
+ functions, new (presently unused) functions for saving/restoring node selection
+
+ * src/node-context.c: shift-d to duplicate node, all keys now work regardless of capslock
+
+ * src/document-undo.c: temp fix: undo emits selection_changed signal for node editor
+ to update display
+
+ * src/selection.c: new function without arguments to emit change_selection signal
+
+ * src/selection.h: new function without arguments to emit change_selection signal
+
+ * src/nodepath.h: new functions to duplicate node, new (presently unused) functions
+ for saving/restoring node selection
+
+2003-12-04 MenTaLguY <mental@rydia.net>
+
+ * src/desktop.c: rearranged toolbars so aux toolbar is topmost
+ * src/toolbox.c: made toolbars detachable
+
+2003-12-02 bulia byak <bulia@dr.com>
+
+ * src/file.c: made open and save dialogs modal and transient
+
+2003-12-02 bulia byak <bulia@dr.com>
+
+ * src/interface.c: removed tool attributes command
+ * src/preferences-skeleton.h: added branch for export dialog
+ * src/file.c: made import dialog transient
+ * src/verbs.c: changed some dialog names and tooltips
+ * src/shortcuts.c: changed shortcuts for transform and text dialogs
+ * src/dialogs/display-settings.c: fixed dialog title
+ * src/dialogs/export.c: made unsinkable, remembering size and position, added label
+ for filename
+
+2003-11-30 MenTaLguY <mental@rydia.net>
+
+ * src/xml/repr-io.c, src/attributes.c, src/attributes.h,
+ src/sp-object.h, src/sp-object.c: merged basis for Oka's
+ xml:space support
+
+ * src/toolbox.c: made tool buttons larger, aux buttons smaller
+
+ * src/document-undo.c: fixed bug with undo/redo past the
+ beginning/end of the undo history
+
+2003-11-29 bulia byak <bulia@dr.com>
+
+ * src/selection-ch emistry.c src/selection-chemistry.h src/verbs.c src/verbs.h
+ src/shortcuts.c src/interface.c: new function, verb, shortcut (shift-ctrl-v), menu
+ command: paste style (apply the style of copied object to selection). If more than
+ one object is copied, the first one in the clipboard list is taken as the source of
+ the style.
+
+2003-11-30 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/style.c (sp_style_merge_from_parent): Fix some
+ unsigned-related bugs with "font-weight=lighter",
+ "font-stretch=narrower", "opacity=...".
+
+ * src/modules/system.c (sp_module_system_save): Partial fix for
+ unrecognized filetype: show a CRITICAL warning instead of
+ segfaulting due to uninitialized var.
+
+ * src/document.c (sp_document_new), file.c (file_open_ok,
+ sp_file_open_dialog, sp_file_save_dialog, sp_file_do_import),
+ main.c (sp_main_console), src/module.c (sp_module_finalize,
+ sp_module_input_finalize, sp_module_input_build,
+ sp_module_output_finalize, sp_module_output_build),
+ src/sp-anchor.c (sp_anchor_set), src/sp-image.c (sp_image_set),
+ src/sp-text.c (sp_string_release, sp_string_read_content,
+ sp_string_set_shape), src/sp-use.c (sp_use_release), src/style.c
+ (sp_style_unref, sp_style_merge_property,
+ sp_style_merge_from_parent, sp_text_style_unref,
+ sp_style_read_istring), src/bonobo/embeddable-document.c
+ (sp_bonobo_stream_read, sp_embeddable_document_ps_save),
+ src/dialogs/stroke-style.c (sp_stroke_style_scale_line),
+ src/dialogs/text-edit.c (sp_text_edit_dialog_text_changed),
+ src/helper/sodipodi-ctrl.c (sp_ctrl_build_cache),
+ src/modules/ps.c (sp_ps_print_image),
+ src/widgets/font-selector.c (sp_font_preview_set_phrase),
+ src/widgets/gradient-image.c (sp_gradient_image_size_allocate),
+ src/xml/repr-action.c (coalesce_chgattr, coalesce_chgcontent,
+ free_action), src/xml/repr.c (repr_finalize, sp_repr_merge):
+ Minor cleanup: replace `if (POINTER_EXPR) g_free (POINTER_EXPR)'
+ with the simpler (more readable) `g_free (POINTER_EXPR)'.
+
+2003-11-29 Kees Cook <inkscape@outflux.net>
+
+ * src/utest/.cvsignore: adding "Makefile"
+ * src/desktop.c: sp_desktop_pop_event_context could use uninit'd *ec
+ * src/desktop.h: missing declaration of sp_desktop_zoom_page_width
+ * src/libnrtype/nr-rasterfont.c: give *spx and srs default values
+ * dialogs/dialog-events.c: remove unused *w and *dtw
+
+2003-11-29 MenTaLguY <mental@rydia.net>
+
+ * src/interface.c: switched to GNOME HIG menu style
+
+ * src/toolbox.c: gave the aux toolbox a fixed (minimum) size so
+ the workspace will jiggle less as different tools are selected.
+
+ * src/utest/Makefile.am, src/utest/utest.c, src/utest/utest.h,
+ src/xml/Makefile.am: turned the utest stuff into a giant .h
+ file again, which hopefully won't confuse things like the .inc
+ extension did.
+
+2003-11-29 bulia byak <bulia@dr.com>
+
+ * shortening tooltips, new verb and menu command for zoom to page width
+
+2003-11-29 Bryce Harrington <brycehar@bryceharrington.com>
+
+ * README: Updating "Sodipodi" to "Inkscape", removing some
+ obviously obsolete bits.
+
+ * inkscape.1.in, inkscape.pod: Totally rewriting manpage from
+ scratch. The old one appeared to be for some other application,
+ because it was just a list of options, 90% of which aren't
+ implemented. I chose to do it in POD for convenience, but hand
+ edited the 1.in file to remove bits about "Perl Documentation",
+ etc.
+
+ * General: Some fixes to recently added code that broke the g++
+ compile.
+
+2003-11-29 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * src/utest/Makefile.am, src/utest/utest.c, src/utest/utest.inc,
+ src/utest/utest.h, src/xml/Makefile.am, src/xml/repr-action-test.c:
+ Split utest.inc into utest.h and utest.c. Update users.
+
+ Make utest.c,utest.h formatting conform more to doc/coding-style.txt.
+
+ Have utest.c built into libutest.a (see src/utest/Makefile.am
+ comments).
+
+ * src/xml/repr-action.c (reverse_log): Add doc comment. Rename some vars.
+
+ * src/xml/repr-action.c (sp_repr_replay_log, sp_repr_undo_log),
+ src/xml/repr-action.h, src/document-undo.c (sp_document_cancel,
+ sp_document_redo, sp_document_undo): Remove the unused doc
+ argument to sp_repr_replay_log, sp_repr_undo_log. Update callers.
+
+2003-11-28 Peter Moulder <pmoulder@mail.csse.monash.edu.au>
+
+ * extensions/ai_input.inkmod, extensions/dia.inkmod,
+ extensions/svgz_input.inkmod, extensions/svgz_output.inkmod:
+ Change the filename extension from `foo' to `.foo'; i.e. the
+ filename must end in `.foo' to be considered a match, rather
+ than merely ending in `foo'.
+
+ It appears that the sole users of this data are in src/system.c
+ (open_internal, save_internal).
+
+ I've found no documentation needing updating, according to
+ `rgrep -i extension doc'.
+
+ * src/system.c (open_internal, save_internal): Minor effec tweaks:
+ fewer strlen calculations.
+
+ * src/dialogs/transformation.c: Fix uninitialized-var bug.
+
+2003-11-28 MenTaLguY <mental@rydia.net>
+
+ * src/document.c, src/document-undo.c, src/document-private.h:
+ renamed SPDocumentPrivate::undo_size to ::history_size. Fixed
+ long-standing undo bug, where maybe_done() would neglect to
+ start a new transaction if the previous transaction log were
+ empty.
+
+ * src/xml/repr-action-test.c, src/utest/utest.inc: made test
+ control structure a little clearer (hopefully) by hiding it.
+ Also some initial Doxygenification of the unit testing stuff.
+
+ * src/Makefile.am: added utest/ subdir
+
+ * doc/architecture.svg: reworked architecture diagram a bit
+
+ * doc/class-hierarchy.dia: added first shot at documenting the
+ class hierarchy in Dia
+
+ * src/modules/svg.c, src/modules/win32.c: change "...with
+ xmlns:sodipodi namespace" to "...with extension namespaces"
+
+ * src/xml/repr-action.c: fixed log optimizer to check
+ SPReprAction::type before coalescing adjacent actions
+
+2003-11-27 Bryce <bryce@osdl.org>
+ * doc/architecture.svg: Added architecture.svg to try to capture
+ the subsystems at a block layer level. Defining colors, working
+ up basic structure, etc.
+ * Adding defines, functions, etc. for allowing markers into
+ inkscape-stock.h, sp-marker.*, sp-path.c, sp-shape.h, style.*,
+ and dialogs/stroke-style.c
+ * Added some new UI utility functions to spw-utilities.* and
+ changed dialog/stroke-style.c to use them, in order to simplify
+ redundancies in the code a bit.
+
+2003-11-27 MenTaLguY <mental@rydia.net>
+
+ * src/desktop.c: the coord status bar area should not have a
+ resize handle
+
+2003-11-27 bulia byak <bulia@dr.com>
+
+ * all dialogs remember size and position across sessions
+ * all dialogs are unsinkable (re-transientizing to the current document)
+ * all dialogs are closeable by ctrl-f4 and ctrl-w, defocusable by esc
+ * dialogs titles unified, added shortcut display in the titles
+
+2003-11-27 MenTaLguY <mental@rydia.net>
+
+ * src/utest/Makefile.am, src/utest/utest.inc: new minimalist
+ unit testing framework
+
+ * src/xml/Makefile.am, src/xml/repr-action-test.c: some tests
+ for the XML transaction stuff
+
+ * src/desktop.c: reshuffled the widgets, switched to an embedded
+ toolbox, switched to using real GtkStatusbars for the status bar,
+ and (for the present) nuked the body of
+ sp_desktop_set_coordinate_status() since it had been #ifdeffed
+ out for ages anyway
+
+ * src/desktop.h: removed another constant #ifdef
+
+ * src/widgets/button.c: lobotomized toggle buttons temporarily,
+ so multiple windows having independent tool states wouldn't confuse
+ toolboxes :/ .. the real fix is to rework SPAction and friends
+ to not be so global-minded
+
+ * src/event-context.h: changed sp_ui_generic_menu to
+ sp_ui_context_menu
+
+ * src/interface.c: reworked the menu structure and introduced
+ sp_ui_main_menubar to create the menubar; changed sp_ui_generic_menu
+ to sp_ui_context_menu
+
+ * src/main.c: remove the floating toolbox
+
+ * src/shortcuts.c: remove shortcuts related to the floating toolbox
+
+ * src/verbs.c, src.verbs.h: removing floating toolbox verb
+
+ * src/widgets/sp-toolbox.c,
+ src/widgets/sp-toolbox.h,
+ src/widgets/Makefile.am: nuked floating toolbox window
+
+2003-11-25 bulia byak <bulia@dr.com>
+
+ * src/select-context.c src/preferences-skeleton.h: new option: drag tolerance
+
+2003-11-25 bulia byak <bulia@dr.com>
+
+ * src/dialogs/dialog-events.c src/dialogs/dialog-events.h: new callback and utility
+ functions for defocusing
+ * src/widgets/sp-color-selector.c src/widgets/dash-selector.c
+ src/dialogs/stroke-style.c: spinbuttons, text fields defocus on enter
+
+2003-11-24 bulia byak <bulia@dr.com>
+
+ * src/dialogs/display-settings.c src/display/canvas-arena.c: cursor tolerance now
+ stored in preferences, default changed to 2.0
+
+2003-11-24 bulia byak <bulia@dr.com>
+
+ * src/preferences-skeleton.h: new group for global interface options
+ * src/prefs-utils.h src/prefs-utils.c: new functions for double attributes
+ * src/select-context.c src/node-context.c: nudge distance (without alt) is taken from preferences (default 1 mm)
+
+2003-11-24 bulia byak <bulia@dr.com>
+
+ New keys in node editor:
+ * esc deselects and cancels rubberband and node dragging
+ * ctrl-a selects all nodes
+ * tab and shift-tab cycle through nodes of the current shape
+
+2003-11-23 Bryce Harrington <bryce@osdl.org>
+
+ * Added include for document.h to knot.c for declaring
+ sp_document_undo, as g++ didn't like not having it declared.
+
+2003-11-22 bulia byak <bulia@dr.com>
+
+ * unified handling of arrow keys in selector and node editor
+ * lots of new keys for switching tools and calling dialogs
+ * space works as temporary selector toggle
+ * new: tools-switch.{c,h} utilities for switching tools
+ * cleaned up zoom shortcts (1-5)
+ * keys for toggling grid (#) and guides (|)
+ * esc deselects, cancels rubberband selection, dragging or transformation
+ (in selector)
+ * quit (ctrl-q) now works everywhere
+ * new document is opened on startup if none was given on command line
+ * closing last open document shuts down the program
+ * floating toolbox is at most one copy, as are other dialogs
+ * toolbox command is moved to the dialogs menu, ctrl-` as shortcut
+ * document windows closeable by ctrl-f4
+ * cleaned up status line messages, changed "items" to "objects"
+ * quit confirmation dialog appears near the cursor and is transient
+ * fix: killing quit confirmation dialog was interpreted as No instead
+ of Cancel
+ * preferences are now saved in case of a crash
+ * preferences are saved on exit
+ * new: prefs-utils.{c,h} utilities for handling preferences
+ * misc fixes
+ * misc shortcuts
+
+2003-11-18 Ted Gould <ted@gould.cx>
+
+ * src/modules/system.c: Passed the wrong pointer. Fix is by
+ Robert Crosbie.
+
+2003-11-18 Ted Gould <ted@gould.cx>
+
+ * src/widgets/sp-toolbox.c: Adding in an include for gtkimage.h
+ to get the stock functions. This fixes the build under g++.
+
+2003-11-18 Ted Gould <ted@gould.cx>
+
+ * src/modules/extension.c: Changing mkstemp to g_mkstemp for
+ compatibility.
+
+2003-11-17 Kees Cook <inkscape@outflux.net>
+
+ * configure.in: SF Patch #843537: more cast corrections from joncruz
+
+2003-11-17 Ted Gould <ted@gould.cx>
+
+ * src/modules/init.c: Changing the process for handeling a directory
+ that doesn't exist. Now passing out a warning, and then returning.
+ The warning is on the command line so most users won't have to deal
+ with it (it _shouldn't_ happen anyway ;) Fixes: #843333.
+
+2003-11-17 Kees Cook <inkscape@outflux.net>
+
+ * SF Patch #841940: autoconf update from joncruz
+ * SF Patch #842949: lpr fixes from Lynn Kerby
+ * SF Patch #842951: variable declaration fixes in interface.c
+ * SF Patch #842953: small color picker update from John Bintz
+ * SF Patch #842955: additional Darwin updates from Peter
+ * Fixed stroke style literal string bug that caused warnings
+ * SF Patch #842958: updated inkscape.desktop.in slightly
+ * SF Patch #843170: freetype include corrections
+ * SF Patch #843326: fixups for g++ compilation from joncruz
+ * Adding some more missing "extern C" sections for g++ compiles
+ * Small type corrections to quite g++ during -Wall
+ * Changed all the #endif // __cplusplus into a standard C comment
+
+2003-11-16 MenTaLguY <mental@rydia.net>
+
+ * src/document.c: reworked sp_desktop_items_*in_box family to be layer-aware
+
+2003-11-16 Kees Cook <inkscape@outflux.net>
+
+ * Cleaned up "desactivate" into "deactivate"
+ * Fixed GDK_SCROLL event from mouse wheel scrolling
+ * Cleaned up .cvsignore entries for fewer cvs warnings
+
+2003-11-16 MenTaLguY <mental@rydia.net>
+
+ * dialogs/xml-tree.c: events should not be intercepted for the XML dialog
+
+2003-11-16 MenTaLguY <mental@rydia.net>
+
+ * src/version.c: ME R DUM. Had the arguments to sscanf() reversed.
+
+2003-11-16 Ted Gould <ted@gould.cx>
+
+ * Updating everything so that it builds under g++ again. Much
+ of the updates were to the recently checked in modules code.
+
+2003-11-16 MenTaLguY <mental@rydia.net>
+
+ * New version code (version.c/version.h)
+ * Introduced inkscape namespace in parallel with sodipodi namespace
+ * Fixed a lot of attribute enum names to reflect sodipodi versus inkscape namespaces
+ * src/document.c: new version processing, plus namespace fixes
+ * SP_OBJECT_WRITE_INKSCAPE is now SP_OBJECT_WRITE_EXT
+ * Inkscape and Sodipodi versions are tracked separately
+ * First crack at layers! set inkscape:groupmode to "layer" or "group" depending on how you want a group to behave
+ * A little dead code removal
+
+2003-11-15 MenTaLguY <mental@rydia.net>
+
+ * Mege Jon's improved src/help.c patch from the mailing list (with some temporary cruft of my own that I hope he'll forgive me for)
+
+2003-11-14 Ted Gould <ted@gould.cx>
+
+ * Fixed up the module code alot. Now extentions are usable with
+ a XML file in the /usr/share/inkscape/modules directory.
+
+2003-11-12 Jon Cruz <jon@joncruz.org>
+ * Fix warnings due to missing casts - nr-rasterfont.c (840539)
+ * Fix warnings due to missing casts - desktop-snap.c (840543)
+ * Fix warnings due to missing casts - help.c (840545)
+
+2003-11-11 Robert Crosbie <swingincelt@hotmail.com>
+
+ * Remove kde option from configure (840504)
+ * Remove icon hash from sp_icon_new_full (840506)
+
+2003-11-11 magnethead <magnethead@mindspring.com>
+
+ * src/dialogs/transformation.c (sp_transformation_dialog_new):
+ Removed images from tabs
+ * src/dialogs/object-properties.c (sp_object_properties_dialog):
+ Removed images from tabs
+
+2003-11-11 Ted Gould <ted@gould.cx>
+
+ * Starting 0.36 development
+
+2003-11-10 Ted Gould <ted@gould.cx>
+
+ * Release 0.35
+
+2003-11-08 Bryce Harrington <brycehar@bryceharrington.com>
+ * Updated About dialog
+ * Fixed bug on Editing Windows dialog
+
+2003-11-08 Manny the Gnome
+ * Remove KDE dialog option
+
+2003-11-06 Bulia Byak
+ * Add cursor-key support
+
+2003-10-19 MenTaLguY <mental@rydia.net>
+
+ * src/xml/repr-io.c (sp_repr_svg_read_node): handle CDATA
+ sections properly
+
+ * Most of the tree. Unsodipodified pretty much everything I could
+ find. New temporary icons, etc etc...
+
+2003-10-23 Ted Gould <ted@gould.cx>
+
+ * src/*/Makefile.am: Changing the include paths to make distcheck
+ get closer to passing.
+
+2003-10-22 Ted Gould <ted@gould.cx>
+
+ * configure.in: Changing version to 0.32-hydra1. This is after
+ much discussion and serious contemplation (okay, we never really
+ got out the magic eight ball).
+
+2003-10-22 Ted Gould <ted@gould.cx>
+
+ * src/dialogs/desktop-properties.c, src/widgets/spw-utilities.c,
+ src/widgets/spw-utilities.h: Cleaning up desktop properties by
+ abstracting things into functions. This patch was written by
+ Bryce Harrington and is tracker entry #822497.
+
+2003-10-21 Ted Gould <ted@gould.cx>
+
+ * src/interface.c: Changing it so there is an Open Recent menu on
+ the Sodipodi menu and the toolbar menu. This removes some clutter
+ in the menu. This is tracker entry #820223 and the author is
+ unknown.
+
+2003-10-21 Ted Gould <ted@gould.cx>
+
+ * src/dialogs/text-edit.c: Make it so that changes can be applied
+ to multiple blocks of text. This patch was submitted by Petr
+ Kovar and is tracker #816676.
+
+2003-10-17 Ted Gould <ted@gould.cx>
+
+ * src/dialogs/object-properties.c: Applying a patch by Lynn Kerby
+ which is tracker number 799363. This makes it so that if just
+ the units are changed the object does not get updated.
+
+2003-10-16 Ted Gould <ted@gould.cx>
+
+ * src/Makefile.am: Adding the modules to the linking of the
+ spsvgview executable. This fixes the KDE build. This was tracker
+ issue 819963 but unfortunately we don't know who submitted it.
+
+2003-10-15 Ted Gould <ted@gould.cx>
+
+ * configure.in: Adding a -hydra to the version number.
+
+2003-10-15 Ted Gould <ted@gould.cx>
+
+ * Changelog: Applying the patch from Mental to do transactions
+ in the XML. It is tracker number: 819745. More info to follow
+ which is (written by Mental)
+
+ * src/document-private.h: removed old SPAction struct and
+ modified SPDocumentPrivate to use new SPReprAction type
+
+ * src/document-undo.c: removed all sp_action stuff,
+ sp_document_priv_done(), and all repr callbacks
+ (sp_document_set_sensitive): start/suspend transactions on Repr
+ document
+ (sp_document_done): now just a wrapper for
+ sp_document_maybe_done(), of which it is a special case
+ (sp_document_maybe_done): use new transaction facility, and
+ properly trim undo list size to MAX_UNDO
+ (sp_document_cancel): new SPDocument method for aborting (and
+ undoing) current operation
+ (sp_document_undo, sp_document_redo): rewritten for transactions
+
+ * src/document.c (sp_document_init): updated SPDocumentPrivate
+ initialization
+ (sp_document_destroy): clean up partial action list
+ (sp_document_idle_handler): removed undo stack warning
+ (sp_document_warn_undo_stack): removed
+
+ * src/document.h: added sp_document_cancel()
+
+ * src/sp-object.c (sp_object_invoke_build): minor cleanup
+ (sp_object_repr_child_added, sp_object_repr_remove_child,
+ sp_object_repr_order_changed, sp_object_repr_attr_changed,
+ sp_object_repr_content_changed): removed calls to document
+ callbacks
+
+ * src/dialogs/xml-tree.c: enabled delete button for _all_
+ attributes [I later plann on enabling/disabling it based on
+ a call to the repr's change_attr veto callback]
+ (after_tree_move): roll back the transaction if the node
+ didn't want to be moved
+ (on_attr_select_row_enable): used to be
+ on_attr_select_row_enable_if_not_id()
+ (cmd_indent_node, cmd_unindent_node): removed usage of
+ sp_repr_move in favor of simple operations with transactions
+
+ * src/widgets/sp-xmlview-tree (repoint_nodes): no longer needed
+ (add_node): switched to an if cascade instead of a switch
+ statement, since SP_REPR_TYPE (repr) is no longer an integer
+ (tree_move): use simple operations instead of sp_repr_move
+
+ * src/xml/Makefile.am: added sp-action.c to build
+
+ * src/xml/repr-action.c, src/xml/repr-action.h: transaction
+ logging facility for reprs using linked lists of SPReprAction
+ structs (conceptually, logs)
+
+ * src/xml/repr-private.h: introduced SPReprClass for different
+ node types and added SPRepr::doc field for doc pointer.
+ SPReprDoc is now a proper subclass of SPRepr.
+
+ * src/xml/repr-util.c (sp_repr_move, sp_repr_transfer_ids):
+ removed
+
+ * src/xml/repr.c: added logging macros and SPRepr subclassing
+
+ * src/xml/repr.h: removed sp_repr_move()
+
+2003-10-09 Ted Gould <ted@gould.cx>
+
+ * src/libnrtype/nr-type-directory.c: Applying a patch to
+ fix the compile from Vitaly Lipatov.
+
+2003-10-08 Ted Gould <ted@gould.cx>
+
+ * glade/icons.svg src/nodepath.c src/nodepath.h
+ src/toolbox.c src/dialogs/node-edit.c src/dialogs/node-edit.h:
+ Adding another patch from Bob Jamison which is in the tracker
+ under 819054. This patch adds an alternate join function. It
+ also adds this function to the tool box with an icon.
+
+2003-10-08 Ted Gould <ted@gould.cx>
+
+ * src/.cvsignore: Adding in spsvgview for cleaner diff's
+
+2003-10-08 Ted Gould <ted@gould.cx>
+
+ * src/dialogs/item-properties.c: Submitting a patch from
+ Bob Jamison which is in the tracker under 819043. This adds
+ the ID to the item properties dialog.
+
+2003-10-06 Ted Gould <ted@gould.cx>
+
+ * Changelog: Start of the hydra-october branch
+
+2003-10-06 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/libarikkei/Makefile.am: New stuff from ariariki
+
+ * src/libnrtype/nr-type-xft.c (nr_type_read_xft_list): Moved here
+
+ * src/libnrtype/nr-type-directory.c (nr_type_build): From ariariki
+ (nr_type_read_private_list): Use libarikkei tokenizer
+ (nr_type_register): Made public
+
+ * src/libnrtype/Makefile.am: Added libarikkei stuff
+
+ * configure.in: Added libarikkei/Makefile
+
+2003-09-18 Mitsuru Oka <oka@mediasite.co.jp>
+
+ * Initial IA-64 Linux support.
+
+ * libnr/nr-object.h defined new type NRType.
+
+ * src/desktop.c ... src/modules/win32.h ... many files:
+ modified all of the unsigned int GObject type by GType and
+ unsigned int NRObject type by NRType.
+
+2003-08-17 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/libnrtype/nr-type-ft2.c (nr_typeface_ft2_setup): Check whether font
+ has assigned code points on BMP private area
+ (nr_typeface_ft2_lookup): Map BMP private area directly to glyph index only
+ if it is free, use planes F and 10 for direct mapping
+
+2003-08-17 Danilo Å egan <dsegan@gmx.net>
+
+ * configure.in: Added "sr" and "sr@Latn" to ALL_LINGUAS.
+
+2003-07-23 Dmitry G. Mastrukov <dmitry@taurussoft.org>
+
+ * configure.in: Added Belarusian to ALL_LINGUAS.
+
+2003-07-21 Christian Neumair <chris@gnome-de.org>
+
+ * src/verbs.c: Fix another typo (preciely->precisely).
+
+2003-07-21 Christian Neumair <chris@gnome-de.org>
+
+ * src/widgets/paint-selector.c: Fix a typo (colospace->Colorspace).
+
+2003-07-15 Masatake YAMATO <jet@gyve.org>
+
+ * src/helper/sp-ctrlline.h: Fix a typo(x2->x1).
+
+2003-07-12 Yukihiro Nakai <ynakai@redhat.com>
+
+ * src/text-context.c (sptc_preedit_changed): New signal handler
+ (sp_text_context_setup): Connect "preedit_changed" signal
+ (sp_text_context_root_handler): Return TRUE (needed for Gtk+ IM)
+
+ * src/verbs.c (sp_verbs_init): Wrap action name and tip into _()
+
+2003-07-11 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/event-context.c (sp_event_context_private_root_handler): Handle
+ GDK_SCROLL (thanks to Tomas Znamenacek)
+
+ * src/xml/repr-util.c (sp_xml_dtoa): Do not print trailing zeroes
+
+ * src/xml/repr.c (sp_repr_document_new): Removed ATTLIST xmlns:xlink
+
+ * src/libnr/nr-svp-private.h: New file
+
+2003-07-09 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/libnr/nr-stroke.c: Implement most functionality
+
+ * src/libnr/nr-svp-uncross.c (nr_svl_uncross_full): Process some corner cases
+ properly
+
+2003-07-07 Masatake YAMATO <jet@gyve.org>
+
+ * src/shortcuts.c (sp_shortcut_table_load): set shortcut
+ for SP_VERB_EDIT_SELECT_ALL.
+
+ * src/selection-chemistry.[ch] (sp_edit_select_all): New function.
+
+ * src/verbs.c (sp_verb_action_edit_perform): Added case
+ SP_VERB_EDIT_CLEAR_ALL and SP_VERB_EDIT_SELECT_ALL.
+ (SP_VERB_IS_EDIT): Extended to SP_VERB_EDIT_SELECT_ALL.
+
+2003-07-04 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/svg/svg-length.c (sp_svg_length_set): New method
+
+ * src/sp-spiral.c (sp_spiral_write): Write path here
+
+ * src/sp-image.c (sp_image_repr_read_image): Treat NULL docbase as current directory
+
+ * src/sp-gradient.c (sp_gradient_write): Merged code with flatten_attribute
+ (sp_lineargradient_write): Ditto
+ (sp_radialgradient_write): Ditto
+
+ * src/rect-context.c (sp_rect_context_root_handler): Get motion hints
+
+ * src/helper/sp-canvas.c (SP_CANVAS_UPDATE_PRIORITY): Use higher priority
+
+ * src/document.c (SP_DOCUMENT_UPDATE_PRIORITY): Use higher priority
+
+2003-06-30 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/libnrtype/nr-type-ft2.c (nr_typeface_ft2_glyph_outline_get): Do not
+ load outlines multiple times, fixes serious memleak
+
+2003-06-28 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/dialogs/text-edit.c (sp_text_edit_dialog): Added line spacing combo
+ (sp_text_edit_dialog_update_object): Update line spacing
+ (sp_text_edit_dialog_read_selection): Update control
+
+ * src/sp-text.c (sp_text_set): Parse "sodipodi:linespacing"
+ (sp_text_set_shape): Use line spacing
+
+ * src/attributes.c: Added "sodipodi:linespacing"
+
+2003-06-27 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/dialogs/desktop-properties.c (sp_dtw_border_layer_toggled): New callback
+ (sp_desktop_dialog_new): Added border layer
+ (sp_dtw_update): Track border layer
+
+ * src/spsvgview.c: Implement slideshow
+
+ * src/sp-namedview.c (sp_namedview_set): Track borderlayer
+
+ * src/desktop.c (sp_desktop_new): Add page border directly to
+ main group
+ (sp_dt_namedview_modified): Track border layer
+
+ * src/attributes.c: Added "borderlayer"
+
+2003-06-22 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sp-pattern.c (sp_pattern_update): Implemented, patterns show up again
+ (sp_pattern_painter_new): Painter is not GObject anymore, fixes crash
+ (sp_pattern_painter_free): Ditto
+
+ * src/sp-root.c: Removed namedview tracking
+
+ * src/sp-object-repr.c (sp_object_type_lookup): Do not register GUI types
+ (sp_object_type_register): New method
+
+ * src/sp-namedview.c (sp_document_namedview): Moved it here to clean
+ up dependency chain
+
+ * src/sp-item-group.c (sp_item_group_get_child_by_name): New method
+
+ * src/main.c (sp_main_gui): Register GUI object types
+ (sp_main_console): Ditto
+
+ * src/document.c (sp_document_create): Check for namedview using name only
+
+ * src/Makefile.am (spsvgview_SOURCES): Uncommented spsvgview
+
+ * src/libnr/nr-object.c: Use listener arrays instead of lists
+
+2003-06-20 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * configure.in: Version 0.33pre
+
+2003-06-19 Masatake YAMATO <jet@gyve.org>
+
+ * src/dialogs/desktop-properties.c (sp_color_picker_clicked): Enable "Close"
+ button.
+ (sp_color_picker_window_close): New function.
+
+2003-06-18 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/dialogs/object-properties.c (sp_object_properties_dialog_destroy): Disconnect
+ signals here, fixes crash
+
+2003-06-18 Masatake YAMATO <jet@gyve.org>
+
+ * src/toolbox.c (sp_toolbox_*_create): passed tt to
+ sp_toolbox_new.
+
+ * src/dialogs/align.c (sp_align_add_button): passed a
+ GtkTooltips object to sp_button_new_from_data.
+ (sp_quick_align_dialog): created a new GtkTooltips object
+ and passed it to sp_align_add_button.
+
+ * src/widgets/sp-toolbox.c (sp_toolbox_new): passed a
+ GtkTooltips object to sp_button_new_from_data.
+ Fix a spelling miss.
+
+ * src/widgets/sp-toolbox.h (sp_toolbox_new): passed a
+ GtkTooltips object.
+
+2003-06-17 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sp-image.c (sp_image_set): Fix potential crash
+ (sp_image_update): Move code here, so canvas items do not dereference
+ destroyed pixbuf data
+
+ * src/seltrans.c (sp_sel_trans_handle_request): Reverse shift behaviour for
+ rotation (thanks to Pat)
+
+2003-06-16 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/verbs.c: Added 'print direct' option
+
+ * src/interface.c (sp_ui_file_menu): Added print direct if needed
+
+ * src/toolbox.c (sp_toolbox_file_create): Compose print + print direct if needed
+
+2003-06-15 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/modules/ps.c (sp_module_print_plain_setup): Added bitmap/ps choice and
+ preferred bitmap resolution selector
+ (sp_module_print_plain_finish): If user prefers bitmap printing, composite
+ full page from NRArena here
+
+2003-06-13 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/event-context.c (sp_event_context_private_root_handler): Removed
+ desktop dialog double-click binding
+
+ * src/widgets/icon.c (sp_icon_new_scaled): New method
+ (sp_icon_new_full): Refactored static method
+ (sp_icon_image_load_svg): Use scale factor
+
+ * src/xml/repr-io.c (sp_repr_do_read): Unref node after attaching
+ (sp_repr_svg_read_node): Ditto
+
+ * src/xml/repr.c (sp_repr_document_new): Ditto
+
+2003-06-12 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/modules/ps.c: Ported Ascii85 filter from The GIMP
+
+2003-06-09 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/modules/kde.cpp (sp_kde_get_save_filename): New method
+ (sp_kde_get_write_filename): New method
+ (sp_kde_get_open_filename): Use dir/filter/title
+
+ * src/file.c (sp_file_open_dialog): Use KDE file dialog if WITH_KDE
+ (sp_file_save_dialog): Ditto
+ (sp_file_import): Ditto
+
+2003-06-05 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/print.c: Only high-level stuff
+
+ * src/modules/gnome.c: Moved gnome print frontend here
+
+ * src/modules/ps.*: Moved plain print frontend here
+
+2003-05-25 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sp-item.h: Removed ::menu and ::knot_holder virtual methods
+
+ * src/object-edit.c: New file, collect all knotholder methods from
+ item implementations here
+
+ * src/object-edit.h (sp_item_knot_holder): New file
+
+ * src/object-ui.c: New file, collect all Gtk related methods from
+ object implementations here
+
+ * src/object-ui.h (sp_object_menu): New file
+
+2003-05-24 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/print.c (sp_print_preview_document): Use ::set_preview if present
+
+ * src/module.h: Added virtual methof for setting preview
+
+ * src/helper/kde.cpp (sp_module_print_kde_finish): Got working
+ (sp_module_print_kde_set_preview): New method
+
+2003-05-18 Hans Breuer <hans.breuer.org>
+
+ * src/monostd.h : (new file) some defines and includes
+ mostly to make up the WIN32 lack of unistd.h
+
+ * config.h.win32 src/makefile.msc src/*/makefile.msc :
+ (new files) to build Sodipodi on win32 with M$ toolchain
+
+ * src/winmain.c : (new file) WinMain in it's own file simply
+ calling main()
+ * src/main.c : build the common main() for win32 too
+
+ * src/sodipodi.rc : (new file) to compile in the application
+ icon on win32
+
+ * src/file.c : use G_DIR_SEPARATOR[_S] instead of '/' ["/"]
+ make the file selection work better on win32
+
+ * src/sp-image.c : read images defined by xlink:href="file://...
+
+ * src/sodipodi.c : #inculed "monostd.h" to get S_ISDIR and
+ S_ISREG on win32
+
+ * src/libnr/nr-values.h : when building as DLL exporting
+ variables is quite ugly. Define some constant matrices as
+ static for win32 to avoid exporting.
+
+ * src/libnrtype/nr-type-directory.c : #include <io.h>
+ for win32::open() etc.
+
+ * src/libnrtype/nr-type-w32.c : #ifdef HANGUL_CHARSET,
+ older SDK headers don't have it
+
+ * src/libnrtype/nr-type-w32.H : #define WIN32_LEAN_AND_MEAN
+ before including <windows.h> to reduce namespace pollution
+
+ * src/svg/svg-length.c : #include <config.h> to get WIN32
+
+ * src/widgets/icon.c : S_ISREG, S_ISDIR
+
+ * src/xml/sp-xml.def src/svg/sp-svg.def
+ src/libnr/sp-libnr.def src/libnrtype/sp-libnrtype.def :
+ (new files) to export functios from modules built as DLLs
+
+ * src/helpers/gnome-utils.c(gnome_uri_list_extract_filenames) :
+ use g_filename_from_uri()
+ * src/toolbox.c src/interface.c : don't leak the uri list
+
+ * src/xml/repr-util.c : use g_strcasecmp for portability
+ * src/svg/svg-length.c : ... and g_snprintf
+
+2003-05-18 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sp-item.c (sp_item_invoke_print): Only if item is printable
+
+ * src/display/nr-arena-item.c (nr_arena_item_set_visible): New method
+ (nr_arena_item_invoke_render): Honour visibility
+
+ * src/dialogs/item-properties.c (sp_item_widget_printability_toggled): Implement
+
+ * src/sp-item.c (sp_item_set): Added "sodipodi:printable" attribute
+
+2003-05-14 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/widgets/button.c (sp_button_set_composed_tooltip): Add primary shortcut
+ dynamically to tooltip
+
+2003-05-13 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/toolbox.c (sp_maintoolbox_create_toplevel): Use sp_window_new
+
+ * src/helper/window.c: New file, implement shortcut processing
+
+ * src/helper/window.h: New file
+
+2003-05-12 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/text-context.c (sp_text_context_forget_text): Set object to
+ NULL before destroying, so resulting selection::changed does not mess up
+
+ * src/selection-chemistry.c: Removed undo and redo frontends
+
+ * src/shortcuts.c: Moved shortcut code here
+
+2003-05-11 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/zoom-context.c: Removed bogus zoom ui handlers
+
+ * src/sodipodi.c (sodipodi_init): Initialize some shortcuts
+
+ * src/toolbox.c (sp_toolbox_button_clicked): New callback
+ (sp_toolbox_button_new_from_verb): New method
+ (sp_toolbox_zoom_create): Use verbs
+
+ * src/interface.c (sp_ui_menu_activate): Universal callback
+ (sp_ui_menu_append_item_from_verb): New method
+ (sp_ui_view_menu): Use verbs for zoom menu items
+
+ * src/event-context.c (sp_event_context_private_root_handler): Use actions for
+ certain keycodes
+
+ * src/verbs.c: New file
+
+ * src/verbs.h: New file
+
+ * src/helper/action.c: New file
+
+ * src/helper/action.h: New file
+
+2003-05-07 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/libnr/nr-svp-uncross.c (nr_svl_uncross_full): Break slice endpoints if
+ there can be potential crossing
+
+2003-05-06 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/libnr/nr-svp-render.c (nr_svp_render): Fix some running sum problems
+
+2003-05-04 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/libnrtype/nr-rasterfont.c (nr_rasterfont_generic_glyph_mask_render): Render
+ using NRSVP and mask OR
+ (nr_rasterfont_ensure_glyph_slot): Build NRSVP
+
+2003-05-03 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/helper/Makefile.am: Removed art-utils.h
+
+ * src/libnr/nr-svp.c (nr_svl_build_finish_segment): New helper
+ (nr_svl_build_moveto): Ditto
+ (nr_svl_build_lineto): Ditto
+ (nr_svl_build_curveto): New helper
+ (nr_svl_from_art_vpath): Use NRSVLBuild
+ (nr_svl_from_art_bpath): New method
+
+2003-05-02 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * sodipodi.desktop.in: Updated by Michael Terry
+
+2003-05-01 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/svg/svg-length.c (sp_svg_number_write_d): Fixed rounding overflow
+
+2003-05-01 Christian Schaller <Uraeus@gnome.org>
+ * Fixed up desktop.in file to conform to latest freedesktop standard
+ * Fixed up spec.in file to actually work
+ * Added missing extensions-skeleton.h to makefile
+ * Added spec file to EXTRA_DIST
+
+2003-05-01 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/display/nr-arena-item.c (nr_arena_item_children): Return correct
+ value (thanks to MentaLguY)
+
+2003-04-29 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/libnr/nr-svp.h: Use more compact format for segments
+
+ * src/libnr/nr-svp.c (nr_svp_from_svl): Use max segment length
+
+2003-04-28 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/libnr/nr-svp-render.c (nr_svp_render): New method
+ (nr_pixblock_render_svp_mask_or): New method
+ (nr_pixblock_render_svl_mask_or): Renamed old one
+ (nr_svl_render): Ditto
+
+ * src/libnr/nr-svp.c (nr_svp_point_wind): Implement
+ (nr_line_point_distance2): Helper
+ (nr_svp_point_distance): Ditto
+ (nr_svp_from_svl): New method, implemented packed format and
+ renamed old one to S(orted)V(ertex)L(ist)
+ (nr_svp_free): Ditto
+
+ * src/display/nr-arena-shape.h: Port all basics to NRSVP
+
+2003-04-27 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/knotholder.c (knot_ungrabbed_handler): Flush object here
+
+ * src/xml/repr-util.c (sp_xml_dtoa): Take '-' into accounti if
+ copying integral part
+
+ * src/svg/svg-length.c (sp_svg_length_update): New method
+
+ * src/sp-spiral.c (sp_spiral_update): New method
+
+ * src/sp-star.c (sp_star_update): New method
+
+ * src/sp-ellipse.c (sp_genericellipse_update): Use generic ::set_shape
+
+ * src/sp-rect.c (sp_rect_update): Use generic ::set_shape
+
+2003-04-24 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/libnr/nr-svp-uncross.c (nr_svp_uncross_full): Concat segment start only if
+ within epsilon, snap intersection point at yslice, if close
+
+2003-04-23 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/widgets/sp-color-slider.c (sp_color_slider_paint): Use proper style painters,
+ so Gdk/Gtk crash bug does not show up anymore
+
+ * src/xml/repr-io.c (sp_repr_read_file): Substitute entities (by MentaL)
+ (sp_repr_read_mem): Ditto
+
+ * src/style.c (sp_style_merge_from_style_string): Complain only if not the end
+ of the style string (thanks to MenTaL)
+
+2003-04-22 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/print.c (sp_module_print_plain_begin): Magic by MenTaL
+
+ * src/libnr/nr-svp-uncross.c (nr_svp_uncross_full): Works properly now for
+ all stress-tests except zap.
+
+2003-04-18 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/display/nr-arena-shape.c (nr_arena_shape_update): Switch fill
+ completely to new renderer
+ (nr_arena_shape_render): Ditto, but use masks as before
+
+ * src/libnr/nr-svp-uncross.c (nr_svp_uncross_full): Pass most stress-tests
+
+2003-04-15 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/libnr/nr-svp-render.c (nr_pixblock_render_svp_mask_or): new method
+ (nr_pixblock_render_svp_rgba): Frontend, implement for all pixblock modes
+ (nr_svp_run_A8_OR): Run callback implementation
+ (nr_svp_run_R8G8B8): Ditto
+ (nr_svp_run_R8G8B8A8P_EMPTY): Ditto
+ (nr_svp_run_R8G8B8A8P_R8G8B8A8P): Ditto
+ (nr_svp_run_R8G8B8A8N_R8G8B8A8N): Ditto
+ (nr_svp_render): Implement using generic run callbacks
+
+2003-04-14 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/libnr/nr-svp-render.c (nr_pixblock_render_svp_rgba): Do runs properly,
+ skip if coverage stays 0
+
+2003-04-13 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/libnr/nr-svp-render.c: Moved here from old arena code
+
+ * src/libnr/nr-svp-render.h: Ditto
+
+ * src/libnr/nr-svp.c: Ditto
+
+ * src/libnr/nr-svp.h: Ditto
+
+ * src/display/nr-arena-shape.h: Optional experimental new renderer
+
+ * src/libnrtype/nr-typeface.h: Port to NRObject
+
+ * src/display/canvas-arena.c (sp_canvas_arena_init): Use active object
+ listener instead of g-signals
+ (sp_canvas_arena_destroy): Ditto
+
+ * src/display/nr-arena.h: Derive from NRActiveobject
+
+ * src/display/nr-object.c (nr_object_delete): proper lifecycle management
+ (nr_object_setup): Ditto, automatic object
+ (nr_object_release): Ditto
+ (nr_active_object_get_type): Added NRActiveObject
+
+ * src/display/nr-object.h: Added NRActiveObject
+
+2003-04-12 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/display/nr-object.c: Reimplement in standalone way
+
+ * src/display/nr-object.h: Reimplement in standalone way
+
+2003-04-06 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sp-marker.c (sp_marker_show_dimension): Reimplement
+ (sp_marker_show_instance): Ditto
+
+ * src/display/nr-arena-shape.c (nr_arena_shape_finalize): Detach markers
+
+ * src/sp-shape.c (sp_shape_update_marker_view): Test orientation
+
+2003-03-25 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/display/nr-arena-item.c: Removed ::event signal
+
+ * src/display/nr-object.h: Frontend for future glib-free object system
+
+2003-03-21 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sp-shape.c (sp_shape_update): Update marker properly
+ (sp_shape_set_marker): Parse all three marker types
+
+ * src/sp-marker.c (sp_marker_update): Set reference point in child2parent matrix
+ (sp_marker_show_dimension): Copy and set arena items properly
+ (sp_marker_show_instance): Set base transfoarm and scale by line width if needed
+
+2003-03-17 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/uri-references.c (sp_uri_reference_resolve): Allow '_' and
+ '-' in xlink names.
+
+2003-03-15 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/display/nr-arena-item.h: Made opacity 8-bit integer
+
+2003-03-12 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sp-marker.c (sp_marker_update): Do it properly
+ (sp_marker_write): Do it properly (almost)
+
+2003-03-11 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/print.c (sp_module_print_plain_class_init): Use correct destructor
+
+ * src/sp-marker.c (sp_marker_set): Implement all attributes
+
+2003-03-09 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sp-object-repr.c (sp_object_type_lookup): Added marker type
+
+ * src/sp-marker.h: New file
+
+ * src/sp-marker.c: New file
+
+ * src/display/nr-arena-image.c (nr_arena_image_render): Use pixblock
+ area instead the active area (that may be bigger)
+
+ * src/helper/kde.cpp: Added SPModulePrintKDE object
+ (sp_kde_get_module_print): Contructor
+
+ * src/print.c: Port to modules, add KDE option
+
+ * src/module.c (sp_module_register): Check for id, fix crash
+ (sp_module_unregister): Ditto
+ (sp_module_print_get_type): Implement SPModulePrint
+
+ * src/document.h: Renamed private to priv to be nice with c++
+
+ * src/Makefile.am (kdeldadd): Added LIB_KDEPRINT
+
+ * configure.in: Enable modules by default
+
+2003-03-04 MenTaLguY <mental@rydia.net>
+
+ * src/desktop.c: changed zoom_status to a spin button with logarithmic increment and a handy context menu
+ (sp_dtw_zoom_*): added various event handlers for the new zoom spin button
+ (sp_desktop_zoom_page): factored out code duplicated with zoom-context.c
+ (sp_desktop_zoom_selection): ditto
+ (sp_desktop_zoom_drawing): ditto
+ (sp_desktop_widget_init): removed unused SPDesktopWidget::zoom member and replaced zoom label with a spin button
+
+ * src/desktop.h: removed unused SPDesktopWidget::zoom member, added new sp_desktop_zoom_* methods
+
+ * src/zoom-context.c (sp_zoom_drawing): factored out code to desktop.c
+ (sp_zoom_page): NRRectD -> NRRectF, factored out code to desktop.c
+ (sp_zoom_selection): factored out code to desktop.c
+
+2003-03-06 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/helper/Makefile.am: Compile KDE module if needed
+
+ * src/main.c (sp_main_gui): Initialize/shutdown KDE module if WITH_KDE
+
+ * src/file.c (sp_file_open_dialog): Use KDE file dialog, if WITH_KDE
+
+ * src/Makefile.am: Add KDE libraries if needed
+
+ * configure.in: Added --with[out]-kde configuration option
+
+ * autogen.sh: Added (again) libtoolize
+
+ * acinclude.m4: KDE specific autostuff
+
+ * src/helper/kde.cpp: New file
+
+ * src/helper/kde.h: New file
+
+ * src/helper/kde-private.h: SPKDEBridge sefinition for moc preprocessor
+
+2003-03-03 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/widgets/sp-color-slider.h: Use LGPL
+
+ * src/widgets/sp-color-slider.c: Use LGPL
+
+ * src/libnr/nr-rect.h: Use sensible NULL/empty semantics for union and intersection
+
+ * src/libnr/nr-rect.c: Ditto
+
+ * src/libnr/gen_nr_config.c: Generate basic typedefs (borrowed fromlibart)
+
+ * src/display/nr-arena-item.c (nr_arena_item_invoke_update): Cleanup
+ (nr_arena_item_invoke_render): Ditto
+
+2003-03-01 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/modules/*: Various module implementations by Ted Gould
+
+ * extensions/*: Put various unsorted extensions stuff here
+
+ * src/module.c: New file
+
+ * src/module.h: New file
+
+ * src/draw-context.c (sp_draw_context_root_handler): Use 'a' instead of '+'
+ as append/new toggle
+ (spdc_concat_colors_and_flush): Cut continuation tolerance to avoid extra points at corners
+ (spdc_pen_set_point): Draw line segments if appropriate
+
+2003-02-25 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/main.c (main): Use bind_textdomain_codeset to force utf-8 encoding
+ (sp_main_console): Init gdk if WITH_XFT
+
+ * src/file.c (sp_export_get_rows): Do not set EMPTY flag on pixblock, or background
+ will be forgotten
+
+2003-02-24 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/dialogs/align.c (sp_quick_align_dialog): Added "distribute" tab
+ (sp_align_distribute_h_clicked): New method
+ (sp_align_distribute_v_clicked): Ditto
+
+ * configure.in: Removed PACKAGE_LOCALE_DIR definition
+
+ * src/Makefile.am (INCLUDES): Set PACKAGE_LOCALE_DIR here
+
+ * configure.in: Skip xft checking if fontcofig present
+
+2003-02-23 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/print.c (sp_print_fill): Use new paint server signature (does it work?)
+
+ * src/document.c (sp_document_idle_handler): Use new flags signature
+ (sp_document_ensure_up_to_date): Ditto
+
+ * src/sp-shape.c (sp_shape_modified): Removed style_modified, instead set
+ style here, if flags indicate the need
+
+ * src/sp-text.c (sp_tspan_update): Calculate relative distances here
+ (sp_text_update): Ditto
+
+ * src/sp-object.h: Split update and modified flags, involves changes in
+ most places actually using them
+
+ * src/gradient-chemistry.c (sp_gradient_ensure_private_normalized): Recycle
+ available gradients, instead of always creating new
+ (sp_gradient_ensure_radial_private_normalized): Ditto
+
+ * configure.in: Version 0.32pre
+
+2003-02-22 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sp-text.c (sp_text_set_shape): Honour single dx and dy attributes
+
+ * configure.in: Added check for fontconfig to retrieve nonstandard include directories
+
+2003-02-21 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sp-image.c (sp_image_set): Set canvas item properties in ::update
+ (sp_image_update): Implement
+
+ * src/dialogs/fill-style.c (sp_fill_style_widget_paint_changed): Set CMYK before RGB
+
+ * src/dialogs/stroke-style.c (sp_stroke_style_paint_changed): Set CMYK before RGB
+
+2003-02-20 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sp-gradient.c (sp_gradient_rebuild_vector): Fix crash if 2 stops coincide
+
+ * src/libnrtype/nr-rasterfont.c (nr_rasterfont_generic_glyph_mask_render): Get real
+ bounding box, clip to pixblock area for SVP glyphs
+
+ * src/sp-polygon.c (sp_polygon_write): Write points always
+
+2003-02-18 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/dialogs/export.c (sp_export_dialog): Default to document name + png
+ (sp_export_spinbutton_new): Pack more functions here
+
+ * src/sp-chars.c (sp_chars_update): Implement
+
+ * src/sp-text.c (sp_tspan_update): Implement
+
+ * Makefile.am: Port back to glib gettext
+
+ * configure.in: Port back to glib gettext
+
+ * autogen.sh: Copied working version from The Gimp
+
+ * src/helper/sp-canvas.c (sp_canvas_paint_rect): Try to fit area into pixelstore
+ instead of using default image size always
+
+2003-02-17 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sp-path.h: Turned SPPath/SPShape hierachy upside down, so they make sense
+ now, when we do not derive text and clippath from SPPath anymore
+
+ * src/sp-shape.h: Ditto
+
+2003-02-16 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/file.c (file_open_ok): Set directory if OK clicked on it (thanks to Aron Rubin)
+ (file_import_ok): Ditto
+
+ * src/sp-ellipse.c (sp_round): Fix sp_round
+
+2003-02-15 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/widgets/paint-selector.c (sp_paint_selector_system_color_set): New method
+ (sp_paint_selector_set_mode_color): Added 'get from dropper' checkbox
+
+ * src/dialogs/object-properties.c (sp_object_properties_color_set): Handler
+ of system 'color_set' signal, used for getting color value from dropper
+
+ * src/dialogs/stroke-style.c (sp_stroke_style_paint_system_color_set): New method
+
+ * src/dialogs/fill-style.c (sp_fill_style_widget_system_color_set): New method
+
+ * src/toolbox.c (sp_toolbox_draw_create): Added dropper tool
+
+ * src/sodipodi.c (sodipodi_class_init): Added 'color_set' signal
+ (sodipodi_set_color): Frontend to signal
+ (sodipodi_init_config): Use config_name instead of hardcoded 'preferences'
+
+ * src/dropper-context.c (sp_dropper_context_root_handler): Scale colors
+ to [0.0 - 1.0] range and signal hub
+
+ * src/widgets/menu.c: New file, implement sensible menu API
+
+ * src/widgets/menu.h: New file
+
+2003-02-13 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/dropper-context.h: New file
+
+ * src/dropper-context.c: New file
+
+2003-02-11 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/desktop.c (sp_desktop_widget_init): Create tooltips, enable sticky zoom
+ (sp_desktop_widget_size_allocate): Calculate sticky zoom by area instead of MIN (x, y)
+
+ * src/helper/sp-canvas.h: Added floating point scroll coordinates
+
+ * src/helper/sp-canvas.c (scroll_to): Preserver floating point coordinates
+
+ * src/display/nr-arena-group.c (nr_arena_group_set_child_transform): Do
+ not force full update if not needed
+
+ * src/display/nr-arena-item.c (nr_arena_item_set_clip): Do not force
+ full update if not needed
+ (nr_arena_item_set_mask): Ditto
+ (nr_arena_item_set_transform): Ditto
+
+2003-02-09 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/libnr/nr-gradient.c (nr_lgradient_render_R8G8B8A8N_EMPTY): New shortcut
+
+ * src/libnr/nr-gradient.h: Made x0 and x0 integers - this introduces possible
+ upt to 0.7 pixel error, but other rendering parts are not exact anyways
+
+ * src/sp-paint-server.h: Fill function signature change
+
+2003-02-08 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/libnr/nr-gradient.c (nr_rgradient_render_generic_symmetric): Special
+ case NR_PIXBLOCK_MODE_R8G8B8A8N and full opacity
+
+ * src/sp-gradient.c (sp_radialgradient_set): Initialize focal point to center if unset
+
+ * src/libnr/nr-gradient.c (nr_lgradient_render_R8G8B8A8N): Special-cased full opacity
+
+ * configure.in: 0.30.1
+
+ * src/libnrtype/nr-rasterfont.c (nr_rasterfont_ensure_glyph_slot): Use
+ 32 bit integer bbox initially before deciding whether it fits in 16 bit
+
+2003-02-08 gettextize <bug-gnu-gettext@gnu.org>
+
+ * Makefile.am (SUBDIRS): Add intl, m4.
+ (EXTRA_DIST): Add config.rpath.
+ * configure.in (AC_OUTPUT): Add intl/Makefile, po/Makefile.in, m4/Makefile.
+
+2003-02-07 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/help.c (sp_help_about): Make default window size the same as document
+
+ * src/style.c: Use custom winding rule and stroke parameter enumerations
+
+ * src/enums.h: Define winding rules and stroke parameters
+
+2003-02-06 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sp-rect.c (sp_rect_rx_set): Set ::set value(s)
+ (sp_rect_ry_set): Ditto
+
+ * src/sp-item.c (sp_item_update): Set arena item transform here
+
+ * src/dialogs/fill-style.c (sp_fill_style_widget_update_repr): Made non-recursive
+ (sp_fill_style_widget_update): Ditto
+
+ * src/sp-shape.c (sp_shape_write_transform): Working path tranformation optimizer
+
+ * src/widgets/sp-color-slider.c (sp_color_slider_adjustment_value_changed): Add
+ some extra pixels around arrow dirtified area
+ (sp_color_slider_paint): Use gtk_draw_box instead of gtk_draw_shadow
+ (sp_color_slider_realize): Attach style
+
+2003-02-04 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sodipodi.c (sodipodi_load_config): Generic method by Bryce
+ (sodipodi_load_preferences): Frontend, same
+ (sodipodi_load_extensions): Ditto
+ (sodipodi_get_repr): Test for "extensions"
+ (sodipodi_init_config): Generic method by Bryce
+ (sodipodi_init_preferences): Frontend by Bryce
+ (sodipodi_init_extensions): Ditto
+
+ * src/toolbox.c (sp_toolbox_extension_create): Implemented by Bryce
+
+ * src/extension.c: New file by Bryce Harrington
+
+ * src/extension.h: New file by Bryce Harrington
+
+ * src/extensions-skeleton.h: Ditto
+
+ * src/sp-mask.c: support maskContentUnits
+
+ * src/nodepath.c (create_curve): Do not add 50 to y (why was it here?)
+
+ * src/sp-item-group.c (sp_group_update): Propagate only if update flag set
+
+ * src/sp-item.c (sp_item_set): Set clippath and mask bbox
+ (sp_item_update): Ditto
+
+ * src/sp-clippath.c (sp_clippath_build): Implement
+ (sp_clippath_set): Ditto, clipPathUnits attribute
+ (sp_clippath_update): Ditto
+ (sp_clippath_show): Use bbox if needed
+ (sp_clippath_set_bbox): New method
+
+2003-02-03 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sp-item.c (sp_item_release): Release mask
+ (sp_item_mask_release): New handler
+ (sp_item_mask_modified): Ditto
+ (sp_item_set): Parse mask
+ (sp_item_show): Show mask
+ (sp_item_private_hide): Hide mask
+
+ * src/display/nr-arena-item.c (nr_arena_item_invoke_render): Do masking
+ (nr_arena_item_private_dispose): Release mask
+ (nr_arena_item_invoke_update): Update mask
+ (nr_arena_item_set_mask): New method
+
+ * src/sp-root.c (sp_root_build): Do not check for xmlns:sodipodi to determine
+ version, as this is set automatically in xml loader
+
+ * src/slideshow.h: New file
+
+ * src/slideshow.c: New file
+
+2003-02-02 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sp-rect.c (sp_rect_set): Accept 0.0 as valid for x, y, width and height
+ (sp_rect_write): Use 0.0 as default for rx, ry
+
+ * src/rect-context.c (sp_rect_finish): Use ::write to be sure
+
+ * src/display/nr-arena-shape.c (nr_arena_shape_clip): OR masks
+
+ * src/sp-defs.c (sp_defs_update): Implement
+ (sp_defs_modified): Ditto
+
+ * src/sp-clippath.c (sp_clippath_update): Implement
+ (sp_clippath_modified): Ditto
+ (sp_clippath_show): Fix
+ (sp_clippath_hide): Implement
+
+ * src/sp-item.c (sp_item_set): Fix clippath
+ (sp_item_show): Ditto
+ (sp_item_private_hide): Ditto
+ (sp_item_display_key_new): New method
+
+ * src/sp-item.h: Use new signature for ::show and ::hide
+
+2003-02-01 Daniel Yacob <locales@geez.org>
+
+ * configure.in: Added "am" (Amharic) to ALL_LINGUAS.
+
+2003-02-01 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sp-use.c (sp_use_init): Set width and height default to 100%
+ (sp_use_set): Ditto
+ (sp_use_bbox): use child transform
+ (sp_use_update): Calculate relative lengths, set new viewport
+
+ * src/sp-object.c: Removed ::dispose and some commented out code
+
+ * src/sp-symbol.c: New file
+
+ * src/sp-symbol.h: New file
+
+ * src/enums.h: New file
+
+ * src/xml/repr-io.c (sp_repr_svg_read_node): Return if entity declaration
+
+ * src/sp-root.c (sp_root_init): Set correct default viewport values
+ (sp_root_build): Read 'x', 'y', 'version', 'preserveAspectRatio'
+ (sp_root_set): Parse added attributes, accept percentages for x, y, width, height
+ (sp_root_update): Set up proper transformations to support aspect ratios
+
+ * src/sp-item.h: Added viewPort and item2viewPort transformation to item context
+
+ * src/document.c (sp_document_ensure_up_to_date): Set initial viewport
+ and identity transforms in item context
+ (sp_document_idle_handler): Ditto
+
+ * src/attributes.h: Added 'version' and 'preserveAspectRatio'
+
+2003-01-31 Masatake YAMATO <jet@gyve.org>
+
+ * src/main.c (POPT_TABLEEND): Define if it is not defined in
+ popt.h. copied from forntline.
+
+2003-01-30 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/helper/guideline.c (sp_guideline_render): Do not round int
+
+ * src/interface.c (sp_ui_close_view): Get widget pointer before killing object
+
+2003-01-28 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * configure.in: Version 0.30pre
+
+ * src/sp-image.c (sp_image_bbox): Calculate bbox properly
+
+2003-01-28 gettextize <bug-gnu-gettext@gnu.org>
+
+ * Makefile.am (SUBDIRS): Add intl, m4.
+ (EXTRA_DIST): Add config.rpath.
+ * configure.in (AC_OUTPUT): Add intl/Makefile, po/Makefile.in, m4/Makefile.
+
+2003-01-28 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/libnrtype/codepages.h: Win9x codepage declarations
+
+ * src/main.c (WinMain): Use new toplevel toolbox constructor
+
+ * src/text-context.c (sp_text_context_root_handler): Added Gdk_U to unimode
+
+ * src/libnrtype/nr-type-w32.c: Implement ANSI charset and styles
+
+ * src/libnrtype/nr-type-directory.c (nr_type_directory_build): Honour
+ stretch attribute in searches
+
+ * src/toolbox.c (sp_maintoolbox_create_toplevel): Broke constructor
+ into two parts to allow multiple toolboxes
+
+ * src/interface.c (sp_ui_view_show_toolbox): New method
+ (sp_ui_view_dock_toolbox): Ditto
+ (sp_ui_view_remove_toolbox): Ditto
+ (sp_ui_view_menu): Added menu items for creating toolboxes
+ (sp_create_window): Pack toplevel hbox into window
+
+2003-01-26 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/helper/art-utils.c (sp_vpath_from_bpath_transform_closepath): Moved
+ array expansion to the right place (thanks to Lynn Kerby)
+
+2003-01-25 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/dialogs/xml-tree.c (sp_xml_tree_dialog): Allow horizontal scrollbar
+ so we do not expand window infinitely
+
+ * src/sp-use.c (sp_use_update): Implemented by MenTaLguY
+ (sp_use_modified): Ditto
+
+ * src/libnr/nr-path.c (nr_curve_bbox): Implement fast and exact bbox (thanks to Nathan)
+ (nr_curve_bbox_wind_distance): Use exact bbox
+
+2003-01-25 Nathan Hurst <Nathan.Hurst@infotech.monash.edu.au>
+
+ * src/desktop-snap.c: Fixed vector snapping code, replaced horizontal and
+ vertical snapping with generic vector versions
+
+2003-01-21 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/nodepath.c (create_curve): Use NR_MATRIX_DF_TRANSFORM_X (Thanks to
+ MenTaLguY for finding these NRPointF/ArtPoint mismatches)
+
+2003-01-20 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/libnrtype/nr-type-gnome.c (nr_typeface_gnome_new): Ditto
+
+ * src/print.c (sp_print_preview_document): Fix gnome-print support
+ (sp_print_document): Ditto
+
+ * src/libnrtype/nr-type-xft.c (nr_type_xft_init): Added ebug printout
+
+ * src/widgets/button.c (sp_button_button_press): Do not grab mouse
+ (sp_button_button_release): Ditto
+
+2003-01-19 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/desktop.c (sp_dtw_status_frame_size_request): Always request minimum size
+
+ * configure.in: Define GETTEXT_PACKAGE properly (Thanks to Christian Rose)
+
+ * src/libnrtype/nr-type-xft.c (nr_type_xft_init): Removed CORE, so Xft fontlist
+ should now be read properly with Debian PPC and or fontconfig systems
+
+2003-01-15 MenTaLguY <mental@rydia.net>
+
+ * src/sp-object.c (sp_object_get_unique_id): don't include namespace prefix when generating ids
+
+2003-01-15 MenTaLguY <mental@rydia.net>
+
+ * src/widgets/sp-xmlview-tree.c (add_node): tree nodes associated with elements pretend they initially have a NULL id
+ (element_attr_changed): display elements with a NULL id properly
+
+2003-01-15 MenTaLguY <mental@rydia.net>
+
+ * src/xml/repr-private.h: added SPXMLNs structure
+
+ * src/xml/repr.h: added decls for sp_xml_ns_uri_prefix() and sp_xml_ns_prefix_uri()
+
+ * src/xml/repr-io.c: improved handling of namespace prefixes
+ (sp_repr_qualified_name): added hashtable to keep track of NS prefixes used
+ (sp_repr_read_node): Ditto
+ (sp_repr_do_read): Ditto + replaced if cascade with calls to sp_xml_ns_uri_prefix()
+ (sp_repr_set_xmlns_attr): helper to set xmlns attributes
+
+ * src/xml/repr-util.c: added namespaces list
+ (sp_xml_ns_register_defaults): procedure to initialize namespace mapping list
+ (sp_xml_ns_auto_prefix): helper routine to automatically select a "good" prefix for a given namespace URI
+ (sp_xml_ns_uri_prefix): returns a prefix to use for a given namespace URI, registering a mapping automatically if necessary
+ (sp_xml_ns_prefix_uri): returns the namespace URI registered for a given prefix
+
+2003-01-13 MenTaLguY <mental@rydia.net>
+
+ * src/desktop.c (sp_dtw_desktop_shutdown): rearranged close confirmation buttons according to the Gnome HIG
+
+2003-01-18 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/seltrans.c (sp_sel_trans_grab): Build array of selected item transformations
+ (sp_sel_trans_transform): Use original transforms to avoid rounding errors
+ (sp_sel_trans_ungrab): Release array
+
+ * src/dialogs/transformation.c: Implemented scaling percentages
+
+2003-01-17 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/draw-context.c (spdc_set_startpoint): Snap startpoint (thanks to Nathan)
+ (sp_pen_context_root_handler): Ditto
+
+ * src/dialogs/transformation.c: Implement simple move dialog
+
+2003-01-16 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/helper/guideline.c (sp_guideline_new): Changed signature, fixes
+ granular new guideline placement bug
+ (sp_guideline_render): Use normal rounding, so guideline and object are aligned
+
+ * src/sp-item.h: Changed the signature of ::snappoints, this forced me to
+ use NRPoints near everywhere else too
+
+2003-01-15 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/draw-context.c (spdc_endpoint_snap): Make Ctrl to restrict directions
+ to multitudes of 15 degrees (thanks to Nathan Hurst)
+
+2003-01-13 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/file.c (sp_file_open_dialog): Rearrange
+ (sp_file_save_dialog): Ditto
+ (sp_file_save_document): Ditto
+
+2003-01-13 MenTaLguY <mental@rydia.net>
+
+ * src/toolbox.c (sp_maintoolbox_create): turned off user resizing of toolbox so it autoresizes properly
+
+2003-01-13 MenTaLguY <mental@rydia.net>
+
+ * src/toolbox.c (sp_maintoolbox_create): turned off user resizing of toolbox so it autoresizes properly
+
+
+ * src/print.c (sp_print_plain_bind): Move generic PS code here
+ (sp_print_plain_release): Ditto
+ (sp_print_plain_fill): Ditto
+ (sp_print_plain_stroke): Ditto
+ (sp_print_plain_image_R8G8B8A8_N): Ditto
+ (sp_print_document): Implement very-very simple non-gnome print dialog
+
+2003-01-12 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/main.c: Made --without-popt working
+
+2003-01-11 MenTaLguY <mental@rydia.net>
+
+ * src/xml/repr-io.c: removed bogus ATTLIST from DOCTYPE
+ (sp_repr_read_file): factored out duplicated code into sp_repr_do_read + added parameter for default namespace
+ (sp_repr_read_mem): factored out duplicated code into sp_repr_do_read + added parameter for default namespace
+ (sp_repr_do_read): merged duplicated code from sp_repr_read_* family
+ (sp_repr_do_read): insert xmlns decls for common namespaces
+ (sp_repr_qualified_name): basic namespace handling for SVG, XLink, and Sodipodi namespaces
+ (sp_repr_read_node): added parameter for default namespace
+ (sp_repr_read_node): removed dead code and broken re-addition of xmlns declarations (xlink?)
+ (repr_quote_write): UTF8 is ASCII-compatible -- removed inaccurate comment
+
+ * src/xml/repr.h: added SP_*_NS_URI macros
+
+ * src/document.c (sp_document_new): SVG is default NS
+ (sp_document_new_from_mem): SVG is default NS
+
+ * src/file.c (file_import_ok): SVG is default NS
+
+ * src/interface.c (sp_ui_import_one_file): SVG is default NS
+
+ * src/sodipodi.c (sodipodi_init): no default NS
+ (sodipodi_load_preferences): no default NS
+
+2003-01-11 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * configure.in: Check for xft
+
+ * src/libnrtype/Makefile.am: Added xft_sources
+
+ * src/libnrtype/nr-type-directory.c (nr_type_read_xft_list): Load xft typefaces
+
+ * src/libnrtype/nr-type-xft.h: New file
+
+ * src/libnrtype/nr-type-xft.c: New file
+
+2003-01-10 MenTaLguY <mental@rydia.net>
+
+ * src/dialogs/item-properties.c (sp_item_widget_new): made unimplemented controls insensitive
+
+2003-01-04 MenTaLguY <mental@rydia.net>
+
+ * src/text-context.c (sp_text_context_finalize): folded back
+ into sp_text_context_finish
+ (sp_text_context_root_handler): Gtk IM now gets first refusal of
+ key press _and_ release events; toggling "unicode mode" now triggers an
+ IM reset; "unicode mode" bypasses IM entirely
+
+
+2003-01-04 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/text-context.c (sp_text_context_root_handler): Moved IM back to
+ beginning (thanks to MenTaLguY for pointing this out)
+
+ * src/sp-object.c (sp_object_invoke_update): Merge styles only if parent changed
+
+ * src/sp-text.c (sp_text_update): Implement
+
+ * src/sp-text.c (sp_string_modified): Chain invocation so style gets updated
+
+ * src/widgets/sp-xmlview-content.c: Port to GtkTextView
+
+ * src/dialogs/xml-tree.c: Port to GtkTextView
+
+ * src/text-context.c (sp_text_context_root_handler): Consume xdigits in unicode mode
+
+ * configure.in: Removed GTK_ENABLE_BROKEN
+
+ * src/dialogs/text-edit.c: Use GtkTextView/Buffer
+
+ * src/xml/repr-util.c (sp_repr_transfer_ids): Helper by MenTaLguY
+ (sp_repr_move): Ditto
+
+2003-01-03 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/dialogs/xml-tree.c: Updated (MenTaLguY)
+
+ * src/dialogs/item-properties.c (sp_item_widget_new): Added slider (MenTaLguY)
+
+ * src/text-context.c (sp_text_context_setup): Set up Gtk IM (thanks to MenTaLguY)
+ (sp_text_context_setup_text): Move code here (MenTaLguY)
+ (sp_text_context_root_handler): Process Gtk IM (MenTaLguY)
+ (sptc_commit): Gtk IM signal handler (MenTaLguY)
+
+ * src/sp-text.c (sp_text_insert): Replace < 32 and not whitespace with space
+
+ * src/selection.c (SP_SELECTION_UPDATE_PRIORITY): Set Gtk - 11
+
+ * src/document.c (SP_DOCUMENT_UPDATE_PRIORITY): Set GTK - 12
+
+2003-01-01 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/widgets/button.c (sp_button_paint_arrow): Draw something
+
+2002-12-29 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/event-context.c (sp_event_context_private_root_handler): Pan with
+ Shift+Button3 too (useful with windows and < 3 button mice)
+
+ * src/toolbox.c (sp_toolbox_file_create): Mek print buttons insensitive
+
+ * src/sp-text.c (sp_text_write_transform): Fixed it
+
+ * src/main.c (sp_do_export_png): Initialize y0
+
+ * src/file.c (sp_export_png_file): Use pixelstore, export min 64 rows at once,
+ fix miscalculated rowstride
+
+2002-12-28 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/libnrtype/nr-type-directory.c (nr_type_read_w32_list): Use
+ windows native fonts, if applicable
+
+ * src/libnrtype/nr-type-w32.h: New file
+
+ * src/libnrtype/nr-type-w32.c: New file
+
+2002-12-27 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/print.c (sp_print_image_R8G8B8A8_N): Implement direct PS version
+
+2002-12-26 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/print.c (sp_print_bpath): Helper
+ (sp_print_bind): Implement non-gnome-print version
+ (sp_print_release): Ditto
+ (sp_print_fill): Ditto
+ (sp_print_stroke): Implement non-gnome-print version
+
+ * src/widgets/icon.c (sp_icon_image_load): Generic image loader
+
+ * src/desktop.c (sp_desktop_widget_update_zoom): Make working again
+
+ * src/widgets/button.c: New file
+
+ * src/widgets/button.h: New file
+
+ * src/toolbox.c (sp_toolbox_draw_create): Port to brand new SPButton
+
+2002-12-17 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/desktop.c (sp_desktop_widget_init): Some cleanup
+
+ * src/widgets/ruler.c: Moved to widgets subdir
+
+ * src/widgets/ruler.h: Moved to widgets subdir
+
+2002-12-16 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * configure.in: --with[out]-gnome-print argument, thanks to MentaLguY
+
+2002-12-15 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sp-guide.c (sp_guide_set): Fixed horiz/vert
+
+ * src/desktop-events.c (sp_dt_ruler_event): Fixed
+ (sp_dt_guide_event): Fixed
+
+ * src/helper/guideline.h: Renamed to avoid conflict with SPGuide object,
+ several signature changes
+
+ * src/helper/guideline.c: Ditto, removed properties
+
+ * src/helper/sp-canvas.c (sp_canvas_window_to_world): Oops, was meant to be y0
+ (sp_canvas_world_to_window): Ditto
+
+2002-12-14 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/dialogs/desktop-properties.c: Fully functional color picker
+
+ * src/display/nr-arena-item.h: Ported rendering from NRBuffer to NRPixBlock,
+ involves changes in most Arena objects. Added NO_CACHE flag to rendering.
+
+2002-12-13 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/widgets/paint-selector.c (sp_paint_selector_style_button_add): Changed
+ SODIPODI_GLADEDIR -> SODIPODI_PIXAMPDIR (Thanks to Ted Gould)
+
+2002-12-11 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sp-guide.c (sp_guide_class_init): Removed translatability of properties
+
+ * src/knot.c (sp_knot_class_init): Removed translatability of properties
+
+ * src/helper/sp-guide.c (sp_guideline_class_init): Removed translatability
+ from properties (who needs this?)
+
+ * src/widgets/icon.h: New file, use as frontend to image loading
+
+ * src/widgets/icon.c: New file
+
+ * src/document.c (sp_document_create): Generic method, implement
+ constructors as frontends
+
+ * src/sodipodi.c (sodipodi_dispose): Only unref documents and let
+ them manage list
+
+ * glade/icons.svg: New icon definition file
+
+2002-12-08 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/dialogs/align.c (sp_align_arrange_clicked): Collected all
+ arrangement methods into generic one
+ (create_base_menu): Compact
+ (sp_align_add_menuitem): New helper
+ (sp_quick_align_dialog): Use value matrix instead of different callbacks
+
+2002-12-07 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/helper/sp-canvas.c (sp_canvas_expose): Free rects
+
+ * src/attributes.h: Added animation-specific attributes
+
+ * src/sp-animation.c: New file, only skeleton at moment
+
+ * src/sp-animation.h: New file
+
+2002-12-06 Masatake YAMATO <jet@gyve.org>
+
+ * tools-version.sh: print the path to the tools.
+
+2002-12-06 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sp-root.c (sp_root_update): Implement
+
+ * src/sp-rect.c (sp_rect_update): Implement
+ (sp_rect_set): Request update instead of setting shape immediately
+
+ * src/sp-item-group.c (sp_group_update): Implement
+
+ * src/sp-object.h: Replaced ::read_attr with ::set, signature change.
+ This involves modification in all subclasses as well.
+
+ * src/attributes.h: New file. We enumerate/define all allowed attributes
+ and properties, to save few string compares later.
+
+ * src/attributes.c: New file
+
+2002-12-04 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sp-object.c (sp_object_request_update): New method. We implement
+ separate ::update cascade that precedes ::modified, and is meant to
+ be used for building item states (styles, paths and so on). In many
+ aspects it shares code path with ::modified.
+ (sp_object_invoke_update): Ditto
+
+Wed Dec 4 01:05:05 2002 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * src/widget/sp-menu-button.c: Fixed to work well.
+
+ * src/toolbox.c: enable draw buttons.
+ Comment out signal_connect_after.
+
+2002-12-03 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sp-item.h: Replaced libart transforms and bboxes with libnr ones -
+ this involves changes almost every file there.
+
+ * src/main.c: Added POPT_AUTOHELP
+
+2002-12-03 Masatake YAMATO <jet@gyve.org>
+
+ * tools-version.sh (TOOLS): Added automake-1.6 and
+ aclocal-1.6. Suggested by MenTaLguY.
+ (srcdir): remove version number from grep pattern.
+
+2002-12-02 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/helper/sp-canvas.h: Made scrolling offsets integers
+
+ * src/helper/sp-canvas.c (scroll_to): Scroll instead of draw
+
+ * tools-version.sh (ENVPATTERN): Added FLAGS
+
+2002-12-02 Masatake YAMATO <jet@gyve.org>
+
+ * distro, tools-version.sh: New files.
+ distro comes from distro-0.8.1(http://distro.pipfield.ca/).
+ distro and tools-version.sh should be included only in CVS version
+ of sodipodi.
+
+ * autogen.sh: Call tools-version.sh.
+
+2002-12-02 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/dialogs/desktop-properties.c: Partial color picker implementation
+
+2002-12-01 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/dialogs/text-edit.c: GtkObject/GObject cleanup
+
+ * src/file.c: Ditto
+
+ * TODO: Update with 0.29 tasks
+
+ * src/sp-gradient.c: GtkObject/GObject cleanup
+
+ * src/widgets/sp-widget.c: Ditto
+
+ * src/widgets/gradient-selector.c: Ditto
+
+ * src/widgets/gradient-vector.c: Ditto
+
+ * src/widgets/gradient-position.c: Ditto
+
+ * src/widgets/gradient-image.c: Ditto
+
+ * src/dialogs/fill-style.c: Ditto
+
+2002-11-30 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/view.h: Derive directly from GObject
+
+2002-11-30 Masatake YAMATO <jet@gyve.org>
+
+ * configure.in (ENABLE_AUTOTRACE): Comment out autotrace/frontline
+ checking till frontline becomes gtk+2 based.
+
+2002-11-30 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/selection.h: Inherit directly from GObject
+
+ * src/event-context.h: Inherit directly from GObject
+
+ * src/helper/sp-canvas.c (sp_canvas_item_dispose): Set xform to NULL
+
+ * src/display/canvas-arena.c (sp_canvas_arena_destroy): Fixed typo, so
+ multiple destroys are allowed
+
+ * src/nodepath.c: Removed external cursor pointers
+
+ * src/knot.c (sp_knot_set_property): Ref new cursors
+
+ * src/document.c (sp_document_get_type): Inherit directly from GObject
+
+2002-11-29 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/knot.c (sp_knot_handler): Signature change, return correct value as it should
+
+ * src/helper/sp-canvas.c (scroll_to): Blit window, unless explicitly forbidden
+ (sp_canvas_size_allocate): Update onlu changed areas
+
+ * src/sp-item.c (sp_item_invoke_bbox): Signature change
+
+ * src/desktop.c (sp_desktop_widget_update_rulers): Reenabled it
+ (sp_desktop_set_display_area): Only update canvas root if zoom factor changes
+ (sp_desktop_update_scrollbars): Working
+
+ * src/helper/sp-canvas.c (paint): use full visible are for clipping, fixed
+ type on specifying area dimensionf in event
+ (sp_canvas_get_viewbox): New method
+
+ * src/desktop.c (sp_desktop_set_display_area): New method, replaces show_region
+ (sp_desktop_get_display_area): Replacement for ...
+ (sp_desktop_zoom_absolute): Use generic sp_desktop_set_visible_area
+ (sp_desktop_zoom_relative): Ditto
+
+2002-11-28 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * configure.in: ... and everyting else - merged SODIPODI_GTK2_BRANCH
+
+ * po/Makevars: Added this
+
+2002-11-28 gettextize <bug-gnu-gettext@gnu.org>
+
+ * Makefile.am (SUBDIRS): Add intl, m4.
+ (EXTRA_DIST): Add config.rpath.
+ * configure.in (AC_OUTPUT): Add intl/Makefile, po/Makefile.in, m4/Makefile.
+
+2002-11-27 gettextize <bug-gnu-gettext@gnu.org>
+
+ * Makefile.am (SUBDIRS): New variable.
+ (ACLOCAL_AMFLAGS): New variable.
+ (EXTRA_DIST): New variable.
+ * configure.in (AC_OUTPUT): Add intl/Makefile, po/Makefile.in, m4/Makefile.
+
+2002-11-25 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * configure.in: Version 0.29pre
+
+2002-11-25 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/display/nr-arena-glyphs.c (nr_arena_glyphs_group_add_component): Skip
+ if zero-sized valid path
+
+ * src/libnr/nr-path.c (nr_path_matrix_f_bbox_f_union): Allow NULL path member
+ (nr_path_matrix_f_point_f_bbox_wind_distance): Ditto
+ (nr_path_duplicate_transform): Ditto
+
+ * src/libnrtype/nr-typeface.h: Added family member to definition
+
+ * src/libnrtype/nr-type-directory.c (nr_type_register): Use family from def
+
+ * src/libnrtype/nr-type-ft2.c (nr_type_ft2_build_def): Set family member
+
+ * src/libnrtype/nr-type-gnome.c (nr_type_gnome_build_def): Set family member
+
+2002-11-23 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/dyna-draw-context.c: Clamp drag to [0.0 1.0]
+
+2002-11-23 Masatake YAMATO <jet@gyve.org>
+
+ * src/node-context.c: Inlucde document.h.
+ (sp_node_context_stamp): New function.
+ (sp_node_context_root_handler): Do stamp if space key
+ is pressed during dragging.
+
+ * src/nodepath.c (stamp_repr): New function.
+ (node_event): Do stamp if the space key is pressed.
+ (node_ctrl_event): New function.
+ (sp_nodepath_node_new): Connected node_ctrl_event to n->p.knot::event.
+ Connected node_ctrl_event to n->n.knot::event.
+
+ * src/helper/bezier-utils.c (sp_bezier_fit_cubic_full): Fix memry leaks(u, uPrime).
+ This leaks are reported by Michel Schinz <Michel.Schinz@epfl.ch>.
+
+2002-11-22 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/libnrtype/nr-type-gnome.c (nr_typeface_gnome_lookup): Added all
+ glyphs to 0xe000 private plane as well.
+
+ * src/widgets/gradient-selector.c (sp_gradient_selector_set_spread): Set
+ position widget spread as well
+ (sp_gradient_selector_spread_activate): Ditto
+
+2002-11-21 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/helper/curve.c (sp_curve_closepath): Reinitialize pointers, as we may
+ have reallocated path in helper
+
+ * src/knotholder.h: Added hook for knot ungrabbing
+
+ * src/knotholder.c (knot_ungrabbed_handler): Implement
+ (sp_knot_holder_destroy): Free list items
+
+ * src/sp-ellipse.c (sp_arc_start_set): Use genericellipse closed marker
+ (sp_arc_end_set): Ditto
+ (sp_arc_set_elliptical_path_attribute): Ditto
+
+ * autogen.sh: Added '--intl' to gettextize flags, seems to be safe for
+ older gettexts as well
+
+ * src/dialogs/xml-tree.c (on_tree_select_row): Remove extra blockade
+ counting (thanks to MenTaLguY)
+ (on_tree_unselect_row): Ditto
+
+2002-11-20 Masatake YAMATO <jet@gyve.org>
+
+ * src/seltrans.c (sp_sel_trans_init): Set null to
+ stamp_cache.
+ (sp_sel_trans_ungrab): Clear stamp_cache.
+ (sp_sel_trans_stamp): If available, use stamp_cache.
+ Else build stamp_cache. l0 is removed. Don't
+ free the list here.
+
+ * src/seltrans.h: Included glib.h.
+ (struct _SPSelTrans): added new field stamp_cache.
+
+2002-11-20 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/interface.c (sp_ui_dialog_menu): Do not bring up > 1 transform dialogs at once
+
+ * src/seltrans.c (sp_sel_trans_stamp): Reversing still was not correct,
+ replaced it with explicit sort
+
+2002-11-20 Masatake YAMATO <jet@gyve.org>
+
+ * src/seltrans.c (sp_sel_trans_stamp): The order of
+ selections is reversed before stamping.
+
+ The bug was reported by Michel Schinz <Michel.Schinz@epfl.ch>.
+
+2002-11-19 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/desktop.c (sp_desktop_prepare_shutdown): New method, allowing us nice
+ cleanup before ::destroy is invoked
+ (sp_dtw_desktop_shutdown): Prepare desktop for shutdown
+
+ * src/sp-text.c (sp_text_is_empty): Treat unicode private plane as graphical
+
+ * src/libnrtype/nr-type-ft2.c (nr_typeface_ft2_lookup): Use private plane
+ direct index, if no unimap
+ (nr_typeface_ft2_new): Set unimap flag according to whether we have
+ unicode mapping table or not
+
+2002-11-18 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * configure.in (FREETYPE_LIBS): Added direct freetype check
+
+ * src/widgets/dash-selector.c (sp_dash_selector_menu_item_new): Use created
+ GC, as widget is not mapped yet
+ (sp_dash_selector_new): Load stroke definitions from preferences
+
+2002-11-17 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/helper/sodipodi-ctrl.c (sp_ctrl_build_cache): Cleaned up bitmap build
+
+2002-11-17 Masatake YAMATO <jet@gyve.org>
+
+ * src/dialogs/xml-tree.c (sp_xml_tree_dialog): Added small
+ space between attribute name text field and set attribute
+ button.
+
+2002-11-17 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/dialogs/xml-tree.c (sp_xml_tree_dialog): Cleanup by MenTaLguY
+
+ * src/widgets/sp-xmlview-attr-list.c (event_attr_changed): Clamping string
+ width to 64[+3], thanks to MenTaLguY
+
+2002-11-16 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/helper/sp-canvas.c (sp_canvas_motion): Get pointer if motion hints are requested
+
+ * src/select-context.c (sp_select_context_item_handler): Use motion hints
+
+ * src/dialogs/text-edit.c (sp_text_edit_dialog_read_selection): Kill annoying
+ warning about position > length
+
+ * src/style.h (SP_SCALE24_FROM_FLOAT): Use temporary (double) cast
+ (SP_SCALE24_TO_FLOAT): Ditto
+
+ * src/dialogs/xml-tree.c (cmd_set_attr): Use gal unicode wrappers
+
+ * src/widgets/sp-xmlview-attr-list.c (event_attr_changed): Use gal unicode wrappers
+
+ * src/widgets/sp-xmlview-content.c (event_content_changed): Use gal unicode wrappers
+ (sp_xmlview_content_changed): Ditto
+
+ * src/widgets/sp-xmlview-tree.c (element_attr_changed): Use gal unicode wrapper
+ (text_content_changed): Ditto
+
+ * src/dialogs/xml-tree.c: Sorted out includes a bit
+ (set_tree_desktop): Comment aout transient, as some WMs do not do it proper
+ (on_desktop_selection_changed): Set/release block
+ (on_tree_unselect_row): Ditto
+ (on_tree_select_row): Ditto
+ (get_dt_select): Use selection helper methods
+
+2002-11-15 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/libnrtype/nr-type-gnome.c (nr_typeface_gnome_glyph_outline_get): Use
+ metrics properly
+
+ * src/libnrtype/nr-type-ft2.c (nr_typeface_ft2_ensure_slot_v): Implement for
+ font missing vertical metrics
+ (nr_typeface_ft2_ensure_outline): Ditto
+
+ * src/libnrtype/nr-type-directory.c (nr_type_read_private_list): Read face
+ number from proper place
+
+ * src/libnrtype/nr-font.c (nr_font_generic_glyph_area_get): Implement
+
+ * src/sp-text.c (sp_string_calculate_dimensions): Use metrics properly
+ (sp_string_set_shape): Ditto
+
+ * src/print.c (sp_print_stroke): Print dash
+
+2002-11-14 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/file.c (sp_file_exit): Close all views before exiting
+
+ * src/interface.c (sp_ui_close_view): Destroy viewwidget properly
+ (sp_ui_close_all): New method
+
+ * src/sp-rect.c (sp_rect_write_transform): Adjust dash in addition to stroke width
+
+ * src/display/nr-arena-shape.c (nr_arena_shape_update): Only dash if
+ total dash length is >= 1.0 pixels
+
+ * src/dialogs/stroke-style.c (sp_stroke_style_line_update_repr): Divide
+ dash values by line width
+ (sp_stroke_style_scale_line): Multiply dash values by line width
+ (sp_stroke_style_line_update): Ditto
+
+ * src/widgets/dash-selector.c (sp_dash_selector_set_dash): Use 1/1000 of
+ total dash distance as delta
+
+ * src/sp-gradient.c (sp_gradient_write): Set xlink:href attribute
+ (sp_stop_write): Do it the right way
+
+2002-11-13 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/style.c (sp_style_read_dash): Allow comma separators
+ (sp_style_read): Read dash presentation attributes
+
+ * src/widgets/dash-selector.c: New file
+
+ * src/widgets/dash-selector.h: New file
+
+ * src/dialogs/stroke-style.c (sp_stroke_style_line_widget_new): Added dash
+ pattern selector
+ (sp_stroke_style_line_update): Update dash
+ (sp_stroke_style_line_update_repr): Ditto
+ (sp_stroke_style_line_dash_changed): Callback
+
+2002-11-12 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/dialogs/xml-tree.c: Naviagtion buttons, better layout and other
+ improvements by MenTaLguY <mental@rydia.net>
+
+2002-11-12 Masatake YAMATO <jet@gyve.org>
+
+ * configure.in: required frontline-0.5.4.
+ You can get both autotrace and frontline from
+ http://sourceforge.net/autotrace.
+ (AC_PROG_AS): wrapped by ifdef.
+ Missing to add ChangeLog before commiting.
+
+2002-11-11 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/libnr/nr-gradient.c (nr_rgradient_render_generic_symmetric): Fix
+ array read overflow
+ (nr_rgradient_render_generic_optimized): Ditto
+
+ * src/widgets/paint-selector.c (sp_paint_selector_write_lineargradient): Normalize
+ gradient transform and recalculate positions before applying
+ (sp_paint_selector_write_radialgradient): Ditto
+
+ * src/widgets/gradient-selector.c (sp_gradient_selector_set_mode): New method
+ (sp_gradient_selector_init): Added units and spread optionmenu
+
+ * src/widgets/gradient-position.c (sp_gradient_position_motion_notify): Comment
+ out nonuniform placement, as it did not work correctly
+
+ * src/libnr/nr-matrix.c (nr_matrix_d_invert): Fix really silly bug generating identities
+ (nr_matrix_f_invert): Ditto
+
+ * src/dialogs/stroke-style.c (sp_stroke_style_paint_update): Set gradient props
+
+ * src/dialogs/fill-style.c (sp_fill_style_widget_update): Set gradient props
+
+ * src/sp-gradient.h: Changed units enumeration, so 0 is default
+
+ * src/display/nr-arena-shape.c (nr_arena_shape_pick): Re-enable SVP based check,
+ only do winding check, if object is filled
+
+ * src/file.c: Removed printing code, only frontends remain
+
+ * src/print.c (sp_print_document): Implement
+ (sp_print_document_to_file): Ditto
+
+ * src/sp-gradient.c (sp_gradient_ensure_colors): Fixed writing last color
+ outside of allocated color vector
+
+2002-11-10 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * configure.in: Commented out AM_PROG_AS, as there is not such macro
+ in my installation
+
+ * src/libnrtype/nr-typeface.h: Signature change for outline unref
+
+ * src/libnrtype/nr-type-gnome.c (nr_typeface_gnome_glyph_outline_get): Implemented
+ vertical metrics outline
+ (nr_typeface_gnome_glyph_advance_get): Ditto for advance
+
+ * src/libnrtype/nr-type-directory.c: Cleaned up a lot, now we can hopefully
+ work with multiple font sources
+
+ * src/libnrtype/nr-type-directory.h: Moved namelist to nr-type-primitives
+
+ * src/libnrtype/nr-type-primitives.c: New file
+
+ * src/libnrtype/nr-type-primitives.h: New file
+
+ * src/libnrtype/nr-type-ft2.c: New file
+
+ * src/libnrtype/nr-type-ft2.h: New file
+
+2002-11-09 Masatake YAMATO <jet@gyve.org>
+
+ * configure.in (AM_CONDITIONAL(USING_OAF)): moved to toplevel.
+ (AM_PROG_AS): used to check gas/as.
+
+ * src/toolbox.c (sp_update_draw_toolbox): tooltips
+ are added to the buttons.
+ (gtk_event_box_new_with_image_file_and_tooltips)
+ (gtk_event_box_force_draw_parent): New functions.
+
+ * src/widgets/sp-menu-button.c (sp_menu_button_draw_arrow): New function.
+ (sp_menu_button_draw): used sp_menu_button_draw_arrow.
+ (sp_menu_button_expose): ditto.
+
+2002-11-06 Masatake YAMATO <jet@gyve.org>
+
+ * src/helper/curve.c (sp_curve_new_from_bpath): Initialize substart
+ field.
+ (sp_curve_reverse): assert if bs->code is ART_MOVETO_OPEN
+ or ART_MOVETO.
+
+ Added functions that converts multiple items to curves.
+ * src/path-chemistry.c (sp_selected_item_to_curved_repr):
+ Use sp_selected_item_to_curved_repr0.
+ (sp_selected_path_to_curves0): New function.
+ (sp_selected_path_to_curves): New function.
+ (SP_TOCURVE_*): Placeholders.
+
+2002-11-05 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/dialogs/export.c: Made glade-free dialog
+
+ * src/file.c (sp_export_png_file): Make filename const
+
+ * configure.in (CFLAGS): Added GCC warnings
+
+2002-11-03 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/dialogs/node-edit.c: Removed unused glade stuff
+
+2002-11-04 Masatake YAMATO <jet@gyve.org>
+
+ * src/dialogs/xml-tree.c (sp_xml_tree_dialog): Added vpaned
+ between sp_xmlview_attr_list_new and text fields.
+
+2002-11-03 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * Makefile.am (SUBDIRS): Removed macros
+
+ * autogen.sh: Made self-contained
+
+ * configure.in: Removed macros
+
+ * src/widgets/sp-xmlview-tree.c: new file by MenTaLguY
+
+ * src/widgets/sp-xmlview-content.c: new file by MenTaLguY
+
+ * src/widgets/sp-xmlview-attr-list.c: new file by MenTaLguY
+
+ * src/libnrtype/nr-type-directory.c: Parsing works for normal fonts
+
+2002-11-02 Masatake YAMATO <jet@gyve.org>
+
+ * README: removed GYVE.
+
+ * doc/keybindings.txt: added a item for stamping.
+
+ * doc/architecture.txt: Fix a typo in a document.
+ / is forgotten in a sample svg.
+
+ * src/rect-context.c (sp_rect_context_config_widget): Fix a typo in a
+ label.
+
+2002-11-01 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/desktop.h: s/GtkEventBoxClass/SPViewClass/; thanks to MenTaLguY
+
+ * configure.in (have_gnome_print): Gnome-print support can be disabled
+
+ * src/libnrtype/Makefile.am (INCLUDES): SODIPODI_GNOME_PRINT_CFLAGS
+
+ * src/Makefile.am (sodipodi_LDADD): Added SODIPODI_GNOME_PRINT_LIBS
+ (INCLUDES): Same for CFLAGS
+
+2002-10-31 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/widgets/font-selector.c (struct _SPFontSelector): Use NRNameListss
+ (sp_font_selector_init): Setup family namelist
+ (sp_font_selector_family_select_row): Setup style namelist
+ (sp_font_selector_set_font): Use namelist
+
+ * src/libnrtype/nr-type-directory.c (nr_type_directory_lookup): New method
+ (nr_type_directory_style_list_get): Return list of full names
+
+ * src/libnrtype/nr-typeface.h: Added full name, removed generic style query
+
+2002-10-31 Masatake YAMATO <jet@gyve.org>
+
+ * src/sp-image.c (autotrace_dialog): invokeed frontline_init
+ if it is defined. in-cvs version of frontline defines
+ frontline_init.
+
+2002-10-27 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/helper/curve.c (sp_bpath_clean): Fixed warning (thanks to MenTaLguY)
+
+2002-10-26 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/dialogs/text-edit.c (sp_text_edit_dialog_update_object): Make
+ style srings lowercase before applying
+
+ * src/dialogs/desktop-properties.c (sp_desktop_dialog_new): Added
+ togglebutton for showing/hiding page border
+
+ * src/desktop.c (sp_dt_namedview_modified): Show/hide page border
+
+ * src/sp-namedview.c (sp_namedview_read_attr): Listen to "showborder"
+
+2002-10-25 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/dialogs/item-properties.c: Removed libglade dependency
+
+2002-10-23 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * configure.in: Added check for popt.h
+
+ * src/dialogs/align.c: Removed libglade dependency
+
+ * src/toolbox.c: Removed libglade dependency
+
+2002-10-22 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/toolbox.c (sp_toolbox_button_new): Helper
+ (sp_toolbox_toggle_button_new): Ditto
+ (sp_toolbox_file_create): Degladeified method
+
+ * src/file.c (sp_file_export_dialog): Frontend
+
+ * src/toolbox.c (sp_toolbox_toggle_button_new): Helper
+ (sp_toolbox_draw_create): Use previous
+
+ * src/main.c: #include <desktop.h>
+
+Mon Oct 21 13:31:41 2002 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * configure.in: Fixed dependency bug.
+ Removed --with/without-gnome-xml2 config option.
+
+2002-10-21 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/widgets/sp-toolbox.c: Removed whole gtk.h inclusion
+
+ * src/toolbox.c: Added missing headers
+
+ * src/print.c (sp_print_image_R8G8B8A8_N): Implement
+ (sp_print_preview): Remove root transform
+ (sp_print_fill): Do not apply ctm twice
+
+Mon Oct 21 02:11:08 2002 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * autogen.sh: Fixed package version in echo message.
+
+ * configure.in: Rewrite using PKG_CHECK_MODULES.
+ It reduced verbose package checks.
+
+ * src/main.c: Removed unused GNOME headers.
+
+ * src/sp-ellipse.c: Ditto.
+
+ * src/sp-image.c: Ditto.
+
+ * src/toolbox.c: Ditto.
+
+ * src/dialogs/align.c: Ditto.
+
+ * src/dialogs/desktop-properties.c: Ditto.
+
+ * src/dialogs/display-settings.c: Ditto.
+
+ * src/dialogs/document-properties.c: Ditto.
+
+ * src/dialogs/object-attributes.c: Ditto.
+
+ * src/dialogs/object-properties.c: Ditto.
+
+ * src/dialogs/stroke-style.c: Ditto.
+
+ * src/dialogs/text-edit.c: Ditto.
+
+ * src/dialogs/tool-attributes.c: Ditto.
+
+ * src/dialogs/tool-options.c: Ditto.
+
+ * src/helper/units.c: Ditto.
+
+ * src/widgets/font-selector.c: Ditto.
+
+ * src/widgets/gradient-selector.c: Ditto.
+
+ * src/widgets/paint-selector.c: Ditto.
+
+ * src/widgets/sp-color-selector.c: Ditto.
+
+ * src/selection.c: Renamed release handler.
+
+ * src/sp-gradient.c: Fixed non existence destroy signal bug.
+
+ * src/sp-item.c: Ditto.
+
+ * src/style.c: Ditto.
+
+ * src/widgets/gradient-image.c: Ditto.
+
+ * src/widgets/gradient-vector.c: Ditto.
+
+ * src/sp-object.c: Cleanup.
+
+Sun Oct 20 12:22:03 2002 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * autogen.sh: Specify automake version to 1.6.1.
+
+ * configure.in: Cleanup.
+
+ * src/desktop-events.c: Cleanup and removed unused gnome header.
+
+ * src/desktop.c: Ditto.
+
+ * src/draw-context.c: Ditto.
+
+ * src/dyna-draw-context.c: Ditto.
+
+ * src/event-context.c: Ditto.
+
+ * src/rect-context.c: Ditto.
+
+ * src/spiral-context.c: Ditto.
+
+ * src/star-context.c: Ditto.
+
+ * src/file.c: Ditto.
+
+ * src/help.c: Ditto.
+
+ * src/main.c: Ditto.
+
+ * src/sp-anchor.c: Ditto.
+
+ * src/sp-item-group.c: Ditto.
+
+ * src/sp-item.c: Ditto.
+
+ * src/sp-rect.c: Ditto.
+
+ * src/sp-shape.c: Ditto.
+
+ * src/sp-spiral.c: Ditto.
+
+ * src/sp-star.c: Ditto.
+
+ * src/interface.c: Ditto.
+ We lost icon for sp_about function.
+
+ * src/sp-image.c: Cleanup and removed unused gnome header.
+ Replaced by GtkDialog.
+
+ * src/document.c: Ditto.
+
+ * src/sodipodi.c: Ditto.
+
+ * src/sp-namedview.c: Fixed bug that SPGuide was unrefed by
+ gtk_object_unref.
+
+ * src/sp-object.c: Fixed up release/disopse/finalize policy.
+ We now got works again.
+ (sp_object_class_init): Fixed object signal handler connection bug
+ at release signal creation.
+
+ * src/sp-pattern.c: Moved to g_object_unref.
+
+ * src/sp-root.c (sp_root_release): Check if namedviews is NULL.
+
+ * src/sp-text.c: Moved to g_object_unref.
+ Removed unused gnome dependency.
+
+ * src/svg-view.c: Moved to g_object_unref and
+ g_object_get/set_data.
+
+ * src/toolbox.c: Reverted from SPWrap to GtkTable.
+ It's not a time to use SPWrap.
+
+ * src/dialogs/export.c: Moved arena object to GObject functions.
+
+ * src/dialogs/item-properties.c: Moved to g_object_unref.
+
+ * src/dialogs/xml-tree.c: Cleanup.
+
+ * src/display/nr-arena-glyphs.c: Moved from finalize to dispose.
+
+ * src/display/nr-arena-group.c: Ditto.
+
+ * src/display/nr-arena-image.c: Ditto.
+
+ * src/display/nr-arena-item.c: Ditto.
+
+ * src/display/nr-arena-shape.c: Ditto.
+
+ * src/display/nr-arena.c: Ditto.
+
+ * src/xml/sp-color-selector.c (sp_color_selector_init): Added
+ GINT_TO_POINTER cast.
+
+2002-10-20 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/libnr/nr-compose-transform.c (nr_R8G8B8A8_P_R8G8B8A8_P_R8G8B8A8_N_TRANSFORM):
+ Use mmx subcomposers if needed
+
+ * src/libnr/nr_mmx_R8G8B8A8_P_R8G8B8A8_P_R8G8B8A8_N_TRANSFORM.S: New file
+
+2002-10-19 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/libnr/nr-compose-transform.c (nr_R8G8B8A8_P_R8G8B8A8_P_R8G8B8A8_N_TRANSFORM_0):
+ Split composer
+ (nr_R8G8B8A8_P_R8G8B8A8_P_R8G8B8A8_N_TRANSFORM_n): Ditto
+
+2002-10-18 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/libnr/nr_mmx_R8G8B8A8_P_EMPTY_A8_RGBAP.S: new file
+
+ * src/libnr/nr-path.c (nr_path_matrix_f_bbox_f_union): Moved bpath
+ bbox calculation here
+ (nr_curve_bbox): Rearrange comparisons
+
+Thu Oct 17 15:25:43 2002 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * Removed macros directory.
+
+ * Makefile.am, autogen.sh, configure.in: Corresponding changes.
+
+2002-10-17 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/helper/sp-canvas.c: Use idle priority lower than Gtk redraw
+
+ * src/display/nr-arena-shape.c (nr_arena_shape_pick): Use libnr
+ distance7wind calculation, if item is not at render state
+ (nr_arena_shape_update): Only update bbox, if render state is not
+ needed. This gave us approximately 10x faster dragging of comlex shapes
+
+ * src/libnr/nr-path.c (nr_line_wind_distance): New helper method
+ (nr_curve_bbox_wind_distance): Ditto
+ (nr_path_matrix_f_point_f_bbox_wind_distance): Fast method to find
+ bbox and/or wind and/or distance to bezier path
+
+2002-10-16 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/print.h: New file, frontend to printing
+
+ * src/print.c: New file, frontend to printing
+
+2002-10-15 Davide Puricelli <evo@debian.org>
+
+ * debian/*: Updated
+
+2002-10-15 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sp-item.c (sp_item_invoke_print): Rename, signature change
+
+ * src/sp-item.h: SPItem::print signature change
+
+ * src/forward.h: Added SPPrintContext
+
+ * src/libnr/testnr.c (main): Fill mask with blocks of transparent, opaque
+ and random data. This should be closer to reality and (surprise!) gives better
+ performance numbers too!
+
+ * src/libnrtype/nr-typeface.c: Moved everyting to virtual method vector
+
+Sun Oct 13 20:54:15 2002 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * autogen.sh: Come from GNOME2.
+
+Sun Oct 13 20:27:04 2002 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * src/desktop-events.c, src/desktop.c,
+ src/dialogs/object-properties.c:
+ Moved gnome_pixmap_new_from_file to gtk_image_new_from_file.
+
+ * src/draw-context.c: Replaced finalize with destory.
+
+ * src/sp-polygon.c: Fixed property bug which did not work
+ correctly.
+
+ * src/widgets/sp-wrap-box.c, src/widgets/sp-wrap-box.h,
+ src/widgets/sp-hwrap-box.c, src/widgets/sp-hwrap-box.h,
+ src/widgets/sp-vwrap-box.c, src/widgets/sp-vwrap-box.h: New files.
+
+ * src/widgets/test-wrapbox.c: New file.
+
+ * src/widgets/Makefile.am: Added wrapbox stuffs.
+
+ * src/widgets/.cvsignore: Added test-wrapbox.
+
+ * src/widgets/sp-toolbox.c: Used g_signal_new instead of
+ gtk_signal_new, because we need accumulater to control signal
+ handler flow, and previous codes are not perfect.
+
+Sun Oct 13 04:18:41 2002 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * src/sodipodi.c, sodipodi.h: sodipodi_get_elapsed_time()
+ was useless, so removed.
+
+ * src/knot.c: Replaced finalize with dispose.
+ use GDK_CURRENT_TIME instead of sodipodi_get_elapsed_time().
+
+ * src/select-context.c: Use GDK_CURRENT_TIME instead of
+ sodipodi_get_elapsed_time().
+
+ * src/style.c: Replaced destroy with release.
+
+ * src/text-context.c: Replaced finalize with destory,
+ because it's not a direct subclass of GObject.
+ Replaced noisy gtk_signal_disconnect_by_data with
+ g_signal_handlers_disconnect_matched.
+
+ * src/toolbox.c: Use normal gtk_menu_item_set_submenu instead of
+ original gtk_menu_popup callback.
+
+ * src/sp-object.c: Fixed illegal signal emission.
+
+ * src/selection.c:
+
+ * src/dialogs/fill-style.c: Added required headler files.
+
+ * src/dialogs/item-properties.c: Depressed warning.
+
+ * src/display/canvas-arena.c: Use GDK_CURRENT_TIME instead of
+ sodipodi_get_elapsed_time().
+
+ * src/helper/sp-guide.c: Cleanup.
+
+ * src/widgets/sp-menu-button.c: Use GDK_CURRENT_TIME instead of
+ sodipodi_get_elapsed_time().
+ Changed popup style.
+
+2002-10-13 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/helper/sp-canvas.c (uta_clear): Experimental method
+ (paint): Return, if events pending (commented out)
+ (do_update): Return value
+ (idle_handler): Use update return value
+
+ * src/libnr/testnr.c: Speed test
+
+ * src/libnr/nr_mmx_R8G8B8_R8G8B8_R8G8B8A8_P.S: New file
+
+ * src/helper/sp-canvas-util.c (sp_canvas_clear_buffer): Be quick
+
+ * src/helper/sp-canvas.h: Moved update flags back here
+
+ * src/display/canvas-arena.c (sp_canvas_arena_update): Sort updates according to affine (again)
+
+ * src/libnr/have_mmx.S: New file (copied from gdk-pixbuf)
+
+ * configure.in (use_mmx_asm): Check for mmx
+
+ * src/libnr/nr-compose.c (nr_R8G8B8A8_P_R8G8B8A8_P_A8_RGBA32): Use mmx if present
+
+ * src/libnr/nr_mmx_R8G8B8A8_P_R8G8B8A8_P_A8_RGBAP.S: Assembler code
+
+2002-10-11 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/helper/sp-canvas.h: Changed object type to SPCanvas, cleanup
+
+ * src/helper/sp-canvas.c: Ditto
+
+2002-10-10 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/helper/sp-canvas.c: Local version of praised GnomeCanvas
+
+ * src/helper/sp-canvas.h: Local version of praised GnomeCanvas
+
+ * src/libnr/nr-gradient.c (nr_rgradient_render_generic_symmetric): Optimize
+
+2002-10-09 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/libnr/nr-blit.c (nr_blit_pixblock_mask_rgba32): New method
+
+ * src/libnr/nr-gradient.c (nr_rgradient_renderer_setup): Do r == 0 correctly
+ (nr_rgradient_render_generic_optimized): Optimize
+ (nr_rgradient_render_block_end): New method
+
+ * configure.in: Version 0.28pre
+
+2002-10-09 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * configure.in: Version 0.27
+
+ * src/text-context.c (sp_text_context_root_handler): Only turn off unimode,
+ if there really is string associated with key
+
+2002-10-09 Masatake YAMATO <jet@gyve.org>
+
+ * src/sp-image.c (load_splines): changed the order
+ of arguments. this change is for frontline-0.5.3.
+
+ * configure.in: required frontline-0.5.3.
+ To build sodipodi with frontline you have to get:
+ http://autotrace.sourceforge.net/snapshots/autotrace-0.30.8.tar.gz
+ http://autotrace.sourceforge.net/frontline/frontline-0.5.3.tar.gz
+
+2002-10-08 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/widgets/gradient-position.c (sp_gradient_position_motion_notify): Do
+ not mess with lineargradient skew
+
+ * src/sp-ellipse.c (sp_arc_modified): Continue upstream
+
+Mon Oct 7 01:41:23 2002 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * Merged from HEAD branch.
+
+2002-10-07 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sp-text.c: Moved frontends here
+
+ * src/dialogs/node-edit.h: Moved declarations here
+
+ * src/desktop.c (sp_desktop_widget_view_position_set): Use grid placement
+ (sp_desktop_widget_namedview_modified): Read grid placement
+ (sp_desktop_widget_update_rulers): Use grid placement
+ (sp_desktop_set_coordinate_status): Disable, until sorted out
+
+ * src/widgets/font-selector.c (sp_font_selector_set_font): Implement
+
+ * src/libnrtype/nr-rasterfont.c (nr_rasterfont_ensure_glyph_slot): Oops, alloc
+ and clear the right number of blocks
+
+ * src/libnr/nr-compose.c (nr_R8G8B8_R8G8B8_A8_RGBA32): Implement
+ (nr_R8G8B8_EMPTY_A8_RGBA32): Implement
+
+ * src/libnr/nr-blit.c (nr_blit_pixblock_mask_rgba32): Implement
+
+ * src/widgets/font-selector.c (sp_font_preview_expose): Implement
+ (sp_font_preview_set_font): Ditto
+
+ * src/libnr/nr-pixblock-pattern.h: New file
+
+ * src/libnr/nr-pixblock-pattern.c: New file
+
+2002-10-06 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/toolbox.c (sp_toolbox_draw_create): Do not expand/fill use correct name for text
+
+ * sodipodi.spec.in: Update to cleaner version by Dag Vieers
+
+ * src/sp-text.c (sp_text_is_empty): New method
+ (sp_string_release): Use ::release, not ::destroy
+ (sp_tspan_release): Ditto
+ (sp_text_release): Ditto
+
+ * src/text-context.c (sp_text_context_selection_changed): Forget text
+ (sp_text_context_forget_text): New method, remove empty text item
+
+ * src/sp-text.c (sp_tspan_build): Ensure there is always text child
+
+ * src/sp-item-group.c (sp_group_bbox): Do not set bbox to 0,0,0,0
+
+ * src/select-context.c (sp_select_context_root_handler): Set grabbed to NULL on release
+
+ * src/path-chemistry.c (sp_selected_path_combine): Use item2root transform
+ (sp_selected_path_break_apart): Ditto
+
+ * src/sp-item.c (sp_item_i2root_affine): New method
+
+ * src/widgets/gradient-position.c (sp_gradient_position_motion_notify): Reset
+ gradient relative transform to symmetric rectilinear if dragging
+
+ * src/style.c (sp_style_merge_ipaint): Use "release" signal
+ (sp_style_read_ipaint): Ditto
+
+ * src/sp-pattern.c (sp_pattern_read_attr): Use "release" signal
+
+ * src/sp-item.c (sp_item_read_attr): Use "release" signal
+
+ * src/sp-image.c (autotrace_dialog): Connect "release" instead of "destroy"
+
+ * src/sp-gradient.c (sp_gradient_href_release): Use "release" instead of "destroy"
+
+2002-10-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+
+ * src/libnr/Makefile.am (libnr_a_SOURCES): added
+ nr-gradient.h. (nr-gradient.c appeared twice.)
+
+2002-10-04 Masatake YAMATO <jet@gyve.org>
+
+ * src/widgets/font-selector.c: Inlucded stdlib.h for atof.
+
+2002-10-05 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/libnr/nr-gradient.c (nr_rgradient_renderer_setup): Use different base renderers
+ (nr_rgradient_render_block_symmetric): Split frontend
+ (nr_rgradient_render_block_optimized): Ditto
+ (nr_rgradient_render_generic_optimized): Asymmetric renderer
+
+ * src/sp-object.c (sp_object_invoke_release): new frontend
+ (sp_object_detach): release object
+ (sp_object_detach_unref): Ditto
+
+ * src/sp-object.h: Added ::release virtual method
+
+ * src/sp-object.c (sp_object_invoke_shutdown): New method
+
+2002-10-04 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sp-item-group.c (sp_item_group_ungroup): Rewrite it, so it moves
+ all non-items to main <defs> node, preserving logical order and building
+ objects in correct sequence
+
+ * src/desktop-affine.c: Methods for root coordinate system, fixes misplacement bug
+
+ * src/libnrtype/nr-rasterfont.c: Made working
+
+ * src/libnrtype/nr-font.c (nr_font_new_default): Do linking
+ (nr_font_unref): Ditto
+
+ * src/libnrtype/nr-type-directory.c (nr_typeface_unref): Moved here, implemented list
+
+ * src/display/nr-arena-glyphs.c (nr_arena_glyphs_update): Port to rfont
+ (nr_arena_glyphs_pick): Ditto (placeholder)
+ (nr_arena_glyphs_set_path): Ditto
+ (nr_arena_glyphs_fill_mask): Ditto
+
+ * src/libnr/nr-matrix.h (NR_MATRIX_DF_EXPANSION): New macro
+ (NR_MATRIX_DF_EXPANSION2): Ditto
+
+2002-10-03 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sp-text.c (sp_text_set_shape): Make document insensitive temporarily
+
+ * src/text-context.c (sp_text_context_root_handler): Allow entering
+ unicode mode by Ctrl-u
+
+2002-10-02 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sp-chars.c (sp_chars_add_element): Signature change
+ (sp_chars_show): Ditto
+
+ * src/display/nr-arena-glyphs.c (nr_arena_glyphs_group_add_component): Signature change
+
+ * src/libnrtype/nr-rasterfont.c (nr_rasterfont_new): Set it up
+ (nr_rasterfont_unref): Release glyph slots
+ (nr_rasterfont_render_glyph_mask): Implement
+ (nr_rasterfont_ensure_glyph_slot): New helper
+
+ * src/sp-text.c: Port to new chars signature
+
+ * src/sp-chars.h: Use font instead of typeface
+
+ * src/libnr/nr-gradient.c (nr_lgradient_render_block): Signature change
+ (nr_lgradient_renderer_setup): Use generic base class
+ (nr_rgradient_renderer_setup): Ditto
+ (nr_rgradient_render_block): Signature change
+
+ * src/libnr/nr-render.h: New file
+
+2002-10-01 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/dialogs/text-edit.c (sp_text_edit_dialog_update_object): Use libnrtype
+ (sp_text_edit_dialog_read_selection): Ditto
+ (sp_text_edit_dialog_font_changed): Ditto
+
+ * src/libnrtype/nr-type-directory.h: Implement NRNameList
+
+ * src/libnrtype/nr-type-directory.c (nr_type_directory_lookup_fuzzy): Force lowercase
+ (nr_type_directory_family_list_destructor): Implement
+ (nr_type_directory_family_list_get): Ditto
+ (nr_type_directory_style_list_destructor): Ditto
+ (nr_type_directory_style_list_get): Ditto
+
+ * src/widgets/font-selector.c: New file
+
+ * src/widgets/font-selector.h: New file
+
+ * src/libnrtype/nr-rasterfont.c: New file
+
+ * src/libnrtype/nr-rasterfont.h: New file
+
+ * src/libnr/nr-matrix.c (nr_matrix_f_set_scale): Correct signature
+
+ * src/sp-text.c (sp_font_get_glyph_bbox): Use libnrtype
+ (sp_font_get_glyph_advance): Ditto
+ (sp_font_get_glyph_bbox_lr2tb): Ditto
+ (sp_string_calculate_dimensions): Ditto
+ (sp_string_set_shape): Ditto
+
+ * src/sp-chars.c (sp_chars_destroy): Use libnrtype
+ (sp_chars_bbox): Ditto
+ (sp_chars_show): Ditto
+ (sp_chars_clear): Ditto
+ (sp_chars_add_element): Ditto
+ (sp_chars_normalized_bpath): Ditto
+ (sp_chars_do_print): Ditto
+
+ * src/sp-chars.h (sp_chars_set_paintbox): Use libnrtype
+
+ * src/libnrtype/nr-type-gnome.h: Placeholder
+
+ * src/libnrtype/nr-type-directory.c: New file
+
+ * src/libnrtype/nr-type-directory.h: New file
+
+ * src/libnrtype/nr-font.c: New file
+
+ * src/libnrtype/nr-font.h: New file
+
+ * src/libnrtype/nr-typeface.c: New file
+
+ * src/libnrtype/nr-typeface.h: New file
+
+ * src/Makefile.am (SUBDIRS): Added libnrtype
+
+ * src/libnr/nr-path.h: Placeholder
+
+2002-09-30 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/widgets/gradient-position.c (spgp_clip_line): New method
+ (spgp_draw_rect): Ditto
+
+Sun Sep 29 14:17:31 2002 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * src/knot.c, knot.h: Moved SPKnot from subclass of GtkObject
+ to GObject.
+
+ * src/knotholder.c: Ditto
+
+ * src/seltrans.c: Ditto
+
+ * src/selection.c: Migrated dispose to destroy for remainder.
+
+ * src/desktop-events.c: Fixed to connect signal handler correctly.
+
+ * src/desktop.c: Fixed to add button correctly.
+
+ * src/sp-use.c: Depressed gchar * warnings.
+
+ * src/sp-guide.c: Indented.
+
+2002-09-29 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sp-gradient.c (sp_gradient_set_gs2d_matrix_f): Oops, write the right transform
+
+ * src/widgets/gradient-position.c: Use new sensible internals
+
+ * src/widgets/gradient-position.h: Ported to ne internals
+
+ * src/widgets/paint-selector.c (sp_paint_selector_set_mode_gradient): Removed
+ separate linear/radial optionmenu
+
+ * src/widgets/gradient-selector.c (sp_gradient_selector_set_gs2d_matrix_f): New method
+ (sp_gradient_selector_get_gs2d_matrix_f): Ditto
+ (sp_gradient_selector_set_rgradient_position): Implement
+ (sp_gradient_selector_init): Pax buttons under vector
+
+ * src/widgets/gradient-position.c: New positioning syntax, lots of radial stuff
+
+ * src/libnr/nr-matrix.h (NR_MATRIX_DF_TRANSFORM_X): Convenience macro
+ (NR_MATRIX_DF_TRANSFORM_Y): Ditto
+
+ * src/dialogs/object-properties.c (sp_object_properties_dialog): Shorten string
+
+ * src/dialogs/stroke-style.c (sp_stroke_style_paint_update): Use new
+ gradient widgets syntax
+ (sp_stroke_style_paint_dragged): Ditto
+ (sp_stroke_style_paint_changed): Ditto
+
+ * src/dialogs/fill-style.c (sp_fill_style_widget_update): Use new gradient
+ widgets syntax for bbox, transform, position
+ (sp_fill_style_widget_paint_dragged): Ditto, use helper
+ (sp_fill_style_widget_paint_changed): Ditto
+
+ * src/sp-gradient.c (sp_gradient_get_gs2d_matrix_f): New method
+ (sp_gradient_set_gs2d_matrix_f): Ditto
+ (sp_gradient_write): Implement
+ (sp_lineargradient_write): Ditto
+ (sp_radialgradient_write): Ditto
+
+ * src/select-context.c (sp_select_context_root_handler): Process button
+ release only if grabbed
+
+2002-09-28 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/widgets/gradient-vector.c (sp_gvs_rebuild_gui_full): Do not add id label
+
+ * src/widgets/paint-selector.c (sp_paint_selector_init): Added radial button
+ (sp_paint_selector_set_style_buttons): Set radial
+ (sp_paint_selector_set_mode_gradient): Set correct button
+
+ * glade/Makefile.am (pixmaps): Added fill_radial.xpm
+
+Sat Sep 28 14:35:21 2002 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * src/toolbox.c: Use gtk_window_set_resizable() instead of
+ gtk_window_set_policy(), because it is deprecated in GTK+2.
+
+ * src/file.c: Depressed warning on gnome_print_master_perview_new.
+
+ * src/sp-object.h, sp-object.c: Added destroy signal and
+ remove dispose signal.
+
+ * src/selection.c, sp-gradient.c, style.c,
+ src/widgets/gradient-vector.c: Moved dispose to destroy.
+
+ * src/sp-guide.c: Added property.
+
+ * src/helper/sp-guide.c: Added property.
+
+ * src/sp-namedview.c: Moved gtk_object_unref to g_object_unref.
+
+ * src/dialogs/text-edit.c: Removed some GNOME dependencies.
+
+ * src/helper/gnome-utils.h gnome-utils.c: New file.
+ Utilities to help to remove GNOME libraries.
+
+ * src/interface.c: Moved some GNOME functions to gnome-utils.h.
+
+2002-09-27 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/widgets/paint-selector.c (sp_paint_selector_get_gradient_position_floatv): Set radial
+
+ * src/libnr/nr-pixblock-pixel.c (nr_compose_pixblock_pixblock_pixel): Kill
+ division by zero, if fg and bg are both fully transparent
+
+ * src/dialogs/fill-style.c (sp_fill_style_widget_update): Implement radial
+ (sp_fill_style_widget_paint_dragged): Ditto
+ (sp_fill_style_widget_paint_changed): Ditto
+
+ * src/sp-gradient.c (sp_radialgradient_set_position): New method
+
+ * src/gradient-chemistry.c (sp_gradient_ensure_radial_private_normalized): New method
+ (sp_gradient_get_radial_private_normalized): Ditto
+ (sp_item_force_fill_radialgradient_vector): Ditto
+ (sp_item_force_stroke_radialgradient_vector): Ditto
+
+2002-09-27 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/widgets/paint-selector.c (sp_paint_selector_set_gradient_radial): New method
+
+ * src/widgets/gradient-position.c (sp_gradient_position_set_mode): New method
+ (sp_gradient_position_update): Setup linear/radial renderer as needed
+
+ * src/widgets/gradient-selector.c (sp_gradient_selector_set_mode): New method
+ (sp_gradient_selector_set_lgradient_position): Renamed method
+ (sp_gradient_selector_set_rgradient_position): Ditto
+ (sp_gradient_selector_get_lgradient_position_floatv): Renamed method
+ (sp_gradient_selector_get_rgradient_position_floatv): Ditto
+
+ * src/libnr/nr-pixblock-pixel.c (nr_compose_pixblock_pixblock_pixel): Fixed
+ R8G8B8 target to render channels separately
+
+ * src/sp-gradient.c (sp_gradient_from_position_xy): Made gradient method,
+ changed signature, added gradientTransform to list
+ (sp_gradient_to_position_xy): Ditto
+
+ * src/libnr/nr-pixblock-pixel.c: New file
+
+ * src/libnr/nr-pixblock-pixel.h: New file
+
+ * src/libnr/nr-gradient.c (nr_lgradient_renderer_setup): Use gradientspace
+ (nr_lgradient_render_block): Use generic renderer, if no specific one
+ (nr_lgradient_render_generic): Implement
+
+ * src/sp-gradient.c (sp_gradient_render_vector_block_rgb): Compose correctly
+
+ * src/libnr/nr-blit.c (nr_compose_pixblock_pixblock_pixel): Generic pixel composer
+
+2002-09-26 Masatake YAMATO <jet@gyve.org>
+
+ * src/select-context.c (sp_select_context_root_handler):
+ used sp_canvas_item_grab where I want to receive key_press event.
+ (sp_select_context_item_handler): Ditto.
+
+2002-09-26 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/libnr/nr-gradient.c: New file
+
+ * src/libnr/nr-gradient.h: New file
+
+ * src/sp-gradient.c (sp_lineargradient_painter_new): Construct libnr renderer
+ (sp_lg_fill): Use it
+ (sp_radialgradient_painter_new): Construct renderer
+ (sp_rg_fill): Use it
+
+ * src/sp-shape.c (sp_shape_print): Clear pixelstore
+
+ * src/sp-chars.c (sp_chars_print_bpath): Clear pixelstore before each rendering
+
+ * src/sp-gradient.c (sp_rg_fill): Oops, moved declaration before statements
+ (sp_rg_fill): Ditto
+
+2002-09-25 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/libnr/nr-compose.c (nr_R8G8B8A8_N_EMPTY_R8G8B8A8_P): Oops, evil bug
+
+ * src/libnr/nr-rect.c (nr_rect_d_matrix_d_transform): New method
+ (nr_rect_f_matrix_f_transform): Ditto
+
+ * src/sp-object-repr.c (sp_object_type_lookup): Added <pattern>
+
+ * src/sp-pattern.h: New file
+
+ * src/sp-pattern.c: New file
+
+ * src/Makefile.am (sodipodi_SOURCES): Added sp-pattern.[c,h]
+
+ * src/sp-gradient.c (sp_rg_fill): Implement, seems correct although SLOW
+ (sp_radialgradient_painter_new): Implement, except viewport percentages
+ (sp_radialgradient_read_attr): Initialize right numbers
+ (sp_radialgradient_init): Ditto
+
+Tue Sep 24 01:01:21 2002 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * src/interface.c (sp_ui_menu_append_item): Fixed to work well,
+ even if label is exist and stock is not exist.
+
+ * src/widgets/sp-menu-button.c (sp_menu_button_menu_position):
+ Modified for popup menu calculation.
+
+ * src/widgets/sp-toolbox.c: Added GTK_SIGNAL_FUNC cast.
+
+2002-09-24 Masatake YAMATO <jet@gyve.org>
+
+ * src/select-context.c (sp_select_context_root_handler,
+ sp_select_context_item_handler): used GDK_space instead
+ of GDK_BUTTON_2. Added Lauris's event mask code after
+ grabbing an item.
+
+ * src/seltrans.c (sp_sel_trans_handle_stamp): removed.
+ (sp_seltrans_handle_event): handled "pressing space" as
+ stamping.
+ (gdk/gdkkeysyms.h): included.
+
+ * src/knot.c (sp_knot_class_init): removed "stamped" signal
+ again.
+ (sp_knot_handler): didn't emit stamped anymore.
+
+2002-09-24 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/libnr/nr-matrix.c (nr_matrix_d_set_scale): new method
+ (nr_matrix_f_set_scale): Ditto
+
+ * src/sp-use.c (sp_use_href_changed): Use unref instead of destroy
+ (sp_use_destroy): Ditto
+
+ * src/seltrans.c (sp_sel_trans_scale): Allow scaling in one dimension,
+ if it is > 0.0
+ (sp_sel_trans_scale_request): Snap in one dimension, if > 0.0
+
+ * src/sp-path.c (sp_path_bbox): Allow empty bboxen
+
+ * src/helper/art-utils.c (sp_bpath_matrix_d_bbox_d_union): Union always,
+ even if computed bbox is empty
+
+Mon Sep 23 01:37:09 2002 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * src/widgets/sp-menu-button.c: Clean up code.
+
+ * src/widgets/sp-menu-button.c (sp_menu_button_menu_position):
+ In GTK+2, button widget share its window among toplevel window,
+ so I fixed offset calculation.
+
+ * src/knot.c: Clean up unused marshaller.
+
+ * src/knotholder.c: Ported.
+
+2002-09-23 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/helper/sp-canvas-util.c (sp_canvas_item_grab): new method to
+ circumvent GnomeCanvas bug
+
+ * src/knot.c (sp_knot_handler): Use sp_canvas_item_grab
+
+2002-09-23 Masatake YAMATO <jet@gyve.org>
+
+ * src/knot.c (sp_knot_class_init): Added "stamped" signal
+ (sp_knot_handler): Emit it
+
+ * src/select-context.c (sp_select_context_item_handler): Do stamping
+ (sp_select_context_root_handler): Ditto
+
+ * src/seltrans.c (sp_sel_trans_stamp): new method
+ (sp_show_handles): Connect "stamped" signal
+ (sp_sel_trans_handle_stamp): new handler
+
+2002-09-23 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/seltrans.c (sp_seltrans_handle_event): Just here for my debugging
+
+ * src/knot.c (sp_knot_handler): No ungrabbing, added TOP CANVAS HACK,
+ so we can now get key events and do not kill Gdk
+
+ * configure.in: Version 0.27pre
+
+Sun Sep 22 22:06:57 2002 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * src/desktop.c: add destroy call for GtkDialog.
+
+ * src/sp-object.c, sp-polyline.c, style.c,
+ src/display/canvas-area.c, src/widgets/gradient-image.c,
+ gradient-vector.c: Ported and fixed.
+
+ * src/sp-ruler.c: Bug fixed that
+ misspelling s/GtkHRuler/SPHRuler/ and s/GtkVRuler/SPVRuler/.
+
+ * src/widgets/sp-menu-button.c, sp-menu-button.h, src/toolbox.c:
+ Found duplicated signal "activate".
+ So, renamed SPMenuButton::activate to "activate-item" and
+ did corresponding change for toolbox.c.
+
+ * src/helper/sp-ctrlline.c: Avoid to duplicated free call for ctrlline->svp.
+
+2002-09-22 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * configure.in: Version 0.26
+
+ * src/main.c: #include <locale.h>, thanks to Masatake
+
+Sun Sep 22 22:21:14 2002 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * src/sp-ruler.c: Bug fixed that
+ misspelling s/GtkHRuler/SPHRuler/ and s/GtkVRuler/SPVRuler/.
+
+Sat Sep 21 03:02:21 2002 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * Now, sodipodi can build and start up again (but often cause segv).
+
+ * src/display/canvas-arena.c, nr-arena-glyphs.h, nr-arena.c:
+ Ported.
+
+ * src/dialogs/export.c, text-edit.c: Ported.
+
+ * src/widgets/sp-color-slider.c, sp-menu-button.c: Ported.
+
+ * src/*.c, *.h: Ported.
+
+ * glade/*.glade: conveted to glade-2.
+
+2002-09-21 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/dialogs/fill-style.c (sp_fill_style_widget_new): Fill rule selector
+ (sp_fill_style_widget_update): Update fill rule selector
+ (sp_fill_style_widget_update_repr): Ditto
+ (sp_fill_style_widget_fill_rule_activate): Set fill-rule
+
+ * src/document.c (sp_document_new): Do not set style
+
+ * src/xml/repr.c (sp_repr_merge): Duplicate node without id key
+
+ * src/sp-path.c (sp_path_build): Set fill to none for old version open path
+
+ * src/bonobo/embeddable-document.c (sp_embeddable_document_pf_load): New
+ document constructor signature, thanks to Ted Gould
+ (sp_embeddable_document_ps_load): Ditto
+ (sp_embeddable_document_new): Ditto
+
+ * src/help.c (sp_help_about): use sp_text_set_repr_multiline
+
+ * src/style.c (sp_style_write_difference): Rewind pointer
+
+ * src/sp-ellipse.c (sp_genericellipse_set_shape): Request modified
+ (sp_arc_modified): Implement, write path attribute
+
+2002-09-20 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sp-object.c (sp_object_private_write): Duplicate repr if needed
+
+ * src/xml/repr-util.c (sp_repr_set_double_default): New method
+
+ * src/sp-rect.c (sp_rect_write): Set default on radiuses
+
+ * src/sp-root.c (sp_root_write): Set namespaces here
+
+ * src/xml/repr.c (sp_repr_document_new): Set doctype and comment
+
+ * src/xml/repr-io.c (sp_repr_read_file): Set doctype and comment if SVG
+ (sp_repr_read_mem): Ditto
+ (sp_repr_save_stream): Save doctype and comment
+
+Thu Sep 19 19:24:04 2002 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * src/sp-marshal.*, src/Makefile.am: Removed old marshaller codes.
+
+2002-09-19 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sp-text.c (sp_string_set_shape): Update position array
+ (sp_text_get_cursor_coords): New method
+ (sp_text_set_shape): Set tspan position to text, if unset; Limit block
+ to tspans with unspecified role
+ (sp_text_insert_line): Implement
+
+ * src/text-context.c (sp_text_context_setup): Set blink to 250ms
+ (sp_text_context_selection_modified): Implement, update cursor position
+ (sp_text_context_selection_changed): Ditto
+ (sp_text_context_root_handler): Cursor placement, insertion and deletion
+ work as they should
+
+ * src/display/nr-arena-shape.c (nr_arena_shape_update): Do not try to
+ fill paths consisting of single lineto
+
+ * src/gradient-chemistry.c (sp_gradient_ensure_private_normalized): Only keep
+ if hrefcount == 1 (fixed bug)
+
+ * src/style.c (sp_style_read): Only parse CMYK if RGBA present
+
+2002-09-18 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sp-ellipse.c (sp_arc_set_elliptical_path_attribute): Lay 2PI arcs as 2 segments
+ (sp_arc_write): Write SVG <ellipse> if it really is one
+
+ * src/style.c (sp_style_write_ienum): We compare computed values, to
+ avoid unnecessary setting of attributes
+ (sp_style_merge_from_parent): Set only computed values for everything
+
+ * src/helper/art-utils.c (sp_vpath_from_bpath_closepath): New method,
+ borrowed relevant helpers from libart code
+
+ * src/display/nr-arena-shape.c (nr_arena_shape_update): Closeall if filled,
+ limit min width to 0.125 instead of cutting it to 0
+
+2002-09-17 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/event-context.c (sp_event_context_destroy): Do not disconnect
+ desktop signal, as there is no such
+ (sp_event_context_new): Do not connect desktop signal
+
+ * src/draw-context.c (sp_pencil_context_root_handler): Changed grabbing only
+ to happen, if pointer is moved button-down. This changed irritating
+ double-click total grab problem.
+ (sp_pen_context_root_handler): Ditto
+
+ * src/display/nr-arena-group.c (nr_arena_group_update): Multiply
+ with group second transformation
+
+ * src/display/nr-arena-group.h: Added child_affine member
+
+ * src/sp-root.c (sp_root_read_attr): Use NRMatrixD for viewbox
+ (sp_root_show): Implement, apply viewBox
+ (sp_root_bbox): Ditto
+ (sp_root_print): Ditto
+
+ * src/sp-item.c (sp_item_i2doc_affine): Apply viewBox
+
+Tue Sep 17 13:50:40 2002 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * src/dialogs/stroke-style.c: A few fix from my office.
+
+Mon Sep 16 21:31:33 2002 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * src/display/*: Really done.
+
+ * src/*: Half done, but partially adhock.
+
+Mon Sep 16 14:22:10 2002 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * Start migration to GTK+2 environment.
+
+ * Makefile.am, configure.in, acconfig.h: Use pkgconfig, GLib2,
+ Pango, GTK+2, GNOME2, etc.
+
+ * src/dialogs/*: Done.
+
+ * src/display/*: Done.
+
+ * src/helper/*: Done.
+
+ * src/svg/*: Done.
+
+ * src/widgets/*: Done.
+
+ * src/xml/*: Done.
+
+ * src/*: Partialy done.
+
+2002-09-16 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/helper/png-write.c (sp_png_get_block_stripe): Helper
+ (sp_png_write_rgba): Use striped writer
+ (sp_png_write_rgba_striped): New method
+
+ * src/dialogs/export.c (sp_export_get_rows): Renderer
+ (sp_export_do_export): Use striped exporter
+
+ * src/file.c: Added <time.h> - Thanks to Masatake for finding it
+
+2002-09-15 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/display/nr-arena-image.c (nr_arena_image_render): Use libnr
+ transformed composition methods
+
+ * src/libnr/nr-compose-transform.c: New file
+
+ * src/libnr/nr-compose-transform.h: New file
+
+2002-09-15 Masatake YAMATO <jet@gyve.org>
+
+ * src/toolbox.c (sp_maintoolbox_drag_data_received): made
+ it a static scoped function.
+ (sp_maintoolbox_create): Connected sp_maintoolbox_drag_data_received
+ to maintoolbox. (glade based version is obsoleted.)
+
+ * src/toolbox.c (sp_maintoolbox_drag_data_received): removed
+ declaration.
+
+2002-09-15 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/file.c (sp_file_save_as): Added "file type" optionmenu
+ (sp_file_save_type_activate): Helper
+ (file_save_ok): Save plain SVG if needed
+
+ * src/sp-namedview.c (sp_namedview_write): Implement
+
+ * src/sp-text.c (sp_text_write): Implement
+
+ * src/sp-use.c (sp_use_write): implement
+
+ * src/sp-root.c (sp_root_write): Implement
+
+ * src/sp-polyline.c (sp_polyline_write): Implement
+
+ * src/sp-line.c (sp_line_write): Implement
+
+ * src/sp-image.c (sp_image_write): Implement
+
+ * src/sp-gradient.c (sp_stop_write): Implement
+
+ * src/sp-defs.c (sp_defs_write): Implement
+
+ * src/sp-clippath.c (sp_clippath_write): Implement
+
+ * src/sp-anchor.c (sp_anchor_write): Implement
+
+ * src/sp-polygon.c (sp_polygon_write): new ::write syntax
+
+ * src/sp-spiral.c (sp_spiral_write): New ::write syntax
+
+ * src/sp-star.c (sp_star_write): New ::write syntax
+
+ * src/sp-ellipse.c (sp_ellipse_write): New ::write syntax
+ (sp_circle_write): Ditto
+ (sp_arc_write): Ditto
+
+ * src/sp-rect.c (sp_rect_write): New ::write syntax
+
+ * src/sp-shape.c (sp_shape_write): New ::write syntax
+
+ * src/star-context.c (sp_star_finish): New ::write syntax
+
+ * src/spiral-context.c (sp_spiral_finish): New ::write syntax
+
+ * src/knotholder.c (knot_moved_handler): new ::write syntax
+
+ * src/sp-object.c (sp_object_invoke_write): Renamed and enhanced
+ ::write_repr method, can now construct trees and write plain SVG
+
+ * src/sp-item-group.c (sp_group_write): Implement
+
+2002-09-14 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/toolbox.c (sp_maintoolbox_menu_button_press): Construct main
+ menu here dynamically
+
+ * src/main.c (sp_main_console): Hide documents for nongui, slideshow
+
+ * src/interface.c (sp_ui_file_menu): Recent list
+ (sp_ui_main_menu): Ditto
+ (sp_menu_append_recent_documents): New helper
+
+ * src/help.c (sp_help_about): Hide document from list
+
+ * src/file.c (sp_file_open): New method
+ (sp_file_open_dialog): Renamed old sp_file_open
+
+ * src/sodipodi.c (sodipodi_add_document): Emit "new_document"
+ (sodipodi_remove_document): Emit "destroy_document", update recent list
+ (sodipodi_segv_handler): Truncate filenames to sensible part
+
+ * src/toolbox.c (sp_maintoolbox_open_one_file_with_check): Use sp_file_open
+
+2002-09-13 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/draw-context.c (sp_pencil_context_root_handler): Clear anchors
+ (spdc_finish_endpoint): Ditto
+ (spdc_pen_finish): Ditto
+
+ * src/document.h: Moved uri/base/name to main structure
+
+ * src/draw-context.c (sp_pen_context_finish): Call parent method, fixes
+ habit of crashing after using pen
+
+2002-09-12 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/libnr/*: Started composing sensible library at last
+
+ * src/document.c: Fix DTD typo
+
+ * src/main.c (sp_main_gui): Moved setting LC_NUMERIC after gnome init
+ (sp_main_console): Set LC_NUMERIC to "C" here too
+
+2002-09-11 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * configure.in: Version 0.26pre
+
+ * src/display/Makefile.am (libspdisplay_a_SOURCES): Removed fill.[c,h] and stroke.[c,h]
+
+2002-09-11 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/node-context.c (sp_node_context_item_handler): Do not
+ select, if rubberband has been dragged
+
+ * src/widgets/sp-menu-button.c (sp_menu_button_draw): Implement,
+ draw small indication arrow here
+ (sp_menu_button_expose): Ditto
+
+ * src/helper/curve.c (sp_bpath_clean): New method
+ (sp_curve_new_from_bpath): Clean bpath, if not good
+ (sp_curve_new_from_static_bpath): Ditto
+ (sp_curve_new_from_foreign_bpath): Ditto
+
+ * src/macros.h: Some new macros
+
+ * src/sp-object.c (sp_object_modified): Oops! Replaced '&&' with '&',
+ this fixed super-slow rendering during drag bug
+
+2002-09-10 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/selection-chemistry.c (sp_group_cleanup): Helper
+ (sp_edit_cleanup): New method
+
+ * src/path-chemistry.c (sp_path_cleanup): New method
+
+ * src/draw-context.c (sp_draw_context_finish): Implement
+
+ * src/seltrans.c (sp_sel_trans_ungrab): Do not set identity
+
+ * src/sp-item-transform.c: Do not set identity transform
+
+ * src/sp-text.c (sp_text_write_transform): Do not write identity
+
+ * src/sp-rect.c (sp_rect_write_transform): Do not write identity
+
+ * src/xml/repr.c (sp_repr_remove_listener_by_data): Oops, removed excess step
+
+ * src/sp-shape.c (sp_shape_build): Force style rewrite for old versions
+
+ * src/view.c (sp_view_widget_view_destroy): handler
+ (sp_view_widget_set_view): Connect "destroy"
+
+ * src/main.c (sp_do_export_png): Move exporting code here, implement
+ --export-width, --export-height, --export-backround arguments
+
+ * src/helper/nr-plain-stuff.c (nr_render_r8g8b8a8_r8g8b8a8_alpha): Implement
+ using internal composer
+
+ * src/sp-item.c (sp_item_paint): Render buffer instead of copy
+
+2002-09-09 Masatake YAMATO <jet@gyve.org>
+
+ * src/sp-image.c (autotrace_dialog): Used
+ gtk_signal_connect_object_while_alive and
+ gtk_signal_connect_object instead of gtk_signal_connect_while_alive
+ and gtk_signal_connect.
+ (object_destroyed): Removed.
+ (load_trace_result): ask the user whehter loading or net.
+
+ * configure.in (AM_PATH_FRONTLINE): Check the version of frontline(>= 0.5.1).
+
+2002-09-09 Zbigniew Chyla <cyba@gnome.pl>
+
+ * src/draw-context.c, src/dyna-draw-context.c, src/select-context.c,
+ src/spiral-context.c, src/star-context.c,
+ src/dialogs/tool-attributes.c, src/dialogs/tool-options.c,
+ src/dialogs/xml-tree.c: Added <config.h>
+
+2002-09-09 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/gradient-chemistry.c (sp_gradient_ensure_private_normalized): Normalize
+ if flag is set, but hrefcount > 1
+ (sp_item_force_fill_lineargradient_vector): Check for hrefcount
+ (sp_item_force_stroke_lineargradient_vector): Ditto
+
+ * src/interface.c: Added <config.h>
+
+ * glade/toolbox.glade: Fixed non-ASCII character
+
+2002-09-08 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/dialogs/export.c (sp_export_do_export): Fixed affine
+
+ * src/main.c (sp_main_console): Fixed affine
+
+ * src/toolbox.c (sp_maintoolbox_create): Construct main window by hand
+
+ * src/interface.c (sp_ui_main_menu): New method
+
+ * src/help.c (sp_help_about): Use document width and height
+
+ * src/svg-view.c (sp_svg_view_rescale): Use pixel coords
+ (sp_svg_view_widget_size_request): Ditto
+
+ * src/spiral-context.c (sp_spiral_context_config_widget): Implement
+ (sp_spiral_context_setup): Ditto
+ (sp_spiral_context_set): Ditto
+
+ * src/star-context.c (sp_star_context_config_widget): Implement
+
+ * src/desktop.c (sp_desktop_new): Use repr key for initial select context
+
+ * src/select-context.c (sp_select_context_config_widget): Implement
+ (sp_select_context_transform_toggled): Helper
+ (sp_select_context_show_toggled): Ditto
+
+ * src/display/nr-arena-shape.c (nr_arena_shape_update): Do not stroke,
+ if width < 0.125
+
+ * src/display/nr-arena-glyphs.c (nr_arena_glyphs_group_update): Use paintbox
+ (nr_arena_glyphs_group_set_paintbox): New method
+ (nr_arena_glyphs_update): Do not stroke if width < 0.125
+ (nr_arena_glyphs_render): Do not render here
+ (nr_arena_glyphs_fill_mask): New helper
+ (nr_arena_glyphs_stroke_mask): Ditto
+ (nr_arena_glyphs_group_update): Create painters here
+ (nr_arena_glyphs_group_render): Render here
+
+ * src/dialogs/tool-attributes.c (sp_tool_attributes_dialog_setup): Added
+ SPSelectContext
+
+ * src/dialogs/stroke-style.c (sp_stroke_style_paint_update): Use new gradient
+ position widget logic
+ (sp_stroke_style_paint_dragged): Ditto
+ (sp_stroke_style_paint_changed): Ditto
+
+ * src/dialogs/fill-style.c (sp_fill_style_widget_update): Use new gradient
+ position widget logic
+ (sp_fill_style_widget_paint_dragged): Ditto
+ (sp_fill_style_widget_paint_changed): Ditto
+
+ * src/sp-shape.c (sp_shape_show): Calculate and set paintbox
+ (sp_shape_modified): Ditto
+
+ * src/sp-gradient.c (sp_lineargradient_from_position): New method
+ (sp_lineargradient_to_position): Ditto
+
+ * src/sp-chars.c (sp_chars_print_bpath): Implement via nr plain buffers
+ (sp_chars_set_paintbox): New method
+
+ * src/seltrans.c (sp_sel_trans_shutdown): Destroy handles and canvasitems
+
+ * src/seltrans.h: Added modifieable parameters
+
+ * src/selection.c (sp_selection_bbox_document): New method
+
+ * src/select-context.c (sp_select_context_set): Implement this
+
+ * src/arc-context.c (sp_arc_finish): Oops, set sodipodi namespace
+
+2002-09-07 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/style.c (sp_length_differ): Oops, if units differ check value
+
+ * src/sp-paint-server.h: painter contructor signature change
+
+ * src/display/nr-arena-shape.c: Remove group stuff
+ (nr_arena_shape_set_paintbox): New method
+
+ * src/display/nr-arena-shape.h: Remove group stuff
+
+ * src/sp-object.c (sp_object_get_style_property): read presentation attr
+
+ * src/sp-chars.c (sp_chars_style_modified): Use nr_arena_glyphs_group
+ (sp_chars_show): Ditto
+ (sp_chars_clear): Ditto
+ (sp_chars_add_element): Ditto
+
+ * src/sp-shape.c (sp_shape_modified): Set paintbox
+ (sp_shape_style_modified): Use single nr_arena_shape
+ (sp_shape_show): Ditto
+ (sp_shape_remove_comp): Ditto
+ (sp_shape_add_comp): Ditto
+
+ * src/macros.h: Add total silencing
+
+ * src/sp-gradient.c (sp_lineargradient_painter_new): Implement userSpaceOnUse
+ except percentages (still not clear, what to do with those), but do
+ bbox correctly
+
+2002-09-06 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/dialogs/text-edit.c (sp_text_edit_dialog_update_object): Generic method
+ (sp_text_edit_dialog_set_default): New method
+ (sp_text_edit_dialog_read_selection): Read defaults if no text
+ (sp_text_edit_dialog_text_changed): Update default button
+ (sp_text_edit_dialog_font_changed): Ditto
+ (sp_text_edit_dialog_any_toggled): Ditto
+ (sp_ted_get_selected_text_item): Helper
+
+ * src/dialogs/tool-options.c (sp_tool_options_dialog_setup): Implement
+ using sp_event_context_config_widget
+
+ * src/event-context.h: Added ::config_widget virtual method
+
+ * src/event-context.c (sp_event_context_config_widget): New method
+
+ * src/dyna-draw-context.c (sp_dyna_draw_context_config_widget): new method
+
+2002-09-05 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/dialogs/stroke-style.c (sp_stroke_style_paint_construct): Handler
+ (sp_stroke_style_paint_attr_changed): Ditto
+ (sp_stroke_style_repr_get_style): Helper
+ (sp_stroke_style_paint_update_repr): For SPRepr associated styles
+ (sp_stroke_style_paint_changed): Write bare repr if needed
+ (sp_stroke_style_line_construct): Handler
+ (sp_stroke_style_line_attr_changed): Ditto
+ (sp_stroke_style_line_update_repr): Alternate parser
+ (sp_stroke_style_width_changed): Write repr if needed
+ (sp_stroke_style_any_toggled): Ditto
+
+ * src/dialogs/object-properties.c (sp_object_properties_dialog): build
+ optionmenu for choosing between selection/tools
+
+ * src/dialogs/fill-style.c (sp_fill_style_widget_new): Attach attr_changed
+ (sp_fill_style_repr_get_style): Helper
+ (sp_fill_style_widget_update_repr): Repr-associated version updater
+ (sp_fill_style_widget_paint_changed): Write repr instead of item list if needed
+
+ * src/widgets/sp-widget.c (spw_repr_attr_changed): Repr callback
+ (sp_widget_new_global): Build from sodipodi
+ (sp_widget_new_repr): Build from repr
+ (sp_widget_construct_global): Constructor
+ (sp_widget_construct_repr): Ditto
+
+ * src/style.c (sp_style_new): New method
+ (sp_style_read): Move evrything here
+ (sp_style_read_from_object): Frontend
+ (sp_style_read_from_repr): Ditto
+
+2002-09-04 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sp-path.c (sp_path_build): Update SODIPODI-PATH-NODE-TYPES attribute
+
+2002-09-03 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sp-text.c (sp_text_set_shape): Oooooooops, use MAX for bbox other corner
+
+ * src/document.c (sp_document_new): Set docname attribute after build
+
+ * src/sp-text.c (sp_text_find_version): Helper
+ (sp_text_build): Build tspans etc. if 0.0 < version < 0.25
+
+ * src/sp-ellipse.c (sp_arc_find_version): Helper
+ (sp_arc_build): Per-version attributes
+ (sp_arc_read_attr): Ditto
+
+ * src/document.c (sp_document_new): Delay namespaces etc. to determine version
+ (sp_document_new_from_mem): Ditto
+
+ * src/document.h: Bring some members here
+
+2002-09-02 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/dialogs/stroke-style.c (sp_stroke_style_line_update): Make insensitive, if not stroked
+
+ * src/sp-rect.c (sp_rect_write_transform): Adjust stroke width, if scale changes
+
+ * src/sp-text.c: Port to SPSVGUnits
+
+ * src/sp-root.c: Port to SPSVGLength, use pixels as basic units from now on
+
+ * src/sp-rect.c: Port to SPSVGLength
+
+ * src/sp-image.c: Port to SPSVGLength
+
+ * src/sp-gradient.c: Port to SPSVGLength
+
+ * src/sp-ellipse.c: Port to SPSVGLength
+
+ * src/file.c (sp_do_file_print_to_printer): Fix px/pt ratio
+ (sp_do_file_print_preview): Ditto
+
+ * src/document.c (sp_document_width): Fix px/pt ratio
+ (sp_document_height): Ditto
+ (sp_document_new): Add sodipodi:version
+ (sp_document_new_from_mem): Ditto
+
+ * src/desktop.c (sp_desktop_init): Fix px/pt ratio in doc2dt matrix
+
+ * src/svg/svg-length.c (sp_svg_length_read): New method
+ (sp_svg_length_read_lff): Ditto
+ (sp_svg_length_unset): Ditto
+
+ * src/svg/svg-types.h: New file
+
+ * src/dialogs/Makefile.am (libspdialogs_a_SOURCES): Added tool-options.[c,h]
+
+2002-08-30 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sp-text.c (sp_text_set_shape): Do layouting here, so we can handle blocks
+
+ * src/dialogs/text-edit.c (sp_text_edit_dialog): Layout radiobuttons
+ (sp_text_edit_dialog_apply): Do layout
+ (sp_text_edit_dialog_read_selection): Ditto
+
+ * src/sp-text.c (sp_font_get_glyph_bbox): New helper
+ (sp_font_get_glyph_advance): Ditto
+ (sp_font_get_glyph_bbox_lr2tb): Ditto
+ (sp_string_calculate_dimensions): Do vertical dimension correctly
+ (sp_string_set_shape): Ditto
+
+2002-08-29 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sp-text.c (sp_string_calculate_dimensions): New method
+
+ * configure.in: Rewind required gnome-print version to 0.29
+
+ * src/sp-object.h: Added viewport and user flags
+
+ * src/style.c: Added functional 'text-anchor' property
+
+ * src/style.h: Added functional 'text-anchor' property
+
+ * src/svg/svg-color.c (sp_svg_read_color): Read rgb(r,g,b) variants
+
+ * src/style.c: Created new IEnum type with immediate and computed members,
+ ported font-style, font-variant, font-weight, font-stretch to it
+
+ * src/sp-text.c (sp_string_set_shape): Use computed 'font-style' value
+
+ * glade/Makefile.am (glade_DATA): Removed text-dialog.glade
+
+ * src/dialogs/text-edit.c: Get rid of glade
+
+2002-08-28 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/display/canvas-arena.c: Ref active item, so it does not disappear
+
+ * src/style.c: Implement SPIFontSize and various helpers for it
+
+ * src/sp-text.c: New font size type
+
+ * src/sp-shape.c: 24-bit opacity scale
+
+ * src/sp-item.c (sp_item_read_attr): Reread style for font-size
+
+ * src/sp-image.c: 24-bit opacity scale
+
+ * src/sp-chars.c: 24-bit opacity scale
+
+ * src/gradient-chemistry.c: 24-bit opacity scale
+
+ * src/file.c (sp_do_file_print_preview): Ensure up-to-date
+ (sp_do_file_print_to_printer): Ditto
+
+2002-08-27 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/dialogs/export.c (sp_export_do_export): Fix affine (one more time)
+
+ * src/sp-item.c (sp_item_paint): Ensure document is up-to-date
+
+ * src/sp-chars.c (sp_chars_print_bpath): Use new transformed bpath bbox
+ (sp_chars_bbox): Ditto
+
+ * src/sp-path.c (sp_path_bbox): Use new transformed bpath bbox
+
+ * src/helper/art-utils.c (sp_bpath_matrix_d_bbox_d_union): New method
+ (sp_bpath_segment_bbox_d): Helper
+
+2002-08-26 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/dialogs/text-edit.c (sp_text_dialog_apply): Oops, set size, not some crap here
+
+ * src/sp-chars.c (sp_chars_do_print): New direct method
+ (sp_chars_print_bpath): Helper
+
+ * src/gradient-chemistry.c (sp_item_repr_set_style_gradient): Set recursive
+
+2002-08-25 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/text-context.c (sp_text_context_finalize): Do not use desktop here
+ (sp_text_context_finish): Implement, release desktop stuff here
+
+ * src/sp-text.c (sp_text_normalized_bpath): New method
+ (sp_text_print): Implement, still needs SPChars method
+
+ * src/sp-chars.c (sp_chars_normalized_bpath): New method
+
+ * src/path-chemistry.c (sp_selected_path_to_curves): Convert the new text object
+
+ * src/interface.c (sp_ui_file_menu): Use helpers, the right export dialog
+
+ * src/draw-context.c (sp_pen_context_finish): Flush object
+ (sp_pen_context_root_handler): Added 'BackSpace', should work OK now
+
+ * src/event-context.c (sp_event_context_finish): New method and virtual method
+
+ * src/desktop.c (sp_desktop_set_event_context): Finish eventcontext
+
+ * src/helper/curve.c (sp_curve_backspace): New method
+
+2002-08-24 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/helper/curve.c (sp_curve_append): Handle open/closed end and start
+
+ * src/preferences-skeleton.h: Added pen tool, made AI style default
+
+ * src/draw-context.c (sp_draw_context_setup): Set attach
+ (sp_draw_context_root_handler): React to '+' key
+ (spdc_set_attach): Set/clear append mode
+ (spdc_attach_selection): Renamed
+ (spdc_detach_selection): New method
+ (spdc_reset_white): Only need white, not all colors
+ (sp_pencil_context_root_handler): Destroy green anchor on release
+ (sp_pen_context_setup): Handle "mode" attribute
+ (sp_pen_context_set): Ditto
+ (sp_pen_context_root_handler): Has now AI style (default) and click-click modes
+ (spdc_pen_set_ctrl): Handle modes
+ (spdc_pen_finish): New method
+
+2002-08-23 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/dialogs/sp-attribute-widget.h: It can now be attached to mere SPRepr too
+
+ * src/dialogs/sp-attribute-widget.c (sp_attribute_widget_new_repr): New constructor
+ (sp_attribute_widget_set_repr): New method
+ (sp_attribute_table_new_repr): New constructor
+ (sp_attribute_table_set_repr): New method
+
+ * src/star-context.c (sp_star_context_set): Attribute reader
+ (sp_star_context_setup): parse attributes
+
+ * src/marshal.c (sp_marshal_NONE__STRING_BOOL): New method
+
+ * src/interface.c (sp_ui_dialog_menu): Tool attributes menu
+
+ * src/event-broker.c: Added event context node location
+
+ * src/dyna-draw-context.c (sp_dyna_draw_context_set): Attribute reader
+ (sp_dyna_draw_context_setup): Parse attributes
+
+ * src/draw-context.h: Added selection member
+
+ * src/view.c (sp_view_set_position): Frontend to virtual method
+ (sp_view_set_status): Ditto
+
+ * src/view.h: Added virtual methods for marking status and position
+
+ * src/desktop.c (sp_desktop_widget_view_status_set): Moved status to
+ parent container, where it belongs
+ (sp_desktop_widget_view_position_set): Same for position
+ (sp_desktop_widget_new): Listen status and position signals
+
+ * src/dialogs/tool-attributes.c: New file
+
+ * src/dialogs/tool-attributes.h: New file
+
+2002-08-20 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/dyna-draw-context.c: Removed control knot, as we do not attach to anything
+
+ * src/xml/repr.c (sp_repr_unref): Implemented launching destroy listener
+
+ * src/xml/repr-private.h: Added destroy listener
+
+2002-08-19 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sodipodi.c (sodipodi_segv_handler): Do better names and inform user about these
+
+ * src/selection-chemistry.c (sp_item_list_common_parent_group): Helper
+ (sp_selection_raise): Made it to work with all item combinations
+ (sp_selection_lower): Ditto, do not lower under non-items
+
+ * src/sp-item-group.c (sp_group_order_changed): Fix item order calculation
+
+2002-08-18 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/document-undo.c (sp_document_order_changed): Set correct action type
+
+2002-08-17 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/selection-chemistry.c (sp_selection_ungroup): Use method from item group
+
+ * src/sp-item-group.c (sp_item_group_ungroup): Preserve order and styles
+
+ * src/style.c (sp_style_read_from_object): Synchronized with new style structure
+ (sp_style_merge_property): Ditto
+ (sp_style_merge_from_object_parent): Ditto
+ (sp_style_merge_ipaint): Renamed
+ (sp_style_write_string): New write semantics
+ (sp_style_write_difference): New method
+ (sp_text_style_write): New write semantics
+ (sp_style_read_ifloat): Rename
+ (sp_style_read_iscale30): Ditto
+ (sp_style_read_ienum): Ditto
+ (sp_style_read_istring): Ditto
+ (sp_style_read_ipaint): Ditto
+ (sp_style_write_ifloat): Signature, semantics and name change
+ (sp_style_write_iscale30): Ditto
+ (sp_style_write_ienum): Ditto
+ (sp_style_write_istring): Ditto
+ (sp_style_write_ipaint): Ditto
+ (sp_paint_differ): Helper
+
+ * src/style.h: Renamed inherited types, changed miterlimit to ifloat
+
+ * src/color.c (sp_color_is_equal): New method
+
+ * src/style.c (sp_style_merge_from_style_string): Accept (although warn)
+ properties without end marker
+
+ * src/dialogs/export.c (sp_export_do_export): Use correct transformation
+
+ * src/main.c: Added command-line export functionality
+ (main): Cleanup
+ (sp_main_gui): Broke GUI-specific stuff here
+ (sp_main_console): Same for console mode, implement export, use current dor for print
+
+2002-08-16 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/toolbox.c (sp_maintoolbox_create): Moved draw toolbox to separate method
+ (sp_toolbox_draw_set_object): Callback
+ (sp_toolbox_draw_create): New method, create MenuButtons
+ (sp_update_draw_toolbox): Use MenuButtons
+
+ * src/event-broker.c: Added pen context, use pencil and pen instead of draw
+
+ * src/draw-context.c: Break draw context into parent, pencil and pen
+
+ * src/draw-context.h: Ditto
+
+ * src/widgets/sp-menu-button.h: New file
+
+ * src/widgets/sp-menu-button.c: New file, implement something similar to
+ GtkOptionmenu, but with some sodipodi-specific sugar
+
+ * glade/draw_pen.xpm: New file
+
+ * src/draw-context.c (sp_draw_context_finalize): Destroy pen controls
+ (sp_draw_context_setup): Setup pen controls
+ (sp_draw_context_root_handler): Do pen stuff
+ (spdc_pen_set_point): New helper
+ (spdc_pen_set_ctrl): Ditto
+ (spdc_pen_finish_segment): Ditto
+
+ * src/helper/sp-ctrlline.c (sp_ctrlline_set_rgba32): New method
+
+2002-08-15 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/toolbox.c (sp_update_draw_toolbox): Freehand keeps undo/redo sensitive now
+
+ * src/document.c (sp_document_ensure_up_to_date): New method
+
+ * src/draw-context.c (sp_draw_context_setup): Read selection data
+ (sp_draw_context_root_handler): Use colors for freehand, place green anchor
+ (spdc_selection_changed): Use read_selection
+ (spdc_selection_modified): Ditto
+ (spdc_read_selection): New method
+ (spdc_add_freehand_point): Ditto
+ (spdc_concat_colors_and_flush): Check, whehter green anchor exist, do contiguous append
+ (fit_and_split): Use continious append
+ (sp_draw_anchor_destroy): Signature change
+
+2002-08-14 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/draw-context.c (sp_draw_context_destroy): Do not destroy start and end anchors
+ (sp_draw_context_selection_modified): Save white curves in desktop coordinates
+ (sp_draw_context_root_handler): Use state indicator, change addline modes on release
+ (spdc_concat_colors_and_flush): Use continuous append
+ (spdc_flush_white): Translate everything to item coordinates here
+
+ * src/draw-context.h: Replace booleans with single state indicator
+
+ * src/helper/curve.c (sp_curve_transform): New method
+ (sp_curve_append_continuous): New method
+
+2002-08-12 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/draw-context.c (spdc_finish_endpoint): Cleanup
+ (spdc_flush_white): Do concat, create object if needed, do red->white transform if needed
+ (spdc_clear_red_data): Helper
+
+ * src/draw-context.h: Member rename
+
+ * src/helper/curve.c (sp_curve_append): Append the whole curve, not just last segment
+ (sp_curve_concat): Set lengths etc. correctly, fixes draw crash
+
+2002-08-08 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/dialogs/text-edit.c (sp_text_dialog_apply): Why there were strdups here?
+
+ * src/style.c (sp_style_read_from_object): Cleanup font-family and font-size
+ (sp_style_merge_property): Ditto
+ (sp_style_merge_from_object_parent): Ditto
+ (sp_text_style_write): Ditto
+ (sp_style_read_inherited_float): New helper
+ (sp_style_read_inherited_string): Ditto
+ (sp_style_write_inherited_float): Ditto
+ (sp_style_write_inherited_string): Ditto
+
+ * src/sp-text.c (sp_text_set_repr_text_multiline): Set roles and line positions
+
+2002-08-07 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sp-text.c (sp_text_read_attr): Request relayout
+ (sp_text_child_added): Ditto
+ (sp_text_remove_child): Ditto
+ (sp_text_modified): Check, whether relayout is needed
+ (sp_text_request_relayout): Helper
+
+ * src/style.c (sp_style_merge_from_object_parent): Inherit font size (still wrong)
+
+ * src/text-context.c (sp_text_context_root_handler): Allow control key
+ to be passed, send nonbreaking space for Ctrl+Space
+
+ * src/sp-text.c (sp_string_set_shape): Try to collect spaces across item boundaries
+ (sp_tspan_set_shape): Ditto
+ (sp_text_set_shape): Ditto
+
+2002-08-05 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/text-context.c (sp_text_context_root_handler): Use sp_text_append
+
+ * src/sp-text.c (sp_text_append): New method
+
+2002-07-31 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/text-context.c (sp_text_context_finalize): Use it instead of ::destroy
+ (sp_text_context_setup): Create cursor
+ (sp_text_context_root_handler): Show cursor
+ (sp_text_context_selection_changed): Update cursor
+ (sp_text_context_timeout): Blink handler
+
+ * src/text-context.h: Added cursor
+
+2002-07-30 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/Makefile.am (sodipodi_SOURCES): Added macros.h
+
+ * src/sp-text.c (sp_text_write_transform): Do multiline transforming
+ the right way
+
+ * src/macros.h: New file for useful macros
+
+2002-07-29 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sp-text.c (sp_tspan_build): Get attributes at right place, read role as well
+ (sp_tspan_read_attr): Parse "sodipodi:role" attribute
+ (sp_text_append_line): New method
+
+ * src/sp-text.h: Specify role for <tspan> element
+
+2002-07-26 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sp-text.c (sp_string_set_shape): Changed signature, pass layout and currentpoint
+ (sp_tspan_set_shape): New method
+ (sp_text_build): Use normal order, as shape will be set asynchronously
+ (sp_text_read_attr): Request update everywhere
+ (sp_text_child_added): Fix bug, now keep old children in list
+ (sp_text_set_shape): New method, nothing interesting yet
+
+ * src/text-context.c (sp_text_context_selection_changed): Set active object
+ to NULL, if nothing selected
+
+2002-07-24 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/sp-object.c (sp_object_modified): Merge style with parent if needed,
+ moved style_modified after signal
+
+ * src/sp-text.c (sp_tspan_modified): Include style flag in cascade
+ (sp_text_modified): Ditto
+ (sp_string_modified): Re-enable it (although this is probably not correct)
+
+ * src/style.c (sp_style_merge_from_object_parent): Merge writing mode
+
+ * src/sp-item-group.c (sp_group_modified): Include style flag in cascade
+
+ * src/sp-gradient.c (sp_gradient_modified): Include style flag in cascade
+
+2002-07-22 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/style.c (sp_style_new_from_object): Renamed sp_style_new
+ (sp_style_read_from_object): Use SP_SCALE30 for opacity, new paint structure
+ (sp_style_merge_property): Ditto
+ (sp_style_merge_from_object_parent): Renamed sp_style_merge_from_object,
+ read only from immediate parent (which should have merged from ancestors itself)
+ (sp_style_write_string): Use SP_SCALE30 for opacity, new paint structure
+ (sp_style_clear): Ditto
+ (sp_style_set_opacity): Ditto
+ (sp_style_read_inherited_scale30): New method
+ (sp_style_write_inherited_scale30): Ditto
+ (sp_style_read_inherited_paint): Renamed, parse "inherit" value
+ (sp_style_write_inherited_paint): Ditto, write it
+ (sp_style_merge_inherited_paint): Do hunref here
+ (sp_style_set_fill_color_rgba): Do hunref instead of gtk_object_unref, new structure
+ (sp_style_set_fill_color_cmyka): Ditto
+ (sp_style_set_stroke_color_rgba): Ditto
+ (sp_style_set_stroke_color_cmyka): Ditto
+ (sp_style_read_color_cmyk): Helper method here
+ (sp_style_merge_from_style_string): Renamed method
+
+ * src/style.h: Created new 30-bit scaled value type, used for opacity
+ Renamed SPPaint to SPInheritedPaint
+
+Sat Jul 13 19:47:16 2002 Davide Puricelli <evo@debian.org>
+
+ * po/ja.po: Updated, thanks Junichi Uekawa <dancer@netfort.gr.jp>
+
+Sat Jul 13 05:52:15 2002 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * src/sp-item-group.c (sp_group_bbox): Fixed group selection bug -
+ thanks to Ted Gould and his bug report.
+
+2002-05-20 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/xml/repr-io.c (sp_repr_svg_read_node): Add namespaces back -
+ thanks to Pawel
+
+ * src/dialogs/xml-tree.c: Complete refactoring by Pawel Palucha
+
+ * src/document.c (sp_document_lookup_id): Check values
+
+2002-04-21 Masatake YAMATO <jet@gyve.org>
+
+ * src/toolbox.c (sp_maintoolbox_open_files): Use
+ gnome_uri_list_extract_filenames.
+
+ * src/interface.c (sp_ui_import_files): Ditto.
+
+2002-04-19 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/text-context.c (sp_text_context_root_handler): Port to new
+ text object (incomplete)
+ (sp_text_context_selection_changed): Ditto
+
+ * src/sp-text.c: Lot of new stuff, shows something on screen at last
+
+ * src/sp-object.c (sp_object_modified): Do not allow reentrancy
+ - think SPText will like it
+
+ * src/sp-item.c: Removed sp_item_update and virtual method
+
+ * src/sp-item-group.c: Removed ::update method
+
+2002-04-17 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/sp-rect.c (sp_rect_rx_set): Make argument const, kill warning
+ (sp_rect_ry_set): Ditto
+
+2002-04-12 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/sp-text.h: Broke into SPText, SPTSpan and SPString objects
+
+ * src/sp-text.c (sp_text_build): Build <tspan> and TEXT elements
+
+ * src/forward.h: Moved SPText and SPTSpan here
+
+2002-04-08 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/sp-item.h: Changed ::bbox signature
+
+ * src/sp-item.c (sp_item_invoke_bbox): New generic method
+ (sp_item_bbox_desktop): renamed old method
+
+ * src/display/nr-arena-glyphs.c: Ditto
+
+ * src/display/nr-arena-glyphs.h: New file
+
+ * src/sp-chars.c (sp_chars_get_type): Change parent class
+ (sp_chars_class_init): Ditto
+ (sp_chars_destroy): New elements structure
+ (sp_chars_style_modified): New virtual method
+ (sp_chars_bbox): Ditto
+ (sp_chars_show): Ditto
+ (sp_chars_print): Ditto (not implemented)
+ (sp_chars_clear): New structure
+ (sp_chars_add_element): Ditto
+
+ * src/sp-chars.h: Derive directly from item instead of shape
+
+ * src/dialogs/align.c (sp_quick_align_arrange): New bbox logic
+
+ * src/dialogs/export.c (sp_export_drawing): New bbox logic
+
+Sun Apr 7 01:37:29 2002 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * src/style.c: (sp_style_read_from_object): Fixed to work stroke-cmyk.
+
+ * src/sp-item.c: (sp_item_read_attr): Ditto
+
+2002-04-06 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/xml/repr-io.c (sp_repr_read_file): Use new signature
+ (sp_repr_read_mem): Ditto
+ (sp_repr_qualified_name): New method
+ (sp_repr_svg_read_node): Signature change, create text nodes
+
+ * src/xml/repr-util.c (sp_xml_document_createTextNode): New method
+ (sp_xml_document_createElement): Ditto
+ (sp_xml_document_createElementNS): Ditto
+ (sp_xml_node_get_Document): Ditto
+ (sp_xml_element_setAttributeNS): Ditto
+
+ * src/xml/repr.c (sp_repr_new_from_code): Set type
+
+ * src/svg/svg-length.c (sp_svg_read_number_f): New method with right signature
+ (sp_svg_read_number_d): Ditto
+
+ * src/style.c (sp_style_privatize_text): New method
+ (sp_style_merge_property): Moved text properties here
+
+ * src/sp-text.c (sp_text_init): No properties
+ (sp_text_build): No style anymore
+ (sp_text_style_modified): New virtual method
+ (sp_text_font_weight_to_gp): Helper
+ (sp_text_font_italic_to_gp): Ditto
+ (sp_text_set_shape): Use style properties, hackish support for vertical writing
+
+ * src/sp-text.h: Removed properties from object, as these are handled by style
+
+2002-04-04 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/helper/canvas-bpath.c (sp_canvas_bpath_init): Can be filled now
+ (sp_canvas_bpath_destroy): Ditto
+ (sp_canvas_bpath_update): Ditto
+ (sp_canvas_bpath_render): Ditto
+ (sp_canvas_bpath_point): Ditto
+ (sp_canvas_bpath_set_fill): New method
+ (sp_canvas_bpath_set_stroke): Name change
+
+ * src/display/nr-arena-shape.c (nr_arena_shape_render): No real_opacity
+ anymore
+
+ * src/sp-shape.c (sp_shape_print): No real opacity anymore
+
+ * src/dyna-draw-context.c (sp_dyna_draw_context_setup): Port to
+ canvas bpath instead of canvas shape
+ (clear_current): Ditto
+ (fit_and_split_line): Ditto
+ (fit_and_split_calligraphics): Ditto
+ (draw_temporary_box): Ditto
+
+ * src/draw-context.c (sp_draw_context_setup): Port to new canvas bpath
+ (fit_and_split): Ditto
+
+ * src/dialogs/item-properties.c: Removed #ifdef 0 code
+
+ * src/style.c (sp_style_new): Require object validity
+ (sp_style_merge_property): Moved actual code to new method
+ (sp_style_merge_from_string): Does not clear style anymore, thus name change
+ (sp_style_paint_server_modified): Use sp_object_request_modified
+ (sp_style_set_fill_color_rgba): Request modified
+ (sp_style_set_fill_color_cmyka): Ditto
+ (sp_style_set_stroke_color_rgba): Ditto
+ (sp_style_set_stroke_color_cmyka): Ditto
+ (sp_style_set_opacity): Ditto
+ (sp_style_property_index): New enumerated property codes
+
+ * src/sp-shape.c (sp_shape_style_modified): Renamed method
+
+ * src/sp-item.c (sp_item_read_attr): Use sp_object_request_modified
+ (sp_item_style_modified): Renamed method, otherwise same
+
+ * src/sp-item-group.c (sp_group_class_init): No ::style_changed anymore
+
+ * src/sp-object.c (sp_object_request_modified): Accept style modification
+ flag (but not alone)
+ (sp_object_modified): Ditto, invoke ::style_changed if needed
+
+ * src/sp-object.h (SP_OBJECT_STYLE_MODIFIED_FLAG): New flag - we now
+ collect style modifications into single-step async apply too
+
+Sun Mar 31 19:09:25 2002 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * src/sp-rect.c (sp_rect_*_set): Fixed a little.
+
+2002-03-22 Davide Puricelli <evo@debian.org>
+
+ * Updated debian/ directory, synced with Debian unstable.
+
+2002-03-18 Lauris Kaplinski <lauris@ximian.com>
+
+ * configure.in: Disabled frontline check, until I find time
+ to make it to work without frontline too
+
+2002-03-18 Masatake YAMATO <jet@gyve.org, masata-y@maa.spacetown.ne.jp>
+
+ * src/toolbox.h (sp_maintoolbox_drag_data_received): New
+ declaration.
+
+ * src/toolbox.c (sp_maintoolbox_open_one_file)
+ (sp_maintoolbox_open_files, sp_maintoolbox_drag_data_received):
+ New functions.
+ (sp_maintoolbox_create): Invoked gtk_drag_dest_set
+ against ui.
+ (toolbox_drop_target_info, toolbox_drop_target_entries,
+ ENTRIES_SIZE, ntoolbox_drop_target_entries): New constants
+ and macros for DnD.
+
+ * src/interface.c (sp_ui_import_one_file, sp_ui_import_files)
+ (sp_ui_drag_data_received): New functions.
+ (sp_create_window): sp_ui_drag_data_received is connected
+ to "drag_data_received" of ui. Invoked gtk_drag_dest_set
+ against ui.
+ (nui_drop_target_entries, ENTRIES_SIZE, ui_drop_target_entries,
+ ui_drop_target_info): New constants and macros for DnD.
+
+ * glade/toolbox.glade: sp_maintoolbox_drag_data_received is
+ connected to drag_data_received of maintoolbox.
+
+2002-03-18 Masatake YAMATO <jet@gyve.org, masatake@maa.sst.ne.jp>
+
+ * configure.in (ENABLE_AUTOTRACE): Check Frontline.
+
+ * acconfig.h: Added ENABLE_AUTOTRACE.
+
+ * src/sp-image.c: Added code that supports Frontline.
+ New codes are wrapped by ENABLE_AUTOTRACE.
+
+Tue Mar 19 02:30:40 2002 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * New SPRect rx, ry editing feature in node context.
+
+ * src/sp-rect.c (sp_rect_rx_get): New method for KnotHolder
+ (sp_rect_rx_set): Ditto
+ (sp_rect_ry_get): Ditto
+ (sp_rect_ry_set): Ditto
+ (sp_rect_knot_holder): Ditto
+ (sp_rect_write_repr): New method
+ (sp_rect_glue_set_shape): Ditto
+
+2002-03-14 Stanislav Visnovsky <visnovsky@nenya.ms.mff.cuni.cz>
+
+ * configure.in: Added "sk" to ALL_LINGUAS.
+
+Sun Mar 10 21:00:01 2002 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * src/document.c (sp_document_partial_items_in_box):
+ New method. Return list of items, that the parts of the item
+ containd in box.
+
+ * select-context.h: Add button_press_shift attribute
+
+ * select-context.c: (sp_select_context_root_handler):
+ New feature to select items which is partially contained in
+ rubberband box with shift key.
+
+Wed Mar 6 01:52:09 2002 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * Support open/closed arc feature. We can edit it on node edit.
+
+ * src/sp-ellipse.c (sp_genericellipse_side): New method to
+ determine point is inside or outside.
+ (sp_arc_start_set): Add is_closed feature
+ (sp_arc_end_set): Ditto
+
+ * src/sp-ellipse.h: Add SPArc::is_closed attribute
+
+ * src/preferences-skeleton.h: Modified arc style
+
+ * src/arc-context.c: Ditto
+
+
+2002-03-05 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/display/nr-arena-shape.c (nr_arena_shape_pick): Use delta (tolerance)
+
+ * src/display/canvas-arena.c (sp_canvas_arena_update): Use global delta (tolerance)
+ (sp_canvas_arena_point): Ditto
+ (sp_canvas_arena_event): Ditto
+
+ * src/display/nr-arena-item.c (nr_arena_item_invoke_pick): Changed
+ virtual method signature
+
+ * src/dialogs/display-settings.c (sp_display_dialog_cursor_tolerance_changed): Implement
+ (sp_display_dialog_new): Create pick tolerance spinbutton
+
+ * src/view.c (sp_view_shutdown): New method and signal
+ (sp_view_request_redraw): New virtual method
+
+ * src/sodipodi.c (sodipodi_refresh_display): Use sp_view_request_redraw
+
+ * src/interface.c (sp_ui_delete): Use sp_view_shutdown
+ (sp_ui_menu_append_item): Helper
+ (sp_ui_file_menu): New method
+ (sp_ui_edit_menu): Ditto
+ (sp_ui_selection_menu): Ditto
+ (sp_ui_view_menu): Ditto
+ (sp_ui_event_context_menu): Ditto
+ (sp_ui_dialog_menu): Ditto
+ (sp_ui_generic_menu): Ditto
+
+ * src/file.c (sp_file_exit): Use sodipodi_exit method
+
+ * src/event-context.c (sp_event_root_menu_popup): Use sp_ui_generic_menu
+
+ * src/desktop.c (sp_desktop_request_redraw): New virtual method implementation
+ (sp_desktop_widget_set_focus): Do that widget method instead
+
+ * src/desktop-events.c (sp_dt_ruler_event): Do not use desktop->owner
+
+ * src/Makefile.am (INCLUDES): -DSODIPODI_PIXMAPDIR
+
+Mon Mar 4 01:23:05 2002 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * src/sp-ellipse.c (sp_genericellipse_normalize): Fixed start and
+ end arg conditions.
+ (sp_arc_start_set): Added per pi/4 radian constraint with control key.
+ (sp_arc_end_set): Ditto
+
+Sun Mar 3 03:40:07 2002 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * Merged from ge-arc-branch
+
+ * src/sp-ellipse.h (SPArc): New class
+
+ * src/sp-ellipse.c (sp_arc_*): New methods
+
+ * src/arc-context.c: New event context for SPArc. Mainly it is
+ renamed from ellipse-context.c.
+ So we should remove ellipse-context.c later.
+
+ * src/arc-context.h: Ditto
+
+ * glade/draw_arc.xpm: New pixmap file for draw arc tool.
+ Now, we does not need draw_ellipse.xpm.
+
+ * src/pixmaps/cursor-arc.xpm: Ditto
+
+2002-02-25 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/helper/curve.c (sp_curve_append): Do not requite non-empty curves
+
+ * src/draw-context.c (fit_and_split): Commetn out boundary checks
+
+ * src/document.c (sp_document_idle_handler): Bring up uncommited undo
+ warning, if compiled with debug
+ (sp_action_print_pending_list): Debug method
+ (sp_document_warn_undo_stack): Ditto
+
+ * src/document-private.h: Moved idel_id into base struct
+
+2002-02-23 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/helper/units.c (sp_points_get_units): New method
+ (sp_units_get_points): Ditto
+
+ * src/dialogs/object-properties.c: Made layout dynamic
+
+ * src/document-undo.c (sp_document_private_done): New static method
+ (sp_document_done): Just a wrapper
+ (sp_document_maybe_done): Implement the real thing
+
+ * src/document-private.h: Moved document definition here
+
+2002-02-21 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/dialogs/stroke-style.c (sp_stroke_style_any_toggled): Handle
+ cap/join style changes
+ (sp_stroke_style_widget_new): Create cap/join togglebuttons
+ (sp_stroke_style_widget_update): Set cap/join selector activity
+ (sp_stroke_style_set_join_buttons): New method
+ (sp_stroke_style_set_cap_buttons): Ditto
+
+2002-02-19 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/dialogs/stroke-style.c: New file
+
+ * src/dialogs/stroke-style.h: New file
+
+ * src/helper/units.c (sp_distance_get_units): New method
+ (sp_distance_get_points): Ditto
+
+ * src/helper/units.h: Moved SPDistance here
+
+ * src/style.h: Moved SPDistance to units.h
+
+ * src/display/nr-arena-shape.c (nr_arena_shape_render): Render gradient
+ strokes as well
+
+ * src/dialogs/object-properties.c: Start rewriting to use dynamic
+ fill/stroke widgets instead of original glade dialog
+
+ * src/dialogs/stroke-style.h: New file
+
+ * src/dialogs/stroke-style.c: New file
+
+ * src/gradient-chemistry.c (sp_style_change_property): Reimplement,
+ hopefully the correct way now
+
+ * src/widgets/gradient-position.c (sp_gradient_position_update): Pre
+ build local renderer here
+
+ * src/helper/nr-gradient.c (nr_lgradient_renderer_setup_r8g8b8a8): Do
+ not allocate renderer, allow using static ones too
+ (nr_lgradient_renderer_setup_r8g8b8): Ditto
+
+ * src/widgets/paint-selector.c (sp_paint_selector_set_style_buttons): Do not
+ activate pattern and fractal fill buttons
+
+2002-02-18 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/widgets/paint-selector.c: Lot of rearrangements everywhere -
+ I am too tired to write all these down. Basically we have one frontend
+ megawidget SPPaintSelector, that interfaces to colors, gradient and more.
+
+2002-02-10 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/desktop.c (sp_desktop_widget_destroy): Removed stale signal
+ disconnect (no idea what it was originally for)
+
+2002-02-09 Lauris Kaplinski <lauris@ximian.com>
+
+ * configure.in: Removed rbuf, frgba, new font checks and arena switch
+
+ * src/sp-namedview.c (sp_namedview_setup_grid_item): Grid settings are
+ always in points, units are there just for user preference
+ (sp_namedview_read_attr): Ditto
+
+ * src/desktop-snap.c (sp_desktop_horizontal_snap): Read snap distances
+ from new desktop members
+ (sp_desktop_vertical_snap): Ditto
+ (sp_desktop_vector_snap): Ditto
+ (sp_desktop_circular_snap): Ditto
+
+ * src/desktop-handles.c (sp_desktop_canvas): Update to new desktop structure
+
+ * src/sodipodi.c (sodipodi_activate_desktop_private): Default method
+ implementation to chain activation signal on desktop
+ (sodipodi_deactivate_desktop_private): Ditto
+
+ * src/desktop.c (sp_desktop_new): Owner does not have document pointer
+ any more, so had to change signature here
+ (sp_desktop_widget_init): Moved activation signals to public constructor
+ (sp_dtw_desktop_activate): Activation signal handler
+ (sp_dtw_desktop_deactivate): Ditto
+ (sp_desktop_widget_new): Use desktop "activate" and "deactivate" signals
+ instead of sodipodi ones, signature change
+ (sp_desktop_class_init): Added "activate" and "deactivate" signals
+
+ * src/dialogs/display-settings.c: Removed glade, made mostly dynamic
+
+ * src/sodipodi.c (sodipodi_remove_desktop): Emit "destroy_desktop" if
+ destroyed one was not active too
+ (sodipodi_refresh_display): Convenience method
+
+2002-02-08 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/dialogs/document-properties.c: Do not use glade anymore, made
+ everything dynamic
+
+ * src/helper/canvas-grid.c (sp_grid_hline): Use helpers from ctrlrect
+ (sp_grid_vline): Ditto
+ (sp_cgrid_render): Render real grid instead of dots
+
+ * src/xml/repr-util.c (sp_repr_get_boolean): Saner conveninence method
+ (sp_repr_get_int): Ditto
+ (sp_repr_get_double): Ditto
+ (sp_repr_set_boolean): Ditto
+ (sp_repr_set_int): Ditto
+ (sp_repr_set_double): Ditto
+
+ * src/svg/svg-length.c (sp_svg_read_length): Added meter
+
+ * src/dialogs/sp-attribute-widget.c (sp_attribute_widget_changed): Kill warning
+ (sp_attribute_widget_set_object): Ditto
+ (sp_attribute_widget_object_modified): Ditto
+ (sp_attribute_table_set_object): Ditto
+ (sp_attribute_table_object_modified): Ditto
+ (sp_attribute_table_entry_changed): Ditto
+
+ * src/dialogs/desktop-properties.c: Do not use glade anymore, made
+ everything dynamic
+
+ * src/sp-namedview.c (sp_namedview_init): Do not init distances here,
+ as ::build invokes full reread anyways
+ (sp_namedview_read_attr): Use saner structure and read measured distances
+ (sp_namedview_setup_grid_item): Convert distances to points here
+ (sp_str_to_bool): Convenience stuff (should be moved to some central place)
+ (sp_nv_read_length): Ditto
+ (sp_nv_read_opacity): Ditto
+
+ * src/sp-namedview.h: Use real units for distances, some cleanup
+
+ * src/desktop-snap.c (sp_desktop_horizontal_snap): Ported to namedview
+ changed internals
+ (sp_desktop_vertical_snap): Ditto
+ (sp_desktop_vector_snap): Ditto
+ (sp_desktop_circular_snap): Ditto
+
+2002-02-04 Frank Felfe <innerspace@iname.com>
+
+ * src/sp-item.c (sp_item_distance_to_svg_bbox): Fix compilation error
+
+2002-02-03 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/helper/units.c: Fix userspace/device confusion
+
+ * src/sp-gradient.c (sp_stop_read_attr): Convert percentages to dimensionless
+ units
+
+ * src/gradient-chemistry.c (sp_gradient_vector_release_references): New
+ method to prepare gradient vector for deletion
+
+ * src/dialogs/gradient-vector.c (sp_gradient_vector_selector_init): Connect
+ button dialogs
+ (sp_gvs_rebuild_gui_full): Set selection to current active gradient
+ (sp_gvs_gradient_edit_clicked): From old gradient selector
+ (sp_gvs_gradient_add_clicked): Ditto
+ (sp_gvs_gradient_delete_clicked): Ditto
+
+2002-02-02 Kjartan Maraas <kmaraas@gnome.org>
+
+ * glade/object_props.glade: Fix a typo. s/Mitter/Miter/
+
+2002-01-27 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/bonobo/Makefile.am (INCLUDES): Remove excess -I
+
+2002-01-21 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/sp-item.c (sp_item_distance_to_svg_viewport): New method
+ (sp_item_distance_to_svg_bbox): Ditto
+ (sp_item_style_changed): Use generic distance conversion method
+
+ * src/helper/units.c: New file, ported from libgnomeprint, we collect
+ all unit management into here
+
+ * src/helper/units.h: New file
+
+ * src/svg/svg-length.c (sp_svg_write_percentage): New unit logic
+ (sp_svg_read_length): Ditto
+
+ * src/helper/unit-menu.c: Ported widget from libgnomeprint
+
+ * src/helper/unit-menu.h: Ported widget from libgnomeprint
+
+ * src/dialogs/text-edit.c (sp_text_read_selection): New unit logic
+
+ * src/dialogs/object-properties.c (sp_object_properties_apply_stroke): New
+ unit logic
+
+ * src/dialogs/gradient-selector.c (sp_gradient_widget_new): Use
+ SPGradientVectorSelector here
+
+ * src/style.c (sp_style_read_from_string): New unit logic
+ (sp_style_write_string): Ditto
+ (sp_style_init): Ditto
+
+ * src/sp-text.c (sp_text_read_attr): New unit logic
+
+ * src/sp-star.c (sp_star_read_attr): New unit logic
+
+ * src/sp-spiral.c (sp_spiral_read_attr): New unit logic
+
+ * src/sp-shape-style.c (sp_stroke_read): New unit logic
+
+ * src/sp-root.c (sp_root_read_attr): New unit logic
+
+ * src/sp-rect.c (sp_rect_read_attr): New unit logic
+
+ * src/sp-namedview.c (sp_namedview_read_attr): New unit logic
+
+ * src/sp-item.c (sp_item_style_changed): New unit logic
+
+ * src/sp-image.c (sp_image_read_attr): New unit logic
+
+ * src/sp-ellipse.c (sp_circle_read_attr): New unit logic
+
+ * src/dyna-draw-context.c (sp_dyna_draw_context_setup): New unit logic
+ (fit_and_split_line): Ditto
+ (fit_and_split_calligraphics): Ditto
+
+ * src/desktop-events.c (sp_dt_simple_guide_dialog): Use new unit widget
+ (guide_dialog_apply): Ditto
+
+2002-01-13 Wang Jian <lark@linux.net.cn>
+
+ * configure.in(ALL_LINGUAS): Added zh_CN for Simplifed Chinese.
+
+2002-01-05 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * src/helper/bezier-utils.c (BEZIER_DEBUG): inhibit debug messages.
+
+2002-01-04 Zbigniew Chyla <cyba@gnome.pl>
+
+ * src/desktop.c (sp_desktop_widget_init, sp_desktop_widget_set_title,
+ sp_desktop_widget_shutdown): Marked strings for translation.
+
+ * src/document.c (sp_document_new, sp_document_new_from_mem): Ditto.
+
+2002-01-01 Zbigniew Chyla <cyba@gnome.pl>
+
+ * configure.in: Added "AC_PROG_INTLTOOL(0.11)" line.
+
+ * Makefile.am: Use intltool.
+
+ * GNOME_Sodipodi.oaf.in: New, copied from GNOME_Sodipodi.oafinfo.
+
+ * sodipodi.desktop.in: New, generated from sodipodi.desktop.
+
+ * GNOME_Sodipodi.oafinfo, sodipodi.desktop: Removed.
+
+ * glade/Makefile.am (glade_DATA): Removed *.c.
+
+ * glade/*.c: Removed.
+
+ * .cvsignore: Added intltool-*, sodipodi.desktop, GNOME_Sodipodi.oaf.
+
+ * src/bonobo/svg-doc-factory.c, src/desktop.c, src/dialogs/align.c,
+ src/dialogs/display-settings.c, src/dialogs/document-properties.c,
+ src/dialogs/fill-style.c, src/dialogs/gradient-selector.c,
+ src/dialogs/gradient-vector.c, src/dialogs/item-properties.c,
+ src/dialogs/object-attributes.c, src/dialogs/object-properties.c,
+ src/help.c, src/helper/unit-menu.c, src/main.c, src/sodipodi.c,
+ src/sp-anchor.c, src/sp-image.c, src/sp-item-group.c, src/sp-rect.c,
+ src/sp-shape.c, src/sp-spiral.c, src/sp-star.c, src/sp-text.c,
+ src/widgets/sp-color-selector.c: Added missing #include <config.h>.
+
+2001-12-30 Lauris Kaplinski <lauris@localhost.localdomain>
+
+ * src/widgets/sp-color-selector.c (sp_color_selector_adjustment_changed): Set
+ updating flag here, so we get single "changed" signal whatever happens
+
+ * src/sp-gradient.c (sp_gradient_repr_set_vector): Allow setting our
+ own vector too here
+
+ * src/sp-object.h (SP_OBJECT_NEXT): New macro
+
+ * src/gradient-chemistry.c (sp_gradient_ensure_vector_normalized): Should
+ work as intended now
+ (sp_gradient_ensure_private_normalized): Ditto
+ (sp_gradient_repr_set_link): Set NULL link too
+
+2001-12-30 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * src/sp-spiral.c src/sp-star.c:
+ Revert to previous cx, cy attribute implementation.
+ Because SVG standard shape introduce cx, cy,
+ so we coordinate to that policy.
+
+ * src/sp-spiral.c (sp_spiral_get_polar): New function
+ (sp_spiral_is_invalid): New function to protect attributes
+ consistency. sp_spiral_read_attr use it.
+
+2001-12-29 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * src/knotholder.c src/knotholder.h
+ (sp_knot_holder_add_full): New method
+
+ * src/sp-spiral.c: Removed cx, cy attribute,
+ so we use item matrix for that.
+ Fixed up debug code.
+
+ * src/sp-star.c src/sp-star.h src/star-context.c:
+ Removed cx, cy attribute
+
+2001-12-29 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * src/knotholder.c (knot_moved_handler):
+ Lauris found a incorrect invert matrix bug. I just fixed it.
+
+2001-12-28 Simos Xenitellis <simos@hellug.gr>
+
+ * configure.in: Added "el" (Greek) to ALL_LINGUAS.
+
+2001-12-28 Lauris Kaplinski <lauris@localhost.localdomain>
+
+ * src/sp-gradient.c: Lot of changes due to class member rearrangement
+ (sp_gradient_repr_flatten_attributes): New method
+ (sp_gradient_repr_set_vector): Ditto
+
+ * src/sp-gradient.h: Moved gradientUnits and gradientTransform to
+ base SPGradient class, added ::flatten_attributes virtual method
+
+ * src/gradient-chemistry.c (sp_gradient_ensure_vector_normalized): Works
+ now for lonely gradients as well
+
+ * src/desktop-events.c (guide_dialog_apply): Flush undo
+ (guide_dialog_delete): Ditto
+ (sp_dt_guide_event): Ditto
+
+ * src/widgets/sp-color-selector.c: Added 'rrggbbaa' hex value entry,
+ use SPColor helpers instead of doing conversions here, added some
+ generic color methods and renamed/changed signature of old ones.
+
+ * src/widgets/sp-color-slider.c (sp_color_slider_paint): Update arrow
+ the right way
+
+ * src/helper/nr-plain-stuff.c (nr_render_rgba32_rgb): Use computed channels
+ instead of plain color ones
+
+ * src/helper/nr-plain-stuff-gdk.c (nr_gdk_draw_rgba32_solid): New method
+
+ * src/text-context.c (sp_text_context_setup): Some XIM handling
+ (sp_text_context_destroy): Ditto
+ (sp_text_context_root_handler): Ditto
+
+ * src/sp-gradient.c: Killed gcc 3 warnings
+
+ * src/draw-context.c: Started rewriting of drawing context, added 4-member
+ path cache (instead of 2 in old version), the goal is to make selection
+ continuation and pen tool
+
+ * src/draw-context.h: New members in class
+
+ * src/color.c (sp_color_get_colorspace_class): Broke colorspace descriptor
+ into class (process | spot) and type (rgb | cmyk), added new methods and
+ renamed old one accordingly
+ (sp_color_get_colorspace_type): Ditto
+ (sp_color_rgb_to_hsv_floatv): Convenience method
+ (sp_color_hsv_to_rgb_floatv): Ditto
+ (sp_color_rgb_to_cmyk_floatv): Ditto
+ (sp_color_cmyk_to_rgb_floatv): Ditto
+
+ * src/color.h: New convenience macros and methods
+
+ * configure.in (have_bonobo): Made --without-bonobo default
+
+ * src/widgets/sp-color-preview.c: New file, implement simple
+ color preview object, a la the one in Gtk+ color selector
+
+ * src/widgets/sp-color-preview.h: New file
+
+2001-12-21 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * src/sp-spiral.*, spiral-context.c
+ (sp_spiral_inner_*, sp_spiral_outer_*, sp_spiral_knot_holder):
+ Add SPKnotHolder codes
+ (sp_spiral_set_shape, sp_spiral_fit_and_draw):
+ Fixed some drawing bugs
+
+ * src/dyna-draw-context.*, sp-shape.c, sp-star.c:
+ Clean up codes
+
+2001-12-15 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/helper/canvas-bpath.h: New file
+
+ * src/helper/canvas-bpath.c: New file
+
+ * src/helper/Makefile.am (libspchelp_a_SOURCES): Added
+ canvas-bpath.[c,h]
+
+ * src/helper/curve.c (sp_curve_ref): Signature change
+ (sp_curve_unref): Ditto
+
+ * src/display/Makefile.am (nr_sources): Removed stale files
+
+ * src/helper/bezier-utils.c (sp_bezier_fit_cubic): Added argument
+ checks, signature change, cleanup
+ (sp_bezier_fit_cubic_r): Ditto
+ (sp_bezier_fit_cubic_full): Ditto
+
+ * src/helper/bezier-utils.h: Changed fit method signatures
+
+ * src/draw-context.c (fit_and_split): Use new sp_bezier_fit signature
+
+ * src/dyna-draw-context.c (fit_and_split_line): Use new sp_bezier_fit
+ signature
+ (fit_and_split_caligraphics): Ditto
+
+2001-12-07 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/sodipodi.c (sodipodi_application_new): Catch SIGFPE and SIGILL as well
+
+ * src/sp-gradient.c (sp_gradient_write_colors): Skip, if integer stop
+ values coincide (fixes div 0 bug with gradients)
+
+2001-11-25 Duarte Loreto <happyguy_pt@hotmail.com>
+
+ * Added Alvaro Lopes <alvieboy@alvie.com> portuguese translation to configure.in (ALL_LINGUAS)
+
+01-11-19 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/preferences-skeleton.h: Removed '%' from opacity
+
+2001-11-12 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/display/canvas-arena.c (sp_canvas_arena_render): Try to fit
+ buffer, instead of just using 64x64 rectangles
+
+ * src/sp-rect.c: Remove Gtk+ arguments
+
+ * src/display/nr-arena-image.c (nr_arena_image_update): Request
+ rendering previous area
+
+2001-11-11 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/sp-rect.c (sp_rect_write_transform): Scale rx and ry
+ (sp_rect_menu): Implement
+ (sp_rect_rect_properties): Implement
+
+ * src/dialogs/object-properties.c (sp_object_properties_apply_fill): Use
+ float value, not percentage
+ (sp_object_properties_apply_stroke): Ditto
+
+ * src/file.c (file_save_ok): Update relative image references
+
+ * src/sp-image.c (sp_image_destroy): Unregister resource
+ (sp_image_build): Register resource
+
+ * src/sp-spiral.c (sp_spiral_menu): Implement
+ (sp_spiral_spiral_properties): Generic attributes dialog
+
+2001-11-10 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/sp-anchor.c (sp_anchor_menu): New method
+ (sp_anchor_link_properties): Ditto
+ (sp_anchor_link_follow): Ditto
+ (sp_anchor_link_remove): Ditto
+
+ * src/sp-star.c (sp_star_menu): New method
+ (sp_star_star_properties): Ditto
+
+ * src/sp-item.c (sp_item_create_link): New method
+
+ * src/sp-item-group.c (sp_item_group_ungroup): Ungroup anchors too
+
+ * src/forward.h: Added SPAnchor
+
+ * src/dialogs/sp-attribute-widget.h: New file, implement generic
+ asynchronous attribute widget, and table of attribute widgets
+
+ * src/dialogs/sp-attribute-widget.c: New file
+
+ * src/dialogs/object-attributes.h: New file, implement generic
+ asynchronous object attribute dialog
+
+ * src/dialogs/object-attributes.c: New file
+
+ * src/display/Makefile.am (INCLUDES): Added SODIPODI_CFLAGS
+
+ * src/sp-anchor.c: New file, implement SVG <a> element. Actual event
+ code is pure experimental and need some serious thinking.
+
+ * src/sp-anchor.h: Ditto
+
+ * src/svg-view.c (arena_handler): Forward arena events to SPEvents
+
+ * src/sp-object-repr.c (sp_object_type_lookup): parse <a> as anchor
+
+ * src/sp-item.h: Added ::event virtual method plus some test code
+
+ * src/sp-item.c (sp_item_event): New method
+
+ * src/desktop.c (sp_desktop_new): Moved drawing behind all other layers
+ (sp_desktop_document_resized): Resize page frame
+
+ * src/helper/sodipodi-ctrlrect.h: More complex structure to represent
+ page frame as well
+
+ * src/helper/sodipodi-ctrlrect.c (sp_ctrlrect_hline): New render method
+ (sp_ctrlrect_vline): Ditto
+ (sp_ctrlrect_area): Ditto
+ (sp_ctrlrect_render): Use more complex structure
+ (sp_ctrlrect_update): Ditto
+ (sp_ctrlrect_set_area): New method
+ (sp_ctrlrect_set_color): Ditto
+ (sp_ctrlrect_set_shadow): Ditto
+
+2001-11-09 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/display/nr-arena-image.c (nr_arena_image_update): Implemented
+ explicit geometry
+ (nr_arena_image_set_geometry): New method
+
+ * src/sp-image.c: Implemented "x", "y", "width", "height"
+ (sp_image_read_attr): Ditto
+ (sp_image_bbox): Ditto
+ (sp_image_print): Ditto
+ (sp_image_show): Ditto
+ (sp_image_write_transform): Implement
+
+ * src/file.c (file_import_ok): Try to load pixbuf and set
+ "width" and "height" attributes
+
+ * src/desktop.c: Some cleanups of View/Widget structure
+
+ * src/desktop.h: Ditto
+
+ * glade/Makefile.am (images): Added about.svg
+
+2001-11-08 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/svg/svg-affine.c (sp_svg_write_affine): Write scale and
+ translate, if everything can be represented by these
+
+ * src/sp-text.c (sp_text_write_transform): Implement
+
+ * src/sp-rect.c (sp_rect_write_transform): Implement
+
+ * src/sp-item.c (sp_item_write_transform): New class and virtual
+ method pair, to allow object to optimize representation (i.e.
+ rects can set x,y,width,height instead of just transformation
+
+ * src/seltrans.c (sp_sel_trans_ungrab): Use sp_item_write_transform
+
+ * src/selection-chemistry.c: Use sp_item_write_transform
+
+ * src/help.c (sp_help_about): Set title string to "Sodipodi VERSION"
+
+ * src/Makefile.am (INCLUDES): Define SODIPODI_VERSION
+
+ * src/xml/repr-io.c (repr_write): Avoid newlines in content
+
+ * src/view.c: Sorted out lot os signalling stuff
+
+ * src/svg-view.c: Lot of work, basically works
+
+ * src/sp-root.c (sp_root_modified): Call parent method as well
+
+ * src/interface.c (sp_ui_new_view_preview): New method
+ (sp_create_window): Sort out editable/non-editable views
+
+ * src/help.c (sp_help_about): Create about maunally (not much here yet)
+
+ * src/desktop.c: Use ::document_resized virtual method
+
+2001-10-31 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/dialogs/text-edit.c (sp_text_read_selection): Use gal
+ utf8/editable methods
+ (sp_text_dialog_apply): Ditto
+ (sp_text_dialog_text_changed): Ditto
+
+ * src/sp-text.c (sp_text_set_shape): Use correct utf8 methods
+
+ * src/display/nr-arena-image.c (nr_arena_image_class_init): Use
+ correct parent class
+
+2001-10-31 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * src/knotholder.c:
+ Removed unnecessary ref/unref.
+ Added sp_object_invoke_write_repr() to reflect item changes to repr
+
+ * src/sp-object.c: Added new virtual function SPObject::write_repr()
+
+ * src/sp-object.h: Ditto
+
+ * src/sp-shape.c (sp_shape_write_repr): Added
+
+ * src/sp-star.c (sp_star_write_repr): Added.
+ Moved subclass of SPShape to SPPolygon
+
+ * src/star-context.c: Ditto
+
+2001-10-30 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * src/knotholder.c: New file
+ We can manage plural SPKnot in one SPKnotHolder.
+ SPKnotHolder is created by SPItem::knot_holder virtual function.
+ Moving SPKnot is propageted to another SPKnot.
+ * src/knotholder.h: Ditto
+
+ * src/node-context.c: Added SPKnotHolder
+ * src/node-context.h: Ditto
+
+ * src/sp-item.c: Added knot_holder virtual function.
+ * src/sp-item.h: Ditto
+
+ * src/sp-shape.c: Added set_shape virtual function.
+ It is used to build bpath from extra shape attributes.
+
+ * src/sp-shape.h: Ditto
+
+ * src/sp-star.c: Added knot_holder and set_shape implementations.
+ (sp_star_build_repr): Modified function name.
+ * src/sp-star.h: Ditto
+
+ * src/sp-spiral.c: Added set_shape implementation.
+ (sp_spiral_build_repr): Modified function name.
+ * src/sp-spiral.h: Ditto
+
+ * src/star-context.c: Modified build_repr function name.
+ * src/spiral-context.c: Ditto
+
+2001-10-29 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/desktop.c (sp_desktop_coordinate_status): Free allocated memory
+
+ * src/display/nr-arena-shape.c (nr_arena_shape_group_add_component): Unref
+ item once it is added
+
+2001-10-29 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * src/desktop.c:
+ Added gtk_object_unref() after *_add_child to fix memory leaks.
+
+ * src/document: Ditto
+
+ * src/selection-chemistry.c: Ditto
+
+ * src/sp-item-group.c: Ditto
+
+ * src/sp-clippath.c, src/sp-use.c: Ditto
+ Missing to add ChangeLog before commiting.
+
+2001-10-23 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * src/sp-star.*, src/sp-spiral.*, src/star-context.* and
+ spiral-context.*:
+ Add SPStar, SPStarContext, SPSpiral and SPSpiralContext classes.
+ SPStar and SPSpiral behave as new shape and they can convert to
+ bezier curves. More works are required.
+
+ * glade/draw_star.xpm, glade/draw_spiral.xpm, src/pixmaps/cursor-star.xpm,
+ src/pixmaps/cursor-spiral.xpm:
+ Add toolbox icon and mouse cursor for star and spiral.
+
+ * src/helper/bezier-utils.*:
+ Add lowlevel APIs and reformat source code.
+
+ * src/xml/repr-io.c:
+ Fix repr_write() to generate more short SVG.
+ New code support <foo /> tags generation.
+
+ * src/xml/repr-util.c, src/xml/repr.*, src/sodipodi.c:
+ Add new SPRepr APIs sp_repr_lookup_child(), sp_repr_overwrite (),
+ and sp_repr_document_overwrite ()
+ Now, we can merge ~/.sodipodi/preferences into preferences_skeleton.
+
+2001-10-23 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/file.c (sp_file_new): Use new signatures
+ (file_open_ok): Ditto
+
+ * src/interface.c (sp_create_window): New signature
+
+ * src/desktop.c: Break desktop functionality into SPView/SPViewWidget
+ parts, wrap most of the old code in ugly way, but we can go on
+ cleaning it up method-by-method
+
+ * src/desktop.h: Ditto
+
+ * src/view.h: New file
+
+ * src/view.c: New file, we implement abstract base classes for
+ all document views (editable, noneditable, widget, non-widget)
+ here
+
+ * src/svg-view.h: New file
+
+ * src/svg-view.c: New file, implementing SVG preview
+
+ * src/marshal.h: New file
+
+ * src/marshal.c: New file
+
+2001-10-20 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/sp-root.c (sp_root_read_attr): Removed desktop->document coordinate
+ setup from here - it has to be done in desktop instead
+
+2001-10-19 Frank Felfe <innerspace@iname.com>
+
+ * src/widgets/sp-toolbox.*: patch from MenTaLguY <mental@rydia.net>
+ change seperate button into toggle button and add arrow to
+ hide button indicating state of toolbox
+
+ * src/path-chemistry.c (sp_selected_path_to_curves): apply to all paths in selection
+
+ * src/selection-chemistry.c (sp_selection_delete): remove widget text
+
+ * src/desktop.c (sp_desktop_set_focus): make canvas catch key events
+
+ * src/desktop-events.c (sp_desktop_root_handler): don't grab focus here
+
+2001-10-18 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/display/nr-arena-image.c (nr_arena_image_render): Use right
+ pixel coposers
+
+ * configure.in: Version 0.25
+
+2001-10-18 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/sp-item-group.c: Removed paint virtual method implementation
+
+ * src/sp-image.c: Ditto
+
+ * src/sp-shape.c: Ditto
+
+ * src/sp-use.c: Ditto
+
+ * src/sp-item.c (sp_item_paint): Ported to NRArena/::show()
+
+ * src/sp-item.h: Removed ::paint()
+
+ * samples: Removed extra sample files (these are in clipart distribution)
+
+2001-10-17 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/display/nr-arena*: Merged NR_ARENA branch into HEAD.
+ NRArena is new experimental display list engine, that replaces
+ most canvas stuff for SVG items (old canvas code is still
+ used for controls etc.).
+ It is less integrated with Gtk widgetry, and should also allow reuse
+ of code for paint-server type things (patterns, symbols etc.).
+ NRArena rendering also allows higher-level graphic stuff, from
+ masking to filters, to be implemented.
+
+2001-10-13 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * src/dynadraw-context.c: Removed rotating brush bug
+
+ * src/draw-context.h: Removed duplicate bezier-fitting code
+
+2001-10-12 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/sp-clippath.c: New file
+
+ * src/sp-clippath.h: New file
+
+ * src/sp-object-group.c (sp_objectgroup_build): Check child type
+ (sp_objectgroup_child_added): Ditto
+
+ * src/sp-object-group.h: Removed useless 'tranparent' member
+
+2001-10-07 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/display/nr-primitives.c (nr_irect_union): New method
+
+ * src/helper/nr-buffers.h: New file
+
+ * src/helper/nr-buffers.c: New file
+
+ * src/helper/nr-plain-stuff.c (nr_render_rgba32_rgba32): New method
+
+2001-10-06 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/sp-item.c (sp_item_read_attr): Query presentation attributes
+
+ * src/style.c (sp_style_read_from_object): Added some presentation attributes
+
+2001-10-05 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/sp-use.c (sp_use_build): Reinclude, change 'href' to 'xlink:href'
+
+ * src/sp-object.c (sp_object_style_changed): Use SP_OBJECT_MODIFIED_FLAG
+
+ * src/document.c (sp_document_new): Force "height" and "width" attributes,
+ if not present already
+ (sp_document_new_from_mem): Ditto
+
+2001-10-04 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/xml/repr-io.c (sp_repr_save_stream): Correct header
+
+2001-10-02 Peter Moulder <pmoulder@csse.monash.edu.au>
+
+ * src/xml/repr-io.c (repr_quote_write): New method, quotes
+ special chars correctly for xml
+ (repr_write): Use repr_quote_write
+
+2001-10-02 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/dyna-draw-context.c: Stroking by Mitsuru Oka
+
+ * src/helper/bezier-utils.h: New file by Motsuru oka
+
+ * src/helper/bezier-utils.c: Ditto
+
+ * src/sp-shape.c (sp_shape_print): Translate gradients the right way
+
+2001-10-01 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/sp-shape.c (sp_shape_print): Use rule for clip and fill
+ (sp_shape_paint): Use winding rule
+
+2001-09-30 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/style.c (sp_style_write_string): Write rule
+ (sp_style_read_from_string): Parse rule
+
+ * src/style.h: Made rule libart enum
+
+ * src/display/path-archetype.c (sp_path_at): Search by rule
+ (sp_path_at_new): Rewind with rule
+ (sp_pat_equal): Compare rules
+
+ * src/display/path-archetype.h: Added rule argument
+
+ * src/display/cpath-component.c (sp_cpath_comp_new): Init rule
+ (sp_cpath_comp_update): Use rule
+ (sp_cpath_comp_change): Ditto
+
+ * src/display/cpath-component.h: Added rule member
+
+ * src/display/canvas-shape.c (sp_canvas_shape_update): Set fill rule
+
+2001-09-29 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/selection-chemistry.c (sp_selection_lower_to_bottom): Do not lower
+ behind non-items (i.e. base <defs> object)
+ (sp_selection_lower): Ditto
+
+ * configure.in: Version 0.24.1
+
+ * src/document.c (sp_document_new): Set xmlns:xlink
+ (sp_document_new_from_mem): Ditto
+
+ * src/sp-defs.c (sp_defs_destroy): Correct list emptying
+
+ * src/dialogs/gradient-selector.c (sp_gradient_selector_add_vector_clicked): unref repr
+
+ * src/gradient-chemistry.c (sp_object_ensure_fill_gradient_normalized): unref repr
+
+ * src/helper/art-utils.c (art_rgb_run_rgba): Fix 255/256 bug
+
+ * src/display/canvas-shape.c (sp_canvas_shape_render): Removed #ifdef 0 code
+
+ * src/widgets/gradient-image.c (sp_gradient_image_expose): Draw grabage
+ using fresh new nr functions
+ (sp_gradient_image_update): Ditto (not used)
+
+ * src/helper/nr-plain-stuff.h: New file
+
+ * src/helper/nr-plain-stuff.c: New file
+
+ * src/helper/nr-plain-stuff-gdk.h: New file
+
+ * src/helper/nr-plain-stuff-gdk.c: New file
+
+2001-09-27 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/dialogs/object-properties.c (sp_object_properties_dialog): Create
+ dynamic fill page
+
+ * src/sp-shape.c (sp_shape_print): Print gradients (somewhat)
+ (sp_shape_paint): Paint gradients (somewhat)
+
+ * src/document.c (sp_document_new_from_mem): Use fresh namespace
+
+ * src/xml/repr-io.c (sp_repr_save_stream): Write fresher descriptor
+
+ * src/widgets/gradient-position.c: New file and widget
+
+ * src/widgets/gradient-position.h: New file and widget
+
+ * src/dialogs/gradient-selector.c (sp_gradient_widget_new): Make
+ delete vector inactive, shorter button names, create gradient
+ positioning widget
+ (sp_gradient_selector_load_selection): Update positioning widget
+ (sp_gradient_selection_position_dragged): Implement
+ (sp_gradient_selection_position_changed): Implement
+
+ * src/sodipodi.c (sodipodi_segv_handler): Abort on recursion
+
+2001-09-26 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/sp-text.c (sp_text_read_attr): Use unit-loading method for x & y
+
+2001-09-25 Christopher R. Gabriel <cgabriel@cgabriel.org>
+
+ * sodipodi.1.in: new man page
+ * configure.in: Likewise
+ * Makefile.am (man_MANS): Likewise
+
+2001-09-24 Frank Felfe <innerspace@iname.com>
+
+ * src/helper/sodipodi-ctrl.*: New ctrl-shapes
+
+ * src/knot.*: Ditto
+
+ * src/pixmaps/cursor-node-d.xpm: New file
+
+ * src/pixmaps/cursor-node-m.xpm: New file
+
+ * src/pixmaps/cursor-select-d.xpm: New file
+
+ * src/pixmaps/cursor-select-m.xpm: New file
+
+ * src/pixmaps/handles.xpm: New file
+
+ * src/sp-cursor.* (sp_cursor_new_from_xpm): New function
+
+ * src/seltrans.c: Use new ctrl-shapes and cursors
+
+ * src/seltrans-handles.*: Use new ctrl-shapes
+
+ * src/select-context.c (sp_node_context_class_init): Init cursors and handle pix
+
+ * src/nodepath.* (node_event): Redirect key events
+ (node_key): New key handler
+ (sp_node_selected_break): Handle first and last node
+ (node_ctrl_moved): Update ctrlline after setting coords
+ (sp_nodepath_node_new): Use new ctrl-shapes and cursors
+
+ * src/node-context.c (sp_node_context_class_init): Init cursors
+
+2001-09-22 Mitsuru Oka <oka326@parkcity.ne.jp>
+
+ * src/dynadraw-context.c: New file
+
+ * src/dynadraw-context.h: New file
+
+ * src/event-context.c (sp_event_context_set_dynahand): New handler
+
+2001-09-21 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/svg/svg-path.c: Quick port of latest librsvg path code
+
+2001-09-19 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/document.c (sp_document_destroy): Remove document
+ (sp_document_new): Add document
+ (sp_document_new_from_mem): Ditto
+
+ * src/sodipodi.c (sodpodi_remove_document): New method
+ (sodpodi_add_document): Ditto
+ (sodipodi_segv_handler): Not very intelligent signal handler
+
+2001-09-18 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/dialogs/gradient-selector.c (sp_gradient_selector_add_vector_clicked):
+ New handler
+ (sp_gradient_selector_delete_vector_clicked): Ditto (empty)
+ (sp_gradient_selector_load_selection): New method
+
+ * src/desktop.c (sp_desktop_init): Typo fix
+
+2001-09-17 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/dialogs/gradient-vector.c (sp_gradient_vector_widget_destroy): Handler
+ (sp_gradient_vector_gradient_destroy): Ditto
+ (sp_gradient_vector_gradient_modified): Ditto
+ (sp_gradient_vector_color_dragged): Ditto
+ (sp_gradient_vector_color_changed): Ditto
+ (sp_gradient_vector_widget_load_gradient): Connect/disconnect signals,
+ handle NULL gradient etc.
+
+ * src/sp-gradient.c (sp_gradient_set_vector): New method
+
+ * src/widgets/gradient-image.c (sp_gradient_image_update): New method
+ (sp_gradient_image_gradient_modified): Handler
+ (sp_gradient_image_gradient_destroy): Ditto
+ (sp_gradient_image_set_gradient): New method
+ (sp_gradient_image_unrealize): Implement
+ (sp_gradient_image_realize): Ditto
+
+2001-09-16 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/dialogs/gradient-selector.c (sp_gradient_widget_new): Added buttons
+ (sp_gradient_selector_edit_vector_clicked): Handler
+
+ * src/sp-defs.c (sp_defs_build): Use attach method
+
+2001-09-15 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/sp-gradient.c: Added radial gradient
+
+ * src/sp-gradient.h: Ditto
+
+ * src/sp-paint-server.c (sp_paint_server_destroy): Do not leak painters
+
+ * src/gradient-chemistry.c (sp_gradient_ensure_vector_normalized): New method
+ (sp_item_force_fill_lineargradient_vector): Ditto
+
+ * src/sp-object.h (SP_OBJECT_STYLE): New macro
+
+2001-09-14 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/zoom-context.c (sp_zoom_2_to_1): Noop if no active desktop
+ (sp_zoom_1_to_2): Ditto
+
+2001-09-07 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/sp-header.c: New file, implements document header, consisting
+ of nested <defs> nodes, for different resource definitions
+
+ * src/sp-header.h: New file
+
+ * src/forward.h: Added SPHeader forward typedefs
+
+2001-09-05 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/document.c (sp_document_del_repr): Moved here, commented out
+ (sp_document_add_repr): Moved here, made non-item compatible
+
+ * src/style.c (sp_style_object_destroyed): Catcher method
+ (sp_style_new): Signature change
+ (sp_style_ref): Ditto
+ (sp_style_unref): Ditto
+
+ * src/sp-paint-server.c (sp_paint_server_destroy): Removed insane
+ paint server referencing by painters and replaced it witw (a bit)
+ less insane stale painter maintenance
+ (sp_paint_server_painter_new): Ditto
+ (sp_paint_server_painter_free): Ditto
+ (sp_painter_free): Ditto
+ (sp_painter_stale_fill): Ditto
+
+ * src/sp-object.c (sp_object_invoke_build): Added verbose error
+
+ * src/style.c (sp_style_paint_server_destroy): Implemented signal-based
+ paintserver spying, instead of hardrefing it
+ (sp_style_paint_server_changed): Ditto
+ (sp_style_merge_paint): Ditto
+
+ * src/sp-object.c (sp_object_ref): Wrapper method for debugging
+ (sp_object_unref): Ditto
+ (sp_object_attach_reref): Convenience connect method
+ (sp_object_detach_unref): Ditto
+
+2001-09-04 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/sp-shape.c (sp_shape_print): Do not fill open paths
+
+ * src/document.c (sp_document_add_resource): Implemented simple
+ named resource lists
+ (sp_document_remove_resource): Ditto
+ (sp_document_get_resource_list): Ditto
+
+2001-09-03 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/sp-gradient.c: Added middle SPGradient class and morphed
+ LinearGradient accordingly
+
+ * src/sp-gradient.h: Added middle SPGradient Class
+
+ * src/forward.h: Declare stops and gradients here
+
+ * src/dialogs/gradient-vector.c: New file
+
+ * src/dialogs/gradient-vector.h: New file
+
+ * src/bonobo/embeddable-document.c (sp_embeddable_document_ps_save):
+ Kill warning
+
+ * src/select-context.c: Kill warning
+
+2001-08-31 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/forward.h: typedef SPDefs[Class] here
+
+ * src/sp-root.h: Added pointer to root-level <defs> node
+
+ * src/sp-gradient.c (sp_stop_get_type): Fixed type on type init
+
+2001-08-30 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/document.c (sp_document_new): Use fill-opacity 0.5, not 50%
+
+2001-08-21 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/dialogs/fill-style.c: Implement CMYK/RGB colorspace switching
+
+ * src/widgets/sp-color-selector.c: Implement CMYK read/set methods
+
+ * src/widgets/sp-color-slider.c (sp_color_slider_adjustment_value_changed): Set
+ local value, even if arrow is not visible
+
+ * src/color.c: New file
+
+ * src/color.h: New file
+
+ * src/sp-item.c (sp_item_read_attr): Check for "fill-cmyk"
+
+ * src/style.c (sp_style_read_from_object): Parse "fill-cmyk" (quick hack)
+
+2001-08-20 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/svg/svg-path.c (svg_parse_path_data): Kill warning
+
+ * src/widgets/sp-color-selector.c: New file & class
+
+ * src/widgets/sp-color-slider.c: New file & class
+
+ * src/sp-object.c (sp_object_style_changed): New virtual method
+
+2001-08-13 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/selection-chemistry.c (sp_selection_copy): Use prepend/reverse
+ (sp_item_compare_order): New method
+ (sp_item_list_sort_by_visual_order): New method
+
+ * src/sp-path.c (sp_path_read_attr): Req modification
+
+ * src/sp-item.c (sp_item_toggle_sensitivity): Call document::done
+ (sp_item_reset_transformation): Ditto
+ (sp_item_read_attr): Request modifiaction for style change
+
+ * src/sp-object.h (SP_OBJECT_PARENT): Added convenience macros
+
+2001-08-01 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/document-undo.c (sp_document_undo): Fresh logic
+ (sp_document_redo): Ditto
+ (sp_document_child_added): Real listener
+ (sp_document_child_removed): Ditto
+ (sp_document_attr_changed): Ditto
+ (sp_document_content_changed): Ditto
+ (sp_document_order_changed): Ditto
+ (sp_document_add_repr): Fresh logic, use only as wrapper
+ (sp_document_del_repr): Ditto
+ (sp_document_clear_undo): Use new logic, free actions at last
+ (sp_document_clear_redo): Ditto
+ (sp_action_list_undo): New functions, plus handful children
+ (sp_action_list_redo): Ditto
+ (sp_action_new): New function
+ (sp_action_free): Ditto
+ (sp_action_free_list): Ditto
+
+2001-07-31 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/xml/repr.c (sp_repr_ref): Return referenced repr
+ (sp_repr_unref): Ditto
+ (sp_repr_duplicate): Cleanup
+ (sp_repr_set_content): Ditto, new handler signatures
+
+ * src/xml/repr-private.h: Lot of signature changes
+
+2001-07-30 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/sp-item-group.c: #include <config.h> for i18n
+
+ * src/sp-item.c: Ditto
+
+ * src/event-context.c: Ditto
+
+ * src/toolbox.c: Ditto
+
+2001-07-25 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/document-undo.c (sp_document_maybe_done): New function
+
+2001-07-19 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/dialogs/sp-widget.c (sp_widget_modify_selection): New function
+ (sp_widget_show): Connect "modify_selection"
+ (sp_widget_hide): Disconnect by data
+ (sp_widget_new): New function
+ (sp_widget_class_init): Added signals
+ (sp_widget_change_selection): Emit signal
+ (sp_widget_set_selection): Ditto
+
+ * src/sodipodi.c (sodipodi_selection_modified): New function
+ (sodipodi_class_init): Added "modify_selection" signal
+
+ * src/selection.c (sp_selection_idle_handler): Signal sodipodi
+
+ * src/document.c (sp_document_class_init): Added "modified" signal
+ (sp_document_idle_handler): Emit modified signal
+
+ * src/seltrans.c (sp_sel_trans_sel_modified): New function
+
+ * src/sp-item.c (sp_item_set_item_transform): New function
+
+ * src/sp-object.c (sp_object_class_init): Add "modified" signal
+ (sp_object_request_modified): New function
+ (sp_object_modified): New base method
+
+ * src/sp-object.h (SP_OBJECT_UNSET_FLAGS): Added modifiaction state flags
+ and handlers for scheduling and emitting modifiaction signal
+
+ * src/selection.c (sp_selection_class_init): Added "modified" signal
+ (sp_selection_destroy): Remove pending idle, if present
+ (sp_selection_selected_item_modified): Added handler for object signal
+ (sp_selection_idle_handler): Emit our own modified signal in idle loop
+
+ * src/selection.h: Added idle id and ::modified virtual member
+
+2001-07-17 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/sp-namedview.c (sp_namedview_get_name): Initialize exception
+
+ * src/sp-item-group.c (sp_item_group_ungroup_activate): New function
+ (sp_item_group_ungroup): Implement this
+
+ * src/sp-item.c (sp_item_select_this): New function
+ (sp_item_private_menu): Added "Select this"
+ (sp_item_properties): Select item
+
+ * src/desktop.c (sp_desktop_menu_popup): Use new signature
+
+ * src/event-context.c (sp_event_root_menu_popup): Use desktop
+ in signature instead of widget
+
+ * src/sp-object.c (sp_object_getAttribute): Return NULL, if
+ exception is not clear
+ (sp_object_setAttribute): Ditto
+ (sp_object_removeAttribute): Ditto
+
+2001-07-08 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/xml/repr-io.c (sp_repr_svg_read_node): Preserve namespaces for
+ everything but "svg"
+
+2001-07-07 F.J.Franklin <F.J.Franklin@sheffield.ac.uk>
+
+ * src/svg/svg-color.c (sp_svg_read_color): Accept ';' as
+ terminator
+
+ * src/sp_image.c (sp_image_repr_read_dataURI): New function
+ (sp_image_repr_read_b64): New function
+ (sp_image_read_attr): Accept embedded data
+
+ * configure.in: Added --with-libwmf switch
+
+ * src/xml/repr-io.c (sp_repr_read_file): Read *.wmf using libwmf
+ (sp_wmf_convert): New function
+ (sp_wmf_image_name): New function
+
+2001-07-07 Frank Felfe <innerspace@iname.com>
+
+ * src/desktop.h: Added number field
+
+ * src/desktop.c (sp_desktop_new): Initialize number from
+ namedview viewcount
+ (sp_desktop_set_title): Compose name from uri, nameview and number
+
+ * src/document.c (sp_document_set_uri): New method
+
+ * src/file.c (file_save_ok): Set ducument uri
+
+ * src/interface.c (sp_create_window): Set desktop title
+
+ * src/select-context.c (sp_select_context_root_handler): Added
+ backward cycling
+
+ * src/selection-chemistry.c (sp_selection_item_next): Cleared
+ list mess
+ (sp_selection_item_prev): New function
+
+ * src/sp-item-group.c (sp_item_group_item_list): New function
+
+ * src/sp-namedview.h: Added viewcount field
+
+ * src/sp-namedview.c (sp_namedview_get_name): New method
+
+ * doc/keybindings.txt: Added Shift-Tab
+
+2001-06-07 Lauris Kaplinski <lauris@ximian.com>
+
+ * configure.in: Version 0.24
+
+ * src/sp-item.c (sp_item_read_attr): Quick noscale hack
+ for style stroke widths
+
+ * src/display/canvas-shape.c (sp_canvas_shape_update): Use
+ stroke_width as well ;)
+
+2001-05-24 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/seltrans-handles.*: Make structs const
+
+ * src/seltrans.*: Make view type variable, move it to
+ header for adding GUI later
+
+2001-05-23 Frank Felfe <innerspace@iname.com>
+
+ * src/desktop-snap.*: Implement circualr and list snapping
+
+ * src/sp-item.*: New virtual function ::snappoints()
+
+ * src/seltrans.c: New structure
+
+ * src/sp-rect.c (sp_rect_snappointss): Implement
+
+ * src/sp-ellipse.c (sp_ellipse_snappoints): Ditto
+
+ * src/sp-text.c (sp_text_snappoints): Ditto
+
+ * src/sp-image.c (sp_image_snappoints): Ditto
+
+2001-05-18 Lauris Kaplinski <lauris@ximian.com>
+
+ * configure.in: Version 0.23 final
+
+ * src/sp-gradient.c (sp_lg_fill): Do opacity
+
+ * src/document-undo.c (sp_document_redo): Fixed bug in redoing
+ order changes
+
+2001-05-17 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/toolbox.c (sp_maintoolbox_create): Show toolbox, if
+ it already exists and reference sodipodi
+ (sp_maintoolbox_close): Hide toolbox
+
+ * glade/Makefile.am (glade_DATA): Added item.glade, item.c
+
+ * configure.in: Version 0.23
+
+ * src/dialogs/display-settings.h: New file
+
+ * glade/Makefile.am (glade_DATA): Added display.glade, display.c
+
+2001-05-06 Lauris Kaplinski <lauris@ximian.com>
+
+ * configure.in (use_arena): Added with-arena flag
+
+ * acconfig.h: Added ARENA
+
+2001-04-16 Jesus Bravo Alvarez <jba@pobox.com>
+
+ * configure.in: Added gl (Galician) to ALL_LINGUAS
+
+2001-04-14 Lauris Kaplinski <lauris@ximian.com>
+
+ * everywhere (TM): Changed the basic structure of Reprs (they are
+ not GtkObjects any more) and SPObjects (they have own list sequence
+ instead of using GLists)
+
+2001-04-06 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/sp-item-group.c (sp_item_group_ungroup): New method
+
+ * src/draw-context.c (set_to_accumulated): Transform path instead of
+ setting initial transform, so clear transform does not do interesting
+ things for freehand curves ;-)
+
+2001-04-04 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/file.c (sp_file_open): Do not connect "delete_event"
+ (sp_file_save_as): Ditto
+ (sp_file_import): Ditto, do not use static widget pointer
+ (sp_file_export): Ditto
+ (sp_file_save_document): Clear "modified" attribute
+ (file_save_ok): Ditto
+
+ * src/svg/svg.h: #include glib.h instead of full gtk.h
+
+ * src/svg/svg-stroke.c: #include string.h, kill warning
+
+ * src/svg/svg-font.c: Ditto
+
+ * src/sp-shape-style.c: Ditto
+
+ * src/sp-metrics.h: #include gtkruler.h intead of full gtk.h
+
+ * src/zoom-context.c (sp_zoom_page): Get document from desktop
+ instead of using ACTIVE_DOCUMENT
+
+ * src/slide-context.c: New file, implement slideshow context
+
+ * src/main.c (main): Create slideshow, if requested
+
+2001-03-22 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/svg/Makefile.am (INCLUDES): Add SODIPODI_CFLAGS
+
+2001-03-21 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/sodipodi.h: Remove Sodipodi typedef
+
+ * src/forward.h: Typedef Sodipodi here
+
+ * src/dialogs/sp-widget.c: New file
+
+ * src/dialogs/sp-widget.h: New file, implement abstract base class for
+ configuration widgets
+
+ * glade/Makefile.am (pixmaps): Added guide_dialog.png
+
+ * src/dialogs/document-properties.c (sp_document_dialog_delete): New function, or
+ we crash if user closes dialog
+
+ * src/dialogs/desktop-properties.c (sp_desktop_dialog_delete): New function, or
+ we crash if user closes window
+
+ * src/draw-context.c (sp_draw_context_root_handler): Do not crash for zero
+ length lines PLEEAAAASSSSEEEEE!
+
+ * src/selection-chemistry.c (sp_selection_group): Use copy/del/add to make
+ undo system happy
+
+2001-03-20 Frank Felfe <innerspace@iname.com>
+
+ * src/nodepath.c (node_ctrl_moved) : set coorinate status
+
+ * src/seltrans.c (sp_sel_trans_handle_new_event) : set coordinate status
+
+ * src/sp-guide.* : new functions sp_guide_set, sp_guide_remove
+
+ * src/helper/unit-menu.h : add abbreviation string into unitdesc
+
+ * src/event-context.c (set_event_location) : set coordinate status
+ popup desktop-properties on double click
+
+ * src/desktop.* : new functions for statusbars
+ (sp_desktop_indicator_*) : make indicator only show when decorations are visible
+
+ * src/desktop-events.* : new guideline dialog
+ small changes in sp_dt_ruler_event, sp_dt_guide_event
+
+ * src/*_context.c (sp_*_context_root_handler) : make desktop->acetate
+ grab mouse events during drawing
+
+ * glade/guide_dialog.png: New file
+
+2001-03-20 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/sp-item-group.c (sp_group_menu): Add "Ungroup" item (does nothing at moment)
+
+ * src/display/canvas-bgroup.c (sp_canvas_bgroup_point): Test sensitivity and stickyness
+ (sp_canvas_bgroup_set_sensitive): New function
+
+ * src/display/canvas-shape.c (sp_canvas_shape_point): Test sensitivity and stickyness
+ (sp_canvas_shape_set_sensitive): New function
+
+ * src/sp-item-group.c (sp_group_read_attr): Read "insensitive" too
+
+ * src/sp-shape.c (sp_shape_read_attr): Read "insensitive" too
+
+ * src/sp-item.c (sp_item_private_menu): Set menuitem label depending on sensibility
+
+ * src/desktop.c (sp_desktop_init): Bind "event" to manipulate sticky state
+
+ * src/display/canvas-image.c (sp_canvas_image_point): Check for
+ SP_CANVAS_STICKY_FLAG
+
+ * src/desktop.c (sp_desktop_event): New function, Set SP_CANVAS_STICKY_FLAG if
+ user holds Shift key
+
+2001-03-09 Lauris Kaplinski <lauris@ximian.com>
+
+ * glade/Makefile.am (pixmaps): Added all pixmaps to dist
+
+ * configure.in: Version 0.22
+
+2001-03-09 Frank Felfe <innerspace@iname.com>
+
+ * src/desktop.c (sp_desktop_update_scrollbars): Cleanup
+
+ * src/event-context.c (sp_event_context_private_root_handler): Use
+ Gdk keysyms instead of numeric values. Add moving/panning keybindings,
+ space for root menu popup
+ (sp_event_root_menu_popup): Pop menu on space
+
+ * select-context.c (sp_select_context_root_handler): Use Gdk keysyms
+ instead of numeric values
+
+ * selection-chemistry.c (sp_selection_move_screen): New function
+ (sp_selection_item_next): New function
+
+ * doc/keybingings.txt: New keybingings
+
+2001-03-09 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/nodepath.c (node_event): Update repr after deletion
+
+ * src/file.c (file_open_ok): Destroy widget instead of hiding
+ (file_open_cancel): New function
+ (sp_file_open): Connect new cancel handler
+ (file_save_ok): Exit from private main loop
+ (file_save_cancel): New function
+ (sp_file_save_as): Connect new cancel handler, enter private loop
+ (file_import_cancel): New function
+ (sp_file_import): Connect new cancel handler
+ (file_export_cancel): New function
+ (sp_file_export): Connect new cancel handler
+
+2001-03-08 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/interface.c (sp_ui_delete): New function presenting close
+ dialog box if needed
+ (sp_ui_close_view): Use sp_ui_delete ()
+ (sp_create_window): Connect "delete_event" and set window title
+
+ * src/file.c (sp_file_save_document): New function
+
+ * src/document-undo.c (sp_document_done): Set "modified" attribute
+
+ * src/file.c (file_save_ok): Clear "modified" attribute
+
+2001-03-07 Lauris Kaplinski <lauris@ximian.com>
+
+ * doc/keybindings.txt: Register node editing keystrokes
+
+ * src/desktop.c (sp_desktop_new): Do not grab focus here
+
+ * src/helper/sodipodi-ctrl.c: Added shape argument type
+ (sp_ctrl_class_init): Ditto
+ (sp_ctrl_init): Ditto
+ (sp_ctrl_set_arg): Ditto
+ (sp_ctrl_update): New logic, keep node absolute size always odd number
+ (sp_ctrl_point): Ditto
+ (draw_line): New function
+ (draw_point): New function
+ (sp_ctrl_render): New logic, draw diamond shape
+
+ * src/desktop-events.c (sp_desktop_root_handler): Grab focus on
+ acetate enter notify
+
+ * src/knot.c (sp_knot_set_arg): Set shape attribute
+ (sp_knot_handler): Grab focus on enter notify
+ (sp_knot_update_ctrl): Set shape
+ (sp_knot_set_ctrl_state): New function
+
+ * src/node-context.c (sp_node_context_root_handler): Process keypresses
+
+ * src/nodepath.c (sp_nodepath_node_new): Connect "event" and set knot shape
+ (node_clicked): Toggle type on Ctrl-click
+ (node_event): New signal handler for keypresses
+ (sp_nodepath_set_node_type): Set knot shape
+
+2001-02-21 Michael Meeks <michael@ximian.com>
+
+ * configure.in: depend on Bonobo >= 0.37.
+
+2001-02-21 Lauris Kaplinski <lauris@ximian.com>
+
+ * configure.in: Commented out GNOME_PRINT_CHECK
+
+2001-02-19 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/desktop.c (sp_desktop_connect_item): New function
+
+ * src/sp-item.c (sp_item_view_new_prepend): View list management
+ (sp_item_view_list_remove): Ditto
+
+ * src/sp-item.h: SPItemView - new object encapsulating view. I also induced
+ changes in almost all source files
+
+ * src/sp-item-group.h: New file
+
+ * src/bonobo/embeddable-drawing.c (sp_embeddable_drawing_get_type):
+ Use new bonobo object stuff
+ (sp_embeddable_drawing_factory): Ditto
+
+ * src/bonobo/embeddable-desktop.c (sp_embeddable_desktop_get_type):
+ Use new bonobo object stuff
+ (sp_embeddable_desktop_factory): Ditto
+
+ * src/bonobo/embeddable-document.c (sp_embeddable_document_get_type):
+ Use new bonobo object stuff
+ (sp_embeddable_document_new): Ditto
+
+2001-02-17 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/sp-object.c (sp_object_getAttribute): New function
+ (sp_object_setAttribute): New function
+ (sp_object_removeAttribute): New function
+
+2001-02-11 Lauris Kaplinski <lauris@ximian.com>
+
+ * configure.in: Added es to ALL_LINGUAS
+
+2001-02-07 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/dialogs/object-properties.c: Added channel sliders
+ * glade/object_props.glade: Ditto
+ * samples/mangatips6.svg: New file
+ * samples/mangatips7.svg: New file
+ * samples/mangatips8.svg: New file
+ * samples/mangatips9.svg: New file
+ * samples/mangatips10.svg: New file
+
+2001-02-06 Lauris Kaplinski <lauris@ximian.com>
+
+ * samples/mangatips3.svg: New file
+ * samples/mangatips4.svg: New file
+ * samples/mangatips5.svg: New file
+
+2001-01-29 Fatih Demir <kabalak@gmx.net>
+
+ * src/widgets/.cvsignore: Added this.
+
+2001-01-26 Lauris Kaplinski <lauris@ximian.com>
+
+ * configure.in: Version 0.21
+
+2001-01-24 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/document-undo.c (sp_document_add_repr): Do not expect repr
+ always correspond to item
+
+ * src/toolbox.c (sp_maintoolbox_create): Save edit/undo/redo widgets
+ (sp_update_draw_toolbox): Unsensitize undo/redo for draw and node
+ contexts
+
+2001-01-09 Lauris Kaplinski <lauris@ximian.com>
+
+ * src/desktop (sp_desktop_change_document): Update namedviews aslo
+
+2001-01-09 Lauris Kaplinski <lauris@ximian.com>
+
+ * samples/mangatips1.svg: New file
+ * samples/mangatips2.svg: New file
+
+ * src/xml/Makefile.am: Use SODIPODI_CFLAGS
+
+2001-01-08 Frank Felfe <innerspace@iname.com>
+
+ * desktop.*: use gnomeappbar in desktop-window,
+ use gtk_combo_text widget from libgal
+
+ * src/desktop-events.c: use gnomeappbar
+
+ * src/event-context.c: global keybindings
+
+ * src/select-context.c: keybindings
+
+ * src/text-context.c: filter Ctrl-keys for keybindings
+
+ * src/interface.c: connect to focus-in-event from desktop-window
+
+ * glade/toolbox.glade: keybindings for the maintoolbox-menu
+
+ * doc/keybindings.txt
+
+2001-01-08 Lauris Kaplinski <lauris@helixcode.com>
+
+ * src/selection-chemistry.c (sp_selection_rotate_90): Brought
+ function here from toolbox.c and renamed
+
+ * glade/toolbox.glade: Use sp_selection_rotate_90
+
+ * src/desktop_snap.* (sp_desktop_circular_snap): New function
+
+ * src/rect-context.c (sp_rect_context_destroy): Finish object, if exists
+
+ * src/ellipse-context.c: (sp_ellipse_context_destroy): Ditto
+
+2001-01-04 Lauris Kaplinski <lauris@helixcode.com>
+
+ * src/helper/sodipodi-ctrlrect.*: Draw by hand instead of using
+ libart. That fixed ugly-ugly freezing bug in Mandrake
+
+ * src/preferences-skeleton.h: New file, encoding default preferences
+
+ * glade/sodipodi.glade: Changes _Uus to _New in menu ;)
+
+ * src_sodipodi.* (sodipodi_load_preferences): New function
+ (sodipodi_save_preferences): New function
+ (sodipodi_get_repr): New function for retrieving data from preferences
+ DOM tree.
+
+ * src/draw-context.c (set_to_accumulated): Use style preferences
+ * src/rect-context.c (sp_rect_drag): Ditto
+ * src/ellipse-context.c (sp_ellipse_drag): Ditto
+ * src/text-context.c (sp_text_context_root_handler): Ditto
+ (sp_text_complete): ungrab keyboard
+
+ * src/toolbox.c (sp_toolbox_create): Use preferences
+
+2001-01-02 Lauris Kaplinski <lauris@helixcode.com>
+
+ * src/widgets/sp-toolbox.*: general toolbox implementation
+
+ * src/toolbox.c: Use SPToolBox widget, load and save toolbox states
+
+ * src/sodipodi.* (sodipodi_set_key): New function for setting
+ preference values into xml tree
+ (sodipodi_get_key): Ditto
+ (sodipodi_set_key_as_number): Ditto
+ (sodipodi_get_key_as_number): Ditto
+
+ * src/xml/repr-io.c (sp_repr_read_file): Load whatever element node as root
+ (sp_repr_read_mem): Ditto
+
+2000-12-31 Michael Meeks <michael@helixcode.com>
+
+ * src/xml/repr-io.c (sp_repr_save_file): split into
+ (sp_repr_save_stream): here.
+
+ * src/bonobo/embeddable-document.c (sp_embeddable_document_pf_load),
+ (sp_embeddable_document_pf_save): update signatures for new persistfile API.
+
+2000-12-30 Lauris Kaplinski <lauris@helixcode.com>
+
+ * src/main.c (main): Reenable command-line filenames
+
+ * src/sodipodi.* (sodipodi_application_new): New function
+
+2000-12-29 Michael Meeks <michael@helixcode.com>
+
+ * src/bonobo/embeddable-document.c (sp_embeddable_document_factory): upd.
+
+ * Makefile.am (oafdir): kill gnorba bits, update naming.
+
+ * src/bonobo/svg-doc-factory.c (sp_svg_doc_factory_init): upd.
+ (sp_svg_factory): new multi factory.
+
+ * GNOME_Sodipodi.oafinfo: add, rename stuff.
+
+ * configure.in (have_bonobo): require bonobo >= 0.30
+
+2000-12-28 Christopher R. Gabriel <cgabriel@softwarelibero.org>
+
+ * configure.in (ALL_LINGUAS): 'it'
+
+2000-12-27 Lauris Kaplinski <lauris@helixcode.com>
+
+ * src/display/nr-svp-uncross.c: Lot of clenaup
+
+ * src/display/nr-svp-render: Comment out printouts
+
+ * src/display/nr-primitives.h: #define NR_COORD_TOLERANCE
+
+2000-12-26 Lauris Kaplinski <lauris@helixcode.com>
+
+ * src/display/nr-svp-uncross.c (nr_svp_uncross_full): more cases -
+ rays, intersection - some cleanups
+
+ * src/display/nr-svp-render.c (nr_svp_render_rgb_rgba): Cleanups
+
+2000-12-25 Lauris Kaplinski <lauris@helixcode.com>
+
+ * src/display/nr-primitives.h: Move NRCoord and NRPoint here
+ * src/display/nr-primitives.c: NRDRect methods
+
+ * src/display/nr-svp.*: Rewrite. NRSVP is now simple ordered
+ segment and we use linked (sorted) lists for describing more
+ complex geometries
+ * src/display/nr-svp-uncross.*: Ditto, partial implementation
+ * src/display/nr-svp-render.* Ditto. Works.
+
+2000-12-21 Lauris Kaplinski <lauris@helixcode.com>
+
+ * src/display/nr-svp-render.c: Lot's of cleanup
+
+2000-12-20 Lauris Kaplinski <lauris@helixcode.com>
+
+ * src/display/nr-svp-render.c (nr_svp_render_rgb_rgba): It
+ works to some extent!
+ * src/display/canvas-shape.c (sp-canvas_shape_render): Use New
+ Rendering, #ifdef NEW_RENDER
+
+ * src/display/testnr.c: Silly file
+
+2000-12-19 Lauris Kaplinski <lauris@helixcode.com>
+
+ * src/display/nr-uta.*: UTA Implementation
+
+ * src/display/nr-aa-canvas.*: RGB Buffer canvas
+
+ * src/display/sp-arena.*: Widget, using RGB canvas
+
+ * src/display/sp-canvas-item.*: Item subclass for arena
+ * src/display/sp-canvas-group.*: Ditto
+
+2000-12-17 Lauris Kaplinski <lauris@helixcode.com>
+
+ * src/display/nr-primitves.h: typedef NRPoint
+
+ * src/display/nr-canvas.*: More code
+ * src/display/nr-canvas-item.*: Ditto
+ * src/display/nr-canvas-group.*: Ditto
+
+2000-12-16 Lauris Kaplinski <lauris@helixcode.com>
+
+ * src/display/nr-canvas-group.*: Base class for canvas groups
+ * src/display/nr-primitives.*: Graphic primitives
+
+2000-12-15 Lauris Kaplinski <lauris@helixcode.com>
+
+ * src/display/nr-canvas.*: Experimental new rendering stuff (not working)
+ * src/display/nr-canvas-item.*: Ditto (not working)
+ * src/display/nr-svp.*: Ditto (works)
+ * src/display/nr-svp-uncross.*: Ditto (works)
+ * src/display/nr-svp-render.*: Not working yet
+
+ * configure.in: Added {with|without}-new-render switch
+
+2000-11-30 Szabolcs Ban <shooby@gnome.hu>
+
+ * glade/toolbox.c: corrected "zom factor" to "zoom factor"
+
+2000-11-30 Szabolcs Ban <shooby@gnome.hu>
+
+ * configure.in (ALL_LINGUAS): add hu.
+
+2000-11-26 Lauris Kaplinski <lauris@helixcode.com>
+
+ * src/toolbox.c (sp_maintoolbox_create): Strip toolbox names
+ (sp_toolbox_create_widgets): Make windows toplevel
+
+ * glade/*.glade: Make windows to be toplevel
+
+2000-11-25 Christopher R. Gabriel <cgabriel@softwarelibero.org>
+
+ * debian/: added the debian scripts from package maintainer,
+ Davide Puricelli <evo@debian.org>
+
+2000-11-17 Yuri Syrota <rasta@renome.rovno.ua>
+
+ * glade/transformation.c
+ * glade/transformation.glade: correct "vertival move" to "vertical move"
+
+2000-11-17 Lauris Kaplinski <lauris@helixcode.com>
+
+ * src/dialogs/text/edit.c (sp-text-dialog-close): Destroy
+ dialog, so font listing will be regenerated
+
+2000-11-02 Michael Meeks <michael@helixcode.com>
+
+ * configure.in: Check for bonobo >= 0.27
+
+2000-10-27 Michael Meeks <michael@helixcode.com>
+
+ * configure.in (ALL_LINGUAS): add pt_BR.
+
+2000-10-26 Lauris Kaplinski <lauris@helixcode.com>
+
+ * configure.in: Define libxml include path
+
+ * src/Makefile.am: Use libxml include path
+
+ * src/main.c: Ditto
+
+ * src/xml/Makefile.am: Ditto
+
+ * src/xml/repr-io.c: Ditto
+
+2000-10-21 Zbigniew Chyla <cyba@gnome.pl>
+
+ * configure.in: Added pl to ALL_LINGUAS.
+
+2000-10-21 Zbigniew Chyla <cyba@gnome.pl>
+
+ * sodipodi/src/toolbox.c (sp_maintoolbox_create):
+ Marked strings for translation.
+
+2000-10-18 Christophe Merlet <christophe@merlet.net>
+
+ * configure.in: Oups, forgotten to add French (fr) to $ALL_LINGUAS
+
+2000-10-18 Christophe Merlet <christophe@merlet.net>
+
+ * sodipodi.desktop: Added French string.
+
+2000-10-17 Lauris Kaplinski <lauris@helixcode.com>
+
+ * src/nodepath.c (sp_nodepath_node_destroy): fixed YANC (Yet
+ Another Nodepath Crash)
+
+2000-10-16 Frank Felfe <innerspace@iname.com>
+
+ * glade/toolbox.glade: Updated zoom toolbox
+
+ * src/desktop-events.*: Added sp_canvas_root_handler
+
+ * src/desktop.c: Added statusbar, clean up zooming
+
+ * src/sp-metrics.* (sp_metric_to_metric_string): A way to
+ suppress metric identifier in strings
+
+ * src/sp-ruler.c: Copy GtkRuler object
+
+ * src/zoom-context.c: Use desktop region markup with border
+
+ * src/bonobo/embeddable-desktop.c: Ditto
+
+2000-10-13 Lauris Kaplinski <lauris@helixcode.com>
+
+ * src/text-context.c (sp_text_context_item_handler): Return
+ if repr == NULL; Commit changes to undo stack.
+
+2000-10-11 Lauris Kaplinski <lauris@helixcode.com>
+
+ * src/draw-context.c (sp_draw_context-destroy): Detach signal
+
+2000-10-11 Frederic Devernay <Frederic.Devernay@sophia.inria.fr>
+
+ * Makefile.am: Use test -r for compatibility
+
+ * src/Makefile.am: Remove -export-dynamic
+
+ * src/main.c: Use libxml 1.8.8/2.0
+
+ * src/interface.c: Make fake_dialogs nonstatic
+
+ * src/xml/repr-io.c: Use libxml 1.8.8/2.0
+
+2000-10-09 Lauris Kaplinski <lauris@helixcode.com>
+
+ * configure.in: Version 0.20
+
+ * src/helper/unit-menu.*: New convenience object
+
+ * src/desktop.c (sp_desktop_destroy): Destroy first eventcontext,
+ then selection
+
+ * src/draw-context.c: Make silent
+
+ * src/file.c (sp_file_import_ok): Use "xlink:href" for images
+
+ * src/sp-image.c (sp_image_read_attr): Use "xlink:href"
+ (sp_image_repr_read_image): Ditto
+
+ * src/svg/svg.h: Use bitfield for units
+
+2000-10-08 Lauris Kaplinski <lauris@helixcode.com>
+
+ * src/dialogs/object-properties.c: Do not keep CSS objects, so
+ fill & stroke do not overwrite each other settings
+
+2000-10-08 Frank Felfe <innerspace@iname.com>
+
+ * glade/align.glade: Improvements
+
+ * glade/object_props.glade: New layout
+
+ * src/sp-ruler.*: New files, implementing wrapper for Gtk rulers
+
+ * src/sp-metrics.*: Default metrics, ruler metrics
+
+ * src/desktop.c (sp_desktop_init): use ruler wrappers
+
+2000-10-07 Lauris Kaplinski <lauris@helixcode.com>
+
+ * src/desktop.c (sp_desktop_realize): Zoom to page on first display
+
+ * src/document-undo.c (sp_document_done): Limit undo to 128 levels
+
+ * src/document.c (sp_document_new): Set docbase & docname before
+ creating object tree
+
+ * src/sp-image.c (sp_image_repr_read_image): Find right root repr
+
+ * src/sp-shape.c (sp_shape_paint): Use right stroke width
+
+ * src/dialogs/export.c (sp_export_do_export): use ::paint() method
+
+ * src/xml/repr-io.c (sp_repr_svg_read_node): Return on comment and text
+ nodes
+
+ * src/xml/repr.c (sp_repr_document): Implement
+
+2000-10-06 Lauris Kaplinski <lauris@helixcode.com>
+
+ * glade/document.glade: Page setup dialog
+
+ * src/dialogs/document-properties.c: Implement page
+ setup dialog
+
+ * src/desktop.*: Keep page rectangle in SPDesktop
+
+ * src/sp-root.c: Update page rectangle
+
+ * src/file.c (sp_file_print_to_printer): gnome_print_bgeinpage ()
+ Remove FRGBA creation
+
+ * src/dialogs/export.c (sp_export_do_export): gnome_print_beginpage ()
+
+ * glade/sodipodi.glade: Add document & xml tree to properties menu
+
+ * src/interface.c (sp_create_window): Remove ugly buttons
+
+ * src/mdi-ui.*: Removed
+ * src/dialogs/object-fill.*, object-stroke.*: Removed
+
+2000-10-05 Lauris Kaplinski <lauris@helixcode.com>
+
+ * src/helper/canvas-grid.*: Grid item for canvas
+
+ * src/sp-namedview.c: Use & update grid
+
+ * src/desktop-snap.c: Snap to grid
+
+2000-10-04 Frank Felfe <innerspace@iname.com>
+
+ * glade/transformation.glade: Improved dialog
+
+ * glade/*.xpm: New icons
+
+ * src/dialogs/transformation.*: Improved dialog
+
+ * src/selection-chemistry.*: new transformation functions
+
+ * src/sp-metrics.*: New files
+
+2000-10-04 Lauris Kaplinski <lauris@helixcode.com>
+
+ * src/nodepath.c: #define reasonable knot colors
+ (sp_nodepath_selected_nodes_move): Implement snapping
+ (node_ctrl_request): Implement snapping
+
+2000-10-03 Lauris Kaplinski <lauris@helixcode.com>
+
+ * src/nodepath.c (update_repr): Call sp_document_done ()
+
+ * src/dialogs/desktop-properties.*: Use new dialog layout
+
+ * glade/desktop.glade: Use new dialog layout
+
+ * src/sp-guide.*: "color" and "hicolor" attributes
+
+ * src/sp-namedview.*: Bunch of new attributes
+
+ * src/desktop-events.c (sp_dt_guide_event): Use guide colors
+ (sp_dt_ruler_event): Use guide colors
+
+2000-10-02 Lauris Kaplinski <lauris@helixcode.com>
+
+ * src/knot.c (sp_knot_set_flag): Implement different outlines
+ (sp_knot_update_ctrl): New function to set SPCtrl colors
+
+ * src/nodepath.*: Mostly rewritten
+
+ * src/node-context.*: Use new SPNodePath
+
+2000-09-30 Yukihiro Nakai <nakai@gnome.gr.jp>
+
+ * configure.in ALL_LINGUAS: Add Japanese 'ja'
+
+2000-09-21 Pablo Saratxaga <pablo@mandrakesoft.com>
+
+ * configure.in: ALL_LINGUAS: added 'ca' for Catalan translation.
+
+2000-09-18 Lauris Kaplinski <lauris@helixcode.com>
+
+ * src/dialogs/object-properties.*: New combined fill + stroke +
+ transformation dialog by Frank Felfe
+
+ * glade/*.xpm: Lots of new icons etc. by Frank Felfe
+
+ * src/desktop.*, interface.c, select-context.c, seltrans.c: Changes
+
+ * selection-chemistry.* (sp_selection_apply_affine): New function by
+ Frank Felfe
+ (sp_selection_remove_transforms): Same
+
+2000-09-17 Lauris Kaplinski <lauris@helixcode.com>
+
+ * src/draw-context.c (sp_draw_context_root_handler): Handle Ctrl
+ and fix an missing segment, while continuing Ctrl-aligned line.
+
+ * src/ellipse-context.c (sp_ellipse_read-attr): Use sodipodi namespace
+ for "start", "end". Replace "closed" with "open", so closed is default
+
+ * src/sp-ellipse_context.c: Ditto
+
+ * src/sp-object.c: #define SP_OBJECT_CLONED_FLAG
+
+ * src/sp-root.c (sp_root_read_attr): Tru to read "viewBox" attribute.
+ The implementation is hackish, but it works, until document size is fixed
+
+ * src/display/canvas-shape.c (sp_canvas_shape_update): Calculate correct
+ line thickness
+
+2000-09-16 Lauris Kaplinski <lauris@helixcode.com>
+
+ * src/draw-context.*: Freehand should work OK now
+
+ * src/display/canvas-shape.c (sp_canvas_shape_render): Test, if
+ archetype has stroke SVP
+
+ * src/display/path-archetype.c (sp_path_at_new): Disturb Vpaths
+ before stroking - this removes ugly random crashing in art_uta_from_svp
+
+2000-09-15 Lauris Kaplinski <lauris@helixcode.com>
+
+ * src/sp-line.h, sp-line.c: <line> item
+
+ * src/sp-polyline.h, sp-polyline.c: <polyline> item
+
+ * src/sp-polygon.c, sp-polygon.h: <polygon> item
+
+ * src/sp-object-repr.c (sp_object_type_lookup): Register new item types
+
+ * src/helper/curve.c (sp_curve_closepath): Add point, if end != start
+
+2000-09-14 Lauris Kaplinski <lauris@helixcode.com>
+
+ * src/Makefile.am: Define GNOME_PIXMAPDIR
+
+ * src/main.c (main): Set default icon
+
+ * interface.c (sp_create_window): Set icon
+
+ * src/sp-text.c (sp_text_set_shape): Use helvetica for unknown font
+
+ * src/helper/art-utils.* (art_svp_translate): New function
+ (art_uta_from_svp_translated): Use art_svp_translate ()
+
+ * draw-context.*: Use experimental spline fitting for freehand
+ lines, during drawing generate many small lines, instead of
+ one big.
+
+2000-09-13 Lauris Kaplinski <lauris@helixcode.com>
+
+ * desktop-snap.c, desktop-snap.h (sp_desktop_horizontal_snap):
+ Implemented
+ (sp_desktop_vertical_snap): Ditto
+ (sp_desktop_free_snap): Rewrote, using horiz. and vert. snapping
+ (sp-desktop_vector_snap): Implemented
+
+ * rect-context.c, rect-context.h: Rewrote event handling stuff,
+ so it now supports (hopefully) all snapping chemistry
+
+ * sp-namedview.c (sp_namedview_build, sp_namedview_read_arg):
+ Implemented arguments "snaptoguides" and "guidetolerance"
+
+ * sp-rect.c (sp_rect_set_arg): Implemented Gtk+ argument setting
+
+ * ellipse-context.c, ellipse-context.h: Ditto
+
+2000-09-12 Lauris Kaplinski <lauris@helixcode.com>
+
+ * src/*.c, glade/desktop.*, src/dialog/desktop-properties.*:
+ Hacked together a preliminary guideline support stuff. It
+ sucks really for anything other than scaling, but now we have
+ at least something to improve in future.
+
+2000-09-09 Lauris Kaplinski <lauris@helixcode.com>
+
+ * sodipodi.c, sodipodi-private.h: New filed. Bye-bye to
+ Gnome-MDI interface, instead we have much more convenient
+ sodipodi object.
+ This introduced many changes mostly everywhere.
+
+ * src/helper/gt1*, src/helper/parseAFM.*: removed gt1 library,
+ as it is now accessible through gnome-print
+
+ * Makefile.am, src/Makefile.am, glade/Makefile.am: We'll pass
+ 'make distcheck' again
+
+ * src/sp-item-group.c: Children update, if parent's style is
+ changed
+
+2000-09-06 Lauris Kaplinski <lauris@helixcode.com>
+
+ * glade/*: Added Frank Felfe new icons and toolbopx stuff
+
+ * src/toolbox.*: Toolbox stuff (Frank Felfe)
+
+ * src/sp-item-transform.*: Same
+
+2000-08-24 Alastait McKinstry <mckinstry@computer.org>
+
+ * configure.in: ALL_LINGUAS: added 'ga' for Irish translation.
+
+2000-08-19 Lauris Kaplinski <lauris@helixcode.com>
+
+ * glade/transformation.glade: Transformation dialog (Frank Felfe)
+
+ * src/dilaogs/transfomration.*: Transfomration dialog (Frank Felfe)
+
+ * src/mdi-ui.c: Added transformation dialog
+
+ * po/POTFILES.in: Added glade/transformation.c
+
+2000-08-18 Lauris Kaplinski <lauris@helixcode.com>
+
+ * configure.in: Version 0.19
+ * Makefile.am: Comment out dist-hook
+ * sodipodi.spec.in: Build 0
+
+ * glade/align.glade: Added alignment base selection
+
+ * po/POTFILES.in: Added src/dialogs/align.c
+
+ * src/desktop.c: Display page borders
+
+ * src/sp-text.c: break text at newlines
+
+ * src/dialogs/align.c: New algorithm plus alignment base selection
+
+2000-08-15 Lauris Kaplinski <lauris@helixcode.com>
+
+ * glade/stroke.glade: Moved dialog to separate file
+ * Added Frank Felfe icons, that I forgot last time
+
+2000-08-10 Lauris Kaplinski <lauris@helixcode.com>
+
+ * src/main.c (main): Commented out arg parsing - it segfaulted for me
+
+ * glade/align.glade
+ * glade/al*
+ * src/dialogs/align.*: Alignmeant dialog by Frank Felfe <innerspace@iname.com>
+
+ * configure.in: Need bonobo >= 0.17
+
+ * src/bonobo/embeddable-document.c (sp_bonobo_stream_read): Bonobo API change
+
+2000-08-10 Lauris Kaplinski <lauris@helixcode.com>
+
+ * doc/architecture.txt: First step in generating developers documentation
+
+2000-08-09 Lauris Kaplinski <lauris@helixcode.com>
+
+ * glade/*.xpm: Added Frank Felfe's node editing icons and node dialog
+
+ * src/sp-ellipse.c (sp_ellipse_description): return "Ellipse"
+
+ * src/sp-text.c (sp_text_description): Return either contents or "Text" if NULL
+
+2000-08-07 Lauris Kaplinski <lauris@helixcode.com>
+
+ * configure.in: Require gnome-print >= 0.21
+
+ * glade/text-dialog.glade: New layout, suitable for gnome-font-selection
+
+ * src/Makefile.am: Add libunicode
+
+ * src/sp-chars.h:
+ * src/sp-chars.c:
+ * src/sp-text.h:
+ * src/sp-text.c: Use gnome-font instead of wrapper
+
+ * src/dialogs/text-edit.c: Use new GnomeFontSelection and GnomeFontPreview
+
+2000-08-03 Michael Meeks <michael@helixcode.com>
+
+ * configure.in: update for BonoboX
+
+2000-07-01 Lauris Kaplinski <lauris@helixcode.com>
+
+ * src/sp-namedview.c (and everywhere else): Guides are visible,
+ although not functional yet.
+
+ * src/desktop.c (sp_desktop_new): Use document + namedview
+ combination for creating desktop.
+
+2000-07-01 Lauris Kaplinski <lauris@helixcode.com>
+
+ * src/file.c (sp_do_file_print_preview): Don't use FRGBA, as
+ print preview can handle alpha itself
+
+ * src/sp-object-group.h
+ * src/object-group.c: Added SPObjectGroup to handle groups of
+ invisible objects (such as NamedViews)
+
+ * src/sp-namedview.h:
+ * src/sp-namedview.c: Extends SPObjectGroup
+
+ * src/xml/sp-repr.c (sp-repr-destroy): fix hash table destroy
+
+2000-06-21 Chema Celorio <chema@celorio.com>
+
+ * src/file.c (sp_do_file_print_preview): added print preview
+ stuff. new function
+ (sp_print_preview_destroy_cb): new function
+ (sp_file_print_preview): new function
+ modified the menu to include a print preview item
+
+2000-06-21 Lauris Kaplinski <lauris@helixcode.com>
+
+ * src/selection.c (sp_selection_update_statusbar): Added original
+ idea of printing sp_image_description (), if single item is
+ selected
+
+ * glade/*.xpm: Jeff's icons. I need to find a way to use png
+ variants, xpm sucks
+
+2000-06-21 Chema Celorio <chema@celorio.com>
+
+ * src/desktop.c (sp_desktop_set_status): it was #if'ed out,
+ reenabel it.
+
+ * src/selection.c (SP_SELECTION_C): added debug messages and macro
+ If lauris does not like them I will take them away.
+ (sp_selection_update_statusbar): new function
+
+ * src/mdi.c (sp_mdi_app_created): add statusbar to main window.
+
+2000-06-11 Benedikt Roth <Benedikt.Roth@gmx.net>
+
+ * configure.in: Added de to ALL_LINGUAS.
+ * sodipodi.desktop: Added German translations
+
+2000-06-05 Lauris Kaplinski <lauris@kaplinski.com>
+
+ * src/dialogs/export.c (sp_export_do_export): use pixbuf context,
+ instead of rbuf
+
+2000-06-05 Michael Meeks <michael@helixcode.com>
+
+ * src/dialogs/export.c (sp_export_do_export): s/rbuf_rgba_new/rbuf_new/
+
+ * src/bonobo/embeddable-document.c: kill a load of redundant prototypes,
+ and re-order to suit. (sp_embeddable_document_ps_save),
+ (sp_embeddable_document_ps_load): fix for new stream API.
+ (sp_embeddable_document_factory): update stream constructor.
+
+2000-05-14 Lauris Kaplinski <lauris@ariman.ee>
+
+ * src/knot.*: Lot of rearranging, new signals
+
+ * src/seltrans.c: Changes induced by new knot signalling
+ Added fake snapping to PostScript points (remove it, if you dare ;)
+
+2000-05-13 Lauris Kaplinski <lauris@ariman.ee>
+
+ * src/document-private.h: Removed width and height attributes
+
+ * src/sp-root.c: Added "width" and "height" readable attributes
+
+2000-05-12 Lauris Kaplinski <lauris@ariman.ee>
+
+ * src/xml/repr.h: A bit rearranging, added SPReprDoc, induces
+ changes almost everywhere else
+
+ * src/document-private.h: Hide all document internal structure
+
+2000-05-12 Lauris Kaplinski <lauris@ariman.ee>
+
+ * src/sp-namedview.*: Implemented skeleton
+
+ * src/sp-guide.*: Implemented skeleton
+
+ * src/sp-object-repr.c: Added NamedView and Guide
+
+ * src/helper/sp-guide.*: Changed name to SPGuideLine
+
+2000-05-11 Lauris Kaplinski <lauris@ariman.ee>
+
+ * src/desktop-events.c: Collected events to separate file
+ Added guidline and grid positioning skeleton
+
+ * src/helper/sp-guide.*: Guideline implementation
+
+2000-05-10 Lauris Kaplinski <lauris@ariman.ee>
+
+ * glade/*.xpm: Some new icons (thanks to Jeff Mrochuk)
+
+ * src/knot.*: signals clicked, grabbed, ungrabbed, moved
+ Many fixes and enhancements
+
+ * src/seltrans.c: Use knots instead of Ctrl canvas items
+
+2000-05-09 Michael Meeks <michael@helixcode.com>
+
+ * src/bonobo/svg-doc-factory.c (sp_svg_doc_factory_init): add
+ config.h + OAFIID.
+
+ * Makefile.am: Install oaf data.
+
+ * src/main.c (main): re-tool for oaf.
+
+ * configure.in: Check for oaf.
+
+2000-05-06 Lauris Kaplinski <lauris@ariman.ee>
+
+ * src/knot.h: Added signals "grab", "ungrab" and "move"
+ * src/knot.c: Implemented signals, event etc.
+
+2000-05-05 Lauris Kaplinski <lauris@ariman.ee>
+
+ * src/desktop-handles.h: Added SP_DT_IS_EDITABLE
+ * src/knot.*: started implementing universal handle object for
+ all contexts
+
+2000-05-05 Lauris Kaplinski <lauris@ariman.ee>
+
+ * src/Makefile.am: Define $gladedir, which has been forgotten :)
+ * src/sp-image.c (sp_image_print): Do it :)
+
+2000-05-03 Lauris Kaplinski <lauris@ariman.ee>
+
+ * src/main.c: Uncommented line interpreting unknown command-line
+ arguments as filenames
+ * src/document-undo.c (sp_document_undo): If attribute is 'id', find
+ affected object from 'new' instead of 'key'
+ * src/dialogs/xml-tree.c: Added missing sp_document_done flushes
+ * src/sp-object.c (sp_object_read_attr): Fixed def-ing repr
+ id attribute instead of objects one
+
+2000-05-02 Lauris Kaplinski <lauris@ariman.ee>
+
+ * src/sp-item-group.c (sp_group_build): Check that xml node is
+ known, before trying to build object from it
+
+2000-05-02 Lauris Kaplinski <lauris@ariman.ee>
+
+ * src/sp-gradient.*: Implemented skeleton for gradient fills
+ * src/sp-object-repr.c: Gradient parsing
+
+2000-05-01 Lauris Kaplinski <lauris@ariman.ee>
+
+ * src/helper/sodipodi-ctrl.c: Fixed bug in ::render, which left
+ buffer->is_bg untouched
+ * src/sp-defs.*: New objects, implementing <defs> nodes
+ * src/sp-group.*: Groups have both item and non-item members
+ * src/sp-image.c: Changed "src" attribute to "href"
+
+2000-04-29 Lauris Kaplinski <lauris@ariman.ee>
+
+ * xml/repr.*: Reprs are now GtkObjects
+ * xml/repr-io.c: Preliminary namespacing (xmlns:sodipodi)
+
+2000-04-29 Lauris Kaplinski <lauris@ariman.ee>
+
+ * src/dialogs/xml-tree.c (sp_xml_tree_change_attribute_long):
+ new function to change long attribute (GtkEntry does not like
+ long strings). Also attribute changing in xml pushes Undo stack.
+
+2000-04-28 Lauris Kaplinski <lauris@ariman.ee>
+
+ * glade/Makefile.am: Added xml-tree.glade
+
+ * src/dialogs/xml-tree.c (sp_xml_tree_change_attribute): implemented
+ this
+
+2000-04-27 Miguel de Icaza <miguel@helixcode.com>
+
+ * glade/Makefile.am: New file.
+
+ * src/dialogs/Makefile.am (gladedir): Define gladedir based on
+ $datadir
+
+ * Makefile.am: Remove the local install hack stuff. And process
+ the glade directory.
+
+ * configure.in: Do not define PACKAGE_GLADEDIR based on the output
+ of gnome-config. Let the Makefile.am compute that value from the
+ various $prefix settings.
+
+2000-04-27 Lauris Kaplinski <lauris@ariman.ee>
+
+ * src/dialogs/xml-tree.c: Attribute deletion mostly work
+
+2000-04-27 Lauris Kaplinski <lauris@ariman.ee>
+
+ * src/dialogs/xml-tree.*: Started implementing direct xml editing
+
+ * glade/xml-tree.glade: XML editing dialogs
+
+2000-04-26 Lauris Kaplinski <lauris@ariman.ee>
+
+ * helper/curve.c (sp_curve_split): Fixed evil memcpy size bug
+
+2000-04-24 Lauris Kaplinski <lauris@ariman.ee>
+
+ * src/selection-chemistry.c: Implemented Cut/Copy/Paste
+
+2000-04-23 Lauris Kaplinski <lauris@ariman.ee>
+
+ * src/document.h: added aspect and clip attributes
+
+ * src/bonobo/embeddable-desktop.c: keep full page always visible
+
+ * src/bonobo/embeddable-document.c: print scaled full page
+
+2000-04-21 Lauris Kaplinski <lauris@ariman.ee>
+
+ * src/mdi-document.c: extract ACTIVE_DOCUMENT for ACTIVE_DESKTOP
+ instead of MDIChild
+
+ * glade/sodipodi.glade: Popup menu
+
+ * src/event-context.c: (sp_event_context_private_root_handler)
+ Popup menu on button 3, if event is not consumed
+
+ * src/zoom-context.c: (sp_zoom_context_root_handler)
+ Assign zoom_out to Shift+Button1 to free Button3 for popup
+
+ * src/draw-context.c: (sp_draw_context_root_handler)
+ Invoke parent handler, if event is not consumed
+
+2000-04-21 Lauris Kaplinski <lauris@ariman.ee>
+
+ * configure.in: removed plugins/Makefile (not yet folks!)
+
+ * src/bonobo/embeddable-document.c (sp_embeddable_document_factory):
+ switched to original gnome-print-context instead of FRGBA
+
+2000-04-21 Michael Meeks <michael@helixcode.com>
+
+ * configure.in (have_bonobo): add -lbonobo-print
+
+ * src/bonobo/embeddable-document.c (sp_embeddable_document_factory):
+ add the print interface.
+
+2000-04-21 Fatih Demir <kabalak@gmx.net>
+
+ * configure.in : Added tr to ALL_LINGUAS .
+
+ * sodipodi.desktop : Added [tr] ..
+
+2000-04-20 Lauris Kaplinski <lauris@ariman.ee>
+
+ * glade/sodipodi.glade: toggling rulers and scrollbars on/off
+ * desktop.c: construct it by hand, borders can be removed
+ * mdi-desktop.c: new logic for activating desktops (bonobo needed it)
+ * bonobo/embeddable-document.c: removed MDI refcounting
+ * bonobo/embeddable-desktop.c: added MDI refcounting, active desktop
+ management and hiding borders, if not active
+
+2000-04-20 Andreas Hyden <a.hyden@cyberpoint.se>
+
+ * sodipodi.desktop: Added Swedish translation.
+ * configure.in: Added sv to ALL_LINGUAS.
+
+2000-04-19 Lauris Kaplinski <lauris@ariman.ee>
+
+ * configure.in: Added chack for GnomePrintRBuf and GnomePrintFRGBA
+ * sp-shape.c: if FRGBA is present, do not emulate alpha
+ * file.c: print via FRGBA, if present
+ * dialogs/export.c: export via RBuf, if present
+ * sp-object.c: fixed infinite loop in allocating id-s
+
+2000-04-17 Lauris Kaplinski <lauris@ariman.ee>
+
+ * src/sp-image.c: completed migration to new gdk-pixbuf
+ * src/display/canvas-image.c: completed migration
+
+2000-04-17 Michael Meeks <michael@helixcode.com>
+
+ * src/sp-image.c (sp_image_pixbuf_force_rgba): fix.
+ (sp_image_bbox): fix.
+
+2000-04-14 Lauris Kaplinski <lauris@ariman.ee>
+
+ * Makefile.am: fixed .desktop inclusion to distribution
+
+2000-04-12 Pablo Saratxaga Pablo <pablo@mandrakesoft.com>
+
+ * configure.in (ALL_LINGUAS): Add Danish
+
+200-04-09 Lauris Kaplinski <lauris@ariman.ee>
+
+ * bonobo/canvas-translator.*: implemented a translator group, which
+ translates xlib canvas calls to antialiased canvas ones.
+
+200-04-09 Lauris Kaplinski <lauris@ariman.ee>
+
+ * document.c: Removed bad memory corruption bug in ::destroy
+ * embeddable-document.c: Added PersistentFile interface
+ * embeddable-drawing.*: Added BonoboCanvasComponent interface
+
+200-04-08 Lauris Kaplinski <lauris@ariman.ee>
+
+ * Makefile.am: create sodipodi-bonobo symlink if we use bonobo
+ * src/sodipodi/*: Added bonobo component, nothing interesting yet
+
+200-04-07 Lauris Kaplinski <lauris@ariman.ee>
+
+ * sodipodi.gnorba: added this, embeddable document will follow soon
+ * configure.in: added bonobo check
+
+200-04-07 Lauris Kaplinski <lauris@ariman.ee>
+
+ * sp-shape.c: It prints now semitransparent shapes, rendering these
+ to bitmaps. No clipping yet and resolution is hardcoded to 72dpi
+
+200-04-05 Kjartan Maraas <kmaraas@online.no>
+
+ * no.po: Added no to ALL_LINGUAS.
+
+2000-04-05 Lauris Kaplinski <lauris@ariman.ee>
+
+ * sp-document.c, sp-file.c, sp-image.c: removed namespace. How to
+ extract this correctly from libxml?
+
+2000-04-05 Lauris Kaplinski <lauris@ariman.ee>
+
+ * xml/repr.c: added order_changed_pre callback
+ * document-undo.c: stacking order changes are now undoable
+ * sp-document.c, sp-file.c, sp-image.c: added namespace "sodipodi",
+ still have to do official definition
+
+2000-04-04 Lauris Kaplinski <lauris@ariman.ee>
+
+ * xml/repr-io.c: save DTD & standard header
+ * dialogs/object-*: modify default fill & stroke, if nothing selected
+
+2000-04-04 Lauris Kaplinski <lauris@ariman.ee>
+
+ * selection.*: Added functions to select via reprs (now when we have
+ unique id-s there isn't any reason thare wasn't such)
+
+2000-04-02 Lauris Kaplinski <lauris@ariman.ee>
+
+ * xml/repr-io.c: A very quick hack to load real svg code (DTD & stuff).
+ * sp-shape.c: Fixed bug in exporting open paths, so they are not filled
+ anymore.
+ * sp-image.c: We can print semitransparent images, although better do not
+ stretch these very much
+
+2000-04-02 Lauris Kaplinski <lauris@ariman.ee>
+
+ * document-undo.c, document.c: Undo should now work!
+
+2000-04-01 Lauris Kaplinski <lauris@ariman.ee>
+
+ * document.c: Some undoing/redoing works (duplicate & delete)
+
+2000-04-01 Lauris Kaplinski <lauris@ariman.ee>
+
+ * sp-item-group.c: cleaned up signals, reordering should work now
+ * hunted memory leaks & removed most obvious ones
+
+2000-03-31 Lauris Kaplinski <lauris@ariman.ee>
+
+ * Basically completed rewrite, most things do not work
+
+2000-03-30 Lauris Kaplinski <lauris@ariman.ee>
+
+ * Bumped version number to 0.18 & started rewrite of object system
+
+2000-03-29 Lauris Kaplinski <lauris@ariman.ee>
+
+ * Modified argument parsing, --without-gui, if present, has to be first
+ * argument, but otherwise now all GNOME/Gtk args work
+ * You can also specify multiple files for displaying or printing
+
+2000-03-28 Lauris Kaplinski <lauris@ariman.ee>
+
+ * Added cute little squirrel to /gnome/apps/Graphics ;-)
+ * src/desktop.c: Set canvas background to white
+ * Makefile.am: added samples to tarball
+
+2000-03-27 Lauris Kaplinski <lauris@ariman.ee>
+
+ * main.c: Applied Yukihiro Nakai FreeBSD patches
+ * main.c: Set LC_NUMERIC to "C", to avoid localisation of SVG files :-(
+
+2000-01-25 Lauris Kaplinski <lauris@ariman.ee>
+
+ * dialogs/export.*: a bit better png exporting, still sucks
+
+2000-01-25 Lauris Kaplinski <lauris@ariman.ee>
+
+ * sp-image.c: Cleanups here and there
+ * display/canvas-image.c: point method uses alpha, removed SVP-s
+
+2000-01-23 Lauris Kaplinski <lauris@ariman.ee>
+
+ * helper/art*: functions for rendering into RGBA buffer
+ * file.*, sp-shape.*, sp-image.*: exporting png bitmaps
+
+2000-01-23 Lauris Kaplinski <lauris@ariman.ee>
+
+ * Uses SPCurve everywhere
+
+2000-01-19 Lauris Kaplinski <lauris@ariman.ee>
+
+ * src/helper/sodipodi-ctrl.*: removed aa rendering
+
+2000-01-18 David Metcalfe (crdjm@sgi.com)
+
+ * Added command line options:
+ . [ -f ] file to load file at startup
+ . -p file to print the file without the GUI starting
+ . -t file to send the print output to the named file
+ * -t is currently required for -p as I couldn't find a way of creating
+ a GnomePrinter that goes to the default printer. ??
+ * Printing doesn't require that X be started
+
+2000-01-16 Lauris Kaplinski <lauris@ariman.ee>
+
+ * Bumped version to 0.17
+ * Most things, that worked in 0.15 work again
+ * still looses selections, dialogs suck etc.
+
+2000-01-14 Lauris Kaplinski <lauris@ariman.ee>
+
+ * Now uses Gnome MDI
+ * Stroke & fill dialogs almost work for multiple displays
+
+2000-01-08 Lauris Kaplinski <lauris@ariman.ee>
+
+ * Major rewrite of object system
+ * Multiple views almost work
+ * Multiple documents almost work
+ * Rects, Ellipses, Drawing and Nodes almost work
+ * Nothing else works ;-(
+
+1999-12-30 Lauris Kaplinski <lauris@ariman.ee>
+
+ * Bumped version number to 0.15
+ * Node editing works enough to be usable
+ * Images use relative paths, if possible
+ * Text can show accented chars
+
+1999-12-25 Lauris Kaplinski <lauris@ariman.ee>
+
+ * Increased version number to 0.14
+ * Preliminary node editing mode
+ * Stacking order can be changed again
+ * Convert to Curves, Combine & Separate functions
+ * Corrected repr refcounting - much fewer segfaults now
+ * Countless bugfixes here & there
+
+1999-12-23 Lauris Kaplinski <lauris@ariman.ee>
+
+ * Major cleanup - most things work better now, but some
+ don't work at all :-(
+ * Implemented SPChars class
+ * Text editing
+ * svg importing
+ * loading, saving and printing almost works
+
+1999-09-02 Lauris Kaplinski <lauris@ariman.ee>
+
+ * Rewrote many things and hacked up the rest.
+ Removed Gdome dependency, as I had neither time nor patience
+ to mess with it. As a temporary solution I've created SPRepr objects,
+ which can contain xml data.
+ Added functions: group, ungroup, delete, duplicate, to_front,
+ to_back, up, down
+ Freehand drawing almost works although need some cleanup
+ Outlines are implemented, although not usable yet
+ Rect can handle round corners i hope
+ Ellipse can be sliced
+
+# Local Variables:
+# tab-width:8
+# indent-tabs-mode:t
+# End:
+# vim: tabstop=4:noexpandtab:shiftwidth=4
diff --git a/doc/LOGGING.txt b/doc/LOGGING.txt
new file mode 100644
index 0000000..0fa90e1
--- /dev/null
+++ b/doc/LOGGING.txt
@@ -0,0 +1,23 @@
+
+Logging Inkscape events can be done by switching on DEBUG logs:
+
+Set the environment variables:
+
+INKSCAPE_DEBUG_LOG=filename.xml
+INKSCAPE_DEBUG_FILTER=Comma,List,Options
+
+Filter Options:
+ CORE - Logs core events
+ XML - Same xml changes in the log
+ SPOBJECT - Logs events from sp-object
+ DOCUMENT - Logs document events
+ REFCOUNT - Will track refs, may cause crashes
+ EXTENSION - Track extension events (where available)
+ FINALIZERS - Unknown
+ INTERACTION - User events
+ CONFIGURATION - Configuration entries as they're read
+ OTHER - None
+
+The log will output an xml file useful for machine reading.
+
+
diff --git a/doc/NewAppArchitecture/01-title.svg b/doc/NewAppArchitecture/01-title.svg
new file mode 100644
index 0000000..7906ed7
--- /dev/null
+++ b/doc/NewAppArchitecture/01-title.svg
@@ -0,0 +1,230 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ sodipodi:docname="01-title.svg"
+ height="480.00000pt"
+ width="640.00000pt"
+ inkscape:version="0.92.0 r15304"
+ sodipodi:version="0.32"
+ id="svg1"
+ version="1.1">
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient1222">
+ <stop
+ id="stop1223"
+ offset="0.0000000"
+ style="stop-color:#0081ac;stop-opacity:1.0000000;" />
+ <stop
+ id="stop1722"
+ offset="0.29347107"
+ style="stop-color:#006d91;stop-opacity:0.62745100;" />
+ <stop
+ id="stop1224"
+ offset="1.0000000"
+ style="stop-color:#ffffff;stop-opacity:0.0000000;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1309"
+ xlink:href="#linearGradient1222" />
+ <linearGradient
+ id="linearGradient1673">
+ <stop
+ id="stop1674"
+ offset="0"
+ style="stop-color:#000;stop-opacity:1;" />
+ <stop
+ id="stop1675"
+ offset="1"
+ style="stop-color:#fff;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ y2="-1232.1123"
+ x2="156.42584"
+ y1="-1598.649"
+ x1="156.42584"
+ id="linearGradient1677"
+ xlink:href="#linearGradient1222"
+ inkscape:collect="always"
+ gradientTransform="scale(2.6984769,0.42163702)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient36403"
+ x1="156.42584"
+ y1="-75.006101"
+ x2="156.42584"
+ y2="291.53062"
+ gradientTransform="scale(2.6984769,0.42163702)"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ inkscape:current-layer="svg1"
+ inkscape:window-y="136"
+ inkscape:window-x="211"
+ inkscape:window-height="664"
+ inkscape:window-width="919"
+ inkscape:cy="290.64195"
+ inkscape:cx="320"
+ inkscape:zoom="0.75625"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="1.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ showgrid="false"
+ inkscape:window-maximized="0" />
+ <metadata
+ id="metadata4">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <rect
+ y="-13.44353"
+ x="0"
+ height="133.33333"
+ width="853.33331"
+ id="rect1051"
+ style="fill:url(#linearGradient36403);fill-opacity:0.75;fill-rule:evenodd;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <g
+ transform="matrix(1.181942,0,0,1.181942,-55.565675,-17.531861)"
+ id="g1046">
+ <path
+ id="path1178"
+ d="m 558.93008,130.90881 v 34.77604 h -9.45312 v -9.28124 c -2.17713,3.70486 -4.88893,6.43576 -8.13542,8.19271 -3.20837,1.79514 -7.16149,2.6927 -11.85937,2.6927 -5.88197,0 -10.57988,-1.77604 -14.09375,-5.32812 -3.47571,-3.47568 -5.21355,-8.1545 -5.21355,-14.03646 0,-6.83678 2.17708,-11.99303 6.53125,-15.46875 4.31596,-3.51386 10.78991,-5.27079 19.42188,-5.27084 h 13.34896 v -0.97395 c -5e-5,-4.58329 -1.43234,-8.15446 -4.29687,-10.71355 -2.90282,-2.48258 -6.95143,-3.7239 -12.14584,-3.72395 -3.28475,5e-5 -6.49308,0.4011 -9.625,1.20312 -3.13196,0.84033 -6.13022,2.10075 -8.9948,3.78125 v -9.28125 c 3.47568,-1.41313 6.83679,-2.48257 10.08334,-3.20833 3.24651,-0.68744 6.43574,-1.03119 9.5677,-1.03125 8.32636,6e-5 14.55205,2.29173 18.67709,6.875 4.12495,4.58339 6.18745,11.51567 6.1875,20.79687"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:110px;font-family:Arial;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="text1044"
+ d="m 674.48544,132.68485 v 4.92709 h -43.59897 c 0.38194,6.87503 2.34895,12.12675 5.90105,15.75521 3.51387,3.59029 8.42185,5.38543 14.72396,5.38542 3.62843,1e-5 7.14231,-0.45833 10.54166,-1.375 3.43745,-0.95486 6.83676,-2.36804 10.19792,-4.23959 v 9.45312 c -3.39936,1.52779 -6.87505,2.69272 -10.42708,3.4948 -3.59033,0.80208 -7.21879,1.20312 -10.88542,1.20312 -9.24308,0 -16.53821,-2.84548 -21.88542,-8.53645 -5.38542,-5.65277 -8.07812,-13.31075 -8.07812,-22.97397 0,-9.9687 2.55902,-17.89405 7.67709,-23.77603 5.07984,-5.8437 11.95483,-8.76557 20.62499,-8.76563 7.75344,6e-5 13.90273,2.63548 18.44791,7.90625 4.50689,5.30908 6.76037,12.48963 6.76043,21.54166"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:110px;font-family:Arial;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path1182"
+ d="m 664.97502,129.76299 c -0.0382,-5.46177 -1.48963,-9.83503 -4.35417,-13.1198 -2.82643,-3.24648 -6.56948,-4.86974 -11.22917,-4.86979 -5.30905,5e-5 -9.54863,1.56602 -12.71874,4.69792 -3.17016,3.17018 -5.00349,7.61983 -5.5,13.34896 l 33.80208,-0.0573"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:110px;font-family:Arial;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path1181"
+ d="m 573.77892,156.51819 v 32.36979 h -9.51042 v -84.16146 h 9.51042 v 9.28126 c 1.98609,-3.66662 4.50693,-6.35932 7.5625,-8.07813 3.05553,-1.79508 6.684,-2.69265 10.88542,-2.69271 7.02773,6e-5 12.7378,2.94103 17.13021,8.82292 4.39229,5.88199 6.58848,13.61635 6.58854,23.20313 -6e-5,9.58682 -2.19625,17.32118 -6.58854,23.20312 -4.39241,5.88194 -10.10248,8.82291 -17.13021,8.82291 -4.20142,0 -7.82989,-0.89756 -10.88542,-2.6927 -3.05557,-1.75695 -5.57641,-4.44965 -7.5625,-8.07813"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:110px;font-family:Arial;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path1179"
+ d="m 540.02383,135.03381 c -7.67711,4e-5 -12.98613,0.9358 -15.92708,2.8073 -2.97918,1.83335 -4.46877,4.98439 -4.46875,9.45312 -2e-5,3.5521 1.12672,6.37848 3.3802,8.47917 2.17707,2.0625 5.17533,3.09376 8.9948,3.09375 5.2708,1e-5 9.49128,-1.96701 12.66146,-5.90104 3.20829,-3.93401 4.81245,-9.16664 4.8125,-15.69792 v -2.23438 h -9.45313"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:110px;font-family:Arial;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path1177"
+ d="m 505.01959,107.07548 v 9.33855 c -2.67366,-1.56592 -5.36636,-2.74996 -8.07813,-3.55209 -2.67364,-0.72564 -5.38545,-1.08849 -8.13541,-1.08854 -6.18753,5e-5 -10.98093,2.04345 -14.3802,6.13021 -3.39933,4.12504 -5.09898,9.91149 -5.09897,17.35938 -1e-5,7.44793 1.69964,13.23439 5.09897,17.35937 3.39927,4.08681 8.19267,6.13022 14.3802,6.13021 2.74996,1e-5 5.46177,-0.38195 8.13541,-1.14584 2.71177,-0.80207 5.40447,-1.96701 8.07813,-3.49479 v 9.22395 c -2.63546,1.29862 -5.36636,2.27258 -8.19271,2.92188 -2.86462,0.6875 -5.88197,1.03125 -9.05209,1.03125 -8.70835,0 -15.62153,-2.90277 -20.73958,-8.70833 -5.11806,-5.76735 -7.67708,-13.53991 -7.67708,-23.3177 0,-9.93052 2.59722,-17.74128 7.79167,-23.4323 5.11804,-5.72911 12.184,-8.59369 21.19791,-8.59375 2.94094,6e-5 5.80553,0.30562 8.59375,0.91667 2.78815,0.68756 5.48087,1.66152 8.07813,2.92187"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:110px;font-family:Arial;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path1176"
+ d="m 451.41809,106.50257 v 9.51041 c -2.67365,-1.45134 -5.46184,-2.53988 -8.36459,-3.26562 -2.86461,-0.72564 -5.86288,-1.08849 -8.99479,-1.08854 -4.69794,5e-5 -8.23092,0.76393 -10.59896,2.29167 -2.32987,1.48963 -3.4948,3.76219 -3.49479,6.8177 -1e-5,2.3299 0.84027,4.16323 2.52083,5.5 1.68055,1.29865 5.06075,2.55906 10.14063,3.78125 l 3.26562,0.74479 c 6.72219,1.52782 11.51559,3.6858 14.38022,6.47396 2.82633,2.75003 4.23953,6.60766 4.23958,11.57292 -5e-5,5.69098 -2.13893,10.17883 -6.41667,13.46354 -4.20142,3.32291 -10.02607,4.98437 -17.47395,4.98437 -3.09377,0 -6.30211,-0.32465 -9.62501,-0.97396 -3.36112,-0.6493 -6.9132,-1.60416 -10.65624,-2.86457 v -10.31251 c 3.51388,1.90973 6.97047,3.34202 10.36978,4.29688 3.3993,0.95487 6.7795,1.4323 10.14063,1.43229 4.46872,1e-5 7.90622,-0.82118 10.3125,-2.46354 2.40621,-1.56597 3.60933,-3.81944 3.60938,-6.76042 -5e-5,-2.74998 -0.87851,-4.85068 -2.63542,-6.30208 -1.71879,-1.45137 -5.51913,-2.84546 -11.40104,-4.18229 l -3.32293,-0.80208 c -5.88195,-1.2986 -10.12153,-3.2847 -12.71874,-5.95834 -2.59723,-2.74996 -3.89584,-6.47392 -3.89584,-11.17187 0,-5.72912 1.90972,-10.15967 5.72918,-13.29167 3.85762,-3.13189 9.33851,-4.69786 16.44271,-4.69792 3.47565,6e-5 6.77947,0.28652 9.91145,0.85937 3.05551,0.53479 5.90099,1.33687 8.53646,2.40626"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:110px;font-family:Arial;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path1175"
+ d="m 357.09425,81.007774 h 9.51042 V 131.0234 l 28.30208,-26.29688 h 12.14584 l -30.65104,28.53125 31.91145,32.42708 h -12.37499 l -29.33334,-29.79166 v 29.79166 h -9.51042 V 81.007774"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:110px;font-family:Arial;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path1174"
+ d="m 352.48382,128.90361 v 36.78124 h -9.45312 v -36.43749 c -4e-5,-5.80551 -1.06949,-10.14058 -3.20833,-13.00522 -2.13894,-2.86452 -5.32817,-4.29682 -9.56771,-4.29687 -5.11808,5e-5 -9.16669,1.7379 -12.14584,5.21355 -2.94099,3.43754 -4.41148,8.13545 -4.41145,14.09375 v 34.43228 h -9.56772 v -60.95833 h 9.56772 v 9.45313 c 2.25345,-3.66662 4.92706,-6.39752 8.02083,-8.19271 3.05553,-1.83327 6.58851,-2.74994 10.59895,-2.75 6.64579,6e-5 11.66836,2.15805 15.06771,6.47396 3.39926,4.35422 5.09891,10.75178 5.09896,19.19271"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:110px;font-family:Arial;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path1173"
+ d="m 288.58778,84.445274 h 10.36979 V 165.68485 H 288.58778 V 84.445274"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:110px;font-family:Arial;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path1180"
+ d="m 606.09141,135.26299 c -4e-5,-7.3715 -1.45143,-13.15796 -4.35416,-17.35938 -2.86462,-4.16314 -6.79865,-6.24474 -11.80208,-6.24479 -5.0035,5e-5 -8.93753,2.08165 -11.80208,6.24479 -2.9028,4.20142 -4.35419,9.98788 -4.35417,17.35938 -2e-5,7.37154 1.45137,13.15799 4.35417,17.35937 2.86455,4.1632 6.79858,6.2448 11.80208,6.24479 5.00343,1e-5 8.93746,-2.08159 11.80208,-6.24479 2.90273,-4.20138 4.35412,-9.98783 4.35416,-17.35937"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:110px;font-family:Arial;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="text1805"
+ d="m 555.78388,178.58359 c -10e-6,-1.31943 -0.25348,-2.34374 -0.76041,-3.07291 -0.52085,-0.72221 -1.24654,-1.08333 -2.17709,-1.08334 -0.92362,1e-5 -1.64237,0.36113 -2.15625,1.08334 -0.52084,0.72917 -0.78126,1.75348 -0.78124,3.07291 -2e-5,1.31251 0.2604,2.32987 0.78124,3.05209 0.51388,0.72916 1.23263,1.09375 2.15625,1.09375 0.93055,0 1.65624,-0.36459 2.17709,-1.09375 0.50693,-0.72222 0.7604,-1.73958 0.76041,-3.05209 m 1.72917,4.29167 c -2e-5,1.88889 -0.39584,3.29166 -1.1875,4.20833 -0.79863,0.92361 -2.0139,1.38541 -3.64584,1.38542 -0.61111,-1e-5 -1.18403,-0.0486 -1.71875,-0.14583 -0.54166,-0.0972 -1.0625,-0.24306 -1.5625,-0.43751 v -1.77082 c 0.5,0.28471 1,0.49652 1.5,0.63541 0.49306,0.13888 0.99305,0.20833 1.5,0.20833 1.13194,0 1.97916,-0.30902 2.54167,-0.92708 0.56249,-0.625 0.84374,-1.56944 0.84375,-2.83333 v -0.89583 c -0.35417,0.65278 -0.80903,1.13889 -1.36458,1.45832 -0.55557,0.32639 -1.22223,0.48959 -2,0.48959 -1.28473,0 -2.31945,-0.51736 -3.10417,-1.55208 -0.79166,-1.03472 -1.1875,-2.40624 -1.1875,-4.11459 0,-1.71527 0.39584,-3.09027 1.1875,-4.125 0.78472,-1.04165 1.81944,-1.56248 3.10417,-1.56249 0.77777,1e-5 1.44443,0.1632 2,0.48957 0.55555,0.31946 1.01041,0.80905 1.36458,1.46876 v -1.68751 h 1.72917 v 9.70834 m -18.11459,-8.01042 c -0.19445,-0.11805 -0.40626,-0.20137 -0.63541,-0.24999 -0.22917,-0.0625 -0.48264,-0.0938 -0.76042,-0.0938 -0.97223,0 -1.71876,0.33333 -2.23958,1 -0.52084,0.67361 -0.78126,1.63889 -0.78126,2.89583 v 5.83333 h -1.73957 v -11.08334 h 1.73957 v 1.71875 c 0.36111,-0.6736 0.83334,-1.1736 1.41667,-1.5 0.57639,-0.32637 1.28125,-0.48956 2.11459,-0.48957 0.11804,1e-5 0.24999,0.0107 0.39584,0.0312 0.13888,0.0139 0.2986,0.0382 0.47915,0.073 l 0.0107,1.86459 m -20.09375,-0.41667 c -0.92362,1e-5 -1.65626,0.37848 -2.19792,1.13542 -0.53472,0.76389 -0.80208,1.80903 -0.80208,3.13541 0,1.3264 0.26388,2.37153 0.79167,3.13542 0.54166,0.75694 1.27777,1.13542 2.20833,1.13542 0.91666,0 1.64582,-0.38194 2.1875,-1.14584 0.53471,-0.76388 0.80208,-1.80554 0.80208,-3.125 0,-1.31249 -0.26737,-2.35069 -0.80208,-3.11458 -0.54168,-0.77083 -1.27084,-1.15624 -2.1875,-1.15625 m 0,-1.55208 c 1.49999,1e-5 2.67708,0.51736 3.53125,1.55208 0.8611,1.02779 1.29165,2.4514 1.29166,4.27083 -10e-6,1.8125 -0.43056,3.23264 -1.29166,4.26042 -0.85417,1.04167 -2.03126,1.5625 -3.53125,1.5625 -1.50695,0 -2.68403,-0.52083 -3.53125,-1.5625 -0.86111,-1.02778 -1.29167,-2.44792 -1.29167,-4.26042 0,-1.81943 0.43056,-3.24304 1.29167,-4.27083 0.84722,-1.03472 2.0243,-1.55207 3.53125,-1.55208 m -15.76042,8.84374 h 1.97917 v 2.51042 h -1.97917 v -2.51042 m -8.5625,-3.48958 v 0.89583 h -7.92709 c 0.0694,1.25001 0.42709,2.20487 1.07292,2.86459 0.63889,0.65278 1.53126,0.97917 2.67709,0.97917 0.65971,0 1.2986,-0.0833 1.91666,-0.25001 0.62499,-0.17361 1.24305,-0.43055 1.85418,-0.77082 v 1.71875 c -0.61807,0.27777 -1.25002,0.48958 -1.89584,0.63541 -0.65278,0.14584 -1.3125,0.21875 -1.97917,0.21875 -1.68056,0 -3.00694,-0.51736 -3.97917,-1.55208 -0.97917,-1.02778 -1.46875,-2.42014 -1.46875,-4.17709 0,-1.81249 0.46528,-3.25346 1.39583,-4.32291 0.92362,-1.0625 2.17361,-1.59374 3.75001,-1.59375 1.40972,1e-5 2.52776,0.47918 3.35416,1.43749 0.81944,0.96529 1.22916,2.27085 1.22917,3.91667 M 493.2529,177.719 c -0.007,-0.99304 -0.27083,-1.78818 -0.79166,-2.38542 -0.51389,-0.59026 -1.19445,-0.8854 -2.04167,-0.88541 -0.96528,1e-5 -1.73612,0.28473 -2.3125,0.85417 -0.57639,0.57639 -0.90972,1.38542 -1,2.42708 l 6.14583,-0.0107 m -24.44791,4.86458 v 5.88542 h -1.72916 v -15.30209 h 1.72916 v 1.68751 c 0.36111,-0.66667 0.81943,-1.15625 1.375,-1.46876 0.55555,-0.32638 1.21527,-0.48957 1.97917,-0.48958 1.27777,1e-5 2.31596,0.53473 3.11458,1.60416 0.7986,1.06946 1.19791,2.4757 1.19792,4.21876 -10e-6,1.74306 -0.39932,3.14931 -1.19792,4.21875 -0.79862,1.06944 -1.83681,1.60417 -3.11458,1.60417 -0.7639,0 -1.42362,-0.1632 -1.97917,-0.48959 -0.55557,-0.31945 -1.01389,-0.80903 -1.375,-1.46875 m 5.875,-3.86458 c -10e-6,-1.34027 -0.2639,-2.39236 -0.79167,-3.15625 -0.52083,-0.75694 -1.23612,-1.13541 -2.14583,-1.13542 -0.90972,1e-5 -1.62501,0.37848 -2.14583,1.13542 -0.52779,0.76389 -0.79167,1.81598 -0.79167,3.15625 0,1.34028 0.26388,2.39236 0.79167,3.15625 0.52082,0.75694 1.23611,1.13541 2.14583,1.13541 0.90971,0 1.625,-0.37847 2.14583,-1.13541 0.52777,-0.76389 0.79166,-1.81597 0.79167,-3.15625 m -20.33334,-0.0417 c -1.39584,0 -2.36111,0.17014 -2.89583,0.51042 -0.54167,0.33333 -0.8125,0.90625 -0.8125,1.71874 0,0.64584 0.20486,1.15973 0.61458,1.54168 0.39583,0.37499 0.94098,0.56249 1.63542,0.56249 0.95833,0 1.72569,-0.35764 2.30209,-1.07292 0.58332,-0.71527 0.87499,-1.66666 0.875,-2.85416 v -0.40625 h -1.71876 m 3.43751,-0.75001 v 6.32293 h -1.71875 v -1.6875 c -0.39584,0.67361 -0.8889,1.17013 -1.47917,1.48958 -0.58334,0.32639 -1.30209,0.48959 -2.15625,0.48959 -1.06945,0 -1.92361,-0.32293 -2.5625,-0.96876 -0.63195,-0.63194 -0.94792,-1.48264 -0.94792,-2.55208 0,-1.24306 0.39583,-2.18055 1.1875,-2.8125 0.78473,-0.63889 1.9618,-0.95832 3.53125,-0.95833 h 2.42709 v -0.17709 c -10e-6,-0.83332 -0.26043,-1.48263 -0.78125,-1.94792 -0.52779,-0.45138 -1.2639,-0.67706 -2.20833,-0.67707 -0.59723,1e-5 -1.18057,0.073 -1.75001,0.21874 -0.56945,0.15279 -1.11458,0.38196 -1.63541,0.68751 v -1.68751 c 0.63193,-0.25693 1.24305,-0.45137 1.83333,-0.58333 0.59027,-0.12499 1.17014,-0.18749 1.73959,-0.1875 1.51387,1e-5 2.64582,0.41667 3.39583,1.25 0.74999,0.83334 1.12499,2.09376 1.125,3.78124 m -17.89584,-4.33333 v 1.69792 c -0.48611,-0.28471 -0.9757,-0.49999 -1.46875,-0.64583 -0.48611,-0.13194 -0.97917,-0.1979 -1.47917,-0.19791 -1.125,1e-5 -1.99653,0.37153 -2.61458,1.11458 -0.61806,0.75 -0.92708,1.80209 -0.92708,3.15624 0,1.35418 0.30902,2.40625 0.92708,3.15626 0.61805,0.74305 1.48958,1.11458 2.61458,1.11458 0.5,0 0.99306,-0.0694 1.47917,-0.20833 0.49305,-0.14584 0.98264,-0.35764 1.46875,-0.63542 v 1.67708 c -0.47917,0.23611 -0.9757,0.4132 -1.48958,0.53126 -0.52084,0.12499 -1.06945,0.1875 -1.64584,0.1875 -1.58333,0 -2.84027,-0.52778 -3.77083,-1.58334 -0.93055,-1.04861 -1.39583,-2.46181 -1.39583,-4.23959 0,-1.80554 0.47222,-3.22568 1.41667,-4.26041 0.93055,-1.04166 2.21526,-1.56249 3.85417,-1.5625 0.5347,1e-5 1.05554,0.0556 1.56249,0.16667 0.50693,0.12501 0.99652,0.30209 1.46875,0.53124 m -17.38541,-0.10421 v 1.72916 c -0.48612,-0.26387 -0.99307,-0.46179 -1.52084,-0.59375 -0.52083,-0.13194 -1.06598,-0.19791 -1.63542,-0.19792 -0.85416,1e-5 -1.49653,0.1389 -1.92708,0.41667 -0.42361,0.27084 -0.63541,0.68403 -0.63541,1.23959 0,0.42361 0.15277,0.75695 0.45833,1 0.30555,0.23611 0.92013,0.46528 1.84375,0.68749 l 0.59375,0.13542 c 1.22222,0.27779 2.09374,0.67014 2.61458,1.17709 0.51389,0.5 0.77083,1.20138 0.77084,2.10417 -10e-6,1.03472 -0.3889,1.85068 -1.16667,2.44791 -0.76389,0.60416 -1.82292,0.90625 -3.17709,0.90625 -0.56249,0 -1.14583,-0.059 -1.74999,-0.17709 -0.61112,-0.11805 -1.25695,-0.29167 -1.93751,-0.52083 v -1.875 c 0.63889,0.34723 1.26736,0.60764 1.88542,0.78125 0.61805,0.17361 1.23264,0.26042 1.84376,0.26042 0.81249,0 1.43749,-0.1493 1.87499,-0.44792 0.4375,-0.28472 0.65625,-0.69444 0.65625,-1.22917 0,-0.49999 -0.15972,-0.88194 -0.47917,-1.14582 -0.3125,-0.2639 -1.00348,-0.51737 -2.07291,-0.76043 l -0.60417,-0.14582 c -1.06945,-0.23611 -1.84027,-0.59722 -2.3125,-1.08334 -0.47222,-0.49999 -0.70833,-1.17708 -0.70833,-2.03126 0,-1.04165 0.34722,-1.84721 1.04167,-2.41666 0.70138,-0.56943 1.6979,-0.85415 2.98957,-0.85416 0.63195,10e-6 1.23264,0.052 1.80209,0.15624 0.55555,0.0973 1.07291,0.24307 1.55209,0.43751 m -25.90625,-4.63542 h 1.72916 v 9.09375 l 5.14584,-4.78126 h 2.20833 l -5.57292,5.18751 5.80209,5.89583 h -2.25 l -5.33334,-5.41667 v 5.41667 h -1.72916 v -15.39583 m -9.39584,8.70833 v 6.6875 h -1.71875 v -6.625 c 0,-1.05554 -0.19445,-1.84374 -0.58333,-2.36459 -0.3889,-0.52082 -0.96876,-0.78123 -1.73958,-0.78124 -0.93056,1e-5 -1.66667,0.31598 -2.20834,0.94791 -0.53473,0.62501 -0.80209,1.47918 -0.80209,2.56251 v 6.26041 h -1.73957 v -11.08334 h 1.73957 v 1.71876 c 0.40973,-0.66666 0.89583,-1.16318 1.45834,-1.48958 0.55555,-0.33333 1.19791,-0.49999 1.92708,-0.5 1.20833,10e-6 2.12153,0.39237 2.73959,1.17707 0.61804,0.79168 0.92707,1.95487 0.92708,3.48959 m -19.77083,-4.39584 h 1.71874 v 11.08334 h -1.71874 v -11.08334 m 0,-2.01041 c 0,-1.53471 0,-2.30207 0,-2.30208 h 1.71874 v 2.30208 h -1.71874 m -11.38542,10.58333 h 1.97917 v 2.51042 h -1.97917 v -2.51042 m -22.26041,-8.57292 h 1.71875 l 2.16667,8.64584 2.14582,-8.64584 h 2.03125 l 2.15626,8.64584 2.14582,-8.64584 h 1.72918 l -2.75001,11.08334 h -2.03124 l -2.26042,-9.08334 -2.27083,9.08334 h -2.03126 l -2.74999,-11.08334 m -22.29167,0 h 1.71875 l 2.16667,8.64584 2.14583,-8.64584 h 2.03124 l 2.15626,8.64584 2.14584,-8.64584 h 1.72916 l -2.75,11.08334 h -2.03125 l -2.26042,-9.08334 -2.27083,9.08334 h -2.03125 l -2.75,-11.08334 m -22.29167,0 h 1.71875 l 2.16667,8.64584 2.14583,-8.64584 h 2.03126 l 2.15624,8.64584 2.14584,-8.64584 h 1.72916 l -2.75,11.08334 h -2.03125 l -2.26042,-9.08334 -2.27083,9.08334 h -2.03125 l -2.75,-11.08334"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;font-family:Arial;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <g
+ transform="matrix(0.297633,0,0,0.297633,90.437824,69.796139)"
+ id="g839">
+ <path
+ id="whiteSpace"
+ d="M 424.15263,341.60321 299.08477,301.35147 267.45842,133.15677 368.08773,31.089902 l 51.75223,18.6883 96.31662,94.879068 z"
+ style="font-size:12px;fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:0.99860582pt"
+ inkscape:connector-curvature="0" />
+ <path
+ id="droplet01"
+ d="m 508.75511,361.78313 c 20.07899,4.01534 24.09654,18.07139 20.07899,22.08676 -4.0143,4.0164 -14.05383,8.03177 -22.08569,2.00759 -8.03398,-6.02296 -8.03398,-20.07901 2.0067,-24.09435 z"
+ style="font-size:12px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1.06666669pt"
+ inkscape:connector-curvature="0" />
+ <path
+ id="droplet02"
+ d="m 305.5594,363.12442 c -1.95652,0.52182 -18.30175,-13.56349 -31.2457,-7.03503 -12.94067,6.52753 -21.62809,21.14438 -9.53849,27.14242 12.09075,5.99804 20.73341,-0.91856 31.33266,-8.36121 10.60043,-7.44151 10.21795,-8.87529 9.45153,-11.74618 z"
+ style="font-size:12px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1.06666669pt"
+ inkscape:connector-curvature="0" />
+ <path
+ id="droplet03"
+ d="m 544.3814,327.39046 c 10.91987,-2.73042 36.14482,0 32.12727,16.06164 -4.01423,16.06583 -38.14817,10.03939 -60.23805,2.0109 -2.00778,-16.06478 22.96391,-16.78649 28.11078,-18.07254 z"
+ style="font-size:12px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1.06666669pt"
+ inkscape:connector-curvature="0" />
+ <path
+ id="mountainDroplet"
+ d="m 383.18965,22.786706 c -12.06759,0 -24.11264,4.608595 -33.35972,13.855673 L 185.46546,200.97564 c -9.06336,9.06319 -13.61309,20.84637 -13.79326,32.67318 h -0.0624 c 0,0.0421 0.0604,0.0826 0.0624,0.12482 -0.002,0.1985 -0.0624,0.39442 -0.0624,0.59292 h 0.28086 c 3.14572,11.96855 84.42614,27.22489 93.49459,36.29313 13.69498,13.69512 -52.51569,23.75259 -38.82087,37.44777 13.695,13.69498 82.76292,26.49873 96.4592,40.19392 13.69502,13.695 -27.98773,28.2777 -14.29256,41.97271 13.69501,13.69517 59.6978,-3.42335 51.36584,32.29869 18.49418,18.49416 57.07971,9.66274 82.9156,-8.83143 13.695,-13.695 -26.27133,-12.4872 -12.57621,-26.18222 13.695,-13.69518 48.26379,-13.76905 77.39205,-46.52885 -11.72441,-18.23438 -50.11308,-25.9995 -36.41795,-39.69463 13.69499,-13.695 40.31988,-6.73914 97.76986,-32.82921 28.04473,-12.73686 25.72792,-22.41088 25.62052,-34.13988 -0.002,-0.24681 0,-0.46905 0,-0.71774 h -0.0624 c -0.18014,-11.82683 -4.76132,-23.60999 -13.82448,-32.67318 L 416.58057,36.642379 C 407.33349,27.395301 395.25724,22.786706 383.18965,22.786706 Z m -1.40428,21.376429 c 5.36478,0.139759 9.69773,4.229418 18.19336,9.736419 l 77.6417,57.575936 c 0.84993,0.55116 1.6594,1.12611 2.4029,1.71635 0.7435,0.59015 1.42264,1.21611 2.05962,1.84119 0.63702,0.62395 1.21605,1.2502 1.74757,1.90359 0.53041,0.65327 1.01168,1.3211 1.43549,1.99723 0.425,0.67722 0.80507,1.36513 1.12343,2.05961 0.31858,0.69575 0.56833,1.41336 0.78016,2.12204 0.21308,0.70764 0.39287,1.40688 0.49932,2.12204 0.10656,0.71642 0.15602,1.43483 0.15602,2.15324 l -45.99833,-22.21899 -4.58736,34.7328 -25.30846,-11.85847 -39.07048,26.08861 -14.9479,-51.55308 -19.25438,45.09334 -53.76876,5.36752 0.59293,-23.93536 c 0,-5.74904 30.99444,-45.996858 49.86793,-55.578721 l 34.54556,-24.809147 c 5.09731,-3.304206 8.6708,-4.64 11.88968,-4.556147 z M 310.32254,279.05422 c 24.47372,6.34701 51.70732,14.67419 73.55365,14.82308 l 0.93619,9.83004 c -18.70731,-1.9283 -58.29136,-10.96055 -67.62441,-15.72807 z"
+ style="font-size:12px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1.06666669pt"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+ <rect
+ transform="scale(1,-1)"
+ y="-655.8678"
+ x="1.7654799e-07"
+ height="133.33333"
+ width="853.33331"
+ id="rect1814"
+ style="fill:url(#linearGradient1677);fill-opacity:0.75;fill-rule:evenodd;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <text
+ id="text1815"
+ y="509.61182"
+ x="426.72083"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:27.73333359px;line-height:120.00000477%;font-family:Arial;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ id="tspan3"
+ sodipodi:role="line"
+ y="509.61182"
+ x="426.72083"
+ style="stroke-width:3.20000017pt">Bryce Harrington</tspan></text>
+ <text
+ id="text1113"
+ y="365.45303"
+ x="117.93331"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:59.73333359px;line-height:100%;font-family:Arial;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ id="tspan2"
+ sodipodi:role="line"
+ y="365.45303"
+ x="117.93331"
+ style="stroke-width:3.20000017pt">Application Architecture</tspan></text>
+</svg>
diff --git a/doc/NewAppArchitecture/02-outline.svg b/doc/NewAppArchitecture/02-outline.svg
new file mode 100644
index 0000000..1c6502e
--- /dev/null
+++ b/doc/NewAppArchitecture/02-outline.svg
@@ -0,0 +1,517 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg586"
+ sodipodi:version="0.32"
+ inkscape:version="0.92.0 r15304"
+ width="640pt"
+ height="480pt"
+ sodipodi:docname="02-outline.svg"
+ version="1.1">
+ <defs
+ id="defs588">
+ <linearGradient
+ id="linearGradient2570">
+ <stop
+ style="stop-color:#000000;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop2571" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.62745100;"
+ offset="0.58504134"
+ id="stop2572" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop2573" />
+ </linearGradient>
+ <linearGradient
+ xlink:href="#linearGradient1218"
+ id="linearGradient1322"
+ x1="77.599106"
+ y1="20.687101"
+ x2="53.030737"
+ y2="114.57422"
+ gradientTransform="matrix(1.3228549,0,0,1.2809931,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1273"
+ id="linearGradient1318"
+ x1="59.491886"
+ y1="30.563196"
+ x2="33.266399"
+ y2="58.199241"
+ gradientTransform="matrix(1.7409899,0,0,0.97333594,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1307"
+ x1="0.45376351"
+ y1="1.9347328"
+ x2="0.41986585"
+ y2="0.12454049"
+ gradientTransform="scale(1.004208,0.995809)" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1306"
+ x1="0.45009527"
+ y1="1.9667202"
+ x2="0.41548476"
+ y2="0.11846013"
+ gradientTransform="scale(1.006361,0.993679)" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1305"
+ x1="0.45839140"
+ y1="1.8676205"
+ x2="0.42603236"
+ y2="0.13959341"
+ gradientTransform="scale(1.002016,0.997989)" />
+ <linearGradient
+ xlink:href="#linearGradient1273"
+ id="linearGradient1277"
+ x1="11.967844"
+ y1="119.11808"
+ x2="51.413385"
+ y2="80.482086"
+ gradientTransform="matrix(1.8036348,0,0,1.2393329,-37.611189,-4.4599008)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1273"
+ id="linearGradient1272"
+ x1="118.66497"
+ y1="45.70058"
+ x2="90.28563"
+ y2="62.493129"
+ gradientTransform="matrix(1.4554449,0,0,1.1642956,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1270" />
+ <linearGradient
+ xlink:href="#linearGradient1323"
+ id="linearGradient1231"
+ x1="17.696665"
+ y1="120.74315"
+ x2="94.698939"
+ y2="120.74315"
+ gradientTransform="matrix(1.8150579,0,0,0.9336165,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1221"
+ x1="27.318817"
+ y1="170.27164"
+ x2="130.70353"
+ y2="28.120696"
+ gradientTransform="scale(1.0211162,0.97932047)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient1218">
+ <stop
+ style="stop-color:#000000;stop-opacity:1.0000000;"
+ offset="0.00000000"
+ id="stop1219" />
+ <stop
+ style="stop-color:#323232;stop-opacity:1.0000000;"
+ offset="0.073255815"
+ id="stop1321" />
+ <stop
+ style="stop-color:#000000;stop-opacity:1.0000000;"
+ offset="0.65260679"
+ id="stop1320" />
+ <stop
+ style="stop-color:#fff;stop-opacity:1;"
+ offset="1"
+ id="stop1220" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1222">
+ <stop
+ style="stop-color:#0081ac;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop1223" />
+ <stop
+ style="stop-color:#006d91;stop-opacity:0.62745100;"
+ offset="0.50000000"
+ id="stop1722" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop1224" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1273">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1.0000000;"
+ offset="0.00000000"
+ id="stop1274" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.00000000;"
+ offset="1.0000000"
+ id="stop1275" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1323">
+ <stop
+ style="stop-color:#000000;stop-opacity:0.77685952;"
+ offset="0.00000000"
+ id="stop1324" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.00000000;"
+ offset="1.0000000"
+ id="stop1325" />
+ </linearGradient>
+ <radialGradient
+ xlink:href="#linearGradient826"
+ id="radialGradient829"
+ cx="296.2963"
+ cy="281.25"
+ r="248.40302"
+ fx="303.7037"
+ fy="93.75"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.29936853,0,0,0.15858773,4.3548661,98.117152)" />
+ <linearGradient
+ id="linearGradient826">
+ <stop
+ style="stop-color:#000000;stop-opacity:0.95294118;"
+ offset="0.00000000"
+ id="stop827" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.76078433;"
+ offset="0.36585677"
+ id="stop830" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.52941179;"
+ offset="0.47107276"
+ id="stop847" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.00000000;"
+ offset="1.0000000"
+ id="stop828" />
+ </linearGradient>
+ <linearGradient
+ xlink:href="#linearGradient909"
+ id="linearGradient907"
+ x1="0.50000000"
+ y1="0.66667551"
+ x2="0.50000000"
+ y2="-1.7333326" />
+ <linearGradient
+ id="linearGradient909">
+ <stop
+ style="stop-color:#000000;stop-opacity:0.00000000;"
+ offset="0.00000000"
+ id="stop910" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.17000000;"
+ offset="1.0000000"
+ id="stop913" />
+ </linearGradient>
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1309"
+ gradientTransform="scale(2.8444445,0.4)"
+ x1="0"
+ y1="4.7369516e-15"
+ x2="300"
+ y2="4.7369516e-15"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient2570"
+ id="linearGradient1308"
+ x1="-0.0028122679"
+ y1="1365.4825"
+ x2="64.30938"
+ y2="1365.4825"
+ gradientTransform="scale(13.227991,0.0860129)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient826"
+ id="radialGradient36619"
+ cx="296.2963"
+ cy="281.25"
+ fx="303.7037"
+ fy="93.75"
+ r="248.40302"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4203424,0,0,0.08699077,-33.810677,100.89451)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient36621"
+ x1="33.344169"
+ y1="164.17808"
+ x2="131.82116"
+ y2="28.775105"
+ gradientTransform="scale(1.0839555,1.0496536)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient36623"
+ x1="31.731446"
+ y1="165.85049"
+ x2="131.57971"
+ y2="28.562063"
+ gradientTransform="scale(1.0848907,1.0487488)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient36625"
+ x1="35.171777"
+ y1="162.0032"
+ x2="131.8238"
+ y2="29.109513"
+ gradientTransform="scale(1.0846262,1.0490045)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient36627"
+ x1="37.676606"
+ y1="159.47478"
+ x2="132.33793"
+ y2="29.318235"
+ gradientTransform="scale(1.0823063,1.051253)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient36629"
+ x1="29.920773"
+ y1="167.66146"
+ x2="131.16846"
+ y2="28.448861"
+ gradientTransform="scale(1.0869998,1.0467139)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient36631"
+ x1="27.318817"
+ y1="170.27164"
+ x2="130.70353"
+ y2="28.120696"
+ gradientTransform="scale(1.0891906,1.0446085)"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.05"
+ inkscape:cx="320"
+ inkscape:cy="240"
+ inkscape:window-width="764"
+ inkscape:window-height="687"
+ inkscape:window-x="432"
+ inkscape:window-y="41"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:current-layer="layer2"
+ showgrid="false"
+ inkscape:window-maximized="0">
+ <sodipodi:guide
+ orientation="horizontal"
+ position="0,464"
+ id="guide607"
+ inkscape:locked="false" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata33">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer1"
+ inkscape:label="Background"
+ style="display:block">
+ <rect
+ style="font-size:12px;fill:url(#linearGradient1309);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.20000017pt"
+ id="topbluebox"
+ width="853.33331"
+ height="120"
+ x="0"
+ y="1.8947807e-15" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient1308);stroke-width:5.31674433;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M -0.03652902,117.55657 850.68323,117.34163"
+ id="path654"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0" />
+ <g
+ id="g1085"
+ transform="translate(689.36448,-10.40511)">
+ <g
+ id="g1394"
+ transform="matrix(0.875802,0,0,0.869278,1.1184885,-8.4967275)">
+ <ellipse
+ id="path898"
+ style="opacity:0.69398911;fill:url(#radialGradient36619);stroke-width:0.84729707;stroke-dashoffset:0"
+ cx="92.292046"
+ cy="126.99174"
+ rx="126.10272"
+ ry="26.097233" />
+ <ellipse
+ id="ball1"
+ style="fill:url(#radialGradient829);stroke-width:0.96546245;stroke-dashoffset:0"
+ cx="94.165428"
+ cy="145.69347"
+ rx="89.810562"
+ ry="47.576321" />
+ </g>
+ <g
+ id="g1310"
+ transform="matrix(1.822197,0,0,1.662749,-192.00875,13.084299)"
+ style="fill:url(#linearGradient1221)">
+ <path
+ style="fill:url(#linearGradient36621);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 148.55614,11.815593 c -2.18769,1e-6 -4.39029,0.823628 -6.06667,2.5 l -29.76666,29.8 c -1.64308,1.643032 -2.50068,3.78929 -2.53334,5.933333 -4.6e-4,0.03598 0,0.09736 0,0.133333 h 0.0667 c 0.57027,2.16974 15.28934,4.922713 16.93333,6.566667 2.48272,2.482738 -9.51602,4.317248 -7.03333,6.8 2.48271,2.482709 15.01704,4.783915 17.5,7.266669 2.48273,2.48272 -5.08275,5.11728 -2.6,7.6 2.48272,2.482753 10.81047,-0.609259 9.3,5.866667 3.35273,3.352736 10.34963,1.752736 15.03333,-1.6 2.48272,-2.482721 -4.74941,-2.250614 -2.26666,-4.733334 2.48272,-2.482752 8.75277,-2.494421 14.03333,-8.433335 -2.12548,-3.305654 -9.08274,-4.717259 -6.6,-7.2 2.48272,-2.482715 7.28509,-1.236886 17.7,-5.966667 5.08413,-2.309024 4.68613,-4.040355 4.66667,-6.166667 -4.1e-4,-0.04475 0,-0.08825 0,-0.133333 h -0.0333 c -0.0326,-2.144041 -0.85698,-4.290298 -2.5,-5.933333 l -29.8,-29.8 c -1.67637,-1.67637 -3.84565,-2.5 -6.03334,-2.5 z m -0.26667,3.866666 c 0.97256,0.02533 1.75986,0.768324 3.3,1.766667 l 14.06667,10.433333 c 0.15408,0.09991 0.29855,0.192996 0.43333,0.3 0.1348,0.10699 0.28452,0.220015 0.4,0.333334 0.11548,0.113111 0.20364,0.248218 0.3,0.366666 0.0961,0.118429 0.18984,0.244093 0.26667,0.366667 0.077,0.122774 0.14229,0.240765 0.2,0.366667 0.0577,0.126131 0.0949,0.238188 0.13333,0.366666 0.0386,0.128282 0.0808,0.270352 0.1,0.4 0.0193,0.12988 0.0333,0.269763 0.0333,0.4 l -8.33333,-4.033333 -0.83334,6.3 -4.6,-2.166667 -7.06666,4.733334 -2.73334,-9.333334 -3.46666,8.166667 -9.76667,0.966667 0.1,-4.333334 c 0,-1.042224 5.64516,-8.329604 9.06666,-10.066666 l 6.26667,-4.5 c 0.92408,-0.599006 1.54979,-0.848535 2.13333,-0.833334 z m -12.93333,42.6 c 4.43676,1.15063 9.37288,2.639674 13.33333,2.666667 l 0.16667,1.8 c -3.39138,-0.349579 -10.57471,-2.002379 -12.26667,-2.866667 z m 46.23333,7.9 c -0.67728,-0.02171 -1.31822,0.0462 -1.8,0.166667 -0.90833,0.226965 -5.321,0.331531 -4.96666,3.166667 3.89845,1.416876 9.92489,2.502007 10.63333,-0.333334 0.53176,-2.12593 -1.83484,-2.93489 -3.86667,-3 z m -50.96666,5.766669 c -0.61333,-0.07148 -1.21336,0.0042 -1.8,0.3 -2.34598,1.183349 -3.92502,3.81264 -1.73334,4.9 2.19191,1.08736 3.74516,-0.150741 5.66667,-1.5 1.92173,-1.349045 1.87228,-1.612875 1.73333,-2.133333 -0.26601,0.07094 -2.02669,-1.352235 -3.86666,-1.566667 z m 42.86666,0.466667 c -1.77199,0.708629 -1.75118,3.170389 -0.33333,4.233333 1.41748,1.063157 3.19156,0.375499 3.9,-0.333333 0.70902,-0.70863 -0.023,-3.19136 -3.56667,-3.9 z"
+ id="path1278"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient36623);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 147.16667,11.433333 c -3.48238,0.364902 -5.88303,3.345755 -8.33158,5.570373 -8.94544,9.133798 -18.09349,18.101949 -26.95799,27.294024 -1.44334,1.84378 -2.03035,4.015468 -2.31043,6.30227 5.03542,3.678658 11.71157,3.699536 17.06666,6.766667 -1.50817,2.381747 -5.17846,2.289571 -6.84097,4.663825 -1.44519,0.973702 0.60698,2.569614 1.6838,2.93719 4.47582,2.259905 9.5207,3.127075 13.9674,5.505719 2.30619,0.164974 2.15073,2.483836 0.6201,3.623175 -1.21232,1.221254 -3.08705,3.249751 -1.23288,4.771441 2.26675,1.575369 5.27199,1.144095 7.80255,2.065316 1.77826,0.975122 0.51639,2.738136 1.73334,3.966667 3.05603,2.396513 7.28787,1.973693 10.69445,0.606201 1.75151,-0.515126 3.34201,-1.653286 4.87221,-2.539534 1.47613,-1.720326 -0.82595,-2.9513 -2.13333,-3.666667 -0.85913,-1.425274 2.00009,-1.997097 2.97462,-2.675578 3.73665,-1.514529 7.36553,-3.267329 10.23683,-6.143331 1.79011,-1.105032 -0.83882,-2.676851 -1.67812,-3.547758 -1.55141,-1.15048 -3.58938,-1.860548 -4.56666,-3.633333 2.52043,-2.7807 6.7319,-2.262194 9.98204,-3.687561 3.90317,-0.992642 7.61596,-2.729652 11.05532,-4.741974 2.26951,-1.69135 1.67257,-4.636557 1.22998,-7.021773 -1.61839,-5.025589 -6.41885,-8.01283 -9.81146,-11.814386 -7.61983,-7.514247 -15.1255,-15.17228 -22.81612,-22.597384 -2.05244,-1.578655 -4.64151,-2.423668 -7.23976,-2.003589 z M 149.5,16.766667 c 5.52064,4.046284 11.05387,8.077891 16.56667,12.133333 0.11539,1.103552 -2.90244,-1.172627 -4.0558,-1.481882 -1.41219,-0.420198 -3.8964,-2.894916 -3.5025,0.03341 -0.60562,1.192982 0.31151,5.203671 -1.4377,4.28052 -1.58183,-0.849857 -3.68447,-2.113891 -5.18058,-0.378679 -1.61892,1.082213 -3.23783,2.164425 -4.85676,3.246637 -0.9783,-3.377623 -1.95211,-6.756554 -2.93333,-10.133333 -1.34602,3.127884 -2.66477,6.267483 -4,9.4 -2.92222,0.288888 -5.84445,0.577778 -8.76667,0.866667 -0.20184,-2.166309 0.27133,-4.341771 1.77562,-5.878158 3.25057,-5.211552 8.66632,-8.395371 13.54451,-11.865011 0.95273,-0.564092 1.80847,-0.493262 2.84654,-0.223498 z m -8.63333,43.566666 c 2.34366,0.607254 4.78296,0.727797 7.16666,1.133334 -0.90625,1.084587 -3.14277,-0.32439 -4.56523,-0.371058 -1.8583,-0.406252 -3.7163,-0.80007 -5.4681,-1.562276 0.95555,0.266667 1.91111,0.533334 2.86667,0.8 z m 38.86666,5.4 c -2.15488,0.501536 -5.22675,0.793815 -5.5,3.566667 0.70833,1.029809 2.96093,1.412478 4.40801,1.688268 2.27503,0.363118 5.38493,1.181831 6.97878,-0.937576 1.36135,-1.898234 -0.67459,-4.313995 -2.78769,-4.178768 -1.02575,-0.350017 -2.04343,-0.268702 -3.0991,-0.138591 z m -51.03333,5.9 c -1.57612,1.085018 -3.71575,2.720281 -3.03333,4.9 1.61184,2.339234 4.94529,1.683368 6.78753,-0.0057 1.2184,-0.692559 3.25469,-2.021692 2.31247,-3.560997 -1.93436,-0.840999 -3.87915,-2.117169 -6.06667,-1.333334 z m 44.36667,0.333334 c -1.34895,0.891833 -1.89168,2.759628 -0.95675,4.109348 0.71622,1.795233 3.11379,1.982508 4.57991,1.004604 1.95986,-0.600235 1.10016,-3.109938 -0.33003,-3.844913 -0.72045,-0.899439 -2.36482,-1.335642 -3.29313,-1.269039 z"
+ id="path1283"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient36625);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 146.23333,12.866667 c -3.88385,1.702193 -6.61189,5.324961 -9.67052,8.210746 -7.86956,8.018198 -15.90416,15.90198 -23.69161,23.983409 -1.11331,1.428597 -1.72615,3.060044 -2.00453,4.839178 4.36,3.072638 10.04495,3.23545 14.7573,5.603266 1.5625,0.15548 3.26141,1.73801 1.81635,3.072207 -1.86501,1.91956 -5.15011,2.084779 -6.70699,4.291194 4.05269,2.923397 9.10625,3.602288 13.58014,5.613093 1.52915,1.119169 4.28812,1.21833 4.3532,3.553573 -0.41298,2.06712 -2.47344,3.267809 -3.36667,5.133334 1.94434,2.744072 5.94438,1.261888 8.50547,3.040805 1.3908,0.857738 1.00828,2.693049 1.62108,3.831047 3.2048,2.344549 7.71164,1.319869 10.94656,-0.558135 1.04365,-0.353733 3.89943,-1.626855 1.76272,-2.556043 -1.55651,-0.349067 -2.86028,-2.213166 -1.35103,-3.402938 3.84858,-2.931245 9.10998,-3.601158 12.55258,-7.214396 1.79927,-1.361045 -1.31628,-2.560541 -2.24828,-3.336495 -1.41778,-1.044797 -3.86698,-2.048091 -3.55577,-4.137179 2.35965,-3.274836 6.88107,-2.833411 10.31383,-4.263585 3.90311,-0.957377 7.67689,-2.630842 11.10878,-4.611597 2.18816,-1.940094 1.07405,-5.046756 0.32835,-7.371909 -3.93266,-5.513287 -9.35396,-9.75581 -13.9708,-14.686024 -5.91778,-5.783657 -11.65452,-11.813723 -17.68454,-17.444607 -2.14828,-1.370565 -4.63208,-2.556154 -7.20805,-1.62333 z m 2.3,2.233333 c 5.45973,2.578599 9.80753,6.890051 14.73244,10.347527 1.85084,1.664819 5.00363,2.778901 4.9009,5.71914 -1.78479,0.428996 -3.34725,-1.396857 -5.04898,-1.86837 -1.54021,-0.520034 -4.1213,-2.963549 -3.68846,0.16232 -0.54825,1.127161 0.22527,4.775461 -1.23798,4.170178 -1.53672,-0.653008 -3.2567,-1.905943 -4.87859,-1.758173 -2.31413,1.577535 -4.63724,3.142054 -6.94599,4.727378 -0.87266,-2.83558 -1.68407,-5.690403 -2.53334,-8.533333 -1.12707,2.260756 -1.98302,4.959333 -3.26666,6.966666 -3.47777,0.344565 -6.95563,0.688221 -10.43334,1.033334 0.0287,-2.531437 -0.43925,-5.398577 1.54821,-7.372648 3.13073,-5.303181 8.62883,-8.494145 13.35179,-12.127352 1.15867,-0.426692 2.35212,-1.253526 3.5,-1.466667 z m -13.76666,42.4 c 4.77393,1.272573 9.58904,2.318786 14.5,2.9 0.93608,1.872033 -0.34236,3.482335 -2.33168,2.565935 -3.62332,-0.734316 -7.25018,-1.727438 -10.80166,-2.699268 -0.26564,-0.514085 -3.09159,-3.378118 -1.36666,-2.766667 z m 45.16666,9.433333 c -1.51493,0.422114 -3.72691,0.290818 -4.26666,2.133334 2.90995,0.556827 6.05202,2.002088 8.9,0.466666 0.978,-1.977585 -1.92783,-2.538134 -3.31385,-2.645499 -0.43983,0.01517 -0.87966,0.03034 -1.31949,0.0455 z m -50.9,5.866667 c -1.16024,0.90047 -3.46737,3.083937 -1.02728,3.858837 2.25255,0.543858 3.96147,-1.380385 5.62728,-2.558837 -1.18522,-1.161836 -2.98479,-1.601218 -4.6,-1.3 z m 44.03334,0.733333 c -1.04902,2.027564 1.90687,4.021482 3.28133,2.230908 0.70415,-1.13156 -2.36473,-3.118333 -3.28133,-2.230908 z"
+ id="path1286"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient36627);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 146.66667,13.4 c -6.33172,3.543401 -10.68888,9.547281 -15.90063,14.447274 -5.8861,6.073656 -12.00588,11.974663 -17.74737,18.155152 -0.7305,1.178656 -2.18908,3.828459 -0.0714,4.248788 4.9013,2.576465 10.86092,2.972757 15.3194,6.215453 1.00861,2.475215 -2.05916,3.484953 -3.70454,4.477414 -1.7373,0.545523 -3.75405,2.175563 -0.84454,2.774326 4.83335,2.60598 10.58594,3.28132 15.01575,6.64826 1.43136,2.33294 -1.26292,4.394234 -2.23809,6.238069 0.0119,1.908953 2.8242,1.486185 4.14874,2.002826 2.29679,0.177914 4.75661,1.464231 4.98406,3.992952 0.7695,2.00242 3.5144,2.068656 5.37195,2.066153 2.47607,-0.312856 4.61313,-1.6278 6.86667,-2.6 -0.11425,-1.550102 -2.69456,-1.700315 -2.36667,-3.6 1.99363,-3.193298 6.06476,-3.869656 9.11608,-5.707796 1.73236,-0.750835 3.28599,-1.893245 4.45059,-3.392204 -1.92497,-2.280272 -5.74204,-3.012313 -6.11314,-6.406102 0.39022,-1.188208 2.2736,-2.314015 3.60639,-2.891301 5.6785,-2.143002 11.88985,-2.970298 17.10185,-6.270592 2.74324,-1.108432 1.83527,-4.538836 1.0317,-6.686009 -2.29624,-3.22589 -5.40132,-6.000174 -8.00828,-9.052576 -2.68656,-2.760044 -5.48876,-5.408427 -8.21852,-8.126754 1.12365,1.634362 -0.99109,2.422313 -2.21269,1.401868 -2.03118,-0.886068 -4.05629,-1.760173 -6.12064,-2.568534 C 160.05314,30.54272 159.67649,32.269964 159.3,34 c -2.55377,0.684822 -5.03322,-2.683187 -7.35336,-0.501311 -1.91379,1.060257 -3.40719,2.847058 -5.45058,3.513153 -1.46281,-0.265507 -1.26699,-3.243895 -2.01992,-4.618246 -0.44179,-3.083731 -1.2118,-2.404985 -2.14312,0.123134 -0.85365,1.59882 -1.21984,3.834303 -3.53335,3.298267 -3.08878,0.306225 -6.17762,0.611598 -9.26633,0.918336 0.0202,-3.177717 -0.28551,-6.766 2.22768,-9.171123 3.51639,-4.960964 8.70856,-8.341185 13.55479,-11.782731 1.62219,-0.752906 3.63701,-1.872712 5.13828,-0.273654 3.97373,2.727514 8.02021,5.285521 11.74591,8.327508 -3.19568,-3.018643 -6.19482,-6.317986 -9.51099,-9.164539 -1.87897,-0.938934 -3.8675,-2.092901 -6.02238,-1.268794 z m -11.83334,43.5 c 5.00075,0.984495 9.99566,2.003225 15,2.966667 0.20732,1.45664 0.46427,3.886308 -1.67313,3.831478 -4.16789,-0.795987 -8.38205,-1.956384 -12.49353,-3.031478 -0.61549,-0.980519 -2.50897,-2.472939 -1.9,-3.466667 0.35063,-0.05103 0.72399,-0.354699 1.06666,-0.3 z m 42.8,11.166667 c -1.73875,1.086025 2.33789,1.138186 3.27372,1.439238 1.30579,0.375237 4.48185,-0.551342 2.02628,-1.672572 -1.83243,-0.401834 -3.50784,-0.360679 -5.3,0.233334 z M 128.86667,73.8 c -2.17346,1.397366 -0.18414,3.053084 1.5865,1.699463 2.04828,-0.249261 2.08866,-2.343116 -0.17211,-2.051831 -0.54677,-0.07524 -0.99718,-0.0549 -1.41439,0.352368 z m 44.76666,1.133333 c 2.4133,2.30436 1.83777,-1.778179 0,-0.492892 0,0.102368 0,0.430964 0,0.492892 z"
+ id="path1295"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient36629);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 146.4,11 c -2.85517,0.532698 -4.88261,2.920832 -7.04143,4.696624 -9.46036,9.318687 -18.69953,18.903094 -28.02524,28.336709 -1.28513,2.140689 -2.02923,4.453081 -2.46666,6.9 4.02374,2.003945 8.08967,3.86007 12.47179,4.935568 1.05804,0.665393 4.69014,0.890135 3.49487,2.397766 -2.29866,1.221998 -5.17006,2.048868 -6.16666,4.733333 1.94556,3.411999 6.27529,3.61226 9.48467,5.236915 2.69399,1.065471 5.388,2.130945 8.08199,3.196418 0.0835,2.815831 -0.6308,1.873266 -2.05017,0.611648 -2.17089,-1.1027 -5.39205,-2.114404 -7.09766,0.274746 -1.55046,0.944625 -2.75719,3.349765 -1.57432,4.866099 2.21286,2.398176 6.00771,1.27668 8.06067,-0.779037 0.17795,-0.191378 -0.29693,2.877758 1.42073,3.193938 2.34275,1.346613 5.33929,0.970157 7.67409,2.299273 0.45283,1.979683 1.2508,4.221333 3.5739,4.531638 3.66844,1.48315 7.80683,0.39212 11.09794,-1.541311 1.39792,-0.760174 4.07797,-1.323747 3.46357,-3.423687 -0.0478,-1.38074 -3.42818,-2.212653 -1.53541,-3.499973 4.53006,-2.016167 9.17312,-4.142848 12.66666,-7.733334 0.85723,-2.253596 -2.25712,-3.193724 -3.46666,-4.566666 -1.4517,-1.221069 -3.87877,-2.524433 -0.81856,-3.364818 5.62839,-2.111859 11.87228,-2.940184 17.03456,-6.263438 2.72995,-0.86584 3.85371,-3.957742 3.06767,-6.564064 -0.0255,-2.62475 -1.76154,-4.797622 -3.22224,-6.835657 C 179.45289,36.856816 173.58197,31.828345 168.24204,26.291461 163.60188,21.818095 159.14228,17.065484 154.39198,12.762657 151.99166,11.220691 149.22884,10.717147 146.4,11 Z m 3.36667,6.733333 c 4.24058,2.976224 8.38139,6.129328 12.6,9.166667 -1.29937,-0.797366 -2.67486,-1.290978 -4.2,-1.4 -0.21287,1.824575 -0.47054,3.643999 -0.7,5.466667 -1.97534,-0.587625 -4.21204,-1.778592 -5.97773,-0.09263 -1.30676,0.402533 -3.52226,3.290581 -4.25972,2.135968 -0.99915,-3.447628 -1.99405,-6.896491 -2.99589,-10.343339 -1.52265,3.539479 -3.02044,7.089652 -4.53333,10.633333 -2.56667,0.255555 -5.13333,0.511111 -7.7,0.766667 -0.0148,-3.662276 2.83591,-6.395601 5.07235,-8.959274 3.30461,-2.837611 6.75708,-5.60858 10.52338,-7.756865 0.7316,-0.360909 1.44586,0.250944 2.17094,0.382806 z m 26.36666,48.333334 C 174.87994,66.86218 172.84987,68.441375 174.2,70 c 2.62772,1.71982 5.90645,1.835937 8.93343,1.934762 2.25075,-0.06272 4.4688,-2.726652 2.93663,-4.770688 -1.42803,-2.456455 -4.67977,-1.908377 -7.06627,-1.883005 -0.95681,0.261868 -1.91364,0.523732 -2.87046,0.785598 z m -3.3,5.433333 c -1.27562,1.033534 -1.85687,2.841465 -1.35231,4.508785 0.43077,1.899535 2.6256,2.385569 4.29198,1.849858 2.50838,0.201444 3.52565,-3.378484 1.43654,-4.628378 -1.24197,-1.050288 -2.64377,-2.095016 -4.37621,-1.730265 z"
+ id="path1300"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient36631);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 146,10.2 c -5.57009,2.353735 -9.31153,7.276932 -13.56394,11.364379 -7.26121,7.360863 -14.57305,14.685571 -21.80273,22.068954 -0.92375,2.588329 -1.83526,5.181133 -2.76666,7.766667 5.12606,2.235525 10.28103,4.361596 15.6,6.1 -0.32712,1.554459 -2.93579,1.371077 -3.74338,2.860476 -1.43416,0.914482 -2.37188,3.411157 -0.36803,4.245199 3.1673,2.975582 7.51398,4.048213 11.44474,5.660992 -3.09041,-0.89746 -5.13867,2.363507 -6.33333,4.666666 -0.72155,2.880448 2.58866,4.694489 5.06851,4.276737 1.54135,0.553684 3.66,-2.522746 3.86807,-0.13866 2.29497,2.607941 6.70581,1.993255 9.10076,4.436609 0.7749,2.147771 2.55461,3.943898 4.94541,3.965707 2.15881,0.621481 4.27216,0.328386 6.35476,-0.418515 2.43249,-0.54992 4.74804,-1.764623 6.87594,-2.976017 1.61013,-1.140622 1.25617,-3.709454 -0.21345,-4.812527 -0.21701,-1.714746 2.45466,-1.738353 3.54015,-2.659077 2.92458,-1.339302 5.49291,-3.216603 7.95985,-5.240923 -1.09048,1.568168 -1.50221,3.637034 -0.89348,5.420276 1.02957,2.431889 4.09705,1.779572 6.16014,1.64639 C 179.29546,77.451445 180.09314,74.273508 178,72.9 c -3.03927,-1.879702 -0.42819,-1.002977 1.49692,-0.460891 2.38484,0.141742 5.36949,0.891675 6.99369,-1.418947 1.80089,-1.737129 0.66941,-4.475043 -1.05728,-5.820162 -2.14881,-1.14371 -4.72742,-0.810973 -7.057,-0.699886 -2.09119,0.370608 -3.67839,1.613047 -4.97633,3.233219 -1.58756,1.272788 1.82748,3.61782 -0.0532,3.147933 -1.36163,0.234395 0.30799,-2.483632 -1.32358,-3.36862 -1.06348,-1.560896 -2.85826,-2.534055 -4.1899,-3.879313 6.43141,-3.110773 13.94477,-3.952924 19.7,-8.433333 2.10991,-2.5028 1.15052,-5.815831 0.53333,-8.666667 C 184.23156,39.549156 177.84192,34.54079 172.35319,28.898191 166.50884,23.205036 160.69939,17.462459 154.83333,11.8 152.27799,10.77259 149.66457,10.063772 146.88646,10.206305 146.60075,10.233991 146.27214,10.101959 146,10.2 Z m 7.6,11.266667 c 1.51374,1.165288 3.04586,2.309495 4.56667,3.466666 -1.39718,1.06872 -0.90296,3.127104 -1.4,4.633334 -2.08576,-0.566112 -4.35694,-0.641822 -6.05767,0.905733 -1.05102,0.888519 -3.01815,1.872214 -3.17799,-0.196242 -0.93874,-3.234383 -1.83,-6.48501 -2.79768,-9.709491 1.63294,-0.494373 3.30094,-3.132711 4.90134,-1.63781 1.32178,0.845937 2.64355,1.691873 3.96533,2.53781 z m -14.36667,10.966666 c -1.96666,0.2 -3.93333,0.4 -5.9,0.6 0.75323,-3.751583 3.85837,-6.37712 6.49928,-8.892012 1.44608,-1.049755 2.80293,-2.240606 4.30072,-3.207988 -1.63333,3.833334 -3.26666,7.666667 -4.9,11.5 z"
+ id="path1304"
+ inkscape:connector-curvature="0" />
+ </g>
+ <path
+ style="fill:url(#linearGradient1322);fill-rule:evenodd;stroke-width:1.30175579pt"
+ d="m 80.606138,21.093974 c -3.986404,2e-6 -7.999981,1.500815 -11.054664,4.555494 L 15.31073,79.950952 c -2.994002,2.993929 -4.556718,6.904836 -4.616235,10.811705 -8.35e-4,0.06557 0,0.177392 0,0.24296 h 0.12148 c 1.039149,3.953694 27.860205,8.970154 30.855878,11.965763 4.524006,4.52404 -17.340071,7.86688 -12.816122,12.39094 4.523986,4.52399 27.364021,8.71724 31.888455,13.2413 4.524026,4.52402 -9.261778,9.3247 -4.737714,13.8487 4.524006,4.52407 19.69882,-1.11018 16.946437,10.69023 6.109347,6.10935 18.859073,3.19383 27.393701,-2.91552 4.52401,-4.524 -8.654358,-4.10106 -4.130314,-8.62506 4.524004,-4.52406 15.949294,-4.54533 25.571504,-15.3672 -3.87306,-6.02355 -16.55055,-8.59578 -12.0265,-13.11982 4.524,-4.524 13.27486,-2.25385 32.25288,-10.87245 9.26429,-4.207497 8.53905,-7.362324 8.50359,-11.236883 -7.4e-4,-0.08153 0,-0.160805 0,-0.24296 h -0.0608 c -0.0595,-3.906866 -1.56157,-7.817769 -4.55549,-10.811705 L 91.600063,25.649468 C 88.5454,22.594793 84.592543,21.093974 80.606138,21.093974 Z M 56.553132,105.76542 c 8.084647,2.09667 17.079247,4.81 24.295966,4.85919 l 0.3037,3.27996 c -6.179767,-0.63701 -19.269208,-3.64874 -22.352289,-5.22364 z m 84.246258,14.39535 c -1.23415,-0.0395 -2.40206,0.0842 -3.27996,0.3037 -1.65516,0.41359 -9.69592,0.60412 -9.05025,5.7703 7.10376,2.58184 18.08512,4.55915 19.37604,-0.6074 0.96897,-3.87387 -3.34345,-5.34795 -7.04583,-5.4666 z m -92.871326,10.50801 c -1.117595,-0.13024 -2.210972,0.008 -3.279956,0.54666 -4.274826,2.15631 -7.152149,6.94739 -3.158474,8.92877 3.99408,1.98139 6.824425,-0.27467 10.325785,-2.7333 3.501767,-2.45822 3.411658,-2.93897 3.158475,-3.88735 -0.484734,0.12928 -3.693025,-2.46403 -7.04583,-2.85478 z m 78.111516,0.85036 c -3.22891,1.29126 -3.19098,5.77708 -0.60739,7.71397 2.58293,1.93728 5.81565,0.68424 7.10657,-0.6074 1.29198,-1.29126 -0.042,-5.81528 -6.49918,-7.10657 z"
+ id="path1217"
+ sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient1231);fill-rule:evenodd;stroke-width:1.30175579pt"
+ d="m 11.977124,84.576671 c -0.883927,1.953959 -1.36513,4.04141 -1.397018,6.134731 -8.33e-4,0.06556 0,0.177399 0,0.24296 h 0.12148 c 0.994358,3.78327 25.07956,8.512878 29.823299,11.540588 2.091809,-1.24429 3.465756,-2.547484 2.065157,-3.948099 C 39.594368,95.551236 12.773315,90.53478 11.734165,86.581087 h -0.12148 c 0,-0.06558 -8.33e-4,-0.177399 0,-0.242958 0.0091,-0.601939 0.284168,-1.162709 0.364439,-1.761458 z M 150.34262,92.47286 c -1.0612,1.680115 -3.10061,3.387829 -7.41026,5.345111 -18.97801,8.618589 -27.72886,6.348449 -32.25287,10.872439 -1.37053,1.37052 -0.88153,2.54264 0.18222,3.70513 4.78924,-3.38639 13.4115,-2.19944 31.03808,-10.20429 8.00504,-3.635614 8.46503,-6.511246 8.44283,-9.71839 z m -92.871299,8.86803 2.247377,2.9155 c 3.08308,1.57491 16.17252,4.58665 22.352289,5.22364 l -0.303699,-3.27996 c -7.216719,-0.0492 -16.21132,-2.7625 -24.295967,-4.85918 z M 30.685018,111.4237 c -2.022925,1.2244 -3.320206,2.51079 -1.943676,3.88736 4.523988,4.52399 27.364021,8.71723 31.888455,13.2413 0.198962,0.19895 0.17245,0.40741 0.3037,0.6074 1.405197,-1.67236 2.355425,-3.35413 0.728879,-4.98067 -4.359755,-4.3594 -25.379991,-8.41841 -30.977358,-12.75539 z m 100.220842,10.75097 c -1.55381,0.80713 -2.80902,1.9449 -2.55108,4.00882 7.10375,2.58184 18.08511,4.55915 19.37603,-0.60738 0.25122,-1.00435 0.11312,-1.85114 -0.24296,-2.55108 -3.06888,2.47706 -10.66085,1.09402 -16.58199,-0.85036 z m -11.17612,2.18664 c -8.90094,7.91694 -18.52655,8.74738 -22.595255,12.81612 -1.63664,1.63663 -0.713263,2.53048 0.6074,3.34069 5.191475,-3.47749 15.190165,-4.50342 23.931535,-14.33463 -0.44804,-0.69679 -1.30027,-1.20938 -1.94368,-1.82218 z m 5.0414,8.01767 c -1.86829,1.81567 -1.62997,5.17107 0.54666,6.80287 2.58292,1.93727 5.81565,0.68422 7.10656,-0.6074 0.66392,-0.66356 0.57592,-2.15087 -0.48592,-3.6444 -1.57518,0.81115 -3.6457,1.33536 -5.58806,-0.12148 -0.82081,-0.61535 -1.29544,-1.48388 -1.57924,-2.42959 z m -71.612353,0.24296 c -0.216533,0.15768 -0.17254,0.18708 -0.42518,0.36444 -3.501359,2.45861 -6.331704,4.7147 -10.325785,2.73329 -0.835138,-0.41433 -1.173493,-1.0297 -1.457758,-1.63998 -1.775949,2.19005 -2.210285,4.70572 0.425179,6.01325 3.994085,1.98138 6.824427,-0.27468 10.325787,-2.73329 3.50177,-2.45823 3.411658,-2.93899 3.158475,-3.88735 -0.166315,0.0444 -0.997334,-0.45265 -1.700718,-0.85036 z m 3.462175,4.79845 c -1.405193,1.67235 -2.355439,3.35411 -0.728879,4.98066 4.524009,4.52407 19.69882,-1.11019 16.946437,10.69022 6.109348,6.10935 18.859078,3.19384 27.39371,-2.91551 1.66654,-1.66656 0.69997,-2.58291 -0.668148,-3.40144 -8.458362,5.3473 -19.957869,7.67884 -25.692984,1.94368 2.752384,-11.8004 -12.422431,-6.16613 -16.946436,-10.69021 -0.198964,-0.19896 -0.172449,-0.40742 -0.3037,-0.6074 z"
+ id="path1269"
+ sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient1272);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.30175579pt"
+ d="m 107.57531,47.365247 32.87711,35.325423 c 0,0 9.7932,10.492701 2.09856,14.68978 -7.69466,4.19708 -31.12834,10.4927 -31.12834,10.4927 L 68.830422,46.540402 Z"
+ id="path1271"
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient1277);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.49509335pt"
+ d="M 56.944037,42.006087 26.165461,77.3315 c 0,0 -11.891721,10.4927 -4.197076,14.689777 7.694644,4.197078 58.409343,21.335153 94.084505,15.039533 L 75.13138,45.853409 Z"
+ id="path1276"
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient1318);fill-rule:evenodd;stroke-width:1.30175579pt"
+ d="m 82.042498,27.12255 c 4.504479,0.03329 23.422692,18.434639 28.837322,22.230809 5.41464,3.796171 4.14478,6.285951 4.14478,6.523269 L 99.839631,48.527099 98.321133,60.006943 89.939024,56.058848 77.062155,64.683915 72.081482,47.67674 65.76453,62.558018 47.967732,64.319476 48.149952,56.423287 74.438456,30.540688 c 1.907291,-1.877842 3.182156,-3.451427 7.604042,-3.418138 z"
+ id="path1317"
+ sodipodi:nodetypes="ccccccccccczz"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Title">
+ <text
+ x="48"
+ y="74.666664"
+ style="font-style:normal;font-weight:normal;font-size:51.20000076px;font-family:Arial;writing-mode:lr-tb;text-anchor:start;display:block;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="text48">
+ <tspan
+ id="tspan49"
+ style="stroke-width:3.20000017pt">Overview</tspan>
+ </text>
+ <text
+ xml:space="preserve"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:34.13333511px;line-height:139.99999762%;font-family:Arial;letter-spacing:0;writing-mode:lr-tb;text-anchor:start;display:block;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ x="46.316666"
+ y="185.39682"
+ id="text1126"><tspan
+ x="46.316666"
+ y="185.39682"
+ sodipodi:role="line"
+ id="tspan1270"
+ style="stroke-width:3.20000017pt">* Current inkscape gui/app architecture</tspan><tspan
+ x="46.316666"
+ y="233.18349"
+ sodipodi:role="line"
+ id="tspan1272"
+ style="stroke-width:3.20000017pt">* Problems with current architecture</tspan><tspan
+ x="46.316666"
+ y="280.97015"
+ sodipodi:role="line"
+ id="tspan1274"
+ style="stroke-width:3.20000017pt" /><tspan
+ x="46.316666"
+ y="328.75684"
+ sodipodi:role="line"
+ id="tspan1276"
+ style="stroke-width:3.20000017pt">* Current inkscape_gtkmm architecture</tspan><tspan
+ x="46.316666"
+ y="376.54349"
+ sodipodi:role="line"
+ id="tspan1278"
+ style="stroke-width:3.20000017pt">* Future capabilities we'd like to support</tspan><tspan
+ x="46.316666"
+ y="424.33017"
+ sodipodi:role="line"
+ id="tspan1280"
+ style="stroke-width:3.20000017pt" /><tspan
+ x="46.316666"
+ y="472.11682"
+ sodipodi:role="line"
+ id="tspan1282"
+ style="stroke-width:3.20000017pt">* Next generation architecture</tspan><tspan
+ x="46.316666"
+ y="519.9035"
+ sodipodi:role="line"
+ id="tspan1284"
+ style="stroke-width:3.20000017pt">* Evolving to next gen inkscape architecture</tspan></text>
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="Drawing Area" />
+</svg>
diff --git a/doc/NewAppArchitecture/03-current.svg b/doc/NewAppArchitecture/03-current.svg
new file mode 100644
index 0000000..cd21f61
--- /dev/null
+++ b/doc/NewAppArchitecture/03-current.svg
@@ -0,0 +1,581 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ sodipodi:docname="03-current.svg"
+ height="480pt"
+ width="640pt"
+ inkscape:version="0.92.0 r15304"
+ sodipodi:version="0.32"
+ id="svg586"
+ version="1.1">
+ <defs
+ id="defs588">
+ <marker
+ style="overflow:visible;"
+ id="TriangleOutL"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ id="path2817"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="TriangleInL"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleInL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ id="path2823"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="Arrow2L"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2L">
+ <path
+ d="M 4.363143,4.732916 -8.456553,0.01878889 4.3631437,-4.6953372 c -2.0480514,2.7832182 -2.0362505,6.5911436 -7e-7,9.4282532 z"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.73333335;stroke-linejoin:round"
+ id="path2863"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <linearGradient
+ id="linearGradient2570">
+ <stop
+ id="stop2571"
+ offset="0.0000000"
+ style="stop-color:#000000;stop-opacity:1.0000000;" />
+ <stop
+ id="stop2572"
+ offset="0.58504134"
+ style="stop-color:#000000;stop-opacity:0.62745100;" />
+ <stop
+ id="stop2573"
+ offset="1.0000000"
+ style="stop-color:#ffffff;stop-opacity:0.0000000;" />
+ </linearGradient>
+ <linearGradient
+ y2="114.57422"
+ x2="53.030737"
+ y1="20.687101"
+ x1="77.599106"
+ id="linearGradient1322"
+ xlink:href="#linearGradient1218"
+ gradientTransform="matrix(1.3228549,0,0,1.2809931,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ y2="58.199241"
+ x2="33.266399"
+ y1="30.563196"
+ x1="59.491886"
+ id="linearGradient1318"
+ xlink:href="#linearGradient1273"
+ gradientTransform="matrix(1.7409899,0,0,0.97333594,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ gradientTransform="scale(1.004208,0.995809)"
+ y2="0.12454049"
+ x2="0.41986585"
+ y1="1.9347328"
+ x1="0.45376351"
+ id="linearGradient1307"
+ xlink:href="#linearGradient1222" />
+ <linearGradient
+ gradientTransform="scale(1.006361,0.993679)"
+ y2="0.11846013"
+ x2="0.41548476"
+ y1="1.9667202"
+ x1="0.45009527"
+ id="linearGradient1306"
+ xlink:href="#linearGradient1222" />
+ <linearGradient
+ gradientTransform="scale(1.002016,0.997989)"
+ y2="0.13959341"
+ x2="0.42603236"
+ y1="1.8676205"
+ x1="0.45839140"
+ id="linearGradient1305"
+ xlink:href="#linearGradient1222" />
+ <linearGradient
+ y2="80.482086"
+ x2="51.413385"
+ y1="119.11808"
+ x1="11.967844"
+ id="linearGradient1277"
+ xlink:href="#linearGradient1273"
+ gradientTransform="matrix(1.8036348,0,0,1.2393329,-37.611189,-4.4599008)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ y2="62.493129"
+ x2="90.28563"
+ y1="45.70058"
+ x1="118.66497"
+ id="linearGradient1272"
+ xlink:href="#linearGradient1273"
+ gradientTransform="matrix(1.4554449,0,0,1.1642956,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient1270"
+ xlink:href="#linearGradient1222" />
+ <linearGradient
+ y2="120.74315"
+ x2="94.698939"
+ y1="120.74315"
+ x1="17.696665"
+ id="linearGradient1231"
+ xlink:href="#linearGradient1323"
+ gradientTransform="matrix(1.8150579,0,0,0.9336165,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ y2="28.120696"
+ x2="130.70353"
+ y1="170.27164"
+ x1="27.318817"
+ id="linearGradient1221"
+ xlink:href="#linearGradient1222"
+ gradientTransform="scale(1.0211162,0.97932047)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient1218">
+ <stop
+ id="stop1219"
+ offset="0.00000000"
+ style="stop-color:#000000;stop-opacity:1.0000000;" />
+ <stop
+ id="stop1321"
+ offset="0.073255815"
+ style="stop-color:#323232;stop-opacity:1.0000000;" />
+ <stop
+ id="stop1320"
+ offset="0.65260679"
+ style="stop-color:#000000;stop-opacity:1.0000000;" />
+ <stop
+ id="stop1220"
+ offset="1"
+ style="stop-color:#fff;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1222">
+ <stop
+ id="stop1223"
+ offset="0.0000000"
+ style="stop-color:#0081ac;stop-opacity:1.0000000;" />
+ <stop
+ id="stop1722"
+ offset="0.50000000"
+ style="stop-color:#006d91;stop-opacity:0.62745100;" />
+ <stop
+ id="stop1224"
+ offset="1.0000000"
+ style="stop-color:#000000;stop-opacity:0.0000000;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1273">
+ <stop
+ id="stop1274"
+ offset="0.00000000"
+ style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+ <stop
+ id="stop1275"
+ offset="1.0000000"
+ style="stop-color:#ffffff;stop-opacity:0.00000000;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1323">
+ <stop
+ id="stop1324"
+ offset="0.00000000"
+ style="stop-color:#000000;stop-opacity:0.77685952;" />
+ <stop
+ id="stop1325"
+ offset="1.0000000"
+ style="stop-color:#000000;stop-opacity:0.00000000;" />
+ </linearGradient>
+ <radialGradient
+ fy="93.75"
+ fx="303.7037"
+ r="248.40302"
+ cy="281.25"
+ cx="296.2963"
+ id="radialGradient829"
+ xlink:href="#linearGradient826"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.29936853,0,0,0.15858773,4.3548661,98.117152)" />
+ <linearGradient
+ id="linearGradient826">
+ <stop
+ id="stop827"
+ offset="0.00000000"
+ style="stop-color:#000000;stop-opacity:0.95294118;" />
+ <stop
+ id="stop830"
+ offset="0.36585677"
+ style="stop-color:#000000;stop-opacity:0.76078433;" />
+ <stop
+ id="stop847"
+ offset="0.47107276"
+ style="stop-color:#000000;stop-opacity:0.52941179;" />
+ <stop
+ id="stop828"
+ offset="1.0000000"
+ style="stop-color:#ffffff;stop-opacity:0.00000000;" />
+ </linearGradient>
+ <linearGradient
+ y2="-1.7333326"
+ x2="0.50000000"
+ y1="0.66667551"
+ x1="0.50000000"
+ id="linearGradient907"
+ xlink:href="#linearGradient909" />
+ <linearGradient
+ id="linearGradient909">
+ <stop
+ id="stop910"
+ offset="0.00000000"
+ style="stop-color:#000000;stop-opacity:0.00000000;" />
+ <stop
+ id="stop913"
+ offset="1.0000000"
+ style="stop-color:#000000;stop-opacity:0.17000000;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1309"
+ xlink:href="#linearGradient1222"
+ gradientTransform="scale(2.8444445,0.4)"
+ x1="0"
+ y1="4.7369516e-15"
+ x2="300"
+ y2="4.7369516e-15"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ y2="1365.4825"
+ x2="64.30938"
+ y1="1365.4825"
+ x1="-0.0028122679"
+ id="linearGradient1308"
+ xlink:href="#linearGradient2570"
+ gradientTransform="scale(13.227991,0.0860129)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient826"
+ id="radialGradient36867"
+ cx="296.2963"
+ cy="281.25"
+ fx="303.7037"
+ fy="93.75"
+ r="248.40302"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4203424,0,0,0.08699077,-33.810677,100.89451)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient36869"
+ x1="33.344169"
+ y1="164.17808"
+ x2="131.82116"
+ y2="28.775105"
+ gradientTransform="scale(1.0839555,1.0496536)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient36871"
+ x1="31.731446"
+ y1="165.85049"
+ x2="131.57971"
+ y2="28.562063"
+ gradientTransform="scale(1.0848907,1.0487488)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient36873"
+ x1="35.171777"
+ y1="162.0032"
+ x2="131.8238"
+ y2="29.109513"
+ gradientTransform="scale(1.0846262,1.0490045)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient36875"
+ x1="37.676606"
+ y1="159.47478"
+ x2="132.33793"
+ y2="29.318235"
+ gradientTransform="scale(1.0823063,1.051253)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient36877"
+ x1="29.920773"
+ y1="167.66146"
+ x2="131.16846"
+ y2="28.448861"
+ gradientTransform="scale(1.0869998,1.0467139)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient36879"
+ x1="27.318817"
+ y1="170.27164"
+ x2="130.70353"
+ y2="28.120696"
+ gradientTransform="scale(1.0891906,1.0446085)"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ inkscape:current-layer="layer2"
+ inkscape:guide-bbox="true"
+ showguides="true"
+ inkscape:window-y="105"
+ inkscape:window-x="410"
+ inkscape:window-height="687"
+ inkscape:window-width="764"
+ inkscape:cy="232.38095"
+ inkscape:cx="348.40278"
+ inkscape:zoom="1.05"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ showgrid="false"
+ inkscape:window-maximized="0" />
+ <metadata
+ id="metadata33">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ style="display:block"
+ inkscape:label="Background"
+ id="layer1"
+ inkscape:groupmode="layer">
+ <rect
+ y="1.8947807e-15"
+ x="0"
+ height="120"
+ width="853.33331"
+ id="topbluebox"
+ style="font-size:12px;fill:url(#linearGradient1309);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.20000017pt" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path654"
+ d="M -0.03652902,117.55657 850.68323,117.34163"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient1308);stroke-width:5.31674433;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <g
+ transform="translate(689.36448,-10.40511)"
+ id="g1085">
+ <g
+ transform="matrix(0.875802,0,0,0.869278,1.1184885,-8.4967275)"
+ id="g1394">
+ <ellipse
+ style="opacity:0.69398911;fill:url(#radialGradient36867);stroke-width:0.84729707;stroke-dashoffset:0"
+ id="path898"
+ cx="92.292046"
+ cy="126.99174"
+ rx="126.10272"
+ ry="26.097233" />
+ <ellipse
+ style="fill:url(#radialGradient829);stroke-width:0.96546245;stroke-dashoffset:0"
+ id="ball1"
+ cx="94.165428"
+ cy="145.69347"
+ rx="89.810562"
+ ry="47.576321" />
+ </g>
+ <g
+ style="fill:url(#linearGradient1221)"
+ transform="matrix(1.822197,0,0,1.662749,-192.00875,13.084299)"
+ id="g1310">
+ <path
+ id="path1278"
+ d="m 148.55614,11.815593 c -2.18769,1e-6 -4.39029,0.823628 -6.06667,2.5 l -29.76666,29.8 c -1.64308,1.643032 -2.50068,3.78929 -2.53334,5.933333 -4.6e-4,0.03598 0,0.09736 0,0.133333 h 0.0667 c 0.57027,2.16974 15.28934,4.922713 16.93333,6.566667 2.48272,2.482738 -9.51602,4.317248 -7.03333,6.8 2.48271,2.482709 15.01704,4.783915 17.5,7.266669 2.48273,2.48272 -5.08275,5.11728 -2.6,7.6 2.48272,2.482753 10.81047,-0.609259 9.3,5.866667 3.35273,3.352736 10.34963,1.752736 15.03333,-1.6 2.48272,-2.482721 -4.74941,-2.250614 -2.26666,-4.733334 2.48272,-2.482752 8.75277,-2.494421 14.03333,-8.433335 -2.12548,-3.305654 -9.08274,-4.717259 -6.6,-7.2 2.48272,-2.482715 7.28509,-1.236886 17.7,-5.966667 5.08413,-2.309024 4.68613,-4.040355 4.66667,-6.166667 -4.1e-4,-0.04475 0,-0.08825 0,-0.133333 h -0.0333 c -0.0326,-2.144041 -0.85698,-4.290298 -2.5,-5.933333 l -29.8,-29.8 c -1.67637,-1.67637 -3.84565,-2.5 -6.03334,-2.5 z m -0.26667,3.866666 c 0.97256,0.02533 1.75986,0.768324 3.3,1.766667 l 14.06667,10.433333 c 0.15408,0.09991 0.29855,0.192996 0.43333,0.3 0.1348,0.10699 0.28452,0.220015 0.4,0.333334 0.11548,0.113111 0.20364,0.248218 0.3,0.366666 0.0961,0.118429 0.18984,0.244093 0.26667,0.366667 0.077,0.122774 0.14229,0.240765 0.2,0.366667 0.0577,0.126131 0.0949,0.238188 0.13333,0.366666 0.0386,0.128282 0.0808,0.270352 0.1,0.4 0.0193,0.12988 0.0333,0.269763 0.0333,0.4 l -8.33333,-4.033333 -0.83334,6.3 -4.6,-2.166667 -7.06666,4.733334 -2.73334,-9.333334 -3.46666,8.166667 -9.76667,0.966667 0.1,-4.333334 c 0,-1.042224 5.64516,-8.329604 9.06666,-10.066666 l 6.26667,-4.5 c 0.92408,-0.599006 1.54979,-0.848535 2.13333,-0.833334 z m -12.93333,42.6 c 4.43676,1.15063 9.37288,2.639674 13.33333,2.666667 l 0.16667,1.8 c -3.39138,-0.349579 -10.57471,-2.002379 -12.26667,-2.866667 z m 46.23333,7.9 c -0.67728,-0.02171 -1.31822,0.0462 -1.8,0.166667 -0.90833,0.226965 -5.321,0.331531 -4.96666,3.166667 3.89845,1.416876 9.92489,2.502007 10.63333,-0.333334 0.53176,-2.12593 -1.83484,-2.93489 -3.86667,-3 z m -50.96666,5.766669 c -0.61333,-0.07148 -1.21336,0.0042 -1.8,0.3 -2.34598,1.183349 -3.92502,3.81264 -1.73334,4.9 2.19191,1.08736 3.74516,-0.150741 5.66667,-1.5 1.92173,-1.349045 1.87228,-1.612875 1.73333,-2.133333 -0.26601,0.07094 -2.02669,-1.352235 -3.86666,-1.566667 z m 42.86666,0.466667 c -1.77199,0.708629 -1.75118,3.170389 -0.33333,4.233333 1.41748,1.063157 3.19156,0.375499 3.9,-0.333333 0.70902,-0.70863 -0.023,-3.19136 -3.56667,-3.9 z"
+ style="fill:url(#linearGradient36869);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path1283"
+ d="m 147.16667,11.433333 c -3.48238,0.364902 -5.88303,3.345755 -8.33158,5.570373 -8.94544,9.133798 -18.09349,18.101949 -26.95799,27.294024 -1.44334,1.84378 -2.03035,4.015468 -2.31043,6.30227 5.03542,3.678658 11.71157,3.699536 17.06666,6.766667 -1.50817,2.381747 -5.17846,2.289571 -6.84097,4.663825 -1.44519,0.973702 0.60698,2.569614 1.6838,2.93719 4.47582,2.259905 9.5207,3.127075 13.9674,5.505719 2.30619,0.164974 2.15073,2.483836 0.6201,3.623175 -1.21232,1.221254 -3.08705,3.249751 -1.23288,4.771441 2.26675,1.575369 5.27199,1.144095 7.80255,2.065316 1.77826,0.975122 0.51639,2.738136 1.73334,3.966667 3.05603,2.396513 7.28787,1.973693 10.69445,0.606201 1.75151,-0.515126 3.34201,-1.653286 4.87221,-2.539534 1.47613,-1.720326 -0.82595,-2.9513 -2.13333,-3.666667 -0.85913,-1.425274 2.00009,-1.997097 2.97462,-2.675578 3.73665,-1.514529 7.36553,-3.267329 10.23683,-6.143331 1.79011,-1.105032 -0.83882,-2.676851 -1.67812,-3.547758 -1.55141,-1.15048 -3.58938,-1.860548 -4.56666,-3.633333 2.52043,-2.7807 6.7319,-2.262194 9.98204,-3.687561 3.90317,-0.992642 7.61596,-2.729652 11.05532,-4.741974 2.26951,-1.69135 1.67257,-4.636557 1.22998,-7.021773 -1.61839,-5.025589 -6.41885,-8.01283 -9.81146,-11.814386 -7.61983,-7.514247 -15.1255,-15.17228 -22.81612,-22.597384 -2.05244,-1.578655 -4.64151,-2.423668 -7.23976,-2.003589 z M 149.5,16.766667 c 5.52064,4.046284 11.05387,8.077891 16.56667,12.133333 0.11539,1.103552 -2.90244,-1.172627 -4.0558,-1.481882 -1.41219,-0.420198 -3.8964,-2.894916 -3.5025,0.03341 -0.60562,1.192982 0.31151,5.203671 -1.4377,4.28052 -1.58183,-0.849857 -3.68447,-2.113891 -5.18058,-0.378679 -1.61892,1.082213 -3.23783,2.164425 -4.85676,3.246637 -0.9783,-3.377623 -1.95211,-6.756554 -2.93333,-10.133333 -1.34602,3.127884 -2.66477,6.267483 -4,9.4 -2.92222,0.288888 -5.84445,0.577778 -8.76667,0.866667 -0.20184,-2.166309 0.27133,-4.341771 1.77562,-5.878158 3.25057,-5.211552 8.66632,-8.395371 13.54451,-11.865011 0.95273,-0.564092 1.80847,-0.493262 2.84654,-0.223498 z m -8.63333,43.566666 c 2.34366,0.607254 4.78296,0.727797 7.16666,1.133334 -0.90625,1.084587 -3.14277,-0.32439 -4.56523,-0.371058 -1.8583,-0.406252 -3.7163,-0.80007 -5.4681,-1.562276 0.95555,0.266667 1.91111,0.533334 2.86667,0.8 z m 38.86666,5.4 c -2.15488,0.501536 -5.22675,0.793815 -5.5,3.566667 0.70833,1.029809 2.96093,1.412478 4.40801,1.688268 2.27503,0.363118 5.38493,1.181831 6.97878,-0.937576 1.36135,-1.898234 -0.67459,-4.313995 -2.78769,-4.178768 -1.02575,-0.350017 -2.04343,-0.268702 -3.0991,-0.138591 z m -51.03333,5.9 c -1.57612,1.085018 -3.71575,2.720281 -3.03333,4.9 1.61184,2.339234 4.94529,1.683368 6.78753,-0.0057 1.2184,-0.692559 3.25469,-2.021692 2.31247,-3.560997 -1.93436,-0.840999 -3.87915,-2.117169 -6.06667,-1.333334 z m 44.36667,0.333334 c -1.34895,0.891833 -1.89168,2.759628 -0.95675,4.109348 0.71622,1.795233 3.11379,1.982508 4.57991,1.004604 1.95986,-0.600235 1.10016,-3.109938 -0.33003,-3.844913 -0.72045,-0.899439 -2.36482,-1.335642 -3.29313,-1.269039 z"
+ style="fill:url(#linearGradient36871);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path1286"
+ d="m 146.23333,12.866667 c -3.88385,1.702193 -6.61189,5.324961 -9.67052,8.210746 -7.86956,8.018198 -15.90416,15.90198 -23.69161,23.983409 -1.11331,1.428597 -1.72615,3.060044 -2.00453,4.839178 4.36,3.072638 10.04495,3.23545 14.7573,5.603266 1.5625,0.15548 3.26141,1.73801 1.81635,3.072207 -1.86501,1.91956 -5.15011,2.084779 -6.70699,4.291194 4.05269,2.923397 9.10625,3.602288 13.58014,5.613093 1.52915,1.119169 4.28812,1.21833 4.3532,3.553573 -0.41298,2.06712 -2.47344,3.267809 -3.36667,5.133334 1.94434,2.744072 5.94438,1.261888 8.50547,3.040805 1.3908,0.857738 1.00828,2.693049 1.62108,3.831047 3.2048,2.344549 7.71164,1.319869 10.94656,-0.558135 1.04365,-0.353733 3.89943,-1.626855 1.76272,-2.556043 -1.55651,-0.349067 -2.86028,-2.213166 -1.35103,-3.402938 3.84858,-2.931245 9.10998,-3.601158 12.55258,-7.214396 1.79927,-1.361045 -1.31628,-2.560541 -2.24828,-3.336495 -1.41778,-1.044797 -3.86698,-2.048091 -3.55577,-4.137179 2.35965,-3.274836 6.88107,-2.833411 10.31383,-4.263585 3.90311,-0.957377 7.67689,-2.630842 11.10878,-4.611597 2.18816,-1.940094 1.07405,-5.046756 0.32835,-7.371909 -3.93266,-5.513287 -9.35396,-9.75581 -13.9708,-14.686024 -5.91778,-5.783657 -11.65452,-11.813723 -17.68454,-17.444607 -2.14828,-1.370565 -4.63208,-2.556154 -7.20805,-1.62333 z m 2.3,2.233333 c 5.45973,2.578599 9.80753,6.890051 14.73244,10.347527 1.85084,1.664819 5.00363,2.778901 4.9009,5.71914 -1.78479,0.428996 -3.34725,-1.396857 -5.04898,-1.86837 -1.54021,-0.520034 -4.1213,-2.963549 -3.68846,0.16232 -0.54825,1.127161 0.22527,4.775461 -1.23798,4.170178 -1.53672,-0.653008 -3.2567,-1.905943 -4.87859,-1.758173 -2.31413,1.577535 -4.63724,3.142054 -6.94599,4.727378 -0.87266,-2.83558 -1.68407,-5.690403 -2.53334,-8.533333 -1.12707,2.260756 -1.98302,4.959333 -3.26666,6.966666 -3.47777,0.344565 -6.95563,0.688221 -10.43334,1.033334 0.0287,-2.531437 -0.43925,-5.398577 1.54821,-7.372648 3.13073,-5.303181 8.62883,-8.494145 13.35179,-12.127352 1.15867,-0.426692 2.35212,-1.253526 3.5,-1.466667 z m -13.76666,42.4 c 4.77393,1.272573 9.58904,2.318786 14.5,2.9 0.93608,1.872033 -0.34236,3.482335 -2.33168,2.565935 -3.62332,-0.734316 -7.25018,-1.727438 -10.80166,-2.699268 -0.26564,-0.514085 -3.09159,-3.378118 -1.36666,-2.766667 z m 45.16666,9.433333 c -1.51493,0.422114 -3.72691,0.290818 -4.26666,2.133334 2.90995,0.556827 6.05202,2.002088 8.9,0.466666 0.978,-1.977585 -1.92783,-2.538134 -3.31385,-2.645499 -0.43983,0.01517 -0.87966,0.03034 -1.31949,0.0455 z m -50.9,5.866667 c -1.16024,0.90047 -3.46737,3.083937 -1.02728,3.858837 2.25255,0.543858 3.96147,-1.380385 5.62728,-2.558837 -1.18522,-1.161836 -2.98479,-1.601218 -4.6,-1.3 z m 44.03334,0.733333 c -1.04902,2.027564 1.90687,4.021482 3.28133,2.230908 0.70415,-1.13156 -2.36473,-3.118333 -3.28133,-2.230908 z"
+ style="fill:url(#linearGradient36873);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path1295"
+ d="m 146.66667,13.4 c -6.33172,3.543401 -10.68888,9.547281 -15.90063,14.447274 -5.8861,6.073656 -12.00588,11.974663 -17.74737,18.155152 -0.7305,1.178656 -2.18908,3.828459 -0.0714,4.248788 4.9013,2.576465 10.86092,2.972757 15.3194,6.215453 1.00861,2.475215 -2.05916,3.484953 -3.70454,4.477414 -1.7373,0.545523 -3.75405,2.175563 -0.84454,2.774326 4.83335,2.60598 10.58594,3.28132 15.01575,6.64826 1.43136,2.33294 -1.26292,4.394234 -2.23809,6.238069 0.0119,1.908953 2.8242,1.486185 4.14874,2.002826 2.29679,0.177914 4.75661,1.464231 4.98406,3.992952 0.7695,2.00242 3.5144,2.068656 5.37195,2.066153 2.47607,-0.312856 4.61313,-1.6278 6.86667,-2.6 -0.11425,-1.550102 -2.69456,-1.700315 -2.36667,-3.6 1.99363,-3.193298 6.06476,-3.869656 9.11608,-5.707796 1.73236,-0.750835 3.28599,-1.893245 4.45059,-3.392204 -1.92497,-2.280272 -5.74204,-3.012313 -6.11314,-6.406102 0.39022,-1.188208 2.2736,-2.314015 3.60639,-2.891301 5.6785,-2.143002 11.88985,-2.970298 17.10185,-6.270592 2.74324,-1.108432 1.83527,-4.538836 1.0317,-6.686009 -2.29624,-3.22589 -5.40132,-6.000174 -8.00828,-9.052576 -2.68656,-2.760044 -5.48876,-5.408427 -8.21852,-8.126754 1.12365,1.634362 -0.99109,2.422313 -2.21269,1.401868 -2.03118,-0.886068 -4.05629,-1.760173 -6.12064,-2.568534 C 160.05314,30.54272 159.67649,32.269964 159.3,34 c -2.55377,0.684822 -5.03322,-2.683187 -7.35336,-0.501311 -1.91379,1.060257 -3.40719,2.847058 -5.45058,3.513153 -1.46281,-0.265507 -1.26699,-3.243895 -2.01992,-4.618246 -0.44179,-3.083731 -1.2118,-2.404985 -2.14312,0.123134 -0.85365,1.59882 -1.21984,3.834303 -3.53335,3.298267 -3.08878,0.306225 -6.17762,0.611598 -9.26633,0.918336 0.0202,-3.177717 -0.28551,-6.766 2.22768,-9.171123 3.51639,-4.960964 8.70856,-8.341185 13.55479,-11.782731 1.62219,-0.752906 3.63701,-1.872712 5.13828,-0.273654 3.97373,2.727514 8.02021,5.285521 11.74591,8.327508 -3.19568,-3.018643 -6.19482,-6.317986 -9.51099,-9.164539 -1.87897,-0.938934 -3.8675,-2.092901 -6.02238,-1.268794 z m -11.83334,43.5 c 5.00075,0.984495 9.99566,2.003225 15,2.966667 0.20732,1.45664 0.46427,3.886308 -1.67313,3.831478 -4.16789,-0.795987 -8.38205,-1.956384 -12.49353,-3.031478 -0.61549,-0.980519 -2.50897,-2.472939 -1.9,-3.466667 0.35063,-0.05103 0.72399,-0.354699 1.06666,-0.3 z m 42.8,11.166667 c -1.73875,1.086025 2.33789,1.138186 3.27372,1.439238 1.30579,0.375237 4.48185,-0.551342 2.02628,-1.672572 -1.83243,-0.401834 -3.50784,-0.360679 -5.3,0.233334 z M 128.86667,73.8 c -2.17346,1.397366 -0.18414,3.053084 1.5865,1.699463 2.04828,-0.249261 2.08866,-2.343116 -0.17211,-2.051831 -0.54677,-0.07524 -0.99718,-0.0549 -1.41439,0.352368 z m 44.76666,1.133333 c 2.4133,2.30436 1.83777,-1.778179 0,-0.492892 0,0.102368 0,0.430964 0,0.492892 z"
+ style="fill:url(#linearGradient36875);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path1300"
+ d="m 146.4,11 c -2.85517,0.532698 -4.88261,2.920832 -7.04143,4.696624 -9.46036,9.318687 -18.69953,18.903094 -28.02524,28.336709 -1.28513,2.140689 -2.02923,4.453081 -2.46666,6.9 4.02374,2.003945 8.08967,3.86007 12.47179,4.935568 1.05804,0.665393 4.69014,0.890135 3.49487,2.397766 -2.29866,1.221998 -5.17006,2.048868 -6.16666,4.733333 1.94556,3.411999 6.27529,3.61226 9.48467,5.236915 2.69399,1.065471 5.388,2.130945 8.08199,3.196418 0.0835,2.815831 -0.6308,1.873266 -2.05017,0.611648 -2.17089,-1.1027 -5.39205,-2.114404 -7.09766,0.274746 -1.55046,0.944625 -2.75719,3.349765 -1.57432,4.866099 2.21286,2.398176 6.00771,1.27668 8.06067,-0.779037 0.17795,-0.191378 -0.29693,2.877758 1.42073,3.193938 2.34275,1.346613 5.33929,0.970157 7.67409,2.299273 0.45283,1.979683 1.2508,4.221333 3.5739,4.531638 3.66844,1.48315 7.80683,0.39212 11.09794,-1.541311 1.39792,-0.760174 4.07797,-1.323747 3.46357,-3.423687 -0.0478,-1.38074 -3.42818,-2.212653 -1.53541,-3.499973 4.53006,-2.016167 9.17312,-4.142848 12.66666,-7.733334 0.85723,-2.253596 -2.25712,-3.193724 -3.46666,-4.566666 -1.4517,-1.221069 -3.87877,-2.524433 -0.81856,-3.364818 5.62839,-2.111859 11.87228,-2.940184 17.03456,-6.263438 2.72995,-0.86584 3.85371,-3.957742 3.06767,-6.564064 -0.0255,-2.62475 -1.76154,-4.797622 -3.22224,-6.835657 C 179.45289,36.856816 173.58197,31.828345 168.24204,26.291461 163.60188,21.818095 159.14228,17.065484 154.39198,12.762657 151.99166,11.220691 149.22884,10.717147 146.4,11 Z m 3.36667,6.733333 c 4.24058,2.976224 8.38139,6.129328 12.6,9.166667 -1.29937,-0.797366 -2.67486,-1.290978 -4.2,-1.4 -0.21287,1.824575 -0.47054,3.643999 -0.7,5.466667 -1.97534,-0.587625 -4.21204,-1.778592 -5.97773,-0.09263 -1.30676,0.402533 -3.52226,3.290581 -4.25972,2.135968 -0.99915,-3.447628 -1.99405,-6.896491 -2.99589,-10.343339 -1.52265,3.539479 -3.02044,7.089652 -4.53333,10.633333 -2.56667,0.255555 -5.13333,0.511111 -7.7,0.766667 -0.0148,-3.662276 2.83591,-6.395601 5.07235,-8.959274 3.30461,-2.837611 6.75708,-5.60858 10.52338,-7.756865 0.7316,-0.360909 1.44586,0.250944 2.17094,0.382806 z m 26.36666,48.333334 C 174.87994,66.86218 172.84987,68.441375 174.2,70 c 2.62772,1.71982 5.90645,1.835937 8.93343,1.934762 2.25075,-0.06272 4.4688,-2.726652 2.93663,-4.770688 -1.42803,-2.456455 -4.67977,-1.908377 -7.06627,-1.883005 -0.95681,0.261868 -1.91364,0.523732 -2.87046,0.785598 z m -3.3,5.433333 c -1.27562,1.033534 -1.85687,2.841465 -1.35231,4.508785 0.43077,1.899535 2.6256,2.385569 4.29198,1.849858 2.50838,0.201444 3.52565,-3.378484 1.43654,-4.628378 -1.24197,-1.050288 -2.64377,-2.095016 -4.37621,-1.730265 z"
+ style="fill:url(#linearGradient36877);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path1304"
+ d="m 146,10.2 c -5.57009,2.353735 -9.31153,7.276932 -13.56394,11.364379 -7.26121,7.360863 -14.57305,14.685571 -21.80273,22.068954 -0.92375,2.588329 -1.83526,5.181133 -2.76666,7.766667 5.12606,2.235525 10.28103,4.361596 15.6,6.1 -0.32712,1.554459 -2.93579,1.371077 -3.74338,2.860476 -1.43416,0.914482 -2.37188,3.411157 -0.36803,4.245199 3.1673,2.975582 7.51398,4.048213 11.44474,5.660992 -3.09041,-0.89746 -5.13867,2.363507 -6.33333,4.666666 -0.72155,2.880448 2.58866,4.694489 5.06851,4.276737 1.54135,0.553684 3.66,-2.522746 3.86807,-0.13866 2.29497,2.607941 6.70581,1.993255 9.10076,4.436609 0.7749,2.147771 2.55461,3.943898 4.94541,3.965707 2.15881,0.621481 4.27216,0.328386 6.35476,-0.418515 2.43249,-0.54992 4.74804,-1.764623 6.87594,-2.976017 1.61013,-1.140622 1.25617,-3.709454 -0.21345,-4.812527 -0.21701,-1.714746 2.45466,-1.738353 3.54015,-2.659077 2.92458,-1.339302 5.49291,-3.216603 7.95985,-5.240923 -1.09048,1.568168 -1.50221,3.637034 -0.89348,5.420276 1.02957,2.431889 4.09705,1.779572 6.16014,1.64639 C 179.29546,77.451445 180.09314,74.273508 178,72.9 c -3.03927,-1.879702 -0.42819,-1.002977 1.49692,-0.460891 2.38484,0.141742 5.36949,0.891675 6.99369,-1.418947 1.80089,-1.737129 0.66941,-4.475043 -1.05728,-5.820162 -2.14881,-1.14371 -4.72742,-0.810973 -7.057,-0.699886 -2.09119,0.370608 -3.67839,1.613047 -4.97633,3.233219 -1.58756,1.272788 1.82748,3.61782 -0.0532,3.147933 -1.36163,0.234395 0.30799,-2.483632 -1.32358,-3.36862 -1.06348,-1.560896 -2.85826,-2.534055 -4.1899,-3.879313 6.43141,-3.110773 13.94477,-3.952924 19.7,-8.433333 2.10991,-2.5028 1.15052,-5.815831 0.53333,-8.666667 C 184.23156,39.549156 177.84192,34.54079 172.35319,28.898191 166.50884,23.205036 160.69939,17.462459 154.83333,11.8 152.27799,10.77259 149.66457,10.063772 146.88646,10.206305 146.60075,10.233991 146.27214,10.101959 146,10.2 Z m 7.6,11.266667 c 1.51374,1.165288 3.04586,2.309495 4.56667,3.466666 -1.39718,1.06872 -0.90296,3.127104 -1.4,4.633334 -2.08576,-0.566112 -4.35694,-0.641822 -6.05767,0.905733 -1.05102,0.888519 -3.01815,1.872214 -3.17799,-0.196242 -0.93874,-3.234383 -1.83,-6.48501 -2.79768,-9.709491 1.63294,-0.494373 3.30094,-3.132711 4.90134,-1.63781 1.32178,0.845937 2.64355,1.691873 3.96533,2.53781 z m -14.36667,10.966666 c -1.96666,0.2 -3.93333,0.4 -5.9,0.6 0.75323,-3.751583 3.85837,-6.37712 6.49928,-8.892012 1.44608,-1.049755 2.80293,-2.240606 4.30072,-3.207988 -1.63333,3.833334 -3.26666,7.666667 -4.9,11.5 z"
+ style="fill:url(#linearGradient36879);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ inkscape:connector-curvature="0" />
+ </g>
+ <path
+ sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccc"
+ id="path1217"
+ d="m 80.606138,21.093974 c -3.986404,2e-6 -7.999981,1.500815 -11.054664,4.555494 L 15.31073,79.950952 c -2.994002,2.993929 -4.556718,6.904836 -4.616235,10.811705 -8.35e-4,0.06557 0,0.177392 0,0.24296 h 0.12148 c 1.039149,3.953694 27.860205,8.970154 30.855878,11.965763 4.524006,4.52404 -17.340071,7.86688 -12.816122,12.39094 4.523986,4.52399 27.364021,8.71724 31.888455,13.2413 4.524026,4.52402 -9.261778,9.3247 -4.737714,13.8487 4.524006,4.52407 19.69882,-1.11018 16.946437,10.69023 6.109347,6.10935 18.859073,3.19383 27.393701,-2.91552 4.52401,-4.524 -8.654358,-4.10106 -4.130314,-8.62506 4.524004,-4.52406 15.949294,-4.54533 25.571504,-15.3672 -3.87306,-6.02355 -16.55055,-8.59578 -12.0265,-13.11982 4.524,-4.524 13.27486,-2.25385 32.25288,-10.87245 9.26429,-4.207497 8.53905,-7.362324 8.50359,-11.236883 -7.4e-4,-0.08153 0,-0.160805 0,-0.24296 h -0.0608 c -0.0595,-3.906866 -1.56157,-7.817769 -4.55549,-10.811705 L 91.600063,25.649468 C 88.5454,22.594793 84.592543,21.093974 80.606138,21.093974 Z M 56.553132,105.76542 c 8.084647,2.09667 17.079247,4.81 24.295966,4.85919 l 0.3037,3.27996 c -6.179767,-0.63701 -19.269208,-3.64874 -22.352289,-5.22364 z m 84.246258,14.39535 c -1.23415,-0.0395 -2.40206,0.0842 -3.27996,0.3037 -1.65516,0.41359 -9.69592,0.60412 -9.05025,5.7703 7.10376,2.58184 18.08512,4.55915 19.37604,-0.6074 0.96897,-3.87387 -3.34345,-5.34795 -7.04583,-5.4666 z m -92.871326,10.50801 c -1.117595,-0.13024 -2.210972,0.008 -3.279956,0.54666 -4.274826,2.15631 -7.152149,6.94739 -3.158474,8.92877 3.99408,1.98139 6.824425,-0.27467 10.325785,-2.7333 3.501767,-2.45822 3.411658,-2.93897 3.158475,-3.88735 -0.484734,0.12928 -3.693025,-2.46403 -7.04583,-2.85478 z m 78.111516,0.85036 c -3.22891,1.29126 -3.19098,5.77708 -0.60739,7.71397 2.58293,1.93728 5.81565,0.68424 7.10657,-0.6074 1.29198,-1.29126 -0.042,-5.81528 -6.49918,-7.10657 z"
+ style="fill:url(#linearGradient1322);fill-rule:evenodd;stroke-width:1.30175579pt"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
+ id="path1269"
+ d="m 11.977124,84.576671 c -0.883927,1.953959 -1.36513,4.04141 -1.397018,6.134731 -8.33e-4,0.06556 0,0.177399 0,0.24296 h 0.12148 c 0.994358,3.78327 25.07956,8.512878 29.823299,11.540588 2.091809,-1.24429 3.465756,-2.547484 2.065157,-3.948099 C 39.594368,95.551236 12.773315,90.53478 11.734165,86.581087 h -0.12148 c 0,-0.06558 -8.33e-4,-0.177399 0,-0.242958 0.0091,-0.601939 0.284168,-1.162709 0.364439,-1.761458 z M 150.34262,92.47286 c -1.0612,1.680115 -3.10061,3.387829 -7.41026,5.345111 -18.97801,8.618589 -27.72886,6.348449 -32.25287,10.872439 -1.37053,1.37052 -0.88153,2.54264 0.18222,3.70513 4.78924,-3.38639 13.4115,-2.19944 31.03808,-10.20429 8.00504,-3.635614 8.46503,-6.511246 8.44283,-9.71839 z m -92.871299,8.86803 2.247377,2.9155 c 3.08308,1.57491 16.17252,4.58665 22.352289,5.22364 l -0.303699,-3.27996 c -7.216719,-0.0492 -16.21132,-2.7625 -24.295967,-4.85918 z M 30.685018,111.4237 c -2.022925,1.2244 -3.320206,2.51079 -1.943676,3.88736 4.523988,4.52399 27.364021,8.71723 31.888455,13.2413 0.198962,0.19895 0.17245,0.40741 0.3037,0.6074 1.405197,-1.67236 2.355425,-3.35413 0.728879,-4.98067 -4.359755,-4.3594 -25.379991,-8.41841 -30.977358,-12.75539 z m 100.220842,10.75097 c -1.55381,0.80713 -2.80902,1.9449 -2.55108,4.00882 7.10375,2.58184 18.08511,4.55915 19.37603,-0.60738 0.25122,-1.00435 0.11312,-1.85114 -0.24296,-2.55108 -3.06888,2.47706 -10.66085,1.09402 -16.58199,-0.85036 z m -11.17612,2.18664 c -8.90094,7.91694 -18.52655,8.74738 -22.595255,12.81612 -1.63664,1.63663 -0.713263,2.53048 0.6074,3.34069 5.191475,-3.47749 15.190165,-4.50342 23.931535,-14.33463 -0.44804,-0.69679 -1.30027,-1.20938 -1.94368,-1.82218 z m 5.0414,8.01767 c -1.86829,1.81567 -1.62997,5.17107 0.54666,6.80287 2.58292,1.93727 5.81565,0.68422 7.10656,-0.6074 0.66392,-0.66356 0.57592,-2.15087 -0.48592,-3.6444 -1.57518,0.81115 -3.6457,1.33536 -5.58806,-0.12148 -0.82081,-0.61535 -1.29544,-1.48388 -1.57924,-2.42959 z m -71.612353,0.24296 c -0.216533,0.15768 -0.17254,0.18708 -0.42518,0.36444 -3.501359,2.45861 -6.331704,4.7147 -10.325785,2.73329 -0.835138,-0.41433 -1.173493,-1.0297 -1.457758,-1.63998 -1.775949,2.19005 -2.210285,4.70572 0.425179,6.01325 3.994085,1.98138 6.824427,-0.27468 10.325787,-2.73329 3.50177,-2.45823 3.411658,-2.93899 3.158475,-3.88735 -0.166315,0.0444 -0.997334,-0.45265 -1.700718,-0.85036 z m 3.462175,4.79845 c -1.405193,1.67235 -2.355439,3.35411 -0.728879,4.98066 4.524009,4.52407 19.69882,-1.11019 16.946437,10.69022 6.109348,6.10935 18.859078,3.19384 27.39371,-2.91551 1.66654,-1.66656 0.69997,-2.58291 -0.668148,-3.40144 -8.458362,5.3473 -19.957869,7.67884 -25.692984,1.94368 2.752384,-11.8004 -12.422431,-6.16613 -16.946436,-10.69021 -0.198964,-0.19896 -0.172449,-0.40742 -0.3037,-0.6074 z"
+ style="fill:url(#linearGradient1231);fill-rule:evenodd;stroke-width:1.30175579pt"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccccc"
+ id="path1271"
+ d="m 107.57531,47.365247 32.87711,35.325423 c 0,0 9.7932,10.492701 2.09856,14.68978 -7.69466,4.19708 -31.12834,10.4927 -31.12834,10.4927 L 68.830422,46.540402 Z"
+ style="fill:url(#linearGradient1272);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.30175579pt"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccccc"
+ id="path1276"
+ d="M 56.944037,42.006087 26.165461,77.3315 c 0,0 -11.891721,10.4927 -4.197076,14.689777 7.694644,4.197078 58.409343,21.335153 94.084505,15.039533 L 75.13138,45.853409 Z"
+ style="fill:url(#linearGradient1277);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.49509335pt"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccccczz"
+ id="path1317"
+ d="m 82.042498,27.12255 c 4.504479,0.03329 23.422692,18.434639 28.837322,22.230809 5.41464,3.796171 4.14478,6.285951 4.14478,6.523269 L 99.839631,48.527099 98.321133,60.006943 89.939024,56.058848 77.062155,64.683915 72.081482,47.67674 65.76453,62.558018 47.967732,64.319476 48.149952,56.423287 74.438456,30.540688 c 1.907291,-1.877842 3.182156,-3.451427 7.604042,-3.418138 z"
+ style="fill:url(#linearGradient1318);fill-rule:evenodd;stroke-width:1.30175579pt"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+ <g
+ inkscape:label="Title"
+ id="layer2"
+ inkscape:groupmode="layer">
+ <text
+ id="text48"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:51.20000076px;line-height:100%;font-family:Arial;writing-mode:lr-tb;text-anchor:start;display:block;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ y="74.666664"
+ x="48">
+ <tspan
+ x="48"
+ y="74.666664"
+ sodipodi:role="line"
+ id="tspan1508"
+ style="stroke-width:3.20000017pt">Current Inkscape Architecture</tspan>
+ </text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:139.99999762%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="57.142857"
+ y="168.88889"
+ id="text3025"><tspan
+ x="57.142857"
+ y="168.88889"
+ sodipodi:role="line"
+ id="tspan3452"
+ style="stroke-width:1.06666669pt">* Core assumption: This is a Linux GUI Editor _only_</tspan><tspan
+ x="57.142857"
+ y="204.72888"
+ sodipodi:role="line"
+ id="tspan3454"
+ style="stroke-width:1.06666669pt"> + Well, plus a GUI viewer, too</tspan><tspan
+ x="57.142857"
+ y="240.56888"
+ sodipodi:role="line"
+ id="tspan3456"
+ style="stroke-width:1.06666669pt"> + Well, plus non-GUI cmdline tool, too</tspan><tspan
+ x="57.142857"
+ y="276.40887"
+ sodipodi:role="line"
+ id="tspan3458"
+ style="stroke-width:1.06666669pt"> + Well, plus all the above on Windows, too</tspan><tspan
+ x="57.142857"
+ y="312.24887"
+ sodipodi:role="line"
+ id="tspan3460"
+ style="stroke-width:1.06666669pt"> + (Architecture has grown organically)</tspan><tspan
+ x="57.142857"
+ y="348.0889"
+ sodipodi:role="line"
+ id="tspan3462"
+ style="stroke-width:1.06666669pt" /><tspan
+ x="57.142857"
+ y="383.92889"
+ sodipodi:role="line"
+ id="tspan3464"
+ style="stroke-width:1.06666669pt">* Core architecture</tspan><tspan
+ x="57.142857"
+ y="419.76889"
+ sodipodi:role="line"
+ id="tspan3466"
+ style="stroke-width:1.06666669pt"> + Gtk::Main - runs program</tspan><tspan
+ x="57.142857"
+ y="455.60889"
+ sodipodi:role="line"
+ id="tspan3468"
+ style="stroke-width:1.06666669pt"> + Inkscape::Application - GUI editing mode</tspan><tspan
+ x="57.142857"
+ y="491.44888"
+ sodipodi:role="line"
+ id="tspan3470"
+ style="stroke-width:1.06666669pt"> - Contains 'Document's</tspan><tspan
+ x="57.142857"
+ y="527.28888"
+ sodipodi:role="line"
+ id="tspan3472"
+ style="stroke-width:1.06666669pt"> - Each Document has one or more 'View's</tspan><tspan
+ x="57.142857"
+ y="563.12891"
+ sodipodi:role="line"
+ id="tspan3474"
+ style="stroke-width:1.06666669pt"> - An editable View is called a 'Desktop'</tspan><tspan
+ x="57.142857"
+ y="598.96887"
+ sodipodi:role="line"
+ id="tspan3476"
+ style="stroke-width:1.06666669pt"> + Other run modes (inkview, cmdline) handled uniquely</tspan></text>
+ </g>
+ <g
+ inkscape:label="Drawing Area"
+ id="layer3"
+ inkscape:groupmode="layer" />
+</svg>
diff --git a/doc/NewAppArchitecture/04-current-main.svg b/doc/NewAppArchitecture/04-current-main.svg
new file mode 100644
index 0000000..68ad56f
--- /dev/null
+++ b/doc/NewAppArchitecture/04-current-main.svg
@@ -0,0 +1,686 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg586"
+ sodipodi:version="0.32"
+ inkscape:version="0.92.0 r15304"
+ width="640pt"
+ height="480pt"
+ sodipodi:docname="04-current-main.svg"
+ version="1.1">
+ <defs
+ id="defs588">
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker396"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path397"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker394"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path395"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker391"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path392"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker319"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path320"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="TriangleOutL"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path224"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <linearGradient
+ id="linearGradient2570">
+ <stop
+ style="stop-color:#000000;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop2571" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.62745100;"
+ offset="0.58504134"
+ id="stop2572" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop2573" />
+ </linearGradient>
+ <linearGradient
+ xlink:href="#linearGradient1218"
+ id="linearGradient1322"
+ x1="77.599106"
+ y1="20.687101"
+ x2="53.030737"
+ y2="114.57422"
+ gradientTransform="matrix(1.3228549,0,0,1.2809931,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1273"
+ id="linearGradient1318"
+ x1="59.491886"
+ y1="30.563196"
+ x2="33.266399"
+ y2="58.199241"
+ gradientTransform="matrix(1.7409899,0,0,0.97333594,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1307"
+ x1="0.45376351"
+ y1="1.9347328"
+ x2="0.41986585"
+ y2="0.12454049"
+ gradientTransform="scale(1.004208,0.995809)" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1306"
+ x1="0.45009527"
+ y1="1.9667202"
+ x2="0.41548476"
+ y2="0.11846013"
+ gradientTransform="scale(1.006361,0.993679)" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1305"
+ x1="0.45839140"
+ y1="1.8676205"
+ x2="0.42603236"
+ y2="0.13959341"
+ gradientTransform="scale(1.002016,0.997989)" />
+ <linearGradient
+ xlink:href="#linearGradient1273"
+ id="linearGradient1277"
+ x1="11.967844"
+ y1="119.11808"
+ x2="51.413385"
+ y2="80.482086"
+ gradientTransform="matrix(1.8036348,0,0,1.2393329,-37.611189,-4.4599008)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1273"
+ id="linearGradient1272"
+ x1="118.66497"
+ y1="45.70058"
+ x2="90.28563"
+ y2="62.493129"
+ gradientTransform="matrix(1.4554449,0,0,1.1642956,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1270" />
+ <linearGradient
+ xlink:href="#linearGradient1323"
+ id="linearGradient1231"
+ x1="17.696665"
+ y1="120.74315"
+ x2="94.698939"
+ y2="120.74315"
+ gradientTransform="matrix(1.8150579,0,0,0.9336165,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1221"
+ x1="27.318817"
+ y1="170.27164"
+ x2="130.70353"
+ y2="28.120696"
+ gradientTransform="scale(1.0211162,0.97932047)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient1218">
+ <stop
+ style="stop-color:#000000;stop-opacity:1.0000000;"
+ offset="0.00000000"
+ id="stop1219" />
+ <stop
+ style="stop-color:#323232;stop-opacity:1.0000000;"
+ offset="0.073255815"
+ id="stop1321" />
+ <stop
+ style="stop-color:#000000;stop-opacity:1.0000000;"
+ offset="0.65260679"
+ id="stop1320" />
+ <stop
+ style="stop-color:#fff;stop-opacity:1;"
+ offset="1"
+ id="stop1220" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1222">
+ <stop
+ style="stop-color:#0081ac;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop1223" />
+ <stop
+ style="stop-color:#006d91;stop-opacity:0.62745100;"
+ offset="0.50000000"
+ id="stop1722" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop1224" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1273">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1.0000000;"
+ offset="0.00000000"
+ id="stop1274" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.00000000;"
+ offset="1.0000000"
+ id="stop1275" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1323">
+ <stop
+ style="stop-color:#000000;stop-opacity:0.77685952;"
+ offset="0.00000000"
+ id="stop1324" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.00000000;"
+ offset="1.0000000"
+ id="stop1325" />
+ </linearGradient>
+ <radialGradient
+ xlink:href="#linearGradient826"
+ id="radialGradient829"
+ cx="296.2963"
+ cy="281.25"
+ r="248.40302"
+ fx="303.7037"
+ fy="93.75"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.29936853,0,0,0.15858773,4.3548661,98.117152)" />
+ <linearGradient
+ id="linearGradient826">
+ <stop
+ style="stop-color:#000000;stop-opacity:0.95294118;"
+ offset="0.00000000"
+ id="stop827" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.76078433;"
+ offset="0.36585677"
+ id="stop830" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.52941179;"
+ offset="0.47107276"
+ id="stop847" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.00000000;"
+ offset="1.0000000"
+ id="stop828" />
+ </linearGradient>
+ <linearGradient
+ xlink:href="#linearGradient909"
+ id="linearGradient907"
+ x1="0.50000000"
+ y1="0.66667551"
+ x2="0.50000000"
+ y2="-1.7333326" />
+ <linearGradient
+ id="linearGradient909">
+ <stop
+ style="stop-color:#000000;stop-opacity:0.00000000;"
+ offset="0.00000000"
+ id="stop910" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.17000000;"
+ offset="1.0000000"
+ id="stop913" />
+ </linearGradient>
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1309"
+ gradientTransform="scale(2.8444445,0.4)"
+ x1="0"
+ y1="4.7369516e-15"
+ x2="300"
+ y2="4.7369516e-15"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient2570"
+ id="linearGradient1308"
+ x1="-0.0028122679"
+ y1="1365.4825"
+ x2="64.30938"
+ y2="1365.4825"
+ gradientTransform="scale(13.227991,0.0860129)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient826"
+ id="radialGradient37145"
+ cx="296.2963"
+ cy="281.25"
+ fx="303.7037"
+ fy="93.75"
+ r="248.40302"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4203424,0,0,0.08699077,-33.810677,100.89451)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient37147"
+ x1="33.344169"
+ y1="164.17808"
+ x2="131.82116"
+ y2="28.775105"
+ gradientTransform="scale(1.0839555,1.0496536)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient37149"
+ x1="31.731446"
+ y1="165.85049"
+ x2="131.57971"
+ y2="28.562063"
+ gradientTransform="scale(1.0848907,1.0487488)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient37151"
+ x1="35.171777"
+ y1="162.0032"
+ x2="131.8238"
+ y2="29.109513"
+ gradientTransform="scale(1.0846262,1.0490045)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient37153"
+ x1="37.676606"
+ y1="159.47478"
+ x2="132.33793"
+ y2="29.318235"
+ gradientTransform="scale(1.0823063,1.051253)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient37155"
+ x1="29.920773"
+ y1="167.66146"
+ x2="131.16846"
+ y2="28.448861"
+ gradientTransform="scale(1.0869998,1.0467139)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient37157"
+ x1="27.318817"
+ y1="170.27164"
+ x2="130.70353"
+ y2="28.120696"
+ gradientTransform="scale(1.0891906,1.0446085)"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.70710678"
+ inkscape:cx="372.43198"
+ inkscape:cy="354.2857"
+ inkscape:window-width="968"
+ inkscape:window-height="821"
+ inkscape:window-x="133"
+ inkscape:window-y="71"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:current-layer="layer2"
+ showgrid="false"
+ inkscape:window-maximized="0" />
+ <metadata
+ id="metadata33">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer1"
+ inkscape:label="Background"
+ style="display:block">
+ <rect
+ style="font-size:12px;fill:url(#linearGradient1309);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.20000017pt"
+ id="topbluebox"
+ width="853.33331"
+ height="120"
+ x="0"
+ y="1.8947807e-15" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient1308);stroke-width:5.31674433;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M -0.03652902,117.55657 850.68323,117.34163"
+ id="path654"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0" />
+ <g
+ id="g1085"
+ transform="translate(689.36448,-10.40511)">
+ <g
+ id="g1394"
+ transform="matrix(0.875802,0,0,0.869278,1.1184885,-8.4967275)">
+ <ellipse
+ id="path898"
+ style="opacity:0.69398911;fill:url(#radialGradient37145);stroke-width:0.84729707;stroke-dashoffset:0"
+ cx="92.292046"
+ cy="126.99174"
+ rx="126.10272"
+ ry="26.097233" />
+ <ellipse
+ id="ball1"
+ style="fill:url(#radialGradient829);stroke-width:0.96546245;stroke-dashoffset:0"
+ cx="94.165428"
+ cy="145.69347"
+ rx="89.810562"
+ ry="47.576321" />
+ </g>
+ <g
+ id="g1310"
+ transform="matrix(1.822197,0,0,1.662749,-192.00875,13.084299)"
+ style="fill:url(#linearGradient1221)">
+ <path
+ style="fill:url(#linearGradient37147);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 148.55614,11.815593 c -2.18769,1e-6 -4.39029,0.823628 -6.06667,2.5 l -29.76666,29.8 c -1.64308,1.643032 -2.50068,3.78929 -2.53334,5.933333 -4.6e-4,0.03598 0,0.09736 0,0.133333 h 0.0667 c 0.57027,2.16974 15.28934,4.922713 16.93333,6.566667 2.48272,2.482738 -9.51602,4.317248 -7.03333,6.8 2.48271,2.482709 15.01704,4.783915 17.5,7.266669 2.48273,2.48272 -5.08275,5.11728 -2.6,7.6 2.48272,2.482753 10.81047,-0.609259 9.3,5.866667 3.35273,3.352736 10.34963,1.752736 15.03333,-1.6 2.48272,-2.482721 -4.74941,-2.250614 -2.26666,-4.733334 2.48272,-2.482752 8.75277,-2.494421 14.03333,-8.433335 -2.12548,-3.305654 -9.08274,-4.717259 -6.6,-7.2 2.48272,-2.482715 7.28509,-1.236886 17.7,-5.966667 5.08413,-2.309024 4.68613,-4.040355 4.66667,-6.166667 -4.1e-4,-0.04475 0,-0.08825 0,-0.133333 h -0.0333 c -0.0326,-2.144041 -0.85698,-4.290298 -2.5,-5.933333 l -29.8,-29.8 c -1.67637,-1.67637 -3.84565,-2.5 -6.03334,-2.5 z m -0.26667,3.866666 c 0.97256,0.02533 1.75986,0.768324 3.3,1.766667 l 14.06667,10.433333 c 0.15408,0.09991 0.29855,0.192996 0.43333,0.3 0.1348,0.10699 0.28452,0.220015 0.4,0.333334 0.11548,0.113111 0.20364,0.248218 0.3,0.366666 0.0961,0.118429 0.18984,0.244093 0.26667,0.366667 0.077,0.122774 0.14229,0.240765 0.2,0.366667 0.0577,0.126131 0.0949,0.238188 0.13333,0.366666 0.0386,0.128282 0.0808,0.270352 0.1,0.4 0.0193,0.12988 0.0333,0.269763 0.0333,0.4 l -8.33333,-4.033333 -0.83334,6.3 -4.6,-2.166667 -7.06666,4.733334 -2.73334,-9.333334 -3.46666,8.166667 -9.76667,0.966667 0.1,-4.333334 c 0,-1.042224 5.64516,-8.329604 9.06666,-10.066666 l 6.26667,-4.5 c 0.92408,-0.599006 1.54979,-0.848535 2.13333,-0.833334 z m -12.93333,42.6 c 4.43676,1.15063 9.37288,2.639674 13.33333,2.666667 l 0.16667,1.8 c -3.39138,-0.349579 -10.57471,-2.002379 -12.26667,-2.866667 z m 46.23333,7.9 c -0.67728,-0.02171 -1.31822,0.0462 -1.8,0.166667 -0.90833,0.226965 -5.321,0.331531 -4.96666,3.166667 3.89845,1.416876 9.92489,2.502007 10.63333,-0.333334 0.53176,-2.12593 -1.83484,-2.93489 -3.86667,-3 z m -50.96666,5.766669 c -0.61333,-0.07148 -1.21336,0.0042 -1.8,0.3 -2.34598,1.183349 -3.92502,3.81264 -1.73334,4.9 2.19191,1.08736 3.74516,-0.150741 5.66667,-1.5 1.92173,-1.349045 1.87228,-1.612875 1.73333,-2.133333 -0.26601,0.07094 -2.02669,-1.352235 -3.86666,-1.566667 z m 42.86666,0.466667 c -1.77199,0.708629 -1.75118,3.170389 -0.33333,4.233333 1.41748,1.063157 3.19156,0.375499 3.9,-0.333333 0.70902,-0.70863 -0.023,-3.19136 -3.56667,-3.9 z"
+ id="path1278"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient37149);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 147.16667,11.433333 c -3.48238,0.364902 -5.88303,3.345755 -8.33158,5.570373 -8.94544,9.133798 -18.09349,18.101949 -26.95799,27.294024 -1.44334,1.84378 -2.03035,4.015468 -2.31043,6.30227 5.03542,3.678658 11.71157,3.699536 17.06666,6.766667 -1.50817,2.381747 -5.17846,2.289571 -6.84097,4.663825 -1.44519,0.973702 0.60698,2.569614 1.6838,2.93719 4.47582,2.259905 9.5207,3.127075 13.9674,5.505719 2.30619,0.164974 2.15073,2.483836 0.6201,3.623175 -1.21232,1.221254 -3.08705,3.249751 -1.23288,4.771441 2.26675,1.575369 5.27199,1.144095 7.80255,2.065316 1.77826,0.975122 0.51639,2.738136 1.73334,3.966667 3.05603,2.396513 7.28787,1.973693 10.69445,0.606201 1.75151,-0.515126 3.34201,-1.653286 4.87221,-2.539534 1.47613,-1.720326 -0.82595,-2.9513 -2.13333,-3.666667 -0.85913,-1.425274 2.00009,-1.997097 2.97462,-2.675578 3.73665,-1.514529 7.36553,-3.267329 10.23683,-6.143331 1.79011,-1.105032 -0.83882,-2.676851 -1.67812,-3.547758 -1.55141,-1.15048 -3.58938,-1.860548 -4.56666,-3.633333 2.52043,-2.7807 6.7319,-2.262194 9.98204,-3.687561 3.90317,-0.992642 7.61596,-2.729652 11.05532,-4.741974 2.26951,-1.69135 1.67257,-4.636557 1.22998,-7.021773 -1.61839,-5.025589 -6.41885,-8.01283 -9.81146,-11.814386 -7.61983,-7.514247 -15.1255,-15.17228 -22.81612,-22.597384 -2.05244,-1.578655 -4.64151,-2.423668 -7.23976,-2.003589 z M 149.5,16.766667 c 5.52064,4.046284 11.05387,8.077891 16.56667,12.133333 0.11539,1.103552 -2.90244,-1.172627 -4.0558,-1.481882 -1.41219,-0.420198 -3.8964,-2.894916 -3.5025,0.03341 -0.60562,1.192982 0.31151,5.203671 -1.4377,4.28052 -1.58183,-0.849857 -3.68447,-2.113891 -5.18058,-0.378679 -1.61892,1.082213 -3.23783,2.164425 -4.85676,3.246637 -0.9783,-3.377623 -1.95211,-6.756554 -2.93333,-10.133333 -1.34602,3.127884 -2.66477,6.267483 -4,9.4 -2.92222,0.288888 -5.84445,0.577778 -8.76667,0.866667 -0.20184,-2.166309 0.27133,-4.341771 1.77562,-5.878158 3.25057,-5.211552 8.66632,-8.395371 13.54451,-11.865011 0.95273,-0.564092 1.80847,-0.493262 2.84654,-0.223498 z m -8.63333,43.566666 c 2.34366,0.607254 4.78296,0.727797 7.16666,1.133334 -0.90625,1.084587 -3.14277,-0.32439 -4.56523,-0.371058 -1.8583,-0.406252 -3.7163,-0.80007 -5.4681,-1.562276 0.95555,0.266667 1.91111,0.533334 2.86667,0.8 z m 38.86666,5.4 c -2.15488,0.501536 -5.22675,0.793815 -5.5,3.566667 0.70833,1.029809 2.96093,1.412478 4.40801,1.688268 2.27503,0.363118 5.38493,1.181831 6.97878,-0.937576 1.36135,-1.898234 -0.67459,-4.313995 -2.78769,-4.178768 -1.02575,-0.350017 -2.04343,-0.268702 -3.0991,-0.138591 z m -51.03333,5.9 c -1.57612,1.085018 -3.71575,2.720281 -3.03333,4.9 1.61184,2.339234 4.94529,1.683368 6.78753,-0.0057 1.2184,-0.692559 3.25469,-2.021692 2.31247,-3.560997 -1.93436,-0.840999 -3.87915,-2.117169 -6.06667,-1.333334 z m 44.36667,0.333334 c -1.34895,0.891833 -1.89168,2.759628 -0.95675,4.109348 0.71622,1.795233 3.11379,1.982508 4.57991,1.004604 1.95986,-0.600235 1.10016,-3.109938 -0.33003,-3.844913 -0.72045,-0.899439 -2.36482,-1.335642 -3.29313,-1.269039 z"
+ id="path1283"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient37151);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 146.23333,12.866667 c -3.88385,1.702193 -6.61189,5.324961 -9.67052,8.210746 -7.86956,8.018198 -15.90416,15.90198 -23.69161,23.983409 -1.11331,1.428597 -1.72615,3.060044 -2.00453,4.839178 4.36,3.072638 10.04495,3.23545 14.7573,5.603266 1.5625,0.15548 3.26141,1.73801 1.81635,3.072207 -1.86501,1.91956 -5.15011,2.084779 -6.70699,4.291194 4.05269,2.923397 9.10625,3.602288 13.58014,5.613093 1.52915,1.119169 4.28812,1.21833 4.3532,3.553573 -0.41298,2.06712 -2.47344,3.267809 -3.36667,5.133334 1.94434,2.744072 5.94438,1.261888 8.50547,3.040805 1.3908,0.857738 1.00828,2.693049 1.62108,3.831047 3.2048,2.344549 7.71164,1.319869 10.94656,-0.558135 1.04365,-0.353733 3.89943,-1.626855 1.76272,-2.556043 -1.55651,-0.349067 -2.86028,-2.213166 -1.35103,-3.402938 3.84858,-2.931245 9.10998,-3.601158 12.55258,-7.214396 1.79927,-1.361045 -1.31628,-2.560541 -2.24828,-3.336495 -1.41778,-1.044797 -3.86698,-2.048091 -3.55577,-4.137179 2.35965,-3.274836 6.88107,-2.833411 10.31383,-4.263585 3.90311,-0.957377 7.67689,-2.630842 11.10878,-4.611597 2.18816,-1.940094 1.07405,-5.046756 0.32835,-7.371909 -3.93266,-5.513287 -9.35396,-9.75581 -13.9708,-14.686024 -5.91778,-5.783657 -11.65452,-11.813723 -17.68454,-17.444607 -2.14828,-1.370565 -4.63208,-2.556154 -7.20805,-1.62333 z m 2.3,2.233333 c 5.45973,2.578599 9.80753,6.890051 14.73244,10.347527 1.85084,1.664819 5.00363,2.778901 4.9009,5.71914 -1.78479,0.428996 -3.34725,-1.396857 -5.04898,-1.86837 -1.54021,-0.520034 -4.1213,-2.963549 -3.68846,0.16232 -0.54825,1.127161 0.22527,4.775461 -1.23798,4.170178 -1.53672,-0.653008 -3.2567,-1.905943 -4.87859,-1.758173 -2.31413,1.577535 -4.63724,3.142054 -6.94599,4.727378 -0.87266,-2.83558 -1.68407,-5.690403 -2.53334,-8.533333 -1.12707,2.260756 -1.98302,4.959333 -3.26666,6.966666 -3.47777,0.344565 -6.95563,0.688221 -10.43334,1.033334 0.0287,-2.531437 -0.43925,-5.398577 1.54821,-7.372648 3.13073,-5.303181 8.62883,-8.494145 13.35179,-12.127352 1.15867,-0.426692 2.35212,-1.253526 3.5,-1.466667 z m -13.76666,42.4 c 4.77393,1.272573 9.58904,2.318786 14.5,2.9 0.93608,1.872033 -0.34236,3.482335 -2.33168,2.565935 -3.62332,-0.734316 -7.25018,-1.727438 -10.80166,-2.699268 -0.26564,-0.514085 -3.09159,-3.378118 -1.36666,-2.766667 z m 45.16666,9.433333 c -1.51493,0.422114 -3.72691,0.290818 -4.26666,2.133334 2.90995,0.556827 6.05202,2.002088 8.9,0.466666 0.978,-1.977585 -1.92783,-2.538134 -3.31385,-2.645499 -0.43983,0.01517 -0.87966,0.03034 -1.31949,0.0455 z m -50.9,5.866667 c -1.16024,0.90047 -3.46737,3.083937 -1.02728,3.858837 2.25255,0.543858 3.96147,-1.380385 5.62728,-2.558837 -1.18522,-1.161836 -2.98479,-1.601218 -4.6,-1.3 z m 44.03334,0.733333 c -1.04902,2.027564 1.90687,4.021482 3.28133,2.230908 0.70415,-1.13156 -2.36473,-3.118333 -3.28133,-2.230908 z"
+ id="path1286"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient37153);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 146.66667,13.4 c -6.33172,3.543401 -10.68888,9.547281 -15.90063,14.447274 -5.8861,6.073656 -12.00588,11.974663 -17.74737,18.155152 -0.7305,1.178656 -2.18908,3.828459 -0.0714,4.248788 4.9013,2.576465 10.86092,2.972757 15.3194,6.215453 1.00861,2.475215 -2.05916,3.484953 -3.70454,4.477414 -1.7373,0.545523 -3.75405,2.175563 -0.84454,2.774326 4.83335,2.60598 10.58594,3.28132 15.01575,6.64826 1.43136,2.33294 -1.26292,4.394234 -2.23809,6.238069 0.0119,1.908953 2.8242,1.486185 4.14874,2.002826 2.29679,0.177914 4.75661,1.464231 4.98406,3.992952 0.7695,2.00242 3.5144,2.068656 5.37195,2.066153 2.47607,-0.312856 4.61313,-1.6278 6.86667,-2.6 -0.11425,-1.550102 -2.69456,-1.700315 -2.36667,-3.6 1.99363,-3.193298 6.06476,-3.869656 9.11608,-5.707796 1.73236,-0.750835 3.28599,-1.893245 4.45059,-3.392204 -1.92497,-2.280272 -5.74204,-3.012313 -6.11314,-6.406102 0.39022,-1.188208 2.2736,-2.314015 3.60639,-2.891301 5.6785,-2.143002 11.88985,-2.970298 17.10185,-6.270592 2.74324,-1.108432 1.83527,-4.538836 1.0317,-6.686009 -2.29624,-3.22589 -5.40132,-6.000174 -8.00828,-9.052576 -2.68656,-2.760044 -5.48876,-5.408427 -8.21852,-8.126754 1.12365,1.634362 -0.99109,2.422313 -2.21269,1.401868 -2.03118,-0.886068 -4.05629,-1.760173 -6.12064,-2.568534 C 160.05314,30.54272 159.67649,32.269964 159.3,34 c -2.55377,0.684822 -5.03322,-2.683187 -7.35336,-0.501311 -1.91379,1.060257 -3.40719,2.847058 -5.45058,3.513153 -1.46281,-0.265507 -1.26699,-3.243895 -2.01992,-4.618246 -0.44179,-3.083731 -1.2118,-2.404985 -2.14312,0.123134 -0.85365,1.59882 -1.21984,3.834303 -3.53335,3.298267 -3.08878,0.306225 -6.17762,0.611598 -9.26633,0.918336 0.0202,-3.177717 -0.28551,-6.766 2.22768,-9.171123 3.51639,-4.960964 8.70856,-8.341185 13.55479,-11.782731 1.62219,-0.752906 3.63701,-1.872712 5.13828,-0.273654 3.97373,2.727514 8.02021,5.285521 11.74591,8.327508 -3.19568,-3.018643 -6.19482,-6.317986 -9.51099,-9.164539 -1.87897,-0.938934 -3.8675,-2.092901 -6.02238,-1.268794 z m -11.83334,43.5 c 5.00075,0.984495 9.99566,2.003225 15,2.966667 0.20732,1.45664 0.46427,3.886308 -1.67313,3.831478 -4.16789,-0.795987 -8.38205,-1.956384 -12.49353,-3.031478 -0.61549,-0.980519 -2.50897,-2.472939 -1.9,-3.466667 0.35063,-0.05103 0.72399,-0.354699 1.06666,-0.3 z m 42.8,11.166667 c -1.73875,1.086025 2.33789,1.138186 3.27372,1.439238 1.30579,0.375237 4.48185,-0.551342 2.02628,-1.672572 -1.83243,-0.401834 -3.50784,-0.360679 -5.3,0.233334 z M 128.86667,73.8 c -2.17346,1.397366 -0.18414,3.053084 1.5865,1.699463 2.04828,-0.249261 2.08866,-2.343116 -0.17211,-2.051831 -0.54677,-0.07524 -0.99718,-0.0549 -1.41439,0.352368 z m 44.76666,1.133333 c 2.4133,2.30436 1.83777,-1.778179 0,-0.492892 0,0.102368 0,0.430964 0,0.492892 z"
+ id="path1295"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient37155);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 146.4,11 c -2.85517,0.532698 -4.88261,2.920832 -7.04143,4.696624 -9.46036,9.318687 -18.69953,18.903094 -28.02524,28.336709 -1.28513,2.140689 -2.02923,4.453081 -2.46666,6.9 4.02374,2.003945 8.08967,3.86007 12.47179,4.935568 1.05804,0.665393 4.69014,0.890135 3.49487,2.397766 -2.29866,1.221998 -5.17006,2.048868 -6.16666,4.733333 1.94556,3.411999 6.27529,3.61226 9.48467,5.236915 2.69399,1.065471 5.388,2.130945 8.08199,3.196418 0.0835,2.815831 -0.6308,1.873266 -2.05017,0.611648 -2.17089,-1.1027 -5.39205,-2.114404 -7.09766,0.274746 -1.55046,0.944625 -2.75719,3.349765 -1.57432,4.866099 2.21286,2.398176 6.00771,1.27668 8.06067,-0.779037 0.17795,-0.191378 -0.29693,2.877758 1.42073,3.193938 2.34275,1.346613 5.33929,0.970157 7.67409,2.299273 0.45283,1.979683 1.2508,4.221333 3.5739,4.531638 3.66844,1.48315 7.80683,0.39212 11.09794,-1.541311 1.39792,-0.760174 4.07797,-1.323747 3.46357,-3.423687 -0.0478,-1.38074 -3.42818,-2.212653 -1.53541,-3.499973 4.53006,-2.016167 9.17312,-4.142848 12.66666,-7.733334 0.85723,-2.253596 -2.25712,-3.193724 -3.46666,-4.566666 -1.4517,-1.221069 -3.87877,-2.524433 -0.81856,-3.364818 5.62839,-2.111859 11.87228,-2.940184 17.03456,-6.263438 2.72995,-0.86584 3.85371,-3.957742 3.06767,-6.564064 -0.0255,-2.62475 -1.76154,-4.797622 -3.22224,-6.835657 C 179.45289,36.856816 173.58197,31.828345 168.24204,26.291461 163.60188,21.818095 159.14228,17.065484 154.39198,12.762657 151.99166,11.220691 149.22884,10.717147 146.4,11 Z m 3.36667,6.733333 c 4.24058,2.976224 8.38139,6.129328 12.6,9.166667 -1.29937,-0.797366 -2.67486,-1.290978 -4.2,-1.4 -0.21287,1.824575 -0.47054,3.643999 -0.7,5.466667 -1.97534,-0.587625 -4.21204,-1.778592 -5.97773,-0.09263 -1.30676,0.402533 -3.52226,3.290581 -4.25972,2.135968 -0.99915,-3.447628 -1.99405,-6.896491 -2.99589,-10.343339 -1.52265,3.539479 -3.02044,7.089652 -4.53333,10.633333 -2.56667,0.255555 -5.13333,0.511111 -7.7,0.766667 -0.0148,-3.662276 2.83591,-6.395601 5.07235,-8.959274 3.30461,-2.837611 6.75708,-5.60858 10.52338,-7.756865 0.7316,-0.360909 1.44586,0.250944 2.17094,0.382806 z m 26.36666,48.333334 C 174.87994,66.86218 172.84987,68.441375 174.2,70 c 2.62772,1.71982 5.90645,1.835937 8.93343,1.934762 2.25075,-0.06272 4.4688,-2.726652 2.93663,-4.770688 -1.42803,-2.456455 -4.67977,-1.908377 -7.06627,-1.883005 -0.95681,0.261868 -1.91364,0.523732 -2.87046,0.785598 z m -3.3,5.433333 c -1.27562,1.033534 -1.85687,2.841465 -1.35231,4.508785 0.43077,1.899535 2.6256,2.385569 4.29198,1.849858 2.50838,0.201444 3.52565,-3.378484 1.43654,-4.628378 -1.24197,-1.050288 -2.64377,-2.095016 -4.37621,-1.730265 z"
+ id="path1300"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient37157);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 146,10.2 c -5.57009,2.353735 -9.31153,7.276932 -13.56394,11.364379 -7.26121,7.360863 -14.57305,14.685571 -21.80273,22.068954 -0.92375,2.588329 -1.83526,5.181133 -2.76666,7.766667 5.12606,2.235525 10.28103,4.361596 15.6,6.1 -0.32712,1.554459 -2.93579,1.371077 -3.74338,2.860476 -1.43416,0.914482 -2.37188,3.411157 -0.36803,4.245199 3.1673,2.975582 7.51398,4.048213 11.44474,5.660992 -3.09041,-0.89746 -5.13867,2.363507 -6.33333,4.666666 -0.72155,2.880448 2.58866,4.694489 5.06851,4.276737 1.54135,0.553684 3.66,-2.522746 3.86807,-0.13866 2.29497,2.607941 6.70581,1.993255 9.10076,4.436609 0.7749,2.147771 2.55461,3.943898 4.94541,3.965707 2.15881,0.621481 4.27216,0.328386 6.35476,-0.418515 2.43249,-0.54992 4.74804,-1.764623 6.87594,-2.976017 1.61013,-1.140622 1.25617,-3.709454 -0.21345,-4.812527 -0.21701,-1.714746 2.45466,-1.738353 3.54015,-2.659077 2.92458,-1.339302 5.49291,-3.216603 7.95985,-5.240923 -1.09048,1.568168 -1.50221,3.637034 -0.89348,5.420276 1.02957,2.431889 4.09705,1.779572 6.16014,1.64639 C 179.29546,77.451445 180.09314,74.273508 178,72.9 c -3.03927,-1.879702 -0.42819,-1.002977 1.49692,-0.460891 2.38484,0.141742 5.36949,0.891675 6.99369,-1.418947 1.80089,-1.737129 0.66941,-4.475043 -1.05728,-5.820162 -2.14881,-1.14371 -4.72742,-0.810973 -7.057,-0.699886 -2.09119,0.370608 -3.67839,1.613047 -4.97633,3.233219 -1.58756,1.272788 1.82748,3.61782 -0.0532,3.147933 -1.36163,0.234395 0.30799,-2.483632 -1.32358,-3.36862 -1.06348,-1.560896 -2.85826,-2.534055 -4.1899,-3.879313 6.43141,-3.110773 13.94477,-3.952924 19.7,-8.433333 2.10991,-2.5028 1.15052,-5.815831 0.53333,-8.666667 C 184.23156,39.549156 177.84192,34.54079 172.35319,28.898191 166.50884,23.205036 160.69939,17.462459 154.83333,11.8 152.27799,10.77259 149.66457,10.063772 146.88646,10.206305 146.60075,10.233991 146.27214,10.101959 146,10.2 Z m 7.6,11.266667 c 1.51374,1.165288 3.04586,2.309495 4.56667,3.466666 -1.39718,1.06872 -0.90296,3.127104 -1.4,4.633334 -2.08576,-0.566112 -4.35694,-0.641822 -6.05767,0.905733 -1.05102,0.888519 -3.01815,1.872214 -3.17799,-0.196242 -0.93874,-3.234383 -1.83,-6.48501 -2.79768,-9.709491 1.63294,-0.494373 3.30094,-3.132711 4.90134,-1.63781 1.32178,0.845937 2.64355,1.691873 3.96533,2.53781 z m -14.36667,10.966666 c -1.96666,0.2 -3.93333,0.4 -5.9,0.6 0.75323,-3.751583 3.85837,-6.37712 6.49928,-8.892012 1.44608,-1.049755 2.80293,-2.240606 4.30072,-3.207988 -1.63333,3.833334 -3.26666,7.666667 -4.9,11.5 z"
+ id="path1304"
+ inkscape:connector-curvature="0" />
+ </g>
+ <path
+ style="fill:url(#linearGradient1322);fill-rule:evenodd;stroke-width:1.30175579pt"
+ d="m 80.606138,21.093974 c -3.986404,2e-6 -7.999981,1.500815 -11.054664,4.555494 L 15.31073,79.950952 c -2.994002,2.993929 -4.556718,6.904836 -4.616235,10.811705 -8.35e-4,0.06557 0,0.177392 0,0.24296 h 0.12148 c 1.039149,3.953694 27.860205,8.970154 30.855878,11.965763 4.524006,4.52404 -17.340071,7.86688 -12.816122,12.39094 4.523986,4.52399 27.364021,8.71724 31.888455,13.2413 4.524026,4.52402 -9.261778,9.3247 -4.737714,13.8487 4.524006,4.52407 19.69882,-1.11018 16.946437,10.69023 6.109347,6.10935 18.859073,3.19383 27.393701,-2.91552 4.52401,-4.524 -8.654358,-4.10106 -4.130314,-8.62506 4.524004,-4.52406 15.949294,-4.54533 25.571504,-15.3672 -3.87306,-6.02355 -16.55055,-8.59578 -12.0265,-13.11982 4.524,-4.524 13.27486,-2.25385 32.25288,-10.87245 9.26429,-4.207497 8.53905,-7.362324 8.50359,-11.236883 -7.4e-4,-0.08153 0,-0.160805 0,-0.24296 h -0.0608 c -0.0595,-3.906866 -1.56157,-7.817769 -4.55549,-10.811705 L 91.600063,25.649468 C 88.5454,22.594793 84.592543,21.093974 80.606138,21.093974 Z M 56.553132,105.76542 c 8.084647,2.09667 17.079247,4.81 24.295966,4.85919 l 0.3037,3.27996 c -6.179767,-0.63701 -19.269208,-3.64874 -22.352289,-5.22364 z m 84.246258,14.39535 c -1.23415,-0.0395 -2.40206,0.0842 -3.27996,0.3037 -1.65516,0.41359 -9.69592,0.60412 -9.05025,5.7703 7.10376,2.58184 18.08512,4.55915 19.37604,-0.6074 0.96897,-3.87387 -3.34345,-5.34795 -7.04583,-5.4666 z m -92.871326,10.50801 c -1.117595,-0.13024 -2.210972,0.008 -3.279956,0.54666 -4.274826,2.15631 -7.152149,6.94739 -3.158474,8.92877 3.99408,1.98139 6.824425,-0.27467 10.325785,-2.7333 3.501767,-2.45822 3.411658,-2.93897 3.158475,-3.88735 -0.484734,0.12928 -3.693025,-2.46403 -7.04583,-2.85478 z m 78.111516,0.85036 c -3.22891,1.29126 -3.19098,5.77708 -0.60739,7.71397 2.58293,1.93728 5.81565,0.68424 7.10657,-0.6074 1.29198,-1.29126 -0.042,-5.81528 -6.49918,-7.10657 z"
+ id="path1217"
+ sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient1231);fill-rule:evenodd;stroke-width:1.30175579pt"
+ d="m 11.977124,84.576671 c -0.883927,1.953959 -1.36513,4.04141 -1.397018,6.134731 -8.33e-4,0.06556 0,0.177399 0,0.24296 h 0.12148 c 0.994358,3.78327 25.07956,8.512878 29.823299,11.540588 2.091809,-1.24429 3.465756,-2.547484 2.065157,-3.948099 C 39.594368,95.551236 12.773315,90.53478 11.734165,86.581087 h -0.12148 c 0,-0.06558 -8.33e-4,-0.177399 0,-0.242958 0.0091,-0.601939 0.284168,-1.162709 0.364439,-1.761458 z M 150.34262,92.47286 c -1.0612,1.680115 -3.10061,3.387829 -7.41026,5.345111 -18.97801,8.618589 -27.72886,6.348449 -32.25287,10.872439 -1.37053,1.37052 -0.88153,2.54264 0.18222,3.70513 4.78924,-3.38639 13.4115,-2.19944 31.03808,-10.20429 8.00504,-3.635614 8.46503,-6.511246 8.44283,-9.71839 z m -92.871299,8.86803 2.247377,2.9155 c 3.08308,1.57491 16.17252,4.58665 22.352289,5.22364 l -0.303699,-3.27996 c -7.216719,-0.0492 -16.21132,-2.7625 -24.295967,-4.85918 z M 30.685018,111.4237 c -2.022925,1.2244 -3.320206,2.51079 -1.943676,3.88736 4.523988,4.52399 27.364021,8.71723 31.888455,13.2413 0.198962,0.19895 0.17245,0.40741 0.3037,0.6074 1.405197,-1.67236 2.355425,-3.35413 0.728879,-4.98067 -4.359755,-4.3594 -25.379991,-8.41841 -30.977358,-12.75539 z m 100.220842,10.75097 c -1.55381,0.80713 -2.80902,1.9449 -2.55108,4.00882 7.10375,2.58184 18.08511,4.55915 19.37603,-0.60738 0.25122,-1.00435 0.11312,-1.85114 -0.24296,-2.55108 -3.06888,2.47706 -10.66085,1.09402 -16.58199,-0.85036 z m -11.17612,2.18664 c -8.90094,7.91694 -18.52655,8.74738 -22.595255,12.81612 -1.63664,1.63663 -0.713263,2.53048 0.6074,3.34069 5.191475,-3.47749 15.190165,-4.50342 23.931535,-14.33463 -0.44804,-0.69679 -1.30027,-1.20938 -1.94368,-1.82218 z m 5.0414,8.01767 c -1.86829,1.81567 -1.62997,5.17107 0.54666,6.80287 2.58292,1.93727 5.81565,0.68422 7.10656,-0.6074 0.66392,-0.66356 0.57592,-2.15087 -0.48592,-3.6444 -1.57518,0.81115 -3.6457,1.33536 -5.58806,-0.12148 -0.82081,-0.61535 -1.29544,-1.48388 -1.57924,-2.42959 z m -71.612353,0.24296 c -0.216533,0.15768 -0.17254,0.18708 -0.42518,0.36444 -3.501359,2.45861 -6.331704,4.7147 -10.325785,2.73329 -0.835138,-0.41433 -1.173493,-1.0297 -1.457758,-1.63998 -1.775949,2.19005 -2.210285,4.70572 0.425179,6.01325 3.994085,1.98138 6.824427,-0.27468 10.325787,-2.73329 3.50177,-2.45823 3.411658,-2.93899 3.158475,-3.88735 -0.166315,0.0444 -0.997334,-0.45265 -1.700718,-0.85036 z m 3.462175,4.79845 c -1.405193,1.67235 -2.355439,3.35411 -0.728879,4.98066 4.524009,4.52407 19.69882,-1.11019 16.946437,10.69022 6.109348,6.10935 18.859078,3.19384 27.39371,-2.91551 1.66654,-1.66656 0.69997,-2.58291 -0.668148,-3.40144 -8.458362,5.3473 -19.957869,7.67884 -25.692984,1.94368 2.752384,-11.8004 -12.422431,-6.16613 -16.946436,-10.69021 -0.198964,-0.19896 -0.172449,-0.40742 -0.3037,-0.6074 z"
+ id="path1269"
+ sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient1272);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.30175579pt"
+ d="m 107.57531,47.365247 32.87711,35.325423 c 0,0 9.7932,10.492701 2.09856,14.68978 -7.69466,4.19708 -31.12834,10.4927 -31.12834,10.4927 L 68.830422,46.540402 Z"
+ id="path1271"
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient1277);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.49509335pt"
+ d="M 56.944037,42.006087 26.165461,77.3315 c 0,0 -11.891721,10.4927 -4.197076,14.689777 7.694644,4.197078 58.409343,21.335153 94.084505,15.039533 L 75.13138,45.853409 Z"
+ id="path1276"
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient1318);fill-rule:evenodd;stroke-width:1.30175579pt"
+ d="m 82.042498,27.12255 c 4.504479,0.03329 23.422692,18.434639 28.837322,22.230809 5.41464,3.796171 4.14478,6.285951 4.14478,6.523269 L 99.839631,48.527099 98.321133,60.006943 89.939024,56.058848 77.062155,64.683915 72.081482,47.67674 65.76453,62.558018 47.967732,64.319476 48.149952,56.423287 74.438456,30.540688 c 1.907291,-1.877842 3.182156,-3.451427 7.604042,-3.418138 z"
+ id="path1317"
+ sodipodi:nodetypes="ccccccccccczz"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Title">
+ <text
+ x="48"
+ y="74.666664"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:51.20000076px;line-height:100%;font-family:Arial;writing-mode:lr-tb;text-anchor:start;display:block;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="text48">
+ <tspan
+ id="tspan415"
+ sodipodi:role="line"
+ y="74.666664"
+ x="48"
+ style="stroke-width:3.20000017pt">main() Process Flow</tspan>
+ </text>
+ <rect
+ y="176.8922"
+ x="325.83481"
+ height="70.899239"
+ width="150.84944"
+ id="rect1"
+ style="color:#000000;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" />
+ <text
+ id="text74"
+ y="220.63853"
+ x="356.0047"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="220.63853"
+ x="356.0047"
+ id="tspan75"
+ sodipodi:role="line"
+ style="stroke-width:1.06666669pt">main()</tspan></text>
+ <text
+ id="text77"
+ y="256.08817"
+ x="641.11017"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ id="tspan150"
+ sodipodi:role="line"
+ y="256.08817"
+ x="641.11017"
+ style="stroke-width:1.06666669pt">WinMain()</tspan></text>
+ <rect
+ y="207.06209"
+ x="606.41479"
+ height="85.984169"
+ width="197.61299"
+ id="rect79"
+ style="color:#000000;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.33333333, 5.33333333;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path151"
+ d="M 609.43177,249.29994 484.22673,213.09606"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.33333333, 5.33333333;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#TriangleOutL)"
+ inkscape:connector-curvature="0" />
+ <rect
+ y="330.00439"
+ x="27.152899"
+ height="70.899239"
+ width="297.1734"
+ id="rect311"
+ style="color:#000000;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" />
+ <text
+ id="text312"
+ y="373.7507"
+ x="57.322788"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ id="tspan317"
+ sodipodi:role="line"
+ y="373.7507"
+ x="57.322788"
+ style="stroke-width:1.06666669pt">sp_main_console()</tspan></text>
+ <rect
+ y="330.00439"
+ x="469.14175"
+ height="70.899239"
+ width="238.34212"
+ id="rect314"
+ style="color:#000000;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" />
+ <text
+ id="text315"
+ y="373.75076"
+ x="499.31165"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ id="tspan318"
+ sodipodi:role="line"
+ y="373.75076"
+ x="499.31165"
+ style="stroke-width:1.06666669pt">sp_main_gui()</tspan></text>
+ <path
+ sodipodi:nodetypes="cc"
+ id="path321"
+ d="m 367.3184,247.79143 -99.56063,73.91623"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#TriangleOutL)"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path393"
+ d="m 443.49739,248.5457 99.56063,73.91622"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#TriangleOutL)"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path400"
+ d="m 480.07836,401.24433 -99.56063,73.91622"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#TriangleOutL)"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path401"
+ d="m 559.27433,400.49009 99.56062,73.91622"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#TriangleOutL)"
+ inkscape:connector-curvature="0" />
+ <rect
+ y="483.83582"
+ x="72.40773"
+ height="128.22203"
+ width="383.15768"
+ id="rect402"
+ style="color:#000000;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" />
+ <text
+ id="text403"
+ y="527.58215"
+ x="103.88267"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:150%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ id="tspan420"
+ sodipodi:role="line"
+ y="527.58215"
+ x="103.88267"
+ style="stroke-width:1.06666669pt">slideshow mode</tspan><tspan
+ id="tspan421"
+ sodipodi:role="line"
+ y="565.98218"
+ x="103.88267"
+ style="stroke-width:1.06666669pt">sp_slideshow_new(files)</tspan></text>
+ <rect
+ y="483.83582"
+ x="507.71597"
+ height="126.71353"
+ width="291.13947"
+ id="rect408"
+ style="color:#000000;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" />
+ <text
+ id="text409"
+ y="527.58215"
+ x="536.29291"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:150%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ id="tspan418"
+ sodipodi:role="line"
+ y="527.58215"
+ x="536.29291"
+ style="stroke-width:1.06666669pt">editor mode</tspan><tspan
+ id="tspan419"
+ sodipodi:role="line"
+ y="565.98218"
+ x="536.29291"
+ style="stroke-width:1.06666669pt">sp_file_open(files)</tspan></text>
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="Drawing Area" />
+</svg>
diff --git a/doc/NewAppArchitecture/05-current-objects.svg b/doc/NewAppArchitecture/05-current-objects.svg
new file mode 100644
index 0000000..03ca27a
--- /dev/null
+++ b/doc/NewAppArchitecture/05-current-objects.svg
@@ -0,0 +1,1270 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg586"
+ sodipodi:version="0.32"
+ inkscape:version="0.92.0 r15304"
+ width="640pt"
+ height="480pt"
+ sodipodi:docname="05-current-objects.svg"
+ version="1.1">
+ <defs
+ id="defs588">
+ <marker
+ style="overflow:visible;"
+ id="marker358"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="DiamondL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M -1.8414239e-5,-6.0339855 -6.0339963,-7.6274277e-6 -1.8414239e-5,6.0339703 6.0339594,-7.6274277e-6 Z"
+ id="path359"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker355"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="DiamondL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M -1.8414239e-5,-6.0339855 -6.0339963,-7.6274277e-6 -1.8414239e-5,6.0339703 6.0339594,-7.6274277e-6 Z"
+ id="path356"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker352"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="DiamondL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M -1.8414239e-5,-6.0339855 -6.0339963,-7.6274277e-6 -1.8414239e-5,6.0339703 6.0339594,-7.6274277e-6 Z"
+ id="path353"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker349"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="DiamondL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M -1.8414239e-5,-6.0339855 -6.0339963,-7.6274277e-6 -1.8414239e-5,6.0339703 6.0339594,-7.6274277e-6 Z"
+ id="path350"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker346"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="DiamondL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M -1.8414239e-5,-6.0339855 -6.0339963,-7.6274277e-6 -1.8414239e-5,6.0339703 6.0339594,-7.6274277e-6 Z"
+ id="path347"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker343"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Dot_m">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt;marker-start:none;marker-end:none"
+ d="m 1.9735437,0 c 0,1.1776 -0.9557334,2.1333333 -2.13333335,2.1333333 C -1.3373897,2.1333333 -2.293123,1.1776 -2.293123,0 c 0,-1.1776 0.9557333,-2.1333333 2.13333335,-2.1333333 C 1.0178103,-2.1333333 1.9735437,-1.1776 1.9735437,0 Z"
+ id="path344"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker341"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Dot_m">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt;marker-start:none;marker-end:none"
+ d="m 1.9735437,0 c 0,1.1776 -0.9557334,2.1333333 -2.13333335,2.1333333 C -1.3373897,2.1333333 -2.293123,1.1776 -2.293123,0 c 0,-1.1776 0.9557333,-2.1333333 2.13333335,-2.1333333 C 1.0178103,-2.1333333 1.9735437,-1.1776 1.9735437,0 Z"
+ id="path342"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker338"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Dot_m">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt;marker-start:none;marker-end:none"
+ d="m 1.9735437,0 c 0,1.1776 -0.9557334,2.1333333 -2.13333335,2.1333333 C -1.3373897,2.1333333 -2.293123,1.1776 -2.293123,0 c 0,-1.1776 0.9557333,-2.1333333 2.13333335,-2.1333333 C 1.0178103,-2.1333333 1.9735437,-1.1776 1.9735437,0 Z"
+ id="path339"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker336"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Dot_m">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt;marker-start:none;marker-end:none"
+ d="m 1.9735437,0 c 0,1.1776 -0.9557334,2.1333333 -2.13333335,2.1333333 C -1.3373897,2.1333333 -2.293123,1.1776 -2.293123,0 c 0,-1.1776 0.9557333,-2.1333333 2.13333335,-2.1333333 C 1.0178103,-2.1333333 1.9735437,-1.1776 1.9735437,0 Z"
+ id="path337"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker333"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Dot_m">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt;marker-start:none;marker-end:none"
+ d="m 1.9735437,0 c 0,1.1776 -0.9557334,2.1333333 -2.13333335,2.1333333 C -1.3373897,2.1333333 -2.293123,1.1776 -2.293123,0 c 0,-1.1776 0.9557333,-2.1333333 2.13333335,-2.1333333 C 1.0178103,-2.1333333 1.9735437,-1.1776 1.9735437,0 Z"
+ id="path334"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker331"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Dot_m">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt;marker-start:none;marker-end:none"
+ d="m 1.9735437,0 c 0,1.1776 -0.9557334,2.1333333 -2.13333335,2.1333333 C -1.3373897,2.1333333 -2.293123,1.1776 -2.293123,0 c 0,-1.1776 0.9557333,-2.1333333 2.13333335,-2.1333333 C 1.0178103,-2.1333333 1.9735437,-1.1776 1.9735437,0 Z"
+ id="path332"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker328"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Dot_m">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt;marker-start:none;marker-end:none"
+ d="m 1.9735437,0 c 0,1.1776 -0.9557334,2.1333333 -2.13333335,2.1333333 C -1.3373897,2.1333333 -2.293123,1.1776 -2.293123,0 c 0,-1.1776 0.9557333,-2.1333333 2.13333335,-2.1333333 C 1.0178103,-2.1333333 1.9735437,-1.1776 1.9735437,0 Z"
+ id="path329"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker326"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Dot_m">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt;marker-start:none;marker-end:none"
+ d="m 1.9735437,0 c 0,1.1776 -0.9557334,2.1333333 -2.13333335,2.1333333 C -1.3373897,2.1333333 -2.293123,1.1776 -2.293123,0 c 0,-1.1776 0.9557333,-2.1333333 2.13333335,-2.1333333 C 1.0178103,-2.1333333 1.9735437,-1.1776 1.9735437,0 Z"
+ id="path327"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="Dot_m"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Dot_m">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt;marker-start:none;marker-end:none"
+ d="m 1.9735437,0 c 0,1.1776 -0.9557334,2.1333333 -2.13333335,2.1333333 C -1.3373897,2.1333333 -2.293123,1.1776 -2.293123,0 c 0,-1.1776 0.9557333,-2.1333333 2.13333335,-2.1333333 C 1.0178103,-2.1333333 1.9735437,-1.1776 1.9735437,0 Z"
+ id="path39"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker254"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="DiamondL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M -1.8414239e-5,-6.0339855 -6.0339963,-7.6274277e-6 -1.8414239e-5,6.0339703 6.0339594,-7.6274277e-6 Z"
+ id="path255"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker251"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="DiamondL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M -1.8414239e-5,-6.0339855 -6.0339963,-7.6274277e-6 -1.8414239e-5,6.0339703 6.0339594,-7.6274277e-6 Z"
+ id="path252"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker248"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="DiamondL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M -1.8414239e-5,-6.0339855 -6.0339963,-7.6274277e-6 -1.8414239e-5,6.0339703 6.0339594,-7.6274277e-6 Z"
+ id="path249"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="DiamondL"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="DiamondL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M -1.8414239e-5,-6.0339855 -6.0339963,-7.6274277e-6 -1.8414239e-5,6.0339703 6.0339594,-7.6274277e-6 Z"
+ id="path235"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="DiamondS"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="DiamondS">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.21333334pt;marker-start:none"
+ d="M -4.6035597e-6,-1.5084964 -1.5084991,-1.9068569e-6 -4.6035597e-6,1.5084926 1.5084899,-1.9068569e-6 Z"
+ id="path840"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker155"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path156"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleInL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker153"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path154"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker198"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path199"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleInL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker196"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path197"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker193"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path194"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleInL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker191"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path192"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker791"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path792"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker719"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path720"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleInL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker717"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path718"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker714"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path715"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleInL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker712"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path713"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker709"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path710"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleInL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker707"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path708"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker704"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path705"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleInL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker702"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path703"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="TriangleOutL"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path2817"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleInL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="TriangleInL"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path2823"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2L"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow2L"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path2863"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.73333335;stroke-linejoin:round"
+ d="M 4.363143,4.732916 -8.456553,0.01878889 4.3631437,-4.6953372 c -2.0480514,2.7832182 -2.0362505,6.5911436 -7e-7,9.4282532 z"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <linearGradient
+ id="linearGradient2570">
+ <stop
+ style="stop-color:#000000;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop2571" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.62745100;"
+ offset="0.58504134"
+ id="stop2572" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop2573" />
+ </linearGradient>
+ <linearGradient
+ xlink:href="#linearGradient1218"
+ id="linearGradient1322"
+ x1="77.599106"
+ y1="20.687101"
+ x2="53.030737"
+ y2="114.57422"
+ gradientTransform="matrix(1.3228549,0,0,1.2809931,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1273"
+ id="linearGradient1318"
+ x1="59.491886"
+ y1="30.563196"
+ x2="33.266399"
+ y2="58.199241"
+ gradientTransform="matrix(1.7409899,0,0,0.97333594,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1307"
+ x1="0.45376351"
+ y1="1.9347328"
+ x2="0.41986585"
+ y2="0.12454049"
+ gradientTransform="scale(1.004208,0.995809)" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1306"
+ x1="0.45009527"
+ y1="1.9667202"
+ x2="0.41548476"
+ y2="0.11846013"
+ gradientTransform="scale(1.006361,0.993679)" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1305"
+ x1="0.45839140"
+ y1="1.8676205"
+ x2="0.42603236"
+ y2="0.13959341"
+ gradientTransform="scale(1.002016,0.997989)" />
+ <linearGradient
+ xlink:href="#linearGradient1273"
+ id="linearGradient1277"
+ x1="11.967844"
+ y1="119.11808"
+ x2="51.413385"
+ y2="80.482086"
+ gradientTransform="matrix(1.8036348,0,0,1.2393329,-37.611189,-4.4599008)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1273"
+ id="linearGradient1272"
+ x1="118.66497"
+ y1="45.70058"
+ x2="90.28563"
+ y2="62.493129"
+ gradientTransform="matrix(1.4554449,0,0,1.1642956,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1270" />
+ <linearGradient
+ xlink:href="#linearGradient1323"
+ id="linearGradient1231"
+ x1="17.696665"
+ y1="120.74315"
+ x2="94.698939"
+ y2="120.74315"
+ gradientTransform="matrix(1.8150579,0,0,0.9336165,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1221"
+ x1="27.318817"
+ y1="170.27164"
+ x2="130.70353"
+ y2="28.120696"
+ gradientTransform="scale(1.0211162,0.97932047)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient1218">
+ <stop
+ style="stop-color:#000000;stop-opacity:1.0000000;"
+ offset="0.00000000"
+ id="stop1219" />
+ <stop
+ style="stop-color:#323232;stop-opacity:1.0000000;"
+ offset="0.073255815"
+ id="stop1321" />
+ <stop
+ style="stop-color:#000000;stop-opacity:1.0000000;"
+ offset="0.65260679"
+ id="stop1320" />
+ <stop
+ style="stop-color:#fff;stop-opacity:1;"
+ offset="1"
+ id="stop1220" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1222">
+ <stop
+ style="stop-color:#0081ac;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop1223" />
+ <stop
+ style="stop-color:#006d91;stop-opacity:0.62745100;"
+ offset="0.50000000"
+ id="stop1722" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop1224" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1273">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1.0000000;"
+ offset="0.00000000"
+ id="stop1274" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.00000000;"
+ offset="1.0000000"
+ id="stop1275" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1323">
+ <stop
+ style="stop-color:#000000;stop-opacity:0.77685952;"
+ offset="0.00000000"
+ id="stop1324" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.00000000;"
+ offset="1.0000000"
+ id="stop1325" />
+ </linearGradient>
+ <radialGradient
+ xlink:href="#linearGradient826"
+ id="radialGradient829"
+ cx="296.2963"
+ cy="281.25"
+ r="248.40302"
+ fx="303.7037"
+ fy="93.75"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.29936853,0,0,0.15858773,4.3548661,98.117152)" />
+ <linearGradient
+ id="linearGradient826">
+ <stop
+ style="stop-color:#000000;stop-opacity:0.95294118;"
+ offset="0.00000000"
+ id="stop827" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.76078433;"
+ offset="0.36585677"
+ id="stop830" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.52941179;"
+ offset="0.47107276"
+ id="stop847" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.00000000;"
+ offset="1.0000000"
+ id="stop828" />
+ </linearGradient>
+ <linearGradient
+ xlink:href="#linearGradient909"
+ id="linearGradient907"
+ x1="0.50000000"
+ y1="0.66667551"
+ x2="0.50000000"
+ y2="-1.7333326" />
+ <linearGradient
+ id="linearGradient909">
+ <stop
+ style="stop-color:#000000;stop-opacity:0.00000000;"
+ offset="0.00000000"
+ id="stop910" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.17000000;"
+ offset="1.0000000"
+ id="stop913" />
+ </linearGradient>
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1309"
+ gradientTransform="scale(2.8444445,0.4)"
+ x1="0"
+ y1="4.7369516e-15"
+ x2="300"
+ y2="4.7369516e-15"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient2570"
+ id="linearGradient1308"
+ x1="-0.0028122679"
+ y1="1365.4825"
+ x2="64.30938"
+ y2="1365.4825"
+ gradientTransform="scale(13.227991,0.0860129)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient826"
+ id="radialGradient37593"
+ cx="296.2963"
+ cy="281.25"
+ fx="303.7037"
+ fy="93.75"
+ r="248.40302"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4203424,0,0,0.08699077,-33.810677,100.89451)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient37595"
+ x1="33.344169"
+ y1="164.17808"
+ x2="131.82116"
+ y2="28.775105"
+ gradientTransform="scale(1.0839555,1.0496536)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient37597"
+ x1="31.731446"
+ y1="165.85049"
+ x2="131.57971"
+ y2="28.562063"
+ gradientTransform="scale(1.0848907,1.0487488)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient37599"
+ x1="35.171777"
+ y1="162.0032"
+ x2="131.8238"
+ y2="29.109513"
+ gradientTransform="scale(1.0846262,1.0490045)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient37601"
+ x1="37.676606"
+ y1="159.47478"
+ x2="132.33793"
+ y2="29.318235"
+ gradientTransform="scale(1.0823063,1.051253)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient37603"
+ x1="29.920773"
+ y1="167.66146"
+ x2="131.16846"
+ y2="28.448861"
+ gradientTransform="scale(1.0869998,1.0467139)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient37605"
+ x1="27.318817"
+ y1="170.27164"
+ x2="130.70353"
+ y2="28.120696"
+ gradientTransform="scale(1.0891906,1.0446085)"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.1640625"
+ inkscape:cx="426.66667"
+ inkscape:cy="320"
+ inkscape:window-width="1248"
+ inkscape:window-height="964"
+ inkscape:window-x="24"
+ inkscape:window-y="25"
+ showguides="true"
+ inkscape:guide-bbox="false"
+ inkscape:current-layer="layer2"
+ showgrid="true"
+ inkscape:guide-points="true"
+ gridtolerance="50.000000pt"
+ inkscape:grid-points="true"
+ inkscape:grid-bbox="true"
+ inkscape:window-maximized="0">
+ <inkscape:grid
+ id="GridFromPre046Settings"
+ type="xygrid"
+ originx="0"
+ originy="0"
+ spacingx="7.1111111"
+ spacingy="7.1111111"
+ color="#3f3fff"
+ empcolor="#3f3fff"
+ opacity="0.15"
+ empopacity="0.38"
+ empspacing="5" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata33">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer1"
+ inkscape:label="Background"
+ style="display:block">
+ <rect
+ style="font-size:12px;fill:url(#linearGradient1309);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.20000017pt"
+ id="topbluebox"
+ width="853.33331"
+ height="120"
+ x="0"
+ y="1.8947807e-15" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient1308);stroke-width:5.31674433;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M -0.03652902,117.55657 850.68323,117.34163"
+ id="path654"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0" />
+ <g
+ id="g1085"
+ transform="translate(689.36448,-10.40511)">
+ <g
+ id="g1394"
+ transform="matrix(0.875802,0,0,0.869278,1.1184885,-8.4967275)">
+ <ellipse
+ id="path898"
+ style="opacity:0.69398911;fill:url(#radialGradient37593);stroke-width:0.84729707;stroke-dashoffset:0"
+ cx="92.292046"
+ cy="126.99174"
+ rx="126.10272"
+ ry="26.097233" />
+ <ellipse
+ id="ball1"
+ style="fill:url(#radialGradient829);stroke-width:0.96546245;stroke-dashoffset:0"
+ cx="94.165428"
+ cy="145.69347"
+ rx="89.810562"
+ ry="47.576321" />
+ </g>
+ <g
+ id="g1310"
+ transform="matrix(1.822197,0,0,1.662749,-192.00875,13.084299)"
+ style="fill:url(#linearGradient1221)">
+ <path
+ style="fill:url(#linearGradient37595);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 148.55614,11.815593 c -2.18769,1e-6 -4.39029,0.823628 -6.06667,2.5 l -29.76666,29.8 c -1.64308,1.643032 -2.50068,3.78929 -2.53334,5.933333 -4.6e-4,0.03598 0,0.09736 0,0.133333 h 0.0667 c 0.57027,2.16974 15.28934,4.922713 16.93333,6.566667 2.48272,2.482738 -9.51602,4.317248 -7.03333,6.8 2.48271,2.482709 15.01704,4.783915 17.5,7.266669 2.48273,2.48272 -5.08275,5.11728 -2.6,7.6 2.48272,2.482753 10.81047,-0.609259 9.3,5.866667 3.35273,3.352736 10.34963,1.752736 15.03333,-1.6 2.48272,-2.482721 -4.74941,-2.250614 -2.26666,-4.733334 2.48272,-2.482752 8.75277,-2.494421 14.03333,-8.433335 -2.12548,-3.305654 -9.08274,-4.717259 -6.6,-7.2 2.48272,-2.482715 7.28509,-1.236886 17.7,-5.966667 5.08413,-2.309024 4.68613,-4.040355 4.66667,-6.166667 -4.1e-4,-0.04475 0,-0.08825 0,-0.133333 h -0.0333 c -0.0326,-2.144041 -0.85698,-4.290298 -2.5,-5.933333 l -29.8,-29.8 c -1.67637,-1.67637 -3.84565,-2.5 -6.03334,-2.5 z m -0.26667,3.866666 c 0.97256,0.02533 1.75986,0.768324 3.3,1.766667 l 14.06667,10.433333 c 0.15408,0.09991 0.29855,0.192996 0.43333,0.3 0.1348,0.10699 0.28452,0.220015 0.4,0.333334 0.11548,0.113111 0.20364,0.248218 0.3,0.366666 0.0961,0.118429 0.18984,0.244093 0.26667,0.366667 0.077,0.122774 0.14229,0.240765 0.2,0.366667 0.0577,0.126131 0.0949,0.238188 0.13333,0.366666 0.0386,0.128282 0.0808,0.270352 0.1,0.4 0.0193,0.12988 0.0333,0.269763 0.0333,0.4 l -8.33333,-4.033333 -0.83334,6.3 -4.6,-2.166667 -7.06666,4.733334 -2.73334,-9.333334 -3.46666,8.166667 -9.76667,0.966667 0.1,-4.333334 c 0,-1.042224 5.64516,-8.329604 9.06666,-10.066666 l 6.26667,-4.5 c 0.92408,-0.599006 1.54979,-0.848535 2.13333,-0.833334 z m -12.93333,42.6 c 4.43676,1.15063 9.37288,2.639674 13.33333,2.666667 l 0.16667,1.8 c -3.39138,-0.349579 -10.57471,-2.002379 -12.26667,-2.866667 z m 46.23333,7.9 c -0.67728,-0.02171 -1.31822,0.0462 -1.8,0.166667 -0.90833,0.226965 -5.321,0.331531 -4.96666,3.166667 3.89845,1.416876 9.92489,2.502007 10.63333,-0.333334 0.53176,-2.12593 -1.83484,-2.93489 -3.86667,-3 z m -50.96666,5.766669 c -0.61333,-0.07148 -1.21336,0.0042 -1.8,0.3 -2.34598,1.183349 -3.92502,3.81264 -1.73334,4.9 2.19191,1.08736 3.74516,-0.150741 5.66667,-1.5 1.92173,-1.349045 1.87228,-1.612875 1.73333,-2.133333 -0.26601,0.07094 -2.02669,-1.352235 -3.86666,-1.566667 z m 42.86666,0.466667 c -1.77199,0.708629 -1.75118,3.170389 -0.33333,4.233333 1.41748,1.063157 3.19156,0.375499 3.9,-0.333333 0.70902,-0.70863 -0.023,-3.19136 -3.56667,-3.9 z"
+ id="path1278"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient37597);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 147.16667,11.433333 c -3.48238,0.364902 -5.88303,3.345755 -8.33158,5.570373 -8.94544,9.133798 -18.09349,18.101949 -26.95799,27.294024 -1.44334,1.84378 -2.03035,4.015468 -2.31043,6.30227 5.03542,3.678658 11.71157,3.699536 17.06666,6.766667 -1.50817,2.381747 -5.17846,2.289571 -6.84097,4.663825 -1.44519,0.973702 0.60698,2.569614 1.6838,2.93719 4.47582,2.259905 9.5207,3.127075 13.9674,5.505719 2.30619,0.164974 2.15073,2.483836 0.6201,3.623175 -1.21232,1.221254 -3.08705,3.249751 -1.23288,4.771441 2.26675,1.575369 5.27199,1.144095 7.80255,2.065316 1.77826,0.975122 0.51639,2.738136 1.73334,3.966667 3.05603,2.396513 7.28787,1.973693 10.69445,0.606201 1.75151,-0.515126 3.34201,-1.653286 4.87221,-2.539534 1.47613,-1.720326 -0.82595,-2.9513 -2.13333,-3.666667 -0.85913,-1.425274 2.00009,-1.997097 2.97462,-2.675578 3.73665,-1.514529 7.36553,-3.267329 10.23683,-6.143331 1.79011,-1.105032 -0.83882,-2.676851 -1.67812,-3.547758 -1.55141,-1.15048 -3.58938,-1.860548 -4.56666,-3.633333 2.52043,-2.7807 6.7319,-2.262194 9.98204,-3.687561 3.90317,-0.992642 7.61596,-2.729652 11.05532,-4.741974 2.26951,-1.69135 1.67257,-4.636557 1.22998,-7.021773 -1.61839,-5.025589 -6.41885,-8.01283 -9.81146,-11.814386 -7.61983,-7.514247 -15.1255,-15.17228 -22.81612,-22.597384 -2.05244,-1.578655 -4.64151,-2.423668 -7.23976,-2.003589 z M 149.5,16.766667 c 5.52064,4.046284 11.05387,8.077891 16.56667,12.133333 0.11539,1.103552 -2.90244,-1.172627 -4.0558,-1.481882 -1.41219,-0.420198 -3.8964,-2.894916 -3.5025,0.03341 -0.60562,1.192982 0.31151,5.203671 -1.4377,4.28052 -1.58183,-0.849857 -3.68447,-2.113891 -5.18058,-0.378679 -1.61892,1.082213 -3.23783,2.164425 -4.85676,3.246637 -0.9783,-3.377623 -1.95211,-6.756554 -2.93333,-10.133333 -1.34602,3.127884 -2.66477,6.267483 -4,9.4 -2.92222,0.288888 -5.84445,0.577778 -8.76667,0.866667 -0.20184,-2.166309 0.27133,-4.341771 1.77562,-5.878158 3.25057,-5.211552 8.66632,-8.395371 13.54451,-11.865011 0.95273,-0.564092 1.80847,-0.493262 2.84654,-0.223498 z m -8.63333,43.566666 c 2.34366,0.607254 4.78296,0.727797 7.16666,1.133334 -0.90625,1.084587 -3.14277,-0.32439 -4.56523,-0.371058 -1.8583,-0.406252 -3.7163,-0.80007 -5.4681,-1.562276 0.95555,0.266667 1.91111,0.533334 2.86667,0.8 z m 38.86666,5.4 c -2.15488,0.501536 -5.22675,0.793815 -5.5,3.566667 0.70833,1.029809 2.96093,1.412478 4.40801,1.688268 2.27503,0.363118 5.38493,1.181831 6.97878,-0.937576 1.36135,-1.898234 -0.67459,-4.313995 -2.78769,-4.178768 -1.02575,-0.350017 -2.04343,-0.268702 -3.0991,-0.138591 z m -51.03333,5.9 c -1.57612,1.085018 -3.71575,2.720281 -3.03333,4.9 1.61184,2.339234 4.94529,1.683368 6.78753,-0.0057 1.2184,-0.692559 3.25469,-2.021692 2.31247,-3.560997 -1.93436,-0.840999 -3.87915,-2.117169 -6.06667,-1.333334 z m 44.36667,0.333334 c -1.34895,0.891833 -1.89168,2.759628 -0.95675,4.109348 0.71622,1.795233 3.11379,1.982508 4.57991,1.004604 1.95986,-0.600235 1.10016,-3.109938 -0.33003,-3.844913 -0.72045,-0.899439 -2.36482,-1.335642 -3.29313,-1.269039 z"
+ id="path1283"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient37599);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 146.23333,12.866667 c -3.88385,1.702193 -6.61189,5.324961 -9.67052,8.210746 -7.86956,8.018198 -15.90416,15.90198 -23.69161,23.983409 -1.11331,1.428597 -1.72615,3.060044 -2.00453,4.839178 4.36,3.072638 10.04495,3.23545 14.7573,5.603266 1.5625,0.15548 3.26141,1.73801 1.81635,3.072207 -1.86501,1.91956 -5.15011,2.084779 -6.70699,4.291194 4.05269,2.923397 9.10625,3.602288 13.58014,5.613093 1.52915,1.119169 4.28812,1.21833 4.3532,3.553573 -0.41298,2.06712 -2.47344,3.267809 -3.36667,5.133334 1.94434,2.744072 5.94438,1.261888 8.50547,3.040805 1.3908,0.857738 1.00828,2.693049 1.62108,3.831047 3.2048,2.344549 7.71164,1.319869 10.94656,-0.558135 1.04365,-0.353733 3.89943,-1.626855 1.76272,-2.556043 -1.55651,-0.349067 -2.86028,-2.213166 -1.35103,-3.402938 3.84858,-2.931245 9.10998,-3.601158 12.55258,-7.214396 1.79927,-1.361045 -1.31628,-2.560541 -2.24828,-3.336495 -1.41778,-1.044797 -3.86698,-2.048091 -3.55577,-4.137179 2.35965,-3.274836 6.88107,-2.833411 10.31383,-4.263585 3.90311,-0.957377 7.67689,-2.630842 11.10878,-4.611597 2.18816,-1.940094 1.07405,-5.046756 0.32835,-7.371909 -3.93266,-5.513287 -9.35396,-9.75581 -13.9708,-14.686024 -5.91778,-5.783657 -11.65452,-11.813723 -17.68454,-17.444607 -2.14828,-1.370565 -4.63208,-2.556154 -7.20805,-1.62333 z m 2.3,2.233333 c 5.45973,2.578599 9.80753,6.890051 14.73244,10.347527 1.85084,1.664819 5.00363,2.778901 4.9009,5.71914 -1.78479,0.428996 -3.34725,-1.396857 -5.04898,-1.86837 -1.54021,-0.520034 -4.1213,-2.963549 -3.68846,0.16232 -0.54825,1.127161 0.22527,4.775461 -1.23798,4.170178 -1.53672,-0.653008 -3.2567,-1.905943 -4.87859,-1.758173 -2.31413,1.577535 -4.63724,3.142054 -6.94599,4.727378 -0.87266,-2.83558 -1.68407,-5.690403 -2.53334,-8.533333 -1.12707,2.260756 -1.98302,4.959333 -3.26666,6.966666 -3.47777,0.344565 -6.95563,0.688221 -10.43334,1.033334 0.0287,-2.531437 -0.43925,-5.398577 1.54821,-7.372648 3.13073,-5.303181 8.62883,-8.494145 13.35179,-12.127352 1.15867,-0.426692 2.35212,-1.253526 3.5,-1.466667 z m -13.76666,42.4 c 4.77393,1.272573 9.58904,2.318786 14.5,2.9 0.93608,1.872033 -0.34236,3.482335 -2.33168,2.565935 -3.62332,-0.734316 -7.25018,-1.727438 -10.80166,-2.699268 -0.26564,-0.514085 -3.09159,-3.378118 -1.36666,-2.766667 z m 45.16666,9.433333 c -1.51493,0.422114 -3.72691,0.290818 -4.26666,2.133334 2.90995,0.556827 6.05202,2.002088 8.9,0.466666 0.978,-1.977585 -1.92783,-2.538134 -3.31385,-2.645499 -0.43983,0.01517 -0.87966,0.03034 -1.31949,0.0455 z m -50.9,5.866667 c -1.16024,0.90047 -3.46737,3.083937 -1.02728,3.858837 2.25255,0.543858 3.96147,-1.380385 5.62728,-2.558837 -1.18522,-1.161836 -2.98479,-1.601218 -4.6,-1.3 z m 44.03334,0.733333 c -1.04902,2.027564 1.90687,4.021482 3.28133,2.230908 0.70415,-1.13156 -2.36473,-3.118333 -3.28133,-2.230908 z"
+ id="path1286"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient37601);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 146.66667,13.4 c -6.33172,3.543401 -10.68888,9.547281 -15.90063,14.447274 -5.8861,6.073656 -12.00588,11.974663 -17.74737,18.155152 -0.7305,1.178656 -2.18908,3.828459 -0.0714,4.248788 4.9013,2.576465 10.86092,2.972757 15.3194,6.215453 1.00861,2.475215 -2.05916,3.484953 -3.70454,4.477414 -1.7373,0.545523 -3.75405,2.175563 -0.84454,2.774326 4.83335,2.60598 10.58594,3.28132 15.01575,6.64826 1.43136,2.33294 -1.26292,4.394234 -2.23809,6.238069 0.0119,1.908953 2.8242,1.486185 4.14874,2.002826 2.29679,0.177914 4.75661,1.464231 4.98406,3.992952 0.7695,2.00242 3.5144,2.068656 5.37195,2.066153 2.47607,-0.312856 4.61313,-1.6278 6.86667,-2.6 -0.11425,-1.550102 -2.69456,-1.700315 -2.36667,-3.6 1.99363,-3.193298 6.06476,-3.869656 9.11608,-5.707796 1.73236,-0.750835 3.28599,-1.893245 4.45059,-3.392204 -1.92497,-2.280272 -5.74204,-3.012313 -6.11314,-6.406102 0.39022,-1.188208 2.2736,-2.314015 3.60639,-2.891301 5.6785,-2.143002 11.88985,-2.970298 17.10185,-6.270592 2.74324,-1.108432 1.83527,-4.538836 1.0317,-6.686009 -2.29624,-3.22589 -5.40132,-6.000174 -8.00828,-9.052576 -2.68656,-2.760044 -5.48876,-5.408427 -8.21852,-8.126754 1.12365,1.634362 -0.99109,2.422313 -2.21269,1.401868 -2.03118,-0.886068 -4.05629,-1.760173 -6.12064,-2.568534 C 160.05314,30.54272 159.67649,32.269964 159.3,34 c -2.55377,0.684822 -5.03322,-2.683187 -7.35336,-0.501311 -1.91379,1.060257 -3.40719,2.847058 -5.45058,3.513153 -1.46281,-0.265507 -1.26699,-3.243895 -2.01992,-4.618246 -0.44179,-3.083731 -1.2118,-2.404985 -2.14312,0.123134 -0.85365,1.59882 -1.21984,3.834303 -3.53335,3.298267 -3.08878,0.306225 -6.17762,0.611598 -9.26633,0.918336 0.0202,-3.177717 -0.28551,-6.766 2.22768,-9.171123 3.51639,-4.960964 8.70856,-8.341185 13.55479,-11.782731 1.62219,-0.752906 3.63701,-1.872712 5.13828,-0.273654 3.97373,2.727514 8.02021,5.285521 11.74591,8.327508 -3.19568,-3.018643 -6.19482,-6.317986 -9.51099,-9.164539 -1.87897,-0.938934 -3.8675,-2.092901 -6.02238,-1.268794 z m -11.83334,43.5 c 5.00075,0.984495 9.99566,2.003225 15,2.966667 0.20732,1.45664 0.46427,3.886308 -1.67313,3.831478 -4.16789,-0.795987 -8.38205,-1.956384 -12.49353,-3.031478 -0.61549,-0.980519 -2.50897,-2.472939 -1.9,-3.466667 0.35063,-0.05103 0.72399,-0.354699 1.06666,-0.3 z m 42.8,11.166667 c -1.73875,1.086025 2.33789,1.138186 3.27372,1.439238 1.30579,0.375237 4.48185,-0.551342 2.02628,-1.672572 -1.83243,-0.401834 -3.50784,-0.360679 -5.3,0.233334 z M 128.86667,73.8 c -2.17346,1.397366 -0.18414,3.053084 1.5865,1.699463 2.04828,-0.249261 2.08866,-2.343116 -0.17211,-2.051831 -0.54677,-0.07524 -0.99718,-0.0549 -1.41439,0.352368 z m 44.76666,1.133333 c 2.4133,2.30436 1.83777,-1.778179 0,-0.492892 0,0.102368 0,0.430964 0,0.492892 z"
+ id="path1295"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient37603);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 146.4,11 c -2.85517,0.532698 -4.88261,2.920832 -7.04143,4.696624 -9.46036,9.318687 -18.69953,18.903094 -28.02524,28.336709 -1.28513,2.140689 -2.02923,4.453081 -2.46666,6.9 4.02374,2.003945 8.08967,3.86007 12.47179,4.935568 1.05804,0.665393 4.69014,0.890135 3.49487,2.397766 -2.29866,1.221998 -5.17006,2.048868 -6.16666,4.733333 1.94556,3.411999 6.27529,3.61226 9.48467,5.236915 2.69399,1.065471 5.388,2.130945 8.08199,3.196418 0.0835,2.815831 -0.6308,1.873266 -2.05017,0.611648 -2.17089,-1.1027 -5.39205,-2.114404 -7.09766,0.274746 -1.55046,0.944625 -2.75719,3.349765 -1.57432,4.866099 2.21286,2.398176 6.00771,1.27668 8.06067,-0.779037 0.17795,-0.191378 -0.29693,2.877758 1.42073,3.193938 2.34275,1.346613 5.33929,0.970157 7.67409,2.299273 0.45283,1.979683 1.2508,4.221333 3.5739,4.531638 3.66844,1.48315 7.80683,0.39212 11.09794,-1.541311 1.39792,-0.760174 4.07797,-1.323747 3.46357,-3.423687 -0.0478,-1.38074 -3.42818,-2.212653 -1.53541,-3.499973 4.53006,-2.016167 9.17312,-4.142848 12.66666,-7.733334 0.85723,-2.253596 -2.25712,-3.193724 -3.46666,-4.566666 -1.4517,-1.221069 -3.87877,-2.524433 -0.81856,-3.364818 5.62839,-2.111859 11.87228,-2.940184 17.03456,-6.263438 2.72995,-0.86584 3.85371,-3.957742 3.06767,-6.564064 -0.0255,-2.62475 -1.76154,-4.797622 -3.22224,-6.835657 C 179.45289,36.856816 173.58197,31.828345 168.24204,26.291461 163.60188,21.818095 159.14228,17.065484 154.39198,12.762657 151.99166,11.220691 149.22884,10.717147 146.4,11 Z m 3.36667,6.733333 c 4.24058,2.976224 8.38139,6.129328 12.6,9.166667 -1.29937,-0.797366 -2.67486,-1.290978 -4.2,-1.4 -0.21287,1.824575 -0.47054,3.643999 -0.7,5.466667 -1.97534,-0.587625 -4.21204,-1.778592 -5.97773,-0.09263 -1.30676,0.402533 -3.52226,3.290581 -4.25972,2.135968 -0.99915,-3.447628 -1.99405,-6.896491 -2.99589,-10.343339 -1.52265,3.539479 -3.02044,7.089652 -4.53333,10.633333 -2.56667,0.255555 -5.13333,0.511111 -7.7,0.766667 -0.0148,-3.662276 2.83591,-6.395601 5.07235,-8.959274 3.30461,-2.837611 6.75708,-5.60858 10.52338,-7.756865 0.7316,-0.360909 1.44586,0.250944 2.17094,0.382806 z m 26.36666,48.333334 C 174.87994,66.86218 172.84987,68.441375 174.2,70 c 2.62772,1.71982 5.90645,1.835937 8.93343,1.934762 2.25075,-0.06272 4.4688,-2.726652 2.93663,-4.770688 -1.42803,-2.456455 -4.67977,-1.908377 -7.06627,-1.883005 -0.95681,0.261868 -1.91364,0.523732 -2.87046,0.785598 z m -3.3,5.433333 c -1.27562,1.033534 -1.85687,2.841465 -1.35231,4.508785 0.43077,1.899535 2.6256,2.385569 4.29198,1.849858 2.50838,0.201444 3.52565,-3.378484 1.43654,-4.628378 -1.24197,-1.050288 -2.64377,-2.095016 -4.37621,-1.730265 z"
+ id="path1300"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient37605);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 146,10.2 c -5.57009,2.353735 -9.31153,7.276932 -13.56394,11.364379 -7.26121,7.360863 -14.57305,14.685571 -21.80273,22.068954 -0.92375,2.588329 -1.83526,5.181133 -2.76666,7.766667 5.12606,2.235525 10.28103,4.361596 15.6,6.1 -0.32712,1.554459 -2.93579,1.371077 -3.74338,2.860476 -1.43416,0.914482 -2.37188,3.411157 -0.36803,4.245199 3.1673,2.975582 7.51398,4.048213 11.44474,5.660992 -3.09041,-0.89746 -5.13867,2.363507 -6.33333,4.666666 -0.72155,2.880448 2.58866,4.694489 5.06851,4.276737 1.54135,0.553684 3.66,-2.522746 3.86807,-0.13866 2.29497,2.607941 6.70581,1.993255 9.10076,4.436609 0.7749,2.147771 2.55461,3.943898 4.94541,3.965707 2.15881,0.621481 4.27216,0.328386 6.35476,-0.418515 2.43249,-0.54992 4.74804,-1.764623 6.87594,-2.976017 1.61013,-1.140622 1.25617,-3.709454 -0.21345,-4.812527 -0.21701,-1.714746 2.45466,-1.738353 3.54015,-2.659077 2.92458,-1.339302 5.49291,-3.216603 7.95985,-5.240923 -1.09048,1.568168 -1.50221,3.637034 -0.89348,5.420276 1.02957,2.431889 4.09705,1.779572 6.16014,1.64639 C 179.29546,77.451445 180.09314,74.273508 178,72.9 c -3.03927,-1.879702 -0.42819,-1.002977 1.49692,-0.460891 2.38484,0.141742 5.36949,0.891675 6.99369,-1.418947 1.80089,-1.737129 0.66941,-4.475043 -1.05728,-5.820162 -2.14881,-1.14371 -4.72742,-0.810973 -7.057,-0.699886 -2.09119,0.370608 -3.67839,1.613047 -4.97633,3.233219 -1.58756,1.272788 1.82748,3.61782 -0.0532,3.147933 -1.36163,0.234395 0.30799,-2.483632 -1.32358,-3.36862 -1.06348,-1.560896 -2.85826,-2.534055 -4.1899,-3.879313 6.43141,-3.110773 13.94477,-3.952924 19.7,-8.433333 2.10991,-2.5028 1.15052,-5.815831 0.53333,-8.666667 C 184.23156,39.549156 177.84192,34.54079 172.35319,28.898191 166.50884,23.205036 160.69939,17.462459 154.83333,11.8 152.27799,10.77259 149.66457,10.063772 146.88646,10.206305 146.60075,10.233991 146.27214,10.101959 146,10.2 Z m 7.6,11.266667 c 1.51374,1.165288 3.04586,2.309495 4.56667,3.466666 -1.39718,1.06872 -0.90296,3.127104 -1.4,4.633334 -2.08576,-0.566112 -4.35694,-0.641822 -6.05767,0.905733 -1.05102,0.888519 -3.01815,1.872214 -3.17799,-0.196242 -0.93874,-3.234383 -1.83,-6.48501 -2.79768,-9.709491 1.63294,-0.494373 3.30094,-3.132711 4.90134,-1.63781 1.32178,0.845937 2.64355,1.691873 3.96533,2.53781 z m -14.36667,10.966666 c -1.96666,0.2 -3.93333,0.4 -5.9,0.6 0.75323,-3.751583 3.85837,-6.37712 6.49928,-8.892012 1.44608,-1.049755 2.80293,-2.240606 4.30072,-3.207988 -1.63333,3.833334 -3.26666,7.666667 -4.9,11.5 z"
+ id="path1304"
+ inkscape:connector-curvature="0" />
+ </g>
+ <path
+ style="fill:url(#linearGradient1322);fill-rule:evenodd;stroke-width:1.30175579pt"
+ d="m 80.606138,21.093974 c -3.986404,2e-6 -7.999981,1.500815 -11.054664,4.555494 L 15.31073,79.950952 c -2.994002,2.993929 -4.556718,6.904836 -4.616235,10.811705 -8.35e-4,0.06557 0,0.177392 0,0.24296 h 0.12148 c 1.039149,3.953694 27.860205,8.970154 30.855878,11.965763 4.524006,4.52404 -17.340071,7.86688 -12.816122,12.39094 4.523986,4.52399 27.364021,8.71724 31.888455,13.2413 4.524026,4.52402 -9.261778,9.3247 -4.737714,13.8487 4.524006,4.52407 19.69882,-1.11018 16.946437,10.69023 6.109347,6.10935 18.859073,3.19383 27.393701,-2.91552 4.52401,-4.524 -8.654358,-4.10106 -4.130314,-8.62506 4.524004,-4.52406 15.949294,-4.54533 25.571504,-15.3672 -3.87306,-6.02355 -16.55055,-8.59578 -12.0265,-13.11982 4.524,-4.524 13.27486,-2.25385 32.25288,-10.87245 9.26429,-4.207497 8.53905,-7.362324 8.50359,-11.236883 -7.4e-4,-0.08153 0,-0.160805 0,-0.24296 h -0.0608 c -0.0595,-3.906866 -1.56157,-7.817769 -4.55549,-10.811705 L 91.600063,25.649468 C 88.5454,22.594793 84.592543,21.093974 80.606138,21.093974 Z M 56.553132,105.76542 c 8.084647,2.09667 17.079247,4.81 24.295966,4.85919 l 0.3037,3.27996 c -6.179767,-0.63701 -19.269208,-3.64874 -22.352289,-5.22364 z m 84.246258,14.39535 c -1.23415,-0.0395 -2.40206,0.0842 -3.27996,0.3037 -1.65516,0.41359 -9.69592,0.60412 -9.05025,5.7703 7.10376,2.58184 18.08512,4.55915 19.37604,-0.6074 0.96897,-3.87387 -3.34345,-5.34795 -7.04583,-5.4666 z m -92.871326,10.50801 c -1.117595,-0.13024 -2.210972,0.008 -3.279956,0.54666 -4.274826,2.15631 -7.152149,6.94739 -3.158474,8.92877 3.99408,1.98139 6.824425,-0.27467 10.325785,-2.7333 3.501767,-2.45822 3.411658,-2.93897 3.158475,-3.88735 -0.484734,0.12928 -3.693025,-2.46403 -7.04583,-2.85478 z m 78.111516,0.85036 c -3.22891,1.29126 -3.19098,5.77708 -0.60739,7.71397 2.58293,1.93728 5.81565,0.68424 7.10657,-0.6074 1.29198,-1.29126 -0.042,-5.81528 -6.49918,-7.10657 z"
+ id="path1217"
+ sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient1231);fill-rule:evenodd;stroke-width:1.30175579pt"
+ d="m 11.977124,84.576671 c -0.883927,1.953959 -1.36513,4.04141 -1.397018,6.134731 -8.33e-4,0.06556 0,0.177399 0,0.24296 h 0.12148 c 0.994358,3.78327 25.07956,8.512878 29.823299,11.540588 2.091809,-1.24429 3.465756,-2.547484 2.065157,-3.948099 C 39.594368,95.551236 12.773315,90.53478 11.734165,86.581087 h -0.12148 c 0,-0.06558 -8.33e-4,-0.177399 0,-0.242958 0.0091,-0.601939 0.284168,-1.162709 0.364439,-1.761458 z M 150.34262,92.47286 c -1.0612,1.680115 -3.10061,3.387829 -7.41026,5.345111 -18.97801,8.618589 -27.72886,6.348449 -32.25287,10.872439 -1.37053,1.37052 -0.88153,2.54264 0.18222,3.70513 4.78924,-3.38639 13.4115,-2.19944 31.03808,-10.20429 8.00504,-3.635614 8.46503,-6.511246 8.44283,-9.71839 z m -92.871299,8.86803 2.247377,2.9155 c 3.08308,1.57491 16.17252,4.58665 22.352289,5.22364 l -0.303699,-3.27996 c -7.216719,-0.0492 -16.21132,-2.7625 -24.295967,-4.85918 z M 30.685018,111.4237 c -2.022925,1.2244 -3.320206,2.51079 -1.943676,3.88736 4.523988,4.52399 27.364021,8.71723 31.888455,13.2413 0.198962,0.19895 0.17245,0.40741 0.3037,0.6074 1.405197,-1.67236 2.355425,-3.35413 0.728879,-4.98067 -4.359755,-4.3594 -25.379991,-8.41841 -30.977358,-12.75539 z m 100.220842,10.75097 c -1.55381,0.80713 -2.80902,1.9449 -2.55108,4.00882 7.10375,2.58184 18.08511,4.55915 19.37603,-0.60738 0.25122,-1.00435 0.11312,-1.85114 -0.24296,-2.55108 -3.06888,2.47706 -10.66085,1.09402 -16.58199,-0.85036 z m -11.17612,2.18664 c -8.90094,7.91694 -18.52655,8.74738 -22.595255,12.81612 -1.63664,1.63663 -0.713263,2.53048 0.6074,3.34069 5.191475,-3.47749 15.190165,-4.50342 23.931535,-14.33463 -0.44804,-0.69679 -1.30027,-1.20938 -1.94368,-1.82218 z m 5.0414,8.01767 c -1.86829,1.81567 -1.62997,5.17107 0.54666,6.80287 2.58292,1.93727 5.81565,0.68422 7.10656,-0.6074 0.66392,-0.66356 0.57592,-2.15087 -0.48592,-3.6444 -1.57518,0.81115 -3.6457,1.33536 -5.58806,-0.12148 -0.82081,-0.61535 -1.29544,-1.48388 -1.57924,-2.42959 z m -71.612353,0.24296 c -0.216533,0.15768 -0.17254,0.18708 -0.42518,0.36444 -3.501359,2.45861 -6.331704,4.7147 -10.325785,2.73329 -0.835138,-0.41433 -1.173493,-1.0297 -1.457758,-1.63998 -1.775949,2.19005 -2.210285,4.70572 0.425179,6.01325 3.994085,1.98138 6.824427,-0.27468 10.325787,-2.73329 3.50177,-2.45823 3.411658,-2.93899 3.158475,-3.88735 -0.166315,0.0444 -0.997334,-0.45265 -1.700718,-0.85036 z m 3.462175,4.79845 c -1.405193,1.67235 -2.355439,3.35411 -0.728879,4.98066 4.524009,4.52407 19.69882,-1.11019 16.946437,10.69022 6.109348,6.10935 18.859078,3.19384 27.39371,-2.91551 1.66654,-1.66656 0.69997,-2.58291 -0.668148,-3.40144 -8.458362,5.3473 -19.957869,7.67884 -25.692984,1.94368 2.752384,-11.8004 -12.422431,-6.16613 -16.946436,-10.69021 -0.198964,-0.19896 -0.172449,-0.40742 -0.3037,-0.6074 z"
+ id="path1269"
+ sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient1272);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.30175579pt"
+ d="m 107.57531,47.365247 32.87711,35.325423 c 0,0 9.7932,10.492701 2.09856,14.68978 -7.69466,4.19708 -31.12834,10.4927 -31.12834,10.4927 L 68.830422,46.540402 Z"
+ id="path1271"
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient1277);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.49509335pt"
+ d="M 56.944037,42.006087 26.165461,77.3315 c 0,0 -11.891721,10.4927 -4.197076,14.689777 7.694644,4.197078 58.409343,21.335153 94.084505,15.039533 L 75.13138,45.853409 Z"
+ id="path1276"
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient1318);fill-rule:evenodd;stroke-width:1.30175579pt"
+ d="m 82.042498,27.12255 c 4.504479,0.03329 23.422692,18.434639 28.837322,22.230809 5.41464,3.796171 4.14478,6.285951 4.14478,6.523269 L 99.839631,48.527099 98.321133,60.006943 89.939024,56.058848 77.062155,64.683915 72.081482,47.67674 65.76453,62.558018 47.967732,64.319476 48.149952,56.423287 74.438456,30.540688 c 1.907291,-1.877842 3.182156,-3.451427 7.604042,-3.418138 z"
+ id="path1317"
+ sodipodi:nodetypes="ccccccccccczz"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Title">
+ <rect
+ style="color:#000000;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ id="rect148"
+ width="100.73548"
+ height="66.026642"
+ x="491.93118"
+ y="473.97336"
+ ry="14.222222"
+ rx="14.222222" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path354"
+ d="m 586.66667,533.33333 v 73.33334"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker-start:url(#DiamondL);marker-end:none"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="color:#000000;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ id="rect149"
+ width="100.73548"
+ height="66.026642"
+ x="480.15344"
+ y="486.41779"
+ ry="14.222222"
+ rx="14.222222" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path357"
+ d="m 573.33333,546.66667 v 60"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker-start:url(#DiamondL);marker-end:none"
+ inkscape:connector-curvature="0" />
+ <text
+ x="48"
+ y="74.666664"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:51.20000076px;line-height:100%;font-family:Arial;writing-mode:lr-tb;text-anchor:start;display:block;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="text48">
+ <tspan
+ x="48"
+ y="74.666664"
+ sodipodi:role="line"
+ id="tspan1"
+ style="stroke-width:3.20000017pt">Current Objects</tspan>
+ </text>
+ <path
+ style="color:#000000;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ d="M 100,173.33333 H 766.66667 V 240 H 100 Z"
+ id="rect3"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="123.95625"
+ y="215.85083"
+ id="text76"><tspan
+ x="123.95625"
+ y="215.85083"
+ sodipodi:role="line"
+ id="tspan151"
+ style="stroke-width:1.06666669pt">Inkscape::Application</tspan></text>
+ <rect
+ style="color:#000000;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ id="rect18"
+ width="133.24342"
+ height="66.026459"
+ x="154.89287"
+ y="307.49713"
+ ry="0.0000000" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="193.00833"
+ y="347.17285"
+ id="text19"><tspan
+ x="193.00833"
+ y="347.17285"
+ sodipodi:role="line"
+ id="tspan150"
+ style="stroke-width:1.06666669pt">Args</tspan></text>
+ <rect
+ style="color:#000000;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ id="rect21"
+ width="134.25929"
+ height="66.534584"
+ x="153.9653"
+ y="406.66666"
+ ry="0.0000000" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="188.37619"
+ y="449.5527"
+ id="text22"><tspan
+ x="188.37619"
+ y="449.5527"
+ sodipodi:role="line"
+ id="tspan152"
+ style="stroke-width:1.06666669pt">Prefs</tspan></text>
+ <path
+ style="color:#000000;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ d="m 500,307.33333 h 47.33333 v 20 h 20 l -20,-20 20,20 v 80 h -66.66666 z"
+ id="rect24"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="color:#000000;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ id="rect27"
+ width="100.73548"
+ height="66.026642"
+ x="346.66669"
+ y="486.64005"
+ ry="14.222222"
+ rx="14.222222" />
+ <path
+ sodipodi:nodetypes="ccc"
+ id="path50"
+ d="m 133.33333,240 v 33.33333 h 533.33334"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccc"
+ id="path121"
+ d="m 154.22621,340.1638 h -20 v -66.66667"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker-start:url(#DiamondL);marker-end:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path195"
+ d="m 400,486.66667 v -80"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.33333333, 5.33333333;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#Dot_m);marker-end:url(#Dot_m)"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ d="m 367.33333,306 h 47.33334 v 20 h 20 l -20,-20 20,20 v 80 H 368 Z"
+ id="path74"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ d="M 634.47087,306.58672 680,306 v 20 h 20 l -20,-20 20,20 v 80 h -66.66667 z"
+ id="path75"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="color:#000000;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ id="rect76"
+ width="100.73548"
+ height="66.026642"
+ x="466.8201"
+ y="500"
+ ry="14.222222"
+ rx="14.222222" />
+ <rect
+ style="color:#000000;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ id="rect77"
+ width="100.73548"
+ height="66.026642"
+ x="614"
+ y="487.3067"
+ ry="14.222222"
+ rx="14.222222" />
+ <path
+ sodipodi:nodetypes="ccc"
+ id="path157"
+ d="m 154.22621,440.1638 h -20 v -100"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker-start:url(#DiamondL);marker-end:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path250"
+ d="M 400.66667,306 V 272.66667"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker-start:url(#DiamondL);marker-end:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path253"
+ d="M 533.33333,306.66667 V 273.33333"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker-start:url(#DiamondL);marker-end:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path256"
+ d="M 666.66667,306.66667 V 273.33333"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker-start:url(#DiamondL);marker-end:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path330"
+ d="m 533.33333,486.66667 v -80"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.33333333, 5.33333333;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#Dot_m);marker-end:url(#Dot_m)"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path335"
+ d="m 520,500 13.33333,-93.33333"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.33333333, 5.33333333;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#Dot_m);marker-end:url(#Dot_m)"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path340"
+ d="M 546.66667,473.33333 533.33333,406.66667"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.33333333, 5.33333333;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#Dot_m);marker-end:url(#Dot_m)"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path345"
+ d="m 666.66667,486.66667 v -80"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.33333333, 5.33333333;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#Dot_m);marker-end:url(#Dot_m)"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path348"
+ d="m 440,546.66667 v 60"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker-start:url(#DiamondL);marker-end:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path351"
+ d="m 560,560 v 46.66667"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker-start:url(#DiamondL);marker-end:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path360"
+ d="m 706.66667,546.66667 v 60"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker-start:url(#DiamondL);marker-end:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccc"
+ id="path361"
+ d="M 133.33333,440 V 606.66667 H 706.66667"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="375.78125"
+ y="365.11249"
+ id="text362"><tspan
+ x="375.78125"
+ y="365.11249"
+ sodipodi:role="line"
+ id="tspan364"
+ style="stroke-width:1.06666669pt">Doc</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="508.44791"
+ y="366.44583"
+ id="text365"><tspan
+ x="508.44791"
+ y="366.44583"
+ sodipodi:role="line"
+ id="tspan366"
+ style="stroke-width:1.06666669pt">Doc</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="641.44794"
+ y="365.11249"
+ id="text367"><tspan
+ x="641.44794"
+ y="365.11249"
+ sodipodi:role="line"
+ id="tspan368"
+ style="stroke-width:1.06666669pt">Doc</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.20000076px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="624.52399"
+ y="525.6825"
+ id="text369"><tspan
+ x="624.52399"
+ y="525.6825"
+ sodipodi:role="line"
+ id="tspan371"
+ style="stroke-width:1.06666669pt">Desktop</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.20000076px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="477.34409"
+ y="538.37579"
+ id="text372"><tspan
+ x="477.34409"
+ y="538.37579"
+ sodipodi:role="line"
+ id="tspan373"
+ style="stroke-width:1.06666669pt">Desktop</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.20000076px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="357.1907"
+ y="525.01587"
+ id="text374"><tspan
+ x="357.1907"
+ y="525.01587"
+ sodipodi:role="line"
+ id="tspan375"
+ style="stroke-width:1.06666669pt">Desktop</tspan></text>
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="Drawing Area" />
+</svg>
diff --git a/doc/NewAppArchitecture/06-current-desktop-view.svg b/doc/NewAppArchitecture/06-current-desktop-view.svg
new file mode 100644
index 0000000..9aa7cdd
--- /dev/null
+++ b/doc/NewAppArchitecture/06-current-desktop-view.svg
@@ -0,0 +1,785 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ sodipodi:docname="06-current-desktop-view.svg"
+ height="480pt"
+ width="640pt"
+ inkscape:version="0.92.0 r15304"
+ sodipodi:version="0.32"
+ id="svg586"
+ version="1.1">
+ <defs
+ id="defs588">
+ <marker
+ style="overflow:visible;"
+ id="marker791"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ id="path792"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker719"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ id="path720"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker717"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleInL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ id="path718"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker714"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ id="path715"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker712"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleInL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ id="path713"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker709"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ id="path710"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker707"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleInL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ id="path708"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker704"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ id="path705"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker702"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleInL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ id="path703"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="TriangleOutL"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ id="path2817"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="TriangleInL"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleInL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ id="path2823"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="Arrow2L"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2L">
+ <path
+ d="M 4.363143,4.732916 -8.456553,0.01878889 4.3631437,-4.6953372 c -2.0480514,2.7832182 -2.0362505,6.5911436 -7e-7,9.4282532 z"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.73333335;stroke-linejoin:round"
+ id="path2863"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <linearGradient
+ id="linearGradient2570">
+ <stop
+ id="stop2571"
+ offset="0.0000000"
+ style="stop-color:#000000;stop-opacity:1.0000000;" />
+ <stop
+ id="stop2572"
+ offset="0.58504134"
+ style="stop-color:#000000;stop-opacity:0.62745100;" />
+ <stop
+ id="stop2573"
+ offset="1.0000000"
+ style="stop-color:#ffffff;stop-opacity:0.0000000;" />
+ </linearGradient>
+ <linearGradient
+ y2="114.57422"
+ x2="53.030737"
+ y1="20.687101"
+ x1="77.599106"
+ id="linearGradient1322"
+ xlink:href="#linearGradient1218"
+ gradientTransform="matrix(1.3228549,0,0,1.2809931,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ y2="58.199241"
+ x2="33.266399"
+ y1="30.563196"
+ x1="59.491886"
+ id="linearGradient1318"
+ xlink:href="#linearGradient1273"
+ gradientTransform="matrix(1.7409899,0,0,0.97333594,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ gradientTransform="scale(1.004208,0.995809)"
+ y2="0.12454049"
+ x2="0.41986585"
+ y1="1.9347328"
+ x1="0.45376351"
+ id="linearGradient1307"
+ xlink:href="#linearGradient1222" />
+ <linearGradient
+ gradientTransform="scale(1.006361,0.993679)"
+ y2="0.11846013"
+ x2="0.41548476"
+ y1="1.9667202"
+ x1="0.45009527"
+ id="linearGradient1306"
+ xlink:href="#linearGradient1222" />
+ <linearGradient
+ gradientTransform="scale(1.002016,0.997989)"
+ y2="0.13959341"
+ x2="0.42603236"
+ y1="1.8676205"
+ x1="0.45839140"
+ id="linearGradient1305"
+ xlink:href="#linearGradient1222" />
+ <linearGradient
+ y2="80.482086"
+ x2="51.413385"
+ y1="119.11808"
+ x1="11.967844"
+ id="linearGradient1277"
+ xlink:href="#linearGradient1273"
+ gradientTransform="matrix(1.8036348,0,0,1.2393329,-37.611189,-4.4599008)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ y2="62.493129"
+ x2="90.28563"
+ y1="45.70058"
+ x1="118.66497"
+ id="linearGradient1272"
+ xlink:href="#linearGradient1273"
+ gradientTransform="matrix(1.4554449,0,0,1.1642956,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient1270"
+ xlink:href="#linearGradient1222" />
+ <linearGradient
+ y2="120.74315"
+ x2="94.698939"
+ y1="120.74315"
+ x1="17.696665"
+ id="linearGradient1231"
+ xlink:href="#linearGradient1323"
+ gradientTransform="matrix(1.8150579,0,0,0.9336165,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ y2="28.120696"
+ x2="130.70353"
+ y1="170.27164"
+ x1="27.318817"
+ id="linearGradient1221"
+ xlink:href="#linearGradient1222"
+ gradientTransform="scale(1.0211162,0.97932047)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient1218">
+ <stop
+ id="stop1219"
+ offset="0.00000000"
+ style="stop-color:#000000;stop-opacity:1.0000000;" />
+ <stop
+ id="stop1321"
+ offset="0.073255815"
+ style="stop-color:#323232;stop-opacity:1.0000000;" />
+ <stop
+ id="stop1320"
+ offset="0.65260679"
+ style="stop-color:#000000;stop-opacity:1.0000000;" />
+ <stop
+ id="stop1220"
+ offset="1"
+ style="stop-color:#fff;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1222">
+ <stop
+ id="stop1223"
+ offset="0.0000000"
+ style="stop-color:#0081ac;stop-opacity:1.0000000;" />
+ <stop
+ id="stop1722"
+ offset="0.50000000"
+ style="stop-color:#006d91;stop-opacity:0.62745100;" />
+ <stop
+ id="stop1224"
+ offset="1.0000000"
+ style="stop-color:#000000;stop-opacity:0.0000000;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1273">
+ <stop
+ id="stop1274"
+ offset="0.00000000"
+ style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+ <stop
+ id="stop1275"
+ offset="1.0000000"
+ style="stop-color:#ffffff;stop-opacity:0.00000000;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1323">
+ <stop
+ id="stop1324"
+ offset="0.00000000"
+ style="stop-color:#000000;stop-opacity:0.77685952;" />
+ <stop
+ id="stop1325"
+ offset="1.0000000"
+ style="stop-color:#000000;stop-opacity:0.00000000;" />
+ </linearGradient>
+ <radialGradient
+ fy="93.75"
+ fx="303.7037"
+ r="248.40302"
+ cy="281.25"
+ cx="296.2963"
+ id="radialGradient829"
+ xlink:href="#linearGradient826"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.29936853,0,0,0.15858773,4.3548661,98.117152)" />
+ <linearGradient
+ id="linearGradient826">
+ <stop
+ id="stop827"
+ offset="0.00000000"
+ style="stop-color:#000000;stop-opacity:0.95294118;" />
+ <stop
+ id="stop830"
+ offset="0.36585677"
+ style="stop-color:#000000;stop-opacity:0.76078433;" />
+ <stop
+ id="stop847"
+ offset="0.47107276"
+ style="stop-color:#000000;stop-opacity:0.52941179;" />
+ <stop
+ id="stop828"
+ offset="1.0000000"
+ style="stop-color:#ffffff;stop-opacity:0.00000000;" />
+ </linearGradient>
+ <linearGradient
+ y2="-1.7333326"
+ x2="0.50000000"
+ y1="0.66667551"
+ x1="0.50000000"
+ id="linearGradient907"
+ xlink:href="#linearGradient909" />
+ <linearGradient
+ id="linearGradient909">
+ <stop
+ id="stop910"
+ offset="0.00000000"
+ style="stop-color:#000000;stop-opacity:0.00000000;" />
+ <stop
+ id="stop913"
+ offset="1.0000000"
+ style="stop-color:#000000;stop-opacity:0.17000000;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1309"
+ xlink:href="#linearGradient1222"
+ gradientTransform="scale(2.8444445,0.4)"
+ x1="0"
+ y1="4.7369516e-15"
+ x2="300"
+ y2="4.7369516e-15"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ y2="1365.4825"
+ x2="64.30938"
+ y1="1365.4825"
+ x1="-0.0028122679"
+ id="linearGradient1308"
+ xlink:href="#linearGradient2570"
+ gradientTransform="scale(13.227991,0.0860129)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient826"
+ id="radialGradient38209"
+ cx="296.2963"
+ cy="281.25"
+ fx="303.7037"
+ fy="93.75"
+ r="248.40302"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4203424,0,0,0.08699077,-33.810677,100.89451)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient38211"
+ x1="33.344169"
+ y1="164.17808"
+ x2="131.82116"
+ y2="28.775105"
+ gradientTransform="scale(1.0839555,1.0496536)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient38213"
+ x1="31.731446"
+ y1="165.85049"
+ x2="131.57971"
+ y2="28.562063"
+ gradientTransform="scale(1.0848907,1.0487488)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient38215"
+ x1="35.171777"
+ y1="162.0032"
+ x2="131.8238"
+ y2="29.109513"
+ gradientTransform="scale(1.0846262,1.0490045)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient38217"
+ x1="37.676606"
+ y1="159.47478"
+ x2="132.33793"
+ y2="29.318235"
+ gradientTransform="scale(1.0823063,1.051253)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient38219"
+ x1="29.920773"
+ y1="167.66146"
+ x2="131.16846"
+ y2="28.448861"
+ gradientTransform="scale(1.0869998,1.0467139)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient38221"
+ x1="27.318817"
+ y1="170.27164"
+ x2="130.70353"
+ y2="28.120696"
+ gradientTransform="scale(1.0891906,1.0446085)"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ inkscape:grid-bbox="true"
+ inkscape:grid-points="true"
+ gridtolerance="50.000000pt"
+ inkscape:guide-points="true"
+ showgrid="true"
+ inkscape:current-layer="layer2"
+ inkscape:guide-bbox="false"
+ showguides="true"
+ inkscape:window-y="105"
+ inkscape:window-x="190"
+ inkscape:window-height="845"
+ inkscape:window-width="984"
+ inkscape:cy="320"
+ inkscape:cx="426.66667"
+ inkscape:zoom="0.978125"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ inkscape:window-maximized="0">
+ <inkscape:grid
+ id="GridFromPre046Settings"
+ type="xygrid"
+ originx="0"
+ originy="0"
+ spacingx="7.1111111"
+ spacingy="7.1111111"
+ color="#3f3fff"
+ empcolor="#3f3fff"
+ opacity="0.15"
+ empopacity="0.38"
+ empspacing="5" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata33">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ style="display:block"
+ inkscape:label="Background"
+ id="layer1"
+ inkscape:groupmode="layer">
+ <rect
+ y="1.8947807e-15"
+ x="0"
+ height="120"
+ width="853.33331"
+ id="topbluebox"
+ style="font-size:12px;fill:url(#linearGradient1309);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.20000017pt" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path654"
+ d="M -0.03652902,117.55657 850.68323,117.34163"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient1308);stroke-width:5.31674433;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <g
+ transform="translate(689.36448,-10.40511)"
+ id="g1085">
+ <g
+ transform="matrix(0.875802,0,0,0.869278,1.1184885,-8.4967275)"
+ id="g1394">
+ <ellipse
+ style="opacity:0.69398911;fill:url(#radialGradient38209);stroke-width:0.84729707;stroke-dashoffset:0"
+ id="path898"
+ cx="92.292046"
+ cy="126.99174"
+ rx="126.10272"
+ ry="26.097233" />
+ <ellipse
+ style="fill:url(#radialGradient829);stroke-width:0.96546245;stroke-dashoffset:0"
+ id="ball1"
+ cx="94.165428"
+ cy="145.69347"
+ rx="89.810562"
+ ry="47.576321" />
+ </g>
+ <g
+ style="fill:url(#linearGradient1221)"
+ transform="matrix(1.822197,0,0,1.662749,-192.00875,13.084299)"
+ id="g1310">
+ <path
+ id="path1278"
+ d="m 148.55614,11.815593 c -2.18769,1e-6 -4.39029,0.823628 -6.06667,2.5 l -29.76666,29.8 c -1.64308,1.643032 -2.50068,3.78929 -2.53334,5.933333 -4.6e-4,0.03598 0,0.09736 0,0.133333 h 0.0667 c 0.57027,2.16974 15.28934,4.922713 16.93333,6.566667 2.48272,2.482738 -9.51602,4.317248 -7.03333,6.8 2.48271,2.482709 15.01704,4.783915 17.5,7.266669 2.48273,2.48272 -5.08275,5.11728 -2.6,7.6 2.48272,2.482753 10.81047,-0.609259 9.3,5.866667 3.35273,3.352736 10.34963,1.752736 15.03333,-1.6 2.48272,-2.482721 -4.74941,-2.250614 -2.26666,-4.733334 2.48272,-2.482752 8.75277,-2.494421 14.03333,-8.433335 -2.12548,-3.305654 -9.08274,-4.717259 -6.6,-7.2 2.48272,-2.482715 7.28509,-1.236886 17.7,-5.966667 5.08413,-2.309024 4.68613,-4.040355 4.66667,-6.166667 -4.1e-4,-0.04475 0,-0.08825 0,-0.133333 h -0.0333 c -0.0326,-2.144041 -0.85698,-4.290298 -2.5,-5.933333 l -29.8,-29.8 c -1.67637,-1.67637 -3.84565,-2.5 -6.03334,-2.5 z m -0.26667,3.866666 c 0.97256,0.02533 1.75986,0.768324 3.3,1.766667 l 14.06667,10.433333 c 0.15408,0.09991 0.29855,0.192996 0.43333,0.3 0.1348,0.10699 0.28452,0.220015 0.4,0.333334 0.11548,0.113111 0.20364,0.248218 0.3,0.366666 0.0961,0.118429 0.18984,0.244093 0.26667,0.366667 0.077,0.122774 0.14229,0.240765 0.2,0.366667 0.0577,0.126131 0.0949,0.238188 0.13333,0.366666 0.0386,0.128282 0.0808,0.270352 0.1,0.4 0.0193,0.12988 0.0333,0.269763 0.0333,0.4 l -8.33333,-4.033333 -0.83334,6.3 -4.6,-2.166667 -7.06666,4.733334 -2.73334,-9.333334 -3.46666,8.166667 -9.76667,0.966667 0.1,-4.333334 c 0,-1.042224 5.64516,-8.329604 9.06666,-10.066666 l 6.26667,-4.5 c 0.92408,-0.599006 1.54979,-0.848535 2.13333,-0.833334 z m -12.93333,42.6 c 4.43676,1.15063 9.37288,2.639674 13.33333,2.666667 l 0.16667,1.8 c -3.39138,-0.349579 -10.57471,-2.002379 -12.26667,-2.866667 z m 46.23333,7.9 c -0.67728,-0.02171 -1.31822,0.0462 -1.8,0.166667 -0.90833,0.226965 -5.321,0.331531 -4.96666,3.166667 3.89845,1.416876 9.92489,2.502007 10.63333,-0.333334 0.53176,-2.12593 -1.83484,-2.93489 -3.86667,-3 z m -50.96666,5.766669 c -0.61333,-0.07148 -1.21336,0.0042 -1.8,0.3 -2.34598,1.183349 -3.92502,3.81264 -1.73334,4.9 2.19191,1.08736 3.74516,-0.150741 5.66667,-1.5 1.92173,-1.349045 1.87228,-1.612875 1.73333,-2.133333 -0.26601,0.07094 -2.02669,-1.352235 -3.86666,-1.566667 z m 42.86666,0.466667 c -1.77199,0.708629 -1.75118,3.170389 -0.33333,4.233333 1.41748,1.063157 3.19156,0.375499 3.9,-0.333333 0.70902,-0.70863 -0.023,-3.19136 -3.56667,-3.9 z"
+ style="fill:url(#linearGradient38211);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path1283"
+ d="m 147.16667,11.433333 c -3.48238,0.364902 -5.88303,3.345755 -8.33158,5.570373 -8.94544,9.133798 -18.09349,18.101949 -26.95799,27.294024 -1.44334,1.84378 -2.03035,4.015468 -2.31043,6.30227 5.03542,3.678658 11.71157,3.699536 17.06666,6.766667 -1.50817,2.381747 -5.17846,2.289571 -6.84097,4.663825 -1.44519,0.973702 0.60698,2.569614 1.6838,2.93719 4.47582,2.259905 9.5207,3.127075 13.9674,5.505719 2.30619,0.164974 2.15073,2.483836 0.6201,3.623175 -1.21232,1.221254 -3.08705,3.249751 -1.23288,4.771441 2.26675,1.575369 5.27199,1.144095 7.80255,2.065316 1.77826,0.975122 0.51639,2.738136 1.73334,3.966667 3.05603,2.396513 7.28787,1.973693 10.69445,0.606201 1.75151,-0.515126 3.34201,-1.653286 4.87221,-2.539534 1.47613,-1.720326 -0.82595,-2.9513 -2.13333,-3.666667 -0.85913,-1.425274 2.00009,-1.997097 2.97462,-2.675578 3.73665,-1.514529 7.36553,-3.267329 10.23683,-6.143331 1.79011,-1.105032 -0.83882,-2.676851 -1.67812,-3.547758 -1.55141,-1.15048 -3.58938,-1.860548 -4.56666,-3.633333 2.52043,-2.7807 6.7319,-2.262194 9.98204,-3.687561 3.90317,-0.992642 7.61596,-2.729652 11.05532,-4.741974 2.26951,-1.69135 1.67257,-4.636557 1.22998,-7.021773 -1.61839,-5.025589 -6.41885,-8.01283 -9.81146,-11.814386 -7.61983,-7.514247 -15.1255,-15.17228 -22.81612,-22.597384 -2.05244,-1.578655 -4.64151,-2.423668 -7.23976,-2.003589 z M 149.5,16.766667 c 5.52064,4.046284 11.05387,8.077891 16.56667,12.133333 0.11539,1.103552 -2.90244,-1.172627 -4.0558,-1.481882 -1.41219,-0.420198 -3.8964,-2.894916 -3.5025,0.03341 -0.60562,1.192982 0.31151,5.203671 -1.4377,4.28052 -1.58183,-0.849857 -3.68447,-2.113891 -5.18058,-0.378679 -1.61892,1.082213 -3.23783,2.164425 -4.85676,3.246637 -0.9783,-3.377623 -1.95211,-6.756554 -2.93333,-10.133333 -1.34602,3.127884 -2.66477,6.267483 -4,9.4 -2.92222,0.288888 -5.84445,0.577778 -8.76667,0.866667 -0.20184,-2.166309 0.27133,-4.341771 1.77562,-5.878158 3.25057,-5.211552 8.66632,-8.395371 13.54451,-11.865011 0.95273,-0.564092 1.80847,-0.493262 2.84654,-0.223498 z m -8.63333,43.566666 c 2.34366,0.607254 4.78296,0.727797 7.16666,1.133334 -0.90625,1.084587 -3.14277,-0.32439 -4.56523,-0.371058 -1.8583,-0.406252 -3.7163,-0.80007 -5.4681,-1.562276 0.95555,0.266667 1.91111,0.533334 2.86667,0.8 z m 38.86666,5.4 c -2.15488,0.501536 -5.22675,0.793815 -5.5,3.566667 0.70833,1.029809 2.96093,1.412478 4.40801,1.688268 2.27503,0.363118 5.38493,1.181831 6.97878,-0.937576 1.36135,-1.898234 -0.67459,-4.313995 -2.78769,-4.178768 -1.02575,-0.350017 -2.04343,-0.268702 -3.0991,-0.138591 z m -51.03333,5.9 c -1.57612,1.085018 -3.71575,2.720281 -3.03333,4.9 1.61184,2.339234 4.94529,1.683368 6.78753,-0.0057 1.2184,-0.692559 3.25469,-2.021692 2.31247,-3.560997 -1.93436,-0.840999 -3.87915,-2.117169 -6.06667,-1.333334 z m 44.36667,0.333334 c -1.34895,0.891833 -1.89168,2.759628 -0.95675,4.109348 0.71622,1.795233 3.11379,1.982508 4.57991,1.004604 1.95986,-0.600235 1.10016,-3.109938 -0.33003,-3.844913 -0.72045,-0.899439 -2.36482,-1.335642 -3.29313,-1.269039 z"
+ style="fill:url(#linearGradient38213);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path1286"
+ d="m 146.23333,12.866667 c -3.88385,1.702193 -6.61189,5.324961 -9.67052,8.210746 -7.86956,8.018198 -15.90416,15.90198 -23.69161,23.983409 -1.11331,1.428597 -1.72615,3.060044 -2.00453,4.839178 4.36,3.072638 10.04495,3.23545 14.7573,5.603266 1.5625,0.15548 3.26141,1.73801 1.81635,3.072207 -1.86501,1.91956 -5.15011,2.084779 -6.70699,4.291194 4.05269,2.923397 9.10625,3.602288 13.58014,5.613093 1.52915,1.119169 4.28812,1.21833 4.3532,3.553573 -0.41298,2.06712 -2.47344,3.267809 -3.36667,5.133334 1.94434,2.744072 5.94438,1.261888 8.50547,3.040805 1.3908,0.857738 1.00828,2.693049 1.62108,3.831047 3.2048,2.344549 7.71164,1.319869 10.94656,-0.558135 1.04365,-0.353733 3.89943,-1.626855 1.76272,-2.556043 -1.55651,-0.349067 -2.86028,-2.213166 -1.35103,-3.402938 3.84858,-2.931245 9.10998,-3.601158 12.55258,-7.214396 1.79927,-1.361045 -1.31628,-2.560541 -2.24828,-3.336495 -1.41778,-1.044797 -3.86698,-2.048091 -3.55577,-4.137179 2.35965,-3.274836 6.88107,-2.833411 10.31383,-4.263585 3.90311,-0.957377 7.67689,-2.630842 11.10878,-4.611597 2.18816,-1.940094 1.07405,-5.046756 0.32835,-7.371909 -3.93266,-5.513287 -9.35396,-9.75581 -13.9708,-14.686024 -5.91778,-5.783657 -11.65452,-11.813723 -17.68454,-17.444607 -2.14828,-1.370565 -4.63208,-2.556154 -7.20805,-1.62333 z m 2.3,2.233333 c 5.45973,2.578599 9.80753,6.890051 14.73244,10.347527 1.85084,1.664819 5.00363,2.778901 4.9009,5.71914 -1.78479,0.428996 -3.34725,-1.396857 -5.04898,-1.86837 -1.54021,-0.520034 -4.1213,-2.963549 -3.68846,0.16232 -0.54825,1.127161 0.22527,4.775461 -1.23798,4.170178 -1.53672,-0.653008 -3.2567,-1.905943 -4.87859,-1.758173 -2.31413,1.577535 -4.63724,3.142054 -6.94599,4.727378 -0.87266,-2.83558 -1.68407,-5.690403 -2.53334,-8.533333 -1.12707,2.260756 -1.98302,4.959333 -3.26666,6.966666 -3.47777,0.344565 -6.95563,0.688221 -10.43334,1.033334 0.0287,-2.531437 -0.43925,-5.398577 1.54821,-7.372648 3.13073,-5.303181 8.62883,-8.494145 13.35179,-12.127352 1.15867,-0.426692 2.35212,-1.253526 3.5,-1.466667 z m -13.76666,42.4 c 4.77393,1.272573 9.58904,2.318786 14.5,2.9 0.93608,1.872033 -0.34236,3.482335 -2.33168,2.565935 -3.62332,-0.734316 -7.25018,-1.727438 -10.80166,-2.699268 -0.26564,-0.514085 -3.09159,-3.378118 -1.36666,-2.766667 z m 45.16666,9.433333 c -1.51493,0.422114 -3.72691,0.290818 -4.26666,2.133334 2.90995,0.556827 6.05202,2.002088 8.9,0.466666 0.978,-1.977585 -1.92783,-2.538134 -3.31385,-2.645499 -0.43983,0.01517 -0.87966,0.03034 -1.31949,0.0455 z m -50.9,5.866667 c -1.16024,0.90047 -3.46737,3.083937 -1.02728,3.858837 2.25255,0.543858 3.96147,-1.380385 5.62728,-2.558837 -1.18522,-1.161836 -2.98479,-1.601218 -4.6,-1.3 z m 44.03334,0.733333 c -1.04902,2.027564 1.90687,4.021482 3.28133,2.230908 0.70415,-1.13156 -2.36473,-3.118333 -3.28133,-2.230908 z"
+ style="fill:url(#linearGradient38215);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path1295"
+ d="m 146.66667,13.4 c -6.33172,3.543401 -10.68888,9.547281 -15.90063,14.447274 -5.8861,6.073656 -12.00588,11.974663 -17.74737,18.155152 -0.7305,1.178656 -2.18908,3.828459 -0.0714,4.248788 4.9013,2.576465 10.86092,2.972757 15.3194,6.215453 1.00861,2.475215 -2.05916,3.484953 -3.70454,4.477414 -1.7373,0.545523 -3.75405,2.175563 -0.84454,2.774326 4.83335,2.60598 10.58594,3.28132 15.01575,6.64826 1.43136,2.33294 -1.26292,4.394234 -2.23809,6.238069 0.0119,1.908953 2.8242,1.486185 4.14874,2.002826 2.29679,0.177914 4.75661,1.464231 4.98406,3.992952 0.7695,2.00242 3.5144,2.068656 5.37195,2.066153 2.47607,-0.312856 4.61313,-1.6278 6.86667,-2.6 -0.11425,-1.550102 -2.69456,-1.700315 -2.36667,-3.6 1.99363,-3.193298 6.06476,-3.869656 9.11608,-5.707796 1.73236,-0.750835 3.28599,-1.893245 4.45059,-3.392204 -1.92497,-2.280272 -5.74204,-3.012313 -6.11314,-6.406102 0.39022,-1.188208 2.2736,-2.314015 3.60639,-2.891301 5.6785,-2.143002 11.88985,-2.970298 17.10185,-6.270592 2.74324,-1.108432 1.83527,-4.538836 1.0317,-6.686009 -2.29624,-3.22589 -5.40132,-6.000174 -8.00828,-9.052576 -2.68656,-2.760044 -5.48876,-5.408427 -8.21852,-8.126754 1.12365,1.634362 -0.99109,2.422313 -2.21269,1.401868 -2.03118,-0.886068 -4.05629,-1.760173 -6.12064,-2.568534 C 160.05314,30.54272 159.67649,32.269964 159.3,34 c -2.55377,0.684822 -5.03322,-2.683187 -7.35336,-0.501311 -1.91379,1.060257 -3.40719,2.847058 -5.45058,3.513153 -1.46281,-0.265507 -1.26699,-3.243895 -2.01992,-4.618246 -0.44179,-3.083731 -1.2118,-2.404985 -2.14312,0.123134 -0.85365,1.59882 -1.21984,3.834303 -3.53335,3.298267 -3.08878,0.306225 -6.17762,0.611598 -9.26633,0.918336 0.0202,-3.177717 -0.28551,-6.766 2.22768,-9.171123 3.51639,-4.960964 8.70856,-8.341185 13.55479,-11.782731 1.62219,-0.752906 3.63701,-1.872712 5.13828,-0.273654 3.97373,2.727514 8.02021,5.285521 11.74591,8.327508 -3.19568,-3.018643 -6.19482,-6.317986 -9.51099,-9.164539 -1.87897,-0.938934 -3.8675,-2.092901 -6.02238,-1.268794 z m -11.83334,43.5 c 5.00075,0.984495 9.99566,2.003225 15,2.966667 0.20732,1.45664 0.46427,3.886308 -1.67313,3.831478 -4.16789,-0.795987 -8.38205,-1.956384 -12.49353,-3.031478 -0.61549,-0.980519 -2.50897,-2.472939 -1.9,-3.466667 0.35063,-0.05103 0.72399,-0.354699 1.06666,-0.3 z m 42.8,11.166667 c -1.73875,1.086025 2.33789,1.138186 3.27372,1.439238 1.30579,0.375237 4.48185,-0.551342 2.02628,-1.672572 -1.83243,-0.401834 -3.50784,-0.360679 -5.3,0.233334 z M 128.86667,73.8 c -2.17346,1.397366 -0.18414,3.053084 1.5865,1.699463 2.04828,-0.249261 2.08866,-2.343116 -0.17211,-2.051831 -0.54677,-0.07524 -0.99718,-0.0549 -1.41439,0.352368 z m 44.76666,1.133333 c 2.4133,2.30436 1.83777,-1.778179 0,-0.492892 0,0.102368 0,0.430964 0,0.492892 z"
+ style="fill:url(#linearGradient38217);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path1300"
+ d="m 146.4,11 c -2.85517,0.532698 -4.88261,2.920832 -7.04143,4.696624 -9.46036,9.318687 -18.69953,18.903094 -28.02524,28.336709 -1.28513,2.140689 -2.02923,4.453081 -2.46666,6.9 4.02374,2.003945 8.08967,3.86007 12.47179,4.935568 1.05804,0.665393 4.69014,0.890135 3.49487,2.397766 -2.29866,1.221998 -5.17006,2.048868 -6.16666,4.733333 1.94556,3.411999 6.27529,3.61226 9.48467,5.236915 2.69399,1.065471 5.388,2.130945 8.08199,3.196418 0.0835,2.815831 -0.6308,1.873266 -2.05017,0.611648 -2.17089,-1.1027 -5.39205,-2.114404 -7.09766,0.274746 -1.55046,0.944625 -2.75719,3.349765 -1.57432,4.866099 2.21286,2.398176 6.00771,1.27668 8.06067,-0.779037 0.17795,-0.191378 -0.29693,2.877758 1.42073,3.193938 2.34275,1.346613 5.33929,0.970157 7.67409,2.299273 0.45283,1.979683 1.2508,4.221333 3.5739,4.531638 3.66844,1.48315 7.80683,0.39212 11.09794,-1.541311 1.39792,-0.760174 4.07797,-1.323747 3.46357,-3.423687 -0.0478,-1.38074 -3.42818,-2.212653 -1.53541,-3.499973 4.53006,-2.016167 9.17312,-4.142848 12.66666,-7.733334 0.85723,-2.253596 -2.25712,-3.193724 -3.46666,-4.566666 -1.4517,-1.221069 -3.87877,-2.524433 -0.81856,-3.364818 5.62839,-2.111859 11.87228,-2.940184 17.03456,-6.263438 2.72995,-0.86584 3.85371,-3.957742 3.06767,-6.564064 -0.0255,-2.62475 -1.76154,-4.797622 -3.22224,-6.835657 C 179.45289,36.856816 173.58197,31.828345 168.24204,26.291461 163.60188,21.818095 159.14228,17.065484 154.39198,12.762657 151.99166,11.220691 149.22884,10.717147 146.4,11 Z m 3.36667,6.733333 c 4.24058,2.976224 8.38139,6.129328 12.6,9.166667 -1.29937,-0.797366 -2.67486,-1.290978 -4.2,-1.4 -0.21287,1.824575 -0.47054,3.643999 -0.7,5.466667 -1.97534,-0.587625 -4.21204,-1.778592 -5.97773,-0.09263 -1.30676,0.402533 -3.52226,3.290581 -4.25972,2.135968 -0.99915,-3.447628 -1.99405,-6.896491 -2.99589,-10.343339 -1.52265,3.539479 -3.02044,7.089652 -4.53333,10.633333 -2.56667,0.255555 -5.13333,0.511111 -7.7,0.766667 -0.0148,-3.662276 2.83591,-6.395601 5.07235,-8.959274 3.30461,-2.837611 6.75708,-5.60858 10.52338,-7.756865 0.7316,-0.360909 1.44586,0.250944 2.17094,0.382806 z m 26.36666,48.333334 C 174.87994,66.86218 172.84987,68.441375 174.2,70 c 2.62772,1.71982 5.90645,1.835937 8.93343,1.934762 2.25075,-0.06272 4.4688,-2.726652 2.93663,-4.770688 -1.42803,-2.456455 -4.67977,-1.908377 -7.06627,-1.883005 -0.95681,0.261868 -1.91364,0.523732 -2.87046,0.785598 z m -3.3,5.433333 c -1.27562,1.033534 -1.85687,2.841465 -1.35231,4.508785 0.43077,1.899535 2.6256,2.385569 4.29198,1.849858 2.50838,0.201444 3.52565,-3.378484 1.43654,-4.628378 -1.24197,-1.050288 -2.64377,-2.095016 -4.37621,-1.730265 z"
+ style="fill:url(#linearGradient38219);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path1304"
+ d="m 146,10.2 c -5.57009,2.353735 -9.31153,7.276932 -13.56394,11.364379 -7.26121,7.360863 -14.57305,14.685571 -21.80273,22.068954 -0.92375,2.588329 -1.83526,5.181133 -2.76666,7.766667 5.12606,2.235525 10.28103,4.361596 15.6,6.1 -0.32712,1.554459 -2.93579,1.371077 -3.74338,2.860476 -1.43416,0.914482 -2.37188,3.411157 -0.36803,4.245199 3.1673,2.975582 7.51398,4.048213 11.44474,5.660992 -3.09041,-0.89746 -5.13867,2.363507 -6.33333,4.666666 -0.72155,2.880448 2.58866,4.694489 5.06851,4.276737 1.54135,0.553684 3.66,-2.522746 3.86807,-0.13866 2.29497,2.607941 6.70581,1.993255 9.10076,4.436609 0.7749,2.147771 2.55461,3.943898 4.94541,3.965707 2.15881,0.621481 4.27216,0.328386 6.35476,-0.418515 2.43249,-0.54992 4.74804,-1.764623 6.87594,-2.976017 1.61013,-1.140622 1.25617,-3.709454 -0.21345,-4.812527 -0.21701,-1.714746 2.45466,-1.738353 3.54015,-2.659077 2.92458,-1.339302 5.49291,-3.216603 7.95985,-5.240923 -1.09048,1.568168 -1.50221,3.637034 -0.89348,5.420276 1.02957,2.431889 4.09705,1.779572 6.16014,1.64639 C 179.29546,77.451445 180.09314,74.273508 178,72.9 c -3.03927,-1.879702 -0.42819,-1.002977 1.49692,-0.460891 2.38484,0.141742 5.36949,0.891675 6.99369,-1.418947 1.80089,-1.737129 0.66941,-4.475043 -1.05728,-5.820162 -2.14881,-1.14371 -4.72742,-0.810973 -7.057,-0.699886 -2.09119,0.370608 -3.67839,1.613047 -4.97633,3.233219 -1.58756,1.272788 1.82748,3.61782 -0.0532,3.147933 -1.36163,0.234395 0.30799,-2.483632 -1.32358,-3.36862 -1.06348,-1.560896 -2.85826,-2.534055 -4.1899,-3.879313 6.43141,-3.110773 13.94477,-3.952924 19.7,-8.433333 2.10991,-2.5028 1.15052,-5.815831 0.53333,-8.666667 C 184.23156,39.549156 177.84192,34.54079 172.35319,28.898191 166.50884,23.205036 160.69939,17.462459 154.83333,11.8 152.27799,10.77259 149.66457,10.063772 146.88646,10.206305 146.60075,10.233991 146.27214,10.101959 146,10.2 Z m 7.6,11.266667 c 1.51374,1.165288 3.04586,2.309495 4.56667,3.466666 -1.39718,1.06872 -0.90296,3.127104 -1.4,4.633334 -2.08576,-0.566112 -4.35694,-0.641822 -6.05767,0.905733 -1.05102,0.888519 -3.01815,1.872214 -3.17799,-0.196242 -0.93874,-3.234383 -1.83,-6.48501 -2.79768,-9.709491 1.63294,-0.494373 3.30094,-3.132711 4.90134,-1.63781 1.32178,0.845937 2.64355,1.691873 3.96533,2.53781 z m -14.36667,10.966666 c -1.96666,0.2 -3.93333,0.4 -5.9,0.6 0.75323,-3.751583 3.85837,-6.37712 6.49928,-8.892012 1.44608,-1.049755 2.80293,-2.240606 4.30072,-3.207988 -1.63333,3.833334 -3.26666,7.666667 -4.9,11.5 z"
+ style="fill:url(#linearGradient38221);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ inkscape:connector-curvature="0" />
+ </g>
+ <path
+ sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccc"
+ id="path1217"
+ d="m 80.606138,21.093974 c -3.986404,2e-6 -7.999981,1.500815 -11.054664,4.555494 L 15.31073,79.950952 c -2.994002,2.993929 -4.556718,6.904836 -4.616235,10.811705 -8.35e-4,0.06557 0,0.177392 0,0.24296 h 0.12148 c 1.039149,3.953694 27.860205,8.970154 30.855878,11.965763 4.524006,4.52404 -17.340071,7.86688 -12.816122,12.39094 4.523986,4.52399 27.364021,8.71724 31.888455,13.2413 4.524026,4.52402 -9.261778,9.3247 -4.737714,13.8487 4.524006,4.52407 19.69882,-1.11018 16.946437,10.69023 6.109347,6.10935 18.859073,3.19383 27.393701,-2.91552 4.52401,-4.524 -8.654358,-4.10106 -4.130314,-8.62506 4.524004,-4.52406 15.949294,-4.54533 25.571504,-15.3672 -3.87306,-6.02355 -16.55055,-8.59578 -12.0265,-13.11982 4.524,-4.524 13.27486,-2.25385 32.25288,-10.87245 9.26429,-4.207497 8.53905,-7.362324 8.50359,-11.236883 -7.4e-4,-0.08153 0,-0.160805 0,-0.24296 h -0.0608 c -0.0595,-3.906866 -1.56157,-7.817769 -4.55549,-10.811705 L 91.600063,25.649468 C 88.5454,22.594793 84.592543,21.093974 80.606138,21.093974 Z M 56.553132,105.76542 c 8.084647,2.09667 17.079247,4.81 24.295966,4.85919 l 0.3037,3.27996 c -6.179767,-0.63701 -19.269208,-3.64874 -22.352289,-5.22364 z m 84.246258,14.39535 c -1.23415,-0.0395 -2.40206,0.0842 -3.27996,0.3037 -1.65516,0.41359 -9.69592,0.60412 -9.05025,5.7703 7.10376,2.58184 18.08512,4.55915 19.37604,-0.6074 0.96897,-3.87387 -3.34345,-5.34795 -7.04583,-5.4666 z m -92.871326,10.50801 c -1.117595,-0.13024 -2.210972,0.008 -3.279956,0.54666 -4.274826,2.15631 -7.152149,6.94739 -3.158474,8.92877 3.99408,1.98139 6.824425,-0.27467 10.325785,-2.7333 3.501767,-2.45822 3.411658,-2.93897 3.158475,-3.88735 -0.484734,0.12928 -3.693025,-2.46403 -7.04583,-2.85478 z m 78.111516,0.85036 c -3.22891,1.29126 -3.19098,5.77708 -0.60739,7.71397 2.58293,1.93728 5.81565,0.68424 7.10657,-0.6074 1.29198,-1.29126 -0.042,-5.81528 -6.49918,-7.10657 z"
+ style="fill:url(#linearGradient1322);fill-rule:evenodd;stroke-width:1.30175579pt"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
+ id="path1269"
+ d="m 11.977124,84.576671 c -0.883927,1.953959 -1.36513,4.04141 -1.397018,6.134731 -8.33e-4,0.06556 0,0.177399 0,0.24296 h 0.12148 c 0.994358,3.78327 25.07956,8.512878 29.823299,11.540588 2.091809,-1.24429 3.465756,-2.547484 2.065157,-3.948099 C 39.594368,95.551236 12.773315,90.53478 11.734165,86.581087 h -0.12148 c 0,-0.06558 -8.33e-4,-0.177399 0,-0.242958 0.0091,-0.601939 0.284168,-1.162709 0.364439,-1.761458 z M 150.34262,92.47286 c -1.0612,1.680115 -3.10061,3.387829 -7.41026,5.345111 -18.97801,8.618589 -27.72886,6.348449 -32.25287,10.872439 -1.37053,1.37052 -0.88153,2.54264 0.18222,3.70513 4.78924,-3.38639 13.4115,-2.19944 31.03808,-10.20429 8.00504,-3.635614 8.46503,-6.511246 8.44283,-9.71839 z m -92.871299,8.86803 2.247377,2.9155 c 3.08308,1.57491 16.17252,4.58665 22.352289,5.22364 l -0.303699,-3.27996 c -7.216719,-0.0492 -16.21132,-2.7625 -24.295967,-4.85918 z M 30.685018,111.4237 c -2.022925,1.2244 -3.320206,2.51079 -1.943676,3.88736 4.523988,4.52399 27.364021,8.71723 31.888455,13.2413 0.198962,0.19895 0.17245,0.40741 0.3037,0.6074 1.405197,-1.67236 2.355425,-3.35413 0.728879,-4.98067 -4.359755,-4.3594 -25.379991,-8.41841 -30.977358,-12.75539 z m 100.220842,10.75097 c -1.55381,0.80713 -2.80902,1.9449 -2.55108,4.00882 7.10375,2.58184 18.08511,4.55915 19.37603,-0.60738 0.25122,-1.00435 0.11312,-1.85114 -0.24296,-2.55108 -3.06888,2.47706 -10.66085,1.09402 -16.58199,-0.85036 z m -11.17612,2.18664 c -8.90094,7.91694 -18.52655,8.74738 -22.595255,12.81612 -1.63664,1.63663 -0.713263,2.53048 0.6074,3.34069 5.191475,-3.47749 15.190165,-4.50342 23.931535,-14.33463 -0.44804,-0.69679 -1.30027,-1.20938 -1.94368,-1.82218 z m 5.0414,8.01767 c -1.86829,1.81567 -1.62997,5.17107 0.54666,6.80287 2.58292,1.93727 5.81565,0.68422 7.10656,-0.6074 0.66392,-0.66356 0.57592,-2.15087 -0.48592,-3.6444 -1.57518,0.81115 -3.6457,1.33536 -5.58806,-0.12148 -0.82081,-0.61535 -1.29544,-1.48388 -1.57924,-2.42959 z m -71.612353,0.24296 c -0.216533,0.15768 -0.17254,0.18708 -0.42518,0.36444 -3.501359,2.45861 -6.331704,4.7147 -10.325785,2.73329 -0.835138,-0.41433 -1.173493,-1.0297 -1.457758,-1.63998 -1.775949,2.19005 -2.210285,4.70572 0.425179,6.01325 3.994085,1.98138 6.824427,-0.27468 10.325787,-2.73329 3.50177,-2.45823 3.411658,-2.93899 3.158475,-3.88735 -0.166315,0.0444 -0.997334,-0.45265 -1.700718,-0.85036 z m 3.462175,4.79845 c -1.405193,1.67235 -2.355439,3.35411 -0.728879,4.98066 4.524009,4.52407 19.69882,-1.11019 16.946437,10.69022 6.109348,6.10935 18.859078,3.19384 27.39371,-2.91551 1.66654,-1.66656 0.69997,-2.58291 -0.668148,-3.40144 -8.458362,5.3473 -19.957869,7.67884 -25.692984,1.94368 2.752384,-11.8004 -12.422431,-6.16613 -16.946436,-10.69021 -0.198964,-0.19896 -0.172449,-0.40742 -0.3037,-0.6074 z"
+ style="fill:url(#linearGradient1231);fill-rule:evenodd;stroke-width:1.30175579pt"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccccc"
+ id="path1271"
+ d="m 107.57531,47.365247 32.87711,35.325423 c 0,0 9.7932,10.492701 2.09856,14.68978 -7.69466,4.19708 -31.12834,10.4927 -31.12834,10.4927 L 68.830422,46.540402 Z"
+ style="fill:url(#linearGradient1272);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.30175579pt"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccccc"
+ id="path1276"
+ d="M 56.944037,42.006087 26.165461,77.3315 c 0,0 -11.891721,10.4927 -4.197076,14.689777 7.694644,4.197078 58.409343,21.335153 94.084505,15.039533 L 75.13138,45.853409 Z"
+ style="fill:url(#linearGradient1277);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.49509335pt"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccccczz"
+ id="path1317"
+ d="m 82.042498,27.12255 c 4.504479,0.03329 23.422692,18.434639 28.837322,22.230809 5.41464,3.796171 4.14478,6.285951 4.14478,6.523269 L 99.839631,48.527099 98.321133,60.006943 89.939024,56.058848 77.062155,64.683915 72.081482,47.67674 65.76453,62.558018 47.967732,64.319476 48.149952,56.423287 74.438456,30.540688 c 1.907291,-1.877842 3.182156,-3.451427 7.604042,-3.418138 z"
+ style="fill:url(#linearGradient1318);fill-rule:evenodd;stroke-width:1.30175579pt"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+ <g
+ inkscape:label="Title"
+ id="layer2"
+ inkscape:groupmode="layer">
+ <text
+ id="text48"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:51.20000076px;line-height:100%;font-family:Arial;writing-mode:lr-tb;text-anchor:start;display:block;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ y="74.666664"
+ x="48">
+ <tspan
+ x="48"
+ y="74.666664"
+ sodipodi:role="line"
+ id="tspan1"
+ style="stroke-width:3.20000017pt">Views and Desktops</tspan>
+ </text>
+ <rect
+ rx="25.859905"
+ ry="25.859905"
+ y="373.33334"
+ x="34.35228"
+ height="83.326271"
+ width="100.56628"
+ id="rect153"
+ style="color:#000000;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" />
+ <text
+ id="text803"
+ y="420.35898"
+ x="44.791668"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.20000076px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ id="tspan804"
+ sodipodi:role="line"
+ y="420.35898"
+ x="44.791668"
+ style="stroke-width:1.06666669pt">Desktop</tspan></text>
+ <rect
+ rx="25.859905"
+ ry="25.859905"
+ y="140.89519"
+ x="34.35228"
+ height="83.326271"
+ width="100.56628"
+ id="rect2"
+ style="color:#000000;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" />
+ <text
+ id="text3"
+ y="189.463"
+ x="62.172916"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.20000076px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ x="62.172916"
+ y="189.463"
+ sodipodi:role="line"
+ id="tspan5"
+ style="stroke-width:1.06666669pt">View</tspan></text>
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker-end:url(#TriangleOutL)"
+ d="M 80.253968,224.50794 80,373.33333"
+ id="path6"
+ inkscape:connector-curvature="0" />
+ <text
+ id="text80"
+ y="186.42291"
+ x="199.75626"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.20000076px;line-height:120.00000477%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ x="199.75626"
+ y="186.42291"
+ sodipodi:role="line"
+ id="tspan82"
+ style="stroke-width:1.06666669pt">SPView</tspan><tspan
+ x="199.75626"
+ y="209.46292"
+ sodipodi:role="line"
+ id="tspan83"
+ style="stroke-width:1.06666669pt"> - Base class for SVG views</tspan><tspan
+ x="199.75626"
+ y="232.50291"
+ sodipodi:role="line"
+ id="tspan84"
+ style="stroke-width:1.06666669pt"> - Has a pointer to a doc (SPDocument)</tspan><tspan
+ x="199.75626"
+ y="255.54292"
+ sodipodi:role="line"
+ id="tspan85"
+ style="stroke-width:1.06666669pt"> - Contains message stack and message context</tspan><tspan
+ x="199.75626"
+ y="278.58292"
+ sodipodi:role="line"
+ id="tspan86"
+ style="stroke-width:1.06666669pt"> - Handles status messages</tspan><tspan
+ x="199.75626"
+ y="301.62292"
+ sodipodi:role="line"
+ id="tspan87"
+ style="stroke-width:1.06666669pt"> - Handles redrawing screen</tspan><tspan
+ x="199.75626"
+ y="324.66293"
+ sodipodi:role="line"
+ id="tspan88"
+ style="stroke-width:1.06666669pt"> - Emits signals on view changes</tspan><tspan
+ x="199.75626"
+ y="347.70291"
+ sodipodi:role="line"
+ id="tspan89"
+ style="stroke-width:1.06666669pt"> - Provides sp_desktop_widget_new()</tspan></text>
+ <text
+ id="text90"
+ y="420.87918"
+ x="199.05313"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.20000076px;line-height:120.00000477%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ x="199.05313"
+ y="420.87918"
+ sodipodi:role="line"
+ id="tspan106"
+ style="stroke-width:1.06666669pt">SPDesktop</tspan><tspan
+ x="199.05313"
+ y="443.91919"
+ sodipodi:role="line"
+ id="tspan107"
+ style="stroke-width:1.06666669pt"> - Subclass of SPView</tspan><tspan
+ x="199.05313"
+ y="466.9592"
+ sodipodi:role="line"
+ id="tspan108"
+ style="stroke-width:1.06666669pt"> - Implements an &quot;Editable view&quot;</tspan><tspan
+ x="199.05313"
+ y="489.99918"
+ sodipodi:role="line"
+ id="tspan109"
+ style="stroke-width:1.06666669pt"> - Holds pointer to Inkscape::Application</tspan><tspan
+ x="199.05313"
+ y="513.03918"
+ sodipodi:role="line"
+ id="tspan110"
+ style="stroke-width:1.06666669pt"> - Contains scrollbar, ruler, canvas, guides, etc.</tspan><tspan
+ x="199.05313"
+ y="536.07916"
+ sodipodi:role="line"
+ id="tspan111"
+ style="stroke-width:1.06666669pt"> - Defines scroll limits, zoom min/max, fullscreen</tspan><tspan
+ x="199.05313"
+ y="559.1192"
+ sodipodi:role="line"
+ id="tspan112"
+ style="stroke-width:1.06666669pt"> - Manages event contexts, coordinate systems, zooming, etc.</tspan></text>
+ </g>
+ <g
+ inkscape:label="Drawing Area"
+ id="layer3"
+ inkscape:groupmode="layer" />
+</svg>
diff --git a/doc/NewAppArchitecture/07-current-problems.svg b/doc/NewAppArchitecture/07-current-problems.svg
new file mode 100644
index 0000000..7087f8e
--- /dev/null
+++ b/doc/NewAppArchitecture/07-current-problems.svg
@@ -0,0 +1,729 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg586"
+ sodipodi:version="0.32"
+ inkscape:version="0.92.0 r15304"
+ width="640pt"
+ height="480pt"
+ sodipodi:docname="07-current-problems.svg"
+ version="1.1">
+ <defs
+ id="defs588">
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker791"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path792"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker719"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path720"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleInL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker717"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path718"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker714"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path715"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleInL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker712"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path713"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker709"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path710"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleInL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker707"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path708"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker704"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path705"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleInL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker702"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path703"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="TriangleOutL"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path2817"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleInL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="TriangleInL"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path2823"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2L"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow2L"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path2863"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.73333335;stroke-linejoin:round"
+ d="M 4.363143,4.732916 -8.456553,0.01878889 4.3631437,-4.6953372 c -2.0480514,2.7832182 -2.0362505,6.5911436 -7e-7,9.4282532 z"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <linearGradient
+ id="linearGradient2570">
+ <stop
+ style="stop-color:#000000;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop2571" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.62745100;"
+ offset="0.58504134"
+ id="stop2572" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop2573" />
+ </linearGradient>
+ <linearGradient
+ xlink:href="#linearGradient1218"
+ id="linearGradient1322"
+ x1="77.599106"
+ y1="20.687101"
+ x2="53.030737"
+ y2="114.57422"
+ gradientTransform="matrix(1.3228549,0,0,1.2809931,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1273"
+ id="linearGradient1318"
+ x1="59.491886"
+ y1="30.563196"
+ x2="33.266399"
+ y2="58.199241"
+ gradientTransform="matrix(1.7409899,0,0,0.97333594,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1307"
+ x1="0.45376351"
+ y1="1.9347328"
+ x2="0.41986585"
+ y2="0.12454049"
+ gradientTransform="scale(1.004208,0.995809)" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1306"
+ x1="0.45009527"
+ y1="1.9667202"
+ x2="0.41548476"
+ y2="0.11846013"
+ gradientTransform="scale(1.006361,0.993679)" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1305"
+ x1="0.45839140"
+ y1="1.8676205"
+ x2="0.42603236"
+ y2="0.13959341"
+ gradientTransform="scale(1.002016,0.997989)" />
+ <linearGradient
+ xlink:href="#linearGradient1273"
+ id="linearGradient1277"
+ x1="11.967844"
+ y1="119.11808"
+ x2="51.413385"
+ y2="80.482086"
+ gradientTransform="matrix(1.8036348,0,0,1.2393329,-37.611189,-4.4599008)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1273"
+ id="linearGradient1272"
+ x1="118.66497"
+ y1="45.70058"
+ x2="90.28563"
+ y2="62.493129"
+ gradientTransform="matrix(1.4554449,0,0,1.1642956,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1270" />
+ <linearGradient
+ xlink:href="#linearGradient1323"
+ id="linearGradient1231"
+ x1="17.696665"
+ y1="120.74315"
+ x2="94.698939"
+ y2="120.74315"
+ gradientTransform="matrix(1.8150579,0,0,0.9336165,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1221"
+ x1="27.318817"
+ y1="170.27164"
+ x2="130.70353"
+ y2="28.120696"
+ gradientTransform="scale(1.0211162,0.97932047)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient1218">
+ <stop
+ style="stop-color:#000000;stop-opacity:1.0000000;"
+ offset="0.00000000"
+ id="stop1219" />
+ <stop
+ style="stop-color:#323232;stop-opacity:1.0000000;"
+ offset="0.073255815"
+ id="stop1321" />
+ <stop
+ style="stop-color:#000000;stop-opacity:1.0000000;"
+ offset="0.65260679"
+ id="stop1320" />
+ <stop
+ style="stop-color:#fff;stop-opacity:1;"
+ offset="1"
+ id="stop1220" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1222">
+ <stop
+ style="stop-color:#0081ac;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop1223" />
+ <stop
+ style="stop-color:#006d91;stop-opacity:0.62745100;"
+ offset="0.50000000"
+ id="stop1722" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop1224" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1273">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1.0000000;"
+ offset="0.00000000"
+ id="stop1274" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.00000000;"
+ offset="1.0000000"
+ id="stop1275" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1323">
+ <stop
+ style="stop-color:#000000;stop-opacity:0.77685952;"
+ offset="0.00000000"
+ id="stop1324" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.00000000;"
+ offset="1.0000000"
+ id="stop1325" />
+ </linearGradient>
+ <radialGradient
+ xlink:href="#linearGradient826"
+ id="radialGradient829"
+ cx="296.2963"
+ cy="281.25"
+ r="248.40302"
+ fx="303.7037"
+ fy="93.75"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.29936853,0,0,0.15858773,4.3548661,98.117152)" />
+ <linearGradient
+ id="linearGradient826">
+ <stop
+ style="stop-color:#000000;stop-opacity:0.95294118;"
+ offset="0.00000000"
+ id="stop827" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.76078433;"
+ offset="0.36585677"
+ id="stop830" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.52941179;"
+ offset="0.47107276"
+ id="stop847" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.00000000;"
+ offset="1.0000000"
+ id="stop828" />
+ </linearGradient>
+ <linearGradient
+ xlink:href="#linearGradient909"
+ id="linearGradient907"
+ x1="0.50000000"
+ y1="0.66667551"
+ x2="0.50000000"
+ y2="-1.7333326" />
+ <linearGradient
+ id="linearGradient909">
+ <stop
+ style="stop-color:#000000;stop-opacity:0.00000000;"
+ offset="0.00000000"
+ id="stop910" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.17000000;"
+ offset="1.0000000"
+ id="stop913" />
+ </linearGradient>
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1309"
+ gradientTransform="scale(2.8444445,0.4)"
+ x1="0"
+ y1="4.7369516e-15"
+ x2="300"
+ y2="4.7369516e-15"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient2570"
+ id="linearGradient1308"
+ x1="-0.0028122679"
+ y1="1365.4825"
+ x2="64.30938"
+ y2="1365.4825"
+ gradientTransform="scale(13.227991,0.0860129)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient826"
+ id="radialGradient38495"
+ cx="296.2963"
+ cy="281.25"
+ fx="303.7037"
+ fy="93.75"
+ r="248.40302"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4203424,0,0,0.08699077,-33.810677,100.89451)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient38497"
+ x1="33.344169"
+ y1="164.17808"
+ x2="131.82116"
+ y2="28.775105"
+ gradientTransform="scale(1.0839555,1.0496536)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient38499"
+ x1="31.731446"
+ y1="165.85049"
+ x2="131.57971"
+ y2="28.562063"
+ gradientTransform="scale(1.0848907,1.0487488)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient38501"
+ x1="35.171777"
+ y1="162.0032"
+ x2="131.8238"
+ y2="29.109513"
+ gradientTransform="scale(1.0846262,1.0490045)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient38503"
+ x1="37.676606"
+ y1="159.47478"
+ x2="132.33793"
+ y2="29.318235"
+ gradientTransform="scale(1.0823063,1.051253)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient38505"
+ x1="29.920773"
+ y1="167.66146"
+ x2="131.16846"
+ y2="28.448861"
+ gradientTransform="scale(1.0869998,1.0467139)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient38507"
+ x1="27.318817"
+ y1="170.27164"
+ x2="130.70353"
+ y2="28.120696"
+ gradientTransform="scale(1.0891906,1.0446085)"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.978125"
+ inkscape:cx="426.66667"
+ inkscape:cy="320"
+ inkscape:window-width="984"
+ inkscape:window-height="845"
+ inkscape:window-x="190"
+ inkscape:window-y="105"
+ showguides="true"
+ inkscape:guide-bbox="false"
+ inkscape:current-layer="layer2"
+ showgrid="true"
+ inkscape:guide-points="true"
+ gridtolerance="50.000000pt"
+ inkscape:grid-points="true"
+ inkscape:grid-bbox="true"
+ inkscape:window-maximized="0">
+ <inkscape:grid
+ id="GridFromPre046Settings"
+ type="xygrid"
+ originx="0"
+ originy="0"
+ spacingx="7.1111111"
+ spacingy="7.1111111"
+ color="#3f3fff"
+ empcolor="#3f3fff"
+ opacity="0.15"
+ empopacity="0.38"
+ empspacing="5" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata33">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer1"
+ inkscape:label="Background"
+ style="display:block">
+ <rect
+ style="font-size:12px;fill:url(#linearGradient1309);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.20000017pt"
+ id="topbluebox"
+ width="853.33331"
+ height="120"
+ x="0"
+ y="1.8947807e-15" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient1308);stroke-width:5.31674433;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M -0.03652902,117.55657 850.68323,117.34163"
+ id="path654"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0" />
+ <g
+ id="g1085"
+ transform="translate(689.36448,-10.40511)">
+ <g
+ id="g1394"
+ transform="matrix(0.875802,0,0,0.869278,1.1184885,-8.4967275)">
+ <ellipse
+ id="path898"
+ style="opacity:0.69398911;fill:url(#radialGradient38495);stroke-width:0.84729707;stroke-dashoffset:0"
+ cx="92.292046"
+ cy="126.99174"
+ rx="126.10272"
+ ry="26.097233" />
+ <ellipse
+ id="ball1"
+ style="fill:url(#radialGradient829);stroke-width:0.96546245;stroke-dashoffset:0"
+ cx="94.165428"
+ cy="145.69347"
+ rx="89.810562"
+ ry="47.576321" />
+ </g>
+ <g
+ id="g1310"
+ transform="matrix(1.822197,0,0,1.662749,-192.00875,13.084299)"
+ style="fill:url(#linearGradient1221)">
+ <path
+ style="fill:url(#linearGradient38497);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 148.55614,11.815593 c -2.18769,1e-6 -4.39029,0.823628 -6.06667,2.5 l -29.76666,29.8 c -1.64308,1.643032 -2.50068,3.78929 -2.53334,5.933333 -4.6e-4,0.03598 0,0.09736 0,0.133333 h 0.0667 c 0.57027,2.16974 15.28934,4.922713 16.93333,6.566667 2.48272,2.482738 -9.51602,4.317248 -7.03333,6.8 2.48271,2.482709 15.01704,4.783915 17.5,7.266669 2.48273,2.48272 -5.08275,5.11728 -2.6,7.6 2.48272,2.482753 10.81047,-0.609259 9.3,5.866667 3.35273,3.352736 10.34963,1.752736 15.03333,-1.6 2.48272,-2.482721 -4.74941,-2.250614 -2.26666,-4.733334 2.48272,-2.482752 8.75277,-2.494421 14.03333,-8.433335 -2.12548,-3.305654 -9.08274,-4.717259 -6.6,-7.2 2.48272,-2.482715 7.28509,-1.236886 17.7,-5.966667 5.08413,-2.309024 4.68613,-4.040355 4.66667,-6.166667 -4.1e-4,-0.04475 0,-0.08825 0,-0.133333 h -0.0333 c -0.0326,-2.144041 -0.85698,-4.290298 -2.5,-5.933333 l -29.8,-29.8 c -1.67637,-1.67637 -3.84565,-2.5 -6.03334,-2.5 z m -0.26667,3.866666 c 0.97256,0.02533 1.75986,0.768324 3.3,1.766667 l 14.06667,10.433333 c 0.15408,0.09991 0.29855,0.192996 0.43333,0.3 0.1348,0.10699 0.28452,0.220015 0.4,0.333334 0.11548,0.113111 0.20364,0.248218 0.3,0.366666 0.0961,0.118429 0.18984,0.244093 0.26667,0.366667 0.077,0.122774 0.14229,0.240765 0.2,0.366667 0.0577,0.126131 0.0949,0.238188 0.13333,0.366666 0.0386,0.128282 0.0808,0.270352 0.1,0.4 0.0193,0.12988 0.0333,0.269763 0.0333,0.4 l -8.33333,-4.033333 -0.83334,6.3 -4.6,-2.166667 -7.06666,4.733334 -2.73334,-9.333334 -3.46666,8.166667 -9.76667,0.966667 0.1,-4.333334 c 0,-1.042224 5.64516,-8.329604 9.06666,-10.066666 l 6.26667,-4.5 c 0.92408,-0.599006 1.54979,-0.848535 2.13333,-0.833334 z m -12.93333,42.6 c 4.43676,1.15063 9.37288,2.639674 13.33333,2.666667 l 0.16667,1.8 c -3.39138,-0.349579 -10.57471,-2.002379 -12.26667,-2.866667 z m 46.23333,7.9 c -0.67728,-0.02171 -1.31822,0.0462 -1.8,0.166667 -0.90833,0.226965 -5.321,0.331531 -4.96666,3.166667 3.89845,1.416876 9.92489,2.502007 10.63333,-0.333334 0.53176,-2.12593 -1.83484,-2.93489 -3.86667,-3 z m -50.96666,5.766669 c -0.61333,-0.07148 -1.21336,0.0042 -1.8,0.3 -2.34598,1.183349 -3.92502,3.81264 -1.73334,4.9 2.19191,1.08736 3.74516,-0.150741 5.66667,-1.5 1.92173,-1.349045 1.87228,-1.612875 1.73333,-2.133333 -0.26601,0.07094 -2.02669,-1.352235 -3.86666,-1.566667 z m 42.86666,0.466667 c -1.77199,0.708629 -1.75118,3.170389 -0.33333,4.233333 1.41748,1.063157 3.19156,0.375499 3.9,-0.333333 0.70902,-0.70863 -0.023,-3.19136 -3.56667,-3.9 z"
+ id="path1278"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient38499);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 147.16667,11.433333 c -3.48238,0.364902 -5.88303,3.345755 -8.33158,5.570373 -8.94544,9.133798 -18.09349,18.101949 -26.95799,27.294024 -1.44334,1.84378 -2.03035,4.015468 -2.31043,6.30227 5.03542,3.678658 11.71157,3.699536 17.06666,6.766667 -1.50817,2.381747 -5.17846,2.289571 -6.84097,4.663825 -1.44519,0.973702 0.60698,2.569614 1.6838,2.93719 4.47582,2.259905 9.5207,3.127075 13.9674,5.505719 2.30619,0.164974 2.15073,2.483836 0.6201,3.623175 -1.21232,1.221254 -3.08705,3.249751 -1.23288,4.771441 2.26675,1.575369 5.27199,1.144095 7.80255,2.065316 1.77826,0.975122 0.51639,2.738136 1.73334,3.966667 3.05603,2.396513 7.28787,1.973693 10.69445,0.606201 1.75151,-0.515126 3.34201,-1.653286 4.87221,-2.539534 1.47613,-1.720326 -0.82595,-2.9513 -2.13333,-3.666667 -0.85913,-1.425274 2.00009,-1.997097 2.97462,-2.675578 3.73665,-1.514529 7.36553,-3.267329 10.23683,-6.143331 1.79011,-1.105032 -0.83882,-2.676851 -1.67812,-3.547758 -1.55141,-1.15048 -3.58938,-1.860548 -4.56666,-3.633333 2.52043,-2.7807 6.7319,-2.262194 9.98204,-3.687561 3.90317,-0.992642 7.61596,-2.729652 11.05532,-4.741974 2.26951,-1.69135 1.67257,-4.636557 1.22998,-7.021773 -1.61839,-5.025589 -6.41885,-8.01283 -9.81146,-11.814386 -7.61983,-7.514247 -15.1255,-15.17228 -22.81612,-22.597384 -2.05244,-1.578655 -4.64151,-2.423668 -7.23976,-2.003589 z M 149.5,16.766667 c 5.52064,4.046284 11.05387,8.077891 16.56667,12.133333 0.11539,1.103552 -2.90244,-1.172627 -4.0558,-1.481882 -1.41219,-0.420198 -3.8964,-2.894916 -3.5025,0.03341 -0.60562,1.192982 0.31151,5.203671 -1.4377,4.28052 -1.58183,-0.849857 -3.68447,-2.113891 -5.18058,-0.378679 -1.61892,1.082213 -3.23783,2.164425 -4.85676,3.246637 -0.9783,-3.377623 -1.95211,-6.756554 -2.93333,-10.133333 -1.34602,3.127884 -2.66477,6.267483 -4,9.4 -2.92222,0.288888 -5.84445,0.577778 -8.76667,0.866667 -0.20184,-2.166309 0.27133,-4.341771 1.77562,-5.878158 3.25057,-5.211552 8.66632,-8.395371 13.54451,-11.865011 0.95273,-0.564092 1.80847,-0.493262 2.84654,-0.223498 z m -8.63333,43.566666 c 2.34366,0.607254 4.78296,0.727797 7.16666,1.133334 -0.90625,1.084587 -3.14277,-0.32439 -4.56523,-0.371058 -1.8583,-0.406252 -3.7163,-0.80007 -5.4681,-1.562276 0.95555,0.266667 1.91111,0.533334 2.86667,0.8 z m 38.86666,5.4 c -2.15488,0.501536 -5.22675,0.793815 -5.5,3.566667 0.70833,1.029809 2.96093,1.412478 4.40801,1.688268 2.27503,0.363118 5.38493,1.181831 6.97878,-0.937576 1.36135,-1.898234 -0.67459,-4.313995 -2.78769,-4.178768 -1.02575,-0.350017 -2.04343,-0.268702 -3.0991,-0.138591 z m -51.03333,5.9 c -1.57612,1.085018 -3.71575,2.720281 -3.03333,4.9 1.61184,2.339234 4.94529,1.683368 6.78753,-0.0057 1.2184,-0.692559 3.25469,-2.021692 2.31247,-3.560997 -1.93436,-0.840999 -3.87915,-2.117169 -6.06667,-1.333334 z m 44.36667,0.333334 c -1.34895,0.891833 -1.89168,2.759628 -0.95675,4.109348 0.71622,1.795233 3.11379,1.982508 4.57991,1.004604 1.95986,-0.600235 1.10016,-3.109938 -0.33003,-3.844913 -0.72045,-0.899439 -2.36482,-1.335642 -3.29313,-1.269039 z"
+ id="path1283"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient38501);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 146.23333,12.866667 c -3.88385,1.702193 -6.61189,5.324961 -9.67052,8.210746 -7.86956,8.018198 -15.90416,15.90198 -23.69161,23.983409 -1.11331,1.428597 -1.72615,3.060044 -2.00453,4.839178 4.36,3.072638 10.04495,3.23545 14.7573,5.603266 1.5625,0.15548 3.26141,1.73801 1.81635,3.072207 -1.86501,1.91956 -5.15011,2.084779 -6.70699,4.291194 4.05269,2.923397 9.10625,3.602288 13.58014,5.613093 1.52915,1.119169 4.28812,1.21833 4.3532,3.553573 -0.41298,2.06712 -2.47344,3.267809 -3.36667,5.133334 1.94434,2.744072 5.94438,1.261888 8.50547,3.040805 1.3908,0.857738 1.00828,2.693049 1.62108,3.831047 3.2048,2.344549 7.71164,1.319869 10.94656,-0.558135 1.04365,-0.353733 3.89943,-1.626855 1.76272,-2.556043 -1.55651,-0.349067 -2.86028,-2.213166 -1.35103,-3.402938 3.84858,-2.931245 9.10998,-3.601158 12.55258,-7.214396 1.79927,-1.361045 -1.31628,-2.560541 -2.24828,-3.336495 -1.41778,-1.044797 -3.86698,-2.048091 -3.55577,-4.137179 2.35965,-3.274836 6.88107,-2.833411 10.31383,-4.263585 3.90311,-0.957377 7.67689,-2.630842 11.10878,-4.611597 2.18816,-1.940094 1.07405,-5.046756 0.32835,-7.371909 -3.93266,-5.513287 -9.35396,-9.75581 -13.9708,-14.686024 -5.91778,-5.783657 -11.65452,-11.813723 -17.68454,-17.444607 -2.14828,-1.370565 -4.63208,-2.556154 -7.20805,-1.62333 z m 2.3,2.233333 c 5.45973,2.578599 9.80753,6.890051 14.73244,10.347527 1.85084,1.664819 5.00363,2.778901 4.9009,5.71914 -1.78479,0.428996 -3.34725,-1.396857 -5.04898,-1.86837 -1.54021,-0.520034 -4.1213,-2.963549 -3.68846,0.16232 -0.54825,1.127161 0.22527,4.775461 -1.23798,4.170178 -1.53672,-0.653008 -3.2567,-1.905943 -4.87859,-1.758173 -2.31413,1.577535 -4.63724,3.142054 -6.94599,4.727378 -0.87266,-2.83558 -1.68407,-5.690403 -2.53334,-8.533333 -1.12707,2.260756 -1.98302,4.959333 -3.26666,6.966666 -3.47777,0.344565 -6.95563,0.688221 -10.43334,1.033334 0.0287,-2.531437 -0.43925,-5.398577 1.54821,-7.372648 3.13073,-5.303181 8.62883,-8.494145 13.35179,-12.127352 1.15867,-0.426692 2.35212,-1.253526 3.5,-1.466667 z m -13.76666,42.4 c 4.77393,1.272573 9.58904,2.318786 14.5,2.9 0.93608,1.872033 -0.34236,3.482335 -2.33168,2.565935 -3.62332,-0.734316 -7.25018,-1.727438 -10.80166,-2.699268 -0.26564,-0.514085 -3.09159,-3.378118 -1.36666,-2.766667 z m 45.16666,9.433333 c -1.51493,0.422114 -3.72691,0.290818 -4.26666,2.133334 2.90995,0.556827 6.05202,2.002088 8.9,0.466666 0.978,-1.977585 -1.92783,-2.538134 -3.31385,-2.645499 -0.43983,0.01517 -0.87966,0.03034 -1.31949,0.0455 z m -50.9,5.866667 c -1.16024,0.90047 -3.46737,3.083937 -1.02728,3.858837 2.25255,0.543858 3.96147,-1.380385 5.62728,-2.558837 -1.18522,-1.161836 -2.98479,-1.601218 -4.6,-1.3 z m 44.03334,0.733333 c -1.04902,2.027564 1.90687,4.021482 3.28133,2.230908 0.70415,-1.13156 -2.36473,-3.118333 -3.28133,-2.230908 z"
+ id="path1286"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient38503);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 146.66667,13.4 c -6.33172,3.543401 -10.68888,9.547281 -15.90063,14.447274 -5.8861,6.073656 -12.00588,11.974663 -17.74737,18.155152 -0.7305,1.178656 -2.18908,3.828459 -0.0714,4.248788 4.9013,2.576465 10.86092,2.972757 15.3194,6.215453 1.00861,2.475215 -2.05916,3.484953 -3.70454,4.477414 -1.7373,0.545523 -3.75405,2.175563 -0.84454,2.774326 4.83335,2.60598 10.58594,3.28132 15.01575,6.64826 1.43136,2.33294 -1.26292,4.394234 -2.23809,6.238069 0.0119,1.908953 2.8242,1.486185 4.14874,2.002826 2.29679,0.177914 4.75661,1.464231 4.98406,3.992952 0.7695,2.00242 3.5144,2.068656 5.37195,2.066153 2.47607,-0.312856 4.61313,-1.6278 6.86667,-2.6 -0.11425,-1.550102 -2.69456,-1.700315 -2.36667,-3.6 1.99363,-3.193298 6.06476,-3.869656 9.11608,-5.707796 1.73236,-0.750835 3.28599,-1.893245 4.45059,-3.392204 -1.92497,-2.280272 -5.74204,-3.012313 -6.11314,-6.406102 0.39022,-1.188208 2.2736,-2.314015 3.60639,-2.891301 5.6785,-2.143002 11.88985,-2.970298 17.10185,-6.270592 2.74324,-1.108432 1.83527,-4.538836 1.0317,-6.686009 -2.29624,-3.22589 -5.40132,-6.000174 -8.00828,-9.052576 -2.68656,-2.760044 -5.48876,-5.408427 -8.21852,-8.126754 1.12365,1.634362 -0.99109,2.422313 -2.21269,1.401868 -2.03118,-0.886068 -4.05629,-1.760173 -6.12064,-2.568534 C 160.05314,30.54272 159.67649,32.269964 159.3,34 c -2.55377,0.684822 -5.03322,-2.683187 -7.35336,-0.501311 -1.91379,1.060257 -3.40719,2.847058 -5.45058,3.513153 -1.46281,-0.265507 -1.26699,-3.243895 -2.01992,-4.618246 -0.44179,-3.083731 -1.2118,-2.404985 -2.14312,0.123134 -0.85365,1.59882 -1.21984,3.834303 -3.53335,3.298267 -3.08878,0.306225 -6.17762,0.611598 -9.26633,0.918336 0.0202,-3.177717 -0.28551,-6.766 2.22768,-9.171123 3.51639,-4.960964 8.70856,-8.341185 13.55479,-11.782731 1.62219,-0.752906 3.63701,-1.872712 5.13828,-0.273654 3.97373,2.727514 8.02021,5.285521 11.74591,8.327508 -3.19568,-3.018643 -6.19482,-6.317986 -9.51099,-9.164539 -1.87897,-0.938934 -3.8675,-2.092901 -6.02238,-1.268794 z m -11.83334,43.5 c 5.00075,0.984495 9.99566,2.003225 15,2.966667 0.20732,1.45664 0.46427,3.886308 -1.67313,3.831478 -4.16789,-0.795987 -8.38205,-1.956384 -12.49353,-3.031478 -0.61549,-0.980519 -2.50897,-2.472939 -1.9,-3.466667 0.35063,-0.05103 0.72399,-0.354699 1.06666,-0.3 z m 42.8,11.166667 c -1.73875,1.086025 2.33789,1.138186 3.27372,1.439238 1.30579,0.375237 4.48185,-0.551342 2.02628,-1.672572 -1.83243,-0.401834 -3.50784,-0.360679 -5.3,0.233334 z M 128.86667,73.8 c -2.17346,1.397366 -0.18414,3.053084 1.5865,1.699463 2.04828,-0.249261 2.08866,-2.343116 -0.17211,-2.051831 -0.54677,-0.07524 -0.99718,-0.0549 -1.41439,0.352368 z m 44.76666,1.133333 c 2.4133,2.30436 1.83777,-1.778179 0,-0.492892 0,0.102368 0,0.430964 0,0.492892 z"
+ id="path1295"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient38505);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 146.4,11 c -2.85517,0.532698 -4.88261,2.920832 -7.04143,4.696624 -9.46036,9.318687 -18.69953,18.903094 -28.02524,28.336709 -1.28513,2.140689 -2.02923,4.453081 -2.46666,6.9 4.02374,2.003945 8.08967,3.86007 12.47179,4.935568 1.05804,0.665393 4.69014,0.890135 3.49487,2.397766 -2.29866,1.221998 -5.17006,2.048868 -6.16666,4.733333 1.94556,3.411999 6.27529,3.61226 9.48467,5.236915 2.69399,1.065471 5.388,2.130945 8.08199,3.196418 0.0835,2.815831 -0.6308,1.873266 -2.05017,0.611648 -2.17089,-1.1027 -5.39205,-2.114404 -7.09766,0.274746 -1.55046,0.944625 -2.75719,3.349765 -1.57432,4.866099 2.21286,2.398176 6.00771,1.27668 8.06067,-0.779037 0.17795,-0.191378 -0.29693,2.877758 1.42073,3.193938 2.34275,1.346613 5.33929,0.970157 7.67409,2.299273 0.45283,1.979683 1.2508,4.221333 3.5739,4.531638 3.66844,1.48315 7.80683,0.39212 11.09794,-1.541311 1.39792,-0.760174 4.07797,-1.323747 3.46357,-3.423687 -0.0478,-1.38074 -3.42818,-2.212653 -1.53541,-3.499973 4.53006,-2.016167 9.17312,-4.142848 12.66666,-7.733334 0.85723,-2.253596 -2.25712,-3.193724 -3.46666,-4.566666 -1.4517,-1.221069 -3.87877,-2.524433 -0.81856,-3.364818 5.62839,-2.111859 11.87228,-2.940184 17.03456,-6.263438 2.72995,-0.86584 3.85371,-3.957742 3.06767,-6.564064 -0.0255,-2.62475 -1.76154,-4.797622 -3.22224,-6.835657 C 179.45289,36.856816 173.58197,31.828345 168.24204,26.291461 163.60188,21.818095 159.14228,17.065484 154.39198,12.762657 151.99166,11.220691 149.22884,10.717147 146.4,11 Z m 3.36667,6.733333 c 4.24058,2.976224 8.38139,6.129328 12.6,9.166667 -1.29937,-0.797366 -2.67486,-1.290978 -4.2,-1.4 -0.21287,1.824575 -0.47054,3.643999 -0.7,5.466667 -1.97534,-0.587625 -4.21204,-1.778592 -5.97773,-0.09263 -1.30676,0.402533 -3.52226,3.290581 -4.25972,2.135968 -0.99915,-3.447628 -1.99405,-6.896491 -2.99589,-10.343339 -1.52265,3.539479 -3.02044,7.089652 -4.53333,10.633333 -2.56667,0.255555 -5.13333,0.511111 -7.7,0.766667 -0.0148,-3.662276 2.83591,-6.395601 5.07235,-8.959274 3.30461,-2.837611 6.75708,-5.60858 10.52338,-7.756865 0.7316,-0.360909 1.44586,0.250944 2.17094,0.382806 z m 26.36666,48.333334 C 174.87994,66.86218 172.84987,68.441375 174.2,70 c 2.62772,1.71982 5.90645,1.835937 8.93343,1.934762 2.25075,-0.06272 4.4688,-2.726652 2.93663,-4.770688 -1.42803,-2.456455 -4.67977,-1.908377 -7.06627,-1.883005 -0.95681,0.261868 -1.91364,0.523732 -2.87046,0.785598 z m -3.3,5.433333 c -1.27562,1.033534 -1.85687,2.841465 -1.35231,4.508785 0.43077,1.899535 2.6256,2.385569 4.29198,1.849858 2.50838,0.201444 3.52565,-3.378484 1.43654,-4.628378 -1.24197,-1.050288 -2.64377,-2.095016 -4.37621,-1.730265 z"
+ id="path1300"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient38507);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 146,10.2 c -5.57009,2.353735 -9.31153,7.276932 -13.56394,11.364379 -7.26121,7.360863 -14.57305,14.685571 -21.80273,22.068954 -0.92375,2.588329 -1.83526,5.181133 -2.76666,7.766667 5.12606,2.235525 10.28103,4.361596 15.6,6.1 -0.32712,1.554459 -2.93579,1.371077 -3.74338,2.860476 -1.43416,0.914482 -2.37188,3.411157 -0.36803,4.245199 3.1673,2.975582 7.51398,4.048213 11.44474,5.660992 -3.09041,-0.89746 -5.13867,2.363507 -6.33333,4.666666 -0.72155,2.880448 2.58866,4.694489 5.06851,4.276737 1.54135,0.553684 3.66,-2.522746 3.86807,-0.13866 2.29497,2.607941 6.70581,1.993255 9.10076,4.436609 0.7749,2.147771 2.55461,3.943898 4.94541,3.965707 2.15881,0.621481 4.27216,0.328386 6.35476,-0.418515 2.43249,-0.54992 4.74804,-1.764623 6.87594,-2.976017 1.61013,-1.140622 1.25617,-3.709454 -0.21345,-4.812527 -0.21701,-1.714746 2.45466,-1.738353 3.54015,-2.659077 2.92458,-1.339302 5.49291,-3.216603 7.95985,-5.240923 -1.09048,1.568168 -1.50221,3.637034 -0.89348,5.420276 1.02957,2.431889 4.09705,1.779572 6.16014,1.64639 C 179.29546,77.451445 180.09314,74.273508 178,72.9 c -3.03927,-1.879702 -0.42819,-1.002977 1.49692,-0.460891 2.38484,0.141742 5.36949,0.891675 6.99369,-1.418947 1.80089,-1.737129 0.66941,-4.475043 -1.05728,-5.820162 -2.14881,-1.14371 -4.72742,-0.810973 -7.057,-0.699886 -2.09119,0.370608 -3.67839,1.613047 -4.97633,3.233219 -1.58756,1.272788 1.82748,3.61782 -0.0532,3.147933 -1.36163,0.234395 0.30799,-2.483632 -1.32358,-3.36862 -1.06348,-1.560896 -2.85826,-2.534055 -4.1899,-3.879313 6.43141,-3.110773 13.94477,-3.952924 19.7,-8.433333 2.10991,-2.5028 1.15052,-5.815831 0.53333,-8.666667 C 184.23156,39.549156 177.84192,34.54079 172.35319,28.898191 166.50884,23.205036 160.69939,17.462459 154.83333,11.8 152.27799,10.77259 149.66457,10.063772 146.88646,10.206305 146.60075,10.233991 146.27214,10.101959 146,10.2 Z m 7.6,11.266667 c 1.51374,1.165288 3.04586,2.309495 4.56667,3.466666 -1.39718,1.06872 -0.90296,3.127104 -1.4,4.633334 -2.08576,-0.566112 -4.35694,-0.641822 -6.05767,0.905733 -1.05102,0.888519 -3.01815,1.872214 -3.17799,-0.196242 -0.93874,-3.234383 -1.83,-6.48501 -2.79768,-9.709491 1.63294,-0.494373 3.30094,-3.132711 4.90134,-1.63781 1.32178,0.845937 2.64355,1.691873 3.96533,2.53781 z m -14.36667,10.966666 c -1.96666,0.2 -3.93333,0.4 -5.9,0.6 0.75323,-3.751583 3.85837,-6.37712 6.49928,-8.892012 1.44608,-1.049755 2.80293,-2.240606 4.30072,-3.207988 -1.63333,3.833334 -3.26666,7.666667 -4.9,11.5 z"
+ id="path1304"
+ inkscape:connector-curvature="0" />
+ </g>
+ <path
+ style="fill:url(#linearGradient1322);fill-rule:evenodd;stroke-width:1.30175579pt"
+ d="m 80.606138,21.093974 c -3.986404,2e-6 -7.999981,1.500815 -11.054664,4.555494 L 15.31073,79.950952 c -2.994002,2.993929 -4.556718,6.904836 -4.616235,10.811705 -8.35e-4,0.06557 0,0.177392 0,0.24296 h 0.12148 c 1.039149,3.953694 27.860205,8.970154 30.855878,11.965763 4.524006,4.52404 -17.340071,7.86688 -12.816122,12.39094 4.523986,4.52399 27.364021,8.71724 31.888455,13.2413 4.524026,4.52402 -9.261778,9.3247 -4.737714,13.8487 4.524006,4.52407 19.69882,-1.11018 16.946437,10.69023 6.109347,6.10935 18.859073,3.19383 27.393701,-2.91552 4.52401,-4.524 -8.654358,-4.10106 -4.130314,-8.62506 4.524004,-4.52406 15.949294,-4.54533 25.571504,-15.3672 -3.87306,-6.02355 -16.55055,-8.59578 -12.0265,-13.11982 4.524,-4.524 13.27486,-2.25385 32.25288,-10.87245 9.26429,-4.207497 8.53905,-7.362324 8.50359,-11.236883 -7.4e-4,-0.08153 0,-0.160805 0,-0.24296 h -0.0608 c -0.0595,-3.906866 -1.56157,-7.817769 -4.55549,-10.811705 L 91.600063,25.649468 C 88.5454,22.594793 84.592543,21.093974 80.606138,21.093974 Z M 56.553132,105.76542 c 8.084647,2.09667 17.079247,4.81 24.295966,4.85919 l 0.3037,3.27996 c -6.179767,-0.63701 -19.269208,-3.64874 -22.352289,-5.22364 z m 84.246258,14.39535 c -1.23415,-0.0395 -2.40206,0.0842 -3.27996,0.3037 -1.65516,0.41359 -9.69592,0.60412 -9.05025,5.7703 7.10376,2.58184 18.08512,4.55915 19.37604,-0.6074 0.96897,-3.87387 -3.34345,-5.34795 -7.04583,-5.4666 z m -92.871326,10.50801 c -1.117595,-0.13024 -2.210972,0.008 -3.279956,0.54666 -4.274826,2.15631 -7.152149,6.94739 -3.158474,8.92877 3.99408,1.98139 6.824425,-0.27467 10.325785,-2.7333 3.501767,-2.45822 3.411658,-2.93897 3.158475,-3.88735 -0.484734,0.12928 -3.693025,-2.46403 -7.04583,-2.85478 z m 78.111516,0.85036 c -3.22891,1.29126 -3.19098,5.77708 -0.60739,7.71397 2.58293,1.93728 5.81565,0.68424 7.10657,-0.6074 1.29198,-1.29126 -0.042,-5.81528 -6.49918,-7.10657 z"
+ id="path1217"
+ sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient1231);fill-rule:evenodd;stroke-width:1.30175579pt"
+ d="m 11.977124,84.576671 c -0.883927,1.953959 -1.36513,4.04141 -1.397018,6.134731 -8.33e-4,0.06556 0,0.177399 0,0.24296 h 0.12148 c 0.994358,3.78327 25.07956,8.512878 29.823299,11.540588 2.091809,-1.24429 3.465756,-2.547484 2.065157,-3.948099 C 39.594368,95.551236 12.773315,90.53478 11.734165,86.581087 h -0.12148 c 0,-0.06558 -8.33e-4,-0.177399 0,-0.242958 0.0091,-0.601939 0.284168,-1.162709 0.364439,-1.761458 z M 150.34262,92.47286 c -1.0612,1.680115 -3.10061,3.387829 -7.41026,5.345111 -18.97801,8.618589 -27.72886,6.348449 -32.25287,10.872439 -1.37053,1.37052 -0.88153,2.54264 0.18222,3.70513 4.78924,-3.38639 13.4115,-2.19944 31.03808,-10.20429 8.00504,-3.635614 8.46503,-6.511246 8.44283,-9.71839 z m -92.871299,8.86803 2.247377,2.9155 c 3.08308,1.57491 16.17252,4.58665 22.352289,5.22364 l -0.303699,-3.27996 c -7.216719,-0.0492 -16.21132,-2.7625 -24.295967,-4.85918 z M 30.685018,111.4237 c -2.022925,1.2244 -3.320206,2.51079 -1.943676,3.88736 4.523988,4.52399 27.364021,8.71723 31.888455,13.2413 0.198962,0.19895 0.17245,0.40741 0.3037,0.6074 1.405197,-1.67236 2.355425,-3.35413 0.728879,-4.98067 -4.359755,-4.3594 -25.379991,-8.41841 -30.977358,-12.75539 z m 100.220842,10.75097 c -1.55381,0.80713 -2.80902,1.9449 -2.55108,4.00882 7.10375,2.58184 18.08511,4.55915 19.37603,-0.60738 0.25122,-1.00435 0.11312,-1.85114 -0.24296,-2.55108 -3.06888,2.47706 -10.66085,1.09402 -16.58199,-0.85036 z m -11.17612,2.18664 c -8.90094,7.91694 -18.52655,8.74738 -22.595255,12.81612 -1.63664,1.63663 -0.713263,2.53048 0.6074,3.34069 5.191475,-3.47749 15.190165,-4.50342 23.931535,-14.33463 -0.44804,-0.69679 -1.30027,-1.20938 -1.94368,-1.82218 z m 5.0414,8.01767 c -1.86829,1.81567 -1.62997,5.17107 0.54666,6.80287 2.58292,1.93727 5.81565,0.68422 7.10656,-0.6074 0.66392,-0.66356 0.57592,-2.15087 -0.48592,-3.6444 -1.57518,0.81115 -3.6457,1.33536 -5.58806,-0.12148 -0.82081,-0.61535 -1.29544,-1.48388 -1.57924,-2.42959 z m -71.612353,0.24296 c -0.216533,0.15768 -0.17254,0.18708 -0.42518,0.36444 -3.501359,2.45861 -6.331704,4.7147 -10.325785,2.73329 -0.835138,-0.41433 -1.173493,-1.0297 -1.457758,-1.63998 -1.775949,2.19005 -2.210285,4.70572 0.425179,6.01325 3.994085,1.98138 6.824427,-0.27468 10.325787,-2.73329 3.50177,-2.45823 3.411658,-2.93899 3.158475,-3.88735 -0.166315,0.0444 -0.997334,-0.45265 -1.700718,-0.85036 z m 3.462175,4.79845 c -1.405193,1.67235 -2.355439,3.35411 -0.728879,4.98066 4.524009,4.52407 19.69882,-1.11019 16.946437,10.69022 6.109348,6.10935 18.859078,3.19384 27.39371,-2.91551 1.66654,-1.66656 0.69997,-2.58291 -0.668148,-3.40144 -8.458362,5.3473 -19.957869,7.67884 -25.692984,1.94368 2.752384,-11.8004 -12.422431,-6.16613 -16.946436,-10.69021 -0.198964,-0.19896 -0.172449,-0.40742 -0.3037,-0.6074 z"
+ id="path1269"
+ sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient1272);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.30175579pt"
+ d="m 107.57531,47.365247 32.87711,35.325423 c 0,0 9.7932,10.492701 2.09856,14.68978 -7.69466,4.19708 -31.12834,10.4927 -31.12834,10.4927 L 68.830422,46.540402 Z"
+ id="path1271"
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient1277);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.49509335pt"
+ d="M 56.944037,42.006087 26.165461,77.3315 c 0,0 -11.891721,10.4927 -4.197076,14.689777 7.694644,4.197078 58.409343,21.335153 94.084505,15.039533 L 75.13138,45.853409 Z"
+ id="path1276"
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient1318);fill-rule:evenodd;stroke-width:1.30175579pt"
+ d="m 82.042498,27.12255 c 4.504479,0.03329 23.422692,18.434639 28.837322,22.230809 5.41464,3.796171 4.14478,6.285951 4.14478,6.523269 L 99.839631,48.527099 98.321133,60.006943 89.939024,56.058848 77.062155,64.683915 72.081482,47.67674 65.76453,62.558018 47.967732,64.319476 48.149952,56.423287 74.438456,30.540688 c 1.907291,-1.877842 3.182156,-3.451427 7.604042,-3.418138 z"
+ id="path1317"
+ sodipodi:nodetypes="ccccccccccczz"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Title">
+ <text
+ x="48"
+ y="74.666664"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:51.20000076px;line-height:100%;font-family:Arial;writing-mode:lr-tb;text-anchor:start;display:block;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="text48">
+ <tspan
+ x="48"
+ y="74.666664"
+ sodipodi:role="line"
+ id="tspan1"
+ style="stroke-width:3.20000017pt">Problems</tspan>
+ </text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.20000076px;line-height:120.00000477%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="39.053123"
+ y="188.08769"
+ id="text80"><tspan
+ id="tspan16"
+ sodipodi:role="line"
+ y="188.08769"
+ x="39.053123"
+ style="stroke-width:1.06666669pt">* Inkscape seems to want to have &quot;run modes&quot;</tspan><tspan
+ id="tspan17"
+ sodipodi:role="line"
+ y="211.1277"
+ x="39.053123"
+ style="stroke-width:1.06666669pt"> + editor, viewer, cmdline, more...?</tspan><tspan
+ id="tspan18"
+ sodipodi:role="line"
+ y="234.16769"
+ x="39.053123"
+ style="stroke-width:1.06666669pt"> + If we needed a new mode, it would be hard to fit in except as hacks</tspan><tspan
+ id="tspan19"
+ sodipodi:role="line"
+ y="257.2077"
+ x="39.053123"
+ style="stroke-width:1.06666669pt"> + Currently, these modes implemented as exceptions, but it's buggy</tspan><tspan
+ id="tspan20"
+ sodipodi:role="line"
+ y="280.24771"
+ x="39.053123"
+ style="stroke-width:1.06666669pt"> - popping up warning dialogs in cmdline mode</tspan><tspan
+ id="tspan21"
+ sodipodi:role="line"
+ y="303.28769"
+ x="39.053123"
+ style="stroke-width:1.06666669pt"> - inconsistent URI / UTF handling</tspan><tspan
+ id="tspan22"
+ sodipodi:role="line"
+ y="326.3277"
+ x="39.053123"
+ style="stroke-width:1.06666669pt"> - duplication of code for different modes may lead to divergences</tspan><tspan
+ id="tspan23"
+ sodipodi:role="line"
+ y="349.36771"
+ x="39.053123"
+ style="stroke-width:1.06666669pt" /><tspan
+ id="tspan24"
+ sodipodi:role="line"
+ y="372.40771"
+ x="39.053123"
+ style="stroke-width:1.06666669pt">* main() has too much code in it (&gt;750 lines)</tspan><tspan
+ id="tspan25"
+ sodipodi:role="line"
+ y="395.44772"
+ x="39.053123"
+ style="stroke-width:1.06666669pt"> + cmdline handling code needs broken out separately</tspan><tspan
+ id="tspan26"
+ sodipodi:role="line"
+ y="418.4877"
+ x="39.053123"
+ style="stroke-width:1.06666669pt" /><tspan
+ id="tspan27"
+ sodipodi:role="line"
+ y="441.52771"
+ x="39.053123"
+ style="stroke-width:1.06666669pt">* winmain() is not well integrated (Q's listed in makefiles)</tspan><tspan
+ id="tspan28"
+ sodipodi:role="line"
+ y="464.56772"
+ x="39.053123"
+ style="stroke-width:1.06666669pt" /><tspan
+ id="tspan29"
+ sodipodi:role="line"
+ y="487.60773"
+ x="39.053123"
+ style="stroke-width:1.06666669pt">* Current architecture is C / Gtk+; we need C++ / Gtkmm</tspan></text>
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="Drawing Area" />
+</svg>
diff --git a/doc/NewAppArchitecture/08-inkscape-gtkmm.svg b/doc/NewAppArchitecture/08-inkscape-gtkmm.svg
new file mode 100644
index 0000000..5123944
--- /dev/null
+++ b/doc/NewAppArchitecture/08-inkscape-gtkmm.svg
@@ -0,0 +1,576 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg586"
+ sodipodi:version="0.32"
+ inkscape:version="0.92.0 r15304"
+ width="640pt"
+ height="480pt"
+ sodipodi:docname="08-inkscape-gtkmm.svg"
+ version="1.1">
+ <defs
+ id="defs588">
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="TriangleOutL"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path2817"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleInL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="TriangleInL"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path2823"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2L"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow2L"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path2863"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.73333335;stroke-linejoin:round"
+ d="M 4.363143,4.732916 -8.456553,0.01878889 4.3631437,-4.6953372 c -2.0480514,2.7832182 -2.0362505,6.5911436 -7e-7,9.4282532 z"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <linearGradient
+ id="linearGradient2570">
+ <stop
+ style="stop-color:#000000;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop2571" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.62745100;"
+ offset="0.58504134"
+ id="stop2572" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop2573" />
+ </linearGradient>
+ <linearGradient
+ xlink:href="#linearGradient1218"
+ id="linearGradient1322"
+ x1="77.599106"
+ y1="20.687101"
+ x2="53.030737"
+ y2="114.57422"
+ gradientTransform="matrix(1.3228549,0,0,1.2809931,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1273"
+ id="linearGradient1318"
+ x1="59.491886"
+ y1="30.563196"
+ x2="33.266399"
+ y2="58.199241"
+ gradientTransform="matrix(1.7409899,0,0,0.97333594,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1307"
+ x1="0.45376351"
+ y1="1.9347328"
+ x2="0.41986585"
+ y2="0.12454049"
+ gradientTransform="scale(1.004208,0.995809)" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1306"
+ x1="0.45009527"
+ y1="1.9667202"
+ x2="0.41548476"
+ y2="0.11846013"
+ gradientTransform="scale(1.006361,0.993679)" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1305"
+ x1="0.45839140"
+ y1="1.8676205"
+ x2="0.42603236"
+ y2="0.13959341"
+ gradientTransform="scale(1.002016,0.997989)" />
+ <linearGradient
+ xlink:href="#linearGradient1273"
+ id="linearGradient1277"
+ x1="11.967844"
+ y1="119.11808"
+ x2="51.413385"
+ y2="80.482086"
+ gradientTransform="matrix(1.8036348,0,0,1.2393329,-37.611189,-4.4599008)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1273"
+ id="linearGradient1272"
+ x1="118.66497"
+ y1="45.70058"
+ x2="90.28563"
+ y2="62.493129"
+ gradientTransform="matrix(1.4554449,0,0,1.1642956,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1270" />
+ <linearGradient
+ xlink:href="#linearGradient1323"
+ id="linearGradient1231"
+ x1="17.696665"
+ y1="120.74315"
+ x2="94.698939"
+ y2="120.74315"
+ gradientTransform="matrix(1.8150579,0,0,0.9336165,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1221"
+ x1="27.318817"
+ y1="170.27164"
+ x2="130.70353"
+ y2="28.120696"
+ gradientTransform="scale(1.0211162,0.97932047)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient1218">
+ <stop
+ style="stop-color:#000000;stop-opacity:1.0000000;"
+ offset="0.00000000"
+ id="stop1219" />
+ <stop
+ style="stop-color:#323232;stop-opacity:1.0000000;"
+ offset="0.073255815"
+ id="stop1321" />
+ <stop
+ style="stop-color:#000000;stop-opacity:1.0000000;"
+ offset="0.65260679"
+ id="stop1320" />
+ <stop
+ style="stop-color:#fff;stop-opacity:1;"
+ offset="1"
+ id="stop1220" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1222">
+ <stop
+ style="stop-color:#0081ac;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop1223" />
+ <stop
+ style="stop-color:#006d91;stop-opacity:0.62745100;"
+ offset="0.50000000"
+ id="stop1722" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop1224" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1273">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1.0000000;"
+ offset="0.00000000"
+ id="stop1274" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.00000000;"
+ offset="1.0000000"
+ id="stop1275" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1323">
+ <stop
+ style="stop-color:#000000;stop-opacity:0.77685952;"
+ offset="0.00000000"
+ id="stop1324" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.00000000;"
+ offset="1.0000000"
+ id="stop1325" />
+ </linearGradient>
+ <radialGradient
+ xlink:href="#linearGradient826"
+ id="radialGradient829"
+ cx="296.2963"
+ cy="281.25"
+ r="248.40302"
+ fx="303.7037"
+ fy="93.75"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.29936853,0,0,0.15858773,4.3548661,98.117152)" />
+ <linearGradient
+ id="linearGradient826">
+ <stop
+ style="stop-color:#000000;stop-opacity:0.95294118;"
+ offset="0.00000000"
+ id="stop827" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.76078433;"
+ offset="0.36585677"
+ id="stop830" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.52941179;"
+ offset="0.47107276"
+ id="stop847" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.00000000;"
+ offset="1.0000000"
+ id="stop828" />
+ </linearGradient>
+ <linearGradient
+ xlink:href="#linearGradient909"
+ id="linearGradient907"
+ x1="0.50000000"
+ y1="0.66667551"
+ x2="0.50000000"
+ y2="-1.7333326" />
+ <linearGradient
+ id="linearGradient909">
+ <stop
+ style="stop-color:#000000;stop-opacity:0.00000000;"
+ offset="0.00000000"
+ id="stop910" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.17000000;"
+ offset="1.0000000"
+ id="stop913" />
+ </linearGradient>
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1309"
+ gradientTransform="scale(2.8444445,0.4)"
+ x1="0"
+ y1="4.7369516e-15"
+ x2="300"
+ y2="4.7369516e-15"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient2570"
+ id="linearGradient1308"
+ x1="-0.0028122679"
+ y1="1365.4825"
+ x2="64.30938"
+ y2="1365.4825"
+ gradientTransform="scale(13.227991,0.0860129)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient826"
+ id="radialGradient38856"
+ cx="296.2963"
+ cy="281.25"
+ fx="303.7037"
+ fy="93.75"
+ r="248.40302"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4203424,0,0,0.08699077,-33.810677,100.89451)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient38858"
+ x1="33.344169"
+ y1="164.17808"
+ x2="131.82116"
+ y2="28.775105"
+ gradientTransform="scale(1.0839555,1.0496536)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient38860"
+ x1="31.731446"
+ y1="165.85049"
+ x2="131.57971"
+ y2="28.562063"
+ gradientTransform="scale(1.0848907,1.0487488)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient38862"
+ x1="35.171777"
+ y1="162.0032"
+ x2="131.8238"
+ y2="29.109513"
+ gradientTransform="scale(1.0846262,1.0490045)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient38864"
+ x1="37.676606"
+ y1="159.47478"
+ x2="132.33793"
+ y2="29.318235"
+ gradientTransform="scale(1.0823063,1.051253)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient38866"
+ x1="29.920773"
+ y1="167.66146"
+ x2="131.16846"
+ y2="28.448861"
+ gradientTransform="scale(1.0869998,1.0467139)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient38868"
+ x1="27.318817"
+ y1="170.27164"
+ x2="130.70353"
+ y2="28.120696"
+ gradientTransform="scale(1.0891906,1.0446085)"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.9390625"
+ inkscape:cx="426.66667"
+ inkscape:cy="320"
+ inkscape:window-width="973"
+ inkscape:window-height="820"
+ inkscape:window-x="293"
+ inkscape:window-y="105"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:current-layer="layer2"
+ showgrid="false"
+ inkscape:window-maximized="0" />
+ <metadata
+ id="metadata33">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer1"
+ inkscape:label="Background"
+ style="display:block">
+ <rect
+ style="font-size:12px;fill:url(#linearGradient1309);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.20000017pt"
+ id="topbluebox"
+ width="853.33331"
+ height="120"
+ x="0"
+ y="1.8947807e-15" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient1308);stroke-width:5.31674433;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M -0.03652902,117.55657 850.68323,117.34163"
+ id="path654"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0" />
+ <g
+ id="g1085"
+ transform="translate(689.36448,-10.40511)">
+ <g
+ id="g1394"
+ transform="matrix(0.875802,0,0,0.869278,1.1184885,-8.4967275)">
+ <ellipse
+ id="path898"
+ style="opacity:0.69398911;fill:url(#radialGradient38856);stroke-width:0.84729707;stroke-dashoffset:0"
+ cx="92.292046"
+ cy="126.99174"
+ rx="126.10272"
+ ry="26.097233" />
+ <ellipse
+ id="ball1"
+ style="fill:url(#radialGradient829);stroke-width:0.96546245;stroke-dashoffset:0"
+ cx="94.165428"
+ cy="145.69347"
+ rx="89.810562"
+ ry="47.576321" />
+ </g>
+ <g
+ id="g1310"
+ transform="matrix(1.822197,0,0,1.662749,-192.00875,13.084299)"
+ style="fill:url(#linearGradient1221)">
+ <path
+ style="fill:url(#linearGradient38858);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 148.55614,11.815593 c -2.18769,1e-6 -4.39029,0.823628 -6.06667,2.5 l -29.76666,29.8 c -1.64308,1.643032 -2.50068,3.78929 -2.53334,5.933333 -4.6e-4,0.03598 0,0.09736 0,0.133333 h 0.0667 c 0.57027,2.16974 15.28934,4.922713 16.93333,6.566667 2.48272,2.482738 -9.51602,4.317248 -7.03333,6.8 2.48271,2.482709 15.01704,4.783915 17.5,7.266669 2.48273,2.48272 -5.08275,5.11728 -2.6,7.6 2.48272,2.482753 10.81047,-0.609259 9.3,5.866667 3.35273,3.352736 10.34963,1.752736 15.03333,-1.6 2.48272,-2.482721 -4.74941,-2.250614 -2.26666,-4.733334 2.48272,-2.482752 8.75277,-2.494421 14.03333,-8.433335 -2.12548,-3.305654 -9.08274,-4.717259 -6.6,-7.2 2.48272,-2.482715 7.28509,-1.236886 17.7,-5.966667 5.08413,-2.309024 4.68613,-4.040355 4.66667,-6.166667 -4.1e-4,-0.04475 0,-0.08825 0,-0.133333 h -0.0333 c -0.0326,-2.144041 -0.85698,-4.290298 -2.5,-5.933333 l -29.8,-29.8 c -1.67637,-1.67637 -3.84565,-2.5 -6.03334,-2.5 z m -0.26667,3.866666 c 0.97256,0.02533 1.75986,0.768324 3.3,1.766667 l 14.06667,10.433333 c 0.15408,0.09991 0.29855,0.192996 0.43333,0.3 0.1348,0.10699 0.28452,0.220015 0.4,0.333334 0.11548,0.113111 0.20364,0.248218 0.3,0.366666 0.0961,0.118429 0.18984,0.244093 0.26667,0.366667 0.077,0.122774 0.14229,0.240765 0.2,0.366667 0.0577,0.126131 0.0949,0.238188 0.13333,0.366666 0.0386,0.128282 0.0808,0.270352 0.1,0.4 0.0193,0.12988 0.0333,0.269763 0.0333,0.4 l -8.33333,-4.033333 -0.83334,6.3 -4.6,-2.166667 -7.06666,4.733334 -2.73334,-9.333334 -3.46666,8.166667 -9.76667,0.966667 0.1,-4.333334 c 0,-1.042224 5.64516,-8.329604 9.06666,-10.066666 l 6.26667,-4.5 c 0.92408,-0.599006 1.54979,-0.848535 2.13333,-0.833334 z m -12.93333,42.6 c 4.43676,1.15063 9.37288,2.639674 13.33333,2.666667 l 0.16667,1.8 c -3.39138,-0.349579 -10.57471,-2.002379 -12.26667,-2.866667 z m 46.23333,7.9 c -0.67728,-0.02171 -1.31822,0.0462 -1.8,0.166667 -0.90833,0.226965 -5.321,0.331531 -4.96666,3.166667 3.89845,1.416876 9.92489,2.502007 10.63333,-0.333334 0.53176,-2.12593 -1.83484,-2.93489 -3.86667,-3 z m -50.96666,5.766669 c -0.61333,-0.07148 -1.21336,0.0042 -1.8,0.3 -2.34598,1.183349 -3.92502,3.81264 -1.73334,4.9 2.19191,1.08736 3.74516,-0.150741 5.66667,-1.5 1.92173,-1.349045 1.87228,-1.612875 1.73333,-2.133333 -0.26601,0.07094 -2.02669,-1.352235 -3.86666,-1.566667 z m 42.86666,0.466667 c -1.77199,0.708629 -1.75118,3.170389 -0.33333,4.233333 1.41748,1.063157 3.19156,0.375499 3.9,-0.333333 0.70902,-0.70863 -0.023,-3.19136 -3.56667,-3.9 z"
+ id="path1278"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient38860);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 147.16667,11.433333 c -3.48238,0.364902 -5.88303,3.345755 -8.33158,5.570373 -8.94544,9.133798 -18.09349,18.101949 -26.95799,27.294024 -1.44334,1.84378 -2.03035,4.015468 -2.31043,6.30227 5.03542,3.678658 11.71157,3.699536 17.06666,6.766667 -1.50817,2.381747 -5.17846,2.289571 -6.84097,4.663825 -1.44519,0.973702 0.60698,2.569614 1.6838,2.93719 4.47582,2.259905 9.5207,3.127075 13.9674,5.505719 2.30619,0.164974 2.15073,2.483836 0.6201,3.623175 -1.21232,1.221254 -3.08705,3.249751 -1.23288,4.771441 2.26675,1.575369 5.27199,1.144095 7.80255,2.065316 1.77826,0.975122 0.51639,2.738136 1.73334,3.966667 3.05603,2.396513 7.28787,1.973693 10.69445,0.606201 1.75151,-0.515126 3.34201,-1.653286 4.87221,-2.539534 1.47613,-1.720326 -0.82595,-2.9513 -2.13333,-3.666667 -0.85913,-1.425274 2.00009,-1.997097 2.97462,-2.675578 3.73665,-1.514529 7.36553,-3.267329 10.23683,-6.143331 1.79011,-1.105032 -0.83882,-2.676851 -1.67812,-3.547758 -1.55141,-1.15048 -3.58938,-1.860548 -4.56666,-3.633333 2.52043,-2.7807 6.7319,-2.262194 9.98204,-3.687561 3.90317,-0.992642 7.61596,-2.729652 11.05532,-4.741974 2.26951,-1.69135 1.67257,-4.636557 1.22998,-7.021773 -1.61839,-5.025589 -6.41885,-8.01283 -9.81146,-11.814386 -7.61983,-7.514247 -15.1255,-15.17228 -22.81612,-22.597384 -2.05244,-1.578655 -4.64151,-2.423668 -7.23976,-2.003589 z M 149.5,16.766667 c 5.52064,4.046284 11.05387,8.077891 16.56667,12.133333 0.11539,1.103552 -2.90244,-1.172627 -4.0558,-1.481882 -1.41219,-0.420198 -3.8964,-2.894916 -3.5025,0.03341 -0.60562,1.192982 0.31151,5.203671 -1.4377,4.28052 -1.58183,-0.849857 -3.68447,-2.113891 -5.18058,-0.378679 -1.61892,1.082213 -3.23783,2.164425 -4.85676,3.246637 -0.9783,-3.377623 -1.95211,-6.756554 -2.93333,-10.133333 -1.34602,3.127884 -2.66477,6.267483 -4,9.4 -2.92222,0.288888 -5.84445,0.577778 -8.76667,0.866667 -0.20184,-2.166309 0.27133,-4.341771 1.77562,-5.878158 3.25057,-5.211552 8.66632,-8.395371 13.54451,-11.865011 0.95273,-0.564092 1.80847,-0.493262 2.84654,-0.223498 z m -8.63333,43.566666 c 2.34366,0.607254 4.78296,0.727797 7.16666,1.133334 -0.90625,1.084587 -3.14277,-0.32439 -4.56523,-0.371058 -1.8583,-0.406252 -3.7163,-0.80007 -5.4681,-1.562276 0.95555,0.266667 1.91111,0.533334 2.86667,0.8 z m 38.86666,5.4 c -2.15488,0.501536 -5.22675,0.793815 -5.5,3.566667 0.70833,1.029809 2.96093,1.412478 4.40801,1.688268 2.27503,0.363118 5.38493,1.181831 6.97878,-0.937576 1.36135,-1.898234 -0.67459,-4.313995 -2.78769,-4.178768 -1.02575,-0.350017 -2.04343,-0.268702 -3.0991,-0.138591 z m -51.03333,5.9 c -1.57612,1.085018 -3.71575,2.720281 -3.03333,4.9 1.61184,2.339234 4.94529,1.683368 6.78753,-0.0057 1.2184,-0.692559 3.25469,-2.021692 2.31247,-3.560997 -1.93436,-0.840999 -3.87915,-2.117169 -6.06667,-1.333334 z m 44.36667,0.333334 c -1.34895,0.891833 -1.89168,2.759628 -0.95675,4.109348 0.71622,1.795233 3.11379,1.982508 4.57991,1.004604 1.95986,-0.600235 1.10016,-3.109938 -0.33003,-3.844913 -0.72045,-0.899439 -2.36482,-1.335642 -3.29313,-1.269039 z"
+ id="path1283"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient38862);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 146.23333,12.866667 c -3.88385,1.702193 -6.61189,5.324961 -9.67052,8.210746 -7.86956,8.018198 -15.90416,15.90198 -23.69161,23.983409 -1.11331,1.428597 -1.72615,3.060044 -2.00453,4.839178 4.36,3.072638 10.04495,3.23545 14.7573,5.603266 1.5625,0.15548 3.26141,1.73801 1.81635,3.072207 -1.86501,1.91956 -5.15011,2.084779 -6.70699,4.291194 4.05269,2.923397 9.10625,3.602288 13.58014,5.613093 1.52915,1.119169 4.28812,1.21833 4.3532,3.553573 -0.41298,2.06712 -2.47344,3.267809 -3.36667,5.133334 1.94434,2.744072 5.94438,1.261888 8.50547,3.040805 1.3908,0.857738 1.00828,2.693049 1.62108,3.831047 3.2048,2.344549 7.71164,1.319869 10.94656,-0.558135 1.04365,-0.353733 3.89943,-1.626855 1.76272,-2.556043 -1.55651,-0.349067 -2.86028,-2.213166 -1.35103,-3.402938 3.84858,-2.931245 9.10998,-3.601158 12.55258,-7.214396 1.79927,-1.361045 -1.31628,-2.560541 -2.24828,-3.336495 -1.41778,-1.044797 -3.86698,-2.048091 -3.55577,-4.137179 2.35965,-3.274836 6.88107,-2.833411 10.31383,-4.263585 3.90311,-0.957377 7.67689,-2.630842 11.10878,-4.611597 2.18816,-1.940094 1.07405,-5.046756 0.32835,-7.371909 -3.93266,-5.513287 -9.35396,-9.75581 -13.9708,-14.686024 -5.91778,-5.783657 -11.65452,-11.813723 -17.68454,-17.444607 -2.14828,-1.370565 -4.63208,-2.556154 -7.20805,-1.62333 z m 2.3,2.233333 c 5.45973,2.578599 9.80753,6.890051 14.73244,10.347527 1.85084,1.664819 5.00363,2.778901 4.9009,5.71914 -1.78479,0.428996 -3.34725,-1.396857 -5.04898,-1.86837 -1.54021,-0.520034 -4.1213,-2.963549 -3.68846,0.16232 -0.54825,1.127161 0.22527,4.775461 -1.23798,4.170178 -1.53672,-0.653008 -3.2567,-1.905943 -4.87859,-1.758173 -2.31413,1.577535 -4.63724,3.142054 -6.94599,4.727378 -0.87266,-2.83558 -1.68407,-5.690403 -2.53334,-8.533333 -1.12707,2.260756 -1.98302,4.959333 -3.26666,6.966666 -3.47777,0.344565 -6.95563,0.688221 -10.43334,1.033334 0.0287,-2.531437 -0.43925,-5.398577 1.54821,-7.372648 3.13073,-5.303181 8.62883,-8.494145 13.35179,-12.127352 1.15867,-0.426692 2.35212,-1.253526 3.5,-1.466667 z m -13.76666,42.4 c 4.77393,1.272573 9.58904,2.318786 14.5,2.9 0.93608,1.872033 -0.34236,3.482335 -2.33168,2.565935 -3.62332,-0.734316 -7.25018,-1.727438 -10.80166,-2.699268 -0.26564,-0.514085 -3.09159,-3.378118 -1.36666,-2.766667 z m 45.16666,9.433333 c -1.51493,0.422114 -3.72691,0.290818 -4.26666,2.133334 2.90995,0.556827 6.05202,2.002088 8.9,0.466666 0.978,-1.977585 -1.92783,-2.538134 -3.31385,-2.645499 -0.43983,0.01517 -0.87966,0.03034 -1.31949,0.0455 z m -50.9,5.866667 c -1.16024,0.90047 -3.46737,3.083937 -1.02728,3.858837 2.25255,0.543858 3.96147,-1.380385 5.62728,-2.558837 -1.18522,-1.161836 -2.98479,-1.601218 -4.6,-1.3 z m 44.03334,0.733333 c -1.04902,2.027564 1.90687,4.021482 3.28133,2.230908 0.70415,-1.13156 -2.36473,-3.118333 -3.28133,-2.230908 z"
+ id="path1286"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient38864);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 146.66667,13.4 c -6.33172,3.543401 -10.68888,9.547281 -15.90063,14.447274 -5.8861,6.073656 -12.00588,11.974663 -17.74737,18.155152 -0.7305,1.178656 -2.18908,3.828459 -0.0714,4.248788 4.9013,2.576465 10.86092,2.972757 15.3194,6.215453 1.00861,2.475215 -2.05916,3.484953 -3.70454,4.477414 -1.7373,0.545523 -3.75405,2.175563 -0.84454,2.774326 4.83335,2.60598 10.58594,3.28132 15.01575,6.64826 1.43136,2.33294 -1.26292,4.394234 -2.23809,6.238069 0.0119,1.908953 2.8242,1.486185 4.14874,2.002826 2.29679,0.177914 4.75661,1.464231 4.98406,3.992952 0.7695,2.00242 3.5144,2.068656 5.37195,2.066153 2.47607,-0.312856 4.61313,-1.6278 6.86667,-2.6 -0.11425,-1.550102 -2.69456,-1.700315 -2.36667,-3.6 1.99363,-3.193298 6.06476,-3.869656 9.11608,-5.707796 1.73236,-0.750835 3.28599,-1.893245 4.45059,-3.392204 -1.92497,-2.280272 -5.74204,-3.012313 -6.11314,-6.406102 0.39022,-1.188208 2.2736,-2.314015 3.60639,-2.891301 5.6785,-2.143002 11.88985,-2.970298 17.10185,-6.270592 2.74324,-1.108432 1.83527,-4.538836 1.0317,-6.686009 -2.29624,-3.22589 -5.40132,-6.000174 -8.00828,-9.052576 -2.68656,-2.760044 -5.48876,-5.408427 -8.21852,-8.126754 1.12365,1.634362 -0.99109,2.422313 -2.21269,1.401868 -2.03118,-0.886068 -4.05629,-1.760173 -6.12064,-2.568534 C 160.05314,30.54272 159.67649,32.269964 159.3,34 c -2.55377,0.684822 -5.03322,-2.683187 -7.35336,-0.501311 -1.91379,1.060257 -3.40719,2.847058 -5.45058,3.513153 -1.46281,-0.265507 -1.26699,-3.243895 -2.01992,-4.618246 -0.44179,-3.083731 -1.2118,-2.404985 -2.14312,0.123134 -0.85365,1.59882 -1.21984,3.834303 -3.53335,3.298267 -3.08878,0.306225 -6.17762,0.611598 -9.26633,0.918336 0.0202,-3.177717 -0.28551,-6.766 2.22768,-9.171123 3.51639,-4.960964 8.70856,-8.341185 13.55479,-11.782731 1.62219,-0.752906 3.63701,-1.872712 5.13828,-0.273654 3.97373,2.727514 8.02021,5.285521 11.74591,8.327508 -3.19568,-3.018643 -6.19482,-6.317986 -9.51099,-9.164539 -1.87897,-0.938934 -3.8675,-2.092901 -6.02238,-1.268794 z m -11.83334,43.5 c 5.00075,0.984495 9.99566,2.003225 15,2.966667 0.20732,1.45664 0.46427,3.886308 -1.67313,3.831478 -4.16789,-0.795987 -8.38205,-1.956384 -12.49353,-3.031478 -0.61549,-0.980519 -2.50897,-2.472939 -1.9,-3.466667 0.35063,-0.05103 0.72399,-0.354699 1.06666,-0.3 z m 42.8,11.166667 c -1.73875,1.086025 2.33789,1.138186 3.27372,1.439238 1.30579,0.375237 4.48185,-0.551342 2.02628,-1.672572 -1.83243,-0.401834 -3.50784,-0.360679 -5.3,0.233334 z M 128.86667,73.8 c -2.17346,1.397366 -0.18414,3.053084 1.5865,1.699463 2.04828,-0.249261 2.08866,-2.343116 -0.17211,-2.051831 -0.54677,-0.07524 -0.99718,-0.0549 -1.41439,0.352368 z m 44.76666,1.133333 c 2.4133,2.30436 1.83777,-1.778179 0,-0.492892 0,0.102368 0,0.430964 0,0.492892 z"
+ id="path1295"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient38866);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 146.4,11 c -2.85517,0.532698 -4.88261,2.920832 -7.04143,4.696624 -9.46036,9.318687 -18.69953,18.903094 -28.02524,28.336709 -1.28513,2.140689 -2.02923,4.453081 -2.46666,6.9 4.02374,2.003945 8.08967,3.86007 12.47179,4.935568 1.05804,0.665393 4.69014,0.890135 3.49487,2.397766 -2.29866,1.221998 -5.17006,2.048868 -6.16666,4.733333 1.94556,3.411999 6.27529,3.61226 9.48467,5.236915 2.69399,1.065471 5.388,2.130945 8.08199,3.196418 0.0835,2.815831 -0.6308,1.873266 -2.05017,0.611648 -2.17089,-1.1027 -5.39205,-2.114404 -7.09766,0.274746 -1.55046,0.944625 -2.75719,3.349765 -1.57432,4.866099 2.21286,2.398176 6.00771,1.27668 8.06067,-0.779037 0.17795,-0.191378 -0.29693,2.877758 1.42073,3.193938 2.34275,1.346613 5.33929,0.970157 7.67409,2.299273 0.45283,1.979683 1.2508,4.221333 3.5739,4.531638 3.66844,1.48315 7.80683,0.39212 11.09794,-1.541311 1.39792,-0.760174 4.07797,-1.323747 3.46357,-3.423687 -0.0478,-1.38074 -3.42818,-2.212653 -1.53541,-3.499973 4.53006,-2.016167 9.17312,-4.142848 12.66666,-7.733334 0.85723,-2.253596 -2.25712,-3.193724 -3.46666,-4.566666 -1.4517,-1.221069 -3.87877,-2.524433 -0.81856,-3.364818 5.62839,-2.111859 11.87228,-2.940184 17.03456,-6.263438 2.72995,-0.86584 3.85371,-3.957742 3.06767,-6.564064 -0.0255,-2.62475 -1.76154,-4.797622 -3.22224,-6.835657 C 179.45289,36.856816 173.58197,31.828345 168.24204,26.291461 163.60188,21.818095 159.14228,17.065484 154.39198,12.762657 151.99166,11.220691 149.22884,10.717147 146.4,11 Z m 3.36667,6.733333 c 4.24058,2.976224 8.38139,6.129328 12.6,9.166667 -1.29937,-0.797366 -2.67486,-1.290978 -4.2,-1.4 -0.21287,1.824575 -0.47054,3.643999 -0.7,5.466667 -1.97534,-0.587625 -4.21204,-1.778592 -5.97773,-0.09263 -1.30676,0.402533 -3.52226,3.290581 -4.25972,2.135968 -0.99915,-3.447628 -1.99405,-6.896491 -2.99589,-10.343339 -1.52265,3.539479 -3.02044,7.089652 -4.53333,10.633333 -2.56667,0.255555 -5.13333,0.511111 -7.7,0.766667 -0.0148,-3.662276 2.83591,-6.395601 5.07235,-8.959274 3.30461,-2.837611 6.75708,-5.60858 10.52338,-7.756865 0.7316,-0.360909 1.44586,0.250944 2.17094,0.382806 z m 26.36666,48.333334 C 174.87994,66.86218 172.84987,68.441375 174.2,70 c 2.62772,1.71982 5.90645,1.835937 8.93343,1.934762 2.25075,-0.06272 4.4688,-2.726652 2.93663,-4.770688 -1.42803,-2.456455 -4.67977,-1.908377 -7.06627,-1.883005 -0.95681,0.261868 -1.91364,0.523732 -2.87046,0.785598 z m -3.3,5.433333 c -1.27562,1.033534 -1.85687,2.841465 -1.35231,4.508785 0.43077,1.899535 2.6256,2.385569 4.29198,1.849858 2.50838,0.201444 3.52565,-3.378484 1.43654,-4.628378 -1.24197,-1.050288 -2.64377,-2.095016 -4.37621,-1.730265 z"
+ id="path1300"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient38868);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 146,10.2 c -5.57009,2.353735 -9.31153,7.276932 -13.56394,11.364379 -7.26121,7.360863 -14.57305,14.685571 -21.80273,22.068954 -0.92375,2.588329 -1.83526,5.181133 -2.76666,7.766667 5.12606,2.235525 10.28103,4.361596 15.6,6.1 -0.32712,1.554459 -2.93579,1.371077 -3.74338,2.860476 -1.43416,0.914482 -2.37188,3.411157 -0.36803,4.245199 3.1673,2.975582 7.51398,4.048213 11.44474,5.660992 -3.09041,-0.89746 -5.13867,2.363507 -6.33333,4.666666 -0.72155,2.880448 2.58866,4.694489 5.06851,4.276737 1.54135,0.553684 3.66,-2.522746 3.86807,-0.13866 2.29497,2.607941 6.70581,1.993255 9.10076,4.436609 0.7749,2.147771 2.55461,3.943898 4.94541,3.965707 2.15881,0.621481 4.27216,0.328386 6.35476,-0.418515 2.43249,-0.54992 4.74804,-1.764623 6.87594,-2.976017 1.61013,-1.140622 1.25617,-3.709454 -0.21345,-4.812527 -0.21701,-1.714746 2.45466,-1.738353 3.54015,-2.659077 2.92458,-1.339302 5.49291,-3.216603 7.95985,-5.240923 -1.09048,1.568168 -1.50221,3.637034 -0.89348,5.420276 1.02957,2.431889 4.09705,1.779572 6.16014,1.64639 C 179.29546,77.451445 180.09314,74.273508 178,72.9 c -3.03927,-1.879702 -0.42819,-1.002977 1.49692,-0.460891 2.38484,0.141742 5.36949,0.891675 6.99369,-1.418947 1.80089,-1.737129 0.66941,-4.475043 -1.05728,-5.820162 -2.14881,-1.14371 -4.72742,-0.810973 -7.057,-0.699886 -2.09119,0.370608 -3.67839,1.613047 -4.97633,3.233219 -1.58756,1.272788 1.82748,3.61782 -0.0532,3.147933 -1.36163,0.234395 0.30799,-2.483632 -1.32358,-3.36862 -1.06348,-1.560896 -2.85826,-2.534055 -4.1899,-3.879313 6.43141,-3.110773 13.94477,-3.952924 19.7,-8.433333 2.10991,-2.5028 1.15052,-5.815831 0.53333,-8.666667 C 184.23156,39.549156 177.84192,34.54079 172.35319,28.898191 166.50884,23.205036 160.69939,17.462459 154.83333,11.8 152.27799,10.77259 149.66457,10.063772 146.88646,10.206305 146.60075,10.233991 146.27214,10.101959 146,10.2 Z m 7.6,11.266667 c 1.51374,1.165288 3.04586,2.309495 4.56667,3.466666 -1.39718,1.06872 -0.90296,3.127104 -1.4,4.633334 -2.08576,-0.566112 -4.35694,-0.641822 -6.05767,0.905733 -1.05102,0.888519 -3.01815,1.872214 -3.17799,-0.196242 -0.93874,-3.234383 -1.83,-6.48501 -2.79768,-9.709491 1.63294,-0.494373 3.30094,-3.132711 4.90134,-1.63781 1.32178,0.845937 2.64355,1.691873 3.96533,2.53781 z m -14.36667,10.966666 c -1.96666,0.2 -3.93333,0.4 -5.9,0.6 0.75323,-3.751583 3.85837,-6.37712 6.49928,-8.892012 1.44608,-1.049755 2.80293,-2.240606 4.30072,-3.207988 -1.63333,3.833334 -3.26666,7.666667 -4.9,11.5 z"
+ id="path1304"
+ inkscape:connector-curvature="0" />
+ </g>
+ <path
+ style="fill:url(#linearGradient1322);fill-rule:evenodd;stroke-width:1.30175579pt"
+ d="m 80.606138,21.093974 c -3.986404,2e-6 -7.999981,1.500815 -11.054664,4.555494 L 15.31073,79.950952 c -2.994002,2.993929 -4.556718,6.904836 -4.616235,10.811705 -8.35e-4,0.06557 0,0.177392 0,0.24296 h 0.12148 c 1.039149,3.953694 27.860205,8.970154 30.855878,11.965763 4.524006,4.52404 -17.340071,7.86688 -12.816122,12.39094 4.523986,4.52399 27.364021,8.71724 31.888455,13.2413 4.524026,4.52402 -9.261778,9.3247 -4.737714,13.8487 4.524006,4.52407 19.69882,-1.11018 16.946437,10.69023 6.109347,6.10935 18.859073,3.19383 27.393701,-2.91552 4.52401,-4.524 -8.654358,-4.10106 -4.130314,-8.62506 4.524004,-4.52406 15.949294,-4.54533 25.571504,-15.3672 -3.87306,-6.02355 -16.55055,-8.59578 -12.0265,-13.11982 4.524,-4.524 13.27486,-2.25385 32.25288,-10.87245 9.26429,-4.207497 8.53905,-7.362324 8.50359,-11.236883 -7.4e-4,-0.08153 0,-0.160805 0,-0.24296 h -0.0608 c -0.0595,-3.906866 -1.56157,-7.817769 -4.55549,-10.811705 L 91.600063,25.649468 C 88.5454,22.594793 84.592543,21.093974 80.606138,21.093974 Z M 56.553132,105.76542 c 8.084647,2.09667 17.079247,4.81 24.295966,4.85919 l 0.3037,3.27996 c -6.179767,-0.63701 -19.269208,-3.64874 -22.352289,-5.22364 z m 84.246258,14.39535 c -1.23415,-0.0395 -2.40206,0.0842 -3.27996,0.3037 -1.65516,0.41359 -9.69592,0.60412 -9.05025,5.7703 7.10376,2.58184 18.08512,4.55915 19.37604,-0.6074 0.96897,-3.87387 -3.34345,-5.34795 -7.04583,-5.4666 z m -92.871326,10.50801 c -1.117595,-0.13024 -2.210972,0.008 -3.279956,0.54666 -4.274826,2.15631 -7.152149,6.94739 -3.158474,8.92877 3.99408,1.98139 6.824425,-0.27467 10.325785,-2.7333 3.501767,-2.45822 3.411658,-2.93897 3.158475,-3.88735 -0.484734,0.12928 -3.693025,-2.46403 -7.04583,-2.85478 z m 78.111516,0.85036 c -3.22891,1.29126 -3.19098,5.77708 -0.60739,7.71397 2.58293,1.93728 5.81565,0.68424 7.10657,-0.6074 1.29198,-1.29126 -0.042,-5.81528 -6.49918,-7.10657 z"
+ id="path1217"
+ sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient1231);fill-rule:evenodd;stroke-width:1.30175579pt"
+ d="m 11.977124,84.576671 c -0.883927,1.953959 -1.36513,4.04141 -1.397018,6.134731 -8.33e-4,0.06556 0,0.177399 0,0.24296 h 0.12148 c 0.994358,3.78327 25.07956,8.512878 29.823299,11.540588 2.091809,-1.24429 3.465756,-2.547484 2.065157,-3.948099 C 39.594368,95.551236 12.773315,90.53478 11.734165,86.581087 h -0.12148 c 0,-0.06558 -8.33e-4,-0.177399 0,-0.242958 0.0091,-0.601939 0.284168,-1.162709 0.364439,-1.761458 z M 150.34262,92.47286 c -1.0612,1.680115 -3.10061,3.387829 -7.41026,5.345111 -18.97801,8.618589 -27.72886,6.348449 -32.25287,10.872439 -1.37053,1.37052 -0.88153,2.54264 0.18222,3.70513 4.78924,-3.38639 13.4115,-2.19944 31.03808,-10.20429 8.00504,-3.635614 8.46503,-6.511246 8.44283,-9.71839 z m -92.871299,8.86803 2.247377,2.9155 c 3.08308,1.57491 16.17252,4.58665 22.352289,5.22364 l -0.303699,-3.27996 c -7.216719,-0.0492 -16.21132,-2.7625 -24.295967,-4.85918 z M 30.685018,111.4237 c -2.022925,1.2244 -3.320206,2.51079 -1.943676,3.88736 4.523988,4.52399 27.364021,8.71723 31.888455,13.2413 0.198962,0.19895 0.17245,0.40741 0.3037,0.6074 1.405197,-1.67236 2.355425,-3.35413 0.728879,-4.98067 -4.359755,-4.3594 -25.379991,-8.41841 -30.977358,-12.75539 z m 100.220842,10.75097 c -1.55381,0.80713 -2.80902,1.9449 -2.55108,4.00882 7.10375,2.58184 18.08511,4.55915 19.37603,-0.60738 0.25122,-1.00435 0.11312,-1.85114 -0.24296,-2.55108 -3.06888,2.47706 -10.66085,1.09402 -16.58199,-0.85036 z m -11.17612,2.18664 c -8.90094,7.91694 -18.52655,8.74738 -22.595255,12.81612 -1.63664,1.63663 -0.713263,2.53048 0.6074,3.34069 5.191475,-3.47749 15.190165,-4.50342 23.931535,-14.33463 -0.44804,-0.69679 -1.30027,-1.20938 -1.94368,-1.82218 z m 5.0414,8.01767 c -1.86829,1.81567 -1.62997,5.17107 0.54666,6.80287 2.58292,1.93727 5.81565,0.68422 7.10656,-0.6074 0.66392,-0.66356 0.57592,-2.15087 -0.48592,-3.6444 -1.57518,0.81115 -3.6457,1.33536 -5.58806,-0.12148 -0.82081,-0.61535 -1.29544,-1.48388 -1.57924,-2.42959 z m -71.612353,0.24296 c -0.216533,0.15768 -0.17254,0.18708 -0.42518,0.36444 -3.501359,2.45861 -6.331704,4.7147 -10.325785,2.73329 -0.835138,-0.41433 -1.173493,-1.0297 -1.457758,-1.63998 -1.775949,2.19005 -2.210285,4.70572 0.425179,6.01325 3.994085,1.98138 6.824427,-0.27468 10.325787,-2.73329 3.50177,-2.45823 3.411658,-2.93899 3.158475,-3.88735 -0.166315,0.0444 -0.997334,-0.45265 -1.700718,-0.85036 z m 3.462175,4.79845 c -1.405193,1.67235 -2.355439,3.35411 -0.728879,4.98066 4.524009,4.52407 19.69882,-1.11019 16.946437,10.69022 6.109348,6.10935 18.859078,3.19384 27.39371,-2.91551 1.66654,-1.66656 0.69997,-2.58291 -0.668148,-3.40144 -8.458362,5.3473 -19.957869,7.67884 -25.692984,1.94368 2.752384,-11.8004 -12.422431,-6.16613 -16.946436,-10.69021 -0.198964,-0.19896 -0.172449,-0.40742 -0.3037,-0.6074 z"
+ id="path1269"
+ sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient1272);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.30175579pt"
+ d="m 107.57531,47.365247 32.87711,35.325423 c 0,0 9.7932,10.492701 2.09856,14.68978 -7.69466,4.19708 -31.12834,10.4927 -31.12834,10.4927 L 68.830422,46.540402 Z"
+ id="path1271"
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient1277);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.49509335pt"
+ d="M 56.944037,42.006087 26.165461,77.3315 c 0,0 -11.891721,10.4927 -4.197076,14.689777 7.694644,4.197078 58.409343,21.335153 94.084505,15.039533 L 75.13138,45.853409 Z"
+ id="path1276"
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient1318);fill-rule:evenodd;stroke-width:1.30175579pt"
+ d="m 82.042498,27.12255 c 4.504479,0.03329 23.422692,18.434639 28.837322,22.230809 5.41464,3.796171 4.14478,6.285951 4.14478,6.523269 L 99.839631,48.527099 98.321133,60.006943 89.939024,56.058848 77.062155,64.683915 72.081482,47.67674 65.76453,62.558018 47.967732,64.319476 48.149952,56.423287 74.438456,30.540688 c 1.907291,-1.877842 3.182156,-3.451427 7.604042,-3.418138 z"
+ id="path1317"
+ sodipodi:nodetypes="ccccccccccczz"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Title">
+ <text
+ x="48"
+ y="74.666664"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:51.20000076px;line-height:100%;font-family:Arial;writing-mode:lr-tb;text-anchor:start;display:block;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="text48">
+ <tspan
+ id="tspan1"
+ sodipodi:role="line"
+ y="74.666664"
+ x="48"
+ style="stroke-width:3.20000017pt">inkscape_gtkmm Architecture</tspan>
+ </text>
+ <text
+ id="text3025"
+ y="168.88889"
+ x="57.142857"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:139.99999762%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ id="tspan68"
+ sodipodi:role="line"
+ y="168.88889"
+ x="57.142857"
+ style="stroke-width:1.06666669pt">* Very much a work-in-progress</tspan><tspan
+ id="tspan69"
+ sodipodi:role="line"
+ y="204.72888"
+ x="57.142857"
+ style="stroke-width:1.06666669pt"> + top level architecture still incomplete</tspan><tspan
+ id="tspan70"
+ sodipodi:role="line"
+ y="240.56888"
+ x="57.142857"
+ style="stroke-width:1.06666669pt" /><tspan
+ id="tspan71"
+ sodipodi:role="line"
+ y="276.40887"
+ x="57.142857"
+ style="stroke-width:1.06666669pt">* Inkscape::Application</tspan><tspan
+ id="tspan72"
+ sodipodi:role="line"
+ y="312.24887"
+ x="57.142857"
+ style="stroke-width:1.06666669pt"> + Modelled after current Inkscape::Application struct</tspan><tspan
+ id="tspan73"
+ sodipodi:role="line"
+ y="348.0889"
+ x="57.142857"
+ style="stroke-width:1.06666669pt"> + Inkscape::ApplicationImpl allows 'interface hiding'</tspan><tspan
+ id="tspan74"
+ sodipodi:role="line"
+ y="383.92889"
+ x="57.142857"
+ style="stroke-width:1.06666669pt"> - Helps keep *.h include hierarchy trim and clean</tspan><tspan
+ id="tspan75"
+ sodipodi:role="line"
+ y="419.76889"
+ x="57.142857"
+ style="stroke-width:1.06666669pt"> - Subclasses Gtk::Window</tspan><tspan
+ id="tspan76"
+ sodipodi:role="line"
+ y="455.60889"
+ x="57.142857"
+ style="stroke-width:1.06666669pt"> !! problem, only one Window per application</tspan><tspan
+ id="tspan77"
+ sodipodi:role="line"
+ y="491.44888"
+ x="57.142857"
+ style="stroke-width:1.06666669pt"> - No code for creating/managing documents</tspan><tspan
+ id="tspan78"
+ sodipodi:role="line"
+ y="527.28888"
+ x="57.142857"
+ style="stroke-width:1.06666669pt" /><tspan
+ id="tspan79"
+ sodipodi:role="line"
+ y="563.12891"
+ x="57.142857"
+ style="stroke-width:1.06666669pt" /></text>
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="Drawing Area" />
+</svg>
diff --git a/doc/NewAppArchitecture/09-future-capabilities.svg b/doc/NewAppArchitecture/09-future-capabilities.svg
new file mode 100644
index 0000000..f505569
--- /dev/null
+++ b/doc/NewAppArchitecture/09-future-capabilities.svg
@@ -0,0 +1,591 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ sodipodi:docname="09-future-capabilities.svg"
+ height="480pt"
+ width="640pt"
+ inkscape:version="0.92.0 r15304"
+ sodipodi:version="0.32"
+ id="svg586"
+ version="1.1">
+ <defs
+ id="defs588">
+ <marker
+ style="overflow:visible;"
+ id="TriangleOutL"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ id="path2817"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="TriangleInL"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleInL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ id="path2823"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="Arrow2L"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2L">
+ <path
+ d="M 4.363143,4.732916 -8.456553,0.01878889 4.3631437,-4.6953372 c -2.0480514,2.7832182 -2.0362505,6.5911436 -7e-7,9.4282532 z"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.73333335;stroke-linejoin:round"
+ id="path2863"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <linearGradient
+ id="linearGradient2570">
+ <stop
+ id="stop2571"
+ offset="0.0000000"
+ style="stop-color:#000000;stop-opacity:1.0000000;" />
+ <stop
+ id="stop2572"
+ offset="0.58504134"
+ style="stop-color:#000000;stop-opacity:0.62745100;" />
+ <stop
+ id="stop2573"
+ offset="1.0000000"
+ style="stop-color:#ffffff;stop-opacity:0.0000000;" />
+ </linearGradient>
+ <linearGradient
+ y2="114.57422"
+ x2="53.030737"
+ y1="20.687101"
+ x1="77.599106"
+ id="linearGradient1322"
+ xlink:href="#linearGradient1218"
+ gradientTransform="matrix(1.3228549,0,0,1.2809931,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ y2="58.199241"
+ x2="33.266399"
+ y1="30.563196"
+ x1="59.491886"
+ id="linearGradient1318"
+ xlink:href="#linearGradient1273"
+ gradientTransform="matrix(1.7409899,0,0,0.97333594,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ gradientTransform="scale(1.004208,0.995809)"
+ y2="0.12454049"
+ x2="0.41986585"
+ y1="1.9347328"
+ x1="0.45376351"
+ id="linearGradient1307"
+ xlink:href="#linearGradient1222" />
+ <linearGradient
+ gradientTransform="scale(1.006361,0.993679)"
+ y2="0.11846013"
+ x2="0.41548476"
+ y1="1.9667202"
+ x1="0.45009527"
+ id="linearGradient1306"
+ xlink:href="#linearGradient1222" />
+ <linearGradient
+ gradientTransform="scale(1.002016,0.997989)"
+ y2="0.13959341"
+ x2="0.42603236"
+ y1="1.8676205"
+ x1="0.45839140"
+ id="linearGradient1305"
+ xlink:href="#linearGradient1222" />
+ <linearGradient
+ y2="80.482086"
+ x2="51.413385"
+ y1="119.11808"
+ x1="11.967844"
+ id="linearGradient1277"
+ xlink:href="#linearGradient1273"
+ gradientTransform="matrix(1.8036348,0,0,1.2393329,-37.611189,-4.4599008)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ y2="62.493129"
+ x2="90.28563"
+ y1="45.70058"
+ x1="118.66497"
+ id="linearGradient1272"
+ xlink:href="#linearGradient1273"
+ gradientTransform="matrix(1.4554449,0,0,1.1642956,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient1270"
+ xlink:href="#linearGradient1222" />
+ <linearGradient
+ y2="120.74315"
+ x2="94.698939"
+ y1="120.74315"
+ x1="17.696665"
+ id="linearGradient1231"
+ xlink:href="#linearGradient1323"
+ gradientTransform="matrix(1.8150579,0,0,0.9336165,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ y2="28.120696"
+ x2="130.70353"
+ y1="170.27164"
+ x1="27.318817"
+ id="linearGradient1221"
+ xlink:href="#linearGradient1222"
+ gradientTransform="scale(1.0211162,0.97932047)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient1218">
+ <stop
+ id="stop1219"
+ offset="0.00000000"
+ style="stop-color:#000000;stop-opacity:1.0000000;" />
+ <stop
+ id="stop1321"
+ offset="0.073255815"
+ style="stop-color:#323232;stop-opacity:1.0000000;" />
+ <stop
+ id="stop1320"
+ offset="0.65260679"
+ style="stop-color:#000000;stop-opacity:1.0000000;" />
+ <stop
+ id="stop1220"
+ offset="1"
+ style="stop-color:#fff;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1222">
+ <stop
+ id="stop1223"
+ offset="0.0000000"
+ style="stop-color:#0081ac;stop-opacity:1.0000000;" />
+ <stop
+ id="stop1722"
+ offset="0.50000000"
+ style="stop-color:#006d91;stop-opacity:0.62745100;" />
+ <stop
+ id="stop1224"
+ offset="1.0000000"
+ style="stop-color:#000000;stop-opacity:0.0000000;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1273">
+ <stop
+ id="stop1274"
+ offset="0.00000000"
+ style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+ <stop
+ id="stop1275"
+ offset="1.0000000"
+ style="stop-color:#ffffff;stop-opacity:0.00000000;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1323">
+ <stop
+ id="stop1324"
+ offset="0.00000000"
+ style="stop-color:#000000;stop-opacity:0.77685952;" />
+ <stop
+ id="stop1325"
+ offset="1.0000000"
+ style="stop-color:#000000;stop-opacity:0.00000000;" />
+ </linearGradient>
+ <radialGradient
+ fy="93.75"
+ fx="303.7037"
+ r="248.40302"
+ cy="281.25"
+ cx="296.2963"
+ id="radialGradient829"
+ xlink:href="#linearGradient826"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.29936853,0,0,0.15858773,4.3548661,98.117152)" />
+ <linearGradient
+ id="linearGradient826">
+ <stop
+ id="stop827"
+ offset="0.00000000"
+ style="stop-color:#000000;stop-opacity:0.95294118;" />
+ <stop
+ id="stop830"
+ offset="0.36585677"
+ style="stop-color:#000000;stop-opacity:0.76078433;" />
+ <stop
+ id="stop847"
+ offset="0.47107276"
+ style="stop-color:#000000;stop-opacity:0.52941179;" />
+ <stop
+ id="stop828"
+ offset="1.0000000"
+ style="stop-color:#ffffff;stop-opacity:0.00000000;" />
+ </linearGradient>
+ <linearGradient
+ y2="-1.7333326"
+ x2="0.50000000"
+ y1="0.66667551"
+ x1="0.50000000"
+ id="linearGradient907"
+ xlink:href="#linearGradient909" />
+ <linearGradient
+ id="linearGradient909">
+ <stop
+ id="stop910"
+ offset="0.00000000"
+ style="stop-color:#000000;stop-opacity:0.00000000;" />
+ <stop
+ id="stop913"
+ offset="1.0000000"
+ style="stop-color:#000000;stop-opacity:0.17000000;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1309"
+ xlink:href="#linearGradient1222"
+ gradientTransform="scale(2.8444445,0.4)"
+ x1="0"
+ y1="4.7369516e-15"
+ x2="300"
+ y2="4.7369516e-15"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ y2="1365.4825"
+ x2="64.30938"
+ y1="1365.4825"
+ x1="-0.0028122679"
+ id="linearGradient1308"
+ xlink:href="#linearGradient2570"
+ gradientTransform="scale(13.227991,0.0860129)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient826"
+ id="radialGradient39108"
+ cx="296.2963"
+ cy="281.25"
+ fx="303.7037"
+ fy="93.75"
+ r="248.40302"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4203424,0,0,0.08699077,-33.810677,100.89451)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient39110"
+ x1="33.344169"
+ y1="164.17808"
+ x2="131.82116"
+ y2="28.775105"
+ gradientTransform="scale(1.0839555,1.0496536)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient39112"
+ x1="31.731446"
+ y1="165.85049"
+ x2="131.57971"
+ y2="28.562063"
+ gradientTransform="scale(1.0848907,1.0487488)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient39114"
+ x1="35.171777"
+ y1="162.0032"
+ x2="131.8238"
+ y2="29.109513"
+ gradientTransform="scale(1.0846262,1.0490045)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient39116"
+ x1="37.676606"
+ y1="159.47478"
+ x2="132.33793"
+ y2="29.318235"
+ gradientTransform="scale(1.0823063,1.051253)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient39118"
+ x1="29.920773"
+ y1="167.66146"
+ x2="131.16846"
+ y2="28.448861"
+ gradientTransform="scale(1.0869998,1.0467139)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient39120"
+ x1="27.318817"
+ y1="170.27164"
+ x2="130.70353"
+ y2="28.120696"
+ gradientTransform="scale(1.0891906,1.0446085)"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ inkscape:current-layer="layer2"
+ inkscape:guide-bbox="true"
+ showguides="true"
+ inkscape:window-y="105"
+ inkscape:window-x="293"
+ inkscape:window-height="820"
+ inkscape:window-width="973"
+ inkscape:cy="320"
+ inkscape:cx="426.66667"
+ inkscape:zoom="0.9390625"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ showgrid="false"
+ inkscape:window-maximized="0" />
+ <metadata
+ id="metadata33">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ style="display:block"
+ inkscape:label="Background"
+ id="layer1"
+ inkscape:groupmode="layer">
+ <rect
+ y="1.8947807e-15"
+ x="0"
+ height="120"
+ width="853.33331"
+ id="topbluebox"
+ style="font-size:12px;fill:url(#linearGradient1309);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.20000017pt" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path654"
+ d="M -0.03652902,117.55657 850.68323,117.34163"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient1308);stroke-width:5.31674433;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <g
+ transform="translate(689.36448,-10.40511)"
+ id="g1085">
+ <g
+ transform="matrix(0.875802,0,0,0.869278,1.1184885,-8.4967275)"
+ id="g1394">
+ <ellipse
+ style="opacity:0.69398911;fill:url(#radialGradient39108);stroke-width:0.84729707;stroke-dashoffset:0"
+ id="path898"
+ cx="92.292046"
+ cy="126.99174"
+ rx="126.10272"
+ ry="26.097233" />
+ <ellipse
+ style="fill:url(#radialGradient829);stroke-width:0.96546245;stroke-dashoffset:0"
+ id="ball1"
+ cx="94.165428"
+ cy="145.69347"
+ rx="89.810562"
+ ry="47.576321" />
+ </g>
+ <g
+ style="fill:url(#linearGradient1221)"
+ transform="matrix(1.822197,0,0,1.662749,-192.00875,13.084299)"
+ id="g1310">
+ <path
+ id="path1278"
+ d="m 148.55614,11.815593 c -2.18769,1e-6 -4.39029,0.823628 -6.06667,2.5 l -29.76666,29.8 c -1.64308,1.643032 -2.50068,3.78929 -2.53334,5.933333 -4.6e-4,0.03598 0,0.09736 0,0.133333 h 0.0667 c 0.57027,2.16974 15.28934,4.922713 16.93333,6.566667 2.48272,2.482738 -9.51602,4.317248 -7.03333,6.8 2.48271,2.482709 15.01704,4.783915 17.5,7.266669 2.48273,2.48272 -5.08275,5.11728 -2.6,7.6 2.48272,2.482753 10.81047,-0.609259 9.3,5.866667 3.35273,3.352736 10.34963,1.752736 15.03333,-1.6 2.48272,-2.482721 -4.74941,-2.250614 -2.26666,-4.733334 2.48272,-2.482752 8.75277,-2.494421 14.03333,-8.433335 -2.12548,-3.305654 -9.08274,-4.717259 -6.6,-7.2 2.48272,-2.482715 7.28509,-1.236886 17.7,-5.966667 5.08413,-2.309024 4.68613,-4.040355 4.66667,-6.166667 -4.1e-4,-0.04475 0,-0.08825 0,-0.133333 h -0.0333 c -0.0326,-2.144041 -0.85698,-4.290298 -2.5,-5.933333 l -29.8,-29.8 c -1.67637,-1.67637 -3.84565,-2.5 -6.03334,-2.5 z m -0.26667,3.866666 c 0.97256,0.02533 1.75986,0.768324 3.3,1.766667 l 14.06667,10.433333 c 0.15408,0.09991 0.29855,0.192996 0.43333,0.3 0.1348,0.10699 0.28452,0.220015 0.4,0.333334 0.11548,0.113111 0.20364,0.248218 0.3,0.366666 0.0961,0.118429 0.18984,0.244093 0.26667,0.366667 0.077,0.122774 0.14229,0.240765 0.2,0.366667 0.0577,0.126131 0.0949,0.238188 0.13333,0.366666 0.0386,0.128282 0.0808,0.270352 0.1,0.4 0.0193,0.12988 0.0333,0.269763 0.0333,0.4 l -8.33333,-4.033333 -0.83334,6.3 -4.6,-2.166667 -7.06666,4.733334 -2.73334,-9.333334 -3.46666,8.166667 -9.76667,0.966667 0.1,-4.333334 c 0,-1.042224 5.64516,-8.329604 9.06666,-10.066666 l 6.26667,-4.5 c 0.92408,-0.599006 1.54979,-0.848535 2.13333,-0.833334 z m -12.93333,42.6 c 4.43676,1.15063 9.37288,2.639674 13.33333,2.666667 l 0.16667,1.8 c -3.39138,-0.349579 -10.57471,-2.002379 -12.26667,-2.866667 z m 46.23333,7.9 c -0.67728,-0.02171 -1.31822,0.0462 -1.8,0.166667 -0.90833,0.226965 -5.321,0.331531 -4.96666,3.166667 3.89845,1.416876 9.92489,2.502007 10.63333,-0.333334 0.53176,-2.12593 -1.83484,-2.93489 -3.86667,-3 z m -50.96666,5.766669 c -0.61333,-0.07148 -1.21336,0.0042 -1.8,0.3 -2.34598,1.183349 -3.92502,3.81264 -1.73334,4.9 2.19191,1.08736 3.74516,-0.150741 5.66667,-1.5 1.92173,-1.349045 1.87228,-1.612875 1.73333,-2.133333 -0.26601,0.07094 -2.02669,-1.352235 -3.86666,-1.566667 z m 42.86666,0.466667 c -1.77199,0.708629 -1.75118,3.170389 -0.33333,4.233333 1.41748,1.063157 3.19156,0.375499 3.9,-0.333333 0.70902,-0.70863 -0.023,-3.19136 -3.56667,-3.9 z"
+ style="fill:url(#linearGradient39110);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path1283"
+ d="m 147.16667,11.433333 c -3.48238,0.364902 -5.88303,3.345755 -8.33158,5.570373 -8.94544,9.133798 -18.09349,18.101949 -26.95799,27.294024 -1.44334,1.84378 -2.03035,4.015468 -2.31043,6.30227 5.03542,3.678658 11.71157,3.699536 17.06666,6.766667 -1.50817,2.381747 -5.17846,2.289571 -6.84097,4.663825 -1.44519,0.973702 0.60698,2.569614 1.6838,2.93719 4.47582,2.259905 9.5207,3.127075 13.9674,5.505719 2.30619,0.164974 2.15073,2.483836 0.6201,3.623175 -1.21232,1.221254 -3.08705,3.249751 -1.23288,4.771441 2.26675,1.575369 5.27199,1.144095 7.80255,2.065316 1.77826,0.975122 0.51639,2.738136 1.73334,3.966667 3.05603,2.396513 7.28787,1.973693 10.69445,0.606201 1.75151,-0.515126 3.34201,-1.653286 4.87221,-2.539534 1.47613,-1.720326 -0.82595,-2.9513 -2.13333,-3.666667 -0.85913,-1.425274 2.00009,-1.997097 2.97462,-2.675578 3.73665,-1.514529 7.36553,-3.267329 10.23683,-6.143331 1.79011,-1.105032 -0.83882,-2.676851 -1.67812,-3.547758 -1.55141,-1.15048 -3.58938,-1.860548 -4.56666,-3.633333 2.52043,-2.7807 6.7319,-2.262194 9.98204,-3.687561 3.90317,-0.992642 7.61596,-2.729652 11.05532,-4.741974 2.26951,-1.69135 1.67257,-4.636557 1.22998,-7.021773 -1.61839,-5.025589 -6.41885,-8.01283 -9.81146,-11.814386 -7.61983,-7.514247 -15.1255,-15.17228 -22.81612,-22.597384 -2.05244,-1.578655 -4.64151,-2.423668 -7.23976,-2.003589 z M 149.5,16.766667 c 5.52064,4.046284 11.05387,8.077891 16.56667,12.133333 0.11539,1.103552 -2.90244,-1.172627 -4.0558,-1.481882 -1.41219,-0.420198 -3.8964,-2.894916 -3.5025,0.03341 -0.60562,1.192982 0.31151,5.203671 -1.4377,4.28052 -1.58183,-0.849857 -3.68447,-2.113891 -5.18058,-0.378679 -1.61892,1.082213 -3.23783,2.164425 -4.85676,3.246637 -0.9783,-3.377623 -1.95211,-6.756554 -2.93333,-10.133333 -1.34602,3.127884 -2.66477,6.267483 -4,9.4 -2.92222,0.288888 -5.84445,0.577778 -8.76667,0.866667 -0.20184,-2.166309 0.27133,-4.341771 1.77562,-5.878158 3.25057,-5.211552 8.66632,-8.395371 13.54451,-11.865011 0.95273,-0.564092 1.80847,-0.493262 2.84654,-0.223498 z m -8.63333,43.566666 c 2.34366,0.607254 4.78296,0.727797 7.16666,1.133334 -0.90625,1.084587 -3.14277,-0.32439 -4.56523,-0.371058 -1.8583,-0.406252 -3.7163,-0.80007 -5.4681,-1.562276 0.95555,0.266667 1.91111,0.533334 2.86667,0.8 z m 38.86666,5.4 c -2.15488,0.501536 -5.22675,0.793815 -5.5,3.566667 0.70833,1.029809 2.96093,1.412478 4.40801,1.688268 2.27503,0.363118 5.38493,1.181831 6.97878,-0.937576 1.36135,-1.898234 -0.67459,-4.313995 -2.78769,-4.178768 -1.02575,-0.350017 -2.04343,-0.268702 -3.0991,-0.138591 z m -51.03333,5.9 c -1.57612,1.085018 -3.71575,2.720281 -3.03333,4.9 1.61184,2.339234 4.94529,1.683368 6.78753,-0.0057 1.2184,-0.692559 3.25469,-2.021692 2.31247,-3.560997 -1.93436,-0.840999 -3.87915,-2.117169 -6.06667,-1.333334 z m 44.36667,0.333334 c -1.34895,0.891833 -1.89168,2.759628 -0.95675,4.109348 0.71622,1.795233 3.11379,1.982508 4.57991,1.004604 1.95986,-0.600235 1.10016,-3.109938 -0.33003,-3.844913 -0.72045,-0.899439 -2.36482,-1.335642 -3.29313,-1.269039 z"
+ style="fill:url(#linearGradient39112);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path1286"
+ d="m 146.23333,12.866667 c -3.88385,1.702193 -6.61189,5.324961 -9.67052,8.210746 -7.86956,8.018198 -15.90416,15.90198 -23.69161,23.983409 -1.11331,1.428597 -1.72615,3.060044 -2.00453,4.839178 4.36,3.072638 10.04495,3.23545 14.7573,5.603266 1.5625,0.15548 3.26141,1.73801 1.81635,3.072207 -1.86501,1.91956 -5.15011,2.084779 -6.70699,4.291194 4.05269,2.923397 9.10625,3.602288 13.58014,5.613093 1.52915,1.119169 4.28812,1.21833 4.3532,3.553573 -0.41298,2.06712 -2.47344,3.267809 -3.36667,5.133334 1.94434,2.744072 5.94438,1.261888 8.50547,3.040805 1.3908,0.857738 1.00828,2.693049 1.62108,3.831047 3.2048,2.344549 7.71164,1.319869 10.94656,-0.558135 1.04365,-0.353733 3.89943,-1.626855 1.76272,-2.556043 -1.55651,-0.349067 -2.86028,-2.213166 -1.35103,-3.402938 3.84858,-2.931245 9.10998,-3.601158 12.55258,-7.214396 1.79927,-1.361045 -1.31628,-2.560541 -2.24828,-3.336495 -1.41778,-1.044797 -3.86698,-2.048091 -3.55577,-4.137179 2.35965,-3.274836 6.88107,-2.833411 10.31383,-4.263585 3.90311,-0.957377 7.67689,-2.630842 11.10878,-4.611597 2.18816,-1.940094 1.07405,-5.046756 0.32835,-7.371909 -3.93266,-5.513287 -9.35396,-9.75581 -13.9708,-14.686024 -5.91778,-5.783657 -11.65452,-11.813723 -17.68454,-17.444607 -2.14828,-1.370565 -4.63208,-2.556154 -7.20805,-1.62333 z m 2.3,2.233333 c 5.45973,2.578599 9.80753,6.890051 14.73244,10.347527 1.85084,1.664819 5.00363,2.778901 4.9009,5.71914 -1.78479,0.428996 -3.34725,-1.396857 -5.04898,-1.86837 -1.54021,-0.520034 -4.1213,-2.963549 -3.68846,0.16232 -0.54825,1.127161 0.22527,4.775461 -1.23798,4.170178 -1.53672,-0.653008 -3.2567,-1.905943 -4.87859,-1.758173 -2.31413,1.577535 -4.63724,3.142054 -6.94599,4.727378 -0.87266,-2.83558 -1.68407,-5.690403 -2.53334,-8.533333 -1.12707,2.260756 -1.98302,4.959333 -3.26666,6.966666 -3.47777,0.344565 -6.95563,0.688221 -10.43334,1.033334 0.0287,-2.531437 -0.43925,-5.398577 1.54821,-7.372648 3.13073,-5.303181 8.62883,-8.494145 13.35179,-12.127352 1.15867,-0.426692 2.35212,-1.253526 3.5,-1.466667 z m -13.76666,42.4 c 4.77393,1.272573 9.58904,2.318786 14.5,2.9 0.93608,1.872033 -0.34236,3.482335 -2.33168,2.565935 -3.62332,-0.734316 -7.25018,-1.727438 -10.80166,-2.699268 -0.26564,-0.514085 -3.09159,-3.378118 -1.36666,-2.766667 z m 45.16666,9.433333 c -1.51493,0.422114 -3.72691,0.290818 -4.26666,2.133334 2.90995,0.556827 6.05202,2.002088 8.9,0.466666 0.978,-1.977585 -1.92783,-2.538134 -3.31385,-2.645499 -0.43983,0.01517 -0.87966,0.03034 -1.31949,0.0455 z m -50.9,5.866667 c -1.16024,0.90047 -3.46737,3.083937 -1.02728,3.858837 2.25255,0.543858 3.96147,-1.380385 5.62728,-2.558837 -1.18522,-1.161836 -2.98479,-1.601218 -4.6,-1.3 z m 44.03334,0.733333 c -1.04902,2.027564 1.90687,4.021482 3.28133,2.230908 0.70415,-1.13156 -2.36473,-3.118333 -3.28133,-2.230908 z"
+ style="fill:url(#linearGradient39114);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path1295"
+ d="m 146.66667,13.4 c -6.33172,3.543401 -10.68888,9.547281 -15.90063,14.447274 -5.8861,6.073656 -12.00588,11.974663 -17.74737,18.155152 -0.7305,1.178656 -2.18908,3.828459 -0.0714,4.248788 4.9013,2.576465 10.86092,2.972757 15.3194,6.215453 1.00861,2.475215 -2.05916,3.484953 -3.70454,4.477414 -1.7373,0.545523 -3.75405,2.175563 -0.84454,2.774326 4.83335,2.60598 10.58594,3.28132 15.01575,6.64826 1.43136,2.33294 -1.26292,4.394234 -2.23809,6.238069 0.0119,1.908953 2.8242,1.486185 4.14874,2.002826 2.29679,0.177914 4.75661,1.464231 4.98406,3.992952 0.7695,2.00242 3.5144,2.068656 5.37195,2.066153 2.47607,-0.312856 4.61313,-1.6278 6.86667,-2.6 -0.11425,-1.550102 -2.69456,-1.700315 -2.36667,-3.6 1.99363,-3.193298 6.06476,-3.869656 9.11608,-5.707796 1.73236,-0.750835 3.28599,-1.893245 4.45059,-3.392204 -1.92497,-2.280272 -5.74204,-3.012313 -6.11314,-6.406102 0.39022,-1.188208 2.2736,-2.314015 3.60639,-2.891301 5.6785,-2.143002 11.88985,-2.970298 17.10185,-6.270592 2.74324,-1.108432 1.83527,-4.538836 1.0317,-6.686009 -2.29624,-3.22589 -5.40132,-6.000174 -8.00828,-9.052576 -2.68656,-2.760044 -5.48876,-5.408427 -8.21852,-8.126754 1.12365,1.634362 -0.99109,2.422313 -2.21269,1.401868 -2.03118,-0.886068 -4.05629,-1.760173 -6.12064,-2.568534 C 160.05314,30.54272 159.67649,32.269964 159.3,34 c -2.55377,0.684822 -5.03322,-2.683187 -7.35336,-0.501311 -1.91379,1.060257 -3.40719,2.847058 -5.45058,3.513153 -1.46281,-0.265507 -1.26699,-3.243895 -2.01992,-4.618246 -0.44179,-3.083731 -1.2118,-2.404985 -2.14312,0.123134 -0.85365,1.59882 -1.21984,3.834303 -3.53335,3.298267 -3.08878,0.306225 -6.17762,0.611598 -9.26633,0.918336 0.0202,-3.177717 -0.28551,-6.766 2.22768,-9.171123 3.51639,-4.960964 8.70856,-8.341185 13.55479,-11.782731 1.62219,-0.752906 3.63701,-1.872712 5.13828,-0.273654 3.97373,2.727514 8.02021,5.285521 11.74591,8.327508 -3.19568,-3.018643 -6.19482,-6.317986 -9.51099,-9.164539 -1.87897,-0.938934 -3.8675,-2.092901 -6.02238,-1.268794 z m -11.83334,43.5 c 5.00075,0.984495 9.99566,2.003225 15,2.966667 0.20732,1.45664 0.46427,3.886308 -1.67313,3.831478 -4.16789,-0.795987 -8.38205,-1.956384 -12.49353,-3.031478 -0.61549,-0.980519 -2.50897,-2.472939 -1.9,-3.466667 0.35063,-0.05103 0.72399,-0.354699 1.06666,-0.3 z m 42.8,11.166667 c -1.73875,1.086025 2.33789,1.138186 3.27372,1.439238 1.30579,0.375237 4.48185,-0.551342 2.02628,-1.672572 -1.83243,-0.401834 -3.50784,-0.360679 -5.3,0.233334 z M 128.86667,73.8 c -2.17346,1.397366 -0.18414,3.053084 1.5865,1.699463 2.04828,-0.249261 2.08866,-2.343116 -0.17211,-2.051831 -0.54677,-0.07524 -0.99718,-0.0549 -1.41439,0.352368 z m 44.76666,1.133333 c 2.4133,2.30436 1.83777,-1.778179 0,-0.492892 0,0.102368 0,0.430964 0,0.492892 z"
+ style="fill:url(#linearGradient39116);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path1300"
+ d="m 146.4,11 c -2.85517,0.532698 -4.88261,2.920832 -7.04143,4.696624 -9.46036,9.318687 -18.69953,18.903094 -28.02524,28.336709 -1.28513,2.140689 -2.02923,4.453081 -2.46666,6.9 4.02374,2.003945 8.08967,3.86007 12.47179,4.935568 1.05804,0.665393 4.69014,0.890135 3.49487,2.397766 -2.29866,1.221998 -5.17006,2.048868 -6.16666,4.733333 1.94556,3.411999 6.27529,3.61226 9.48467,5.236915 2.69399,1.065471 5.388,2.130945 8.08199,3.196418 0.0835,2.815831 -0.6308,1.873266 -2.05017,0.611648 -2.17089,-1.1027 -5.39205,-2.114404 -7.09766,0.274746 -1.55046,0.944625 -2.75719,3.349765 -1.57432,4.866099 2.21286,2.398176 6.00771,1.27668 8.06067,-0.779037 0.17795,-0.191378 -0.29693,2.877758 1.42073,3.193938 2.34275,1.346613 5.33929,0.970157 7.67409,2.299273 0.45283,1.979683 1.2508,4.221333 3.5739,4.531638 3.66844,1.48315 7.80683,0.39212 11.09794,-1.541311 1.39792,-0.760174 4.07797,-1.323747 3.46357,-3.423687 -0.0478,-1.38074 -3.42818,-2.212653 -1.53541,-3.499973 4.53006,-2.016167 9.17312,-4.142848 12.66666,-7.733334 0.85723,-2.253596 -2.25712,-3.193724 -3.46666,-4.566666 -1.4517,-1.221069 -3.87877,-2.524433 -0.81856,-3.364818 5.62839,-2.111859 11.87228,-2.940184 17.03456,-6.263438 2.72995,-0.86584 3.85371,-3.957742 3.06767,-6.564064 -0.0255,-2.62475 -1.76154,-4.797622 -3.22224,-6.835657 C 179.45289,36.856816 173.58197,31.828345 168.24204,26.291461 163.60188,21.818095 159.14228,17.065484 154.39198,12.762657 151.99166,11.220691 149.22884,10.717147 146.4,11 Z m 3.36667,6.733333 c 4.24058,2.976224 8.38139,6.129328 12.6,9.166667 -1.29937,-0.797366 -2.67486,-1.290978 -4.2,-1.4 -0.21287,1.824575 -0.47054,3.643999 -0.7,5.466667 -1.97534,-0.587625 -4.21204,-1.778592 -5.97773,-0.09263 -1.30676,0.402533 -3.52226,3.290581 -4.25972,2.135968 -0.99915,-3.447628 -1.99405,-6.896491 -2.99589,-10.343339 -1.52265,3.539479 -3.02044,7.089652 -4.53333,10.633333 -2.56667,0.255555 -5.13333,0.511111 -7.7,0.766667 -0.0148,-3.662276 2.83591,-6.395601 5.07235,-8.959274 3.30461,-2.837611 6.75708,-5.60858 10.52338,-7.756865 0.7316,-0.360909 1.44586,0.250944 2.17094,0.382806 z m 26.36666,48.333334 C 174.87994,66.86218 172.84987,68.441375 174.2,70 c 2.62772,1.71982 5.90645,1.835937 8.93343,1.934762 2.25075,-0.06272 4.4688,-2.726652 2.93663,-4.770688 -1.42803,-2.456455 -4.67977,-1.908377 -7.06627,-1.883005 -0.95681,0.261868 -1.91364,0.523732 -2.87046,0.785598 z m -3.3,5.433333 c -1.27562,1.033534 -1.85687,2.841465 -1.35231,4.508785 0.43077,1.899535 2.6256,2.385569 4.29198,1.849858 2.50838,0.201444 3.52565,-3.378484 1.43654,-4.628378 -1.24197,-1.050288 -2.64377,-2.095016 -4.37621,-1.730265 z"
+ style="fill:url(#linearGradient39118);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path1304"
+ d="m 146,10.2 c -5.57009,2.353735 -9.31153,7.276932 -13.56394,11.364379 -7.26121,7.360863 -14.57305,14.685571 -21.80273,22.068954 -0.92375,2.588329 -1.83526,5.181133 -2.76666,7.766667 5.12606,2.235525 10.28103,4.361596 15.6,6.1 -0.32712,1.554459 -2.93579,1.371077 -3.74338,2.860476 -1.43416,0.914482 -2.37188,3.411157 -0.36803,4.245199 3.1673,2.975582 7.51398,4.048213 11.44474,5.660992 -3.09041,-0.89746 -5.13867,2.363507 -6.33333,4.666666 -0.72155,2.880448 2.58866,4.694489 5.06851,4.276737 1.54135,0.553684 3.66,-2.522746 3.86807,-0.13866 2.29497,2.607941 6.70581,1.993255 9.10076,4.436609 0.7749,2.147771 2.55461,3.943898 4.94541,3.965707 2.15881,0.621481 4.27216,0.328386 6.35476,-0.418515 2.43249,-0.54992 4.74804,-1.764623 6.87594,-2.976017 1.61013,-1.140622 1.25617,-3.709454 -0.21345,-4.812527 -0.21701,-1.714746 2.45466,-1.738353 3.54015,-2.659077 2.92458,-1.339302 5.49291,-3.216603 7.95985,-5.240923 -1.09048,1.568168 -1.50221,3.637034 -0.89348,5.420276 1.02957,2.431889 4.09705,1.779572 6.16014,1.64639 C 179.29546,77.451445 180.09314,74.273508 178,72.9 c -3.03927,-1.879702 -0.42819,-1.002977 1.49692,-0.460891 2.38484,0.141742 5.36949,0.891675 6.99369,-1.418947 1.80089,-1.737129 0.66941,-4.475043 -1.05728,-5.820162 -2.14881,-1.14371 -4.72742,-0.810973 -7.057,-0.699886 -2.09119,0.370608 -3.67839,1.613047 -4.97633,3.233219 -1.58756,1.272788 1.82748,3.61782 -0.0532,3.147933 -1.36163,0.234395 0.30799,-2.483632 -1.32358,-3.36862 -1.06348,-1.560896 -2.85826,-2.534055 -4.1899,-3.879313 6.43141,-3.110773 13.94477,-3.952924 19.7,-8.433333 2.10991,-2.5028 1.15052,-5.815831 0.53333,-8.666667 C 184.23156,39.549156 177.84192,34.54079 172.35319,28.898191 166.50884,23.205036 160.69939,17.462459 154.83333,11.8 152.27799,10.77259 149.66457,10.063772 146.88646,10.206305 146.60075,10.233991 146.27214,10.101959 146,10.2 Z m 7.6,11.266667 c 1.51374,1.165288 3.04586,2.309495 4.56667,3.466666 -1.39718,1.06872 -0.90296,3.127104 -1.4,4.633334 -2.08576,-0.566112 -4.35694,-0.641822 -6.05767,0.905733 -1.05102,0.888519 -3.01815,1.872214 -3.17799,-0.196242 -0.93874,-3.234383 -1.83,-6.48501 -2.79768,-9.709491 1.63294,-0.494373 3.30094,-3.132711 4.90134,-1.63781 1.32178,0.845937 2.64355,1.691873 3.96533,2.53781 z m -14.36667,10.966666 c -1.96666,0.2 -3.93333,0.4 -5.9,0.6 0.75323,-3.751583 3.85837,-6.37712 6.49928,-8.892012 1.44608,-1.049755 2.80293,-2.240606 4.30072,-3.207988 -1.63333,3.833334 -3.26666,7.666667 -4.9,11.5 z"
+ style="fill:url(#linearGradient39120);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ inkscape:connector-curvature="0" />
+ </g>
+ <path
+ sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccc"
+ id="path1217"
+ d="m 80.606138,21.093974 c -3.986404,2e-6 -7.999981,1.500815 -11.054664,4.555494 L 15.31073,79.950952 c -2.994002,2.993929 -4.556718,6.904836 -4.616235,10.811705 -8.35e-4,0.06557 0,0.177392 0,0.24296 h 0.12148 c 1.039149,3.953694 27.860205,8.970154 30.855878,11.965763 4.524006,4.52404 -17.340071,7.86688 -12.816122,12.39094 4.523986,4.52399 27.364021,8.71724 31.888455,13.2413 4.524026,4.52402 -9.261778,9.3247 -4.737714,13.8487 4.524006,4.52407 19.69882,-1.11018 16.946437,10.69023 6.109347,6.10935 18.859073,3.19383 27.393701,-2.91552 4.52401,-4.524 -8.654358,-4.10106 -4.130314,-8.62506 4.524004,-4.52406 15.949294,-4.54533 25.571504,-15.3672 -3.87306,-6.02355 -16.55055,-8.59578 -12.0265,-13.11982 4.524,-4.524 13.27486,-2.25385 32.25288,-10.87245 9.26429,-4.207497 8.53905,-7.362324 8.50359,-11.236883 -7.4e-4,-0.08153 0,-0.160805 0,-0.24296 h -0.0608 c -0.0595,-3.906866 -1.56157,-7.817769 -4.55549,-10.811705 L 91.600063,25.649468 C 88.5454,22.594793 84.592543,21.093974 80.606138,21.093974 Z M 56.553132,105.76542 c 8.084647,2.09667 17.079247,4.81 24.295966,4.85919 l 0.3037,3.27996 c -6.179767,-0.63701 -19.269208,-3.64874 -22.352289,-5.22364 z m 84.246258,14.39535 c -1.23415,-0.0395 -2.40206,0.0842 -3.27996,0.3037 -1.65516,0.41359 -9.69592,0.60412 -9.05025,5.7703 7.10376,2.58184 18.08512,4.55915 19.37604,-0.6074 0.96897,-3.87387 -3.34345,-5.34795 -7.04583,-5.4666 z m -92.871326,10.50801 c -1.117595,-0.13024 -2.210972,0.008 -3.279956,0.54666 -4.274826,2.15631 -7.152149,6.94739 -3.158474,8.92877 3.99408,1.98139 6.824425,-0.27467 10.325785,-2.7333 3.501767,-2.45822 3.411658,-2.93897 3.158475,-3.88735 -0.484734,0.12928 -3.693025,-2.46403 -7.04583,-2.85478 z m 78.111516,0.85036 c -3.22891,1.29126 -3.19098,5.77708 -0.60739,7.71397 2.58293,1.93728 5.81565,0.68424 7.10657,-0.6074 1.29198,-1.29126 -0.042,-5.81528 -6.49918,-7.10657 z"
+ style="fill:url(#linearGradient1322);fill-rule:evenodd;stroke-width:1.30175579pt"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
+ id="path1269"
+ d="m 11.977124,84.576671 c -0.883927,1.953959 -1.36513,4.04141 -1.397018,6.134731 -8.33e-4,0.06556 0,0.177399 0,0.24296 h 0.12148 c 0.994358,3.78327 25.07956,8.512878 29.823299,11.540588 2.091809,-1.24429 3.465756,-2.547484 2.065157,-3.948099 C 39.594368,95.551236 12.773315,90.53478 11.734165,86.581087 h -0.12148 c 0,-0.06558 -8.33e-4,-0.177399 0,-0.242958 0.0091,-0.601939 0.284168,-1.162709 0.364439,-1.761458 z M 150.34262,92.47286 c -1.0612,1.680115 -3.10061,3.387829 -7.41026,5.345111 -18.97801,8.618589 -27.72886,6.348449 -32.25287,10.872439 -1.37053,1.37052 -0.88153,2.54264 0.18222,3.70513 4.78924,-3.38639 13.4115,-2.19944 31.03808,-10.20429 8.00504,-3.635614 8.46503,-6.511246 8.44283,-9.71839 z m -92.871299,8.86803 2.247377,2.9155 c 3.08308,1.57491 16.17252,4.58665 22.352289,5.22364 l -0.303699,-3.27996 c -7.216719,-0.0492 -16.21132,-2.7625 -24.295967,-4.85918 z M 30.685018,111.4237 c -2.022925,1.2244 -3.320206,2.51079 -1.943676,3.88736 4.523988,4.52399 27.364021,8.71723 31.888455,13.2413 0.198962,0.19895 0.17245,0.40741 0.3037,0.6074 1.405197,-1.67236 2.355425,-3.35413 0.728879,-4.98067 -4.359755,-4.3594 -25.379991,-8.41841 -30.977358,-12.75539 z m 100.220842,10.75097 c -1.55381,0.80713 -2.80902,1.9449 -2.55108,4.00882 7.10375,2.58184 18.08511,4.55915 19.37603,-0.60738 0.25122,-1.00435 0.11312,-1.85114 -0.24296,-2.55108 -3.06888,2.47706 -10.66085,1.09402 -16.58199,-0.85036 z m -11.17612,2.18664 c -8.90094,7.91694 -18.52655,8.74738 -22.595255,12.81612 -1.63664,1.63663 -0.713263,2.53048 0.6074,3.34069 5.191475,-3.47749 15.190165,-4.50342 23.931535,-14.33463 -0.44804,-0.69679 -1.30027,-1.20938 -1.94368,-1.82218 z m 5.0414,8.01767 c -1.86829,1.81567 -1.62997,5.17107 0.54666,6.80287 2.58292,1.93727 5.81565,0.68422 7.10656,-0.6074 0.66392,-0.66356 0.57592,-2.15087 -0.48592,-3.6444 -1.57518,0.81115 -3.6457,1.33536 -5.58806,-0.12148 -0.82081,-0.61535 -1.29544,-1.48388 -1.57924,-2.42959 z m -71.612353,0.24296 c -0.216533,0.15768 -0.17254,0.18708 -0.42518,0.36444 -3.501359,2.45861 -6.331704,4.7147 -10.325785,2.73329 -0.835138,-0.41433 -1.173493,-1.0297 -1.457758,-1.63998 -1.775949,2.19005 -2.210285,4.70572 0.425179,6.01325 3.994085,1.98138 6.824427,-0.27468 10.325787,-2.73329 3.50177,-2.45823 3.411658,-2.93899 3.158475,-3.88735 -0.166315,0.0444 -0.997334,-0.45265 -1.700718,-0.85036 z m 3.462175,4.79845 c -1.405193,1.67235 -2.355439,3.35411 -0.728879,4.98066 4.524009,4.52407 19.69882,-1.11019 16.946437,10.69022 6.109348,6.10935 18.859078,3.19384 27.39371,-2.91551 1.66654,-1.66656 0.69997,-2.58291 -0.668148,-3.40144 -8.458362,5.3473 -19.957869,7.67884 -25.692984,1.94368 2.752384,-11.8004 -12.422431,-6.16613 -16.946436,-10.69021 -0.198964,-0.19896 -0.172449,-0.40742 -0.3037,-0.6074 z"
+ style="fill:url(#linearGradient1231);fill-rule:evenodd;stroke-width:1.30175579pt"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccccc"
+ id="path1271"
+ d="m 107.57531,47.365247 32.87711,35.325423 c 0,0 9.7932,10.492701 2.09856,14.68978 -7.69466,4.19708 -31.12834,10.4927 -31.12834,10.4927 L 68.830422,46.540402 Z"
+ style="fill:url(#linearGradient1272);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.30175579pt"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccccc"
+ id="path1276"
+ d="M 56.944037,42.006087 26.165461,77.3315 c 0,0 -11.891721,10.4927 -4.197076,14.689777 7.694644,4.197078 58.409343,21.335153 94.084505,15.039533 L 75.13138,45.853409 Z"
+ style="fill:url(#linearGradient1277);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.49509335pt"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccccczz"
+ id="path1317"
+ d="m 82.042498,27.12255 c 4.504479,0.03329 23.422692,18.434639 28.837322,22.230809 5.41464,3.796171 4.14478,6.285951 4.14478,6.523269 L 99.839631,48.527099 98.321133,60.006943 89.939024,56.058848 77.062155,64.683915 72.081482,47.67674 65.76453,62.558018 47.967732,64.319476 48.149952,56.423287 74.438456,30.540688 c 1.907291,-1.877842 3.182156,-3.451427 7.604042,-3.418138 z"
+ style="fill:url(#linearGradient1318);fill-rule:evenodd;stroke-width:1.30175579pt"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+ <g
+ inkscape:label="Title"
+ id="layer2"
+ inkscape:groupmode="layer">
+ <text
+ id="text48"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:51.20000076px;line-height:100%;font-family:Arial;writing-mode:lr-tb;text-anchor:start;display:block;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ y="74.666664"
+ x="48">
+ <tspan
+ id="tspan2"
+ sodipodi:role="line"
+ y="74.666664"
+ x="48"
+ style="stroke-width:3.20000017pt">Future Capabilities Desired</tspan>
+ </text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:139.99999762%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="57.142857"
+ y="168.88889"
+ id="text3025"><tspan
+ id="tspan92"
+ sodipodi:role="line"
+ y="168.88889"
+ x="57.142857"
+ style="stroke-width:1.06666669pt">* Make it easier to have multiple run-modes</tspan><tspan
+ id="tspan93"
+ sodipodi:role="line"
+ y="204.72888"
+ x="57.142857"
+ style="stroke-width:1.06666669pt"> + Commandline mode (--no-gui)</tspan><tspan
+ id="tspan94"
+ sodipodi:role="line"
+ y="240.56888"
+ x="57.142857"
+ style="stroke-width:1.06666669pt"> + Presentation mode (inkview *.svg)</tspan><tspan
+ id="tspan95"
+ sodipodi:role="line"
+ y="276.40887"
+ x="57.142857"
+ style="stroke-width:1.06666669pt"> + Old Gtk+ interface (--old-gui)</tspan><tspan
+ id="tspan96"
+ sodipodi:role="line"
+ y="312.24887"
+ x="57.142857"
+ style="stroke-width:1.06666669pt"> + New Gtkmm interface (--new-gui)</tspan><tspan
+ id="tspan97"
+ sodipodi:role="line"
+ y="348.0889"
+ x="57.142857"
+ style="stroke-width:1.06666669pt"> + Whiteboard interface (inkboard)</tspan><tspan
+ id="tspan98"
+ sodipodi:role="line"
+ y="383.92889"
+ x="57.142857"
+ style="stroke-width:1.06666669pt"> + Gimp-style interface?</tspan><tspan
+ id="tspan99"
+ sodipodi:role="line"
+ y="419.76889"
+ x="57.142857"
+ style="stroke-width:1.06666669pt"> + GUI testing mode?</tspan><tspan
+ id="tspan100"
+ sodipodi:role="line"
+ y="455.60889"
+ x="57.142857"
+ style="stroke-width:1.06666669pt"> + Animation playing mode?</tspan><tspan
+ id="tspan101"
+ sodipodi:role="line"
+ y="491.44888"
+ x="57.142857"
+ style="stroke-width:1.06666669pt"> + More...?</tspan><tspan
+ id="tspan102"
+ sodipodi:role="line"
+ y="527.28888"
+ x="57.142857"
+ style="stroke-width:1.06666669pt" /><tspan
+ id="tspan103"
+ sodipodi:role="line"
+ y="563.12891"
+ x="57.142857"
+ style="stroke-width:1.06666669pt">* Inkscape::Application should be run-mode neutral</tspan><tspan
+ id="tspan104"
+ sodipodi:role="line"
+ y="598.96887"
+ x="57.142857"
+ style="stroke-width:1.06666669pt"> + Provide high level services / registries for all run modes</tspan><tspan
+ id="tspan105"
+ sodipodi:role="line"
+ y="634.8089"
+ x="57.142857"
+ style="stroke-width:1.06666669pt" /><tspan
+ id="tspan106"
+ sodipodi:role="line"
+ y="670.64886"
+ x="57.142857"
+ style="stroke-width:1.06666669pt" /></text>
+ </g>
+ <g
+ inkscape:label="Drawing Area"
+ id="layer3"
+ inkscape:groupmode="layer" />
+</svg>
diff --git a/doc/NewAppArchitecture/10-future-main.svg b/doc/NewAppArchitecture/10-future-main.svg
new file mode 100644
index 0000000..66d9b57
--- /dev/null
+++ b/doc/NewAppArchitecture/10-future-main.svg
@@ -0,0 +1,609 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ sodipodi:docname="10-future-main.svg"
+ height="480pt"
+ width="640pt"
+ inkscape:version="0.92.0 r15304"
+ sodipodi:version="0.32"
+ id="svg586"
+ version="1.1">
+ <defs
+ id="defs588">
+ <marker
+ style="overflow:visible;"
+ id="marker396"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ id="path397"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker394"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ id="path395"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker391"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ id="path392"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker319"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ id="path320"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="TriangleOutL"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ id="path224"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <linearGradient
+ id="linearGradient2570">
+ <stop
+ id="stop2571"
+ offset="0.0000000"
+ style="stop-color:#000000;stop-opacity:1.0000000;" />
+ <stop
+ id="stop2572"
+ offset="0.58504134"
+ style="stop-color:#000000;stop-opacity:0.62745100;" />
+ <stop
+ id="stop2573"
+ offset="1.0000000"
+ style="stop-color:#ffffff;stop-opacity:0.0000000;" />
+ </linearGradient>
+ <linearGradient
+ y2="114.57422"
+ x2="53.030737"
+ y1="20.687101"
+ x1="77.599106"
+ id="linearGradient1322"
+ xlink:href="#linearGradient1218"
+ gradientTransform="matrix(1.3228549,0,0,1.2809931,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ y2="58.199241"
+ x2="33.266399"
+ y1="30.563196"
+ x1="59.491886"
+ id="linearGradient1318"
+ xlink:href="#linearGradient1273"
+ gradientTransform="matrix(1.7409899,0,0,0.97333594,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ gradientTransform="scale(1.004208,0.995809)"
+ y2="0.12454049"
+ x2="0.41986585"
+ y1="1.9347328"
+ x1="0.45376351"
+ id="linearGradient1307"
+ xlink:href="#linearGradient1222" />
+ <linearGradient
+ gradientTransform="scale(1.006361,0.993679)"
+ y2="0.11846013"
+ x2="0.41548476"
+ y1="1.9667202"
+ x1="0.45009527"
+ id="linearGradient1306"
+ xlink:href="#linearGradient1222" />
+ <linearGradient
+ gradientTransform="scale(1.002016,0.997989)"
+ y2="0.13959341"
+ x2="0.42603236"
+ y1="1.8676205"
+ x1="0.45839140"
+ id="linearGradient1305"
+ xlink:href="#linearGradient1222" />
+ <linearGradient
+ y2="80.482086"
+ x2="51.413385"
+ y1="119.11808"
+ x1="11.967844"
+ id="linearGradient1277"
+ xlink:href="#linearGradient1273"
+ gradientTransform="matrix(1.8036348,0,0,1.2393329,-37.611189,-4.4599008)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ y2="62.493129"
+ x2="90.28563"
+ y1="45.70058"
+ x1="118.66497"
+ id="linearGradient1272"
+ xlink:href="#linearGradient1273"
+ gradientTransform="matrix(1.4554449,0,0,1.1642956,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient1270"
+ xlink:href="#linearGradient1222" />
+ <linearGradient
+ y2="120.74315"
+ x2="94.698939"
+ y1="120.74315"
+ x1="17.696665"
+ id="linearGradient1231"
+ xlink:href="#linearGradient1323"
+ gradientTransform="matrix(1.8150579,0,0,0.9336165,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ y2="28.120696"
+ x2="130.70353"
+ y1="170.27164"
+ x1="27.318817"
+ id="linearGradient1221"
+ xlink:href="#linearGradient1222"
+ gradientTransform="scale(1.0211162,0.97932047)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient1218">
+ <stop
+ id="stop1219"
+ offset="0.00000000"
+ style="stop-color:#000000;stop-opacity:1.0000000;" />
+ <stop
+ id="stop1321"
+ offset="0.073255815"
+ style="stop-color:#323232;stop-opacity:1.0000000;" />
+ <stop
+ id="stop1320"
+ offset="0.65260679"
+ style="stop-color:#000000;stop-opacity:1.0000000;" />
+ <stop
+ id="stop1220"
+ offset="1"
+ style="stop-color:#fff;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1222">
+ <stop
+ id="stop1223"
+ offset="0.0000000"
+ style="stop-color:#0081ac;stop-opacity:1.0000000;" />
+ <stop
+ id="stop1722"
+ offset="0.50000000"
+ style="stop-color:#006d91;stop-opacity:0.62745100;" />
+ <stop
+ id="stop1224"
+ offset="1.0000000"
+ style="stop-color:#000000;stop-opacity:0.0000000;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1273">
+ <stop
+ id="stop1274"
+ offset="0.00000000"
+ style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+ <stop
+ id="stop1275"
+ offset="1.0000000"
+ style="stop-color:#ffffff;stop-opacity:0.00000000;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1323">
+ <stop
+ id="stop1324"
+ offset="0.00000000"
+ style="stop-color:#000000;stop-opacity:0.77685952;" />
+ <stop
+ id="stop1325"
+ offset="1.0000000"
+ style="stop-color:#000000;stop-opacity:0.00000000;" />
+ </linearGradient>
+ <radialGradient
+ fy="93.75"
+ fx="303.7037"
+ r="248.40302"
+ cy="281.25"
+ cx="296.2963"
+ id="radialGradient829"
+ xlink:href="#linearGradient826"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.29936853,0,0,0.15858773,4.3548661,98.117152)" />
+ <linearGradient
+ id="linearGradient826">
+ <stop
+ id="stop827"
+ offset="0.00000000"
+ style="stop-color:#000000;stop-opacity:0.95294118;" />
+ <stop
+ id="stop830"
+ offset="0.36585677"
+ style="stop-color:#000000;stop-opacity:0.76078433;" />
+ <stop
+ id="stop847"
+ offset="0.47107276"
+ style="stop-color:#000000;stop-opacity:0.52941179;" />
+ <stop
+ id="stop828"
+ offset="1.0000000"
+ style="stop-color:#ffffff;stop-opacity:0.00000000;" />
+ </linearGradient>
+ <linearGradient
+ y2="-1.7333326"
+ x2="0.50000000"
+ y1="0.66667551"
+ x1="0.50000000"
+ id="linearGradient907"
+ xlink:href="#linearGradient909" />
+ <linearGradient
+ id="linearGradient909">
+ <stop
+ id="stop910"
+ offset="0.00000000"
+ style="stop-color:#000000;stop-opacity:0.00000000;" />
+ <stop
+ id="stop913"
+ offset="1.0000000"
+ style="stop-color:#000000;stop-opacity:0.17000000;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1309"
+ xlink:href="#linearGradient1222"
+ gradientTransform="scale(2.8444445,0.4)"
+ x1="0"
+ y1="4.7369516e-15"
+ x2="300"
+ y2="4.7369516e-15"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ y2="1365.4825"
+ x2="64.30938"
+ y1="1365.4825"
+ x1="-0.0028122679"
+ id="linearGradient1308"
+ xlink:href="#linearGradient2570"
+ gradientTransform="scale(13.227991,0.0860129)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient826"
+ id="radialGradient39364"
+ cx="296.2963"
+ cy="281.25"
+ fx="303.7037"
+ fy="93.75"
+ r="248.40302"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4203424,0,0,0.08699077,-33.810677,100.89451)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient39366"
+ x1="33.344169"
+ y1="164.17808"
+ x2="131.82116"
+ y2="28.775105"
+ gradientTransform="scale(1.0839555,1.0496536)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient39368"
+ x1="31.731446"
+ y1="165.85049"
+ x2="131.57971"
+ y2="28.562063"
+ gradientTransform="scale(1.0848907,1.0487488)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient39370"
+ x1="35.171777"
+ y1="162.0032"
+ x2="131.8238"
+ y2="29.109513"
+ gradientTransform="scale(1.0846262,1.0490045)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient39372"
+ x1="37.676606"
+ y1="159.47478"
+ x2="132.33793"
+ y2="29.318235"
+ gradientTransform="scale(1.0823063,1.051253)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient39374"
+ x1="29.920773"
+ y1="167.66146"
+ x2="131.16846"
+ y2="28.448861"
+ gradientTransform="scale(1.0869998,1.0467139)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient39376"
+ x1="27.318817"
+ y1="170.27164"
+ x2="130.70353"
+ y2="28.120696"
+ gradientTransform="scale(1.0891906,1.0446085)"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ inkscape:current-layer="layer2"
+ inkscape:guide-bbox="true"
+ showguides="true"
+ inkscape:window-y="71"
+ inkscape:window-x="133"
+ inkscape:window-height="821"
+ inkscape:window-width="968"
+ inkscape:cy="320"
+ inkscape:cx="426.66667"
+ inkscape:zoom="0.940625"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ showgrid="false"
+ inkscape:window-maximized="0" />
+ <metadata
+ id="metadata33">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ style="display:block"
+ inkscape:label="Background"
+ id="layer1"
+ inkscape:groupmode="layer">
+ <rect
+ y="1.8947807e-15"
+ x="0"
+ height="120"
+ width="853.33331"
+ id="topbluebox"
+ style="font-size:12px;fill:url(#linearGradient1309);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.20000017pt" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path654"
+ d="M -0.03652902,117.55657 850.68323,117.34163"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient1308);stroke-width:5.31674433;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <g
+ transform="translate(689.36448,-10.40511)"
+ id="g1085">
+ <g
+ transform="matrix(0.875802,0,0,0.869278,1.1184885,-8.4967275)"
+ id="g1394">
+ <ellipse
+ style="opacity:0.69398911;fill:url(#radialGradient39364);stroke-width:0.84729707;stroke-dashoffset:0"
+ id="path898"
+ cx="92.292046"
+ cy="126.99174"
+ rx="126.10272"
+ ry="26.097233" />
+ <ellipse
+ style="fill:url(#radialGradient829);stroke-width:0.96546245;stroke-dashoffset:0"
+ id="ball1"
+ cx="94.165428"
+ cy="145.69347"
+ rx="89.810562"
+ ry="47.576321" />
+ </g>
+ <g
+ style="fill:url(#linearGradient1221)"
+ transform="matrix(1.822197,0,0,1.662749,-192.00875,13.084299)"
+ id="g1310">
+ <path
+ id="path1278"
+ d="m 148.55614,11.815593 c -2.18769,1e-6 -4.39029,0.823628 -6.06667,2.5 l -29.76666,29.8 c -1.64308,1.643032 -2.50068,3.78929 -2.53334,5.933333 -4.6e-4,0.03598 0,0.09736 0,0.133333 h 0.0667 c 0.57027,2.16974 15.28934,4.922713 16.93333,6.566667 2.48272,2.482738 -9.51602,4.317248 -7.03333,6.8 2.48271,2.482709 15.01704,4.783915 17.5,7.266669 2.48273,2.48272 -5.08275,5.11728 -2.6,7.6 2.48272,2.482753 10.81047,-0.609259 9.3,5.866667 3.35273,3.352736 10.34963,1.752736 15.03333,-1.6 2.48272,-2.482721 -4.74941,-2.250614 -2.26666,-4.733334 2.48272,-2.482752 8.75277,-2.494421 14.03333,-8.433335 -2.12548,-3.305654 -9.08274,-4.717259 -6.6,-7.2 2.48272,-2.482715 7.28509,-1.236886 17.7,-5.966667 5.08413,-2.309024 4.68613,-4.040355 4.66667,-6.166667 -4.1e-4,-0.04475 0,-0.08825 0,-0.133333 h -0.0333 c -0.0326,-2.144041 -0.85698,-4.290298 -2.5,-5.933333 l -29.8,-29.8 c -1.67637,-1.67637 -3.84565,-2.5 -6.03334,-2.5 z m -0.26667,3.866666 c 0.97256,0.02533 1.75986,0.768324 3.3,1.766667 l 14.06667,10.433333 c 0.15408,0.09991 0.29855,0.192996 0.43333,0.3 0.1348,0.10699 0.28452,0.220015 0.4,0.333334 0.11548,0.113111 0.20364,0.248218 0.3,0.366666 0.0961,0.118429 0.18984,0.244093 0.26667,0.366667 0.077,0.122774 0.14229,0.240765 0.2,0.366667 0.0577,0.126131 0.0949,0.238188 0.13333,0.366666 0.0386,0.128282 0.0808,0.270352 0.1,0.4 0.0193,0.12988 0.0333,0.269763 0.0333,0.4 l -8.33333,-4.033333 -0.83334,6.3 -4.6,-2.166667 -7.06666,4.733334 -2.73334,-9.333334 -3.46666,8.166667 -9.76667,0.966667 0.1,-4.333334 c 0,-1.042224 5.64516,-8.329604 9.06666,-10.066666 l 6.26667,-4.5 c 0.92408,-0.599006 1.54979,-0.848535 2.13333,-0.833334 z m -12.93333,42.6 c 4.43676,1.15063 9.37288,2.639674 13.33333,2.666667 l 0.16667,1.8 c -3.39138,-0.349579 -10.57471,-2.002379 -12.26667,-2.866667 z m 46.23333,7.9 c -0.67728,-0.02171 -1.31822,0.0462 -1.8,0.166667 -0.90833,0.226965 -5.321,0.331531 -4.96666,3.166667 3.89845,1.416876 9.92489,2.502007 10.63333,-0.333334 0.53176,-2.12593 -1.83484,-2.93489 -3.86667,-3 z m -50.96666,5.766669 c -0.61333,-0.07148 -1.21336,0.0042 -1.8,0.3 -2.34598,1.183349 -3.92502,3.81264 -1.73334,4.9 2.19191,1.08736 3.74516,-0.150741 5.66667,-1.5 1.92173,-1.349045 1.87228,-1.612875 1.73333,-2.133333 -0.26601,0.07094 -2.02669,-1.352235 -3.86666,-1.566667 z m 42.86666,0.466667 c -1.77199,0.708629 -1.75118,3.170389 -0.33333,4.233333 1.41748,1.063157 3.19156,0.375499 3.9,-0.333333 0.70902,-0.70863 -0.023,-3.19136 -3.56667,-3.9 z"
+ style="fill:url(#linearGradient39366);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path1283"
+ d="m 147.16667,11.433333 c -3.48238,0.364902 -5.88303,3.345755 -8.33158,5.570373 -8.94544,9.133798 -18.09349,18.101949 -26.95799,27.294024 -1.44334,1.84378 -2.03035,4.015468 -2.31043,6.30227 5.03542,3.678658 11.71157,3.699536 17.06666,6.766667 -1.50817,2.381747 -5.17846,2.289571 -6.84097,4.663825 -1.44519,0.973702 0.60698,2.569614 1.6838,2.93719 4.47582,2.259905 9.5207,3.127075 13.9674,5.505719 2.30619,0.164974 2.15073,2.483836 0.6201,3.623175 -1.21232,1.221254 -3.08705,3.249751 -1.23288,4.771441 2.26675,1.575369 5.27199,1.144095 7.80255,2.065316 1.77826,0.975122 0.51639,2.738136 1.73334,3.966667 3.05603,2.396513 7.28787,1.973693 10.69445,0.606201 1.75151,-0.515126 3.34201,-1.653286 4.87221,-2.539534 1.47613,-1.720326 -0.82595,-2.9513 -2.13333,-3.666667 -0.85913,-1.425274 2.00009,-1.997097 2.97462,-2.675578 3.73665,-1.514529 7.36553,-3.267329 10.23683,-6.143331 1.79011,-1.105032 -0.83882,-2.676851 -1.67812,-3.547758 -1.55141,-1.15048 -3.58938,-1.860548 -4.56666,-3.633333 2.52043,-2.7807 6.7319,-2.262194 9.98204,-3.687561 3.90317,-0.992642 7.61596,-2.729652 11.05532,-4.741974 2.26951,-1.69135 1.67257,-4.636557 1.22998,-7.021773 -1.61839,-5.025589 -6.41885,-8.01283 -9.81146,-11.814386 -7.61983,-7.514247 -15.1255,-15.17228 -22.81612,-22.597384 -2.05244,-1.578655 -4.64151,-2.423668 -7.23976,-2.003589 z M 149.5,16.766667 c 5.52064,4.046284 11.05387,8.077891 16.56667,12.133333 0.11539,1.103552 -2.90244,-1.172627 -4.0558,-1.481882 -1.41219,-0.420198 -3.8964,-2.894916 -3.5025,0.03341 -0.60562,1.192982 0.31151,5.203671 -1.4377,4.28052 -1.58183,-0.849857 -3.68447,-2.113891 -5.18058,-0.378679 -1.61892,1.082213 -3.23783,2.164425 -4.85676,3.246637 -0.9783,-3.377623 -1.95211,-6.756554 -2.93333,-10.133333 -1.34602,3.127884 -2.66477,6.267483 -4,9.4 -2.92222,0.288888 -5.84445,0.577778 -8.76667,0.866667 -0.20184,-2.166309 0.27133,-4.341771 1.77562,-5.878158 3.25057,-5.211552 8.66632,-8.395371 13.54451,-11.865011 0.95273,-0.564092 1.80847,-0.493262 2.84654,-0.223498 z m -8.63333,43.566666 c 2.34366,0.607254 4.78296,0.727797 7.16666,1.133334 -0.90625,1.084587 -3.14277,-0.32439 -4.56523,-0.371058 -1.8583,-0.406252 -3.7163,-0.80007 -5.4681,-1.562276 0.95555,0.266667 1.91111,0.533334 2.86667,0.8 z m 38.86666,5.4 c -2.15488,0.501536 -5.22675,0.793815 -5.5,3.566667 0.70833,1.029809 2.96093,1.412478 4.40801,1.688268 2.27503,0.363118 5.38493,1.181831 6.97878,-0.937576 1.36135,-1.898234 -0.67459,-4.313995 -2.78769,-4.178768 -1.02575,-0.350017 -2.04343,-0.268702 -3.0991,-0.138591 z m -51.03333,5.9 c -1.57612,1.085018 -3.71575,2.720281 -3.03333,4.9 1.61184,2.339234 4.94529,1.683368 6.78753,-0.0057 1.2184,-0.692559 3.25469,-2.021692 2.31247,-3.560997 -1.93436,-0.840999 -3.87915,-2.117169 -6.06667,-1.333334 z m 44.36667,0.333334 c -1.34895,0.891833 -1.89168,2.759628 -0.95675,4.109348 0.71622,1.795233 3.11379,1.982508 4.57991,1.004604 1.95986,-0.600235 1.10016,-3.109938 -0.33003,-3.844913 -0.72045,-0.899439 -2.36482,-1.335642 -3.29313,-1.269039 z"
+ style="fill:url(#linearGradient39368);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path1286"
+ d="m 146.23333,12.866667 c -3.88385,1.702193 -6.61189,5.324961 -9.67052,8.210746 -7.86956,8.018198 -15.90416,15.90198 -23.69161,23.983409 -1.11331,1.428597 -1.72615,3.060044 -2.00453,4.839178 4.36,3.072638 10.04495,3.23545 14.7573,5.603266 1.5625,0.15548 3.26141,1.73801 1.81635,3.072207 -1.86501,1.91956 -5.15011,2.084779 -6.70699,4.291194 4.05269,2.923397 9.10625,3.602288 13.58014,5.613093 1.52915,1.119169 4.28812,1.21833 4.3532,3.553573 -0.41298,2.06712 -2.47344,3.267809 -3.36667,5.133334 1.94434,2.744072 5.94438,1.261888 8.50547,3.040805 1.3908,0.857738 1.00828,2.693049 1.62108,3.831047 3.2048,2.344549 7.71164,1.319869 10.94656,-0.558135 1.04365,-0.353733 3.89943,-1.626855 1.76272,-2.556043 -1.55651,-0.349067 -2.86028,-2.213166 -1.35103,-3.402938 3.84858,-2.931245 9.10998,-3.601158 12.55258,-7.214396 1.79927,-1.361045 -1.31628,-2.560541 -2.24828,-3.336495 -1.41778,-1.044797 -3.86698,-2.048091 -3.55577,-4.137179 2.35965,-3.274836 6.88107,-2.833411 10.31383,-4.263585 3.90311,-0.957377 7.67689,-2.630842 11.10878,-4.611597 2.18816,-1.940094 1.07405,-5.046756 0.32835,-7.371909 -3.93266,-5.513287 -9.35396,-9.75581 -13.9708,-14.686024 -5.91778,-5.783657 -11.65452,-11.813723 -17.68454,-17.444607 -2.14828,-1.370565 -4.63208,-2.556154 -7.20805,-1.62333 z m 2.3,2.233333 c 5.45973,2.578599 9.80753,6.890051 14.73244,10.347527 1.85084,1.664819 5.00363,2.778901 4.9009,5.71914 -1.78479,0.428996 -3.34725,-1.396857 -5.04898,-1.86837 -1.54021,-0.520034 -4.1213,-2.963549 -3.68846,0.16232 -0.54825,1.127161 0.22527,4.775461 -1.23798,4.170178 -1.53672,-0.653008 -3.2567,-1.905943 -4.87859,-1.758173 -2.31413,1.577535 -4.63724,3.142054 -6.94599,4.727378 -0.87266,-2.83558 -1.68407,-5.690403 -2.53334,-8.533333 -1.12707,2.260756 -1.98302,4.959333 -3.26666,6.966666 -3.47777,0.344565 -6.95563,0.688221 -10.43334,1.033334 0.0287,-2.531437 -0.43925,-5.398577 1.54821,-7.372648 3.13073,-5.303181 8.62883,-8.494145 13.35179,-12.127352 1.15867,-0.426692 2.35212,-1.253526 3.5,-1.466667 z m -13.76666,42.4 c 4.77393,1.272573 9.58904,2.318786 14.5,2.9 0.93608,1.872033 -0.34236,3.482335 -2.33168,2.565935 -3.62332,-0.734316 -7.25018,-1.727438 -10.80166,-2.699268 -0.26564,-0.514085 -3.09159,-3.378118 -1.36666,-2.766667 z m 45.16666,9.433333 c -1.51493,0.422114 -3.72691,0.290818 -4.26666,2.133334 2.90995,0.556827 6.05202,2.002088 8.9,0.466666 0.978,-1.977585 -1.92783,-2.538134 -3.31385,-2.645499 -0.43983,0.01517 -0.87966,0.03034 -1.31949,0.0455 z m -50.9,5.866667 c -1.16024,0.90047 -3.46737,3.083937 -1.02728,3.858837 2.25255,0.543858 3.96147,-1.380385 5.62728,-2.558837 -1.18522,-1.161836 -2.98479,-1.601218 -4.6,-1.3 z m 44.03334,0.733333 c -1.04902,2.027564 1.90687,4.021482 3.28133,2.230908 0.70415,-1.13156 -2.36473,-3.118333 -3.28133,-2.230908 z"
+ style="fill:url(#linearGradient39370);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path1295"
+ d="m 146.66667,13.4 c -6.33172,3.543401 -10.68888,9.547281 -15.90063,14.447274 -5.8861,6.073656 -12.00588,11.974663 -17.74737,18.155152 -0.7305,1.178656 -2.18908,3.828459 -0.0714,4.248788 4.9013,2.576465 10.86092,2.972757 15.3194,6.215453 1.00861,2.475215 -2.05916,3.484953 -3.70454,4.477414 -1.7373,0.545523 -3.75405,2.175563 -0.84454,2.774326 4.83335,2.60598 10.58594,3.28132 15.01575,6.64826 1.43136,2.33294 -1.26292,4.394234 -2.23809,6.238069 0.0119,1.908953 2.8242,1.486185 4.14874,2.002826 2.29679,0.177914 4.75661,1.464231 4.98406,3.992952 0.7695,2.00242 3.5144,2.068656 5.37195,2.066153 2.47607,-0.312856 4.61313,-1.6278 6.86667,-2.6 -0.11425,-1.550102 -2.69456,-1.700315 -2.36667,-3.6 1.99363,-3.193298 6.06476,-3.869656 9.11608,-5.707796 1.73236,-0.750835 3.28599,-1.893245 4.45059,-3.392204 -1.92497,-2.280272 -5.74204,-3.012313 -6.11314,-6.406102 0.39022,-1.188208 2.2736,-2.314015 3.60639,-2.891301 5.6785,-2.143002 11.88985,-2.970298 17.10185,-6.270592 2.74324,-1.108432 1.83527,-4.538836 1.0317,-6.686009 -2.29624,-3.22589 -5.40132,-6.000174 -8.00828,-9.052576 -2.68656,-2.760044 -5.48876,-5.408427 -8.21852,-8.126754 1.12365,1.634362 -0.99109,2.422313 -2.21269,1.401868 -2.03118,-0.886068 -4.05629,-1.760173 -6.12064,-2.568534 C 160.05314,30.54272 159.67649,32.269964 159.3,34 c -2.55377,0.684822 -5.03322,-2.683187 -7.35336,-0.501311 -1.91379,1.060257 -3.40719,2.847058 -5.45058,3.513153 -1.46281,-0.265507 -1.26699,-3.243895 -2.01992,-4.618246 -0.44179,-3.083731 -1.2118,-2.404985 -2.14312,0.123134 -0.85365,1.59882 -1.21984,3.834303 -3.53335,3.298267 -3.08878,0.306225 -6.17762,0.611598 -9.26633,0.918336 0.0202,-3.177717 -0.28551,-6.766 2.22768,-9.171123 3.51639,-4.960964 8.70856,-8.341185 13.55479,-11.782731 1.62219,-0.752906 3.63701,-1.872712 5.13828,-0.273654 3.97373,2.727514 8.02021,5.285521 11.74591,8.327508 -3.19568,-3.018643 -6.19482,-6.317986 -9.51099,-9.164539 -1.87897,-0.938934 -3.8675,-2.092901 -6.02238,-1.268794 z m -11.83334,43.5 c 5.00075,0.984495 9.99566,2.003225 15,2.966667 0.20732,1.45664 0.46427,3.886308 -1.67313,3.831478 -4.16789,-0.795987 -8.38205,-1.956384 -12.49353,-3.031478 -0.61549,-0.980519 -2.50897,-2.472939 -1.9,-3.466667 0.35063,-0.05103 0.72399,-0.354699 1.06666,-0.3 z m 42.8,11.166667 c -1.73875,1.086025 2.33789,1.138186 3.27372,1.439238 1.30579,0.375237 4.48185,-0.551342 2.02628,-1.672572 -1.83243,-0.401834 -3.50784,-0.360679 -5.3,0.233334 z M 128.86667,73.8 c -2.17346,1.397366 -0.18414,3.053084 1.5865,1.699463 2.04828,-0.249261 2.08866,-2.343116 -0.17211,-2.051831 -0.54677,-0.07524 -0.99718,-0.0549 -1.41439,0.352368 z m 44.76666,1.133333 c 2.4133,2.30436 1.83777,-1.778179 0,-0.492892 0,0.102368 0,0.430964 0,0.492892 z"
+ style="fill:url(#linearGradient39372);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path1300"
+ d="m 146.4,11 c -2.85517,0.532698 -4.88261,2.920832 -7.04143,4.696624 -9.46036,9.318687 -18.69953,18.903094 -28.02524,28.336709 -1.28513,2.140689 -2.02923,4.453081 -2.46666,6.9 4.02374,2.003945 8.08967,3.86007 12.47179,4.935568 1.05804,0.665393 4.69014,0.890135 3.49487,2.397766 -2.29866,1.221998 -5.17006,2.048868 -6.16666,4.733333 1.94556,3.411999 6.27529,3.61226 9.48467,5.236915 2.69399,1.065471 5.388,2.130945 8.08199,3.196418 0.0835,2.815831 -0.6308,1.873266 -2.05017,0.611648 -2.17089,-1.1027 -5.39205,-2.114404 -7.09766,0.274746 -1.55046,0.944625 -2.75719,3.349765 -1.57432,4.866099 2.21286,2.398176 6.00771,1.27668 8.06067,-0.779037 0.17795,-0.191378 -0.29693,2.877758 1.42073,3.193938 2.34275,1.346613 5.33929,0.970157 7.67409,2.299273 0.45283,1.979683 1.2508,4.221333 3.5739,4.531638 3.66844,1.48315 7.80683,0.39212 11.09794,-1.541311 1.39792,-0.760174 4.07797,-1.323747 3.46357,-3.423687 -0.0478,-1.38074 -3.42818,-2.212653 -1.53541,-3.499973 4.53006,-2.016167 9.17312,-4.142848 12.66666,-7.733334 0.85723,-2.253596 -2.25712,-3.193724 -3.46666,-4.566666 -1.4517,-1.221069 -3.87877,-2.524433 -0.81856,-3.364818 5.62839,-2.111859 11.87228,-2.940184 17.03456,-6.263438 2.72995,-0.86584 3.85371,-3.957742 3.06767,-6.564064 -0.0255,-2.62475 -1.76154,-4.797622 -3.22224,-6.835657 C 179.45289,36.856816 173.58197,31.828345 168.24204,26.291461 163.60188,21.818095 159.14228,17.065484 154.39198,12.762657 151.99166,11.220691 149.22884,10.717147 146.4,11 Z m 3.36667,6.733333 c 4.24058,2.976224 8.38139,6.129328 12.6,9.166667 -1.29937,-0.797366 -2.67486,-1.290978 -4.2,-1.4 -0.21287,1.824575 -0.47054,3.643999 -0.7,5.466667 -1.97534,-0.587625 -4.21204,-1.778592 -5.97773,-0.09263 -1.30676,0.402533 -3.52226,3.290581 -4.25972,2.135968 -0.99915,-3.447628 -1.99405,-6.896491 -2.99589,-10.343339 -1.52265,3.539479 -3.02044,7.089652 -4.53333,10.633333 -2.56667,0.255555 -5.13333,0.511111 -7.7,0.766667 -0.0148,-3.662276 2.83591,-6.395601 5.07235,-8.959274 3.30461,-2.837611 6.75708,-5.60858 10.52338,-7.756865 0.7316,-0.360909 1.44586,0.250944 2.17094,0.382806 z m 26.36666,48.333334 C 174.87994,66.86218 172.84987,68.441375 174.2,70 c 2.62772,1.71982 5.90645,1.835937 8.93343,1.934762 2.25075,-0.06272 4.4688,-2.726652 2.93663,-4.770688 -1.42803,-2.456455 -4.67977,-1.908377 -7.06627,-1.883005 -0.95681,0.261868 -1.91364,0.523732 -2.87046,0.785598 z m -3.3,5.433333 c -1.27562,1.033534 -1.85687,2.841465 -1.35231,4.508785 0.43077,1.899535 2.6256,2.385569 4.29198,1.849858 2.50838,0.201444 3.52565,-3.378484 1.43654,-4.628378 -1.24197,-1.050288 -2.64377,-2.095016 -4.37621,-1.730265 z"
+ style="fill:url(#linearGradient39374);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path1304"
+ d="m 146,10.2 c -5.57009,2.353735 -9.31153,7.276932 -13.56394,11.364379 -7.26121,7.360863 -14.57305,14.685571 -21.80273,22.068954 -0.92375,2.588329 -1.83526,5.181133 -2.76666,7.766667 5.12606,2.235525 10.28103,4.361596 15.6,6.1 -0.32712,1.554459 -2.93579,1.371077 -3.74338,2.860476 -1.43416,0.914482 -2.37188,3.411157 -0.36803,4.245199 3.1673,2.975582 7.51398,4.048213 11.44474,5.660992 -3.09041,-0.89746 -5.13867,2.363507 -6.33333,4.666666 -0.72155,2.880448 2.58866,4.694489 5.06851,4.276737 1.54135,0.553684 3.66,-2.522746 3.86807,-0.13866 2.29497,2.607941 6.70581,1.993255 9.10076,4.436609 0.7749,2.147771 2.55461,3.943898 4.94541,3.965707 2.15881,0.621481 4.27216,0.328386 6.35476,-0.418515 2.43249,-0.54992 4.74804,-1.764623 6.87594,-2.976017 1.61013,-1.140622 1.25617,-3.709454 -0.21345,-4.812527 -0.21701,-1.714746 2.45466,-1.738353 3.54015,-2.659077 2.92458,-1.339302 5.49291,-3.216603 7.95985,-5.240923 -1.09048,1.568168 -1.50221,3.637034 -0.89348,5.420276 1.02957,2.431889 4.09705,1.779572 6.16014,1.64639 C 179.29546,77.451445 180.09314,74.273508 178,72.9 c -3.03927,-1.879702 -0.42819,-1.002977 1.49692,-0.460891 2.38484,0.141742 5.36949,0.891675 6.99369,-1.418947 1.80089,-1.737129 0.66941,-4.475043 -1.05728,-5.820162 -2.14881,-1.14371 -4.72742,-0.810973 -7.057,-0.699886 -2.09119,0.370608 -3.67839,1.613047 -4.97633,3.233219 -1.58756,1.272788 1.82748,3.61782 -0.0532,3.147933 -1.36163,0.234395 0.30799,-2.483632 -1.32358,-3.36862 -1.06348,-1.560896 -2.85826,-2.534055 -4.1899,-3.879313 6.43141,-3.110773 13.94477,-3.952924 19.7,-8.433333 2.10991,-2.5028 1.15052,-5.815831 0.53333,-8.666667 C 184.23156,39.549156 177.84192,34.54079 172.35319,28.898191 166.50884,23.205036 160.69939,17.462459 154.83333,11.8 152.27799,10.77259 149.66457,10.063772 146.88646,10.206305 146.60075,10.233991 146.27214,10.101959 146,10.2 Z m 7.6,11.266667 c 1.51374,1.165288 3.04586,2.309495 4.56667,3.466666 -1.39718,1.06872 -0.90296,3.127104 -1.4,4.633334 -2.08576,-0.566112 -4.35694,-0.641822 -6.05767,0.905733 -1.05102,0.888519 -3.01815,1.872214 -3.17799,-0.196242 -0.93874,-3.234383 -1.83,-6.48501 -2.79768,-9.709491 1.63294,-0.494373 3.30094,-3.132711 4.90134,-1.63781 1.32178,0.845937 2.64355,1.691873 3.96533,2.53781 z m -14.36667,10.966666 c -1.96666,0.2 -3.93333,0.4 -5.9,0.6 0.75323,-3.751583 3.85837,-6.37712 6.49928,-8.892012 1.44608,-1.049755 2.80293,-2.240606 4.30072,-3.207988 -1.63333,3.833334 -3.26666,7.666667 -4.9,11.5 z"
+ style="fill:url(#linearGradient39376);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ inkscape:connector-curvature="0" />
+ </g>
+ <path
+ sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccc"
+ id="path1217"
+ d="m 80.606138,21.093974 c -3.986404,2e-6 -7.999981,1.500815 -11.054664,4.555494 L 15.31073,79.950952 c -2.994002,2.993929 -4.556718,6.904836 -4.616235,10.811705 -8.35e-4,0.06557 0,0.177392 0,0.24296 h 0.12148 c 1.039149,3.953694 27.860205,8.970154 30.855878,11.965763 4.524006,4.52404 -17.340071,7.86688 -12.816122,12.39094 4.523986,4.52399 27.364021,8.71724 31.888455,13.2413 4.524026,4.52402 -9.261778,9.3247 -4.737714,13.8487 4.524006,4.52407 19.69882,-1.11018 16.946437,10.69023 6.109347,6.10935 18.859073,3.19383 27.393701,-2.91552 4.52401,-4.524 -8.654358,-4.10106 -4.130314,-8.62506 4.524004,-4.52406 15.949294,-4.54533 25.571504,-15.3672 -3.87306,-6.02355 -16.55055,-8.59578 -12.0265,-13.11982 4.524,-4.524 13.27486,-2.25385 32.25288,-10.87245 9.26429,-4.207497 8.53905,-7.362324 8.50359,-11.236883 -7.4e-4,-0.08153 0,-0.160805 0,-0.24296 h -0.0608 c -0.0595,-3.906866 -1.56157,-7.817769 -4.55549,-10.811705 L 91.600063,25.649468 C 88.5454,22.594793 84.592543,21.093974 80.606138,21.093974 Z M 56.553132,105.76542 c 8.084647,2.09667 17.079247,4.81 24.295966,4.85919 l 0.3037,3.27996 c -6.179767,-0.63701 -19.269208,-3.64874 -22.352289,-5.22364 z m 84.246258,14.39535 c -1.23415,-0.0395 -2.40206,0.0842 -3.27996,0.3037 -1.65516,0.41359 -9.69592,0.60412 -9.05025,5.7703 7.10376,2.58184 18.08512,4.55915 19.37604,-0.6074 0.96897,-3.87387 -3.34345,-5.34795 -7.04583,-5.4666 z m -92.871326,10.50801 c -1.117595,-0.13024 -2.210972,0.008 -3.279956,0.54666 -4.274826,2.15631 -7.152149,6.94739 -3.158474,8.92877 3.99408,1.98139 6.824425,-0.27467 10.325785,-2.7333 3.501767,-2.45822 3.411658,-2.93897 3.158475,-3.88735 -0.484734,0.12928 -3.693025,-2.46403 -7.04583,-2.85478 z m 78.111516,0.85036 c -3.22891,1.29126 -3.19098,5.77708 -0.60739,7.71397 2.58293,1.93728 5.81565,0.68424 7.10657,-0.6074 1.29198,-1.29126 -0.042,-5.81528 -6.49918,-7.10657 z"
+ style="fill:url(#linearGradient1322);fill-rule:evenodd;stroke-width:1.30175579pt"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
+ id="path1269"
+ d="m 11.977124,84.576671 c -0.883927,1.953959 -1.36513,4.04141 -1.397018,6.134731 -8.33e-4,0.06556 0,0.177399 0,0.24296 h 0.12148 c 0.994358,3.78327 25.07956,8.512878 29.823299,11.540588 2.091809,-1.24429 3.465756,-2.547484 2.065157,-3.948099 C 39.594368,95.551236 12.773315,90.53478 11.734165,86.581087 h -0.12148 c 0,-0.06558 -8.33e-4,-0.177399 0,-0.242958 0.0091,-0.601939 0.284168,-1.162709 0.364439,-1.761458 z M 150.34262,92.47286 c -1.0612,1.680115 -3.10061,3.387829 -7.41026,5.345111 -18.97801,8.618589 -27.72886,6.348449 -32.25287,10.872439 -1.37053,1.37052 -0.88153,2.54264 0.18222,3.70513 4.78924,-3.38639 13.4115,-2.19944 31.03808,-10.20429 8.00504,-3.635614 8.46503,-6.511246 8.44283,-9.71839 z m -92.871299,8.86803 2.247377,2.9155 c 3.08308,1.57491 16.17252,4.58665 22.352289,5.22364 l -0.303699,-3.27996 c -7.216719,-0.0492 -16.21132,-2.7625 -24.295967,-4.85918 z M 30.685018,111.4237 c -2.022925,1.2244 -3.320206,2.51079 -1.943676,3.88736 4.523988,4.52399 27.364021,8.71723 31.888455,13.2413 0.198962,0.19895 0.17245,0.40741 0.3037,0.6074 1.405197,-1.67236 2.355425,-3.35413 0.728879,-4.98067 -4.359755,-4.3594 -25.379991,-8.41841 -30.977358,-12.75539 z m 100.220842,10.75097 c -1.55381,0.80713 -2.80902,1.9449 -2.55108,4.00882 7.10375,2.58184 18.08511,4.55915 19.37603,-0.60738 0.25122,-1.00435 0.11312,-1.85114 -0.24296,-2.55108 -3.06888,2.47706 -10.66085,1.09402 -16.58199,-0.85036 z m -11.17612,2.18664 c -8.90094,7.91694 -18.52655,8.74738 -22.595255,12.81612 -1.63664,1.63663 -0.713263,2.53048 0.6074,3.34069 5.191475,-3.47749 15.190165,-4.50342 23.931535,-14.33463 -0.44804,-0.69679 -1.30027,-1.20938 -1.94368,-1.82218 z m 5.0414,8.01767 c -1.86829,1.81567 -1.62997,5.17107 0.54666,6.80287 2.58292,1.93727 5.81565,0.68422 7.10656,-0.6074 0.66392,-0.66356 0.57592,-2.15087 -0.48592,-3.6444 -1.57518,0.81115 -3.6457,1.33536 -5.58806,-0.12148 -0.82081,-0.61535 -1.29544,-1.48388 -1.57924,-2.42959 z m -71.612353,0.24296 c -0.216533,0.15768 -0.17254,0.18708 -0.42518,0.36444 -3.501359,2.45861 -6.331704,4.7147 -10.325785,2.73329 -0.835138,-0.41433 -1.173493,-1.0297 -1.457758,-1.63998 -1.775949,2.19005 -2.210285,4.70572 0.425179,6.01325 3.994085,1.98138 6.824427,-0.27468 10.325787,-2.73329 3.50177,-2.45823 3.411658,-2.93899 3.158475,-3.88735 -0.166315,0.0444 -0.997334,-0.45265 -1.700718,-0.85036 z m 3.462175,4.79845 c -1.405193,1.67235 -2.355439,3.35411 -0.728879,4.98066 4.524009,4.52407 19.69882,-1.11019 16.946437,10.69022 6.109348,6.10935 18.859078,3.19384 27.39371,-2.91551 1.66654,-1.66656 0.69997,-2.58291 -0.668148,-3.40144 -8.458362,5.3473 -19.957869,7.67884 -25.692984,1.94368 2.752384,-11.8004 -12.422431,-6.16613 -16.946436,-10.69021 -0.198964,-0.19896 -0.172449,-0.40742 -0.3037,-0.6074 z"
+ style="fill:url(#linearGradient1231);fill-rule:evenodd;stroke-width:1.30175579pt"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccccc"
+ id="path1271"
+ d="m 107.57531,47.365247 32.87711,35.325423 c 0,0 9.7932,10.492701 2.09856,14.68978 -7.69466,4.19708 -31.12834,10.4927 -31.12834,10.4927 L 68.830422,46.540402 Z"
+ style="fill:url(#linearGradient1272);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.30175579pt"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccccc"
+ id="path1276"
+ d="M 56.944037,42.006087 26.165461,77.3315 c 0,0 -11.891721,10.4927 -4.197076,14.689777 7.694644,4.197078 58.409343,21.335153 94.084505,15.039533 L 75.13138,45.853409 Z"
+ style="fill:url(#linearGradient1277);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.49509335pt"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccccczz"
+ id="path1317"
+ d="m 82.042498,27.12255 c 4.504479,0.03329 23.422692,18.434639 28.837322,22.230809 5.41464,3.796171 4.14478,6.285951 4.14478,6.523269 L 99.839631,48.527099 98.321133,60.006943 89.939024,56.058848 77.062155,64.683915 72.081482,47.67674 65.76453,62.558018 47.967732,64.319476 48.149952,56.423287 74.438456,30.540688 c 1.907291,-1.877842 3.182156,-3.451427 7.604042,-3.418138 z"
+ style="fill:url(#linearGradient1318);fill-rule:evenodd;stroke-width:1.30175579pt"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+ <g
+ inkscape:label="Title"
+ id="layer2"
+ inkscape:groupmode="layer">
+ <text
+ id="text48"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:51.20000076px;line-height:100%;font-family:Arial;writing-mode:lr-tb;text-anchor:start;display:block;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ y="74.666664"
+ x="48">
+ <tspan
+ id="tspan1"
+ sodipodi:role="line"
+ y="74.666664"
+ x="48"
+ style="stroke-width:3.20000017pt">Future main()</tspan>
+ </text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:120.00000477%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="68.004684"
+ y="204.63853"
+ id="text74"><tspan
+ id="tspan46"
+ sodipodi:role="line"
+ y="204.63853"
+ x="68.004684"
+ style="stroke-width:1.06666669pt">int main(int argc, char *argv[])</tspan><tspan
+ id="tspan47"
+ sodipodi:role="line"
+ y="235.35854"
+ x="68.004684"
+ style="stroke-width:1.06666669pt">{</tspan><tspan
+ id="tspan48"
+ sodipodi:role="line"
+ y="266.07855"
+ x="68.004684"
+ style="stroke-width:1.06666669pt"> Inkscape::Application app(argc, argv);</tspan><tspan
+ id="tspan49"
+ sodipodi:role="line"
+ y="296.79855"
+ x="68.004684"
+ style="stroke-width:1.06666669pt" /><tspan
+ id="tspan50"
+ sodipodi:role="line"
+ y="327.51855"
+ x="68.004684"
+ style="stroke-width:1.06666669pt"> return app.run();</tspan><tspan
+ id="tspan51"
+ sodipodi:role="line"
+ y="358.23856"
+ x="68.004684"
+ style="stroke-width:1.06666669pt">}</tspan><tspan
+ id="tspan52"
+ sodipodi:role="line"
+ y="388.95856"
+ x="68.004684"
+ style="stroke-width:1.06666669pt" /><tspan
+ id="tspan53"
+ sodipodi:role="line"
+ y="419.67856"
+ x="68.004684"
+ style="stroke-width:1.06666669pt" /><tspan
+ id="tspan54"
+ sodipodi:role="line"
+ y="450.39856"
+ x="68.004684"
+ style="stroke-width:1.06666669pt">* All logic moved inside Inkscape::Application</tspan><tspan
+ id="tspan55"
+ sodipodi:role="line"
+ y="481.11856"
+ x="68.004684"
+ style="stroke-width:1.06666669pt"> + popt, homedir path detection, prefs, extensions, etc.</tspan><tspan
+ id="tspan56"
+ sodipodi:role="line"
+ y="511.83856"
+ x="68.004684"
+ style="stroke-width:1.06666669pt"> + Run mode handling</tspan><tspan
+ id="tspan57"
+ sodipodi:role="line"
+ y="542.55853"
+ x="68.004684"
+ style="stroke-width:1.06666669pt" /><tspan
+ id="tspan58"
+ sodipodi:role="line"
+ y="573.27856"
+ x="68.004684"
+ style="stroke-width:1.06666669pt">* Could also include a definition of WinMain here if needed</tspan></text>
+ </g>
+ <g
+ inkscape:label="Drawing Area"
+ id="layer3"
+ inkscape:groupmode="layer" />
+</svg>
diff --git a/doc/NewAppArchitecture/11-future-ink-app.svg b/doc/NewAppArchitecture/11-future-ink-app.svg
new file mode 100644
index 0000000..4ec02fe
--- /dev/null
+++ b/doc/NewAppArchitecture/11-future-ink-app.svg
@@ -0,0 +1,614 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg586"
+ sodipodi:version="0.32"
+ inkscape:version="0.92.0 r15304"
+ width="640pt"
+ height="480pt"
+ sodipodi:docname="11-future-ink-app.svg"
+ version="1.1">
+ <defs
+ id="defs588">
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker396"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path397"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker394"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path395"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker391"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path392"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker319"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path320"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="TriangleOutL"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path224"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <linearGradient
+ id="linearGradient2570">
+ <stop
+ style="stop-color:#000000;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop2571" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.62745100;"
+ offset="0.58504134"
+ id="stop2572" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop2573" />
+ </linearGradient>
+ <linearGradient
+ xlink:href="#linearGradient1218"
+ id="linearGradient1322"
+ x1="77.599106"
+ y1="20.687101"
+ x2="53.030737"
+ y2="114.57422"
+ gradientTransform="matrix(1.3228549,0,0,1.2809931,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1273"
+ id="linearGradient1318"
+ x1="59.491886"
+ y1="30.563196"
+ x2="33.266399"
+ y2="58.199241"
+ gradientTransform="matrix(1.7409899,0,0,0.97333594,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1307"
+ x1="0.45376351"
+ y1="1.9347328"
+ x2="0.41986585"
+ y2="0.12454049"
+ gradientTransform="scale(1.004208,0.995809)" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1306"
+ x1="0.45009527"
+ y1="1.9667202"
+ x2="0.41548476"
+ y2="0.11846013"
+ gradientTransform="scale(1.006361,0.993679)" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1305"
+ x1="0.45839140"
+ y1="1.8676205"
+ x2="0.42603236"
+ y2="0.13959341"
+ gradientTransform="scale(1.002016,0.997989)" />
+ <linearGradient
+ xlink:href="#linearGradient1273"
+ id="linearGradient1277"
+ x1="11.967844"
+ y1="119.11808"
+ x2="51.413385"
+ y2="80.482086"
+ gradientTransform="matrix(1.8036348,0,0,1.2393329,-37.611189,-4.4599008)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1273"
+ id="linearGradient1272"
+ x1="118.66497"
+ y1="45.70058"
+ x2="90.28563"
+ y2="62.493129"
+ gradientTransform="matrix(1.4554449,0,0,1.1642956,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1270" />
+ <linearGradient
+ xlink:href="#linearGradient1323"
+ id="linearGradient1231"
+ x1="17.696665"
+ y1="120.74315"
+ x2="94.698939"
+ y2="120.74315"
+ gradientTransform="matrix(1.8150579,0,0,0.9336165,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1221"
+ x1="27.318817"
+ y1="170.27164"
+ x2="130.70353"
+ y2="28.120696"
+ gradientTransform="scale(1.0211162,0.97932047)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient1218">
+ <stop
+ style="stop-color:#000000;stop-opacity:1.0000000;"
+ offset="0.00000000"
+ id="stop1219" />
+ <stop
+ style="stop-color:#323232;stop-opacity:1.0000000;"
+ offset="0.073255815"
+ id="stop1321" />
+ <stop
+ style="stop-color:#000000;stop-opacity:1.0000000;"
+ offset="0.65260679"
+ id="stop1320" />
+ <stop
+ style="stop-color:#fff;stop-opacity:1;"
+ offset="1"
+ id="stop1220" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1222">
+ <stop
+ style="stop-color:#0081ac;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop1223" />
+ <stop
+ style="stop-color:#006d91;stop-opacity:0.62745100;"
+ offset="0.50000000"
+ id="stop1722" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop1224" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1273">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1.0000000;"
+ offset="0.00000000"
+ id="stop1274" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.00000000;"
+ offset="1.0000000"
+ id="stop1275" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1323">
+ <stop
+ style="stop-color:#000000;stop-opacity:0.77685952;"
+ offset="0.00000000"
+ id="stop1324" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.00000000;"
+ offset="1.0000000"
+ id="stop1325" />
+ </linearGradient>
+ <radialGradient
+ xlink:href="#linearGradient826"
+ id="radialGradient829"
+ cx="296.2963"
+ cy="281.25"
+ r="248.40302"
+ fx="303.7037"
+ fy="93.75"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.29936853,0,0,0.15858773,4.3548661,98.117152)" />
+ <linearGradient
+ id="linearGradient826">
+ <stop
+ style="stop-color:#000000;stop-opacity:0.95294118;"
+ offset="0.00000000"
+ id="stop827" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.76078433;"
+ offset="0.36585677"
+ id="stop830" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.52941179;"
+ offset="0.47107276"
+ id="stop847" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.00000000;"
+ offset="1.0000000"
+ id="stop828" />
+ </linearGradient>
+ <linearGradient
+ xlink:href="#linearGradient909"
+ id="linearGradient907"
+ x1="0.50000000"
+ y1="0.66667551"
+ x2="0.50000000"
+ y2="-1.7333326" />
+ <linearGradient
+ id="linearGradient909">
+ <stop
+ style="stop-color:#000000;stop-opacity:0.00000000;"
+ offset="0.00000000"
+ id="stop910" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.17000000;"
+ offset="1.0000000"
+ id="stop913" />
+ </linearGradient>
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1309"
+ gradientTransform="scale(2.8444445,0.4)"
+ x1="0"
+ y1="4.7369516e-15"
+ x2="300"
+ y2="4.7369516e-15"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient2570"
+ id="linearGradient1308"
+ x1="-0.0028122679"
+ y1="1365.4825"
+ x2="64.30938"
+ y2="1365.4825"
+ gradientTransform="scale(13.227991,0.0860129)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient826"
+ id="radialGradient39622"
+ cx="296.2963"
+ cy="281.25"
+ fx="303.7037"
+ fy="93.75"
+ r="248.40302"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4203424,0,0,0.08699077,-33.810677,100.89451)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient39624"
+ x1="33.344169"
+ y1="164.17808"
+ x2="131.82116"
+ y2="28.775105"
+ gradientTransform="scale(1.0839555,1.0496536)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient39626"
+ x1="31.731446"
+ y1="165.85049"
+ x2="131.57971"
+ y2="28.562063"
+ gradientTransform="scale(1.0848907,1.0487488)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient39628"
+ x1="35.171777"
+ y1="162.0032"
+ x2="131.8238"
+ y2="29.109513"
+ gradientTransform="scale(1.0846262,1.0490045)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient39630"
+ x1="37.676606"
+ y1="159.47478"
+ x2="132.33793"
+ y2="29.318235"
+ gradientTransform="scale(1.0823063,1.051253)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient39632"
+ x1="29.920773"
+ y1="167.66146"
+ x2="131.16846"
+ y2="28.448861"
+ gradientTransform="scale(1.0869998,1.0467139)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient39634"
+ x1="27.318817"
+ y1="170.27164"
+ x2="130.70353"
+ y2="28.120696"
+ gradientTransform="scale(1.0891906,1.0446085)"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.940625"
+ inkscape:cx="426.66667"
+ inkscape:cy="320"
+ inkscape:window-width="968"
+ inkscape:window-height="821"
+ inkscape:window-x="291"
+ inkscape:window-y="25"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:current-layer="layer2"
+ showgrid="false"
+ inkscape:window-maximized="0" />
+ <metadata
+ id="metadata33">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer1"
+ inkscape:label="Background"
+ style="display:block">
+ <rect
+ style="font-size:12px;fill:url(#linearGradient1309);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.20000017pt"
+ id="topbluebox"
+ width="853.33331"
+ height="120"
+ x="0"
+ y="1.8947807e-15" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient1308);stroke-width:5.31674433;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M -0.03652902,117.55657 850.68323,117.34163"
+ id="path654"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0" />
+ <g
+ id="g1085"
+ transform="translate(689.36448,-10.40511)">
+ <g
+ id="g1394"
+ transform="matrix(0.875802,0,0,0.869278,1.1184885,-8.4967275)">
+ <ellipse
+ id="path898"
+ style="opacity:0.69398911;fill:url(#radialGradient39622);stroke-width:0.84729707;stroke-dashoffset:0"
+ cx="92.292046"
+ cy="126.99174"
+ rx="126.10272"
+ ry="26.097233" />
+ <ellipse
+ id="ball1"
+ style="fill:url(#radialGradient829);stroke-width:0.96546245;stroke-dashoffset:0"
+ cx="94.165428"
+ cy="145.69347"
+ rx="89.810562"
+ ry="47.576321" />
+ </g>
+ <g
+ id="g1310"
+ transform="matrix(1.822197,0,0,1.662749,-192.00875,13.084299)"
+ style="fill:url(#linearGradient1221)">
+ <path
+ style="fill:url(#linearGradient39624);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 148.55614,11.815593 c -2.18769,1e-6 -4.39029,0.823628 -6.06667,2.5 l -29.76666,29.8 c -1.64308,1.643032 -2.50068,3.78929 -2.53334,5.933333 -4.6e-4,0.03598 0,0.09736 0,0.133333 h 0.0667 c 0.57027,2.16974 15.28934,4.922713 16.93333,6.566667 2.48272,2.482738 -9.51602,4.317248 -7.03333,6.8 2.48271,2.482709 15.01704,4.783915 17.5,7.266669 2.48273,2.48272 -5.08275,5.11728 -2.6,7.6 2.48272,2.482753 10.81047,-0.609259 9.3,5.866667 3.35273,3.352736 10.34963,1.752736 15.03333,-1.6 2.48272,-2.482721 -4.74941,-2.250614 -2.26666,-4.733334 2.48272,-2.482752 8.75277,-2.494421 14.03333,-8.433335 -2.12548,-3.305654 -9.08274,-4.717259 -6.6,-7.2 2.48272,-2.482715 7.28509,-1.236886 17.7,-5.966667 5.08413,-2.309024 4.68613,-4.040355 4.66667,-6.166667 -4.1e-4,-0.04475 0,-0.08825 0,-0.133333 h -0.0333 c -0.0326,-2.144041 -0.85698,-4.290298 -2.5,-5.933333 l -29.8,-29.8 c -1.67637,-1.67637 -3.84565,-2.5 -6.03334,-2.5 z m -0.26667,3.866666 c 0.97256,0.02533 1.75986,0.768324 3.3,1.766667 l 14.06667,10.433333 c 0.15408,0.09991 0.29855,0.192996 0.43333,0.3 0.1348,0.10699 0.28452,0.220015 0.4,0.333334 0.11548,0.113111 0.20364,0.248218 0.3,0.366666 0.0961,0.118429 0.18984,0.244093 0.26667,0.366667 0.077,0.122774 0.14229,0.240765 0.2,0.366667 0.0577,0.126131 0.0949,0.238188 0.13333,0.366666 0.0386,0.128282 0.0808,0.270352 0.1,0.4 0.0193,0.12988 0.0333,0.269763 0.0333,0.4 l -8.33333,-4.033333 -0.83334,6.3 -4.6,-2.166667 -7.06666,4.733334 -2.73334,-9.333334 -3.46666,8.166667 -9.76667,0.966667 0.1,-4.333334 c 0,-1.042224 5.64516,-8.329604 9.06666,-10.066666 l 6.26667,-4.5 c 0.92408,-0.599006 1.54979,-0.848535 2.13333,-0.833334 z m -12.93333,42.6 c 4.43676,1.15063 9.37288,2.639674 13.33333,2.666667 l 0.16667,1.8 c -3.39138,-0.349579 -10.57471,-2.002379 -12.26667,-2.866667 z m 46.23333,7.9 c -0.67728,-0.02171 -1.31822,0.0462 -1.8,0.166667 -0.90833,0.226965 -5.321,0.331531 -4.96666,3.166667 3.89845,1.416876 9.92489,2.502007 10.63333,-0.333334 0.53176,-2.12593 -1.83484,-2.93489 -3.86667,-3 z m -50.96666,5.766669 c -0.61333,-0.07148 -1.21336,0.0042 -1.8,0.3 -2.34598,1.183349 -3.92502,3.81264 -1.73334,4.9 2.19191,1.08736 3.74516,-0.150741 5.66667,-1.5 1.92173,-1.349045 1.87228,-1.612875 1.73333,-2.133333 -0.26601,0.07094 -2.02669,-1.352235 -3.86666,-1.566667 z m 42.86666,0.466667 c -1.77199,0.708629 -1.75118,3.170389 -0.33333,4.233333 1.41748,1.063157 3.19156,0.375499 3.9,-0.333333 0.70902,-0.70863 -0.023,-3.19136 -3.56667,-3.9 z"
+ id="path1278"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient39626);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 147.16667,11.433333 c -3.48238,0.364902 -5.88303,3.345755 -8.33158,5.570373 -8.94544,9.133798 -18.09349,18.101949 -26.95799,27.294024 -1.44334,1.84378 -2.03035,4.015468 -2.31043,6.30227 5.03542,3.678658 11.71157,3.699536 17.06666,6.766667 -1.50817,2.381747 -5.17846,2.289571 -6.84097,4.663825 -1.44519,0.973702 0.60698,2.569614 1.6838,2.93719 4.47582,2.259905 9.5207,3.127075 13.9674,5.505719 2.30619,0.164974 2.15073,2.483836 0.6201,3.623175 -1.21232,1.221254 -3.08705,3.249751 -1.23288,4.771441 2.26675,1.575369 5.27199,1.144095 7.80255,2.065316 1.77826,0.975122 0.51639,2.738136 1.73334,3.966667 3.05603,2.396513 7.28787,1.973693 10.69445,0.606201 1.75151,-0.515126 3.34201,-1.653286 4.87221,-2.539534 1.47613,-1.720326 -0.82595,-2.9513 -2.13333,-3.666667 -0.85913,-1.425274 2.00009,-1.997097 2.97462,-2.675578 3.73665,-1.514529 7.36553,-3.267329 10.23683,-6.143331 1.79011,-1.105032 -0.83882,-2.676851 -1.67812,-3.547758 -1.55141,-1.15048 -3.58938,-1.860548 -4.56666,-3.633333 2.52043,-2.7807 6.7319,-2.262194 9.98204,-3.687561 3.90317,-0.992642 7.61596,-2.729652 11.05532,-4.741974 2.26951,-1.69135 1.67257,-4.636557 1.22998,-7.021773 -1.61839,-5.025589 -6.41885,-8.01283 -9.81146,-11.814386 -7.61983,-7.514247 -15.1255,-15.17228 -22.81612,-22.597384 -2.05244,-1.578655 -4.64151,-2.423668 -7.23976,-2.003589 z M 149.5,16.766667 c 5.52064,4.046284 11.05387,8.077891 16.56667,12.133333 0.11539,1.103552 -2.90244,-1.172627 -4.0558,-1.481882 -1.41219,-0.420198 -3.8964,-2.894916 -3.5025,0.03341 -0.60562,1.192982 0.31151,5.203671 -1.4377,4.28052 -1.58183,-0.849857 -3.68447,-2.113891 -5.18058,-0.378679 -1.61892,1.082213 -3.23783,2.164425 -4.85676,3.246637 -0.9783,-3.377623 -1.95211,-6.756554 -2.93333,-10.133333 -1.34602,3.127884 -2.66477,6.267483 -4,9.4 -2.92222,0.288888 -5.84445,0.577778 -8.76667,0.866667 -0.20184,-2.166309 0.27133,-4.341771 1.77562,-5.878158 3.25057,-5.211552 8.66632,-8.395371 13.54451,-11.865011 0.95273,-0.564092 1.80847,-0.493262 2.84654,-0.223498 z m -8.63333,43.566666 c 2.34366,0.607254 4.78296,0.727797 7.16666,1.133334 -0.90625,1.084587 -3.14277,-0.32439 -4.56523,-0.371058 -1.8583,-0.406252 -3.7163,-0.80007 -5.4681,-1.562276 0.95555,0.266667 1.91111,0.533334 2.86667,0.8 z m 38.86666,5.4 c -2.15488,0.501536 -5.22675,0.793815 -5.5,3.566667 0.70833,1.029809 2.96093,1.412478 4.40801,1.688268 2.27503,0.363118 5.38493,1.181831 6.97878,-0.937576 1.36135,-1.898234 -0.67459,-4.313995 -2.78769,-4.178768 -1.02575,-0.350017 -2.04343,-0.268702 -3.0991,-0.138591 z m -51.03333,5.9 c -1.57612,1.085018 -3.71575,2.720281 -3.03333,4.9 1.61184,2.339234 4.94529,1.683368 6.78753,-0.0057 1.2184,-0.692559 3.25469,-2.021692 2.31247,-3.560997 -1.93436,-0.840999 -3.87915,-2.117169 -6.06667,-1.333334 z m 44.36667,0.333334 c -1.34895,0.891833 -1.89168,2.759628 -0.95675,4.109348 0.71622,1.795233 3.11379,1.982508 4.57991,1.004604 1.95986,-0.600235 1.10016,-3.109938 -0.33003,-3.844913 -0.72045,-0.899439 -2.36482,-1.335642 -3.29313,-1.269039 z"
+ id="path1283"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient39628);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 146.23333,12.866667 c -3.88385,1.702193 -6.61189,5.324961 -9.67052,8.210746 -7.86956,8.018198 -15.90416,15.90198 -23.69161,23.983409 -1.11331,1.428597 -1.72615,3.060044 -2.00453,4.839178 4.36,3.072638 10.04495,3.23545 14.7573,5.603266 1.5625,0.15548 3.26141,1.73801 1.81635,3.072207 -1.86501,1.91956 -5.15011,2.084779 -6.70699,4.291194 4.05269,2.923397 9.10625,3.602288 13.58014,5.613093 1.52915,1.119169 4.28812,1.21833 4.3532,3.553573 -0.41298,2.06712 -2.47344,3.267809 -3.36667,5.133334 1.94434,2.744072 5.94438,1.261888 8.50547,3.040805 1.3908,0.857738 1.00828,2.693049 1.62108,3.831047 3.2048,2.344549 7.71164,1.319869 10.94656,-0.558135 1.04365,-0.353733 3.89943,-1.626855 1.76272,-2.556043 -1.55651,-0.349067 -2.86028,-2.213166 -1.35103,-3.402938 3.84858,-2.931245 9.10998,-3.601158 12.55258,-7.214396 1.79927,-1.361045 -1.31628,-2.560541 -2.24828,-3.336495 -1.41778,-1.044797 -3.86698,-2.048091 -3.55577,-4.137179 2.35965,-3.274836 6.88107,-2.833411 10.31383,-4.263585 3.90311,-0.957377 7.67689,-2.630842 11.10878,-4.611597 2.18816,-1.940094 1.07405,-5.046756 0.32835,-7.371909 -3.93266,-5.513287 -9.35396,-9.75581 -13.9708,-14.686024 -5.91778,-5.783657 -11.65452,-11.813723 -17.68454,-17.444607 -2.14828,-1.370565 -4.63208,-2.556154 -7.20805,-1.62333 z m 2.3,2.233333 c 5.45973,2.578599 9.80753,6.890051 14.73244,10.347527 1.85084,1.664819 5.00363,2.778901 4.9009,5.71914 -1.78479,0.428996 -3.34725,-1.396857 -5.04898,-1.86837 -1.54021,-0.520034 -4.1213,-2.963549 -3.68846,0.16232 -0.54825,1.127161 0.22527,4.775461 -1.23798,4.170178 -1.53672,-0.653008 -3.2567,-1.905943 -4.87859,-1.758173 -2.31413,1.577535 -4.63724,3.142054 -6.94599,4.727378 -0.87266,-2.83558 -1.68407,-5.690403 -2.53334,-8.533333 -1.12707,2.260756 -1.98302,4.959333 -3.26666,6.966666 -3.47777,0.344565 -6.95563,0.688221 -10.43334,1.033334 0.0287,-2.531437 -0.43925,-5.398577 1.54821,-7.372648 3.13073,-5.303181 8.62883,-8.494145 13.35179,-12.127352 1.15867,-0.426692 2.35212,-1.253526 3.5,-1.466667 z m -13.76666,42.4 c 4.77393,1.272573 9.58904,2.318786 14.5,2.9 0.93608,1.872033 -0.34236,3.482335 -2.33168,2.565935 -3.62332,-0.734316 -7.25018,-1.727438 -10.80166,-2.699268 -0.26564,-0.514085 -3.09159,-3.378118 -1.36666,-2.766667 z m 45.16666,9.433333 c -1.51493,0.422114 -3.72691,0.290818 -4.26666,2.133334 2.90995,0.556827 6.05202,2.002088 8.9,0.466666 0.978,-1.977585 -1.92783,-2.538134 -3.31385,-2.645499 -0.43983,0.01517 -0.87966,0.03034 -1.31949,0.0455 z m -50.9,5.866667 c -1.16024,0.90047 -3.46737,3.083937 -1.02728,3.858837 2.25255,0.543858 3.96147,-1.380385 5.62728,-2.558837 -1.18522,-1.161836 -2.98479,-1.601218 -4.6,-1.3 z m 44.03334,0.733333 c -1.04902,2.027564 1.90687,4.021482 3.28133,2.230908 0.70415,-1.13156 -2.36473,-3.118333 -3.28133,-2.230908 z"
+ id="path1286"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient39630);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 146.66667,13.4 c -6.33172,3.543401 -10.68888,9.547281 -15.90063,14.447274 -5.8861,6.073656 -12.00588,11.974663 -17.74737,18.155152 -0.7305,1.178656 -2.18908,3.828459 -0.0714,4.248788 4.9013,2.576465 10.86092,2.972757 15.3194,6.215453 1.00861,2.475215 -2.05916,3.484953 -3.70454,4.477414 -1.7373,0.545523 -3.75405,2.175563 -0.84454,2.774326 4.83335,2.60598 10.58594,3.28132 15.01575,6.64826 1.43136,2.33294 -1.26292,4.394234 -2.23809,6.238069 0.0119,1.908953 2.8242,1.486185 4.14874,2.002826 2.29679,0.177914 4.75661,1.464231 4.98406,3.992952 0.7695,2.00242 3.5144,2.068656 5.37195,2.066153 2.47607,-0.312856 4.61313,-1.6278 6.86667,-2.6 -0.11425,-1.550102 -2.69456,-1.700315 -2.36667,-3.6 1.99363,-3.193298 6.06476,-3.869656 9.11608,-5.707796 1.73236,-0.750835 3.28599,-1.893245 4.45059,-3.392204 -1.92497,-2.280272 -5.74204,-3.012313 -6.11314,-6.406102 0.39022,-1.188208 2.2736,-2.314015 3.60639,-2.891301 5.6785,-2.143002 11.88985,-2.970298 17.10185,-6.270592 2.74324,-1.108432 1.83527,-4.538836 1.0317,-6.686009 -2.29624,-3.22589 -5.40132,-6.000174 -8.00828,-9.052576 -2.68656,-2.760044 -5.48876,-5.408427 -8.21852,-8.126754 1.12365,1.634362 -0.99109,2.422313 -2.21269,1.401868 -2.03118,-0.886068 -4.05629,-1.760173 -6.12064,-2.568534 C 160.05314,30.54272 159.67649,32.269964 159.3,34 c -2.55377,0.684822 -5.03322,-2.683187 -7.35336,-0.501311 -1.91379,1.060257 -3.40719,2.847058 -5.45058,3.513153 -1.46281,-0.265507 -1.26699,-3.243895 -2.01992,-4.618246 -0.44179,-3.083731 -1.2118,-2.404985 -2.14312,0.123134 -0.85365,1.59882 -1.21984,3.834303 -3.53335,3.298267 -3.08878,0.306225 -6.17762,0.611598 -9.26633,0.918336 0.0202,-3.177717 -0.28551,-6.766 2.22768,-9.171123 3.51639,-4.960964 8.70856,-8.341185 13.55479,-11.782731 1.62219,-0.752906 3.63701,-1.872712 5.13828,-0.273654 3.97373,2.727514 8.02021,5.285521 11.74591,8.327508 -3.19568,-3.018643 -6.19482,-6.317986 -9.51099,-9.164539 -1.87897,-0.938934 -3.8675,-2.092901 -6.02238,-1.268794 z m -11.83334,43.5 c 5.00075,0.984495 9.99566,2.003225 15,2.966667 0.20732,1.45664 0.46427,3.886308 -1.67313,3.831478 -4.16789,-0.795987 -8.38205,-1.956384 -12.49353,-3.031478 -0.61549,-0.980519 -2.50897,-2.472939 -1.9,-3.466667 0.35063,-0.05103 0.72399,-0.354699 1.06666,-0.3 z m 42.8,11.166667 c -1.73875,1.086025 2.33789,1.138186 3.27372,1.439238 1.30579,0.375237 4.48185,-0.551342 2.02628,-1.672572 -1.83243,-0.401834 -3.50784,-0.360679 -5.3,0.233334 z M 128.86667,73.8 c -2.17346,1.397366 -0.18414,3.053084 1.5865,1.699463 2.04828,-0.249261 2.08866,-2.343116 -0.17211,-2.051831 -0.54677,-0.07524 -0.99718,-0.0549 -1.41439,0.352368 z m 44.76666,1.133333 c 2.4133,2.30436 1.83777,-1.778179 0,-0.492892 0,0.102368 0,0.430964 0,0.492892 z"
+ id="path1295"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient39632);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 146.4,11 c -2.85517,0.532698 -4.88261,2.920832 -7.04143,4.696624 -9.46036,9.318687 -18.69953,18.903094 -28.02524,28.336709 -1.28513,2.140689 -2.02923,4.453081 -2.46666,6.9 4.02374,2.003945 8.08967,3.86007 12.47179,4.935568 1.05804,0.665393 4.69014,0.890135 3.49487,2.397766 -2.29866,1.221998 -5.17006,2.048868 -6.16666,4.733333 1.94556,3.411999 6.27529,3.61226 9.48467,5.236915 2.69399,1.065471 5.388,2.130945 8.08199,3.196418 0.0835,2.815831 -0.6308,1.873266 -2.05017,0.611648 -2.17089,-1.1027 -5.39205,-2.114404 -7.09766,0.274746 -1.55046,0.944625 -2.75719,3.349765 -1.57432,4.866099 2.21286,2.398176 6.00771,1.27668 8.06067,-0.779037 0.17795,-0.191378 -0.29693,2.877758 1.42073,3.193938 2.34275,1.346613 5.33929,0.970157 7.67409,2.299273 0.45283,1.979683 1.2508,4.221333 3.5739,4.531638 3.66844,1.48315 7.80683,0.39212 11.09794,-1.541311 1.39792,-0.760174 4.07797,-1.323747 3.46357,-3.423687 -0.0478,-1.38074 -3.42818,-2.212653 -1.53541,-3.499973 4.53006,-2.016167 9.17312,-4.142848 12.66666,-7.733334 0.85723,-2.253596 -2.25712,-3.193724 -3.46666,-4.566666 -1.4517,-1.221069 -3.87877,-2.524433 -0.81856,-3.364818 5.62839,-2.111859 11.87228,-2.940184 17.03456,-6.263438 2.72995,-0.86584 3.85371,-3.957742 3.06767,-6.564064 -0.0255,-2.62475 -1.76154,-4.797622 -3.22224,-6.835657 C 179.45289,36.856816 173.58197,31.828345 168.24204,26.291461 163.60188,21.818095 159.14228,17.065484 154.39198,12.762657 151.99166,11.220691 149.22884,10.717147 146.4,11 Z m 3.36667,6.733333 c 4.24058,2.976224 8.38139,6.129328 12.6,9.166667 -1.29937,-0.797366 -2.67486,-1.290978 -4.2,-1.4 -0.21287,1.824575 -0.47054,3.643999 -0.7,5.466667 -1.97534,-0.587625 -4.21204,-1.778592 -5.97773,-0.09263 -1.30676,0.402533 -3.52226,3.290581 -4.25972,2.135968 -0.99915,-3.447628 -1.99405,-6.896491 -2.99589,-10.343339 -1.52265,3.539479 -3.02044,7.089652 -4.53333,10.633333 -2.56667,0.255555 -5.13333,0.511111 -7.7,0.766667 -0.0148,-3.662276 2.83591,-6.395601 5.07235,-8.959274 3.30461,-2.837611 6.75708,-5.60858 10.52338,-7.756865 0.7316,-0.360909 1.44586,0.250944 2.17094,0.382806 z m 26.36666,48.333334 C 174.87994,66.86218 172.84987,68.441375 174.2,70 c 2.62772,1.71982 5.90645,1.835937 8.93343,1.934762 2.25075,-0.06272 4.4688,-2.726652 2.93663,-4.770688 -1.42803,-2.456455 -4.67977,-1.908377 -7.06627,-1.883005 -0.95681,0.261868 -1.91364,0.523732 -2.87046,0.785598 z m -3.3,5.433333 c -1.27562,1.033534 -1.85687,2.841465 -1.35231,4.508785 0.43077,1.899535 2.6256,2.385569 4.29198,1.849858 2.50838,0.201444 3.52565,-3.378484 1.43654,-4.628378 -1.24197,-1.050288 -2.64377,-2.095016 -4.37621,-1.730265 z"
+ id="path1300"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient39634);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 146,10.2 c -5.57009,2.353735 -9.31153,7.276932 -13.56394,11.364379 -7.26121,7.360863 -14.57305,14.685571 -21.80273,22.068954 -0.92375,2.588329 -1.83526,5.181133 -2.76666,7.766667 5.12606,2.235525 10.28103,4.361596 15.6,6.1 -0.32712,1.554459 -2.93579,1.371077 -3.74338,2.860476 -1.43416,0.914482 -2.37188,3.411157 -0.36803,4.245199 3.1673,2.975582 7.51398,4.048213 11.44474,5.660992 -3.09041,-0.89746 -5.13867,2.363507 -6.33333,4.666666 -0.72155,2.880448 2.58866,4.694489 5.06851,4.276737 1.54135,0.553684 3.66,-2.522746 3.86807,-0.13866 2.29497,2.607941 6.70581,1.993255 9.10076,4.436609 0.7749,2.147771 2.55461,3.943898 4.94541,3.965707 2.15881,0.621481 4.27216,0.328386 6.35476,-0.418515 2.43249,-0.54992 4.74804,-1.764623 6.87594,-2.976017 1.61013,-1.140622 1.25617,-3.709454 -0.21345,-4.812527 -0.21701,-1.714746 2.45466,-1.738353 3.54015,-2.659077 2.92458,-1.339302 5.49291,-3.216603 7.95985,-5.240923 -1.09048,1.568168 -1.50221,3.637034 -0.89348,5.420276 1.02957,2.431889 4.09705,1.779572 6.16014,1.64639 C 179.29546,77.451445 180.09314,74.273508 178,72.9 c -3.03927,-1.879702 -0.42819,-1.002977 1.49692,-0.460891 2.38484,0.141742 5.36949,0.891675 6.99369,-1.418947 1.80089,-1.737129 0.66941,-4.475043 -1.05728,-5.820162 -2.14881,-1.14371 -4.72742,-0.810973 -7.057,-0.699886 -2.09119,0.370608 -3.67839,1.613047 -4.97633,3.233219 -1.58756,1.272788 1.82748,3.61782 -0.0532,3.147933 -1.36163,0.234395 0.30799,-2.483632 -1.32358,-3.36862 -1.06348,-1.560896 -2.85826,-2.534055 -4.1899,-3.879313 6.43141,-3.110773 13.94477,-3.952924 19.7,-8.433333 2.10991,-2.5028 1.15052,-5.815831 0.53333,-8.666667 C 184.23156,39.549156 177.84192,34.54079 172.35319,28.898191 166.50884,23.205036 160.69939,17.462459 154.83333,11.8 152.27799,10.77259 149.66457,10.063772 146.88646,10.206305 146.60075,10.233991 146.27214,10.101959 146,10.2 Z m 7.6,11.266667 c 1.51374,1.165288 3.04586,2.309495 4.56667,3.466666 -1.39718,1.06872 -0.90296,3.127104 -1.4,4.633334 -2.08576,-0.566112 -4.35694,-0.641822 -6.05767,0.905733 -1.05102,0.888519 -3.01815,1.872214 -3.17799,-0.196242 -0.93874,-3.234383 -1.83,-6.48501 -2.79768,-9.709491 1.63294,-0.494373 3.30094,-3.132711 4.90134,-1.63781 1.32178,0.845937 2.64355,1.691873 3.96533,2.53781 z m -14.36667,10.966666 c -1.96666,0.2 -3.93333,0.4 -5.9,0.6 0.75323,-3.751583 3.85837,-6.37712 6.49928,-8.892012 1.44608,-1.049755 2.80293,-2.240606 4.30072,-3.207988 -1.63333,3.833334 -3.26666,7.666667 -4.9,11.5 z"
+ id="path1304"
+ inkscape:connector-curvature="0" />
+ </g>
+ <path
+ style="fill:url(#linearGradient1322);fill-rule:evenodd;stroke-width:1.30175579pt"
+ d="m 80.606138,21.093974 c -3.986404,2e-6 -7.999981,1.500815 -11.054664,4.555494 L 15.31073,79.950952 c -2.994002,2.993929 -4.556718,6.904836 -4.616235,10.811705 -8.35e-4,0.06557 0,0.177392 0,0.24296 h 0.12148 c 1.039149,3.953694 27.860205,8.970154 30.855878,11.965763 4.524006,4.52404 -17.340071,7.86688 -12.816122,12.39094 4.523986,4.52399 27.364021,8.71724 31.888455,13.2413 4.524026,4.52402 -9.261778,9.3247 -4.737714,13.8487 4.524006,4.52407 19.69882,-1.11018 16.946437,10.69023 6.109347,6.10935 18.859073,3.19383 27.393701,-2.91552 4.52401,-4.524 -8.654358,-4.10106 -4.130314,-8.62506 4.524004,-4.52406 15.949294,-4.54533 25.571504,-15.3672 -3.87306,-6.02355 -16.55055,-8.59578 -12.0265,-13.11982 4.524,-4.524 13.27486,-2.25385 32.25288,-10.87245 9.26429,-4.207497 8.53905,-7.362324 8.50359,-11.236883 -7.4e-4,-0.08153 0,-0.160805 0,-0.24296 h -0.0608 c -0.0595,-3.906866 -1.56157,-7.817769 -4.55549,-10.811705 L 91.600063,25.649468 C 88.5454,22.594793 84.592543,21.093974 80.606138,21.093974 Z M 56.553132,105.76542 c 8.084647,2.09667 17.079247,4.81 24.295966,4.85919 l 0.3037,3.27996 c -6.179767,-0.63701 -19.269208,-3.64874 -22.352289,-5.22364 z m 84.246258,14.39535 c -1.23415,-0.0395 -2.40206,0.0842 -3.27996,0.3037 -1.65516,0.41359 -9.69592,0.60412 -9.05025,5.7703 7.10376,2.58184 18.08512,4.55915 19.37604,-0.6074 0.96897,-3.87387 -3.34345,-5.34795 -7.04583,-5.4666 z m -92.871326,10.50801 c -1.117595,-0.13024 -2.210972,0.008 -3.279956,0.54666 -4.274826,2.15631 -7.152149,6.94739 -3.158474,8.92877 3.99408,1.98139 6.824425,-0.27467 10.325785,-2.7333 3.501767,-2.45822 3.411658,-2.93897 3.158475,-3.88735 -0.484734,0.12928 -3.693025,-2.46403 -7.04583,-2.85478 z m 78.111516,0.85036 c -3.22891,1.29126 -3.19098,5.77708 -0.60739,7.71397 2.58293,1.93728 5.81565,0.68424 7.10657,-0.6074 1.29198,-1.29126 -0.042,-5.81528 -6.49918,-7.10657 z"
+ id="path1217"
+ sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient1231);fill-rule:evenodd;stroke-width:1.30175579pt"
+ d="m 11.977124,84.576671 c -0.883927,1.953959 -1.36513,4.04141 -1.397018,6.134731 -8.33e-4,0.06556 0,0.177399 0,0.24296 h 0.12148 c 0.994358,3.78327 25.07956,8.512878 29.823299,11.540588 2.091809,-1.24429 3.465756,-2.547484 2.065157,-3.948099 C 39.594368,95.551236 12.773315,90.53478 11.734165,86.581087 h -0.12148 c 0,-0.06558 -8.33e-4,-0.177399 0,-0.242958 0.0091,-0.601939 0.284168,-1.162709 0.364439,-1.761458 z M 150.34262,92.47286 c -1.0612,1.680115 -3.10061,3.387829 -7.41026,5.345111 -18.97801,8.618589 -27.72886,6.348449 -32.25287,10.872439 -1.37053,1.37052 -0.88153,2.54264 0.18222,3.70513 4.78924,-3.38639 13.4115,-2.19944 31.03808,-10.20429 8.00504,-3.635614 8.46503,-6.511246 8.44283,-9.71839 z m -92.871299,8.86803 2.247377,2.9155 c 3.08308,1.57491 16.17252,4.58665 22.352289,5.22364 l -0.303699,-3.27996 c -7.216719,-0.0492 -16.21132,-2.7625 -24.295967,-4.85918 z M 30.685018,111.4237 c -2.022925,1.2244 -3.320206,2.51079 -1.943676,3.88736 4.523988,4.52399 27.364021,8.71723 31.888455,13.2413 0.198962,0.19895 0.17245,0.40741 0.3037,0.6074 1.405197,-1.67236 2.355425,-3.35413 0.728879,-4.98067 -4.359755,-4.3594 -25.379991,-8.41841 -30.977358,-12.75539 z m 100.220842,10.75097 c -1.55381,0.80713 -2.80902,1.9449 -2.55108,4.00882 7.10375,2.58184 18.08511,4.55915 19.37603,-0.60738 0.25122,-1.00435 0.11312,-1.85114 -0.24296,-2.55108 -3.06888,2.47706 -10.66085,1.09402 -16.58199,-0.85036 z m -11.17612,2.18664 c -8.90094,7.91694 -18.52655,8.74738 -22.595255,12.81612 -1.63664,1.63663 -0.713263,2.53048 0.6074,3.34069 5.191475,-3.47749 15.190165,-4.50342 23.931535,-14.33463 -0.44804,-0.69679 -1.30027,-1.20938 -1.94368,-1.82218 z m 5.0414,8.01767 c -1.86829,1.81567 -1.62997,5.17107 0.54666,6.80287 2.58292,1.93727 5.81565,0.68422 7.10656,-0.6074 0.66392,-0.66356 0.57592,-2.15087 -0.48592,-3.6444 -1.57518,0.81115 -3.6457,1.33536 -5.58806,-0.12148 -0.82081,-0.61535 -1.29544,-1.48388 -1.57924,-2.42959 z m -71.612353,0.24296 c -0.216533,0.15768 -0.17254,0.18708 -0.42518,0.36444 -3.501359,2.45861 -6.331704,4.7147 -10.325785,2.73329 -0.835138,-0.41433 -1.173493,-1.0297 -1.457758,-1.63998 -1.775949,2.19005 -2.210285,4.70572 0.425179,6.01325 3.994085,1.98138 6.824427,-0.27468 10.325787,-2.73329 3.50177,-2.45823 3.411658,-2.93899 3.158475,-3.88735 -0.166315,0.0444 -0.997334,-0.45265 -1.700718,-0.85036 z m 3.462175,4.79845 c -1.405193,1.67235 -2.355439,3.35411 -0.728879,4.98066 4.524009,4.52407 19.69882,-1.11019 16.946437,10.69022 6.109348,6.10935 18.859078,3.19384 27.39371,-2.91551 1.66654,-1.66656 0.69997,-2.58291 -0.668148,-3.40144 -8.458362,5.3473 -19.957869,7.67884 -25.692984,1.94368 2.752384,-11.8004 -12.422431,-6.16613 -16.946436,-10.69021 -0.198964,-0.19896 -0.172449,-0.40742 -0.3037,-0.6074 z"
+ id="path1269"
+ sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient1272);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.30175579pt"
+ d="m 107.57531,47.365247 32.87711,35.325423 c 0,0 9.7932,10.492701 2.09856,14.68978 -7.69466,4.19708 -31.12834,10.4927 -31.12834,10.4927 L 68.830422,46.540402 Z"
+ id="path1271"
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient1277);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.49509335pt"
+ d="M 56.944037,42.006087 26.165461,77.3315 c 0,0 -11.891721,10.4927 -4.197076,14.689777 7.694644,4.197078 58.409343,21.335153 94.084505,15.039533 L 75.13138,45.853409 Z"
+ id="path1276"
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient1318);fill-rule:evenodd;stroke-width:1.30175579pt"
+ d="m 82.042498,27.12255 c 4.504479,0.03329 23.422692,18.434639 28.837322,22.230809 5.41464,3.796171 4.14478,6.285951 4.14478,6.523269 L 99.839631,48.527099 98.321133,60.006943 89.939024,56.058848 77.062155,64.683915 72.081482,47.67674 65.76453,62.558018 47.967732,64.319476 48.149952,56.423287 74.438456,30.540688 c 1.907291,-1.877842 3.182156,-3.451427 7.604042,-3.418138 z"
+ id="path1317"
+ sodipodi:nodetypes="ccccccccccczz"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Title">
+ <text
+ x="48"
+ y="74.666664"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:51.20000076px;line-height:100%;font-family:Arial;writing-mode:lr-tb;text-anchor:start;display:block;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="text48">
+ <tspan
+ id="tspan1"
+ sodipodi:role="line"
+ y="74.666664"
+ x="48"
+ style="stroke-width:3.20000017pt">Future Inkscape::Application</tspan>
+ </text>
+ <text
+ id="text74"
+ y="204.63853"
+ x="68.004684"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:120.00000477%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ id="tspan15"
+ sodipodi:role="line"
+ y="204.63853"
+ x="68.004684"
+ style="stroke-width:1.06666669pt">Inkscape::Application </tspan><tspan
+ id="tspan16"
+ sodipodi:role="line"
+ y="235.35854"
+ x="68.004684"
+ style="stroke-width:1.06666669pt"> + Option handling</tspan><tspan
+ id="tspan17"
+ sodipodi:role="line"
+ y="266.07855"
+ x="68.004684"
+ style="stroke-width:1.06666669pt"> - Select run mode from $arg[0] and/or opts given</tspan><tspan
+ id="tspan18"
+ sodipodi:role="line"
+ y="296.79855"
+ x="68.004684"
+ style="stroke-width:1.06666669pt"> + Paths (homedir, config file dir, share dir, etc.)</tspan><tspan
+ id="tspan19"
+ sodipodi:role="line"
+ y="327.51855"
+ x="68.004684"
+ style="stroke-width:1.06666669pt"> + Preferences</tspan><tspan
+ id="tspan20"
+ sodipodi:role="line"
+ y="358.23856"
+ x="68.004684"
+ style="stroke-width:1.06666669pt"> + Extensions registry</tspan><tspan
+ id="tspan21"
+ sodipodi:role="line"
+ y="388.95856"
+ x="68.004684"
+ style="stroke-width:1.06666669pt"> + Primary Run Mode object creation/maintenance</tspan><tspan
+ id="tspan22"
+ sodipodi:role="line"
+ y="419.67856"
+ x="68.004684"
+ style="stroke-width:1.06666669pt"> Inkscape::Application::RunMode* runmode;</tspan><tspan
+ id="tspan23"
+ sodipodi:role="line"
+ y="450.39856"
+ x="68.004684"
+ style="stroke-width:1.06666669pt" /><tspan
+ id="tspan24"
+ sodipodi:role="line"
+ y="481.11856"
+ x="68.004684"
+ style="stroke-width:1.06666669pt">Inkscape::Application::RunMode</tspan><tspan
+ id="tspan25"
+ sodipodi:role="line"
+ y="511.83856"
+ x="68.004684"
+ style="stroke-width:1.06666669pt"> + Each run mode will subclass this base class</tspan><tspan
+ id="tspan26"
+ sodipodi:role="line"
+ y="542.55853"
+ x="68.004684"
+ style="stroke-width:1.06666669pt"> + Provides an 'implementation hiding' ability similar</tspan><tspan
+ id="tspan27"
+ sodipodi:role="line"
+ y="573.27856"
+ x="68.004684"
+ style="stroke-width:1.06666669pt"> to Inkscape::ApplicationImpl in inkscape_gtkmm</tspan><tspan
+ id="tspan28"
+ sodipodi:role="line"
+ y="603.99854"
+ x="68.004684"
+ style="stroke-width:1.06666669pt" /></text>
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="Drawing Area" />
+</svg>
diff --git a/doc/NewAppArchitecture/12-future-run-modes.svg b/doc/NewAppArchitecture/12-future-run-modes.svg
new file mode 100644
index 0000000..0e5ec67
--- /dev/null
+++ b/doc/NewAppArchitecture/12-future-run-modes.svg
@@ -0,0 +1,1048 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg586"
+ sodipodi:version="0.32"
+ inkscape:version="0.92.0 r15304"
+ width="640pt"
+ height="480pt"
+ sodipodi:docname="12-future-run-modes.svg"
+ version="1.1">
+ <defs
+ id="defs588">
+ <marker
+ inkscape:stockid="TriangleInL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker85"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path86"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleInL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker83"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path84"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleInL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker80"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path81"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleInL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker77"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path78"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleInL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker74"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path75"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker198"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path199"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleInL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker196"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path197"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker193"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path194"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleInL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker191"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path192"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker791"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path792"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker719"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path720"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleInL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker717"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path718"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker714"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path715"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleInL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker712"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path713"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker709"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path710"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleInL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker707"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path708"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker704"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path705"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleInL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker702"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path703"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="TriangleOutL"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path2817"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleInL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="TriangleInL"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path2823"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2L"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow2L"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path2863"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.73333335;stroke-linejoin:round"
+ d="M 4.363143,4.732916 -8.456553,0.01878889 4.3631437,-4.6953372 c -2.0480514,2.7832182 -2.0362505,6.5911436 -7e-7,9.4282532 z"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <linearGradient
+ id="linearGradient2570">
+ <stop
+ style="stop-color:#000000;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop2571" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.62745100;"
+ offset="0.58504134"
+ id="stop2572" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop2573" />
+ </linearGradient>
+ <linearGradient
+ xlink:href="#linearGradient1218"
+ id="linearGradient1322"
+ x1="77.599106"
+ y1="20.687101"
+ x2="53.030737"
+ y2="114.57422"
+ gradientTransform="matrix(1.3228549,0,0,1.2809931,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1273"
+ id="linearGradient1318"
+ x1="59.491886"
+ y1="30.563196"
+ x2="33.266399"
+ y2="58.199241"
+ gradientTransform="matrix(1.7409899,0,0,0.97333594,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1307"
+ x1="0.45376351"
+ y1="1.9347328"
+ x2="0.41986585"
+ y2="0.12454049"
+ gradientTransform="scale(1.004208,0.995809)" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1306"
+ x1="0.45009527"
+ y1="1.9667202"
+ x2="0.41548476"
+ y2="0.11846013"
+ gradientTransform="scale(1.006361,0.993679)" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1305"
+ x1="0.45839140"
+ y1="1.8676205"
+ x2="0.42603236"
+ y2="0.13959341"
+ gradientTransform="scale(1.002016,0.997989)" />
+ <linearGradient
+ xlink:href="#linearGradient1273"
+ id="linearGradient1277"
+ x1="11.967844"
+ y1="119.11808"
+ x2="51.413385"
+ y2="80.482086"
+ gradientTransform="matrix(1.8036348,0,0,1.2393329,-37.611189,-4.4599008)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1273"
+ id="linearGradient1272"
+ x1="118.66497"
+ y1="45.70058"
+ x2="90.28563"
+ y2="62.493129"
+ gradientTransform="matrix(1.4554449,0,0,1.1642956,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1270" />
+ <linearGradient
+ xlink:href="#linearGradient1323"
+ id="linearGradient1231"
+ x1="17.696665"
+ y1="120.74315"
+ x2="94.698939"
+ y2="120.74315"
+ gradientTransform="matrix(1.8150579,0,0,0.9336165,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1221"
+ x1="27.318817"
+ y1="170.27164"
+ x2="130.70353"
+ y2="28.120696"
+ gradientTransform="scale(1.0211162,0.97932047)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient1218">
+ <stop
+ style="stop-color:#000000;stop-opacity:1.0000000;"
+ offset="0.00000000"
+ id="stop1219" />
+ <stop
+ style="stop-color:#323232;stop-opacity:1.0000000;"
+ offset="0.073255815"
+ id="stop1321" />
+ <stop
+ style="stop-color:#000000;stop-opacity:1.0000000;"
+ offset="0.65260679"
+ id="stop1320" />
+ <stop
+ style="stop-color:#fff;stop-opacity:1;"
+ offset="1"
+ id="stop1220" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1222">
+ <stop
+ style="stop-color:#0081ac;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop1223" />
+ <stop
+ style="stop-color:#006d91;stop-opacity:0.62745100;"
+ offset="0.50000000"
+ id="stop1722" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop1224" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1273">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1.0000000;"
+ offset="0.00000000"
+ id="stop1274" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.00000000;"
+ offset="1.0000000"
+ id="stop1275" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1323">
+ <stop
+ style="stop-color:#000000;stop-opacity:0.77685952;"
+ offset="0.00000000"
+ id="stop1324" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.00000000;"
+ offset="1.0000000"
+ id="stop1325" />
+ </linearGradient>
+ <radialGradient
+ xlink:href="#linearGradient826"
+ id="radialGradient829"
+ cx="296.2963"
+ cy="281.25"
+ r="248.40302"
+ fx="303.7037"
+ fy="93.75"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.29936853,0,0,0.15858773,4.3548661,98.117152)" />
+ <linearGradient
+ id="linearGradient826">
+ <stop
+ style="stop-color:#000000;stop-opacity:0.95294118;"
+ offset="0.00000000"
+ id="stop827" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.76078433;"
+ offset="0.36585677"
+ id="stop830" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.52941179;"
+ offset="0.47107276"
+ id="stop847" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.00000000;"
+ offset="1.0000000"
+ id="stop828" />
+ </linearGradient>
+ <linearGradient
+ xlink:href="#linearGradient909"
+ id="linearGradient907"
+ x1="0.50000000"
+ y1="0.66667551"
+ x2="0.50000000"
+ y2="-1.7333326" />
+ <linearGradient
+ id="linearGradient909">
+ <stop
+ style="stop-color:#000000;stop-opacity:0.00000000;"
+ offset="0.00000000"
+ id="stop910" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.17000000;"
+ offset="1.0000000"
+ id="stop913" />
+ </linearGradient>
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1309"
+ gradientTransform="scale(2.8444445,0.4)"
+ x1="0"
+ y1="4.7369516e-15"
+ x2="300"
+ y2="4.7369516e-15"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient2570"
+ id="linearGradient1308"
+ x1="-0.0028122679"
+ y1="1365.4825"
+ x2="64.30938"
+ y2="1365.4825"
+ gradientTransform="scale(13.227991,0.0860129)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient826"
+ id="radialGradient40004"
+ cx="296.2963"
+ cy="281.25"
+ fx="303.7037"
+ fy="93.75"
+ r="248.40302"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4203424,0,0,0.08699077,-33.810677,100.89451)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient40006"
+ x1="33.344169"
+ y1="164.17808"
+ x2="131.82116"
+ y2="28.775105"
+ gradientTransform="scale(1.0839555,1.0496536)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient40008"
+ x1="31.731446"
+ y1="165.85049"
+ x2="131.57971"
+ y2="28.562063"
+ gradientTransform="scale(1.0848907,1.0487488)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient40010"
+ x1="35.171777"
+ y1="162.0032"
+ x2="131.8238"
+ y2="29.109513"
+ gradientTransform="scale(1.0846262,1.0490045)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient40012"
+ x1="37.676606"
+ y1="159.47478"
+ x2="132.33793"
+ y2="29.318235"
+ gradientTransform="scale(1.0823063,1.051253)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient40014"
+ x1="29.920773"
+ y1="167.66146"
+ x2="131.16846"
+ y2="28.448861"
+ gradientTransform="scale(1.0869998,1.0467139)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient40016"
+ x1="27.318817"
+ y1="170.27164"
+ x2="130.70353"
+ y2="28.120696"
+ gradientTransform="scale(1.0891906,1.0446085)"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.978125"
+ inkscape:cx="426.66667"
+ inkscape:cy="320"
+ inkscape:window-width="984"
+ inkscape:window-height="845"
+ inkscape:window-x="190"
+ inkscape:window-y="105"
+ showguides="true"
+ inkscape:guide-bbox="false"
+ inkscape:current-layer="layer2"
+ showgrid="true"
+ inkscape:guide-points="true"
+ gridtolerance="50.000000pt"
+ inkscape:grid-points="true"
+ inkscape:grid-bbox="false"
+ inkscape:window-maximized="0">
+ <inkscape:grid
+ id="GridFromPre046Settings"
+ type="xygrid"
+ originx="0"
+ originy="0"
+ spacingx="7.1111111"
+ spacingy="7.1111111"
+ color="#3f3fff"
+ empcolor="#3f3fff"
+ opacity="0.15"
+ empopacity="0.38"
+ empspacing="5" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata33">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer1"
+ inkscape:label="Background"
+ style="display:block">
+ <rect
+ style="font-size:12px;fill:url(#linearGradient1309);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.20000017pt"
+ id="topbluebox"
+ width="853.33331"
+ height="120"
+ x="0"
+ y="1.8947807e-15" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient1308);stroke-width:5.31674433;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M -0.03652902,117.55657 850.68323,117.34163"
+ id="path654"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0" />
+ <g
+ id="g1085"
+ transform="translate(689.36448,-10.40511)">
+ <g
+ id="g1394"
+ transform="matrix(0.875802,0,0,0.869278,1.1184885,-8.4967275)">
+ <ellipse
+ id="path898"
+ style="opacity:0.69398911;fill:url(#radialGradient40004);stroke-width:0.84729707;stroke-dashoffset:0"
+ cx="92.292046"
+ cy="126.99174"
+ rx="126.10272"
+ ry="26.097233" />
+ <ellipse
+ id="ball1"
+ style="fill:url(#radialGradient829);stroke-width:0.96546245;stroke-dashoffset:0"
+ cx="94.165428"
+ cy="145.69347"
+ rx="89.810562"
+ ry="47.576321" />
+ </g>
+ <g
+ id="g1310"
+ transform="matrix(1.822197,0,0,1.662749,-192.00875,13.084299)"
+ style="fill:url(#linearGradient1221)">
+ <path
+ style="fill:url(#linearGradient40006);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 148.55614,11.815593 c -2.18769,1e-6 -4.39029,0.823628 -6.06667,2.5 l -29.76666,29.8 c -1.64308,1.643032 -2.50068,3.78929 -2.53334,5.933333 -4.6e-4,0.03598 0,0.09736 0,0.133333 h 0.0667 c 0.57027,2.16974 15.28934,4.922713 16.93333,6.566667 2.48272,2.482738 -9.51602,4.317248 -7.03333,6.8 2.48271,2.482709 15.01704,4.783915 17.5,7.266669 2.48273,2.48272 -5.08275,5.11728 -2.6,7.6 2.48272,2.482753 10.81047,-0.609259 9.3,5.866667 3.35273,3.352736 10.34963,1.752736 15.03333,-1.6 2.48272,-2.482721 -4.74941,-2.250614 -2.26666,-4.733334 2.48272,-2.482752 8.75277,-2.494421 14.03333,-8.433335 -2.12548,-3.305654 -9.08274,-4.717259 -6.6,-7.2 2.48272,-2.482715 7.28509,-1.236886 17.7,-5.966667 5.08413,-2.309024 4.68613,-4.040355 4.66667,-6.166667 -4.1e-4,-0.04475 0,-0.08825 0,-0.133333 h -0.0333 c -0.0326,-2.144041 -0.85698,-4.290298 -2.5,-5.933333 l -29.8,-29.8 c -1.67637,-1.67637 -3.84565,-2.5 -6.03334,-2.5 z m -0.26667,3.866666 c 0.97256,0.02533 1.75986,0.768324 3.3,1.766667 l 14.06667,10.433333 c 0.15408,0.09991 0.29855,0.192996 0.43333,0.3 0.1348,0.10699 0.28452,0.220015 0.4,0.333334 0.11548,0.113111 0.20364,0.248218 0.3,0.366666 0.0961,0.118429 0.18984,0.244093 0.26667,0.366667 0.077,0.122774 0.14229,0.240765 0.2,0.366667 0.0577,0.126131 0.0949,0.238188 0.13333,0.366666 0.0386,0.128282 0.0808,0.270352 0.1,0.4 0.0193,0.12988 0.0333,0.269763 0.0333,0.4 l -8.33333,-4.033333 -0.83334,6.3 -4.6,-2.166667 -7.06666,4.733334 -2.73334,-9.333334 -3.46666,8.166667 -9.76667,0.966667 0.1,-4.333334 c 0,-1.042224 5.64516,-8.329604 9.06666,-10.066666 l 6.26667,-4.5 c 0.92408,-0.599006 1.54979,-0.848535 2.13333,-0.833334 z m -12.93333,42.6 c 4.43676,1.15063 9.37288,2.639674 13.33333,2.666667 l 0.16667,1.8 c -3.39138,-0.349579 -10.57471,-2.002379 -12.26667,-2.866667 z m 46.23333,7.9 c -0.67728,-0.02171 -1.31822,0.0462 -1.8,0.166667 -0.90833,0.226965 -5.321,0.331531 -4.96666,3.166667 3.89845,1.416876 9.92489,2.502007 10.63333,-0.333334 0.53176,-2.12593 -1.83484,-2.93489 -3.86667,-3 z m -50.96666,5.766669 c -0.61333,-0.07148 -1.21336,0.0042 -1.8,0.3 -2.34598,1.183349 -3.92502,3.81264 -1.73334,4.9 2.19191,1.08736 3.74516,-0.150741 5.66667,-1.5 1.92173,-1.349045 1.87228,-1.612875 1.73333,-2.133333 -0.26601,0.07094 -2.02669,-1.352235 -3.86666,-1.566667 z m 42.86666,0.466667 c -1.77199,0.708629 -1.75118,3.170389 -0.33333,4.233333 1.41748,1.063157 3.19156,0.375499 3.9,-0.333333 0.70902,-0.70863 -0.023,-3.19136 -3.56667,-3.9 z"
+ id="path1278"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient40008);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 147.16667,11.433333 c -3.48238,0.364902 -5.88303,3.345755 -8.33158,5.570373 -8.94544,9.133798 -18.09349,18.101949 -26.95799,27.294024 -1.44334,1.84378 -2.03035,4.015468 -2.31043,6.30227 5.03542,3.678658 11.71157,3.699536 17.06666,6.766667 -1.50817,2.381747 -5.17846,2.289571 -6.84097,4.663825 -1.44519,0.973702 0.60698,2.569614 1.6838,2.93719 4.47582,2.259905 9.5207,3.127075 13.9674,5.505719 2.30619,0.164974 2.15073,2.483836 0.6201,3.623175 -1.21232,1.221254 -3.08705,3.249751 -1.23288,4.771441 2.26675,1.575369 5.27199,1.144095 7.80255,2.065316 1.77826,0.975122 0.51639,2.738136 1.73334,3.966667 3.05603,2.396513 7.28787,1.973693 10.69445,0.606201 1.75151,-0.515126 3.34201,-1.653286 4.87221,-2.539534 1.47613,-1.720326 -0.82595,-2.9513 -2.13333,-3.666667 -0.85913,-1.425274 2.00009,-1.997097 2.97462,-2.675578 3.73665,-1.514529 7.36553,-3.267329 10.23683,-6.143331 1.79011,-1.105032 -0.83882,-2.676851 -1.67812,-3.547758 -1.55141,-1.15048 -3.58938,-1.860548 -4.56666,-3.633333 2.52043,-2.7807 6.7319,-2.262194 9.98204,-3.687561 3.90317,-0.992642 7.61596,-2.729652 11.05532,-4.741974 2.26951,-1.69135 1.67257,-4.636557 1.22998,-7.021773 -1.61839,-5.025589 -6.41885,-8.01283 -9.81146,-11.814386 -7.61983,-7.514247 -15.1255,-15.17228 -22.81612,-22.597384 -2.05244,-1.578655 -4.64151,-2.423668 -7.23976,-2.003589 z M 149.5,16.766667 c 5.52064,4.046284 11.05387,8.077891 16.56667,12.133333 0.11539,1.103552 -2.90244,-1.172627 -4.0558,-1.481882 -1.41219,-0.420198 -3.8964,-2.894916 -3.5025,0.03341 -0.60562,1.192982 0.31151,5.203671 -1.4377,4.28052 -1.58183,-0.849857 -3.68447,-2.113891 -5.18058,-0.378679 -1.61892,1.082213 -3.23783,2.164425 -4.85676,3.246637 -0.9783,-3.377623 -1.95211,-6.756554 -2.93333,-10.133333 -1.34602,3.127884 -2.66477,6.267483 -4,9.4 -2.92222,0.288888 -5.84445,0.577778 -8.76667,0.866667 -0.20184,-2.166309 0.27133,-4.341771 1.77562,-5.878158 3.25057,-5.211552 8.66632,-8.395371 13.54451,-11.865011 0.95273,-0.564092 1.80847,-0.493262 2.84654,-0.223498 z m -8.63333,43.566666 c 2.34366,0.607254 4.78296,0.727797 7.16666,1.133334 -0.90625,1.084587 -3.14277,-0.32439 -4.56523,-0.371058 -1.8583,-0.406252 -3.7163,-0.80007 -5.4681,-1.562276 0.95555,0.266667 1.91111,0.533334 2.86667,0.8 z m 38.86666,5.4 c -2.15488,0.501536 -5.22675,0.793815 -5.5,3.566667 0.70833,1.029809 2.96093,1.412478 4.40801,1.688268 2.27503,0.363118 5.38493,1.181831 6.97878,-0.937576 1.36135,-1.898234 -0.67459,-4.313995 -2.78769,-4.178768 -1.02575,-0.350017 -2.04343,-0.268702 -3.0991,-0.138591 z m -51.03333,5.9 c -1.57612,1.085018 -3.71575,2.720281 -3.03333,4.9 1.61184,2.339234 4.94529,1.683368 6.78753,-0.0057 1.2184,-0.692559 3.25469,-2.021692 2.31247,-3.560997 -1.93436,-0.840999 -3.87915,-2.117169 -6.06667,-1.333334 z m 44.36667,0.333334 c -1.34895,0.891833 -1.89168,2.759628 -0.95675,4.109348 0.71622,1.795233 3.11379,1.982508 4.57991,1.004604 1.95986,-0.600235 1.10016,-3.109938 -0.33003,-3.844913 -0.72045,-0.899439 -2.36482,-1.335642 -3.29313,-1.269039 z"
+ id="path1283"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient40010);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 146.23333,12.866667 c -3.88385,1.702193 -6.61189,5.324961 -9.67052,8.210746 -7.86956,8.018198 -15.90416,15.90198 -23.69161,23.983409 -1.11331,1.428597 -1.72615,3.060044 -2.00453,4.839178 4.36,3.072638 10.04495,3.23545 14.7573,5.603266 1.5625,0.15548 3.26141,1.73801 1.81635,3.072207 -1.86501,1.91956 -5.15011,2.084779 -6.70699,4.291194 4.05269,2.923397 9.10625,3.602288 13.58014,5.613093 1.52915,1.119169 4.28812,1.21833 4.3532,3.553573 -0.41298,2.06712 -2.47344,3.267809 -3.36667,5.133334 1.94434,2.744072 5.94438,1.261888 8.50547,3.040805 1.3908,0.857738 1.00828,2.693049 1.62108,3.831047 3.2048,2.344549 7.71164,1.319869 10.94656,-0.558135 1.04365,-0.353733 3.89943,-1.626855 1.76272,-2.556043 -1.55651,-0.349067 -2.86028,-2.213166 -1.35103,-3.402938 3.84858,-2.931245 9.10998,-3.601158 12.55258,-7.214396 1.79927,-1.361045 -1.31628,-2.560541 -2.24828,-3.336495 -1.41778,-1.044797 -3.86698,-2.048091 -3.55577,-4.137179 2.35965,-3.274836 6.88107,-2.833411 10.31383,-4.263585 3.90311,-0.957377 7.67689,-2.630842 11.10878,-4.611597 2.18816,-1.940094 1.07405,-5.046756 0.32835,-7.371909 -3.93266,-5.513287 -9.35396,-9.75581 -13.9708,-14.686024 -5.91778,-5.783657 -11.65452,-11.813723 -17.68454,-17.444607 -2.14828,-1.370565 -4.63208,-2.556154 -7.20805,-1.62333 z m 2.3,2.233333 c 5.45973,2.578599 9.80753,6.890051 14.73244,10.347527 1.85084,1.664819 5.00363,2.778901 4.9009,5.71914 -1.78479,0.428996 -3.34725,-1.396857 -5.04898,-1.86837 -1.54021,-0.520034 -4.1213,-2.963549 -3.68846,0.16232 -0.54825,1.127161 0.22527,4.775461 -1.23798,4.170178 -1.53672,-0.653008 -3.2567,-1.905943 -4.87859,-1.758173 -2.31413,1.577535 -4.63724,3.142054 -6.94599,4.727378 -0.87266,-2.83558 -1.68407,-5.690403 -2.53334,-8.533333 -1.12707,2.260756 -1.98302,4.959333 -3.26666,6.966666 -3.47777,0.344565 -6.95563,0.688221 -10.43334,1.033334 0.0287,-2.531437 -0.43925,-5.398577 1.54821,-7.372648 3.13073,-5.303181 8.62883,-8.494145 13.35179,-12.127352 1.15867,-0.426692 2.35212,-1.253526 3.5,-1.466667 z m -13.76666,42.4 c 4.77393,1.272573 9.58904,2.318786 14.5,2.9 0.93608,1.872033 -0.34236,3.482335 -2.33168,2.565935 -3.62332,-0.734316 -7.25018,-1.727438 -10.80166,-2.699268 -0.26564,-0.514085 -3.09159,-3.378118 -1.36666,-2.766667 z m 45.16666,9.433333 c -1.51493,0.422114 -3.72691,0.290818 -4.26666,2.133334 2.90995,0.556827 6.05202,2.002088 8.9,0.466666 0.978,-1.977585 -1.92783,-2.538134 -3.31385,-2.645499 -0.43983,0.01517 -0.87966,0.03034 -1.31949,0.0455 z m -50.9,5.866667 c -1.16024,0.90047 -3.46737,3.083937 -1.02728,3.858837 2.25255,0.543858 3.96147,-1.380385 5.62728,-2.558837 -1.18522,-1.161836 -2.98479,-1.601218 -4.6,-1.3 z m 44.03334,0.733333 c -1.04902,2.027564 1.90687,4.021482 3.28133,2.230908 0.70415,-1.13156 -2.36473,-3.118333 -3.28133,-2.230908 z"
+ id="path1286"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient40012);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 146.66667,13.4 c -6.33172,3.543401 -10.68888,9.547281 -15.90063,14.447274 -5.8861,6.073656 -12.00588,11.974663 -17.74737,18.155152 -0.7305,1.178656 -2.18908,3.828459 -0.0714,4.248788 4.9013,2.576465 10.86092,2.972757 15.3194,6.215453 1.00861,2.475215 -2.05916,3.484953 -3.70454,4.477414 -1.7373,0.545523 -3.75405,2.175563 -0.84454,2.774326 4.83335,2.60598 10.58594,3.28132 15.01575,6.64826 1.43136,2.33294 -1.26292,4.394234 -2.23809,6.238069 0.0119,1.908953 2.8242,1.486185 4.14874,2.002826 2.29679,0.177914 4.75661,1.464231 4.98406,3.992952 0.7695,2.00242 3.5144,2.068656 5.37195,2.066153 2.47607,-0.312856 4.61313,-1.6278 6.86667,-2.6 -0.11425,-1.550102 -2.69456,-1.700315 -2.36667,-3.6 1.99363,-3.193298 6.06476,-3.869656 9.11608,-5.707796 1.73236,-0.750835 3.28599,-1.893245 4.45059,-3.392204 -1.92497,-2.280272 -5.74204,-3.012313 -6.11314,-6.406102 0.39022,-1.188208 2.2736,-2.314015 3.60639,-2.891301 5.6785,-2.143002 11.88985,-2.970298 17.10185,-6.270592 2.74324,-1.108432 1.83527,-4.538836 1.0317,-6.686009 -2.29624,-3.22589 -5.40132,-6.000174 -8.00828,-9.052576 -2.68656,-2.760044 -5.48876,-5.408427 -8.21852,-8.126754 1.12365,1.634362 -0.99109,2.422313 -2.21269,1.401868 -2.03118,-0.886068 -4.05629,-1.760173 -6.12064,-2.568534 C 160.05314,30.54272 159.67649,32.269964 159.3,34 c -2.55377,0.684822 -5.03322,-2.683187 -7.35336,-0.501311 -1.91379,1.060257 -3.40719,2.847058 -5.45058,3.513153 -1.46281,-0.265507 -1.26699,-3.243895 -2.01992,-4.618246 -0.44179,-3.083731 -1.2118,-2.404985 -2.14312,0.123134 -0.85365,1.59882 -1.21984,3.834303 -3.53335,3.298267 -3.08878,0.306225 -6.17762,0.611598 -9.26633,0.918336 0.0202,-3.177717 -0.28551,-6.766 2.22768,-9.171123 3.51639,-4.960964 8.70856,-8.341185 13.55479,-11.782731 1.62219,-0.752906 3.63701,-1.872712 5.13828,-0.273654 3.97373,2.727514 8.02021,5.285521 11.74591,8.327508 -3.19568,-3.018643 -6.19482,-6.317986 -9.51099,-9.164539 -1.87897,-0.938934 -3.8675,-2.092901 -6.02238,-1.268794 z m -11.83334,43.5 c 5.00075,0.984495 9.99566,2.003225 15,2.966667 0.20732,1.45664 0.46427,3.886308 -1.67313,3.831478 -4.16789,-0.795987 -8.38205,-1.956384 -12.49353,-3.031478 -0.61549,-0.980519 -2.50897,-2.472939 -1.9,-3.466667 0.35063,-0.05103 0.72399,-0.354699 1.06666,-0.3 z m 42.8,11.166667 c -1.73875,1.086025 2.33789,1.138186 3.27372,1.439238 1.30579,0.375237 4.48185,-0.551342 2.02628,-1.672572 -1.83243,-0.401834 -3.50784,-0.360679 -5.3,0.233334 z M 128.86667,73.8 c -2.17346,1.397366 -0.18414,3.053084 1.5865,1.699463 2.04828,-0.249261 2.08866,-2.343116 -0.17211,-2.051831 -0.54677,-0.07524 -0.99718,-0.0549 -1.41439,0.352368 z m 44.76666,1.133333 c 2.4133,2.30436 1.83777,-1.778179 0,-0.492892 0,0.102368 0,0.430964 0,0.492892 z"
+ id="path1295"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient40014);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 146.4,11 c -2.85517,0.532698 -4.88261,2.920832 -7.04143,4.696624 -9.46036,9.318687 -18.69953,18.903094 -28.02524,28.336709 -1.28513,2.140689 -2.02923,4.453081 -2.46666,6.9 4.02374,2.003945 8.08967,3.86007 12.47179,4.935568 1.05804,0.665393 4.69014,0.890135 3.49487,2.397766 -2.29866,1.221998 -5.17006,2.048868 -6.16666,4.733333 1.94556,3.411999 6.27529,3.61226 9.48467,5.236915 2.69399,1.065471 5.388,2.130945 8.08199,3.196418 0.0835,2.815831 -0.6308,1.873266 -2.05017,0.611648 -2.17089,-1.1027 -5.39205,-2.114404 -7.09766,0.274746 -1.55046,0.944625 -2.75719,3.349765 -1.57432,4.866099 2.21286,2.398176 6.00771,1.27668 8.06067,-0.779037 0.17795,-0.191378 -0.29693,2.877758 1.42073,3.193938 2.34275,1.346613 5.33929,0.970157 7.67409,2.299273 0.45283,1.979683 1.2508,4.221333 3.5739,4.531638 3.66844,1.48315 7.80683,0.39212 11.09794,-1.541311 1.39792,-0.760174 4.07797,-1.323747 3.46357,-3.423687 -0.0478,-1.38074 -3.42818,-2.212653 -1.53541,-3.499973 4.53006,-2.016167 9.17312,-4.142848 12.66666,-7.733334 0.85723,-2.253596 -2.25712,-3.193724 -3.46666,-4.566666 -1.4517,-1.221069 -3.87877,-2.524433 -0.81856,-3.364818 5.62839,-2.111859 11.87228,-2.940184 17.03456,-6.263438 2.72995,-0.86584 3.85371,-3.957742 3.06767,-6.564064 -0.0255,-2.62475 -1.76154,-4.797622 -3.22224,-6.835657 C 179.45289,36.856816 173.58197,31.828345 168.24204,26.291461 163.60188,21.818095 159.14228,17.065484 154.39198,12.762657 151.99166,11.220691 149.22884,10.717147 146.4,11 Z m 3.36667,6.733333 c 4.24058,2.976224 8.38139,6.129328 12.6,9.166667 -1.29937,-0.797366 -2.67486,-1.290978 -4.2,-1.4 -0.21287,1.824575 -0.47054,3.643999 -0.7,5.466667 -1.97534,-0.587625 -4.21204,-1.778592 -5.97773,-0.09263 -1.30676,0.402533 -3.52226,3.290581 -4.25972,2.135968 -0.99915,-3.447628 -1.99405,-6.896491 -2.99589,-10.343339 -1.52265,3.539479 -3.02044,7.089652 -4.53333,10.633333 -2.56667,0.255555 -5.13333,0.511111 -7.7,0.766667 -0.0148,-3.662276 2.83591,-6.395601 5.07235,-8.959274 3.30461,-2.837611 6.75708,-5.60858 10.52338,-7.756865 0.7316,-0.360909 1.44586,0.250944 2.17094,0.382806 z m 26.36666,48.333334 C 174.87994,66.86218 172.84987,68.441375 174.2,70 c 2.62772,1.71982 5.90645,1.835937 8.93343,1.934762 2.25075,-0.06272 4.4688,-2.726652 2.93663,-4.770688 -1.42803,-2.456455 -4.67977,-1.908377 -7.06627,-1.883005 -0.95681,0.261868 -1.91364,0.523732 -2.87046,0.785598 z m -3.3,5.433333 c -1.27562,1.033534 -1.85687,2.841465 -1.35231,4.508785 0.43077,1.899535 2.6256,2.385569 4.29198,1.849858 2.50838,0.201444 3.52565,-3.378484 1.43654,-4.628378 -1.24197,-1.050288 -2.64377,-2.095016 -4.37621,-1.730265 z"
+ id="path1300"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient40016);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 146,10.2 c -5.57009,2.353735 -9.31153,7.276932 -13.56394,11.364379 -7.26121,7.360863 -14.57305,14.685571 -21.80273,22.068954 -0.92375,2.588329 -1.83526,5.181133 -2.76666,7.766667 5.12606,2.235525 10.28103,4.361596 15.6,6.1 -0.32712,1.554459 -2.93579,1.371077 -3.74338,2.860476 -1.43416,0.914482 -2.37188,3.411157 -0.36803,4.245199 3.1673,2.975582 7.51398,4.048213 11.44474,5.660992 -3.09041,-0.89746 -5.13867,2.363507 -6.33333,4.666666 -0.72155,2.880448 2.58866,4.694489 5.06851,4.276737 1.54135,0.553684 3.66,-2.522746 3.86807,-0.13866 2.29497,2.607941 6.70581,1.993255 9.10076,4.436609 0.7749,2.147771 2.55461,3.943898 4.94541,3.965707 2.15881,0.621481 4.27216,0.328386 6.35476,-0.418515 2.43249,-0.54992 4.74804,-1.764623 6.87594,-2.976017 1.61013,-1.140622 1.25617,-3.709454 -0.21345,-4.812527 -0.21701,-1.714746 2.45466,-1.738353 3.54015,-2.659077 2.92458,-1.339302 5.49291,-3.216603 7.95985,-5.240923 -1.09048,1.568168 -1.50221,3.637034 -0.89348,5.420276 1.02957,2.431889 4.09705,1.779572 6.16014,1.64639 C 179.29546,77.451445 180.09314,74.273508 178,72.9 c -3.03927,-1.879702 -0.42819,-1.002977 1.49692,-0.460891 2.38484,0.141742 5.36949,0.891675 6.99369,-1.418947 1.80089,-1.737129 0.66941,-4.475043 -1.05728,-5.820162 -2.14881,-1.14371 -4.72742,-0.810973 -7.057,-0.699886 -2.09119,0.370608 -3.67839,1.613047 -4.97633,3.233219 -1.58756,1.272788 1.82748,3.61782 -0.0532,3.147933 -1.36163,0.234395 0.30799,-2.483632 -1.32358,-3.36862 -1.06348,-1.560896 -2.85826,-2.534055 -4.1899,-3.879313 6.43141,-3.110773 13.94477,-3.952924 19.7,-8.433333 2.10991,-2.5028 1.15052,-5.815831 0.53333,-8.666667 C 184.23156,39.549156 177.84192,34.54079 172.35319,28.898191 166.50884,23.205036 160.69939,17.462459 154.83333,11.8 152.27799,10.77259 149.66457,10.063772 146.88646,10.206305 146.60075,10.233991 146.27214,10.101959 146,10.2 Z m 7.6,11.266667 c 1.51374,1.165288 3.04586,2.309495 4.56667,3.466666 -1.39718,1.06872 -0.90296,3.127104 -1.4,4.633334 -2.08576,-0.566112 -4.35694,-0.641822 -6.05767,0.905733 -1.05102,0.888519 -3.01815,1.872214 -3.17799,-0.196242 -0.93874,-3.234383 -1.83,-6.48501 -2.79768,-9.709491 1.63294,-0.494373 3.30094,-3.132711 4.90134,-1.63781 1.32178,0.845937 2.64355,1.691873 3.96533,2.53781 z m -14.36667,10.966666 c -1.96666,0.2 -3.93333,0.4 -5.9,0.6 0.75323,-3.751583 3.85837,-6.37712 6.49928,-8.892012 1.44608,-1.049755 2.80293,-2.240606 4.30072,-3.207988 -1.63333,3.833334 -3.26666,7.666667 -4.9,11.5 z"
+ id="path1304"
+ inkscape:connector-curvature="0" />
+ </g>
+ <path
+ style="fill:url(#linearGradient1322);fill-rule:evenodd;stroke-width:1.30175579pt"
+ d="m 80.606138,21.093974 c -3.986404,2e-6 -7.999981,1.500815 -11.054664,4.555494 L 15.31073,79.950952 c -2.994002,2.993929 -4.556718,6.904836 -4.616235,10.811705 -8.35e-4,0.06557 0,0.177392 0,0.24296 h 0.12148 c 1.039149,3.953694 27.860205,8.970154 30.855878,11.965763 4.524006,4.52404 -17.340071,7.86688 -12.816122,12.39094 4.523986,4.52399 27.364021,8.71724 31.888455,13.2413 4.524026,4.52402 -9.261778,9.3247 -4.737714,13.8487 4.524006,4.52407 19.69882,-1.11018 16.946437,10.69023 6.109347,6.10935 18.859073,3.19383 27.393701,-2.91552 4.52401,-4.524 -8.654358,-4.10106 -4.130314,-8.62506 4.524004,-4.52406 15.949294,-4.54533 25.571504,-15.3672 -3.87306,-6.02355 -16.55055,-8.59578 -12.0265,-13.11982 4.524,-4.524 13.27486,-2.25385 32.25288,-10.87245 9.26429,-4.207497 8.53905,-7.362324 8.50359,-11.236883 -7.4e-4,-0.08153 0,-0.160805 0,-0.24296 h -0.0608 c -0.0595,-3.906866 -1.56157,-7.817769 -4.55549,-10.811705 L 91.600063,25.649468 C 88.5454,22.594793 84.592543,21.093974 80.606138,21.093974 Z M 56.553132,105.76542 c 8.084647,2.09667 17.079247,4.81 24.295966,4.85919 l 0.3037,3.27996 c -6.179767,-0.63701 -19.269208,-3.64874 -22.352289,-5.22364 z m 84.246258,14.39535 c -1.23415,-0.0395 -2.40206,0.0842 -3.27996,0.3037 -1.65516,0.41359 -9.69592,0.60412 -9.05025,5.7703 7.10376,2.58184 18.08512,4.55915 19.37604,-0.6074 0.96897,-3.87387 -3.34345,-5.34795 -7.04583,-5.4666 z m -92.871326,10.50801 c -1.117595,-0.13024 -2.210972,0.008 -3.279956,0.54666 -4.274826,2.15631 -7.152149,6.94739 -3.158474,8.92877 3.99408,1.98139 6.824425,-0.27467 10.325785,-2.7333 3.501767,-2.45822 3.411658,-2.93897 3.158475,-3.88735 -0.484734,0.12928 -3.693025,-2.46403 -7.04583,-2.85478 z m 78.111516,0.85036 c -3.22891,1.29126 -3.19098,5.77708 -0.60739,7.71397 2.58293,1.93728 5.81565,0.68424 7.10657,-0.6074 1.29198,-1.29126 -0.042,-5.81528 -6.49918,-7.10657 z"
+ id="path1217"
+ sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient1231);fill-rule:evenodd;stroke-width:1.30175579pt"
+ d="m 11.977124,84.576671 c -0.883927,1.953959 -1.36513,4.04141 -1.397018,6.134731 -8.33e-4,0.06556 0,0.177399 0,0.24296 h 0.12148 c 0.994358,3.78327 25.07956,8.512878 29.823299,11.540588 2.091809,-1.24429 3.465756,-2.547484 2.065157,-3.948099 C 39.594368,95.551236 12.773315,90.53478 11.734165,86.581087 h -0.12148 c 0,-0.06558 -8.33e-4,-0.177399 0,-0.242958 0.0091,-0.601939 0.284168,-1.162709 0.364439,-1.761458 z M 150.34262,92.47286 c -1.0612,1.680115 -3.10061,3.387829 -7.41026,5.345111 -18.97801,8.618589 -27.72886,6.348449 -32.25287,10.872439 -1.37053,1.37052 -0.88153,2.54264 0.18222,3.70513 4.78924,-3.38639 13.4115,-2.19944 31.03808,-10.20429 8.00504,-3.635614 8.46503,-6.511246 8.44283,-9.71839 z m -92.871299,8.86803 2.247377,2.9155 c 3.08308,1.57491 16.17252,4.58665 22.352289,5.22364 l -0.303699,-3.27996 c -7.216719,-0.0492 -16.21132,-2.7625 -24.295967,-4.85918 z M 30.685018,111.4237 c -2.022925,1.2244 -3.320206,2.51079 -1.943676,3.88736 4.523988,4.52399 27.364021,8.71723 31.888455,13.2413 0.198962,0.19895 0.17245,0.40741 0.3037,0.6074 1.405197,-1.67236 2.355425,-3.35413 0.728879,-4.98067 -4.359755,-4.3594 -25.379991,-8.41841 -30.977358,-12.75539 z m 100.220842,10.75097 c -1.55381,0.80713 -2.80902,1.9449 -2.55108,4.00882 7.10375,2.58184 18.08511,4.55915 19.37603,-0.60738 0.25122,-1.00435 0.11312,-1.85114 -0.24296,-2.55108 -3.06888,2.47706 -10.66085,1.09402 -16.58199,-0.85036 z m -11.17612,2.18664 c -8.90094,7.91694 -18.52655,8.74738 -22.595255,12.81612 -1.63664,1.63663 -0.713263,2.53048 0.6074,3.34069 5.191475,-3.47749 15.190165,-4.50342 23.931535,-14.33463 -0.44804,-0.69679 -1.30027,-1.20938 -1.94368,-1.82218 z m 5.0414,8.01767 c -1.86829,1.81567 -1.62997,5.17107 0.54666,6.80287 2.58292,1.93727 5.81565,0.68422 7.10656,-0.6074 0.66392,-0.66356 0.57592,-2.15087 -0.48592,-3.6444 -1.57518,0.81115 -3.6457,1.33536 -5.58806,-0.12148 -0.82081,-0.61535 -1.29544,-1.48388 -1.57924,-2.42959 z m -71.612353,0.24296 c -0.216533,0.15768 -0.17254,0.18708 -0.42518,0.36444 -3.501359,2.45861 -6.331704,4.7147 -10.325785,2.73329 -0.835138,-0.41433 -1.173493,-1.0297 -1.457758,-1.63998 -1.775949,2.19005 -2.210285,4.70572 0.425179,6.01325 3.994085,1.98138 6.824427,-0.27468 10.325787,-2.73329 3.50177,-2.45823 3.411658,-2.93899 3.158475,-3.88735 -0.166315,0.0444 -0.997334,-0.45265 -1.700718,-0.85036 z m 3.462175,4.79845 c -1.405193,1.67235 -2.355439,3.35411 -0.728879,4.98066 4.524009,4.52407 19.69882,-1.11019 16.946437,10.69022 6.109348,6.10935 18.859078,3.19384 27.39371,-2.91551 1.66654,-1.66656 0.69997,-2.58291 -0.668148,-3.40144 -8.458362,5.3473 -19.957869,7.67884 -25.692984,1.94368 2.752384,-11.8004 -12.422431,-6.16613 -16.946436,-10.69021 -0.198964,-0.19896 -0.172449,-0.40742 -0.3037,-0.6074 z"
+ id="path1269"
+ sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient1272);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.30175579pt"
+ d="m 107.57531,47.365247 32.87711,35.325423 c 0,0 9.7932,10.492701 2.09856,14.68978 -7.69466,4.19708 -31.12834,10.4927 -31.12834,10.4927 L 68.830422,46.540402 Z"
+ id="path1271"
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient1277);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.49509335pt"
+ d="M 56.944037,42.006087 26.165461,77.3315 c 0,0 -11.891721,10.4927 -4.197076,14.689777 7.694644,4.197078 58.409343,21.335153 94.084505,15.039533 L 75.13138,45.853409 Z"
+ id="path1276"
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient1318);fill-rule:evenodd;stroke-width:1.30175579pt"
+ d="m 82.042498,27.12255 c 4.504479,0.03329 23.422692,18.434639 28.837322,22.230809 5.41464,3.796171 4.14478,6.285951 4.14478,6.523269 L 99.839631,48.527099 98.321133,60.006943 89.939024,56.058848 77.062155,64.683915 72.081482,47.67674 65.76453,62.558018 47.967732,64.319476 48.149952,56.423287 74.438456,30.540688 c 1.907291,-1.877842 3.182156,-3.451427 7.604042,-3.418138 z"
+ id="path1317"
+ sodipodi:nodetypes="ccccccccccczz"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Title">
+ <path
+ sodipodi:nodetypes="ccc"
+ id="path76"
+ d="M 166.66667,540 H 133.33333 V 240"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker-start:url(#TriangleInL);marker-end:none"
+ inkscape:connector-curvature="0" />
+ <text
+ x="48"
+ y="74.666664"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:51.20000076px;line-height:100%;font-family:Arial;writing-mode:lr-tb;text-anchor:start;display:block;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="text48">
+ <tspan
+ id="tspan11"
+ sodipodi:role="line"
+ y="74.666664"
+ x="48"
+ style="stroke-width:3.20000017pt">Future Run Modes</tspan>
+ </text>
+ <rect
+ style="color:#000000;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ id="rect3"
+ width="667.11206"
+ height="66.744972"
+ x="102.22055"
+ y="174.6731"
+ ry="0.0000000" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="123.95625"
+ y="215.85083"
+ id="text76"><tspan
+ x="123.95625"
+ y="215.85083"
+ sodipodi:role="line"
+ id="tspan1"
+ style="stroke-width:1.06666669pt">Inkscape::Application::RunMode</tspan></text>
+ <rect
+ style="color:#000000;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.66666675;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ id="rect14"
+ width="258.1958"
+ height="66.026642"
+ x="175.04384"
+ y="308"
+ ry="0.0000000" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ x="182.65834"
+ y="339.61249"
+ id="text15"><tspan
+ id="tspan24"
+ sodipodi:role="line"
+ y="339.61249"
+ x="182.65834"
+ style="stroke-width:1.33333337">I::A::Editor</tspan></text>
+ <rect
+ style="color:#000000;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ id="rect18"
+ width="258.1958"
+ height="66.026642"
+ x="173.4688"
+ y="407.30667"
+ ry="0.0000000" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="182.27499"
+ y="439.66251"
+ id="text19"><tspan
+ id="tspan25"
+ sodipodi:role="line"
+ y="439.66251"
+ x="182.27499"
+ style="stroke-width:1.06666669pt">I::A::Presenter</tspan></text>
+ <rect
+ style="color:#000000;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ id="rect21"
+ width="258.1958"
+ height="66.026642"
+ x="174.57297"
+ y="508"
+ ry="0.0000000" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="184.95416"
+ y="539.45001"
+ id="text22"><tspan
+ id="tspan26"
+ sodipodi:role="line"
+ y="539.45001"
+ x="184.95416"
+ style="stroke-width:1.06666669pt">I::A::Whiteboard</tspan></text>
+ <rect
+ style="color:#000000;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ id="rect24"
+ width="258.1958"
+ height="66.026642"
+ x="508.47086"
+ y="307.25339"
+ ry="0.0000000" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="518.95416"
+ y="339.61249"
+ id="text25"><tspan
+ id="tspan27"
+ sodipodi:role="line"
+ y="339.61249"
+ x="518.95416"
+ style="stroke-width:1.06666669pt">I::A::Cmdline</tspan></text>
+ <rect
+ style="color:#000000;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ id="rect27"
+ width="258.1958"
+ height="66.026642"
+ x="507.8042"
+ y="407.28006"
+ ry="0.0000000" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="521.22083"
+ y="439.66251"
+ id="text28"><tspan
+ id="tspan30"
+ sodipodi:role="line"
+ y="439.66251"
+ x="521.22083"
+ style="stroke-width:1.06666669pt">I::A::TestSuite</tspan></text>
+ <rect
+ style="color:#000000;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ id="rect30"
+ width="258.1958"
+ height="66.026642"
+ x="508.47086"
+ y="507.96674"
+ ry="0.0000000" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="520.27502"
+ y="539.45001"
+ id="text31"><tspan
+ id="tspan29"
+ sodipodi:role="line"
+ y="539.45001"
+ x="520.27502"
+ style="stroke-width:1.06666669pt">I::A::Player</tspan></text>
+ <path
+ sodipodi:nodetypes="ccc"
+ id="path200"
+ d="M 500,540 H 466.66667 V 240"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker-start:url(#TriangleInL);marker-end:none"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="rotate(-90)"
+ id="text201"
+ y="47.19479"
+ x="-213.45103"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:19.20000076px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:middle;fill:#0281ac;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="47.19479"
+ x="-213.45103"
+ id="tspan202"
+ sodipodi:role="line"
+ style="stroke-width:1.06666669pt">BASE</tspan><tspan
+ y="66.394791"
+ x="-213.45103"
+ id="tspan203"
+ sodipodi:role="line"
+ style="stroke-width:1.06666669pt">CLASS</tspan></text>
+ <text
+ transform="rotate(-90)"
+ id="text273"
+ y="47.583332"
+ x="-440.09167"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:19.20000076px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:middle;fill:#0281ac;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ id="tspan277"
+ sodipodi:role="line"
+ y="47.583332"
+ x="-440.09167"
+ style="stroke-width:1.06666669pt">RUN MODE</tspan><tspan
+ id="tspan278"
+ sodipodi:role="line"
+ y="66.783333"
+ x="-440.09167"
+ style="stroke-width:1.06666669pt">SUB-CLASSES</tspan></text>
+ <text
+ id="text353"
+ y="363.68256"
+ x="204"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.20000076px;line-height:100%;font-family:Monospace;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ id="tspan356"
+ sodipodi:role="line"
+ y="363.68256"
+ x="204"
+ style="stroke-width:1.06666669pt">$ inkscape</tspan></text>
+ <text
+ id="text357"
+ y="463.47424"
+ x="204"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.20000076px;line-height:100%;font-family:Monospace;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ id="tspan361"
+ sodipodi:role="line"
+ y="463.47424"
+ x="204"
+ style="stroke-width:1.06666669pt">$ inkview</tspan></text>
+ <text
+ id="text359"
+ y="563.26617"
+ x="204"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.20000076px;line-height:100%;font-family:Monospace;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ id="tspan362"
+ sodipodi:role="line"
+ y="563.26617"
+ x="204"
+ style="stroke-width:1.06666669pt">$ inkboard</tspan></text>
+ <text
+ id="text363"
+ y="363.68256"
+ x="543.9729"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.20000076px;line-height:100%;font-family:Monospace;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ id="tspan369"
+ sodipodi:role="line"
+ y="363.68256"
+ x="543.9729"
+ style="stroke-width:1.06666669pt">$ inkscape --no-gui</tspan></text>
+ <text
+ id="text365"
+ y="463.47424"
+ x="543.9729"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.20000076px;line-height:100%;font-family:Monospace;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ id="tspan371"
+ sodipodi:role="line"
+ y="463.47424"
+ x="543.9729"
+ style="stroke-width:1.06666669pt">$ inkscape --test</tspan></text>
+ <text
+ id="text367"
+ y="563.26617"
+ x="543.9729"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.20000076px;line-height:100%;font-family:Monospace;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ id="tspan372"
+ sodipodi:role="line"
+ y="563.26617"
+ x="543.9729"
+ style="stroke-width:1.06666669pt">$ inkscape --play</tspan></text>
+ <path
+ sodipodi:nodetypes="cc"
+ id="path79"
+ d="M 500,440 H 466.66667"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker-start:url(#TriangleInL);marker-end:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path82"
+ d="M 500,340 H 466.66667"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker-start:url(#TriangleInL);marker-end:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path87"
+ d="M 166.66667,440 H 133.33333"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker-start:url(#TriangleInL);marker-end:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path88"
+ d="M 166.66667,340 H 133.33333"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker-start:url(#TriangleInL);marker-end:none"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="Drawing Area" />
+</svg>
diff --git a/doc/NewAppArchitecture/13-future-ink-app-editor.svg b/doc/NewAppArchitecture/13-future-ink-app-editor.svg
new file mode 100644
index 0000000..7bfd93b
--- /dev/null
+++ b/doc/NewAppArchitecture/13-future-ink-app-editor.svg
@@ -0,0 +1,1549 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg586"
+ sodipodi:version="0.32"
+ inkscape:version="0.92.0 r15304"
+ width="640pt"
+ height="480pt"
+ sodipodi:docname="13-future-ink-app-editor.svg"
+ version="1.1">
+ <defs
+ id="defs588">
+ <marker
+ style="overflow:visible;"
+ id="marker368"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Dot_m">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt;marker-start:none;marker-end:none"
+ d="m 1.9735437,0 c 0,1.1776 -0.9557334,2.1333333 -2.13333335,2.1333333 C -1.3373897,2.1333333 -2.293123,1.1776 -2.293123,0 c 0,-1.1776 0.9557333,-2.1333333 2.13333335,-2.1333333 C 1.0178103,-2.1333333 1.9735437,-1.1776 1.9735437,0 Z"
+ id="path369"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker366"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Dot_m">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt;marker-start:none;marker-end:none"
+ d="m 1.9735437,0 c 0,1.1776 -0.9557334,2.1333333 -2.13333335,2.1333333 C -1.3373897,2.1333333 -2.293123,1.1776 -2.293123,0 c 0,-1.1776 0.9557333,-2.1333333 2.13333335,-2.1333333 C 1.0178103,-2.1333333 1.9735437,-1.1776 1.9735437,0 Z"
+ id="path367"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker363"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Dot_m">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt;marker-start:none;marker-end:none"
+ d="m 1.9735437,0 c 0,1.1776 -0.9557334,2.1333333 -2.13333335,2.1333333 C -1.3373897,2.1333333 -2.293123,1.1776 -2.293123,0 c 0,-1.1776 0.9557333,-2.1333333 2.13333335,-2.1333333 C 1.0178103,-2.1333333 1.9735437,-1.1776 1.9735437,0 Z"
+ id="path364"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker359"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Dot_m">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt;marker-start:none;marker-end:none"
+ d="m 1.9735437,0 c 0,1.1776 -0.9557334,2.1333333 -2.13333335,2.1333333 C -1.3373897,2.1333333 -2.293123,1.1776 -2.293123,0 c 0,-1.1776 0.9557333,-2.1333333 2.13333335,-2.1333333 C 1.0178103,-2.1333333 1.9735437,-1.1776 1.9735437,0 Z"
+ id="path362"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker205"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="DiamondL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M -1.8414239e-5,-6.0339855 -6.0339963,-7.6274277e-6 -1.8414239e-5,6.0339703 6.0339594,-7.6274277e-6 Z"
+ id="path206"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker202"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="DiamondL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M -1.8414239e-5,-6.0339855 -6.0339963,-7.6274277e-6 -1.8414239e-5,6.0339703 6.0339594,-7.6274277e-6 Z"
+ id="path203"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker199"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="DiamondL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M -1.8414239e-5,-6.0339855 -6.0339963,-7.6274277e-6 -1.8414239e-5,6.0339703 6.0339594,-7.6274277e-6 Z"
+ id="path200"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker194"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="DiamondL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M -1.8414239e-5,-6.0339855 -6.0339963,-7.6274277e-6 -1.8414239e-5,6.0339703 6.0339594,-7.6274277e-6 Z"
+ id="path196"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker30"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="DiamondL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M -1.8414239e-5,-6.0339855 -6.0339963,-7.6274277e-6 -1.8414239e-5,6.0339703 6.0339594,-7.6274277e-6 Z"
+ id="path31"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker28"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Dot_m">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt;marker-start:none;marker-end:none"
+ d="m 1.9735437,0 c 0,1.1776 -0.9557334,2.1333333 -2.13333335,2.1333333 C -1.3373897,2.1333333 -2.293123,1.1776 -2.293123,0 c 0,-1.1776 0.9557333,-2.1333333 2.13333335,-2.1333333 C 1.0178103,-2.1333333 1.9735437,-1.1776 1.9735437,0 Z"
+ id="path29"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker26"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Dot_m">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt;marker-start:none;marker-end:none"
+ d="m 1.9735437,0 c 0,1.1776 -0.9557334,2.1333333 -2.13333335,2.1333333 C -1.3373897,2.1333333 -2.293123,1.1776 -2.293123,0 c 0,-1.1776 0.9557333,-2.1333333 2.13333335,-2.1333333 C 1.0178103,-2.1333333 1.9735437,-1.1776 1.9735437,0 Z"
+ id="path27"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker24"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="DiamondL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M -1.8414239e-5,-6.0339855 -6.0339963,-7.6274277e-6 -1.8414239e-5,6.0339703 6.0339594,-7.6274277e-6 Z"
+ id="path25"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker358"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="DiamondL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M -1.8414239e-5,-6.0339855 -6.0339963,-7.6274277e-6 -1.8414239e-5,6.0339703 6.0339594,-7.6274277e-6 Z"
+ id="path359"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker355"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="DiamondL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M -1.8414239e-5,-6.0339855 -6.0339963,-7.6274277e-6 -1.8414239e-5,6.0339703 6.0339594,-7.6274277e-6 Z"
+ id="path356"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker352"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="DiamondL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M -1.8414239e-5,-6.0339855 -6.0339963,-7.6274277e-6 -1.8414239e-5,6.0339703 6.0339594,-7.6274277e-6 Z"
+ id="path353"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker349"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="DiamondL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M -1.8414239e-5,-6.0339855 -6.0339963,-7.6274277e-6 -1.8414239e-5,6.0339703 6.0339594,-7.6274277e-6 Z"
+ id="path350"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker346"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="DiamondL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M -1.8414239e-5,-6.0339855 -6.0339963,-7.6274277e-6 -1.8414239e-5,6.0339703 6.0339594,-7.6274277e-6 Z"
+ id="path347"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker343"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Dot_m">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt;marker-start:none;marker-end:none"
+ d="m 1.9735437,0 c 0,1.1776 -0.9557334,2.1333333 -2.13333335,2.1333333 C -1.3373897,2.1333333 -2.293123,1.1776 -2.293123,0 c 0,-1.1776 0.9557333,-2.1333333 2.13333335,-2.1333333 C 1.0178103,-2.1333333 1.9735437,-1.1776 1.9735437,0 Z"
+ id="path344"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker341"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Dot_m">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt;marker-start:none;marker-end:none"
+ d="m 1.9735437,0 c 0,1.1776 -0.9557334,2.1333333 -2.13333335,2.1333333 C -1.3373897,2.1333333 -2.293123,1.1776 -2.293123,0 c 0,-1.1776 0.9557333,-2.1333333 2.13333335,-2.1333333 C 1.0178103,-2.1333333 1.9735437,-1.1776 1.9735437,0 Z"
+ id="path342"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker338"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Dot_m">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt;marker-start:none;marker-end:none"
+ d="m 1.9735437,0 c 0,1.1776 -0.9557334,2.1333333 -2.13333335,2.1333333 C -1.3373897,2.1333333 -2.293123,1.1776 -2.293123,0 c 0,-1.1776 0.9557333,-2.1333333 2.13333335,-2.1333333 C 1.0178103,-2.1333333 1.9735437,-1.1776 1.9735437,0 Z"
+ id="path339"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker336"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Dot_m">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt;marker-start:none;marker-end:none"
+ d="m 1.9735437,0 c 0,1.1776 -0.9557334,2.1333333 -2.13333335,2.1333333 C -1.3373897,2.1333333 -2.293123,1.1776 -2.293123,0 c 0,-1.1776 0.9557333,-2.1333333 2.13333335,-2.1333333 C 1.0178103,-2.1333333 1.9735437,-1.1776 1.9735437,0 Z"
+ id="path337"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker333"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Dot_m">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt;marker-start:none;marker-end:none"
+ d="m 1.9735437,0 c 0,1.1776 -0.9557334,2.1333333 -2.13333335,2.1333333 C -1.3373897,2.1333333 -2.293123,1.1776 -2.293123,0 c 0,-1.1776 0.9557333,-2.1333333 2.13333335,-2.1333333 C 1.0178103,-2.1333333 1.9735437,-1.1776 1.9735437,0 Z"
+ id="path334"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker331"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Dot_m">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt;marker-start:none;marker-end:none"
+ d="m 1.9735437,0 c 0,1.1776 -0.9557334,2.1333333 -2.13333335,2.1333333 C -1.3373897,2.1333333 -2.293123,1.1776 -2.293123,0 c 0,-1.1776 0.9557333,-2.1333333 2.13333335,-2.1333333 C 1.0178103,-2.1333333 1.9735437,-1.1776 1.9735437,0 Z"
+ id="path332"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker328"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Dot_m">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt;marker-start:none;marker-end:none"
+ d="m 1.9735437,0 c 0,1.1776 -0.9557334,2.1333333 -2.13333335,2.1333333 C -1.3373897,2.1333333 -2.293123,1.1776 -2.293123,0 c 0,-1.1776 0.9557333,-2.1333333 2.13333335,-2.1333333 C 1.0178103,-2.1333333 1.9735437,-1.1776 1.9735437,0 Z"
+ id="path329"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker326"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Dot_m">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt;marker-start:none;marker-end:none"
+ d="m 1.9735437,0 c 0,1.1776 -0.9557334,2.1333333 -2.13333335,2.1333333 C -1.3373897,2.1333333 -2.293123,1.1776 -2.293123,0 c 0,-1.1776 0.9557333,-2.1333333 2.13333335,-2.1333333 C 1.0178103,-2.1333333 1.9735437,-1.1776 1.9735437,0 Z"
+ id="path327"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="Dot_m"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Dot_m">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt;marker-start:none;marker-end:none"
+ d="m 1.9735437,0 c 0,1.1776 -0.9557334,2.1333333 -2.13333335,2.1333333 C -1.3373897,2.1333333 -2.293123,1.1776 -2.293123,0 c 0,-1.1776 0.9557333,-2.1333333 2.13333335,-2.1333333 C 1.0178103,-2.1333333 1.9735437,-1.1776 1.9735437,0 Z"
+ id="path39"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker254"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="DiamondL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M -1.8414239e-5,-6.0339855 -6.0339963,-7.6274277e-6 -1.8414239e-5,6.0339703 6.0339594,-7.6274277e-6 Z"
+ id="path255"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker251"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="DiamondL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M -1.8414239e-5,-6.0339855 -6.0339963,-7.6274277e-6 -1.8414239e-5,6.0339703 6.0339594,-7.6274277e-6 Z"
+ id="path252"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker248"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="DiamondL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M -1.8414239e-5,-6.0339855 -6.0339963,-7.6274277e-6 -1.8414239e-5,6.0339703 6.0339594,-7.6274277e-6 Z"
+ id="path249"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="DiamondL"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="DiamondL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M -1.8414239e-5,-6.0339855 -6.0339963,-7.6274277e-6 -1.8414239e-5,6.0339703 6.0339594,-7.6274277e-6 Z"
+ id="path235"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="DiamondS"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="DiamondS">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.21333334pt;marker-start:none"
+ d="M -4.6035597e-6,-1.5084964 -1.5084991,-1.9068569e-6 -4.6035597e-6,1.5084926 1.5084899,-1.9068569e-6 Z"
+ id="path840"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker155"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path156"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleInL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker153"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path154"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker198"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path199"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleInL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker196"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path197"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker193"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path194"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleInL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker191"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path192"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker791"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path792"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker719"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path720"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleInL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker717"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path718"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker714"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path715"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleInL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker712"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path713"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker709"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path710"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleInL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker707"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path708"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker704"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path705"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleInL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker702"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path703"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="TriangleOutL"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path2817"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleInL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="TriangleInL"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path2823"
+ d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2L"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow2L"
+ style="overflow:visible;">
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path2863"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.73333335;stroke-linejoin:round"
+ d="M 4.363143,4.732916 -8.456553,0.01878889 4.3631437,-4.6953372 c -2.0480514,2.7832182 -2.0362505,6.5911436 -7e-7,9.4282532 z"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <linearGradient
+ id="linearGradient2570">
+ <stop
+ style="stop-color:#000000;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop2571" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.62745100;"
+ offset="0.58504134"
+ id="stop2572" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop2573" />
+ </linearGradient>
+ <linearGradient
+ xlink:href="#linearGradient1218"
+ id="linearGradient1322"
+ x1="77.599106"
+ y1="20.687101"
+ x2="53.030737"
+ y2="114.57422"
+ gradientTransform="matrix(1.3228549,0,0,1.2809931,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1273"
+ id="linearGradient1318"
+ x1="59.491886"
+ y1="30.563196"
+ x2="33.266399"
+ y2="58.199241"
+ gradientTransform="matrix(1.7409899,0,0,0.97333594,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1307"
+ x1="0.45376351"
+ y1="1.9347328"
+ x2="0.41986585"
+ y2="0.12454049"
+ gradientTransform="scale(1.004208,0.995809)" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1306"
+ x1="0.45009527"
+ y1="1.9667202"
+ x2="0.41548476"
+ y2="0.11846013"
+ gradientTransform="scale(1.006361,0.993679)" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1305"
+ x1="0.45839140"
+ y1="1.8676205"
+ x2="0.42603236"
+ y2="0.13959341"
+ gradientTransform="scale(1.002016,0.997989)" />
+ <linearGradient
+ xlink:href="#linearGradient1273"
+ id="linearGradient1277"
+ x1="11.967844"
+ y1="119.11808"
+ x2="51.413385"
+ y2="80.482086"
+ gradientTransform="matrix(1.8036348,0,0,1.2393329,-37.611189,-4.4599008)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1273"
+ id="linearGradient1272"
+ x1="118.66497"
+ y1="45.70058"
+ x2="90.28563"
+ y2="62.493129"
+ gradientTransform="matrix(1.4554449,0,0,1.1642956,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1270" />
+ <linearGradient
+ xlink:href="#linearGradient1323"
+ id="linearGradient1231"
+ x1="17.696665"
+ y1="120.74315"
+ x2="94.698939"
+ y2="120.74315"
+ gradientTransform="matrix(1.8150579,0,0,0.9336165,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1221"
+ x1="27.318817"
+ y1="170.27164"
+ x2="130.70353"
+ y2="28.120696"
+ gradientTransform="scale(1.0211162,0.97932047)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient1218">
+ <stop
+ style="stop-color:#000000;stop-opacity:1.0000000;"
+ offset="0.00000000"
+ id="stop1219" />
+ <stop
+ style="stop-color:#323232;stop-opacity:1.0000000;"
+ offset="0.073255815"
+ id="stop1321" />
+ <stop
+ style="stop-color:#000000;stop-opacity:1.0000000;"
+ offset="0.65260679"
+ id="stop1320" />
+ <stop
+ style="stop-color:#fff;stop-opacity:1;"
+ offset="1"
+ id="stop1220" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1222">
+ <stop
+ style="stop-color:#0081ac;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop1223" />
+ <stop
+ style="stop-color:#006d91;stop-opacity:0.62745100;"
+ offset="0.50000000"
+ id="stop1722" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop1224" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1273">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1.0000000;"
+ offset="0.00000000"
+ id="stop1274" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.00000000;"
+ offset="1.0000000"
+ id="stop1275" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1323">
+ <stop
+ style="stop-color:#000000;stop-opacity:0.77685952;"
+ offset="0.00000000"
+ id="stop1324" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.00000000;"
+ offset="1.0000000"
+ id="stop1325" />
+ </linearGradient>
+ <radialGradient
+ xlink:href="#linearGradient826"
+ id="radialGradient829"
+ cx="296.2963"
+ cy="281.25"
+ r="248.40302"
+ fx="303.7037"
+ fy="93.75"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.29936853,0,0,0.15858773,4.3548661,98.117152)" />
+ <linearGradient
+ id="linearGradient826">
+ <stop
+ style="stop-color:#000000;stop-opacity:0.95294118;"
+ offset="0.00000000"
+ id="stop827" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.76078433;"
+ offset="0.36585677"
+ id="stop830" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.52941179;"
+ offset="0.47107276"
+ id="stop847" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.00000000;"
+ offset="1.0000000"
+ id="stop828" />
+ </linearGradient>
+ <linearGradient
+ xlink:href="#linearGradient909"
+ id="linearGradient907"
+ x1="0.50000000"
+ y1="0.66667551"
+ x2="0.50000000"
+ y2="-1.7333326" />
+ <linearGradient
+ id="linearGradient909">
+ <stop
+ style="stop-color:#000000;stop-opacity:0.00000000;"
+ offset="0.00000000"
+ id="stop910" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.17000000;"
+ offset="1.0000000"
+ id="stop913" />
+ </linearGradient>
+ <linearGradient
+ xlink:href="#linearGradient1222"
+ id="linearGradient1309"
+ gradientTransform="scale(2.8444445,0.4)"
+ x1="0"
+ y1="4.7369516e-15"
+ x2="300"
+ y2="4.7369516e-15"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient2570"
+ id="linearGradient1308"
+ x1="-0.0028122679"
+ y1="1365.4825"
+ x2="64.30938"
+ y2="1365.4825"
+ gradientTransform="scale(13.227991,0.0860129)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient826"
+ id="radialGradient40544"
+ cx="296.2963"
+ cy="281.25"
+ fx="303.7037"
+ fy="93.75"
+ r="248.40302"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4203424,0,0,0.08699077,-33.810677,100.89451)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient40546"
+ x1="33.344169"
+ y1="164.17808"
+ x2="131.82116"
+ y2="28.775105"
+ gradientTransform="scale(1.0839555,1.0496536)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient40548"
+ x1="31.731446"
+ y1="165.85049"
+ x2="131.57971"
+ y2="28.562063"
+ gradientTransform="scale(1.0848907,1.0487488)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient40550"
+ x1="35.171777"
+ y1="162.0032"
+ x2="131.8238"
+ y2="29.109513"
+ gradientTransform="scale(1.0846262,1.0490045)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient40552"
+ x1="37.676606"
+ y1="159.47478"
+ x2="132.33793"
+ y2="29.318235"
+ gradientTransform="scale(1.0823063,1.051253)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient40554"
+ x1="29.920773"
+ y1="167.66146"
+ x2="131.16846"
+ y2="28.448861"
+ gradientTransform="scale(1.0869998,1.0467139)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient40556"
+ x1="27.318817"
+ y1="170.27164"
+ x2="130.70353"
+ y2="28.120696"
+ gradientTransform="scale(1.0891906,1.0446085)"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.1640625"
+ inkscape:cx="426.66667"
+ inkscape:cy="320"
+ inkscape:window-width="1248"
+ inkscape:window-height="964"
+ inkscape:window-x="24"
+ inkscape:window-y="25"
+ showguides="true"
+ inkscape:guide-bbox="false"
+ inkscape:current-layer="layer2"
+ showgrid="true"
+ inkscape:guide-points="true"
+ gridtolerance="50.000000pt"
+ inkscape:grid-points="true"
+ inkscape:grid-bbox="false"
+ inkscape:window-maximized="0">
+ <inkscape:grid
+ id="GridFromPre046Settings"
+ type="xygrid"
+ originx="0"
+ originy="0"
+ spacingx="7.1111111"
+ spacingy="7.1111111"
+ color="#3f3fff"
+ empcolor="#3f3fff"
+ opacity="0.15"
+ empopacity="0.38"
+ empspacing="5" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata33">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer1"
+ inkscape:label="Background"
+ style="display:block">
+ <rect
+ style="font-size:12px;fill:url(#linearGradient1309);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.20000017pt"
+ id="topbluebox"
+ width="853.33331"
+ height="120"
+ x="0"
+ y="1.8947807e-15" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient1308);stroke-width:5.31674433;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M -0.03652902,117.55657 850.68323,117.34163"
+ id="path654"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0" />
+ <g
+ id="g1085"
+ transform="translate(689.36448,-10.40511)">
+ <g
+ id="g1394"
+ transform="matrix(0.875802,0,0,0.869278,1.1184885,-8.4967275)">
+ <ellipse
+ id="path898"
+ style="opacity:0.69398911;fill:url(#radialGradient40544);stroke-width:0.84729707;stroke-dashoffset:0"
+ cx="92.292046"
+ cy="126.99174"
+ rx="126.10272"
+ ry="26.097233" />
+ <ellipse
+ id="ball1"
+ style="fill:url(#radialGradient829);stroke-width:0.96546245;stroke-dashoffset:0"
+ cx="94.165428"
+ cy="145.69347"
+ rx="89.810562"
+ ry="47.576321" />
+ </g>
+ <g
+ id="g1310"
+ transform="matrix(1.822197,0,0,1.662749,-192.00875,13.084299)"
+ style="fill:url(#linearGradient1221)">
+ <path
+ style="fill:url(#linearGradient40546);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 148.55614,11.815593 c -2.18769,1e-6 -4.39029,0.823628 -6.06667,2.5 l -29.76666,29.8 c -1.64308,1.643032 -2.50068,3.78929 -2.53334,5.933333 -4.6e-4,0.03598 0,0.09736 0,0.133333 h 0.0667 c 0.57027,2.16974 15.28934,4.922713 16.93333,6.566667 2.48272,2.482738 -9.51602,4.317248 -7.03333,6.8 2.48271,2.482709 15.01704,4.783915 17.5,7.266669 2.48273,2.48272 -5.08275,5.11728 -2.6,7.6 2.48272,2.482753 10.81047,-0.609259 9.3,5.866667 3.35273,3.352736 10.34963,1.752736 15.03333,-1.6 2.48272,-2.482721 -4.74941,-2.250614 -2.26666,-4.733334 2.48272,-2.482752 8.75277,-2.494421 14.03333,-8.433335 -2.12548,-3.305654 -9.08274,-4.717259 -6.6,-7.2 2.48272,-2.482715 7.28509,-1.236886 17.7,-5.966667 5.08413,-2.309024 4.68613,-4.040355 4.66667,-6.166667 -4.1e-4,-0.04475 0,-0.08825 0,-0.133333 h -0.0333 c -0.0326,-2.144041 -0.85698,-4.290298 -2.5,-5.933333 l -29.8,-29.8 c -1.67637,-1.67637 -3.84565,-2.5 -6.03334,-2.5 z m -0.26667,3.866666 c 0.97256,0.02533 1.75986,0.768324 3.3,1.766667 l 14.06667,10.433333 c 0.15408,0.09991 0.29855,0.192996 0.43333,0.3 0.1348,0.10699 0.28452,0.220015 0.4,0.333334 0.11548,0.113111 0.20364,0.248218 0.3,0.366666 0.0961,0.118429 0.18984,0.244093 0.26667,0.366667 0.077,0.122774 0.14229,0.240765 0.2,0.366667 0.0577,0.126131 0.0949,0.238188 0.13333,0.366666 0.0386,0.128282 0.0808,0.270352 0.1,0.4 0.0193,0.12988 0.0333,0.269763 0.0333,0.4 l -8.33333,-4.033333 -0.83334,6.3 -4.6,-2.166667 -7.06666,4.733334 -2.73334,-9.333334 -3.46666,8.166667 -9.76667,0.966667 0.1,-4.333334 c 0,-1.042224 5.64516,-8.329604 9.06666,-10.066666 l 6.26667,-4.5 c 0.92408,-0.599006 1.54979,-0.848535 2.13333,-0.833334 z m -12.93333,42.6 c 4.43676,1.15063 9.37288,2.639674 13.33333,2.666667 l 0.16667,1.8 c -3.39138,-0.349579 -10.57471,-2.002379 -12.26667,-2.866667 z m 46.23333,7.9 c -0.67728,-0.02171 -1.31822,0.0462 -1.8,0.166667 -0.90833,0.226965 -5.321,0.331531 -4.96666,3.166667 3.89845,1.416876 9.92489,2.502007 10.63333,-0.333334 0.53176,-2.12593 -1.83484,-2.93489 -3.86667,-3 z m -50.96666,5.766669 c -0.61333,-0.07148 -1.21336,0.0042 -1.8,0.3 -2.34598,1.183349 -3.92502,3.81264 -1.73334,4.9 2.19191,1.08736 3.74516,-0.150741 5.66667,-1.5 1.92173,-1.349045 1.87228,-1.612875 1.73333,-2.133333 -0.26601,0.07094 -2.02669,-1.352235 -3.86666,-1.566667 z m 42.86666,0.466667 c -1.77199,0.708629 -1.75118,3.170389 -0.33333,4.233333 1.41748,1.063157 3.19156,0.375499 3.9,-0.333333 0.70902,-0.70863 -0.023,-3.19136 -3.56667,-3.9 z"
+ id="path1278"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient40548);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 147.16667,11.433333 c -3.48238,0.364902 -5.88303,3.345755 -8.33158,5.570373 -8.94544,9.133798 -18.09349,18.101949 -26.95799,27.294024 -1.44334,1.84378 -2.03035,4.015468 -2.31043,6.30227 5.03542,3.678658 11.71157,3.699536 17.06666,6.766667 -1.50817,2.381747 -5.17846,2.289571 -6.84097,4.663825 -1.44519,0.973702 0.60698,2.569614 1.6838,2.93719 4.47582,2.259905 9.5207,3.127075 13.9674,5.505719 2.30619,0.164974 2.15073,2.483836 0.6201,3.623175 -1.21232,1.221254 -3.08705,3.249751 -1.23288,4.771441 2.26675,1.575369 5.27199,1.144095 7.80255,2.065316 1.77826,0.975122 0.51639,2.738136 1.73334,3.966667 3.05603,2.396513 7.28787,1.973693 10.69445,0.606201 1.75151,-0.515126 3.34201,-1.653286 4.87221,-2.539534 1.47613,-1.720326 -0.82595,-2.9513 -2.13333,-3.666667 -0.85913,-1.425274 2.00009,-1.997097 2.97462,-2.675578 3.73665,-1.514529 7.36553,-3.267329 10.23683,-6.143331 1.79011,-1.105032 -0.83882,-2.676851 -1.67812,-3.547758 -1.55141,-1.15048 -3.58938,-1.860548 -4.56666,-3.633333 2.52043,-2.7807 6.7319,-2.262194 9.98204,-3.687561 3.90317,-0.992642 7.61596,-2.729652 11.05532,-4.741974 2.26951,-1.69135 1.67257,-4.636557 1.22998,-7.021773 -1.61839,-5.025589 -6.41885,-8.01283 -9.81146,-11.814386 -7.61983,-7.514247 -15.1255,-15.17228 -22.81612,-22.597384 -2.05244,-1.578655 -4.64151,-2.423668 -7.23976,-2.003589 z M 149.5,16.766667 c 5.52064,4.046284 11.05387,8.077891 16.56667,12.133333 0.11539,1.103552 -2.90244,-1.172627 -4.0558,-1.481882 -1.41219,-0.420198 -3.8964,-2.894916 -3.5025,0.03341 -0.60562,1.192982 0.31151,5.203671 -1.4377,4.28052 -1.58183,-0.849857 -3.68447,-2.113891 -5.18058,-0.378679 -1.61892,1.082213 -3.23783,2.164425 -4.85676,3.246637 -0.9783,-3.377623 -1.95211,-6.756554 -2.93333,-10.133333 -1.34602,3.127884 -2.66477,6.267483 -4,9.4 -2.92222,0.288888 -5.84445,0.577778 -8.76667,0.866667 -0.20184,-2.166309 0.27133,-4.341771 1.77562,-5.878158 3.25057,-5.211552 8.66632,-8.395371 13.54451,-11.865011 0.95273,-0.564092 1.80847,-0.493262 2.84654,-0.223498 z m -8.63333,43.566666 c 2.34366,0.607254 4.78296,0.727797 7.16666,1.133334 -0.90625,1.084587 -3.14277,-0.32439 -4.56523,-0.371058 -1.8583,-0.406252 -3.7163,-0.80007 -5.4681,-1.562276 0.95555,0.266667 1.91111,0.533334 2.86667,0.8 z m 38.86666,5.4 c -2.15488,0.501536 -5.22675,0.793815 -5.5,3.566667 0.70833,1.029809 2.96093,1.412478 4.40801,1.688268 2.27503,0.363118 5.38493,1.181831 6.97878,-0.937576 1.36135,-1.898234 -0.67459,-4.313995 -2.78769,-4.178768 -1.02575,-0.350017 -2.04343,-0.268702 -3.0991,-0.138591 z m -51.03333,5.9 c -1.57612,1.085018 -3.71575,2.720281 -3.03333,4.9 1.61184,2.339234 4.94529,1.683368 6.78753,-0.0057 1.2184,-0.692559 3.25469,-2.021692 2.31247,-3.560997 -1.93436,-0.840999 -3.87915,-2.117169 -6.06667,-1.333334 z m 44.36667,0.333334 c -1.34895,0.891833 -1.89168,2.759628 -0.95675,4.109348 0.71622,1.795233 3.11379,1.982508 4.57991,1.004604 1.95986,-0.600235 1.10016,-3.109938 -0.33003,-3.844913 -0.72045,-0.899439 -2.36482,-1.335642 -3.29313,-1.269039 z"
+ id="path1283"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient40550);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 146.23333,12.866667 c -3.88385,1.702193 -6.61189,5.324961 -9.67052,8.210746 -7.86956,8.018198 -15.90416,15.90198 -23.69161,23.983409 -1.11331,1.428597 -1.72615,3.060044 -2.00453,4.839178 4.36,3.072638 10.04495,3.23545 14.7573,5.603266 1.5625,0.15548 3.26141,1.73801 1.81635,3.072207 -1.86501,1.91956 -5.15011,2.084779 -6.70699,4.291194 4.05269,2.923397 9.10625,3.602288 13.58014,5.613093 1.52915,1.119169 4.28812,1.21833 4.3532,3.553573 -0.41298,2.06712 -2.47344,3.267809 -3.36667,5.133334 1.94434,2.744072 5.94438,1.261888 8.50547,3.040805 1.3908,0.857738 1.00828,2.693049 1.62108,3.831047 3.2048,2.344549 7.71164,1.319869 10.94656,-0.558135 1.04365,-0.353733 3.89943,-1.626855 1.76272,-2.556043 -1.55651,-0.349067 -2.86028,-2.213166 -1.35103,-3.402938 3.84858,-2.931245 9.10998,-3.601158 12.55258,-7.214396 1.79927,-1.361045 -1.31628,-2.560541 -2.24828,-3.336495 -1.41778,-1.044797 -3.86698,-2.048091 -3.55577,-4.137179 2.35965,-3.274836 6.88107,-2.833411 10.31383,-4.263585 3.90311,-0.957377 7.67689,-2.630842 11.10878,-4.611597 2.18816,-1.940094 1.07405,-5.046756 0.32835,-7.371909 -3.93266,-5.513287 -9.35396,-9.75581 -13.9708,-14.686024 -5.91778,-5.783657 -11.65452,-11.813723 -17.68454,-17.444607 -2.14828,-1.370565 -4.63208,-2.556154 -7.20805,-1.62333 z m 2.3,2.233333 c 5.45973,2.578599 9.80753,6.890051 14.73244,10.347527 1.85084,1.664819 5.00363,2.778901 4.9009,5.71914 -1.78479,0.428996 -3.34725,-1.396857 -5.04898,-1.86837 -1.54021,-0.520034 -4.1213,-2.963549 -3.68846,0.16232 -0.54825,1.127161 0.22527,4.775461 -1.23798,4.170178 -1.53672,-0.653008 -3.2567,-1.905943 -4.87859,-1.758173 -2.31413,1.577535 -4.63724,3.142054 -6.94599,4.727378 -0.87266,-2.83558 -1.68407,-5.690403 -2.53334,-8.533333 -1.12707,2.260756 -1.98302,4.959333 -3.26666,6.966666 -3.47777,0.344565 -6.95563,0.688221 -10.43334,1.033334 0.0287,-2.531437 -0.43925,-5.398577 1.54821,-7.372648 3.13073,-5.303181 8.62883,-8.494145 13.35179,-12.127352 1.15867,-0.426692 2.35212,-1.253526 3.5,-1.466667 z m -13.76666,42.4 c 4.77393,1.272573 9.58904,2.318786 14.5,2.9 0.93608,1.872033 -0.34236,3.482335 -2.33168,2.565935 -3.62332,-0.734316 -7.25018,-1.727438 -10.80166,-2.699268 -0.26564,-0.514085 -3.09159,-3.378118 -1.36666,-2.766667 z m 45.16666,9.433333 c -1.51493,0.422114 -3.72691,0.290818 -4.26666,2.133334 2.90995,0.556827 6.05202,2.002088 8.9,0.466666 0.978,-1.977585 -1.92783,-2.538134 -3.31385,-2.645499 -0.43983,0.01517 -0.87966,0.03034 -1.31949,0.0455 z m -50.9,5.866667 c -1.16024,0.90047 -3.46737,3.083937 -1.02728,3.858837 2.25255,0.543858 3.96147,-1.380385 5.62728,-2.558837 -1.18522,-1.161836 -2.98479,-1.601218 -4.6,-1.3 z m 44.03334,0.733333 c -1.04902,2.027564 1.90687,4.021482 3.28133,2.230908 0.70415,-1.13156 -2.36473,-3.118333 -3.28133,-2.230908 z"
+ id="path1286"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient40552);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 146.66667,13.4 c -6.33172,3.543401 -10.68888,9.547281 -15.90063,14.447274 -5.8861,6.073656 -12.00588,11.974663 -17.74737,18.155152 -0.7305,1.178656 -2.18908,3.828459 -0.0714,4.248788 4.9013,2.576465 10.86092,2.972757 15.3194,6.215453 1.00861,2.475215 -2.05916,3.484953 -3.70454,4.477414 -1.7373,0.545523 -3.75405,2.175563 -0.84454,2.774326 4.83335,2.60598 10.58594,3.28132 15.01575,6.64826 1.43136,2.33294 -1.26292,4.394234 -2.23809,6.238069 0.0119,1.908953 2.8242,1.486185 4.14874,2.002826 2.29679,0.177914 4.75661,1.464231 4.98406,3.992952 0.7695,2.00242 3.5144,2.068656 5.37195,2.066153 2.47607,-0.312856 4.61313,-1.6278 6.86667,-2.6 -0.11425,-1.550102 -2.69456,-1.700315 -2.36667,-3.6 1.99363,-3.193298 6.06476,-3.869656 9.11608,-5.707796 1.73236,-0.750835 3.28599,-1.893245 4.45059,-3.392204 -1.92497,-2.280272 -5.74204,-3.012313 -6.11314,-6.406102 0.39022,-1.188208 2.2736,-2.314015 3.60639,-2.891301 5.6785,-2.143002 11.88985,-2.970298 17.10185,-6.270592 2.74324,-1.108432 1.83527,-4.538836 1.0317,-6.686009 -2.29624,-3.22589 -5.40132,-6.000174 -8.00828,-9.052576 -2.68656,-2.760044 -5.48876,-5.408427 -8.21852,-8.126754 1.12365,1.634362 -0.99109,2.422313 -2.21269,1.401868 -2.03118,-0.886068 -4.05629,-1.760173 -6.12064,-2.568534 C 160.05314,30.54272 159.67649,32.269964 159.3,34 c -2.55377,0.684822 -5.03322,-2.683187 -7.35336,-0.501311 -1.91379,1.060257 -3.40719,2.847058 -5.45058,3.513153 -1.46281,-0.265507 -1.26699,-3.243895 -2.01992,-4.618246 -0.44179,-3.083731 -1.2118,-2.404985 -2.14312,0.123134 -0.85365,1.59882 -1.21984,3.834303 -3.53335,3.298267 -3.08878,0.306225 -6.17762,0.611598 -9.26633,0.918336 0.0202,-3.177717 -0.28551,-6.766 2.22768,-9.171123 3.51639,-4.960964 8.70856,-8.341185 13.55479,-11.782731 1.62219,-0.752906 3.63701,-1.872712 5.13828,-0.273654 3.97373,2.727514 8.02021,5.285521 11.74591,8.327508 -3.19568,-3.018643 -6.19482,-6.317986 -9.51099,-9.164539 -1.87897,-0.938934 -3.8675,-2.092901 -6.02238,-1.268794 z m -11.83334,43.5 c 5.00075,0.984495 9.99566,2.003225 15,2.966667 0.20732,1.45664 0.46427,3.886308 -1.67313,3.831478 -4.16789,-0.795987 -8.38205,-1.956384 -12.49353,-3.031478 -0.61549,-0.980519 -2.50897,-2.472939 -1.9,-3.466667 0.35063,-0.05103 0.72399,-0.354699 1.06666,-0.3 z m 42.8,11.166667 c -1.73875,1.086025 2.33789,1.138186 3.27372,1.439238 1.30579,0.375237 4.48185,-0.551342 2.02628,-1.672572 -1.83243,-0.401834 -3.50784,-0.360679 -5.3,0.233334 z M 128.86667,73.8 c -2.17346,1.397366 -0.18414,3.053084 1.5865,1.699463 2.04828,-0.249261 2.08866,-2.343116 -0.17211,-2.051831 -0.54677,-0.07524 -0.99718,-0.0549 -1.41439,0.352368 z m 44.76666,1.133333 c 2.4133,2.30436 1.83777,-1.778179 0,-0.492892 0,0.102368 0,0.430964 0,0.492892 z"
+ id="path1295"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient40554);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 146.4,11 c -2.85517,0.532698 -4.88261,2.920832 -7.04143,4.696624 -9.46036,9.318687 -18.69953,18.903094 -28.02524,28.336709 -1.28513,2.140689 -2.02923,4.453081 -2.46666,6.9 4.02374,2.003945 8.08967,3.86007 12.47179,4.935568 1.05804,0.665393 4.69014,0.890135 3.49487,2.397766 -2.29866,1.221998 -5.17006,2.048868 -6.16666,4.733333 1.94556,3.411999 6.27529,3.61226 9.48467,5.236915 2.69399,1.065471 5.388,2.130945 8.08199,3.196418 0.0835,2.815831 -0.6308,1.873266 -2.05017,0.611648 -2.17089,-1.1027 -5.39205,-2.114404 -7.09766,0.274746 -1.55046,0.944625 -2.75719,3.349765 -1.57432,4.866099 2.21286,2.398176 6.00771,1.27668 8.06067,-0.779037 0.17795,-0.191378 -0.29693,2.877758 1.42073,3.193938 2.34275,1.346613 5.33929,0.970157 7.67409,2.299273 0.45283,1.979683 1.2508,4.221333 3.5739,4.531638 3.66844,1.48315 7.80683,0.39212 11.09794,-1.541311 1.39792,-0.760174 4.07797,-1.323747 3.46357,-3.423687 -0.0478,-1.38074 -3.42818,-2.212653 -1.53541,-3.499973 4.53006,-2.016167 9.17312,-4.142848 12.66666,-7.733334 0.85723,-2.253596 -2.25712,-3.193724 -3.46666,-4.566666 -1.4517,-1.221069 -3.87877,-2.524433 -0.81856,-3.364818 5.62839,-2.111859 11.87228,-2.940184 17.03456,-6.263438 2.72995,-0.86584 3.85371,-3.957742 3.06767,-6.564064 -0.0255,-2.62475 -1.76154,-4.797622 -3.22224,-6.835657 C 179.45289,36.856816 173.58197,31.828345 168.24204,26.291461 163.60188,21.818095 159.14228,17.065484 154.39198,12.762657 151.99166,11.220691 149.22884,10.717147 146.4,11 Z m 3.36667,6.733333 c 4.24058,2.976224 8.38139,6.129328 12.6,9.166667 -1.29937,-0.797366 -2.67486,-1.290978 -4.2,-1.4 -0.21287,1.824575 -0.47054,3.643999 -0.7,5.466667 -1.97534,-0.587625 -4.21204,-1.778592 -5.97773,-0.09263 -1.30676,0.402533 -3.52226,3.290581 -4.25972,2.135968 -0.99915,-3.447628 -1.99405,-6.896491 -2.99589,-10.343339 -1.52265,3.539479 -3.02044,7.089652 -4.53333,10.633333 -2.56667,0.255555 -5.13333,0.511111 -7.7,0.766667 -0.0148,-3.662276 2.83591,-6.395601 5.07235,-8.959274 3.30461,-2.837611 6.75708,-5.60858 10.52338,-7.756865 0.7316,-0.360909 1.44586,0.250944 2.17094,0.382806 z m 26.36666,48.333334 C 174.87994,66.86218 172.84987,68.441375 174.2,70 c 2.62772,1.71982 5.90645,1.835937 8.93343,1.934762 2.25075,-0.06272 4.4688,-2.726652 2.93663,-4.770688 -1.42803,-2.456455 -4.67977,-1.908377 -7.06627,-1.883005 -0.95681,0.261868 -1.91364,0.523732 -2.87046,0.785598 z m -3.3,5.433333 c -1.27562,1.033534 -1.85687,2.841465 -1.35231,4.508785 0.43077,1.899535 2.6256,2.385569 4.29198,1.849858 2.50838,0.201444 3.52565,-3.378484 1.43654,-4.628378 -1.24197,-1.050288 -2.64377,-2.095016 -4.37621,-1.730265 z"
+ id="path1300"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient40556);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ d="m 146,10.2 c -5.57009,2.353735 -9.31153,7.276932 -13.56394,11.364379 -7.26121,7.360863 -14.57305,14.685571 -21.80273,22.068954 -0.92375,2.588329 -1.83526,5.181133 -2.76666,7.766667 5.12606,2.235525 10.28103,4.361596 15.6,6.1 -0.32712,1.554459 -2.93579,1.371077 -3.74338,2.860476 -1.43416,0.914482 -2.37188,3.411157 -0.36803,4.245199 3.1673,2.975582 7.51398,4.048213 11.44474,5.660992 -3.09041,-0.89746 -5.13867,2.363507 -6.33333,4.666666 -0.72155,2.880448 2.58866,4.694489 5.06851,4.276737 1.54135,0.553684 3.66,-2.522746 3.86807,-0.13866 2.29497,2.607941 6.70581,1.993255 9.10076,4.436609 0.7749,2.147771 2.55461,3.943898 4.94541,3.965707 2.15881,0.621481 4.27216,0.328386 6.35476,-0.418515 2.43249,-0.54992 4.74804,-1.764623 6.87594,-2.976017 1.61013,-1.140622 1.25617,-3.709454 -0.21345,-4.812527 -0.21701,-1.714746 2.45466,-1.738353 3.54015,-2.659077 2.92458,-1.339302 5.49291,-3.216603 7.95985,-5.240923 -1.09048,1.568168 -1.50221,3.637034 -0.89348,5.420276 1.02957,2.431889 4.09705,1.779572 6.16014,1.64639 C 179.29546,77.451445 180.09314,74.273508 178,72.9 c -3.03927,-1.879702 -0.42819,-1.002977 1.49692,-0.460891 2.38484,0.141742 5.36949,0.891675 6.99369,-1.418947 1.80089,-1.737129 0.66941,-4.475043 -1.05728,-5.820162 -2.14881,-1.14371 -4.72742,-0.810973 -7.057,-0.699886 -2.09119,0.370608 -3.67839,1.613047 -4.97633,3.233219 -1.58756,1.272788 1.82748,3.61782 -0.0532,3.147933 -1.36163,0.234395 0.30799,-2.483632 -1.32358,-3.36862 -1.06348,-1.560896 -2.85826,-2.534055 -4.1899,-3.879313 6.43141,-3.110773 13.94477,-3.952924 19.7,-8.433333 2.10991,-2.5028 1.15052,-5.815831 0.53333,-8.666667 C 184.23156,39.549156 177.84192,34.54079 172.35319,28.898191 166.50884,23.205036 160.69939,17.462459 154.83333,11.8 152.27799,10.77259 149.66457,10.063772 146.88646,10.206305 146.60075,10.233991 146.27214,10.101959 146,10.2 Z m 7.6,11.266667 c 1.51374,1.165288 3.04586,2.309495 4.56667,3.466666 -1.39718,1.06872 -0.90296,3.127104 -1.4,4.633334 -2.08576,-0.566112 -4.35694,-0.641822 -6.05767,0.905733 -1.05102,0.888519 -3.01815,1.872214 -3.17799,-0.196242 -0.93874,-3.234383 -1.83,-6.48501 -2.79768,-9.709491 1.63294,-0.494373 3.30094,-3.132711 4.90134,-1.63781 1.32178,0.845937 2.64355,1.691873 3.96533,2.53781 z m -14.36667,10.966666 c -1.96666,0.2 -3.93333,0.4 -5.9,0.6 0.75323,-3.751583 3.85837,-6.37712 6.49928,-8.892012 1.44608,-1.049755 2.80293,-2.240606 4.30072,-3.207988 -1.63333,3.833334 -3.26666,7.666667 -4.9,11.5 z"
+ id="path1304"
+ inkscape:connector-curvature="0" />
+ </g>
+ <path
+ style="fill:url(#linearGradient1322);fill-rule:evenodd;stroke-width:1.30175579pt"
+ d="m 80.606138,21.093974 c -3.986404,2e-6 -7.999981,1.500815 -11.054664,4.555494 L 15.31073,79.950952 c -2.994002,2.993929 -4.556718,6.904836 -4.616235,10.811705 -8.35e-4,0.06557 0,0.177392 0,0.24296 h 0.12148 c 1.039149,3.953694 27.860205,8.970154 30.855878,11.965763 4.524006,4.52404 -17.340071,7.86688 -12.816122,12.39094 4.523986,4.52399 27.364021,8.71724 31.888455,13.2413 4.524026,4.52402 -9.261778,9.3247 -4.737714,13.8487 4.524006,4.52407 19.69882,-1.11018 16.946437,10.69023 6.109347,6.10935 18.859073,3.19383 27.393701,-2.91552 4.52401,-4.524 -8.654358,-4.10106 -4.130314,-8.62506 4.524004,-4.52406 15.949294,-4.54533 25.571504,-15.3672 -3.87306,-6.02355 -16.55055,-8.59578 -12.0265,-13.11982 4.524,-4.524 13.27486,-2.25385 32.25288,-10.87245 9.26429,-4.207497 8.53905,-7.362324 8.50359,-11.236883 -7.4e-4,-0.08153 0,-0.160805 0,-0.24296 h -0.0608 c -0.0595,-3.906866 -1.56157,-7.817769 -4.55549,-10.811705 L 91.600063,25.649468 C 88.5454,22.594793 84.592543,21.093974 80.606138,21.093974 Z M 56.553132,105.76542 c 8.084647,2.09667 17.079247,4.81 24.295966,4.85919 l 0.3037,3.27996 c -6.179767,-0.63701 -19.269208,-3.64874 -22.352289,-5.22364 z m 84.246258,14.39535 c -1.23415,-0.0395 -2.40206,0.0842 -3.27996,0.3037 -1.65516,0.41359 -9.69592,0.60412 -9.05025,5.7703 7.10376,2.58184 18.08512,4.55915 19.37604,-0.6074 0.96897,-3.87387 -3.34345,-5.34795 -7.04583,-5.4666 z m -92.871326,10.50801 c -1.117595,-0.13024 -2.210972,0.008 -3.279956,0.54666 -4.274826,2.15631 -7.152149,6.94739 -3.158474,8.92877 3.99408,1.98139 6.824425,-0.27467 10.325785,-2.7333 3.501767,-2.45822 3.411658,-2.93897 3.158475,-3.88735 -0.484734,0.12928 -3.693025,-2.46403 -7.04583,-2.85478 z m 78.111516,0.85036 c -3.22891,1.29126 -3.19098,5.77708 -0.60739,7.71397 2.58293,1.93728 5.81565,0.68424 7.10657,-0.6074 1.29198,-1.29126 -0.042,-5.81528 -6.49918,-7.10657 z"
+ id="path1217"
+ sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient1231);fill-rule:evenodd;stroke-width:1.30175579pt"
+ d="m 11.977124,84.576671 c -0.883927,1.953959 -1.36513,4.04141 -1.397018,6.134731 -8.33e-4,0.06556 0,0.177399 0,0.24296 h 0.12148 c 0.994358,3.78327 25.07956,8.512878 29.823299,11.540588 2.091809,-1.24429 3.465756,-2.547484 2.065157,-3.948099 C 39.594368,95.551236 12.773315,90.53478 11.734165,86.581087 h -0.12148 c 0,-0.06558 -8.33e-4,-0.177399 0,-0.242958 0.0091,-0.601939 0.284168,-1.162709 0.364439,-1.761458 z M 150.34262,92.47286 c -1.0612,1.680115 -3.10061,3.387829 -7.41026,5.345111 -18.97801,8.618589 -27.72886,6.348449 -32.25287,10.872439 -1.37053,1.37052 -0.88153,2.54264 0.18222,3.70513 4.78924,-3.38639 13.4115,-2.19944 31.03808,-10.20429 8.00504,-3.635614 8.46503,-6.511246 8.44283,-9.71839 z m -92.871299,8.86803 2.247377,2.9155 c 3.08308,1.57491 16.17252,4.58665 22.352289,5.22364 l -0.303699,-3.27996 c -7.216719,-0.0492 -16.21132,-2.7625 -24.295967,-4.85918 z M 30.685018,111.4237 c -2.022925,1.2244 -3.320206,2.51079 -1.943676,3.88736 4.523988,4.52399 27.364021,8.71723 31.888455,13.2413 0.198962,0.19895 0.17245,0.40741 0.3037,0.6074 1.405197,-1.67236 2.355425,-3.35413 0.728879,-4.98067 -4.359755,-4.3594 -25.379991,-8.41841 -30.977358,-12.75539 z m 100.220842,10.75097 c -1.55381,0.80713 -2.80902,1.9449 -2.55108,4.00882 7.10375,2.58184 18.08511,4.55915 19.37603,-0.60738 0.25122,-1.00435 0.11312,-1.85114 -0.24296,-2.55108 -3.06888,2.47706 -10.66085,1.09402 -16.58199,-0.85036 z m -11.17612,2.18664 c -8.90094,7.91694 -18.52655,8.74738 -22.595255,12.81612 -1.63664,1.63663 -0.713263,2.53048 0.6074,3.34069 5.191475,-3.47749 15.190165,-4.50342 23.931535,-14.33463 -0.44804,-0.69679 -1.30027,-1.20938 -1.94368,-1.82218 z m 5.0414,8.01767 c -1.86829,1.81567 -1.62997,5.17107 0.54666,6.80287 2.58292,1.93727 5.81565,0.68422 7.10656,-0.6074 0.66392,-0.66356 0.57592,-2.15087 -0.48592,-3.6444 -1.57518,0.81115 -3.6457,1.33536 -5.58806,-0.12148 -0.82081,-0.61535 -1.29544,-1.48388 -1.57924,-2.42959 z m -71.612353,0.24296 c -0.216533,0.15768 -0.17254,0.18708 -0.42518,0.36444 -3.501359,2.45861 -6.331704,4.7147 -10.325785,2.73329 -0.835138,-0.41433 -1.173493,-1.0297 -1.457758,-1.63998 -1.775949,2.19005 -2.210285,4.70572 0.425179,6.01325 3.994085,1.98138 6.824427,-0.27468 10.325787,-2.73329 3.50177,-2.45823 3.411658,-2.93899 3.158475,-3.88735 -0.166315,0.0444 -0.997334,-0.45265 -1.700718,-0.85036 z m 3.462175,4.79845 c -1.405193,1.67235 -2.355439,3.35411 -0.728879,4.98066 4.524009,4.52407 19.69882,-1.11019 16.946437,10.69022 6.109348,6.10935 18.859078,3.19384 27.39371,-2.91551 1.66654,-1.66656 0.69997,-2.58291 -0.668148,-3.40144 -8.458362,5.3473 -19.957869,7.67884 -25.692984,1.94368 2.752384,-11.8004 -12.422431,-6.16613 -16.946436,-10.69021 -0.198964,-0.19896 -0.172449,-0.40742 -0.3037,-0.6074 z"
+ id="path1269"
+ sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient1272);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.30175579pt"
+ d="m 107.57531,47.365247 32.87711,35.325423 c 0,0 9.7932,10.492701 2.09856,14.68978 -7.69466,4.19708 -31.12834,10.4927 -31.12834,10.4927 L 68.830422,46.540402 Z"
+ id="path1271"
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient1277);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.49509335pt"
+ d="M 56.944037,42.006087 26.165461,77.3315 c 0,0 -11.891721,10.4927 -4.197076,14.689777 7.694644,4.197078 58.409343,21.335153 94.084505,15.039533 L 75.13138,45.853409 Z"
+ id="path1276"
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient1318);fill-rule:evenodd;stroke-width:1.30175579pt"
+ d="m 82.042498,27.12255 c 4.504479,0.03329 23.422692,18.434639 28.837322,22.230809 5.41464,3.796171 4.14478,6.285951 4.14478,6.523269 L 99.839631,48.527099 98.321133,60.006943 89.939024,56.058848 77.062155,64.683915 72.081482,47.67674 65.76453,62.558018 47.967732,64.319476 48.149952,56.423287 74.438456,30.540688 c 1.907291,-1.877842 3.182156,-3.451427 7.604042,-3.418138 z"
+ id="path1317"
+ sodipodi:nodetypes="ccccccccccczz"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Title">
+ <path
+ style="color:#000000;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ d="M 753.33333,300 H 800 v 20 h 20 l -20,-20 20,20 v 80 h -66.66667 z"
+ id="path193"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ d="m 740,306.66667 h 46.66667 v 20 h 20 l -20,-20 20,20 v 80 H 740 Z"
+ id="path191"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ d="m 726.66667,313.33333 h 46.66666 v 20 h 20 l -20,-20 20,20 v 80 h -66.66666 z"
+ id="path190"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ d="M 713.33333,320 H 760 v 20 h 20 l -20,-20 20,20 v 80 h -66.66667 z"
+ id="path189"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ d="m 700,326.66667 h 46.66667 v 20 h 20 l -20,-20 20,20 v 80 H 700 Z"
+ id="path32"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="color:#000000;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ id="rect148"
+ width="100.73548"
+ height="66.026642"
+ x="425.93115"
+ y="475.75116"
+ ry="14.222222"
+ rx="14.222222" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path354"
+ d="m 520.66663,535.11114 v 73.33333"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker-start:url(#DiamondL);marker-end:none"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="color:#000000;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ id="rect149"
+ width="100.73548"
+ height="66.026642"
+ x="414.15341"
+ y="488.19559"
+ ry="14.222222"
+ rx="14.222222" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path357"
+ d="m 507.3333,548.44447 v 60"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker-start:url(#DiamondL);marker-end:none"
+ inkscape:connector-curvature="0" />
+ <text
+ x="48"
+ y="74.666664"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:51.20000076px;line-height:100%;font-family:Arial;writing-mode:lr-tb;text-anchor:start;display:block;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="text48">
+ <tspan
+ x="48"
+ y="74.666664"
+ sodipodi:role="line"
+ id="tspan1"
+ style="stroke-width:3.20000017pt">Current Objects</tspan>
+ </text>
+ <path
+ style="color:#000000;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ d="M 100,173.33333 H 766.66667 V 240 H 100 Z"
+ id="rect3"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="123.95625"
+ y="215.85083"
+ id="text76"><tspan
+ id="tspan2"
+ sodipodi:role="line"
+ y="215.85083"
+ x="123.95625"
+ style="stroke-width:1.06666669pt">Inkscape::Application::Editor</tspan></text>
+ <path
+ style="color:#000000;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ d="M 433.33333,306.66667 H 500 v 100 h -66.66667 z"
+ id="rect24"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="color:#000000;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ id="rect27"
+ width="100.73548"
+ height="66.026642"
+ x="280.66666"
+ y="488.41785"
+ ry="14.222222"
+ rx="14.222222" />
+ <path
+ sodipodi:nodetypes="ccc"
+ id="path50"
+ d="m 133.33333,240 v 33.33333 h 660"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path195"
+ d="m 333.99997,488.44447 v -80"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.33333333, 5.33333333;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#Dot_m);marker-end:url(#Dot_m)"
+ inkscape:connector-curvature="0" />
+ <text
+ id="text201"
+ y="301.25418"
+ x="147.88437"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:19.20000076px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#0281ac;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ id="tspan356"
+ sodipodi:role="line"
+ y="301.25418"
+ x="147.88437"
+ style="stroke-width:1.06666669pt">Inkscape::</tspan><tspan
+ id="tspan357"
+ sodipodi:role="line"
+ y="320.45419"
+ x="147.88437"
+ style="stroke-width:1.06666669pt">Document</tspan></text>
+ <path
+ style="color:#000000;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ d="m 301.3333,307.7778 h 47.33333 v 20 h 20 l -20,-20 20,20 v 80 h -66.66666 z"
+ id="path74"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ d="m 568.47084,308.36452 45.52913,-0.58672 v 20 h 20 l -20,-20 20,20 v 80 H 567.3333 Z"
+ id="path75"
+ sodipodi:nodetypes="ccccccccc"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="color:#000000;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ id="rect76"
+ width="100.73548"
+ height="66.026642"
+ x="400.82004"
+ y="501.7778"
+ ry="14.222222"
+ rx="14.222222" />
+ <rect
+ style="color:#000000;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ id="rect77"
+ width="100.73548"
+ height="66.026642"
+ x="545.77777"
+ y="487.3067"
+ ry="14.222222"
+ rx="14.222222" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path250"
+ d="M 334.66663,307.7778 V 274.44447"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker-start:url(#DiamondL);marker-end:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path253"
+ d="M 466.66667,306.66667 V 273.33333"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker-start:url(#DiamondL);marker-end:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path256"
+ d="M 600.66663,308.44447 V 275.11114"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker-start:url(#DiamondL);marker-end:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path330"
+ d="m 467.3333,488.44447 -0.66663,-81.7778"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.33333333, 5.33333333;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#Dot_m);marker-end:url(#Dot_m)"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path335"
+ d="m 453.99997,501.7778 12.6667,-95.11113"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.33333333, 5.33333333;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#Dot_m);marker-end:url(#Dot_m)"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path340"
+ d="M 480.66663,475.11114 466.66667,406.66667"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.33333333, 5.33333333;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#Dot_m);marker-end:url(#Dot_m)"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path345"
+ d="m 600,486.66667 0.66663,-78.2222"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.33333333, 5.33333333;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#Dot_m);marker-end:url(#Dot_m)"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path348"
+ d="m 373.99997,548.44447 v 60"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker-start:url(#DiamondL);marker-end:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path351"
+ d="m 493.99997,561.7778 v 46.66667"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker-start:url(#DiamondL);marker-end:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path360"
+ d="m 640.66663,548.44447 v 60"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker-start:url(#DiamondL);marker-end:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccc"
+ id="path361"
+ d="M 133.33333,273.33333 V 606.66667 H 640"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="309.78122"
+ y="366.89029"
+ id="text362"><tspan
+ x="309.78122"
+ y="366.89029"
+ sodipodi:role="line"
+ id="tspan364"
+ style="stroke-width:1.06666669pt">Doc</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:21.33333397px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="440.52399"
+ y="343.09268"
+ id="text365"><tspan
+ id="tspan380"
+ sodipodi:role="line"
+ y="343.09268"
+ x="440.52399"
+ style="stroke-width:1.06666669pt">Multi</tspan><tspan
+ id="tspan381"
+ sodipodi:role="line"
+ y="364.42603"
+ x="440.52399"
+ style="stroke-width:1.06666669pt">Page</tspan><tspan
+ id="tspan382"
+ sodipodi:role="line"
+ y="385.75934"
+ x="440.52399"
+ style="stroke-width:1.06666669pt">Doc</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="575.44794"
+ y="366.89029"
+ id="text367"><tspan
+ x="575.44794"
+ y="366.89029"
+ sodipodi:role="line"
+ id="tspan368"
+ style="stroke-width:1.06666669pt">Doc</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.20000076px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="568.16614"
+ y="517.54626"
+ id="text369"><tspan
+ id="tspan7"
+ sodipodi:role="line"
+ y="517.54626"
+ x="568.16614"
+ style="stroke-width:1.06666669pt">I::V::</tspan><tspan
+ id="tspan8"
+ sodipodi:role="line"
+ y="536.74628"
+ x="568.16614"
+ style="stroke-width:1.06666669pt">Edit</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.20000076px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="301.97659"
+ y="518.66553"
+ id="text374"><tspan
+ id="tspan3"
+ sodipodi:role="line"
+ y="518.66553"
+ x="301.97659"
+ style="stroke-width:1.06666669pt">I::V::</tspan><tspan
+ id="tspan4"
+ sodipodi:role="line"
+ y="537.86554"
+ x="301.97659"
+ style="stroke-width:1.06666669pt">Play</tspan></text>
+ <text
+ id="text5"
+ y="573.85211"
+ x="147.88437"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:19.20000076px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#0281ac;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ id="tspan42"
+ sodipodi:role="line"
+ y="573.85211"
+ x="147.88437"
+ style="stroke-width:1.06666669pt">Inkscape::</tspan><tspan
+ id="tspan43"
+ sodipodi:role="line"
+ y="593.05212"
+ x="147.88437"
+ style="stroke-width:1.06666669pt">View::*</tspan></text>
+ <path
+ sodipodi:nodetypes="cc"
+ id="path34"
+ d="M 733.33333,326.66667 V 273.33333"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker-start:url(#DiamondL);marker-end:none"
+ inkscape:connector-curvature="0" />
+ <rect
+ ry="14.222222"
+ rx="14.222222"
+ y="366.66666"
+ x="706.66669"
+ height="26.666666"
+ width="106.66666"
+ id="rect208"
+ style="color:#000000;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.16475832;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="708.78125"
+ y="385.27917"
+ id="text37"><tspan
+ id="tspan46"
+ sodipodi:role="line"
+ y="385.27917"
+ x="708.78125"
+ style="stroke-width:1.06666669pt">Palettes</tspan></text>
+ <path
+ sodipodi:nodetypes="cc"
+ id="path198"
+ d="M 753.33333,320 V 273.33333"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker-start:url(#DiamondL);marker-end:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path201"
+ d="m 766.66667,313.33333 v -40"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker-start:url(#DiamondL);marker-end:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path204"
+ d="M 780,306.66667 V 273.33333"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker-start:url(#DiamondL);marker-end:none"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path207"
+ d="M 793.33333,300 V 273.33333"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker-start:url(#DiamondL);marker-end:none"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.20000076px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="419.75626"
+ y="533.95935"
+ id="text349"><tspan
+ id="tspan5"
+ sodipodi:role="line"
+ y="533.95935"
+ x="419.75626"
+ style="stroke-width:1.06666669pt">I::V::</tspan><tspan
+ id="tspan6"
+ sodipodi:role="line"
+ y="553.15936"
+ x="419.75626"
+ style="stroke-width:1.06666669pt">Edit</tspan></text>
+ <path
+ sodipodi:nodetypes="ccc"
+ id="path365"
+ d="M 646.66667,500 H 760 v -73.33333"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.33333333, 5.33333333;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#Dot_m);marker-end:url(#Dot_m)"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccc"
+ id="path370"
+ d="M 646.66667,513.33333 H 800 V 406.66667"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.33333333, 5.33333333;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#Dot_m);marker-end:url(#Dot_m)"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ d="m 440,300 h 66.66667 V 400 C 500,400 500,406.66667 500,406.66667 h -66.66667 v -100 C 433.33333,303.52397 436.8573,300 440,300 Z"
+ id="path371"
+ sodipodi:nodetypes="cccccss"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccc"
+ id="path372"
+ d="m 441.52384,305.14283 h 60 v 93.33333"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.26666667pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccc"
+ id="path375"
+ d="m 443.04768,303.61899 h 60 v 93.33333"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.26666667pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccc"
+ id="path377"
+ d="m 444.57152,302.09515 h 60 v 93.33333"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.26666667pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="Drawing Area" />
+</svg>
diff --git a/doc/NewAppArchitecture/14-evolving.svg b/doc/NewAppArchitecture/14-evolving.svg
new file mode 100644
index 0000000..506d19e
--- /dev/null
+++ b/doc/NewAppArchitecture/14-evolving.svg
@@ -0,0 +1,619 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ sodipodi:docname="14-evolving.svg"
+ height="480pt"
+ width="640pt"
+ inkscape:version="0.92.0 r15304"
+ sodipodi:version="0.32"
+ id="svg586"
+ version="1.1">
+ <defs
+ id="defs588">
+ <marker
+ style="overflow:visible;"
+ id="marker396"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ id="path397"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker394"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ id="path395"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker391"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ id="path392"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker319"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ id="path320"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="TriangleOutL"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL">
+ <path
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
+ d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
+ id="path224"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <linearGradient
+ id="linearGradient2570">
+ <stop
+ id="stop2571"
+ offset="0.0000000"
+ style="stop-color:#000000;stop-opacity:1.0000000;" />
+ <stop
+ id="stop2572"
+ offset="0.58504134"
+ style="stop-color:#000000;stop-opacity:0.62745100;" />
+ <stop
+ id="stop2573"
+ offset="1.0000000"
+ style="stop-color:#ffffff;stop-opacity:0.0000000;" />
+ </linearGradient>
+ <linearGradient
+ y2="114.57422"
+ x2="53.030737"
+ y1="20.687101"
+ x1="77.599106"
+ id="linearGradient1322"
+ xlink:href="#linearGradient1218"
+ gradientTransform="matrix(1.3228549,0,0,1.2809931,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ y2="58.199241"
+ x2="33.266399"
+ y1="30.563196"
+ x1="59.491886"
+ id="linearGradient1318"
+ xlink:href="#linearGradient1273"
+ gradientTransform="matrix(1.7409899,0,0,0.97333594,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ gradientTransform="scale(1.004208,0.995809)"
+ y2="0.12454049"
+ x2="0.41986585"
+ y1="1.9347328"
+ x1="0.45376351"
+ id="linearGradient1307"
+ xlink:href="#linearGradient1222" />
+ <linearGradient
+ gradientTransform="scale(1.006361,0.993679)"
+ y2="0.11846013"
+ x2="0.41548476"
+ y1="1.9667202"
+ x1="0.45009527"
+ id="linearGradient1306"
+ xlink:href="#linearGradient1222" />
+ <linearGradient
+ gradientTransform="scale(1.002016,0.997989)"
+ y2="0.13959341"
+ x2="0.42603236"
+ y1="1.8676205"
+ x1="0.45839140"
+ id="linearGradient1305"
+ xlink:href="#linearGradient1222" />
+ <linearGradient
+ y2="80.482086"
+ x2="51.413385"
+ y1="119.11808"
+ x1="11.967844"
+ id="linearGradient1277"
+ xlink:href="#linearGradient1273"
+ gradientTransform="matrix(1.8036348,0,0,1.2393329,-37.611189,-4.4599008)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ y2="62.493129"
+ x2="90.28563"
+ y1="45.70058"
+ x1="118.66497"
+ id="linearGradient1272"
+ xlink:href="#linearGradient1273"
+ gradientTransform="matrix(1.4554449,0,0,1.1642956,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient1270"
+ xlink:href="#linearGradient1222" />
+ <linearGradient
+ y2="120.74315"
+ x2="94.698939"
+ y1="120.74315"
+ x1="17.696665"
+ id="linearGradient1231"
+ xlink:href="#linearGradient1323"
+ gradientTransform="matrix(1.8150579,0,0,0.9336165,-21.540736,7.7941685)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ y2="28.120696"
+ x2="130.70353"
+ y1="170.27164"
+ x1="27.318817"
+ id="linearGradient1221"
+ xlink:href="#linearGradient1222"
+ gradientTransform="scale(1.0211162,0.97932047)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient1218">
+ <stop
+ id="stop1219"
+ offset="0.00000000"
+ style="stop-color:#000000;stop-opacity:1.0000000;" />
+ <stop
+ id="stop1321"
+ offset="0.073255815"
+ style="stop-color:#323232;stop-opacity:1.0000000;" />
+ <stop
+ id="stop1320"
+ offset="0.65260679"
+ style="stop-color:#000000;stop-opacity:1.0000000;" />
+ <stop
+ id="stop1220"
+ offset="1"
+ style="stop-color:#fff;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1222">
+ <stop
+ id="stop1223"
+ offset="0.0000000"
+ style="stop-color:#0081ac;stop-opacity:1.0000000;" />
+ <stop
+ id="stop1722"
+ offset="0.50000000"
+ style="stop-color:#006d91;stop-opacity:0.62745100;" />
+ <stop
+ id="stop1224"
+ offset="1.0000000"
+ style="stop-color:#000000;stop-opacity:0.0000000;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1273">
+ <stop
+ id="stop1274"
+ offset="0.00000000"
+ style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+ <stop
+ id="stop1275"
+ offset="1.0000000"
+ style="stop-color:#ffffff;stop-opacity:0.00000000;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1323">
+ <stop
+ id="stop1324"
+ offset="0.00000000"
+ style="stop-color:#000000;stop-opacity:0.77685952;" />
+ <stop
+ id="stop1325"
+ offset="1.0000000"
+ style="stop-color:#000000;stop-opacity:0.00000000;" />
+ </linearGradient>
+ <radialGradient
+ fy="93.75"
+ fx="303.7037"
+ r="248.40302"
+ cy="281.25"
+ cx="296.2963"
+ id="radialGradient829"
+ xlink:href="#linearGradient826"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.29936853,0,0,0.15858773,4.3548661,98.117152)" />
+ <linearGradient
+ id="linearGradient826">
+ <stop
+ id="stop827"
+ offset="0.00000000"
+ style="stop-color:#000000;stop-opacity:0.95294118;" />
+ <stop
+ id="stop830"
+ offset="0.36585677"
+ style="stop-color:#000000;stop-opacity:0.76078433;" />
+ <stop
+ id="stop847"
+ offset="0.47107276"
+ style="stop-color:#000000;stop-opacity:0.52941179;" />
+ <stop
+ id="stop828"
+ offset="1.0000000"
+ style="stop-color:#ffffff;stop-opacity:0.00000000;" />
+ </linearGradient>
+ <linearGradient
+ y2="-1.7333326"
+ x2="0.50000000"
+ y1="0.66667551"
+ x1="0.50000000"
+ id="linearGradient907"
+ xlink:href="#linearGradient909" />
+ <linearGradient
+ id="linearGradient909">
+ <stop
+ id="stop910"
+ offset="0.00000000"
+ style="stop-color:#000000;stop-opacity:0.00000000;" />
+ <stop
+ id="stop913"
+ offset="1.0000000"
+ style="stop-color:#000000;stop-opacity:0.17000000;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1309"
+ xlink:href="#linearGradient1222"
+ gradientTransform="scale(2.8444445,0.4)"
+ x1="0"
+ y1="4.7369516e-15"
+ x2="300"
+ y2="4.7369516e-15"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ y2="1365.4825"
+ x2="64.30938"
+ y1="1365.4825"
+ x1="-0.0028122679"
+ id="linearGradient1308"
+ xlink:href="#linearGradient2570"
+ gradientTransform="scale(13.227991,0.0860129)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient826"
+ id="radialGradient40804"
+ cx="296.2963"
+ cy="281.25"
+ fx="303.7037"
+ fy="93.75"
+ r="248.40302"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4203424,0,0,0.08699077,-33.810677,100.89451)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient40806"
+ x1="33.344169"
+ y1="164.17808"
+ x2="131.82116"
+ y2="28.775105"
+ gradientTransform="scale(1.0839555,1.0496536)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient40808"
+ x1="31.731446"
+ y1="165.85049"
+ x2="131.57971"
+ y2="28.562063"
+ gradientTransform="scale(1.0848907,1.0487488)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient40810"
+ x1="35.171777"
+ y1="162.0032"
+ x2="131.8238"
+ y2="29.109513"
+ gradientTransform="scale(1.0846262,1.0490045)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient40812"
+ x1="37.676606"
+ y1="159.47478"
+ x2="132.33793"
+ y2="29.318235"
+ gradientTransform="scale(1.0823063,1.051253)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient40814"
+ x1="29.920773"
+ y1="167.66146"
+ x2="131.16846"
+ y2="28.448861"
+ gradientTransform="scale(1.0869998,1.0467139)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1222"
+ id="linearGradient40816"
+ x1="27.318817"
+ y1="170.27164"
+ x2="130.70353"
+ y2="28.120696"
+ gradientTransform="scale(1.0891906,1.0446085)"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ inkscape:current-layer="layer2"
+ inkscape:guide-bbox="true"
+ showguides="true"
+ inkscape:window-y="25"
+ inkscape:window-x="291"
+ inkscape:window-height="821"
+ inkscape:window-width="968"
+ inkscape:cy="320"
+ inkscape:cx="426.66667"
+ inkscape:zoom="0.940625"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ showgrid="false"
+ inkscape:window-maximized="0" />
+ <metadata
+ id="metadata33">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ style="display:block"
+ inkscape:label="Background"
+ id="layer1"
+ inkscape:groupmode="layer">
+ <rect
+ y="1.8947807e-15"
+ x="0"
+ height="120"
+ width="853.33331"
+ id="topbluebox"
+ style="font-size:12px;fill:url(#linearGradient1309);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.20000017pt" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path654"
+ d="M -0.03652902,117.55657 850.68323,117.34163"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient1308);stroke-width:5.31674433;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <g
+ transform="translate(689.36448,-10.40511)"
+ id="g1085">
+ <g
+ transform="matrix(0.875802,0,0,0.869278,1.1184885,-8.4967275)"
+ id="g1394">
+ <ellipse
+ style="opacity:0.69398911;fill:url(#radialGradient40804);stroke-width:0.84729707;stroke-dashoffset:0"
+ id="path898"
+ cx="92.292046"
+ cy="126.99174"
+ rx="126.10272"
+ ry="26.097233" />
+ <ellipse
+ style="fill:url(#radialGradient829);stroke-width:0.96546245;stroke-dashoffset:0"
+ id="ball1"
+ cx="94.165428"
+ cy="145.69347"
+ rx="89.810562"
+ ry="47.576321" />
+ </g>
+ <g
+ style="fill:url(#linearGradient1221)"
+ transform="matrix(1.822197,0,0,1.662749,-192.00875,13.084299)"
+ id="g1310">
+ <path
+ id="path1278"
+ d="m 148.55614,11.815593 c -2.18769,1e-6 -4.39029,0.823628 -6.06667,2.5 l -29.76666,29.8 c -1.64308,1.643032 -2.50068,3.78929 -2.53334,5.933333 -4.6e-4,0.03598 0,0.09736 0,0.133333 h 0.0667 c 0.57027,2.16974 15.28934,4.922713 16.93333,6.566667 2.48272,2.482738 -9.51602,4.317248 -7.03333,6.8 2.48271,2.482709 15.01704,4.783915 17.5,7.266669 2.48273,2.48272 -5.08275,5.11728 -2.6,7.6 2.48272,2.482753 10.81047,-0.609259 9.3,5.866667 3.35273,3.352736 10.34963,1.752736 15.03333,-1.6 2.48272,-2.482721 -4.74941,-2.250614 -2.26666,-4.733334 2.48272,-2.482752 8.75277,-2.494421 14.03333,-8.433335 -2.12548,-3.305654 -9.08274,-4.717259 -6.6,-7.2 2.48272,-2.482715 7.28509,-1.236886 17.7,-5.966667 5.08413,-2.309024 4.68613,-4.040355 4.66667,-6.166667 -4.1e-4,-0.04475 0,-0.08825 0,-0.133333 h -0.0333 c -0.0326,-2.144041 -0.85698,-4.290298 -2.5,-5.933333 l -29.8,-29.8 c -1.67637,-1.67637 -3.84565,-2.5 -6.03334,-2.5 z m -0.26667,3.866666 c 0.97256,0.02533 1.75986,0.768324 3.3,1.766667 l 14.06667,10.433333 c 0.15408,0.09991 0.29855,0.192996 0.43333,0.3 0.1348,0.10699 0.28452,0.220015 0.4,0.333334 0.11548,0.113111 0.20364,0.248218 0.3,0.366666 0.0961,0.118429 0.18984,0.244093 0.26667,0.366667 0.077,0.122774 0.14229,0.240765 0.2,0.366667 0.0577,0.126131 0.0949,0.238188 0.13333,0.366666 0.0386,0.128282 0.0808,0.270352 0.1,0.4 0.0193,0.12988 0.0333,0.269763 0.0333,0.4 l -8.33333,-4.033333 -0.83334,6.3 -4.6,-2.166667 -7.06666,4.733334 -2.73334,-9.333334 -3.46666,8.166667 -9.76667,0.966667 0.1,-4.333334 c 0,-1.042224 5.64516,-8.329604 9.06666,-10.066666 l 6.26667,-4.5 c 0.92408,-0.599006 1.54979,-0.848535 2.13333,-0.833334 z m -12.93333,42.6 c 4.43676,1.15063 9.37288,2.639674 13.33333,2.666667 l 0.16667,1.8 c -3.39138,-0.349579 -10.57471,-2.002379 -12.26667,-2.866667 z m 46.23333,7.9 c -0.67728,-0.02171 -1.31822,0.0462 -1.8,0.166667 -0.90833,0.226965 -5.321,0.331531 -4.96666,3.166667 3.89845,1.416876 9.92489,2.502007 10.63333,-0.333334 0.53176,-2.12593 -1.83484,-2.93489 -3.86667,-3 z m -50.96666,5.766669 c -0.61333,-0.07148 -1.21336,0.0042 -1.8,0.3 -2.34598,1.183349 -3.92502,3.81264 -1.73334,4.9 2.19191,1.08736 3.74516,-0.150741 5.66667,-1.5 1.92173,-1.349045 1.87228,-1.612875 1.73333,-2.133333 -0.26601,0.07094 -2.02669,-1.352235 -3.86666,-1.566667 z m 42.86666,0.466667 c -1.77199,0.708629 -1.75118,3.170389 -0.33333,4.233333 1.41748,1.063157 3.19156,0.375499 3.9,-0.333333 0.70902,-0.70863 -0.023,-3.19136 -3.56667,-3.9 z"
+ style="fill:url(#linearGradient40806);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path1283"
+ d="m 147.16667,11.433333 c -3.48238,0.364902 -5.88303,3.345755 -8.33158,5.570373 -8.94544,9.133798 -18.09349,18.101949 -26.95799,27.294024 -1.44334,1.84378 -2.03035,4.015468 -2.31043,6.30227 5.03542,3.678658 11.71157,3.699536 17.06666,6.766667 -1.50817,2.381747 -5.17846,2.289571 -6.84097,4.663825 -1.44519,0.973702 0.60698,2.569614 1.6838,2.93719 4.47582,2.259905 9.5207,3.127075 13.9674,5.505719 2.30619,0.164974 2.15073,2.483836 0.6201,3.623175 -1.21232,1.221254 -3.08705,3.249751 -1.23288,4.771441 2.26675,1.575369 5.27199,1.144095 7.80255,2.065316 1.77826,0.975122 0.51639,2.738136 1.73334,3.966667 3.05603,2.396513 7.28787,1.973693 10.69445,0.606201 1.75151,-0.515126 3.34201,-1.653286 4.87221,-2.539534 1.47613,-1.720326 -0.82595,-2.9513 -2.13333,-3.666667 -0.85913,-1.425274 2.00009,-1.997097 2.97462,-2.675578 3.73665,-1.514529 7.36553,-3.267329 10.23683,-6.143331 1.79011,-1.105032 -0.83882,-2.676851 -1.67812,-3.547758 -1.55141,-1.15048 -3.58938,-1.860548 -4.56666,-3.633333 2.52043,-2.7807 6.7319,-2.262194 9.98204,-3.687561 3.90317,-0.992642 7.61596,-2.729652 11.05532,-4.741974 2.26951,-1.69135 1.67257,-4.636557 1.22998,-7.021773 -1.61839,-5.025589 -6.41885,-8.01283 -9.81146,-11.814386 -7.61983,-7.514247 -15.1255,-15.17228 -22.81612,-22.597384 -2.05244,-1.578655 -4.64151,-2.423668 -7.23976,-2.003589 z M 149.5,16.766667 c 5.52064,4.046284 11.05387,8.077891 16.56667,12.133333 0.11539,1.103552 -2.90244,-1.172627 -4.0558,-1.481882 -1.41219,-0.420198 -3.8964,-2.894916 -3.5025,0.03341 -0.60562,1.192982 0.31151,5.203671 -1.4377,4.28052 -1.58183,-0.849857 -3.68447,-2.113891 -5.18058,-0.378679 -1.61892,1.082213 -3.23783,2.164425 -4.85676,3.246637 -0.9783,-3.377623 -1.95211,-6.756554 -2.93333,-10.133333 -1.34602,3.127884 -2.66477,6.267483 -4,9.4 -2.92222,0.288888 -5.84445,0.577778 -8.76667,0.866667 -0.20184,-2.166309 0.27133,-4.341771 1.77562,-5.878158 3.25057,-5.211552 8.66632,-8.395371 13.54451,-11.865011 0.95273,-0.564092 1.80847,-0.493262 2.84654,-0.223498 z m -8.63333,43.566666 c 2.34366,0.607254 4.78296,0.727797 7.16666,1.133334 -0.90625,1.084587 -3.14277,-0.32439 -4.56523,-0.371058 -1.8583,-0.406252 -3.7163,-0.80007 -5.4681,-1.562276 0.95555,0.266667 1.91111,0.533334 2.86667,0.8 z m 38.86666,5.4 c -2.15488,0.501536 -5.22675,0.793815 -5.5,3.566667 0.70833,1.029809 2.96093,1.412478 4.40801,1.688268 2.27503,0.363118 5.38493,1.181831 6.97878,-0.937576 1.36135,-1.898234 -0.67459,-4.313995 -2.78769,-4.178768 -1.02575,-0.350017 -2.04343,-0.268702 -3.0991,-0.138591 z m -51.03333,5.9 c -1.57612,1.085018 -3.71575,2.720281 -3.03333,4.9 1.61184,2.339234 4.94529,1.683368 6.78753,-0.0057 1.2184,-0.692559 3.25469,-2.021692 2.31247,-3.560997 -1.93436,-0.840999 -3.87915,-2.117169 -6.06667,-1.333334 z m 44.36667,0.333334 c -1.34895,0.891833 -1.89168,2.759628 -0.95675,4.109348 0.71622,1.795233 3.11379,1.982508 4.57991,1.004604 1.95986,-0.600235 1.10016,-3.109938 -0.33003,-3.844913 -0.72045,-0.899439 -2.36482,-1.335642 -3.29313,-1.269039 z"
+ style="fill:url(#linearGradient40808);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path1286"
+ d="m 146.23333,12.866667 c -3.88385,1.702193 -6.61189,5.324961 -9.67052,8.210746 -7.86956,8.018198 -15.90416,15.90198 -23.69161,23.983409 -1.11331,1.428597 -1.72615,3.060044 -2.00453,4.839178 4.36,3.072638 10.04495,3.23545 14.7573,5.603266 1.5625,0.15548 3.26141,1.73801 1.81635,3.072207 -1.86501,1.91956 -5.15011,2.084779 -6.70699,4.291194 4.05269,2.923397 9.10625,3.602288 13.58014,5.613093 1.52915,1.119169 4.28812,1.21833 4.3532,3.553573 -0.41298,2.06712 -2.47344,3.267809 -3.36667,5.133334 1.94434,2.744072 5.94438,1.261888 8.50547,3.040805 1.3908,0.857738 1.00828,2.693049 1.62108,3.831047 3.2048,2.344549 7.71164,1.319869 10.94656,-0.558135 1.04365,-0.353733 3.89943,-1.626855 1.76272,-2.556043 -1.55651,-0.349067 -2.86028,-2.213166 -1.35103,-3.402938 3.84858,-2.931245 9.10998,-3.601158 12.55258,-7.214396 1.79927,-1.361045 -1.31628,-2.560541 -2.24828,-3.336495 -1.41778,-1.044797 -3.86698,-2.048091 -3.55577,-4.137179 2.35965,-3.274836 6.88107,-2.833411 10.31383,-4.263585 3.90311,-0.957377 7.67689,-2.630842 11.10878,-4.611597 2.18816,-1.940094 1.07405,-5.046756 0.32835,-7.371909 -3.93266,-5.513287 -9.35396,-9.75581 -13.9708,-14.686024 -5.91778,-5.783657 -11.65452,-11.813723 -17.68454,-17.444607 -2.14828,-1.370565 -4.63208,-2.556154 -7.20805,-1.62333 z m 2.3,2.233333 c 5.45973,2.578599 9.80753,6.890051 14.73244,10.347527 1.85084,1.664819 5.00363,2.778901 4.9009,5.71914 -1.78479,0.428996 -3.34725,-1.396857 -5.04898,-1.86837 -1.54021,-0.520034 -4.1213,-2.963549 -3.68846,0.16232 -0.54825,1.127161 0.22527,4.775461 -1.23798,4.170178 -1.53672,-0.653008 -3.2567,-1.905943 -4.87859,-1.758173 -2.31413,1.577535 -4.63724,3.142054 -6.94599,4.727378 -0.87266,-2.83558 -1.68407,-5.690403 -2.53334,-8.533333 -1.12707,2.260756 -1.98302,4.959333 -3.26666,6.966666 -3.47777,0.344565 -6.95563,0.688221 -10.43334,1.033334 0.0287,-2.531437 -0.43925,-5.398577 1.54821,-7.372648 3.13073,-5.303181 8.62883,-8.494145 13.35179,-12.127352 1.15867,-0.426692 2.35212,-1.253526 3.5,-1.466667 z m -13.76666,42.4 c 4.77393,1.272573 9.58904,2.318786 14.5,2.9 0.93608,1.872033 -0.34236,3.482335 -2.33168,2.565935 -3.62332,-0.734316 -7.25018,-1.727438 -10.80166,-2.699268 -0.26564,-0.514085 -3.09159,-3.378118 -1.36666,-2.766667 z m 45.16666,9.433333 c -1.51493,0.422114 -3.72691,0.290818 -4.26666,2.133334 2.90995,0.556827 6.05202,2.002088 8.9,0.466666 0.978,-1.977585 -1.92783,-2.538134 -3.31385,-2.645499 -0.43983,0.01517 -0.87966,0.03034 -1.31949,0.0455 z m -50.9,5.866667 c -1.16024,0.90047 -3.46737,3.083937 -1.02728,3.858837 2.25255,0.543858 3.96147,-1.380385 5.62728,-2.558837 -1.18522,-1.161836 -2.98479,-1.601218 -4.6,-1.3 z m 44.03334,0.733333 c -1.04902,2.027564 1.90687,4.021482 3.28133,2.230908 0.70415,-1.13156 -2.36473,-3.118333 -3.28133,-2.230908 z"
+ style="fill:url(#linearGradient40810);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path1295"
+ d="m 146.66667,13.4 c -6.33172,3.543401 -10.68888,9.547281 -15.90063,14.447274 -5.8861,6.073656 -12.00588,11.974663 -17.74737,18.155152 -0.7305,1.178656 -2.18908,3.828459 -0.0714,4.248788 4.9013,2.576465 10.86092,2.972757 15.3194,6.215453 1.00861,2.475215 -2.05916,3.484953 -3.70454,4.477414 -1.7373,0.545523 -3.75405,2.175563 -0.84454,2.774326 4.83335,2.60598 10.58594,3.28132 15.01575,6.64826 1.43136,2.33294 -1.26292,4.394234 -2.23809,6.238069 0.0119,1.908953 2.8242,1.486185 4.14874,2.002826 2.29679,0.177914 4.75661,1.464231 4.98406,3.992952 0.7695,2.00242 3.5144,2.068656 5.37195,2.066153 2.47607,-0.312856 4.61313,-1.6278 6.86667,-2.6 -0.11425,-1.550102 -2.69456,-1.700315 -2.36667,-3.6 1.99363,-3.193298 6.06476,-3.869656 9.11608,-5.707796 1.73236,-0.750835 3.28599,-1.893245 4.45059,-3.392204 -1.92497,-2.280272 -5.74204,-3.012313 -6.11314,-6.406102 0.39022,-1.188208 2.2736,-2.314015 3.60639,-2.891301 5.6785,-2.143002 11.88985,-2.970298 17.10185,-6.270592 2.74324,-1.108432 1.83527,-4.538836 1.0317,-6.686009 -2.29624,-3.22589 -5.40132,-6.000174 -8.00828,-9.052576 -2.68656,-2.760044 -5.48876,-5.408427 -8.21852,-8.126754 1.12365,1.634362 -0.99109,2.422313 -2.21269,1.401868 -2.03118,-0.886068 -4.05629,-1.760173 -6.12064,-2.568534 C 160.05314,30.54272 159.67649,32.269964 159.3,34 c -2.55377,0.684822 -5.03322,-2.683187 -7.35336,-0.501311 -1.91379,1.060257 -3.40719,2.847058 -5.45058,3.513153 -1.46281,-0.265507 -1.26699,-3.243895 -2.01992,-4.618246 -0.44179,-3.083731 -1.2118,-2.404985 -2.14312,0.123134 -0.85365,1.59882 -1.21984,3.834303 -3.53335,3.298267 -3.08878,0.306225 -6.17762,0.611598 -9.26633,0.918336 0.0202,-3.177717 -0.28551,-6.766 2.22768,-9.171123 3.51639,-4.960964 8.70856,-8.341185 13.55479,-11.782731 1.62219,-0.752906 3.63701,-1.872712 5.13828,-0.273654 3.97373,2.727514 8.02021,5.285521 11.74591,8.327508 -3.19568,-3.018643 -6.19482,-6.317986 -9.51099,-9.164539 -1.87897,-0.938934 -3.8675,-2.092901 -6.02238,-1.268794 z m -11.83334,43.5 c 5.00075,0.984495 9.99566,2.003225 15,2.966667 0.20732,1.45664 0.46427,3.886308 -1.67313,3.831478 -4.16789,-0.795987 -8.38205,-1.956384 -12.49353,-3.031478 -0.61549,-0.980519 -2.50897,-2.472939 -1.9,-3.466667 0.35063,-0.05103 0.72399,-0.354699 1.06666,-0.3 z m 42.8,11.166667 c -1.73875,1.086025 2.33789,1.138186 3.27372,1.439238 1.30579,0.375237 4.48185,-0.551342 2.02628,-1.672572 -1.83243,-0.401834 -3.50784,-0.360679 -5.3,0.233334 z M 128.86667,73.8 c -2.17346,1.397366 -0.18414,3.053084 1.5865,1.699463 2.04828,-0.249261 2.08866,-2.343116 -0.17211,-2.051831 -0.54677,-0.07524 -0.99718,-0.0549 -1.41439,0.352368 z m 44.76666,1.133333 c 2.4133,2.30436 1.83777,-1.778179 0,-0.492892 0,0.102368 0,0.430964 0,0.492892 z"
+ style="fill:url(#linearGradient40812);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path1300"
+ d="m 146.4,11 c -2.85517,0.532698 -4.88261,2.920832 -7.04143,4.696624 -9.46036,9.318687 -18.69953,18.903094 -28.02524,28.336709 -1.28513,2.140689 -2.02923,4.453081 -2.46666,6.9 4.02374,2.003945 8.08967,3.86007 12.47179,4.935568 1.05804,0.665393 4.69014,0.890135 3.49487,2.397766 -2.29866,1.221998 -5.17006,2.048868 -6.16666,4.733333 1.94556,3.411999 6.27529,3.61226 9.48467,5.236915 2.69399,1.065471 5.388,2.130945 8.08199,3.196418 0.0835,2.815831 -0.6308,1.873266 -2.05017,0.611648 -2.17089,-1.1027 -5.39205,-2.114404 -7.09766,0.274746 -1.55046,0.944625 -2.75719,3.349765 -1.57432,4.866099 2.21286,2.398176 6.00771,1.27668 8.06067,-0.779037 0.17795,-0.191378 -0.29693,2.877758 1.42073,3.193938 2.34275,1.346613 5.33929,0.970157 7.67409,2.299273 0.45283,1.979683 1.2508,4.221333 3.5739,4.531638 3.66844,1.48315 7.80683,0.39212 11.09794,-1.541311 1.39792,-0.760174 4.07797,-1.323747 3.46357,-3.423687 -0.0478,-1.38074 -3.42818,-2.212653 -1.53541,-3.499973 4.53006,-2.016167 9.17312,-4.142848 12.66666,-7.733334 0.85723,-2.253596 -2.25712,-3.193724 -3.46666,-4.566666 -1.4517,-1.221069 -3.87877,-2.524433 -0.81856,-3.364818 5.62839,-2.111859 11.87228,-2.940184 17.03456,-6.263438 2.72995,-0.86584 3.85371,-3.957742 3.06767,-6.564064 -0.0255,-2.62475 -1.76154,-4.797622 -3.22224,-6.835657 C 179.45289,36.856816 173.58197,31.828345 168.24204,26.291461 163.60188,21.818095 159.14228,17.065484 154.39198,12.762657 151.99166,11.220691 149.22884,10.717147 146.4,11 Z m 3.36667,6.733333 c 4.24058,2.976224 8.38139,6.129328 12.6,9.166667 -1.29937,-0.797366 -2.67486,-1.290978 -4.2,-1.4 -0.21287,1.824575 -0.47054,3.643999 -0.7,5.466667 -1.97534,-0.587625 -4.21204,-1.778592 -5.97773,-0.09263 -1.30676,0.402533 -3.52226,3.290581 -4.25972,2.135968 -0.99915,-3.447628 -1.99405,-6.896491 -2.99589,-10.343339 -1.52265,3.539479 -3.02044,7.089652 -4.53333,10.633333 -2.56667,0.255555 -5.13333,0.511111 -7.7,0.766667 -0.0148,-3.662276 2.83591,-6.395601 5.07235,-8.959274 3.30461,-2.837611 6.75708,-5.60858 10.52338,-7.756865 0.7316,-0.360909 1.44586,0.250944 2.17094,0.382806 z m 26.36666,48.333334 C 174.87994,66.86218 172.84987,68.441375 174.2,70 c 2.62772,1.71982 5.90645,1.835937 8.93343,1.934762 2.25075,-0.06272 4.4688,-2.726652 2.93663,-4.770688 -1.42803,-2.456455 -4.67977,-1.908377 -7.06627,-1.883005 -0.95681,0.261868 -1.91364,0.523732 -2.87046,0.785598 z m -3.3,5.433333 c -1.27562,1.033534 -1.85687,2.841465 -1.35231,4.508785 0.43077,1.899535 2.6256,2.385569 4.29198,1.849858 2.50838,0.201444 3.52565,-3.378484 1.43654,-4.628378 -1.24197,-1.050288 -2.64377,-2.095016 -4.37621,-1.730265 z"
+ style="fill:url(#linearGradient40814);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path1304"
+ d="m 146,10.2 c -5.57009,2.353735 -9.31153,7.276932 -13.56394,11.364379 -7.26121,7.360863 -14.57305,14.685571 -21.80273,22.068954 -0.92375,2.588329 -1.83526,5.181133 -2.76666,7.766667 5.12606,2.235525 10.28103,4.361596 15.6,6.1 -0.32712,1.554459 -2.93579,1.371077 -3.74338,2.860476 -1.43416,0.914482 -2.37188,3.411157 -0.36803,4.245199 3.1673,2.975582 7.51398,4.048213 11.44474,5.660992 -3.09041,-0.89746 -5.13867,2.363507 -6.33333,4.666666 -0.72155,2.880448 2.58866,4.694489 5.06851,4.276737 1.54135,0.553684 3.66,-2.522746 3.86807,-0.13866 2.29497,2.607941 6.70581,1.993255 9.10076,4.436609 0.7749,2.147771 2.55461,3.943898 4.94541,3.965707 2.15881,0.621481 4.27216,0.328386 6.35476,-0.418515 2.43249,-0.54992 4.74804,-1.764623 6.87594,-2.976017 1.61013,-1.140622 1.25617,-3.709454 -0.21345,-4.812527 -0.21701,-1.714746 2.45466,-1.738353 3.54015,-2.659077 2.92458,-1.339302 5.49291,-3.216603 7.95985,-5.240923 -1.09048,1.568168 -1.50221,3.637034 -0.89348,5.420276 1.02957,2.431889 4.09705,1.779572 6.16014,1.64639 C 179.29546,77.451445 180.09314,74.273508 178,72.9 c -3.03927,-1.879702 -0.42819,-1.002977 1.49692,-0.460891 2.38484,0.141742 5.36949,0.891675 6.99369,-1.418947 1.80089,-1.737129 0.66941,-4.475043 -1.05728,-5.820162 -2.14881,-1.14371 -4.72742,-0.810973 -7.057,-0.699886 -2.09119,0.370608 -3.67839,1.613047 -4.97633,3.233219 -1.58756,1.272788 1.82748,3.61782 -0.0532,3.147933 -1.36163,0.234395 0.30799,-2.483632 -1.32358,-3.36862 -1.06348,-1.560896 -2.85826,-2.534055 -4.1899,-3.879313 6.43141,-3.110773 13.94477,-3.952924 19.7,-8.433333 2.10991,-2.5028 1.15052,-5.815831 0.53333,-8.666667 C 184.23156,39.549156 177.84192,34.54079 172.35319,28.898191 166.50884,23.205036 160.69939,17.462459 154.83333,11.8 152.27799,10.77259 149.66457,10.063772 146.88646,10.206305 146.60075,10.233991 146.27214,10.101959 146,10.2 Z m 7.6,11.266667 c 1.51374,1.165288 3.04586,2.309495 4.56667,3.466666 -1.39718,1.06872 -0.90296,3.127104 -1.4,4.633334 -2.08576,-0.566112 -4.35694,-0.641822 -6.05767,0.905733 -1.05102,0.888519 -3.01815,1.872214 -3.17799,-0.196242 -0.93874,-3.234383 -1.83,-6.48501 -2.79768,-9.709491 1.63294,-0.494373 3.30094,-3.132711 4.90134,-1.63781 1.32178,0.845937 2.64355,1.691873 3.96533,2.53781 z m -14.36667,10.966666 c -1.96666,0.2 -3.93333,0.4 -5.9,0.6 0.75323,-3.751583 3.85837,-6.37712 6.49928,-8.892012 1.44608,-1.049755 2.80293,-2.240606 4.30072,-3.207988 -1.63333,3.833334 -3.26666,7.666667 -4.9,11.5 z"
+ style="fill:url(#linearGradient40816);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
+ inkscape:connector-curvature="0" />
+ </g>
+ <path
+ sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccc"
+ id="path1217"
+ d="m 80.606138,21.093974 c -3.986404,2e-6 -7.999981,1.500815 -11.054664,4.555494 L 15.31073,79.950952 c -2.994002,2.993929 -4.556718,6.904836 -4.616235,10.811705 -8.35e-4,0.06557 0,0.177392 0,0.24296 h 0.12148 c 1.039149,3.953694 27.860205,8.970154 30.855878,11.965763 4.524006,4.52404 -17.340071,7.86688 -12.816122,12.39094 4.523986,4.52399 27.364021,8.71724 31.888455,13.2413 4.524026,4.52402 -9.261778,9.3247 -4.737714,13.8487 4.524006,4.52407 19.69882,-1.11018 16.946437,10.69023 6.109347,6.10935 18.859073,3.19383 27.393701,-2.91552 4.52401,-4.524 -8.654358,-4.10106 -4.130314,-8.62506 4.524004,-4.52406 15.949294,-4.54533 25.571504,-15.3672 -3.87306,-6.02355 -16.55055,-8.59578 -12.0265,-13.11982 4.524,-4.524 13.27486,-2.25385 32.25288,-10.87245 9.26429,-4.207497 8.53905,-7.362324 8.50359,-11.236883 -7.4e-4,-0.08153 0,-0.160805 0,-0.24296 h -0.0608 c -0.0595,-3.906866 -1.56157,-7.817769 -4.55549,-10.811705 L 91.600063,25.649468 C 88.5454,22.594793 84.592543,21.093974 80.606138,21.093974 Z M 56.553132,105.76542 c 8.084647,2.09667 17.079247,4.81 24.295966,4.85919 l 0.3037,3.27996 c -6.179767,-0.63701 -19.269208,-3.64874 -22.352289,-5.22364 z m 84.246258,14.39535 c -1.23415,-0.0395 -2.40206,0.0842 -3.27996,0.3037 -1.65516,0.41359 -9.69592,0.60412 -9.05025,5.7703 7.10376,2.58184 18.08512,4.55915 19.37604,-0.6074 0.96897,-3.87387 -3.34345,-5.34795 -7.04583,-5.4666 z m -92.871326,10.50801 c -1.117595,-0.13024 -2.210972,0.008 -3.279956,0.54666 -4.274826,2.15631 -7.152149,6.94739 -3.158474,8.92877 3.99408,1.98139 6.824425,-0.27467 10.325785,-2.7333 3.501767,-2.45822 3.411658,-2.93897 3.158475,-3.88735 -0.484734,0.12928 -3.693025,-2.46403 -7.04583,-2.85478 z m 78.111516,0.85036 c -3.22891,1.29126 -3.19098,5.77708 -0.60739,7.71397 2.58293,1.93728 5.81565,0.68424 7.10657,-0.6074 1.29198,-1.29126 -0.042,-5.81528 -6.49918,-7.10657 z"
+ style="fill:url(#linearGradient1322);fill-rule:evenodd;stroke-width:1.30175579pt"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
+ id="path1269"
+ d="m 11.977124,84.576671 c -0.883927,1.953959 -1.36513,4.04141 -1.397018,6.134731 -8.33e-4,0.06556 0,0.177399 0,0.24296 h 0.12148 c 0.994358,3.78327 25.07956,8.512878 29.823299,11.540588 2.091809,-1.24429 3.465756,-2.547484 2.065157,-3.948099 C 39.594368,95.551236 12.773315,90.53478 11.734165,86.581087 h -0.12148 c 0,-0.06558 -8.33e-4,-0.177399 0,-0.242958 0.0091,-0.601939 0.284168,-1.162709 0.364439,-1.761458 z M 150.34262,92.47286 c -1.0612,1.680115 -3.10061,3.387829 -7.41026,5.345111 -18.97801,8.618589 -27.72886,6.348449 -32.25287,10.872439 -1.37053,1.37052 -0.88153,2.54264 0.18222,3.70513 4.78924,-3.38639 13.4115,-2.19944 31.03808,-10.20429 8.00504,-3.635614 8.46503,-6.511246 8.44283,-9.71839 z m -92.871299,8.86803 2.247377,2.9155 c 3.08308,1.57491 16.17252,4.58665 22.352289,5.22364 l -0.303699,-3.27996 c -7.216719,-0.0492 -16.21132,-2.7625 -24.295967,-4.85918 z M 30.685018,111.4237 c -2.022925,1.2244 -3.320206,2.51079 -1.943676,3.88736 4.523988,4.52399 27.364021,8.71723 31.888455,13.2413 0.198962,0.19895 0.17245,0.40741 0.3037,0.6074 1.405197,-1.67236 2.355425,-3.35413 0.728879,-4.98067 -4.359755,-4.3594 -25.379991,-8.41841 -30.977358,-12.75539 z m 100.220842,10.75097 c -1.55381,0.80713 -2.80902,1.9449 -2.55108,4.00882 7.10375,2.58184 18.08511,4.55915 19.37603,-0.60738 0.25122,-1.00435 0.11312,-1.85114 -0.24296,-2.55108 -3.06888,2.47706 -10.66085,1.09402 -16.58199,-0.85036 z m -11.17612,2.18664 c -8.90094,7.91694 -18.52655,8.74738 -22.595255,12.81612 -1.63664,1.63663 -0.713263,2.53048 0.6074,3.34069 5.191475,-3.47749 15.190165,-4.50342 23.931535,-14.33463 -0.44804,-0.69679 -1.30027,-1.20938 -1.94368,-1.82218 z m 5.0414,8.01767 c -1.86829,1.81567 -1.62997,5.17107 0.54666,6.80287 2.58292,1.93727 5.81565,0.68422 7.10656,-0.6074 0.66392,-0.66356 0.57592,-2.15087 -0.48592,-3.6444 -1.57518,0.81115 -3.6457,1.33536 -5.58806,-0.12148 -0.82081,-0.61535 -1.29544,-1.48388 -1.57924,-2.42959 z m -71.612353,0.24296 c -0.216533,0.15768 -0.17254,0.18708 -0.42518,0.36444 -3.501359,2.45861 -6.331704,4.7147 -10.325785,2.73329 -0.835138,-0.41433 -1.173493,-1.0297 -1.457758,-1.63998 -1.775949,2.19005 -2.210285,4.70572 0.425179,6.01325 3.994085,1.98138 6.824427,-0.27468 10.325787,-2.73329 3.50177,-2.45823 3.411658,-2.93899 3.158475,-3.88735 -0.166315,0.0444 -0.997334,-0.45265 -1.700718,-0.85036 z m 3.462175,4.79845 c -1.405193,1.67235 -2.355439,3.35411 -0.728879,4.98066 4.524009,4.52407 19.69882,-1.11019 16.946437,10.69022 6.109348,6.10935 18.859078,3.19384 27.39371,-2.91551 1.66654,-1.66656 0.69997,-2.58291 -0.668148,-3.40144 -8.458362,5.3473 -19.957869,7.67884 -25.692984,1.94368 2.752384,-11.8004 -12.422431,-6.16613 -16.946436,-10.69021 -0.198964,-0.19896 -0.172449,-0.40742 -0.3037,-0.6074 z"
+ style="fill:url(#linearGradient1231);fill-rule:evenodd;stroke-width:1.30175579pt"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccccc"
+ id="path1271"
+ d="m 107.57531,47.365247 32.87711,35.325423 c 0,0 9.7932,10.492701 2.09856,14.68978 -7.69466,4.19708 -31.12834,10.4927 -31.12834,10.4927 L 68.830422,46.540402 Z"
+ style="fill:url(#linearGradient1272);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.30175579pt"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccccc"
+ id="path1276"
+ d="M 56.944037,42.006087 26.165461,77.3315 c 0,0 -11.891721,10.4927 -4.197076,14.689777 7.694644,4.197078 58.409343,21.335153 94.084505,15.039533 L 75.13138,45.853409 Z"
+ style="fill:url(#linearGradient1277);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.49509335pt"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccccccccczz"
+ id="path1317"
+ d="m 82.042498,27.12255 c 4.504479,0.03329 23.422692,18.434639 28.837322,22.230809 5.41464,3.796171 4.14478,6.285951 4.14478,6.523269 L 99.839631,48.527099 98.321133,60.006943 89.939024,56.058848 77.062155,64.683915 72.081482,47.67674 65.76453,62.558018 47.967732,64.319476 48.149952,56.423287 74.438456,30.540688 c 1.907291,-1.877842 3.182156,-3.451427 7.604042,-3.418138 z"
+ style="fill:url(#linearGradient1318);fill-rule:evenodd;stroke-width:1.30175579pt"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+ <g
+ inkscape:label="Title"
+ id="layer2"
+ inkscape:groupmode="layer">
+ <text
+ id="text48"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:51.20000076px;line-height:100%;font-family:Arial;writing-mode:lr-tb;text-anchor:start;display:block;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ y="74.666664"
+ x="48">
+ <tspan
+ id="tspan1"
+ sodipodi:role="line"
+ y="74.666664"
+ x="48"
+ style="stroke-width:3.20000017pt">Evolving inkscape_gtkmm</tspan>
+ </text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:120.00000477%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="58.404686"
+ y="181.17188"
+ id="text74"><tspan
+ id="tspan9"
+ sodipodi:role="line"
+ y="181.17188"
+ x="58.404686"
+ style="stroke-width:1.06666669pt">* Expand Inkscape::Application</tspan><tspan
+ id="tspan10"
+ sodipodi:role="line"
+ y="211.89188"
+ x="58.404686"
+ style="stroke-width:1.06666669pt"> + High level services (GC, args, paths)</tspan><tspan
+ id="tspan11"
+ sodipodi:role="line"
+ y="242.61188"
+ x="58.404686"
+ style="stroke-width:1.06666669pt"> + Registries (extensions, prefs, etc.)</tspan><tspan
+ id="tspan12"
+ sodipodi:role="line"
+ y="273.33188"
+ x="58.404686"
+ style="stroke-width:1.06666669pt" /><tspan
+ id="tspan13"
+ sodipodi:role="line"
+ y="304.05188"
+ x="58.404686"
+ style="stroke-width:1.06666669pt">* Create new Inkscape::Application::RunMode</tspan><tspan
+ id="tspan14"
+ sodipodi:role="line"
+ y="334.77188"
+ x="58.404686"
+ style="stroke-width:1.06666669pt"> + Abstract base class</tspan><tspan
+ id="tspan15"
+ sodipodi:role="line"
+ y="365.49188"
+ x="58.404686"
+ style="stroke-width:1.06666669pt" /><tspan
+ id="tspan16"
+ sodipodi:role="line"
+ y="396.21188"
+ x="58.404686"
+ style="stroke-width:1.06666669pt">* Refactor Inkscape::Application::ApplicationImpl</tspan><tspan
+ id="tspan17"
+ sodipodi:role="line"
+ y="426.93188"
+ x="58.404686"
+ style="stroke-width:1.06666669pt"> + Rename it to Inkscape::Application::Editor</tspan><tspan
+ id="tspan18"
+ sodipodi:role="line"
+ y="457.65189"
+ x="58.404686"
+ style="stroke-width:1.06666669pt"> + Make it subclass I::A::RunMode</tspan><tspan
+ id="tspan19"
+ sodipodi:role="line"
+ y="488.37189"
+ x="58.404686"
+ style="stroke-width:1.06666669pt"> + Move items from SPDesktop into here</tspan><tspan
+ id="tspan20"
+ sodipodi:role="line"
+ y="519.09192"
+ x="58.404686"
+ style="stroke-width:1.06666669pt" /><tspan
+ id="tspan21"
+ sodipodi:role="line"
+ y="549.81189"
+ x="58.404686"
+ style="stroke-width:1.06666669pt">* Create new Inkscape::Application::Cmdline</tspan><tspan
+ id="tspan22"
+ sodipodi:role="line"
+ y="580.53192"
+ x="58.404686"
+ style="stroke-width:1.06666669pt"> + Make it subclass I::A::RunMode</tspan><tspan
+ id="tspan23"
+ sodipodi:role="line"
+ y="611.25189"
+ x="58.404686"
+ style="stroke-width:1.06666669pt"> + Move stuff from main.cpp into here</tspan></text>
+ </g>
+ <g
+ inkscape:label="Drawing Area"
+ id="layer3"
+ inkscape:groupmode="layer" />
+</svg>
diff --git a/doc/PDF Feature Matrix.ods b/doc/PDF Feature Matrix.ods
new file mode 100644
index 0000000..5b89744
--- /dev/null
+++ b/doc/PDF Feature Matrix.ods
Binary files differ
diff --git a/doc/PDF Feature Matrix.svg b/doc/PDF Feature Matrix.svg
new file mode 100644
index 0000000..1d31f68
--- /dev/null
+++ b/doc/PDF Feature Matrix.svg
@@ -0,0 +1,568 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="816"
+ height="1056"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.92.0 r15304"
+ sodipodi:docname="PDF Feature Matrix.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0"
+ sodipodi:modified="true">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient9302">
+ <stop
+ id="stop9304"
+ offset="0"
+ style="stop-color:red;stop-opacity:1;" />
+ <stop
+ style="stop-color:#7f7f00;stop-opacity:0;"
+ offset="0.5"
+ id="stop9308" />
+ <stop
+ id="stop9306"
+ offset="1"
+ style="stop-color:lime;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5722">
+ <stop
+ style="stop-color:red;stop-opacity:1;"
+ offset="0"
+ id="stop5724" />
+ <stop
+ style="stop-color:lime;stop-opacity:1;"
+ offset="1"
+ id="stop5726" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5722"
+ id="linearGradient5728"
+ x1="337.36264"
+ y1="80.384155"
+ x2="467.03296"
+ y2="80.384155"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0666667,0,0,1.0666667,51.2,192)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5722"
+ id="linearGradient5734"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.94889067,0,0,0.83895573,272.70379,210.30432)"
+ x1="337.36264"
+ y1="80.384155"
+ x2="467.03296"
+ y2="80.384155" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5722"
+ id="radialGradient8399"
+ cx="81.318687"
+ cy="227.63692"
+ fx="81.318687"
+ fy="227.63692"
+ r="60.439564"
+ gradientTransform="matrix(1.0666667,0,0,0.82424213,51.2,247.18475)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5722"
+ id="radialGradient8409"
+ cx="245.05495"
+ cy="227.63692"
+ fx="245.05495"
+ fy="227.63692"
+ r="64.598351"
+ gradientTransform="matrix(1.0666667,0,0,0.78541333,51.2,256.02368)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9302"
+ id="linearGradient8413"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0666667,0,0,1.0666667,54.716491,346.72523)"
+ x1="337.36264"
+ y1="80.384155"
+ x2="467.03296"
+ y2="80.384155" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5722"
+ id="linearGradient10205"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0666667,0,0,1.0666667,54.716491,346.72523)"
+ x1="56.043961"
+ y1="184.77975"
+ x2="138.46153"
+ y2="254.01053" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5722"
+ id="linearGradient10209"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0666667,0,0,1.0666667,54.716491,346.72523)"
+ x1="230.00603"
+ y1="200.08302"
+ x2="258.77368"
+ y2="229.91617" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5722"
+ id="linearGradient10211"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0666667,0,0,1.0666667,54.716491,346.72523)"
+ x1="230.00603"
+ y1="200.08302"
+ x2="258.77368"
+ y2="229.91617" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5722"
+ id="linearGradient4993"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0666667,0,0,1.0666667,54.716491,346.72523)"
+ x1="56.043961"
+ y1="184.77975"
+ x2="138.46153"
+ y2="254.01053" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.69246595"
+ inkscape:cx="440.14605"
+ inkscape:cy="524.81516"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ inkscape:window-width="1280"
+ inkscape:window-height="949"
+ inkscape:window-x="0"
+ inkscape:window-y="25"
+ width="765px"
+ height="990px"
+ showgrid="false"
+ inkscape:window-maximized="0" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ff0000;stroke-width:14.71767521;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:0.50196078;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
+ d="m 244.22204,228.71274 h 77.43187 v 66.19174 h -77.43187 z"
+ id="rect2160"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path3059"
+ d="m 274.90754,260.53475 h 77.43187 v 66.19174 h -77.43187 z"
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ff0000;stroke-width:14.71767521;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:0.50196078;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path3061"
+ d="m 81.212465,224.33827 h 86.195655 v 73.68337 H 81.212465 Z"
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ff0000;fill-opacity:0.50196078;fill-rule:nonzero;stroke:none;stroke-width:27.62665558;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:0.50196078;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ff0000;fill-opacity:0.50196078;fill-rule:nonzero;stroke:none;stroke-width:27.62665558;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:0.50196078;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
+ d="m 115.37098,259.76191 h 86.19564 v 73.68337 h -86.19564 z"
+ id="path3063"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#linearGradient5728);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:27.62666702;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.50196078;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
+ id="rect4835"
+ width="128.93773"
+ height="99.633698"
+ x="411.0535"
+ y="227.92625" />
+ <rect
+ y="238.56108"
+ x="592.82385"
+ height="78.364021"
+ width="114.70103"
+ id="rect5730"
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient5734);stroke-width:23.10879707;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" />
+ <rect
+ y="384.99582"
+ x="73.471062"
+ height="99.633698"
+ width="128.93773"
+ id="rect7506"
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#radialGradient8399);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:27.62666702;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.50196078;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" />
+ <rect
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient8409);stroke-width:23.10879707;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
+ id="rect7508"
+ width="114.70103"
+ height="78.364021"
+ x="255.24144"
+ y="395.63071" />
+ <rect
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:27.62666702;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.50196078;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
+ id="rect9310"
+ width="164.10257"
+ height="22.271063"
+ x="399.33188"
+ y="423.67715" />
+ <rect
+ y="382.65152"
+ x="414.56995"
+ height="99.633698"
+ width="128.93773"
+ id="rect8411"
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#linearGradient8413);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:27.62666702;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.50196078;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" />
+ <path
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient10209);stroke-width:17.06666756;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.50196078;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
+ d="m 261.34031,527.05124 h 77.43187 v 66.19177 h -77.43187 z"
+ id="path10197"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path10199"
+ d="m 292.02581,558.87327 h 77.43188 V 625.065 h -77.43188 z"
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient10211);stroke-width:17.06666756;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.50196078;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path10201"
+ d="m 98.330731,522.67679 h 86.195659 v 73.68337 H 98.330731 Z"
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#linearGradient10205);fill-opacity:0.5;fill-rule:nonzero;stroke:none;stroke-width:27.62666702;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#linearGradient4993);fill-opacity:0.5;fill-rule:nonzero;stroke:none;stroke-width:27.62666702;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
+ d="M 132.48924,558.10043 H 218.6849 V 631.7838 H 132.48924 Z"
+ id="path10203"
+ inkscape:connector-curvature="0" />
+ <image
+ sodipodi:absref="/home/nicolas/dev/bzr/inkscape/0.92-stable/doc/../share/tutorials/oldguitar.jpg"
+ xlink:href="../share/tutorials/oldguitar.jpg"
+ width="90.654945"
+ height="126.05669"
+ id="image12884"
+ x="611.9754"
+ y="372.06854" />
+ <text
+ xml:space="preserve"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:normal;font-family:'Bitstream Vera Sans';text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:middle;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
+ x="298.526"
+ y="213.86032"
+ id="text12887"><tspan
+ sodipodi:role="line"
+ id="tspan12889"
+ x="298.526"
+ y="213.86032"
+ style="stroke-width:1.06666672">stroke-opacity (solid)</tspan></text>
+ <text
+ xml:space="preserve"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:normal;font-family:'Bitstream Vera Sans';text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:middle;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
+ x="127.39048"
+ y="215.03249"
+ id="text12891"><tspan
+ sodipodi:role="line"
+ id="tspan12893"
+ x="127.39048"
+ y="215.03249"
+ style="stroke-width:1.06666672">fill-opacity (solid)</tspan></text>
+ <text
+ xml:space="preserve"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:normal;font-family:'Bitstream Vera Sans';text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:middle;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
+ x="474.35019"
+ y="217.3768"
+ id="text12895"><tspan
+ sodipodi:role="line"
+ x="474.35019"
+ y="217.3768"
+ id="tspan12899"
+ style="stroke-width:1.06666672">linearGradient (fill)</tspan></text>
+ <text
+ xml:space="preserve"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:normal;font-family:'Bitstream Vera Sans';text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:middle;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
+ x="650.17438"
+ y="218.54898"
+ id="text12903"><tspan
+ sodipodi:role="line"
+ id="tspan12905"
+ x="650.17438"
+ y="218.54898"
+ style="stroke-width:1.06666672">linearGradient (stroke)</tspan></text>
+ <text
+ xml:space="preserve"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:normal;font-family:'Bitstream Vera Sans';text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:middle;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
+ x="136.76778"
+ y="377.96289"
+ id="text12907"><tspan
+ sodipodi:role="line"
+ id="tspan12909"
+ x="136.76778"
+ y="377.96289"
+ style="stroke-width:1.06666672">radialGradient (fill)</tspan></text>
+ <text
+ xml:space="preserve"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:normal;font-family:'Bitstream Vera Sans';text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:middle;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
+ x="309.07547"
+ y="374.44641"
+ id="text12911"><tspan
+ sodipodi:role="line"
+ id="tspan12913"
+ x="309.07547"
+ y="374.44641"
+ style="stroke-width:1.06666672">radialGradient (stroke)</tspan></text>
+ <text
+ xml:space="preserve"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:normal;font-family:'Bitstream Vera Sans';text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:middle;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
+ x="470.83368"
+ y="373.27423"
+ id="text12915"><tspan
+ sodipodi:role="line"
+ id="tspan12917"
+ x="470.83368"
+ y="373.27423"
+ style="stroke-width:1.06666672">stop-opacity</tspan></text>
+ <text
+ xml:space="preserve"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:normal;font-family:'Bitstream Vera Sans';text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:middle;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
+ x="653.6908"
+ y="362.72479"
+ id="text12919"><tspan
+ sodipodi:role="line"
+ id="tspan12921"
+ x="653.6908"
+ y="362.72479"
+ style="stroke-width:1.06666672">image</tspan></text>
+ <text
+ xml:space="preserve"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:normal;font-family:'Bitstream Vera Sans';text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:middle;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
+ x="130.90697"
+ y="512.76141"
+ id="text12923"><tspan
+ sodipodi:role="line"
+ id="tspan12925"
+ x="130.90697"
+ y="512.76141"
+ style="stroke-width:1.06666672">fill-opacity (gradient)</tspan></text>
+ <text
+ xml:space="preserve"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:normal;font-family:'Bitstream Vera Sans';text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:middle;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
+ x="302.04251"
+ y="510.41708"
+ id="text12927"><tspan
+ sodipodi:role="line"
+ id="tspan12929"
+ x="302.04251"
+ y="510.41708"
+ style="stroke-width:1.06666672">stroke-opacity (gradient)</tspan></text>
+ <text
+ xml:space="preserve"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:36.12400436px;line-height:normal;font-family:'Bitstream Vera Sans';text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:middle;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
+ x="480.3414"
+ y="589.09479"
+ id="text13816"><tspan
+ sodipodi:role="line"
+ id="tspan13818"
+ x="480.3414"
+ y="589.09479"
+ style="stroke-width:1.06666672">text</tspan></text>
+ <flowRoot
+ xml:space="preserve"
+ id="flowRoot13820"
+ style="font-size:36.12400818px;stroke-width:3.01033378"><flowRegion
+ id="flowRegion13822"
+ style="stroke-width:3.01033378"><rect
+ id="rect13824"
+ width="251.41251"
+ height="119.09013"
+ x="590.67609"
+ y="551.11725"
+ style="stroke-width:9.06210995" /></flowRegion><flowPara
+ id="flowPara13826"
+ style="stroke-width:3.01033378">flowText</flowPara></flowRoot> <rect
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
+ id="rect13828"
+ width="100.80586"
+ height="78.534798"
+ x="134.84541"
+ y="712.38049" />
+ <rect
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.5;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
+ id="rect13830"
+ width="107.83883"
+ height="77.36264"
+ x="84.442497"
+ y="678.38776" />
+ <text
+ xml:space="preserve"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:normal;font-family:'Bitstream Vera Sans';text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:middle;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
+ x="138.45567"
+ y="664.9314"
+ id="text15602"><tspan
+ sodipodi:role="line"
+ id="tspan15604"
+ x="138.45567"
+ y="664.9314"
+ style="stroke-width:1.06666672">opacity (path)</tspan></text>
+ <text
+ xml:space="preserve"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:normal;font-family:'Bitstream Vera Sans';text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:middle;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
+ x="308.86444"
+ y="667.0647"
+ id="text15606"><tspan
+ sodipodi:role="line"
+ id="tspan15608"
+ x="308.86444"
+ y="667.0647"
+ style="stroke-width:1.06666672">opacity (image)*</tspan></text>
+ <text
+ xml:space="preserve"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:normal;font-family:'Bitstream Vera Sans';text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:middle;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
+ x="489.58829"
+ y="663.97015"
+ id="text15610"><tspan
+ sodipodi:role="line"
+ id="tspan15612"
+ x="489.58829"
+ y="663.97015"
+ style="stroke-width:1.06666672">opacity (fill+stroke)</tspan></text>
+ <text
+ xml:space="preserve"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:normal;font-family:'Bitstream Vera Sans';text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:middle;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
+ x="666.58466"
+ y="659.28156"
+ id="text15614"><tspan
+ sodipodi:role="line"
+ id="tspan15616"
+ x="666.58466"
+ y="659.28156"
+ style="stroke-width:1.06666672">opacity (group)</tspan></text>
+ <image
+ sodipodi:absref="/home/nicolas/dev/bzr/inkscape/0.92-stable/doc/../share/tutorials/oldguitar.jpg"
+ xlink:href="../share/tutorials/oldguitar.jpg"
+ width="90.654945"
+ height="126.05669"
+ id="image15622"
+ x="293.14755"
+ y="719.02826" />
+ <image
+ sodipodi:absref="/home/nicolas/dev/bzr/inkscape/0.92-stable/doc/../share/tutorials/oldguitar.jpg"
+ xlink:href="../share/tutorials/oldguitar.jpg"
+ style="opacity:0.5"
+ y="685.03552"
+ x="259.15488"
+ id="image15618"
+ height="126.05669"
+ width="90.654945" />
+ <path
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.5;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:32;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ d="m 539.99119,753.64055 c 0,26.85188 -22.84307,48.64471 -50.98901,48.64471 -28.14592,0 -50.989,-21.79283 -50.989,-48.64471 0,-26.85186 22.84308,-48.64469 50.989,-48.64469 28.14594,0 50.98901,21.79283 50.98901,48.64469 z"
+ id="path2323"
+ inkscape:connector-curvature="0" />
+ <g
+ id="g4989"
+ style="opacity:0.5"
+ transform="translate(51.2,192)">
+ <rect
+ y="526.62439"
+ x="586.08051"
+ height="79.409546"
+ width="104.32235"
+ id="rect4987"
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:32;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" />
+ <rect
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:32;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
+ id="rect3215"
+ width="104.32235"
+ height="79.409546"
+ x="546.22711"
+ y="493.80389" />
+ </g>
+ <rect
+ style="color:#000000;font-family:'Bitstream Vera Sans';text-align:start;text-anchor:start;display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:32;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
+ id="rect5013"
+ width="114.67231"
+ height="66.236717"
+ x="120.19363"
+ y="851.8985" />
+ <flowRoot
+ xml:space="preserve"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.88000011px;line-height:normal;font-family:'Bitstream Vera Sans';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:start;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.57333332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ id="flowRoot5015"><flowRegion
+ id="flowRegion5017"
+ style="stroke-width:0.57333332px"><use
+ x="0"
+ y="0"
+ xlink:href="#rect5013"
+ id="use5019"
+ transform="matrix(1.860465,0,0,1.860465,-143.2108,-713.9307)"
+ width="765"
+ height="990"
+ style="stroke-width:0.57333332px" /></flowRegion><flowPara
+ id="flowPara5025"
+ style="stroke-width:0.57333332px">*inkscape's rendering is slightly incorrect due to issues with alpha premultiplication. The important thing is that the upper left image should only be partly opaque, while the lower right image should be fully opaque.</flowPara></flowRoot> <text
+ xml:space="preserve"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:normal;font-family:'Bitstream Vera Sans';text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:middle;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
+ x="650.17438"
+ y="62.815639"
+ id="text2364"><tspan
+ sodipodi:role="line"
+ id="tspan2366"
+ x="650.17438"
+ y="62.815639"
+ style="stroke-width:1.06666672">stroke-dasharray</tspan></text>
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5.33333349;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:10.66666667, 5.33333333, 2.66666667, 5.33333333;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 569.17359,77.853229 H 734.76537"
+ id="path4316"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5.33333349;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:10.66666667, 5.33333333, 2.66666667, 5.33333333;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 569.17359,90.653229 H 734.76537"
+ id="path4318"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5.33333349;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:10.66666667, 5.33333333, 2.66666667, 5.33333333;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 569.17359,103.45323 H 734.76537"
+ id="path4320"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5.33333349;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:5.33333333, 21.33333333;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 569.17359,133.31989 H 734.76537"
+ id="path4322"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5.33333349;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:5.33333333, 21.33333333;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 569.17359,146.11989 H 734.76537"
+ id="path4324"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5.33333349;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:5.33333333, 21.33333333;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 569.17359,158.91989 H 734.76537"
+ id="path4326"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/doc/README.document b/doc/README.document
new file mode 100644
index 0000000..e5f958c
--- /dev/null
+++ b/doc/README.document
@@ -0,0 +1,77 @@
+31.03.2000
+
+Well, we end with 2 basic objects:
+
+SPDocument - the base of all nongraphical wizardry.
+Although you can well do all things via repr tree, Document will have some
+neat features:
+Undo stack managing: start_undo_step, end_undo_step
+Selection grabbing - we can select via reprs, which is otherwise impossible
+NB! SPDocument is SPRepr ref holder NB!
+
+SPDesktop - the base of all graphical wizardry
+
+What follows, is outdated...
+
+Document hierarchy
+
+This is currently in active rewrite. Structure should be something like:
+
+SPApp - main application thing, probably GnomeMDI in future
+SPDesktop - one view to one document
+SPDocument - SPItem tree rootmost element
+
+SPItem tree refers to xml backbone (currently reprs) and Canvas trees.
+Backbone does not know anything about other items/classes/objects. There
+can be more than one canvas tree (desktop) associated with document.
+
+There is (and should be more) event interconnection between different
+objects.
+
+Editing can be done to all three levels, but should end up with modifying
+reprs. No other change will be saved.
+1. Non-interactive modifications (for example changing object color)
+These should be done directly to backbone. Probably I'll implement a separate
+wrapper thing (sp-app-repr-interface.h or similar) to minimize the need
+to include lot of headers for such modules. These will be also probably the
+first interface to plugins.
+Such modifications will instantly propagate to all items and views and will
+be preserved when saving, duplicating & so on.
+
+2. Interactive modifications to SPItems
+These are a bit faster (no need of coding/decoding, allocing, freeing xml
+attributes). Changes will display instantly to all views, but WILL NOT
+propagate back to xml. The right way to use such things is:
+When button pressed, grab mouse pointer
+Do modifications to SPItem
+When button released, write modifications to SPRepr
+
+3. Interactive modifications to GnomeCanvasItems
+These affect only the current display (desktop) and DO NOT propagate back
+neither to SPItems, nor SPReprs. Use with same caution, as the class above.
+
+Undo/Redo, when implemented, will be probably extracted from xml
+
+There are several more things, like
+SPSelection - a per desktop selection (selection.h)
+Handful of canvas groups for grid, guidelines & so on (desktop.h)
+Intermediate holders of currently modified data (all contexts)
+SPNodepath (nodepath.h)
+
+---------------------
+
+Document == SPRoot
+Provides convenience constructors
+
+Selection { /* opaque */ }
+Per desktop structure, pointing to selected items
+
+Desktop {
+ Selection selection
+ Document document
+}
+
+macro ACTIVE_DESKTOP ;) gives current active desktop ;-)
+There will be probably several macros to deduce affected desktop from
+UI events (menus & so on)
+
diff --git a/doc/architecture.svg b/doc/architecture.svg
new file mode 100644
index 0000000..3c332a3
--- /dev/null
+++ b/doc/architecture.svg
@@ -0,0 +1,826 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg1"
+ sodipodi:version="0.32"
+ width="210mm"
+ height="297mm"
+ sodipodi:docname="architecture.svg"
+ inkscape:version="0.92.0 r15304"
+ xlink:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ version="1.1">
+ <metadata
+ id="metadata35627">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs3">
+ <marker
+ id="mArrow"
+ markerWidth="8"
+ markerHeight="10"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ d="M 10.666667,4.2666667 C 10.666667,4.2666667 0,0 0,0 0,0 10.666667,-4.2666667 10.666667,-4.2666667"
+ style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="arrowMarkerPath"
+ sodipodi:nodetypes="cs"
+ inkscape:connector-curvature="0" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ showborder="false"
+ showgrid="true"
+ snaptogrid="true"
+ inkscape:zoom="0.60132576"
+ inkscape:cx="396.85039"
+ inkscape:cy="361.70079"
+ inkscape:window-width="1261"
+ inkscape:window-height="894"
+ inkscape:window-x="15"
+ inkscape:window-y="25"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg1">
+ <inkscape:grid
+ id="GridFromPre046Settings"
+ type="xygrid"
+ originx="0"
+ originy="0"
+ spacingx="10.07874"
+ spacingy="10.07874"
+ color="#3f3fff"
+ empcolor="#3f3fff"
+ opacity="0.15"
+ empopacity="0.38"
+ empspacing="5" />
+ </sodipodi:namedview>
+ <path
+ style="font-size:12px;fill:#ff0000;fill-opacity:0.655629;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.30476589pt"
+ d="m 982.67707,451.65333 v 122.8352 h -28.34666 l 9.4496,18.89707 h -37.79627 l 9.4496,-18.89707 H 614.17361 l 9.44853,18.89707 h -37.7952 l 9.44853,-18.89707 -377.95306,-10e-4 9.44853,18.89813 h -37.7952 l 9.4496,-18.89813 -179.527786,-0.002 1.06e-4,-122.832 z"
+ id="path290"
+ sodipodi:nodetypes="ccccccccccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="font-size:12px;fill:#a80000;fill-opacity:0.655629;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.29627947pt"
+ d="m 396.85035,574.48779 v 28.34773 l -18.89814,-9.4496 v 37.7952 l 18.89814,-9.44853 v 47.24266 l 198.4256,0.001 -9.4496,18.89813 h 37.7952 l -9.44854,-18.89813 h 179.52747 v -37.7952 l 18.89813,9.44853 v -37.7952 l -18.89813,9.44854 v -37.79414 l -179.52747,-10e-4 9.44854,18.89813 h -37.7952 l 9.4496,-18.89813 z"
+ id="path814"
+ sodipodi:nodetypes="ccccccccccccccccccccc"
+ inkscape:connector-curvature="0" />
+ <text
+ style="font-style:normal;font-weight:bold;font-size:12.80000019px;line-height:100%;font-family:'Luxi Sans';writing-mode:lr-tb;text-anchor:start;stroke-width:1.06666669pt"
+ x="406.29922"
+ y="590.91705"
+ id="text230">
+ <tspan
+ x="406.29922"
+ y="590.91705"
+ sodipodi:role="line"
+ id="tspan305"
+ style="stroke-width:1.06666669pt">Module subsystem</tspan>
+ <tspan
+ x="406.29922"
+ y="603.71704"
+ sodipodi:role="line"
+ id="tspan307"
+ style="stroke-width:1.06666669pt">(src/modules/*)</tspan>
+ <tspan
+ x="406.29922"
+ y="616.51703"
+ sodipodi:role="line"
+ id="tspan309"
+ style="stroke-width:1.06666669pt" />
+ </text>
+ <text
+ style="font-weight:normal;font-size:10.66666698px;line-height:100%;font-family:'Luxi Sans';stroke-width:1.06666669pt"
+ x="415.74805"
+ y="625.47028"
+ id="text566">
+ <tspan
+ x="415.74805"
+ y="625.47028"
+ sodipodi:role="line"
+ id="tspan587"
+ style="stroke-width:1.06666669pt">SPModules (aka plugins) handle filtering, input and export of</tspan>
+ <tspan
+ x="415.74805"
+ y="636.13696"
+ sodipodi:role="line"
+ id="tspan589"
+ style="stroke-width:1.06666669pt">SPModuleDocs (wrapped SPDocuments) and to eventually</tspan>
+ <tspan
+ x="415.74805"
+ y="646.80359"
+ sodipodi:role="line"
+ id="tspan591"
+ style="stroke-width:1.06666669pt">encompass more functionality like e.g. providing tool</tspan>
+ <tspan
+ x="415.74805"
+ y="657.47028"
+ sodipodi:role="line"
+ id="tspan593"
+ style="stroke-width:1.06666669pt">implementations.</tspan>
+ </text>
+ <path
+ style="font-size:12px;fill:#a85500;fill-opacity:0.655629;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.30476589pt"
+ d="m 396.85013,574.48853 v 28.3456 l -18.89706,-9.44853 v 37.7952 l 18.89706,-9.44853 v 103.93706 l 18.89814,-9.44853 v 37.7952 l -18.89814,-9.44853 V 820.1568 H 217.32267 l 9.44853,18.89813 H 188.976 L 198.4256,820.1568 18.897813,820.1548 18.8976,574.48866 h 179.528 l -9.4496,18.89707 h 37.7952 l -9.44853,-18.89707 z"
+ id="path810"
+ sodipodi:nodetypes="ccccccccccccccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="font-size:12px;fill:#0055a9;fill-opacity:0.655629;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.29627947pt"
+ d="m 396.85013,1009.1339 v 28.3477 l -18.89706,-9.4507 v 37.7963 l 18.89706,-9.4485 v 28.3466 h 396.85014 v -75.5914 H 519.68533 l 9.44854,18.8981 h -37.7952 l 9.44853,-18.8981 z"
+ id="path806"
+ sodipodi:nodetypes="ccccccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="font-size:12px;fill:#00a7a8;fill-opacity:0.655629;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.30476589pt"
+ d="M 793.70027,895.74827 V 1009.1339 H 519.68533 l 9.44854,18.8981 h -37.7952 l 9.44853,-18.8981 H 217.32267 l 9.44853,18.8981 H 188.976 l 9.4496,-18.8981 H 18.897813 L 18.8976,895.75047 h 179.528 l -9.4496,18.89706 h 37.7952 l -9.44853,-18.89706 h 387.4016 l -9.44854,18.89706 h 37.7952 l -9.44853,-18.89706 z"
+ id="path804"
+ sodipodi:nodetypes="ccccccccccccccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="font-size:12px;fill:#5400a8;fill-opacity:0.655629;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.29627947pt"
+ d="m 396.85013,1084.7253 v -28.3477 l -18.89706,9.4496 v -37.7952 l 18.89706,9.4485 v -28.3466 H 217.32267 l 9.44853,18.8981 H 188.976 l 9.4496,-18.8981 H 18.897813 l -2.13e-4,75.5914 z"
+ id="path802"
+ sodipodi:nodetypes="ccccccccccccc"
+ inkscape:connector-curvature="0" />
+ <text
+ style="font-style:normal;font-weight:bold;font-size:12.80000019px;line-height:100%;font-family:'Luxi Sans';writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="32.301373"
+ y="1026.1064"
+ id="text15">
+ <tspan
+ x="32.301373"
+ y="1026.1064"
+ sodipodi:role="line"
+ id="tspan835"
+ style="stroke-width:1.06666669pt">New Renderer</tspan>
+ <tspan
+ x="32.301373"
+ y="1038.9065"
+ sodipodi:role="line"
+ id="tspan837"
+ style="stroke-width:1.06666669pt">(src/libnr/*)</tspan>
+ <tspan
+ x="32.301373"
+ y="1051.7064"
+ sodipodi:role="line"
+ id="tspan839"
+ style="stroke-width:1.06666669pt" />
+ </text>
+ <text
+ style="font-style:normal;font-weight:bold;font-size:12.80000019px;line-height:100%;font-family:'Luxi Sans';writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="406.4422"
+ y="1044.6467"
+ id="text25">
+ <tspan
+ x="406.4422"
+ y="1044.6467"
+ sodipodi:role="line"
+ id="tspan797"
+ style="stroke-width:1.06666669pt">New Renderer Typesetting (src/libnr/libnrtype/*)</tspan>
+ <tspan
+ x="406.4422"
+ y="1057.4468"
+ sodipodi:role="line"
+ id="tspan799"
+ style="stroke-width:1.06666669pt" />
+ </text>
+ <text
+ style="font-style:normal;font-weight:bold;font-size:12.80000019px;line-height:100%;font-family:'Luxi Sans';writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="27.821459"
+ y="918.27454"
+ id="text28">
+ <tspan
+ x="27.821459"
+ y="918.27454"
+ sodipodi:role="line"
+ id="tspan821"
+ style="stroke-width:1.06666669pt">Display Glue</tspan>
+ <tspan
+ x="27.821459"
+ y="931.07452"
+ sodipodi:role="line"
+ id="tspan823"
+ style="stroke-width:1.06666669pt">(src/display/*)</tspan>
+ <tspan
+ x="27.821459"
+ y="943.87451"
+ sodipodi:role="line"
+ id="tspan825"
+ style="stroke-width:1.06666669pt" />
+ </text>
+ <text
+ style="font-style:normal;font-weight:bold;font-size:12.80000019px;line-height:100%;font-family:'Luxi Sans';writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="29.362036"
+ y="593.8811"
+ id="text189">
+ <tspan
+ x="29.362036"
+ y="593.8811"
+ sodipodi:role="line"
+ id="tspan815"
+ style="stroke-width:1.06666669pt">View subsystem</tspan>
+ <tspan
+ x="29.362036"
+ y="606.68109"
+ sodipodi:role="line"
+ id="tspan817"
+ style="stroke-width:1.06666669pt">(src/view.*, src/desktop*.*, src/svg-view.* and others)</tspan>
+ <tspan
+ x="29.362036"
+ y="619.48108"
+ sodipodi:role="line"
+ id="tspan819"
+ style="stroke-width:1.06666669pt" />
+ </text>
+ <text
+ style="font-style:normal;font-weight:normal;font-size:10.66666698px;line-height:100%;font-family:'Luxi Sans';writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="37.347359"
+ y="652.9516"
+ id="text685">
+ <tspan
+ x="37.347359"
+ y="652.9516"
+ sodipodi:role="line"
+ id="tspan642"
+ style="stroke-width:1.06666669pt">SPView is an abstract class representing a &quot;view&quot; of an SPDocument. It</tspan>
+ <tspan
+ x="37.347359"
+ y="663.61829"
+ sodipodi:role="line"
+ id="tspan644"
+ style="stroke-width:1.06666669pt">has a companion SPViewWidget class for the associated display widget.</tspan>
+ <tspan
+ x="37.347359"
+ y="674.28491"
+ sodipodi:role="line"
+ id="tspan646"
+ style="stroke-width:1.06666669pt" />
+ <tspan
+ x="37.347359"
+ y="684.9516"
+ sodipodi:role="line"
+ id="tspan648"
+ style="stroke-width:1.06666669pt">SPDesktop is an editable SPView, and SPSVGView is a display-only view</tspan>
+ <tspan
+ x="37.347359"
+ y="695.61829"
+ sodipodi:role="line"
+ id="tspan650"
+ style="stroke-width:1.06666669pt">(e.g. the about box). Both maintain an SPCanvas and provide an</tspan>
+ <tspan
+ x="37.347359"
+ y="706.28491"
+ sodipodi:role="line"
+ id="tspan652"
+ style="stroke-width:1.06666669pt">SPCanvasArena for SPObjects to display on. They have associated</tspan>
+ <tspan
+ x="37.347359"
+ y="716.9516"
+ sodipodi:role="line"
+ id="tspan654"
+ style="stroke-width:1.06666669pt">SPViewWidget subclasses: SPDesktopWidget and SPSVGViewWidget.</tspan>
+ <tspan
+ x="37.347359"
+ y="727.61829"
+ sodipodi:role="line"
+ id="tspan656"
+ style="stroke-width:1.06666669pt">SPDesktop is also responsible for maintaining the current selection in</tspan>
+ <tspan
+ x="37.347359"
+ y="738.28491"
+ sodipodi:role="line"
+ id="tspan658"
+ style="stroke-width:1.06666669pt">an SPSelection.</tspan>
+ <tspan
+ x="37.347359"
+ y="748.9516"
+ sodipodi:role="line"
+ id="tspan660"
+ style="stroke-width:1.06666669pt" />
+ <tspan
+ x="37.347359"
+ y="759.61829"
+ sodipodi:role="line"
+ id="tspan662"
+ style="stroke-width:1.06666669pt">SPDesktopWidget isn't just a bare canvas; it includes the scrollbars and</tspan>
+ <tspan
+ x="37.347359"
+ y="770.28491"
+ sodipodi:role="line"
+ id="tspan664"
+ style="stroke-width:1.06666669pt">other decorations.</tspan>
+ <tspan
+ x="37.347359"
+ y="780.9516"
+ sodipodi:role="line"
+ id="tspan666"
+ style="stroke-width:1.06666669pt" />
+ <tspan
+ x="37.347359"
+ y="791.61829"
+ sodipodi:role="line"
+ id="tspan668"
+ style="stroke-width:1.06666669pt">SPEventContexts handle tool state and interaction.</tspan>
+ <tspan
+ x="37.347359"
+ y="802.28491"
+ sodipodi:role="line"
+ id="tspan670"
+ style="stroke-width:1.06666669pt" />
+ </text>
+ <text
+ style="font-style:normal;font-weight:normal;font-size:10.66666698px;line-height:100%;font-family:'Luxi Sans';writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="37.836384"
+ y="948.54315"
+ id="text730">
+ <tspan
+ x="37.836384"
+ y="948.54315"
+ sodipodi:role="line"
+ id="tspan737"
+ style="stroke-width:1.06666669pt">This subsystem provides a lightweight arena abstraction.</tspan>
+ <tspan
+ x="37.836384"
+ y="959.20984"
+ sodipodi:role="line"
+ id="tspan739"
+ style="stroke-width:1.06666669pt" />
+ <tspan
+ x="37.836384"
+ y="969.87646"
+ sodipodi:role="line"
+ id="tspan741"
+ style="stroke-width:1.06666669pt">NRArena - a collection of lightweight renderable NRArenaItems.</tspan>
+ <tspan
+ x="37.836384"
+ y="980.54315"
+ sodipodi:role="line"
+ id="tspan743"
+ style="stroke-width:1.06666669pt" />
+ <tspan
+ x="37.836384"
+ y="991.20984"
+ sodipodi:role="line"
+ id="tspan745"
+ style="stroke-width:1.06666669pt">SPCanvasArena - an SPCanvasItem that renders the contents of an</tspan>
+ <tspan
+ x="37.836384"
+ y="1001.8765"
+ sodipodi:role="line"
+ id="tspan747"
+ style="stroke-width:1.06666669pt">NRArena.</tspan>
+ <tspan
+ x="37.836384"
+ y="1012.5432"
+ sodipodi:role="line"
+ id="tspan749"
+ style="stroke-width:1.06666669pt" />
+ </text>
+ <text
+ style="font-style:normal;font-weight:normal;font-size:10.66666698px;line-height:100%;font-family:'Luxi Sans';writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="37.691109"
+ y="1055.1531"
+ id="text755">
+ <tspan
+ x="37.691109"
+ y="1055.1531"
+ sodipodi:role="line"
+ id="tspan768"
+ style="stroke-width:1.06666669pt">The new rendering subsystem mostly replaces libart. It renders</tspan>
+ <tspan
+ x="37.691109"
+ y="1065.8197"
+ sodipodi:role="line"
+ id="tspan770"
+ style="stroke-width:1.06666669pt">filled/stroked bezier curves and polygons into NRPixBlocks (image</tspan>
+ <tspan
+ x="37.691109"
+ y="1076.4865"
+ sodipodi:role="line"
+ id="tspan772"
+ style="stroke-width:1.06666669pt">buffers)</tspan>
+ <tspan
+ x="37.691109"
+ y="1087.1531"
+ sodipodi:role="line"
+ id="tspan774"
+ style="stroke-width:1.06666669pt" />
+ </text>
+ <text
+ style="font-style:normal;font-weight:normal;font-size:10.66666698px;line-height:100%;font-family:'Luxi Sans';writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="419.53137"
+ y="1064.4839"
+ id="text780">
+ <tspan
+ x="419.53137"
+ y="1064.4839"
+ sodipodi:role="line"
+ id="tspan791"
+ style="stroke-width:1.06666669pt">Adaptor routines for using Xft, Win32, Gnome, and Freetype 2 to manage</tspan>
+ <tspan
+ x="419.53137"
+ y="1075.1505"
+ sodipodi:role="line"
+ id="tspan793"
+ style="stroke-width:1.06666669pt">font metrics and outlines.</tspan>
+ <tspan
+ x="419.53137"
+ y="1085.8173"
+ sodipodi:role="line"
+ id="tspan795"
+ style="stroke-width:1.06666669pt" />
+ </text>
+ <path
+ style="font-size:12px;fill:#00a800;fill-opacity:0.655629;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.30476589pt"
+ d="m 396.85038,820.1568 v 75.5904 H 217.32292 l 9.44853,18.89813 h -37.7952 l 9.4496,-18.89813 -179.52736,-0.002 -8.53e-4,-75.58827 H 198.42585 l -9.4496,18.89707 h 37.7952 l -9.44853,-18.89707 z"
+ id="path809"
+ sodipodi:nodetypes="ccccccccccccc"
+ inkscape:connector-curvature="0" />
+ <text
+ style="font-weight:normal;font-size:10.66666698px;line-height:100%;font-family:'Luxi Sans';stroke-width:1.06666669pt"
+ x="37.170525"
+ y="873.45007"
+ id="text22">
+ <tspan
+ x="37.170525"
+ y="873.45007"
+ sodipodi:role="line"
+ id="tspan456"
+ style="stroke-width:1.06666669pt">SPCanvas - handles input events</tspan>
+ <tspan
+ x="37.170525"
+ y="884.11676"
+ sodipodi:role="line"
+ id="tspan458"
+ style="stroke-width:1.06666669pt">SPCanvasItem - objects that can be displayed on SPCanvas</tspan>
+ <tspan
+ x="37.170525"
+ y="894.78339"
+ sodipodi:role="line"
+ id="tspan460"
+ style="stroke-width:1.06666669pt" />
+ </text>
+ <text
+ style="font-weight:bold;font-size:12.80000019px;line-height:100%;font-family:'Luxi Sans';stroke-width:1.06666669pt"
+ x="29.741482"
+ y="842.68378"
+ id="text439">
+ <tspan
+ x="29.741482"
+ y="842.68378"
+ sodipodi:role="line"
+ id="tspan827"
+ style="stroke-width:1.06666669pt">SVG Canvas</tspan>
+ <tspan
+ x="29.741482"
+ y="855.48376"
+ sodipodi:role="line"
+ id="tspan829"
+ style="stroke-width:1.06666669pt">(src/helper/sp-canvas*)</tspan>
+ <tspan
+ x="29.741482"
+ y="868.28375"
+ sodipodi:role="line"
+ id="tspan831"
+ style="stroke-width:1.06666669pt" />
+ <tspan
+ x="29.741482"
+ y="881.0838"
+ sodipodi:role="line"
+ id="tspan833"
+ style="stroke-width:1.06666669pt" />
+ </text>
+ <path
+ style="font-size:12px;fill:#a85555;fill-opacity:0.655629;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.30476589pt"
+ d="m 793.70027,668.97635 v 56.69227 l 18.89813,-9.44853 v 37.7952 l -18.89813,-9.44854 10e-4,151.1808 H 623.6224 l 9.44853,18.89814 h -37.7952 l 9.44854,-18.89814 H 396.85038 l -5.3e-4,-151.17866 18.89767,9.4496 v -37.7952 l -18.89767,9.44853 v -56.69333 l 198.42588,-0.002 -9.4496,18.89707 h 37.7952 l -9.44853,-18.89707 z"
+ id="path808"
+ sodipodi:nodetypes="ccccccccccccccccccccc"
+ inkscape:connector-curvature="0" />
+ <text
+ style="font-weight:bold;font-size:12.80000019px;line-height:100%;font-family:'Luxi Sans';stroke-width:1.06666669pt"
+ x="412.71274"
+ y="691.50287"
+ id="text156">
+ <tspan
+ x="412.71274"
+ y="691.50287"
+ sodipodi:role="line"
+ id="tspan841"
+ style="stroke-width:1.06666669pt">SVG document model</tspan>
+ <tspan
+ x="412.71274"
+ y="704.30286"
+ sodipodi:role="line"
+ id="tspan843"
+ style="stroke-width:1.06666669pt">(src/sp-*.h and others)</tspan>
+ <tspan
+ x="412.71274"
+ y="717.10284"
+ sodipodi:role="line"
+ id="tspan845"
+ style="stroke-width:1.06666669pt" />
+ </text>
+ <text
+ style="font-weight:normal;font-size:10.66666698px;line-height:100%;font-family:'Luxi Sans';stroke-width:1.06666669pt"
+ x="425.19684"
+ y="723.18781"
+ id="text468">
+ <tspan
+ x="425.19684"
+ y="723.18781"
+ sodipodi:role="line"
+ id="tspan521"
+ style="stroke-width:1.06666669pt">Enforces validity constraints on the SPRepr document.</tspan>
+ <tspan
+ x="425.19684"
+ y="733.85449"
+ sodipodi:role="line"
+ id="tspan523"
+ style="stroke-width:1.06666669pt" />
+ <tspan
+ x="425.19684"
+ y="744.52112"
+ sodipodi:role="line"
+ id="tspan525"
+ style="stroke-width:1.06666669pt">SPDocument - an SVG document containing SPObjects.</tspan>
+ <tspan
+ x="425.19684"
+ y="755.18781"
+ sodipodi:role="line"
+ id="tspan527"
+ style="stroke-width:1.06666669pt" />
+ <tspan
+ x="425.19684"
+ y="765.85449"
+ sodipodi:role="line"
+ id="tspan529"
+ style="stroke-width:1.06666669pt">SPObjects - handles short term changes &amp; propagates</tspan>
+ <tspan
+ x="425.19684"
+ y="776.52112"
+ sodipodi:role="line"
+ id="tspan531"
+ style="stroke-width:1.06666669pt">longer term ones to the SPRepr</tspan>
+ <tspan
+ x="425.19684"
+ y="787.18781"
+ sodipodi:role="line"
+ id="tspan533"
+ style="stroke-width:1.06666669pt" />
+ <tspan
+ x="425.19684"
+ y="797.85449"
+ sodipodi:role="line"
+ id="tspan535"
+ style="stroke-width:1.06666669pt">SPItems - SPObjects that can be rendered. They have hide() and show()</tspan>
+ <tspan
+ x="425.19684"
+ y="808.52112"
+ sodipodi:role="line"
+ id="tspan537"
+ style="stroke-width:1.06666669pt">methods for creating an associated NRArenaItem in a given NRArena.</tspan>
+ <tspan
+ x="425.19684"
+ y="819.18781"
+ sodipodi:role="line"
+ id="tspan539"
+ style="stroke-width:1.06666669pt" />
+ </text>
+ <path
+ style="font-size:12px;fill:#a80055;fill-opacity:0.655629;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.29627947pt"
+ d="m 793.70027,574.48853 v 37.79734 l 18.89706,-9.4496 v 37.7952 l -18.89706,-9.4496 v 94.48853 l 18.89813,-9.4496 v 37.7952 l -18.89813,-9.44853 V 895.7472 H 982.67733 V 574.48853 h -28.34666 l 9.44853,18.89707 H 925.984 l 9.4496,-18.89707 z"
+ id="path813"
+ sodipodi:nodetypes="ccccccccccccccccc"
+ inkscape:connector-curvature="0" />
+ <text
+ style="font-style:normal;font-weight:bold;font-size:12.80000019px;line-height:100%;font-family:'Luxi Sans';writing-mode:lr-tb;text-anchor:start;stroke-width:1.06666669pt"
+ x="821.74103"
+ y="597.55847"
+ id="text163">
+ <tspan
+ x="821.74103"
+ y="597.55847"
+ sodipodi:role="line"
+ id="tspan341"
+ style="stroke-width:1.06666669pt">XML doc model</tspan>
+ <tspan
+ x="821.74103"
+ y="610.35846"
+ sodipodi:role="line"
+ id="tspan343"
+ style="stroke-width:1.06666669pt">(src/xml/*)</tspan>
+ <tspan
+ x="821.74103"
+ y="623.15845"
+ sodipodi:role="line"
+ id="tspan345"
+ style="stroke-width:1.06666669pt" />
+ </text>
+ <text
+ style="font-style:normal;font-weight:normal;font-size:10.66666698px;line-height:100%;font-family:'Luxi Sans';writing-mode:lr-tb;text-anchor:start;stroke-width:1.06666669pt"
+ x="834.27472"
+ y="636.00671"
+ id="text541">
+ <tspan
+ x="834.27472"
+ y="636.00671"
+ sodipodi:role="line"
+ id="tspan362"
+ style="stroke-width:1.06666669pt">SPRepr - node in an XML</tspan>
+ <tspan
+ x="834.27472"
+ y="646.6734"
+ sodipodi:role="line"
+ id="tspan364"
+ style="stroke-width:1.06666669pt">document (elements,</tspan>
+ <tspan
+ x="834.27472"
+ y="657.34003"
+ sodipodi:role="line"
+ id="tspan366"
+ style="stroke-width:1.06666669pt">attributes, and text nodes).</tspan>
+ <tspan
+ x="834.27472"
+ y="668.00671"
+ sodipodi:role="line"
+ id="tspan368"
+ style="stroke-width:1.06666669pt">Transactions are logged</tspan>
+ <tspan
+ x="834.27472"
+ y="678.6734"
+ sodipodi:role="line"
+ id="tspan370"
+ style="stroke-width:1.06666669pt">for replaying/undoing</tspan>
+ <tspan
+ x="834.27472"
+ y="689.34003"
+ sodipodi:role="line"
+ id="tspan372"
+ style="stroke-width:1.06666669pt">changes.</tspan>
+ </text>
+ <text
+ style="font-weight:bold;font-size:12.80000019px;line-height:100%;font-family:'Luxi Sans';stroke-width:1.06666669pt"
+ x="802.54327"
+ y="923.96442"
+ id="text270">
+ <tspan
+ x="802.54327"
+ y="923.96442"
+ sodipodi:role="line"
+ id="tspan714"
+ style="stroke-width:1.06666669pt">Cruft subsystem - (src/svg/*)</tspan>
+ <tspan
+ x="802.54327"
+ y="936.7644"
+ sodipodi:role="line"
+ id="tspan716"
+ style="stroke-width:1.06666669pt" />
+ </text>
+ <text
+ style="font-weight:normal;font-size:10.66666698px;line-height:100%;font-family:'Luxi Sans';stroke-width:1.06666669pt"
+ x="828.10785"
+ y="948.66235"
+ id="text723">
+ <tspan
+ x="828.10785"
+ y="948.66235"
+ sodipodi:role="line"
+ id="tspan708"
+ style="stroke-width:1.06666669pt">Assorted stuff left over from</tspan>
+ <tspan
+ sodipodi:role="line"
+ id="tspan794"
+ x="828.10785"
+ y="959.32904"
+ style="stroke-width:1.06666669pt">when Sodipodi forked from</tspan>
+ <tspan
+ sodipodi:role="line"
+ id="tspan796"
+ x="828.10785"
+ y="969.99567"
+ style="stroke-width:1.06666669pt">Gill which doesn't have a better</tspan>
+ <tspan
+ sodipodi:role="line"
+ id="tspan800"
+ x="828.10785"
+ y="980.66235"
+ style="stroke-width:1.06666669pt">home.</tspan>
+ </text>
+ <text
+ style="font-style:normal;font-weight:bold;font-size:12.80000019px;line-height:100%;font-family:'Luxi Sans';writing-mode:lr-tb;text-anchor:start;stroke-width:1.06666669pt"
+ x="27.533974"
+ y="477.37494"
+ id="text257">
+ <tspan
+ x="27.533974"
+ y="477.37494"
+ sodipodi:role="line"
+ id="tspan358"
+ style="stroke-width:1.06666669pt">Inkscape Graphical User Interface (src/widgets, src/dialogs)</tspan>
+ <tspan
+ x="27.533974"
+ y="490.17493"
+ sodipodi:role="line"
+ id="tspan360"
+ style="stroke-width:1.06666669pt" />
+ </text>
+ <text
+ style="font-style:normal;font-weight:normal;font-size:10.66666698px;line-height:100%;font-family:'Luxi Sans';writing-mode:lr-tb;text-anchor:start;stroke-width:1.06666669pt"
+ x="37.795277"
+ y="532.19989"
+ id="text676">
+ <tspan
+ x="37.795277"
+ y="532.19989"
+ sodipodi:role="line"
+ id="tspan318"
+ style="stroke-width:1.06666669pt">widgets/* - Utilities and custom widgets to assist in implementing</tspan>
+ <tspan
+ x="37.795277"
+ y="542.86658"
+ sodipodi:role="line"
+ id="tspan320"
+ style="stroke-width:1.06666669pt">the Inkscape GUI and to enforce a common look and feel style</tspan>
+ <tspan
+ x="37.795277"
+ y="553.5332"
+ sodipodi:role="line"
+ id="tspan322"
+ style="stroke-width:1.06666669pt">across the application.</tspan>
+ <tspan
+ x="37.795277"
+ y="564.19989"
+ sodipodi:role="line"
+ id="tspan324"
+ style="stroke-width:1.06666669pt" />
+ </text>
+ <text
+ style="font-style:normal;font-weight:normal;font-size:10.66666698px;line-height:100%;font-family:'Luxi Sans';writing-mode:lr-tb;text-anchor:start;stroke-width:1.06666669pt"
+ x="37.795277"
+ y="494.40463"
+ id="text326">
+ <tspan
+ x="37.795277"
+ y="494.40463"
+ sodipodi:role="line"
+ id="tspan335"
+ style="stroke-width:1.06666669pt">dialogs/* - Code for creating the various UI dialogs in the</tspan>
+ <tspan
+ x="37.795277"
+ y="505.07129"
+ sodipodi:role="line"
+ id="tspan337"
+ style="stroke-width:1.06666669pt">application.</tspan>
+ <tspan
+ x="37.795277"
+ y="515.73798"
+ sodipodi:role="line"
+ id="tspan339"
+ style="stroke-width:1.06666669pt" />
+ </text>
+ <text
+ style="font-style:normal;font-weight:normal;font-size:10.66666698px;line-height:100%;font-family:'Luxi Sans';writing-mode:lr-tb;text-anchor:start;stroke-width:1.06666669pt"
+ x="811.09766"
+ y="514.38989"
+ id="text347">
+ <tspan
+ x="811.09766"
+ y="514.38989"
+ sodipodi:role="line"
+ id="tspan374"
+ style="stroke-width:1.06666669pt">dialogs/xml-tree.* - Code for</tspan>
+ <tspan
+ x="811.09766"
+ y="525.05658"
+ sodipodi:role="line"
+ id="tspan376"
+ style="stroke-width:1.06666669pt">creating and maintaining an</tspan>
+ <tspan
+ x="811.09766"
+ y="535.72321"
+ sodipodi:role="line"
+ id="tspan378"
+ style="stroke-width:1.06666669pt">interface for editing XML trees.</tspan>
+ </text>
+</svg>
diff --git a/doc/architecture.txt b/doc/architecture.txt
new file mode 100644
index 0000000..961d960
--- /dev/null
+++ b/doc/architecture.txt
@@ -0,0 +1,490 @@
+Sodipodi internal architecture
+
+1. Overview
+
+The Sodipodi display and editing engine is built using the
+"Model-View-Controller" (MVC) paradigm. Unlike "classic" MVC
+programs, we have further split model into two distinct layers,
+'backbone' and 'document'. This has proven to be extremely powerful
+technique, giving us clear and fast implementation, functional
+granularity and easy expandibility.
+
+1.1. Agnostic XML backbone
+
+The basis of the sodipodi document is its plain XML representation in
+memory. This is a tree-shaped structure, in which each node is
+represented by a lightweight typeless object (SPRepr). These objects
+implement a minimal interface of both control (methods) and mutation
+events (callbacks). We use the term 'agnostic' for describing that
+part of model, to underline the typeless nature of SPRepr. More or
+less, this is just an XML file representation in memory.
+
+1.2. Typed SVG document
+
+The most actively used part of the sodipodi document model is the SVG
+object tree. This is constructed on top of the XML tree, and reacts to
+all mutation events in the agnostic tree, thus always keeping its
+internal state synchronized with the backbone. The opposite is not
+true - the XML backbone is not aware of the SVG object tree, and thus
+does not react to its modifications. If writeback to the backbone is
+needed, it must be requested explicitly by the controller. The SVG
+tree is constructed of SPObject subclasses - in general there is one
+subclass for each SVG element type, plus abstract base classes.
+
+1.3. NRArena view
+
+NRarena is an abstract display engine that allows construction of
+'display caches' from NRArenaItem subclasses. These are lightweight,
+having only some basic object types, and used for most of the display
+needs of Sodipodi. Both the editing window, and the bitmap export
+code create special NRArena instances, and ask the SVG document to
+show itself to the given NRArena. There is a ::show virtual method,
+implemented by all visible object classes, that adds an NRArenaItem
+node to the display tree. The completed display cache is used for fast
+screen updates and stripe based bitmap exports. During the NRArena
+lifetime SVG objects keep all of the display cache elements constantly
+updated, thus ensuring the display is always up to date.
+
+1.4. Controllers
+
+Like the model suggests, controllers can be implemented acting on
+different layers. Which one is best depends on the type of action
+that the given controller performs. Usually very generic and
+single-shot operating controllers act on the SPRepr layer, while those
+providing visual feedback or tied to a certain object type act on the
+SPObject layer.
+
+
+
+2. Detailed view
+
+2.1. SPRepr
+
+The most basic SVG (XML) document backbone is implemented as an
+in-memory tree of SPRepr objects, each object corresponding to a
+single node in the XML file. Currently there are only two types of
+SPReprs - normal element nodes and text nodes. More types may be
+added in the future, but the structure will probably always remain
+much simpler (and faster) than DOM.
+
+SPRepr may have:
+- attributes (keyword/value) pairs
+- content (text)
+- child nodes
+
+Attribute values are textual, and no checks are performed in that
+layer to ensure document validity. Also, CSS style strings are
+unparsed in that layer. The SPRepr tree is built during document
+loading or creation. As it is textual and always synchronized with the
+display, unfiltered saving involves just dumping it into a file.
+
+The basic API acting on SPRepr level is really spartan.
+
+SPRepr *sp_repr_new (const unsigned char *name)
+SPRepr *sp_repr_new_text (const unsigned char *content)
+SPRepr *sp_repr_ref (SPRepr *repr)
+SPRepr *sp_repr_unref (SPRepr *repr)
+SPRepr *sp_repr_duplicate (SPRepr *repr)
+
+int sp_repr_set_content (SPRepr *repr, const unsigned char *content)
+int sp_repr_set_attr (SPRepr *repr, const unsigned char *key, const unsigned char *value)
+int sp_repr_add_child (SPRepr *repr, SPRepr *child, SPRepr *ref)
+int sp_repr_remove_child (SPRepr *repr, SPRepr *child)
+int sp_repr_change_order (SPRepr *repr, SPRepr *child, SPRepr *ref)
+
+In addition there are some accessor methods and lot of convenience ones.
+
+Each SPRepr can have one or many event vectors associated with it.
+Event vector is a block of callback pointers for different kind of
+mutation events.
+
+void sp_repr_add_listener (SPRepr *repr, const SPReprEventVector *vector, void *data)
+void sp_repr_remove_listener_by_data (SPRepr *repr, void *data)
+
+struct _SPReprEventVector {
+ void (* destroy) (SPRepr *repr, gpointer data);
+ gboolean (* add_child) (SPRepr *repr, SPRepr *child, SPRepr *ref, gpointer data);
+ void (* child_added) (SPRepr *repr, SPRepr *child, SPRepr *ref, gpointer data);
+ gboolean (* remove_child) (SPRepr *repr, SPRepr *child, SPRepr *ref, gpointer data);
+ void (* child_removed) (SPRepr *repr, SPRepr *child, SPRepr *ref, gpointer data);
+ gboolean (* change_attr) (SPRepr *repr, const guchar *key, const guchar *oldval, const guchar *newval, gpointer data);
+ void (* attr_changed) (SPRepr *repr, const guchar *key, const guchar *oldval, const guchar *newval, gpointer data);
+ gboolean (* change_content) (SPRepr *repr, const guchar *oldcontent, const guchar *newcontent, gpointer data);
+ void (* content_changed) (SPRepr *repr, const guchar *oldcontent, const guchar *newcontent, gpointer data);
+ gboolean (* change_order) (SPRepr *repr, SPRepr *child, SPRepr *oldref, SPRepr *newref, gpointer data);
+ void (* order_changed) (SPRepr *repr, SPRepr *child, SPRepr *oldref, SPRepr *newref, gpointer data);
+}
+
+All events, except destroys (which are unconditional), have pre- and
+post- event callbacks. The pre-event callback's return value is used to
+signal whether the given modification is allowed. If it is FALSE the
+operation will be cancelled and the invoking method will also return
+FALSE. Using callbacks in block is much more convenient than adding
+them one-by-one, as the listening code usually wants to install several
+handlers at once, and the same set of handlers for many different
+nodes. NULL pointers are allowed in event vector.
+
+Although the most important functionality of the SPRepr tree is to
+serve as a document backbone, it has other functions besides
+that. SPReprs are also used to store preferences, the copy buffer and
+the undo stack.
+
+
+
+2.2. SPObject
+
+SPObject is an abstract base class of all of the document nodes at the
+SVG document level. Each SPObject subclass implements a certain SVG
+element node type, or is an abstract base class for different node
+types. The SPObject layer is bound to the SPRepr layer, closely
+following the SPRepr mutations via callbacks. During creation,
+SPObject parses and interprets all textual attributes and CSS style
+strings of the SPRepr, and later updates the internal state whenever
+it receives a signal about a change. The opposite is not true - there
+are methods manipulating SPObjects directly and such changes do not
+propagate to the SPRepr layer. This is important for implementation of
+the undo stack, animations and other features.
+
+SPObjects are bound to the higher-level container SPDocument, which
+provides document level functionality such as the undo stack,
+dictionary and so on.
+
+SPObjects are implemented using the Gtk object system (GObjects in gtk
+2 version), which provides an extremely powerful and flexible OO
+framework in pure C.
+
+SPObject class hierarchy
+
+SPObject ABSTRACT
+ SPObjectGroup ABSTRACT
+ SPNamedView <sodipodi:namedview>
+ SPClipPath <clipPath>
+ SPGuide <sodipodi:guide>
+ SPPaintServer ABSTRACT
+ SPGradient ABSTRACT
+ SPLinearGradient <linearGradient>
+ SPRadialGradient <radialGradient>
+ SPPattern <pattern>
+ SPDefs <defs>
+ SPItem ABSTRACT
+ SPGroup <g>
+ SPRoot <svg>
+ SPAnchor <a>
+ SPImage <image>
+ SPPath ABSTARCT
+ SPShape <path>
+ SPLine <line>
+ SPPolyLine <polyline>
+ SPPolygon <polygon>
+ SPStar <sodipodi:star>
+ SPRect <rect>
+ SPSpiral <sodipodi:spiral>
+ SPGenericEllipse ABSTRACT
+ SPCircle <circle>
+ SPEllipse <ellipse>
+ SPArc <sodipodi:arc>
+ SPChars ABSTRACT
+ SPString TEXT NODE
+ SPDefs <defs>
+ SPText <text>
+ SPTSpan <tspan>
+
+SPObject internals
+
+struct _SPObject {
+ GtkObject object;
+ unsigned int hrefcount;
+ SPDocument *document;
+ SPObject *parent;
+ SPObject *next;
+ SPRepr *repr;
+ unsigned char *id;
+ SPStyle *style;
+ const unsigned char *title;
+ const unsigned char *description;
+};
+
+The basic refcounting is handled by the parent class
+(GtkObject). Hrefcount is used for weak references, for example, to
+determine whether any graphical element references a certain gradient
+node. The parent and next fields are used to establish the tree
+structure. Id is copy of the SPRepr 'id' attribute for normal nodes,
+and is used as a unique index of all objects in the given document.
+
+Virtual methods
+
+/******** Disclaimer *******/
+This will change a lot in the future
+
+void ::build (SPObject *object, SPDocument *document, SPRepr *repr)
+
+This has to be invoked immediately after creation of an SPObject. The
+frontend method ensures that the new object is properly attached to
+the document and repr; implementation then will parse all of the attributes,
+generate the children objects and so on. Invoking ::build on the SPRoot
+object results in creation of the whole document tree (this is, what
+SPDocument does after the creation of the XML tree).
+
+void ::release (SPObject *object)
+
+This is the opposite of ::build. It has to be invoked as soon as the
+object is removed from the tree, even if it is still alive according
+to reference count. The frontend unregisters the object from the
+document and releases the SPRepr bindings; implementations should free
+state data and release all child objects. Invoking ::release on
+SPRoot destroys the whole document tree.
+
+void ::child_added (SPObject *object, SPRepr *child, SPRepr *ref)
+void ::remove_child (SPObject *object, SPRepr *child)
+void ::order_changed (SPObject *object, SPRepr *repr, SPRepr *oldref, SPRepr *newref)
+
+These are invoked whenever the given mutation event happens in the XML
+tree. ::remove_child is invoked BEFORE removal from the XML tree
+happens, so grouping objects can safely release the child data. The
+other two will be invoked AFTER the actual XML tree mutation. Only
+grouping objects have to implement these.
+
+void ::read_attr (SPObject *object, const unsigned char *key)
+
+Signals object that the XML attribute is changed. The frontend checks
+for 'id' attribute; implementations have to read the actual attribute
+value and update the internal state.
+
+void ::read_content (SPObject *object)
+
+Signals object that the XML node content has changed. Only meaningful for
+SPString implementing XML TEXT node.
+
+void ::modified (SPObject *object, unsigned int flags)
+
+Virtual method AND signal implementing asynchronous state change
+notification. Whenever the object internal state changes, it requests
+that ::modified will be scheduled from the idle loop. Flags are given
+as hints as to what exactly changes. Read the relevant section for
+more information.
+
+SPRepr ::write (SPObject *object, SPRepr *repr, unsigned int flags)
+
+Requests SPObject internal state to be written back to the SPRepr. If
+the SP_OBJECT_WRITE_BUILD flag is set, SPRepr is created, if necessary.
+This is used at various places, most notably to generate a plain SVG
+document, and to complete certain GUI operations.
+
+
+
+2.3. SPItem
+
+SPItem is an abstract base class for all graphic (visible) SVG nodes. It
+is a subclass of SPObject, with great deal of specific functionality.
+
+SPItem internals
+
+struct _SPItem {
+ SPObject object;
+ unsigned int sensitive : 1;
+ unsigned int stop_paint: 1;
+ double affine[6];
+ SPItemView *display;
+ SPClipPath *clip;
+};
+
+Affine is a 3x2 matrix describing transformation from the item to the
+parent local coordinate systems. Each display in linked list has a link
+to a single NRArenaItem that implements actual renderable image of
+the item.
+
+Virtual methods
+
+/******** Disclaimer *******/
+This will change a lot in the future
+Only the most important are listed
+
+void ::bbox (SPItem *item, ArtDRect *bbox, const double *transform)
+
+Calculates item's logical bounding box. The logical bbox does not
+take into account the stroke width, nor certain other visual
+properties. Transformation is a 3x2 matrix describing coordinate
+transform from the item's local coordinate system to the coordinate
+system of the bounding box.
+
+void ::print (SPItem *item, SPPrintContext *ctx)
+
+Prints the item's visual representation, using the internal printing
+frontend. In the future this may be turned into a more generic
+exporting method.
+
+char ::description (SPItem *item)
+
+Gives a short description of the item suitable for use in a statusbar,
+etc.
+
+NRArenaItem ::show (SPItem *item, NRArena *arena)
+
+Creates an NRArena display cache representation of the item. The
+frontend places the generated item into a hierarchy; implementations
+have to build a correct NRArenaItem and keep it up to date.
+
+void (* hide) (SPitem *item, NRArena *arena)
+
+The opposite of ::show.
+
+void ::write_transform (SPItem *item, SPRepr *repr, double *transform)
+
+Tries to remove the extra transformation by modifying other aspects of
+the item representation. For example, by changing the rectangle width
+and height, the scaling component of the transformation can be
+dropped. This is used to make the SVG file more human-readable.
+
+void ::menu (SPItem *item, SPDesktop *desktop, GtkMenu *menu)
+
+Appends item specific lines into the menu. This is used to generate
+the context menu, and will probably move into a separate module in
+the future.
+
+
+
+2.4 SPDocument
+
+SPDocument serves as the container of both model trees (agnostic XML
+and typed object tree), and implements all of the document-level
+functionality used by the program.
+
+SPDocument implements undo and redo stacks and an id-based object
+dictionary. Thanks to unique id attributes, the latter can be used to
+map from the XML tree back to the object tree. Documents are
+themselves registered by the main program metaobject 'Sodipodi', which
+does elementary bookkeeping.
+
+SPDocument performs the basic operations needed for asynchronous
+update notification (SPObject ::modified virtual method), and implements
+the 'modified' signal, as well.
+
+Many document level operations, like load, save, print, export and so on,
+use SPDocument as their basic datatype.
+
+2.4.1. Undo and Redo implementation
+
+Using the split document model gives sodipodi a very simple and clean
+undo implementation. Whenever mutation occurs in the XML tree,
+SPObject invokes one of the five corresponding handlers of its
+container document. This writes down a generic description of the
+given action, and appends it to the recent action list, kept by the
+document. There will be as many action records as there are mutation
+events, which are all kept and processed together in the undo
+stack. Two methods exist to indicate that the given action is completed:
+
+void sp_document_done (SPDocument *document)
+void sp_document_maybe_done (SPDocument *document, const unsigned char *key)
+
+Both move the recent action list into the undo stack and clear the
+list afterwards. While the first method does an unconditional push,
+the second one first checks the key of the most recent stack entry. If
+the keys are identical, the current action list is appended to the
+existing stack entry, instead of pushing it onto its own. This
+behaviour can be used to collect multi-step actions (like winding the
+Gtk spinbutton) from the UI into a single undoable step.
+
+For controls implemented by Sodipodi itself, implementing undo as a
+single step is usually done in a more efficient way. Most controls have
+the abstract model of grab, drag, release, and change user
+action. During the grab phase, all modifications are done to the
+SPObject directly - i.e. they do not change XML tree, and thus do not
+generate undo actions either. Only at the release phase (normally
+associated with releasing the mousebutton), changes are written back
+to the XML tree, thus generating only a single set of undo actions.
+
+
+2.5. SPView and SPviewWidget
+
+SPView is an abstract base class of all UI document views. This
+includes both the editing window and the SVG preview, but does not
+include the non-UI RGBA buffer-based NRArenas nor the XML editor or
+similar views. The SPView base class has very little functionality of
+its own.
+
+SPViewWidget is a GUI widget that contain a single SPView. It is also
+an abstract base class with little functionality of its own.
+
+2.6. SPDesktop
+
+SPDesktop is a subclass of SPView, implementing an editable document
+canvas. It is extensively used by many UI controls that need certain
+visual representations of their own.
+
+SPDesktop provides a certain set of SPCanvasItems, serving as GUI
+layers of different control objects. The one containing the whole
+document is the drawing layer. In addition to it, there are grid,
+guide, sketch and control layers. The sketch layer is used for
+temporary drawing objects, before the real objects in document are
+created. The control layer contains editing knots, rubberband and
+similar non-document UI objects.
+
+Each SPDesktop is associated with a SPNamedView node of the document
+tree. Currently, all desktops are created from a single main named
+view, but in the future there may be support for different ones.
+SPNamedView serves as an in-document container for desktop-related
+data, like grid and guideline placement, snapping options and so on.
+
+Associated with each SPDesktop are the two most important editing
+related objects - SPSelection and SPEventContext.
+
+Sodipodi keeps track of the active desktop and invokes notification
+signals whenever it changes. UI elements can use these to update their
+display to the selection of the currently active editing window.
+
+2.7. SPSelection
+
+This is a per-desktop object that keeps the list of selected objects
+at the given desktop. Both SPItem and SPRepr lists can be retrieved
+from the selection. Many actions operate on the selection, so it is
+widely used throughout the Sodipodi code.
+
+SPSelection also implements its own asynchronous notification signals,
+that UI elements can listen to.
+
+2.8. SPEventContext
+
+SPEventContext is an abstract base class of all tools. As the name
+indicates, event context implementations process UI events (mouse
+movements and keypresses) and take actions (like creating or modifying
+objects). There is one event context implementation for each tool,
+plus few abstract base classes. Writing a new tool involves
+subclassing SPEventContext.
+
+
+
+3. Some thoughts
+
+3.1. Why do we need a two-level model tree?
+
+The need for a typed object tree is obvious if we want to utilize OO
+programming - which we certainly want to do. Although implemented in pure C,
+Sodipodi uses the gtk (glib in future versions) type and object system,
+which gives us an extremely powerful set of OO functionality. As SVG is
+designed with inheritance in mind, using object subclassing to represent
+it is perfectly the right thing to do.
+
+But there are also areas where typed object structure would make
+things more complex. For example, to implement the copy buffer we had
+to save the full state of copied objects. While this could be done
+with the separate virtual method of SPObject, we can use a much easier
+way and create the duplicate corresponding SPRepr. As our document
+model already has to implement generation of full object
+representation for SPRepr tree of nodes, generation of new objects
+during paste happens automatically when the given SPRepr is inserted
+into XML tree. The agnostic xml tree is also used for undo stack, as
+described earlier.
+
+The main benefit comes from the extreme simplicity of the XML tree
+manipulation API. All operations can be done, using only around 10
+methods, which makes code much more robust, and is perfect for
+implementing compatibility sensitive things, like a plugin API.
+
+The XML tree also makes implementing two SVG features - cloning and
+animations - much easier by providing an invariant backbone.
+
+
+
+22. Novemebr 2002
+Lauris Kaplinski
+<lauris@kaplinski.com>
diff --git a/doc/class-hierarchy.dia b/doc/class-hierarchy.dia
new file mode 100644
index 0000000..0781ffc
--- /dev/null
+++ b/doc/class-hierarchy.dia
Binary files differ
diff --git a/doc/coordinates.txt b/doc/coordinates.txt
new file mode 100644
index 0000000..ad1acc1
--- /dev/null
+++ b/doc/coordinates.txt
@@ -0,0 +1,53 @@
+Please note that the behavior documented here (from Sodipodi) should be considered a bug.
+
+Inkscape should switch to the native SVG coordinate system.
+
+-mental
+
+Coordinate systems used by sodipodi
+
+1. Desktop coordinates
+
+Are the base coordinate system of all editing, UI etc.
+i.e. the ones user is directly seeing (maybe some time
+we'll make this configurable).
+
+0,0 is at lower-left
+X grows to the right
+Y grows upwards
+Only valid units are real-world ones (mm, cm...) - i.e.
+there is no such unit as pixel etc.
+If printed, 1 desktop mm should be 1mm on paper
+
+2. Document coordinates
+
+As we all know, SVG Y grows downwards. So document is
+placed at 0,HEIGHT, mirrored vertically, where HEIGHT
+is viewport height in desktop coordinates.
+Moreover SVG coordinate space is scaled by 0.8, so
+1mm in SVG space equals 1mm in desktop space.
+
+The full matrix looks like:
+
+[ 0.8 0.0 0.0 ]
+[ 0.0 -0.8 HEIGHT ]
+
+Where height equals SVG viewport height in real units
+i.e. if viewport is 210mmx297mm HEIGHT is also 297mm.
+
+Document coordinates are stored in desktop object,
+as doc2dt[] matrix, and not directly accessible to
+document itself. I.e. document renders it just as any
+normal SVG viewer should do.
+
+Technically SVG placement is achieved by specifying
+doc2dt transform to drawing parent canvas group.
+
+3. user coordinates
+
+These are as specified by SVG spec.
+1 px == 1 user unit
+1 pt == 1.25 px
+etc.
+
+31/08/2002 Lauris Kaplinski <lauris@kaplinski.com>
diff --git a/doc/extension_system.txt b/doc/extension_system.txt
new file mode 100644
index 0000000..72ac282
--- /dev/null
+++ b/doc/extension_system.txt
@@ -0,0 +1,411 @@
+== Inkscape Extensions ==
+
+=== Introduction ===
+
+The extensions system in Inkscape is a way for adding functionality to
+Inkscape, without affecting the core of the program itself. We want
+Inkscape to follow a core-plus-modules approach similar to that adopted
+by many successful open source projects such as the Linux kernel, Perl,
+Apache, Gimp, and so on. There are many different types of extension
+mechanisms, including file format conversion tools, filter scripts that
+process SVG, user interface elements that can be added at runtime, and
+so forth.
+
+This proposal defines a design for handling this wide variety of
+extensions in a flexible manner. This document provides a way to
+understand the extensions system, and how extensions fit into this
+overall system.
+
+Much of the documentation that will be useful for users of the extension
+system is not included in this document, it is autogenerated from the
+source code and placed on the Inkscape webpage. While this is less
+convenient, it is more correct, and maintained as the source code is
+modified. Please look aton the Inkscape webpage also.
+
+
+=== Terminology ===
+
+*Extension* - An extension is something that extends the functionality
+ of Inkscape without being directly part of the core. This implies
+ that it should be easy to remove or add, and nothing in the core should
+ depend on it directly.
+
+*Extension Type* - Establishes the functional interface that the
+ Extension provides, including the types of messages it handles and what
+ is contained in its data structures.
+
+*Extension Implementation* - Defines how the extension is accessed;
+ i.e. through message passing, pipe/exec calls with commandline
+ arguments, direct function calls, etc.
+
+*Plug-in* - An extension that is implemented through a loadable library.
+ This is a .so file on Unix-like systems or a .dll on Win32. The
+ libraries should not be loaded until they are used.
+
+*Script* - A script is a type of extension that is implemented through
+ an external program that receives and sets SVG data through files and
+ pipes. This allows Inkscape to use programs that handle SVG but are
+ targeted differently, seamlessly inside of Inkscape.
+
+*Language Binding* - A special type of plug-in that wraps a scripting
+ language interpreter such as Perl, Python, Lisp, etc. A user
+ interested in programmatic access to Inkscape's internals via one of
+ these languages can install (or create) the relevant Language Binding
+ Plug-in to achieve this.
+
+*INX* - *'INkscape eXtension'* - The filename extension used for XML
+ metadata files that describe each Inkscape Extension.
+
+*Internal Extension* - A part of the Inkscape codebase which uses the
+ extension system in order to make it more modular. This code is
+ compiled into Inkscape, but appears as an extension to all other code
+ in the codebase.
+
+
+=== Requirements ===
+
+ * Uses a general language binding system so it's easy to add new
+ language binding support.
+ * Allows direct interaction with the document object model including
+ changing.
+ * Allows some limited interaction with the Inkscape UI such as
+ manipulating grids, overlays, etc.
+ * Allows direct interaction with file load/save/export/print
+ subsystem.
+ * Guaranteed to work properly with the undo system, even if the
+ extension is not written carefully.
+ * Well documented so is easy for people to learn how to make new
+ extensions.
+ * Each extension can be implemented, distributed, and managed
+ independently of the core project.
+ * Icons, buttons, and other UI elements for extensions fit seamlessly
+ into main application GUI.
+ * User can easily select which extensions to automatically load into
+ application at startup.
+ * Loading of extensions shall not seriously slow startup time or make
+ a major impact on memory footprint.
+ * Failure of a extension shall not leave the drawing in an
+ inconsistent state.
+ * Main application must gracefully recover from extension crashes or
+ other serious problems with extension execution.
+ * Dependencies for particular extensions must be clearly identified for user if missing.
+
+
+=== Overview ===
+
+Different kinds of extensions can be categorized in two ways. First,
+but what the extension does: File format converters, printing, SVG
+manipulation, symbol libraries, etc. Second, by how the extension is
+implemented: command-line scripts, dynamically loaded libraries,
+internal compiled-in code, etc.
+
+The first kind of categorization is called the *Extension Type*. This
+essentially establishes a calling interface and the set of messages the
+extension must be able to receive and handle. For example, extensions
+of type Print must have a way to handle 'print' message.
+
+The second is the *Extension Implementation*. This defines the
+mechanism Inkscape must use for passing messages to the extension. For
+example, commandline scripts would have messages passed as commandline
+arguments, whereas loadable plug-ins would have the messages passed to
+the plug-in's message handler routine.
+
+The categories of both Extension Types and Extension Implementations are
+left open ended. This way, if someone comes up with new ideas for ways
+to extend Inkscape that doesn't fit within the existing models, they can
+add these mechanisms in a straightforward fashion.
+
+For the purposes of this document, however, we focus on just the
+following Types and Implementations:
+
+Extension
+ "Input" - loading various file formats
+ "Output" - saving as various file formats
+ "Effect" - apply some sort of change to SVG elements in the doc
+ "Print" - prints using different drivers or modes
+ "Collection" - a group of objects that have thumbnails and images that
+ can be used inside a document. Libraries can be
+ searchable and may be presented in a hierarchical
+ structure
+
+"Extension Implementations"
+ "Internal" - code that is internal to Inkscape which uses the
+ extension system for some functionality
+ "Script" - a cmdline program that takes an SVG document to its
+ STDIN and emits a modified SVG document to its STDOUT,
+ with control messages given as commandline parameters.
+
+ "Plug-in" - a loadable module with a message handler routine that
+ receives messages and that operates on the Inkscape API
+ functions directly.
+
+=== Extension System Basics ===
+
+Leaving the topic of Types and Implementations aside, we can make some
+generalizations about how all Extensions work, and behaviors or
+attributes that all Extensions share. This includes how they are
+registered, how they handle preferences, how dependency resolution is
+achieved, and versioning. These common behaviors are all established
+via a base class that all Extension Types derive from.
+
+=== Extension Base Class ===
+
+The Extension base class holds the attribute data that all extensions
+must have and establishes the base functionality that all extensions
+share. All extensions have the following properties:
+
+"ID" - A unique identifier for this extension that is used for referring
+to the extension and naming its parameters in the configuration files.
+
+"Name" - The textual name of the extension, it is used for user
+interaction with the extension. It is used for users to identify the
+extension.
+
+"Parameters" - Each extension keeps a record of all of the parameters
+that it has. The can be changed internally, through a GUI, or by other
+extensions. Parameters can be found and adjusted using functions that
+are within the base class.
+
+=== Extension Registry ===
+
+Inkscape maintains a data structure of all the registered extensions.
+This registry can be queried against to retrieve lists of extensions
+meeting various conditions (such as all Input extensions).
+
+The Extension Registry contains all extensions whether or not they
+failed their dependency checking on startup. This allows for additional
+information to be displayed on the reasoning behind marking the
+extension as disabled.
+
+The registry can be reloaded from the Inkscape GUI while Inkscape is
+running. This can be used to add new extensions into the system, or
+help debug new extensions. When the registry is reloaded all extensions
+are first unloaded, then they're specification files are re-read.
+
+=== Handling Preferences ===
+
+Individual extensions can have their own preferences which are used by
+the extension. These are typically attributes of the operation that can
+be modified by the user through a dialog. It is also possible to have
+other extensions modify these values when they are using an extension.
+For most extensions, these will be edited by a dialog that relates to
+the preferences of the user.
+
+The preferences themselves are defined in the inx file that describes
+the extension. In this definition there is the name, the type, and the
+default value. The types are: boolean, integer, float and string.
+Other types can be developed using these as a basis. If there is no
+custom value set the default value is used.
+
+When a value is written to a preference for an extension, that value is
+saved in the global preferences for Inkscape using the ID of the module
+as the basis for the naming. At next use (including after restarting
+the application) this value is used instead of the default. This allows
+user preferences on a extension to remain persistent throughout uses of
+Inkscape.
+
+=== INX Files ===
+
+The INX file is the description of the Inkscape Extension. It provides
+all of the information that is used to identify the extension, and
+determine what type of extension it is. This file is loaded on startup
+of Inkscape, and the objects relating to the extension are created. All
+extensions have an inx file, but many internal extensions compile this
+file into the codebase (to reduce dependencies).
+
+The INX file also contains information on the dependencies that are
+required for the extension to operate. These dependencies can be
+everything from required files, required libraries or other extensions
+that help this one. The dependencies are checked as the file is loaded,
+and an extension is marked as dead if they are not met. Also
+dependencies can check different versions of particular objects to see
+if they are met.
+
+
+=== Extension Types ===
+
+Each Extension is identified by it's 'Type'. This determines the type
+of programmatic interface that it adheres to, enabling Inkscape to know
+what functionality it can expect from the extension.
+
+=== Input ===
+
+An input extension provides a way to get data into Inkscape. This type
+of extension creates a document given a filename. This is done by using
+the 'open' method within the class. Also, there is a 'prefs' function
+which will generate a GtkDialog. This dialog is then used to get any
+settings that the incoming file and extension may use. This function is
+executed, and the dialog returns, before the open method is called.
+
+There are also several other settings stored in an Input extension.
+This includes information on the type of file the input module can take
+in including its filename extension and mime type. Also, there is a
+space to store a tooltip for additional information on the file type in
+the file dialog. Lastly, there is the key of which Output extension is
+recommended for saving this filetype. This is useful, as there is no
+other direct links between the Input and Output functions, and a user
+expects to be able to open and save without using the 'Save As...'
+dialog.
+
+=== Output ===
+
+An output extension controls how SVG documents are exported from
+Inkscape. This type of extension creates a file given a document
+object. This is done using the 'save' method within the class.
+
+The method for how files are exported depends on what type of
+Implementation is used. For Scripts, the file is first saved as a
+temporary SVG file, and then processed by calling the commandline
+programs to convert it. For Plug-ins, the document object is passed to
+the extension with a 'save' message and a filename, and the extension
+program performs the file save operation itself.
+
+=== Effect ===
+
+Effect extensions cause a modification of a loaded document. For
+example, it might add a new shape to the drawing, or change all selected
+objects to be purple with green dotted borders.
+
+=== Print ===
+
+The Print Extension Type is for extensions that interface with printing
+subsystems. Examples would be Win32, postscript, and GNOME Print.
+
+=== Collection ===
+
+
+=== Creating Extensions ===
+
+In this chapter, we discuss how to create an extension from scratch,
+incorporate into Inkscape, and release it for the general Inkscape
+community to use. This chapter can be read independently of the rest of
+the document, using the rest as reference material.
+
+=== Selecting an Extension Strategy ===
+
+First of all, you will need to select the method you'll use for creating your extension.
+
+Scripts are the simplest extensions to create, because they work through
+STDIN/STDOUT, so you need to know very little about Inkscape internals
+to make them work. However, their ability to interact with the Inkscape
+internals is limited compared with other approaches. For file format
+converters, this is usually fine. You can also create filters programs
+that take the entire document to its STDIN, process it, and return a
+modified copy to STDOUT. Some control of the extension is possible via
+its commandline arguments.
+
+One of the nice things about Scripts is that they can be written in any
+language. It need not even be a scripting language - as long as it
+handles STDIN and STDOUT and uses commandline arguments, you can write
+it however you wish.
+
+Plug-ins are more powerful than Scripts, but require more knowledge of
+Inkscape internals, and must be written according to specific criteria.
+Generally, since these are loaded as dynamic objects, they'll need to be
+written in a language that can generate them, such as C or C++.
+
+The best of both worlds can be available through Language Bindings,
+which are Plug-ins that wrapper a script interpreter. This enables you
+to call various Inkscape internal routines through your scripting
+language's functions. If someone has created a Language Binding for
+your language of choice, you're all set, otherwise you'll have to create
+a Plug-in for it. Language Binding Plug-ins have a few more
+requirements than ordinary Plug-ins, and require a greater amount of
+knowledge of the Inkscape internals, so it can take quite some time to
+do properly.
+
+Internal Extensions are in a way the reverse of a normal Extension, in
+that instead of providing a way to hook into Inkscape from the outside,
+they provide hooks from inside Inkscape. These are used directly by
+Inkscape, such as in the case of compiled-in printing modules. Most
+users will never need to write this type of extension, they are pretty
+much for Inkscape core developers only.
+
+=== Writing Your Extension ===
+
+This section provides some guidance and examples for implementing
+different kinds of Extensions.
+
+=== Writing Script Extensions ===
+
+=== Writing Plug-in Extensions ===
+
+=== Writing Language Binding Plug-in Extensions ===
+
+=== Creating an INX File ===
+
+Every extension must have a corresponding *.inx file. This is an XML
+file that provides Inkscape with information about the module and allows
+it to load the info without needing to access the module itself. The
+*.inx file contains enough info for Inkscape to set up menu items and
+know what kinds of functionality to expect from the extension.
+
+=== Packaging Your Extension ===
+
+=== Contributing Your Extension to the Inkscape Community ===
+
+Once your extension is complete, you may wish to share it with the
+community. There are of course no hard and fast rules for how to share
+your work, but this section illustrates some approaches.
+
+=== Listing Your Extension ===
+
+First, you will need to put your extension someplace that others can
+find and download it. If you have adequate webspace, you could simply
+upload it to your web server. More typically, you will want to upload
+it to a mirroring system like SourceForge (http://www.sourceforge.net),
+CPAN (http://www.cpan.org), and the like. The Inkscape project may also
+be willing to host your extension; contact the admins for more info.
+
+It can also be helpful to list your extension with one of the various
+software registries, such as Freshmeat (http://www.freshmeat.net). You
+should also list it on the Inkscape Wiki site.
+
+=== Announcing Your Extension ===
+
+After posting your extension someplace from which it can be downloaded,
+you should also announce its availability, by sending an email to
+inkscape-announce@lists.sourceforge.net. You may also want to announce
+it on other related sites; for instance, if you've written a plug-in to
+allow operation of Imagemagick from within Inkscape, it could be a good
+idea to announce it to the Imagemagick list.
+
+
+=== Incorporating Your Extension in to Inkscape ===
+
+Because the intent with the extension system is to break things *out*
+from the core, most extensions should be packaged and distributed
+independently of the main Inkscape distribution. However, for ease of
+user installation, an extension-pack can be shipped along with the core
+Inkscape package. Also, certain extensions may be so critical to
+Inkscape operation (such as for printing) that they should be included
+in the core.
+
+If your extension seems like it should be incorporated into the Inkscape
+core, contact the Inkscape developers about this, and discuss how best
+to include it in the distribution with them.
+
+=== Conclusion ===
+
+It is anticipated that the incorporation of this extensions capability
+will bring Inkscape added power and flexibility while avoiding bloating
+the core with cool-but-rarely-used functionality. Further, it empowers
+users and non-core Inkscape developers to extend the application with
+their own new capabilities, without needing to gain special access and
+acceptance by the project. Dynamic loading of functionality will also
+allow Inkscape to remain 'lean and mean', loading up functionality on an
+as-needed basis, and conserving memory by unloading functionality when
+it is not needed.
+
+The key point of this design specification is the architectural concept
+of separately identifying an extension's interface type, or 'Extension
+Type', from its implementation method, or 'Extension Implementation'.
+This feature enables Inkscape to be extended in a variety of mechanisms,
+including ways not yet foreseen.
+
+
+=== History and references ===
+
+Base design taken from Ted Gould's Extension System work.
+
+This document originally authored by Bryce Harrington, July 2004
diff --git a/doc/extension_system.xml b/doc/extension_system.xml
new file mode 100644
index 0000000..aa87533
--- /dev/null
+++ b/doc/extension_system.xml
@@ -0,0 +1,237 @@
+<?xml version="1.0"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
+<book lang="en_us">
+ <title>Inkscape Extensions</title>
+ <chapter>
+ <title>Introduction</title>
+ <para>The extensions system in Inkscape is a way for adding functionality to Inkscape, without affecting the core of the program itself. We want Inkscape to follow a core-plus-modules approach similar to that adopted by many successful open source projects such as the Linux kernel, Perl, Apache, Gimp, and so on. There are many different types of extension mechanisms, including file format conversion tools, filter scripts that process SVG, user interface elements that can be added at runtime, and so forth.</para>
+ <para>This proposal defines a design for handling this wide variety of extensions in a flexible manner. This document provides a way to understand the extensions system, and how extensions fit into this overall system.</para>
+ <para>Much of the documentation that will be useful for users of the extension system is not included in this document, it is autogenerated from the source code and placed on the Inkscape webpage. While this is less convenient, it is more correct, and maintained as the source code is modified. Please look aton the Inkscape webpage also.</para>
+ </chapter>
+ <chapter>
+ <title>Terminology</title>
+ <para><emphasis>Extension</emphasis> - An extension is something that extends the functionality of Inkscape without being directly part of the core. This implies that it should be easy to remove or add, and nothing in the core should depend on it directly.</para>
+ <para><emphasis>Extension Type</emphasis> - Establishes the functional interface that the Extension provides, including the types of messages it handles and what is contained in its data structures.</para>
+ <para><emphasis>Extension Implementation</emphasis> - Defines how the extension is accessed; i.e. through message passing, pipe/exec calls with commandline arguments, direct function calls, etc.</para>
+ <para><emphasis>Plug-in</emphasis> - An extension that is implemented through a loadable library. This is a .so file on Unix-like systems or a .dll on Win32. The libraries should not be loaded until they are used.</para>
+ <para><emphasis>Script</emphasis> - A script is a type of extension that is implemented through an external program that receives and sets SVG data through files and pipes. This allows Inkscape to use programs that handle SVG but are targeted differently, seamlessly inside of Inkscape.</para>
+ <para><emphasis>Language Binding</emphasis> - A special type of plug-in that wraps a scripting language interpreter such as Perl, Python, Lisp, etc. A user interested in programmatic access to Inkscape's internals via one of these languages can install (or create) the relevant Language Binding Plug-in to achieve this.</para>
+ <para><emphasis>INX</emphasis> - <emphasis>'INkscape eXtension'</emphasis> - The filename extension used for XML metadata files that describe each Inkscape Extension.</para>
+ <para><emphasis>Internal Extension</emphasis> - A part of the Inkscape codebase which uses the extension system in order to make it more modular. This code is compiled into Inkscape, but appears as an extension to all other code in the codebase.</para>
+ </chapter>
+ <chapter>
+ <title>Requirements</title>
+ <itemizedlist>
+ <listitem><para>Uses a general language binding system so it's easy to add new language binding support.</para></listitem>
+ <listitem><para>Allows direct interaction with the document object model including changing.</para></listitem>
+ <listitem><para>Allows some limited interaction with the Inkscape UI such as manipulating grids, overlays, etc.</para></listitem>
+ <listitem><para>Allows direct interaction with file load/save/export/print subsystem.</para></listitem>
+ <listitem><para>Guaranteed to work properly with the undo system, even if the extension is not written carefully.</para></listitem>
+ <listitem><para>Well documented so is easy for people to learn how to make new extensions.</para></listitem>
+ <listitem><para>Each extension can be implemented, distributed, and managed independently of the core project.</para></listitem>
+ <listitem><para>Icons, buttons, and other UI elements for extensions fit seamlessly into main application GUI.</para></listitem>
+ <listitem><para>User can easily select which extensions to automatically load into application at startup.</para></listitem>
+ <listitem><para>Loading of extensions shall not seriously slow startup time or make a major impact on memory footprint.</para></listitem>
+ <listitem><para>Failure of a extension shall not leave the drawing in an inconsistent state.</para></listitem>
+ <listitem><para>Main application must gracefully recover from extension crashes or other serious problems with extension execution.</para></listitem>
+ <listitem><para>Dependencies for particular extensions must be clearly identified for user if missing.</para></listitem>
+ </itemizedlist>
+ </chapter>
+ <chapter>
+ <title>Overview</title>
+ <para>Different kinds of extensions can be categorized in two ways. First, but what the extension does: File format converters, printing, SVG manipulation, symbol libraries, etc. Second, by how the extension is implemented: command-line scripts, dynamically loaded libraries, internal compiled-in code, etc.</para>
+ <para>The first kind of categorization is called the <emphasis>Extension Type</emphasis>. This essentially establishes a calling interface and the set of messages the extension must be able to receive and handle. For example, extensions of type Print must have a way to handle 'print' message.</para>
+ <para>The second is the <emphasis>Extension Implementation</emphasis>. This defines the mechanism Inkscape must use for passing messages to the extension. For example, commandline scripts would have messages passed as commandline arguments, whereas loadable plug-ins would have the messages passed to the plug-in's message handler routine.</para>
+ <para>The categories of both Extension Types and Extension Implementations are left open ended. This way, if someone comes up with new ideas for ways to extend Inkscape that doesn't fit within the existing models, they can add these mechanisms in a straightforward fashion.</para>
+ <para>For the purposes of this document, however, we focus on just the following Types and Implementations:</para>
+ <variablelist>
+ <varlistentry>
+ <term>Extension Types</term>
+ <listitem>
+ <variablelist>
+ <varlistentry>
+ <term>Input</term>
+ <listitem>
+ <para>loading various file formats</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Output</term>
+ <listitem>
+ <para>saving as various file formats</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Effect</term>
+ <listitem>
+ <para>apply some sort of change to SVG elements in the doc</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Print</term>
+ <listitem>
+ <para>prints using different drivers or modes</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Collection</term>
+ <listitem>
+ <para>a group of objects that have thumbnails and images that can be used inside a document. Libraries can be searchable and may be presented in a hierarchical structure</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Extension Implementations</term>
+ <listitem>
+ <variablelist>
+ <varlistentry>
+ <term>Internal</term>
+ <listitem>
+ <para>code that is internal to Inkscape which uses the extension system for some functionality</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Script</term>
+ <listitem>
+ <para>a cmdline program that takes an SVG document to its STDIN and emits a modified SVG document to its STDOUT, with control messages given as commandline parameters.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Plug-in</term>
+ <listitem>
+ <para>a loadable module with a message handler routine that receives messages and that operates on the Inkscape API functions directly.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </chapter>
+ <chapter>
+ <title>Extension System Basics</title>
+ <para>Leaving the topic of Types and Implementations aside, we can make some generalizations about how all Extensions work, and behaviors or attributes that all Extensions share. This includes how they are registered, how they handle preferences, how dependency resolution is achieved, and versioning. These common behaviors are all established via a base class that all Extension Types derive from.</para>
+ <section>
+ <title>Extension Base Class</title>
+ <para>The Extension base class holds the attribute data that all extensions must have and establishes the base functionality that all extensions share. All extensions have the following properties:</para>
+ <variablelist>
+ <varlistentry>
+ <term>ID</term>
+ <para>A unique identifier for this extension that is used for referring to the extension and naming its parameters in the configuration files.</para>
+ </varlistentry>
+ <varlistentry>
+ <term>Name</term>
+ <para>The textual name of the extension, it is used for user interaction with the extension. It is used for users to identify the extension.</para>
+ </varlistentry>
+ <varlistentry>
+ <term>Parameters</term>
+ <para>Each extension keeps a record of all of the parameters that it has. The can be changed internally, through a GUI, or by other extensions. Parameters can be found and adjusted using functions that are within the base class.</para>
+ </varlistentry>
+ </variablelist>
+ </section>
+ <section>
+ <title>Extension Registry</title>
+ <para>Inkscape maintains a data structure of all the registered extensions. This registry can be queried against to retrieve lists of extensions meeting various conditions (such as all Input extensions).</para>
+ <para>The Extension Registry contains all extensions whether or not they failed their dependency checking on startup. This allows for additional information to be displayed on the reasoning behind marking the extension as disabled.</para>
+ <para>The registry can be reloaded from the Inkscape GUI while Inkscape is running. This can be used to add new extensions into the system, or help debug new extensions. When the registry is reloaded all extensions are first unloaded, then they're specification files are re-read.</para>
+ </section>
+ <section>
+ <title>Handling Preferences</title>
+ <para>Individual extensions can have their own preferences which are used by the extension. These are typically attributes of the operation that can be modified by the user through a dialog. It is also possible to have other extensions modify these values when they are using an extension. For most extensions, these will be edited by a dialog that relates to the preferences of the user.</para>
+ <para>The preferences themselves are defined in the inx file that describes the extension. In this definition there is the name, the type, and the default value. The types are: boolean, integer, float and string. Other types can be developed using these as a basis. If there is no custom value set the default value is used.</para>
+ <para>When a value is written to a preference for an extension, that value is saved in the global preferences for Inkscape using the ID of the module as the basis for the naming. At next use (including after restarting the application) this value is used instead of the default. This allows user preferences on a extension to remain persistent throughout uses of Inkscape.</para>
+ </section>
+ <section>
+ <title>INX Files</title>
+ <para>The INX file is the description of the Inkscape Extension. It provides all of the information that is used to identify the extension, and determine what type of extension it is. This file is loaded on startup of Inkscape, and the objects relating to the extension are created. All extensions have an inx file, but many internal extensions compile this file into the codebase (to reduce dependencies).</para>
+ <para>The INX file also contains information on the dependencies that are required for the extension to operate. These dependencies can be everything from required files, required libraries or other extensions that help this one. The dependencies are checked as the file is loaded, and an extension is marked as dead if they are not met. Also dependencies can check different versions of particular objects to see if they are met.</para>
+ </section>
+ </chapter>
+ <chapter>
+ <title>Extension Types</title>
+ <para>Each Extension is identified by it's 'Type'. This determines the type of programmatic interface that it adheres to, enabling Inkscape to know what functionality it can expect from the extension.</para>
+ <section>
+ <title>Input</title>
+ <para>An input extension provides a way to get data into Inkscape. This type of extension creates a document given a filename. This is done by using the 'open' method within the class. Also, there is a 'prefs' function which will generate a GtkDialog. This dialog is then used to get any settings that the incoming file and extension may use. This function is executed, and the dialog returns, before the open method is called.</para>
+ <para>There are also several other settings stored in an Input extension. This includes information on the type of file the input module can take in including its filename extension and mime type. Also, there is a space to store a tooltip for additional information on the file type in the file dialog. Lastly, there is the key of which Output extension is recommended for saving this filetype. This is useful, as there is no other direct links between the Input and Output functions, and a user expects to be able to open and save without using the 'Save As...' dialog.</para>
+ </section>
+ <section>
+ <title>Output</title>
+ <para>An output extension controls how SVG documents are exported from Inkscape. This type of extension creates a file given a document object. This is done using the 'save' method within the class.</para>
+ <para>The method for how files are exported depends on what type of Implementation is used. For Scripts, the file is first saved as a temporary SVG file, and then processed by calling the commandline programs to convert it. For Plug-ins, the document object is passed to the extension with a 'save' message and a filename, and the extension program performs the file save operation itself.</para>
+ </section>
+ <section>
+ <title>Effect</title>
+ <para>Effect extensions cause a modification of a loaded document. For example, it might add a new shape to the drawing, or change all selected objects to be purple with green dotted borders.</para>
+ </section>
+ <section>
+ <title>Print</title>
+ <para>The Print Extension Type is for extensions that interface with printing subsystems. Examples would be Win32, postscript, and GNOME Print.</para>
+ </section>
+ <section>
+ <title>Collection</title>
+ </section>
+ </chapter>
+ <chapter>
+ <title>Creating Extensions</title>
+ <para>In this chapter, we discuss how to create an extension from scratch, incorporate into Inkscape, and release it for the general Inkscape community to use. This chapter can be read independently of the rest of the document, using the rest as reference material.</para>
+ <section>
+ <title>Selecting an Extension Strategy</title>
+ <para>First of all, you will need to select the method you'll use for creating your extension.</para>
+ <para>Scripts are the simplest extensions to create, because they work through STDIN/STDOUT, so you need to know very little about Inkscape internals to make them work. However, their ability to interact with the Inkscape internals is limited compared with other approaches. For file format converters, this is usually fine. You can also create filters programs that take the entire document to its STDIN, process it, and return a modified copy to STDOUT. Some control of the extension is possible via its commandline arguments.</para>
+ <para>One of the nice things about Scripts is that they can be written in any language. It need not even be a scripting language - as long as it handles STDIN and STDOUT and uses commandline arguments, you can write it however you wish.</para>
+ <para>Plug-ins are more powerful than Scripts, but require more knowledge of Inkscape internals, and must be written according to specific criteria. Generally, since these are loaded as dynamic objects, they'll need to be written in a language that can generate them, such as C or C++.</para>
+ <para>The best of both worlds can be available through Language Bindings, which are Plug-ins that wrapper a script interpreter. This enables you to call various Inkscape internal routines through your scripting language's functions. If someone has created a Language Binding for your language of choice, you're all set, otherwise you'll have to create a Plug-in for it. Language Binding Plug-ins have a few more requirements than ordinary Plug-ins, and require a greater amount of knowledge of the Inkscape internals, so it can take quite some time to do properly.</para>
+ <para>Internal Extensions are in a way the reverse of a normal Extension, in that instead of providing a way to hook into Inkscape from the outside, they provide hooks from inside Inkscape. These are used directly by Inkscape, such as in the case of compiled-in printing modules. Most users will never need to write this type of extension, they are pretty much for Inkscape core developers only.</para>
+ </section>
+ <section>
+ <title>Writing Your Extension</title>
+ <para>This section provides some guidance and examples for implementing different kinds of Extensions.</para>
+ <section>
+ <title>Writing Script Extensions</title>
+ </section>
+ <section>
+ <title>Writing Plug-in Extensions</title>
+ </section>
+ <section>
+ <title>Writing Language Binding Plug-in Extensions</title>
+ </section>
+ </section>
+ <section>
+ <title>Creating an INX File</title>
+ <para>Every extension must have a corrosponding *.inx file. This is an XML file that provides Inkscape with information about the module and allows it to load the info without needing to access the module itself. The *.inx file contains enough info for Inkscape to set up menu items and know what kinds of functionality to expect from the extension.</para>
+ </section>
+ <section>
+ <title>Packaging Your Extension</title>
+ </section>
+ <section>
+ <title>Contributing Your Extensino to the Inkscape Community</title>
+ <para>Once your extension is complete, you may wish to share it with the community. There are of course no hard and fast rules for how to share your work, but this section illustrates some approaches.</para>
+ <section>
+ <title>Listing Your Extension</title>
+ <para>First, you will need to put your extension someplace that others can find and download it. If you have adequate webspace, you could simply upload it to your web server. More typically, you will want to upload it to a mirroring system like SourceForge (http://www.sourceforge.net), CPAN (http://www.cpan.org), and the like. The Inkscape project may also be willing to host your extension; contact the admins for more info.</para>
+ <para>It can also be helpful to list your extension with one of the various software registries, such as Freshmeat (http://www.freshmeat.net). You should also list it on the Inkscape Wiki site.</para>
+ </section>
+ <section>
+ <title>Announcing Your Extension</title>
+ <para>After posting your extension someplace from which it can be downloaded, you should also announce its availability, by sending an email to inkscape-announce@lists.sourceforge.net. You may also want to announce it on other related sites; for instance, if you've written a plug-in to allow operation of Imagemagick from within Inkscape, it could be a good idea to announce it to the Imagemagick list.</para>
+ </section>
+ <section>
+ <title>Incorporating Your Extension in to Inkscape</title>
+ <para>Because the intent with the extension system is to break things *out* from the core, most extensions should be packaged and distributed independently of the main Inkscape distribution. However, for ease of user installation, an extension-pack can be shipped along with the core Inkscape package. Also, certain extensions may be so critical to Inkscape operation (such as for printing) that they should be included in the core.</para>
+ <para>If your extension seems like it should be incorporated into the Inkscape core, contact the Inkscape developers about this, and discuss how best to include it in the distribution with them.</para>
+ </section>
+ </section>
+ </chapter>
+ <chapter>
+ <title>Conclusion</title>
+ <para>It is anticipated that the incorporation of this extensions capability will bring Inkscape added power and flexibility while avoiding bloating the core with cool-but-rarely-used functionality. Further, it empowers users and non-core Inkscape developers to extend the application with their own new capabilities, without needing to gain special access and acceptance by the project. Dynamic loading of functionality will also allow Inkscape to remain 'lean and mean', loading up functionality on an as-needed basis, and conserving memory by unloading functionality when it is not needed.</para>
+ <para>The key point of this design specification is the architectural concept of separately identifying an extension's interface type, or 'Extension Type', from its implementation method, or 'Extension Implementation'. This feature enables Inkscape to be extended in a variety of mechanisms, including ways not yet foreseen.</para>
+ </chapter>
+ <chapter>
+ <title>History and references</title>
+ <para>Base design taken from Ted Gould's Extension System work.</para>
+ <para>This document originally authored by Bryce Harrington, July 2004</para>
+ </chapter>
+</book>
diff --git a/doc/inkscape-uml.dia b/doc/inkscape-uml.dia
new file mode 100644
index 0000000..978a20f
--- /dev/null
+++ b/doc/inkscape-uml.dia
Binary files differ
diff --git a/doc/livarot-images/arc-threshold.svg b/doc/livarot-images/arc-threshold.svg
new file mode 100644
index 0000000..b5c40e9
--- /dev/null
+++ b/doc/livarot-images/arc-threshold.svg
@@ -0,0 +1,228 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="384.85571"
+ height="316.2381"
+ viewBox="0 0 384.85571 316.2381"
+ version="1.1"
+ id="svg6"
+ inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"
+ sodipodi:docname="arc-threshold.svg">
+ <metadata
+ id="metadata27">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="Arrow1Mend"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path920"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1121"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1119"
+ inkscape:connector-curvature="0" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2.3719323"
+ inkscape:cx="206.22154"
+ inkscape:cy="168.80326"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-top="20"
+ fit-margin-left="20"
+ fit-margin-right="20"
+ fit-margin-bottom="20" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-28.526459,-37.270763)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:5;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:10, 20;stroke-dashoffset:0"
+ id="ellipse1209"
+ transform="rotate(62.960609)"
+ sodipodi:type="arc"
+ sodipodi:cx="262.41861"
+ sodipodi:cy="-57.27372"
+ sodipodi:rx="122.77849"
+ sodipodi:ry="181.92303"
+ sodipodi:start="3.1415927"
+ sodipodi:end="0"
+ sodipodi:open="true"
+ sodipodi:arc-type="arc"
+ d="M 139.64012,-57.273728 A 122.77849,181.92303 0 0 1 262.41861,-239.19675 122.77849,181.92303 0 0 1 385.1971,-57.27372" />
+ <path
+ d="m 138.83803,-57.013718 a 122.77849,181.92303 0 0 1 7.40445,-62.221332 l 115.37404,62.22134 z"
+ sodipodi:arc-type="arc"
+ sodipodi:end="3.4906585"
+ sodipodi:start="3.1415927"
+ sodipodi:ry="181.92303"
+ sodipodi:rx="122.77849"
+ sodipodi:cy="-57.01371"
+ sodipodi:cx="261.61652"
+ sodipodi:type="arc"
+ transform="rotate(62.960609)"
+ id="path858"
+ style="fill:none;fill-rule:evenodd;stroke:#000080;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000080;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path860"
+ transform="rotate(62.960609)"
+ sodipodi:arc-type="arc"
+ d="m 146.24248,-119.23505 a 122.77849,181.92303 0 0 1 21.32026,-54.71654 l 94.05378,116.93788 z"
+ sodipodi:type="arc"
+ sodipodi:start="3.4906585"
+ sodipodi:end="3.8397244"
+ sodipodi:ry="181.92303"
+ sodipodi:rx="122.77849"
+ sodipodi:cy="-57.01371"
+ sodipodi:cx="261.61652" />
+ <path
+ sodipodi:cx="261.61652"
+ sodipodi:cy="-57.01371"
+ sodipodi:rx="122.77849"
+ sodipodi:ry="181.92303"
+ sodipodi:end="4.1887902"
+ sodipodi:start="3.8397244"
+ sodipodi:type="arc"
+ d="m 167.56274,-173.95159 a 122.77849,181.92303 0 0 1 32.66453,-40.61209 l 61.38925,157.54997 z"
+ sodipodi:arc-type="arc"
+ transform="rotate(62.960609)"
+ id="path862"
+ style="fill:none;fill-rule:evenodd;stroke:#000080;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000080;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path864"
+ transform="rotate(62.960609)"
+ sodipodi:arc-type="arc"
+ d="m 200.22727,-214.56368 a 122.77849,181.92303 0 0 1 40.06899,-21.60925 l 21.32026,179.15922 z"
+ sodipodi:type="arc"
+ sodipodi:start="4.1887902"
+ sodipodi:end="4.5378561"
+ sodipodi:ry="181.92303"
+ sodipodi:rx="122.77849"
+ sodipodi:cy="-57.01371"
+ sodipodi:cx="261.61652" />
+ <path
+ sodipodi:cx="261.61652"
+ sodipodi:cy="-57.01371"
+ sodipodi:rx="122.77849"
+ sodipodi:ry="181.92303"
+ sodipodi:end="4.8869219"
+ sodipodi:start="4.5378561"
+ sodipodi:type="arc"
+ d="m 240.29626,-236.17293 a 122.77849,181.92303 0 0 1 42.64052,0 l -21.32026,179.15922 z"
+ sodipodi:arc-type="arc"
+ transform="rotate(62.960609)"
+ id="path866"
+ style="fill:none;fill-rule:evenodd;stroke:#000080;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000080;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path868"
+ transform="rotate(62.960609)"
+ sodipodi:arc-type="arc"
+ d="m 282.93678,-236.17293 a 122.77849,181.92303 0 0 1 40.06898,21.60925 l -61.38924,157.54997 z"
+ sodipodi:type="arc"
+ sodipodi:start="4.8869219"
+ sodipodi:end="5.2359878"
+ sodipodi:ry="181.92303"
+ sodipodi:rx="122.77849"
+ sodipodi:cy="-57.01371"
+ sodipodi:cx="261.61652" />
+ <path
+ sodipodi:cx="261.61652"
+ sodipodi:cy="-57.01371"
+ sodipodi:rx="122.77849"
+ sodipodi:ry="181.92303"
+ sodipodi:end="5.5850536"
+ sodipodi:start="5.2359878"
+ sodipodi:type="arc"
+ d="m 323.00576,-214.56368 a 122.77849,181.92303 0 0 1 32.66453,40.6121 l -94.05377,116.93787 z"
+ sodipodi:arc-type="arc"
+ transform="rotate(62.960609)"
+ id="path870"
+ style="fill:none;fill-rule:evenodd;stroke:#000080;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000080;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path872"
+ transform="rotate(62.960609)"
+ sodipodi:arc-type="arc"
+ d="m 376.99056,-119.23505 a 122.77849,181.92303 0 0 1 7.40444,62.22134 l -122.77848,0 z"
+ sodipodi:type="arc"
+ sodipodi:start="5.9341195"
+ sodipodi:end="0"
+ sodipodi:ry="181.92303"
+ sodipodi:rx="122.77849"
+ sodipodi:cy="-57.01371"
+ sodipodi:cx="261.61652" />
+ <path
+ sodipodi:cx="261.61652"
+ sodipodi:cy="-57.01371"
+ sodipodi:rx="122.77849"
+ sodipodi:ry="181.92303"
+ sodipodi:end="5.9341195"
+ sodipodi:start="5.5850536"
+ sodipodi:type="arc"
+ d="m 355.67029,-173.95158 a 122.77849,181.92303 0 0 1 21.32027,54.71653 l -115.37404,62.22134 z"
+ sodipodi:arc-type="arc"
+ transform="rotate(62.960609)"
+ id="path874"
+ style="fill:none;fill-rule:evenodd;stroke:#000080;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
+ <path
+ style="fill:none;stroke:#ff00ff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:2, 2;stroke-dashoffset:0"
+ d="m 114.15977,97.950431 58.52446,-21.897714 58.42796,-5.884464 51.02234,10.631731 37.46272,25.865586 19.3845,37.97966 -1.03175,45.51284 -21.32356,47.55649 -39.04345,43.86413 -52.07755,34.81495"
+ id="path876"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/doc/livarot-images/chgt-addition-sequence.svg b/doc/livarot-images/chgt-addition-sequence.svg
new file mode 100644
index 0000000..46f3a00
--- /dev/null
+++ b/doc/livarot-images/chgt-addition-sequence.svg
@@ -0,0 +1,262 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="1000"
+ height="1000"
+ viewBox="0 0 1000 1000"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (b11d04efb7, 2020-08-25, custom)"
+ sodipodi:docname="chgt-addition-sequence.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible;"
+ id="marker1121"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.1206808"
+ inkscape:cx="248.95582"
+ inkscape:cy="509.06558"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true"
+ inkscape:guide-bbox="true" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-linecap:square"
+ id="path1173"
+ cx="78.166206"
+ cy="288.72296"
+ r="16.849979" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-linecap:square"
+ id="circle1175"
+ cx="55.587914"
+ cy="49.383144"
+ r="16.849979" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-linecap:square"
+ id="circle1177"
+ cx="83.664955"
+ cy="542.04181"
+ r="16.849979" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 55.252092,51.995006 22.79926,237.031244 5.16247,253.2171"
+ id="path1179" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="79.421501"
+ y="178.27722"
+ id="text1183"><tspan
+ sodipodi:role="line"
+ id="tspan1181"
+ x="79.421501"
+ y="178.27722">edge A</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="94.368141"
+ y="421.89923"
+ id="text1187"><tspan
+ sodipodi:role="line"
+ id="tspan1185"
+ x="94.368141"
+ y="421.89923">edge E</tspan></text>
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-linecap:square"
+ id="circle1193"
+ cx="316.42542"
+ cy="49.824383"
+ r="16.849979" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-linecap:square"
+ id="circle1195"
+ cx="506.46616"
+ cy="49.882885"
+ r="16.849979" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-linecap:square"
+ id="circle1197"
+ cx="256.48138"
+ cy="518.86157"
+ r="16.849979" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-linecap:square"
+ id="circle1199"
+ cx="446.52213"
+ cy="518.9201"
+ r="16.849979" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-linecap:square"
+ id="circle1201"
+ cx="380.16623"
+ cy="286.72296"
+ r="16.849979" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 314.48322,46.691426 132.289,473.328804"
+ id="path1203" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 507.34274,49.657676 255.92081,521.45363"
+ id="path1205" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-linecap:square"
+ id="circle1217"
+ cx="573.18079"
+ cy="284.11252"
+ r="16.849979" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 572.56908,286.68089 623.57449,39.636396"
+ id="path1219" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-linecap:square"
+ id="circle1221"
+ cx="625.49481"
+ cy="32.441143"
+ r="16.849979" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="622.58923"
+ y="168.69528"
+ id="text1225"><tspan
+ sodipodi:role="line"
+ id="tspan1223"
+ x="622.58923"
+ y="168.69528">edge D</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="274.80078"
+ y="180.67569"
+ id="text1229"><tspan
+ sodipodi:role="line"
+ id="tspan1227"
+ x="274.80078"
+ y="180.67569">edge X</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="455.81705"
+ y="185.5293"
+ id="text1233"><tspan
+ sodipodi:role="line"
+ id="tspan1231"
+ x="455.81705"
+ y="185.5293">edge Y</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:5;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:5, 15;stroke-dashoffset:0"
+ id="rect1235"
+ width="624.091"
+ height="60.885902"
+ x="33.591202"
+ y="252.56232" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.17497;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:2.17497, 6.52492;stroke-dashoffset:0"
+ id="rect1269"
+ width="289.12112"
+ height="288.80701"
+ x="70.471581"
+ y="655.30725" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="86.259834"
+ y="681.55219"
+ id="text1273"><tspan
+ sodipodi:role="line"
+ x="86.259834"
+ y="681.55219"
+ id="tspan1275">type = EDGE_REMOVAL</tspan><tspan
+ sodipodi:role="line"
+ x="86.259834"
+ y="701.55219"
+ id="tspan1279">ptNo -&gt; 8</tspan><tspan
+ sodipodi:role="line"
+ x="86.259834"
+ y="721.55219"
+ id="tspan1293">left_edge -&gt; A</tspan><tspan
+ sodipodi:role="line"
+ x="86.259834"
+ y="741.55219"
+ id="tspan1295">right_edge -&gt; none</tspan><tspan
+ sodipodi:role="line"
+ x="86.259834"
+ y="761.55219"
+ id="tspan1299">edge_to_left -&gt; none</tspan><tspan
+ sodipodi:role="line"
+ x="86.259834"
+ y="781.55219"
+ id="tspan1301">edge_to_right -&gt;</tspan><tspan
+ sodipodi:role="line"
+ x="86.259834"
+ y="801.55219"
+ id="tspan1297" /></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="107.06792"
+ y="291.77271"
+ id="text1283"><tspan
+ sodipodi:role="line"
+ id="tspan1281"
+ x="107.06792"
+ y="291.77271">8</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="405.72318"
+ y="291.2673"
+ id="text1287"><tspan
+ sodipodi:role="line"
+ id="tspan1285"
+ x="405.72318"
+ y="291.2673">9</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="596.86731"
+ y="288.18781"
+ id="text1291"><tspan
+ sodipodi:role="line"
+ id="tspan1289"
+ x="596.86731"
+ y="288.18781">10</tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/convert-back-data.svg b/doc/livarot-images/convert-back-data.svg
new file mode 100644
index 0000000..11226e6
--- /dev/null
+++ b/doc/livarot-images/convert-back-data.svg
@@ -0,0 +1,258 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="558.4046"
+ height="538.37225"
+ viewBox="0 0 558.4046 538.37225"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (1a7913d4e8, 2020-08-20, custom)"
+ sodipodi:docname="convert-back-data.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker1446"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1444" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1121"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="411"
+ inkscape:cy="334.5"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-top="10"
+ fit-margin-left="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-8.9303313,-21.664225)">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.77295;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 102.60449,515.25467 c 0,0 -6.893302,-398.4437 373.59095,-458.882951 z"
+ id="path829" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.09665;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path831"
+ cx="103.42987"
+ cy="517.56573"
+ r="6.1909528" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:2.77295;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:11.0918, 11.0918;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 102.60449,515.25467 117.30159,395.05912 208.39778,204.83219 327.81822,106.45266 476.19544,56.371719 Z"
+ id="path857" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.09665;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle833"
+ cx="118.08809"
+ cy="395.51981"
+ r="6.1909528" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.09665;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle835"
+ cx="208.10326"
+ cy="204.9926"
+ r="6.1909528" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.09665;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle837"
+ cx="326.27896"
+ cy="106.09619"
+ r="6.1909528" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.09665;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle839"
+ cx="476.59958"
+ cy="55.426014"
+ r="6.1909528" />
+ <text
+ xml:space="preserve"
+ style="font-size:14.7891px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.554591"
+ x="20.893951"
+ y="42.900475"
+ id="text1304"><tspan
+ sodipodi:role="line"
+ id="tspan1302"
+ x="20.893951"
+ y="42.900475"
+ style="stroke-width:0.554591">ConvertWithBackData</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:36.9727px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.554591"
+ x="77.885551"
+ y="113.05464"
+ id="text1308"><tspan
+ sodipodi:role="line"
+ id="tspan1306"
+ x="77.885551"
+ y="113.05464"
+ style="font-size:36.9727px;stroke-width:0.554591">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:36.9727px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.554591"
+ x="412.53885"
+ y="316.25241"
+ id="text1312"><tspan
+ sodipodi:role="line"
+ id="tspan1310"
+ x="412.53885"
+ y="316.25241"
+ style="font-size:36.9727px;stroke-width:0.554591">1</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.66377;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1121)"
+ d="m 89.29666,120.30545 c 0,0 -1.132358,67.03572 65.0832,154.98955"
+ id="path1314"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.66377;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1446)"
+ d="m 444.92323,285.45839 c 0,0 28.06694,-50.89681 -30.29334,-136.21065"
+ id="path1442"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:14.7891px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.554591"
+ x="19.778652"
+ y="510.54266"
+ id="text1486"><tspan
+ sodipodi:role="line"
+ id="tspan1484"
+ x="19.778652"
+ y="510.54266"
+ style="stroke-width:0.554591">piece = 0</tspan><tspan
+ sodipodi:role="line"
+ x="19.778652"
+ y="529.02905"
+ id="tspan1490"
+ style="stroke-width:0.554591">time = 0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14.7891px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.554591"
+ x="18.533163"
+ y="388.26981"
+ id="text1498"><tspan
+ sodipodi:role="line"
+ id="tspan1494"
+ x="18.533163"
+ y="388.26981"
+ style="stroke-width:0.554591">piece = 0</tspan><tspan
+ sodipodi:role="line"
+ x="18.533163"
+ y="406.7562"
+ id="tspan1496"
+ style="stroke-width:0.554591">time = 0.20</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14.7891px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.554591"
+ x="129.88928"
+ y="175.30013"
+ id="text1504"><tspan
+ sodipodi:role="line"
+ id="tspan1500"
+ x="129.88928"
+ y="175.30013"
+ style="stroke-width:0.554591">piece = 0</tspan><tspan
+ sodipodi:role="line"
+ x="129.88928"
+ y="193.7865"
+ id="tspan1502"
+ style="stroke-width:0.554591">time = 0.5</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14.7891px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.554591"
+ x="259.5546"
+ y="69.202881"
+ id="text1510"><tspan
+ sodipodi:role="line"
+ id="tspan1506"
+ x="259.5546"
+ y="69.202881"
+ style="stroke-width:0.554591">piece = 0</tspan><tspan
+ sodipodi:role="line"
+ x="259.5546"
+ y="87.689255"
+ id="tspan1508"
+ style="stroke-width:0.554591">time = 0.75</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14.7891px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.554591"
+ x="487.28891"
+ y="52.659344"
+ id="text1516"><tspan
+ sodipodi:role="line"
+ id="tspan1512"
+ x="487.28891"
+ y="52.659344"
+ style="stroke-width:0.554591">piece = 0</tspan><tspan
+ sodipodi:role="line"
+ x="487.28891"
+ y="71.145721"
+ id="tspan1514"
+ style="stroke-width:0.554591">time = 1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14.7891px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.554591"
+ x="136.8902"
+ y="512.85431"
+ id="text1522"><tspan
+ sodipodi:role="line"
+ id="tspan1518"
+ x="136.8902"
+ y="512.85431"
+ style="stroke-width:0.554591">piece = 1</tspan><tspan
+ sodipodi:role="line"
+ x="136.8902"
+ y="531.3407"
+ id="tspan1520"
+ style="stroke-width:0.554591">time = 1</tspan><tspan
+ sodipodi:role="line"
+ x="136.8902"
+ y="549.82709"
+ id="tspan1524"
+ style="stroke-width:0.554591">closed = true</tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/convert-lines.svg b/doc/livarot-images/convert-lines.svg
new file mode 100644
index 0000000..7d6914a
--- /dev/null
+++ b/doc/livarot-images/convert-lines.svg
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="440.75186"
+ height="469.3035"
+ viewBox="0 0 440.75186 469.3035"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (1a7913d4e8, 2020-08-20, custom)"
+ sodipodi:docname="convert-lines.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker1121"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="292"
+ inkscape:cy="288.5"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-top="10"
+ fit-margin-left="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-17.642022,-25.116572)">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.54173;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 99.910319,476.627 c 0,0 -6.318491,-365.21877 342.438421,-420.61819 z"
+ id="path829" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:6.50489;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path831"
+ cx="100.66688"
+ cy="478.74536"
+ r="5.6747093" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:2.54173;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:10.1669, 10.1669;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 99.910319,476.627 113.38188,366.45417 196.88185,192.08965 306.34421,101.91367 442.34874,56.00881 Z"
+ id="path857" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:6.50489;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle833"
+ cx="114.10279"
+ cy="366.87646"
+ r="5.6747093" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:6.50489;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle835"
+ cx="196.61189"
+ cy="192.23668"
+ r="5.6747093" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:6.50489;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle837"
+ cx="304.93329"
+ cy="101.58692"
+ r="5.6747093" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:6.50489;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle839"
+ cx="442.71918"
+ cy="55.141964"
+ r="5.6747093" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:6.50489;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1142"
+ cx="367.69489"
+ cy="148.26315"
+ r="5.6747093" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:6.50489;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1144"
+ cx="290.62311"
+ cy="243.22745"
+ r="5.6747093" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:6.50489;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1146"
+ cx="203.70471"
+ cy="350.66959"
+ r="5.6747093" />
+ <text
+ xml:space="preserve"
+ style="font-size:13.5559px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.508345"
+ x="26.880827"
+ y="45.415878"
+ id="text1150"><tspan
+ sodipodi:role="line"
+ id="tspan1148"
+ x="26.880827"
+ y="45.415878"
+ style="stroke-width:0.508345">ConvertEvenLines</tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/convert-reconstruction.svg b/doc/livarot-images/convert-reconstruction.svg
new file mode 100644
index 0000000..58bc665
--- /dev/null
+++ b/doc/livarot-images/convert-reconstruction.svg
@@ -0,0 +1,2516 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="984.64911"
+ height="1188.9872"
+ viewBox="0 0 984.64911 1188.9872"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (1a7913d4e8, 2020-08-20, custom)"
+ sodipodi:docname="convert-reconstruction.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <rect
+ x="27.219719"
+ y="1017.9344"
+ width="425.58773"
+ height="135.45595"
+ id="rect3009" />
+ <marker
+ style="overflow:visible"
+ id="marker2993"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2991" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2963"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2961" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2841"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2839" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2743"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2741" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2645"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2643" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2561"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2559" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2389"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2387" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2317"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2315" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2281"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2279" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2147"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2145" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2063"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2061" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2033"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2031" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1973"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1971" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1889"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1887" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1627"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1625" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1591"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1589" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1423"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1421" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1047"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1045" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="272.65759"
+ inkscape:cy="1115.5721"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="500px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-top="10"
+ fit-margin-left="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-15.337017,4.2015039)">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 66.316055,80.704201 H 333.28579 L 115.83767,416.15674 356.84987,351.57772 Z"
+ id="path829" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-width:5;stroke-dasharray:10, 10"
+ id="path831"
+ cx="66.799599"
+ cy="80.271782"
+ r="5.7431164" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-width:5;stroke-dasharray:10, 10"
+ id="circle833"
+ cx="333.59827"
+ cy="80.592285"
+ r="5.7431164" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-width:5;stroke-dasharray:10, 10"
+ id="circle835"
+ cx="233.10919"
+ cy="234.75316"
+ r="5.7431164" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-width:5;stroke-dasharray:10, 10"
+ id="circle837"
+ cx="355.77115"
+ cy="351.03488"
+ r="5.7431164" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-width:5;stroke-dasharray:10, 10"
+ id="circle839"
+ cx="117.54447"
+ cy="416.5206"
+ r="5.7431164" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="62.743244"
+ y="66.555336"
+ id="text843"><tspan
+ sodipodi:role="line"
+ id="tspan841"
+ x="62.743244"
+ y="66.555336">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="341.01462"
+ y="67.814552"
+ id="text847"><tspan
+ sodipodi:role="line"
+ id="tspan845"
+ x="341.01462"
+ y="67.814552">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="250.10796"
+ y="237.64861"
+ id="text851"><tspan
+ sodipodi:role="line"
+ id="tspan849"
+ x="250.10796"
+ y="237.64861">2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="95.912811"
+ y="442.76086"
+ id="text855"><tspan
+ sodipodi:role="line"
+ id="tspan853"
+ x="95.912811"
+ y="442.76086">4</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="363.61136"
+ y="378.92093"
+ id="text859"><tspan
+ sodipodi:role="line"
+ id="tspan857"
+ x="363.61136"
+ y="378.92093">3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="180.29718"
+ y="73.938614"
+ id="text879"><tspan
+ sodipodi:role="line"
+ id="tspan877"
+ x="180.29718"
+ y="73.938614"
+ style="font-size:16px">edge 0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="116.7416"
+ y="444.05273"
+ id="text883"
+ transform="rotate(-14.17869)"><tspan
+ sodipodi:role="line"
+ id="tspan881"
+ x="116.7416"
+ y="444.05273"
+ style="font-size:16px">edge 3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="194.91197"
+ y="1.7784089"
+ id="text887"
+ transform="rotate(44.862881)"><tspan
+ sodipodi:role="line"
+ id="tspan885"
+ x="194.91197"
+ y="1.7784089"
+ style="font-size:16px">edge 1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="6.9570251"
+ y="337.26407"
+ id="text891"
+ transform="rotate(-55.507024)"><tspan
+ sodipodi:role="line"
+ id="tspan889"
+ x="6.9570251"
+ y="337.26407"
+ style="font-size:16px">edge 2</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 42.882779,85.198644 473.67906,41.765084"
+ id="path893" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 42.882779,85.198644 473.67906,41.765084"
+ id="path895" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="523.32013"
+ y="68.950508"
+ id="text1131"><tspan
+ sodipodi:role="line"
+ id="tspan1129"
+ x="523.32013"
+ y="68.950508"
+ style="stroke-width:0.62235">Edge 0 added!</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1133"
+ width="76.090935"
+ height="20.689505"
+ x="524.90527"
+ y="80.005814" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="527.4046"
+ y="96.453171"
+ id="text1137"><tspan
+ sodipodi:role="line"
+ id="tspan1135"
+ x="527.4046"
+ y="96.453171"
+ style="stroke-width:0.62235">Edge</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1139"
+ width="92.910706"
+ height="20.631157"
+ x="600.99622"
+ y="80.064163" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="603.052"
+ y="96.628555"
+ id="text1143"><tspan
+ sodipodi:role="line"
+ id="tspan1141"
+ x="603.052"
+ y="96.628555"
+ style="stroke-width:0.62235">lastPoint</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1145"
+ width="76.090935"
+ height="20.689505"
+ x="524.90527"
+ y="100.63697" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="527.4046"
+ y="117.08434"
+ id="text1149"><tspan
+ sodipodi:role="line"
+ id="tspan1147"
+ x="527.4046"
+ y="117.08434"
+ style="stroke-width:0.62235">edge 0</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1151"
+ width="92.910706"
+ height="20.631157"
+ x="600.99622"
+ y="100.69532" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="603.052"
+ y="117.25972"
+ id="text1155"><tspan
+ sodipodi:role="line"
+ id="tspan1153"
+ x="603.052"
+ y="117.25972"
+ style="stroke-width:0.62235">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="522.94501"
+ y="149.71866"
+ id="text1159"><tspan
+ sodipodi:role="line"
+ id="tspan1157"
+ x="522.94501"
+ y="149.71866"
+ style="stroke-width:0.62235">Edge 1 added!</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1161"
+ width="76.090935"
+ height="20.689505"
+ x="524.35718"
+ y="161.24171" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="526.85651"
+ y="177.68907"
+ id="text1165"><tspan
+ sodipodi:role="line"
+ id="tspan1163"
+ x="526.85651"
+ y="177.68907"
+ style="stroke-width:0.62235">Edge</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1167"
+ width="92.910706"
+ height="20.631157"
+ x="600.44812"
+ y="161.30006" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="602.50391"
+ y="177.86446"
+ id="text1171"><tspan
+ sodipodi:role="line"
+ id="tspan1169"
+ x="602.50391"
+ y="177.86446"
+ style="stroke-width:0.62235">lastPoint</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1173"
+ width="76.090935"
+ height="20.689505"
+ x="524.35718"
+ y="181.87286" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="526.85651"
+ y="198.32024"
+ id="text1177"><tspan
+ sodipodi:role="line"
+ id="tspan1175"
+ x="526.85651"
+ y="198.32024"
+ style="stroke-width:0.62235">edge 0</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1179"
+ width="92.910706"
+ height="20.631157"
+ x="600.44812"
+ y="181.93121" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="602.50391"
+ y="198.49562"
+ id="text1183"><tspan
+ sodipodi:role="line"
+ id="tspan1181"
+ x="602.50391"
+ y="198.49562"
+ style="stroke-width:0.62235">0</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1185"
+ width="76.090935"
+ height="20.689505"
+ x="524.35718"
+ y="202.56238" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="526.85651"
+ y="219.00975"
+ id="text1189"><tspan
+ sodipodi:role="line"
+ id="tspan1187"
+ x="526.85651"
+ y="219.00975"
+ style="stroke-width:0.62235">edge 1</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1191"
+ width="92.910706"
+ height="20.631157"
+ x="600.44812"
+ y="202.62073" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="602.50391"
+ y="219.18513"
+ id="text1195"><tspan
+ sodipodi:role="line"
+ id="tspan1193"
+ x="602.50391"
+ y="219.18513"
+ style="stroke-width:0.62235">0</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1047)"
+ d="m 511.60893,25.697471 c 0,0 -20.75021,-39.589821 -58.65278,14.975274"
+ id="path1197"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 42.25566,110.54637 473.05194,67.112813"
+ id="path1265" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="540.90442"
+ y="288.85034"
+ id="text1381"><tspan
+ sodipodi:role="line"
+ id="tspan1379"
+ x="540.90442"
+ y="288.85034"
+ style="stroke-width:0.62235">Edge 0 to remove!</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1383"
+ width="76.090935"
+ height="20.689505"
+ x="542.31659"
+ y="300.37335" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="544.81592"
+ y="316.82074"
+ id="text1387"><tspan
+ sodipodi:role="line"
+ id="tspan1385"
+ x="544.81592"
+ y="316.82074"
+ style="stroke-width:0.62235">Edge</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1389"
+ width="92.910706"
+ height="20.631157"
+ x="618.40753"
+ y="300.4317" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="620.46332"
+ y="316.99609"
+ id="text1393"><tspan
+ sodipodi:role="line"
+ id="tspan1391"
+ x="620.46332"
+ y="316.99609"
+ style="stroke-width:0.62235">lastPoint</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1395"
+ width="76.090935"
+ height="20.689505"
+ x="542.31659"
+ y="321.00452" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="544.81592"
+ y="337.4519"
+ id="text1399"><tspan
+ sodipodi:role="line"
+ id="tspan1397"
+ x="544.81592"
+ y="337.4519"
+ style="stroke-width:0.62235">edge 0</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1401"
+ width="92.910706"
+ height="20.631157"
+ x="618.40753"
+ y="321.06287" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="620.46332"
+ y="337.62726"
+ id="text1405"><tspan
+ sodipodi:role="line"
+ id="tspan1403"
+ x="620.46332"
+ y="337.62726"
+ style="stroke-width:0.62235">0</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1407"
+ width="76.090935"
+ height="20.689505"
+ x="542.31659"
+ y="341.69403" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="544.81592"
+ y="358.14142"
+ id="text1411"><tspan
+ sodipodi:role="line"
+ id="tspan1409"
+ x="544.81592"
+ y="358.14142"
+ style="stroke-width:0.62235">edge 1</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1413"
+ width="92.910706"
+ height="20.631157"
+ x="618.40753"
+ y="341.75238" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="620.46332"
+ y="358.31677"
+ id="text1417"><tspan
+ sodipodi:role="line"
+ id="tspan1415"
+ x="620.46332"
+ y="358.31677"
+ style="stroke-width:0.62235">0</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1423)"
+ d="M 722.11561,331.45937 H 762.0119"
+ id="path1419"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:13.5242px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.507157"
+ x="774.25232"
+ y="318.1366"
+ id="text1439"><tspan
+ sodipodi:role="line"
+ id="tspan1437"
+ x="774.25232"
+ y="318.1366"
+ style="stroke-width:0.507157">Draw edge from</tspan><tspan
+ sodipodi:role="line"
+ x="774.25232"
+ y="335.04184"
+ id="tspan1441"
+ style="stroke-width:0.507157">point 0 to 1</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1551"
+ width="76.090935"
+ height="20.689505"
+ x="800.30951"
+ y="377.89612" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="802.80884"
+ y="394.34351"
+ id="text1555"><tspan
+ sodipodi:role="line"
+ id="tspan1553"
+ x="802.80884"
+ y="394.34351"
+ style="stroke-width:0.62235">Edge</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1557"
+ width="92.910706"
+ height="20.631157"
+ x="876.40045"
+ y="377.95447" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="878.45624"
+ y="394.51886"
+ id="text1561"><tspan
+ sodipodi:role="line"
+ id="tspan1559"
+ x="878.45624"
+ y="394.51886"
+ style="stroke-width:0.62235">lastPoint</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1563"
+ width="76.090935"
+ height="20.689505"
+ x="800.30951"
+ y="398.52728" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="802.80884"
+ y="414.97467"
+ id="text1567"><tspan
+ sodipodi:role="line"
+ id="tspan1565"
+ x="802.80884"
+ y="414.97467"
+ style="stroke-width:0.62235">edge 0</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1569"
+ width="92.910706"
+ height="20.631157"
+ x="876.40045"
+ y="398.58563" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="878.45624"
+ y="415.15002"
+ id="text1573"><tspan
+ sodipodi:role="line"
+ id="tspan1571"
+ x="878.45624"
+ y="415.15002"
+ style="stroke-width:0.62235">1</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1575"
+ width="76.090935"
+ height="20.689505"
+ x="800.30951"
+ y="419.2168" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="802.80884"
+ y="435.66418"
+ id="text1579"><tspan
+ sodipodi:role="line"
+ id="tspan1577"
+ x="802.80884"
+ y="435.66418"
+ style="stroke-width:0.62235">edge 1</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1581"
+ width="92.910706"
+ height="20.631157"
+ x="876.40045"
+ y="419.27515" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="878.45624"
+ y="435.83954"
+ id="text1585"><tspan
+ sodipodi:role="line"
+ id="tspan1583"
+ x="878.45624"
+ y="435.83954"
+ style="stroke-width:0.62235">0</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1591)"
+ d="m 890.28176,326.07396 c 0,0 34.54686,-5.21071 25.85364,43.99525"
+ id="path1587"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1627)"
+ d="M 776.44112,411.41466 H 736.54483"
+ id="path1623"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000"
+ x="961.54761"
+ y="416.04871"
+ id="text1659"><tspan
+ sodipodi:role="line"
+ id="tspan1657"
+ x="961.54761"
+ y="416.04871">x</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1661"
+ width="76.090935"
+ height="20.689505"
+ x="541.69208"
+ y="392.0318" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="544.19141"
+ y="408.47919"
+ id="text1665"><tspan
+ sodipodi:role="line"
+ id="tspan1663"
+ x="544.19141"
+ y="408.47919"
+ style="stroke-width:0.62235">Edge</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1667"
+ width="92.910706"
+ height="20.631157"
+ x="617.78302"
+ y="392.09015" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="619.83881"
+ y="408.65454"
+ id="text1671"><tspan
+ sodipodi:role="line"
+ id="tspan1669"
+ x="619.83881"
+ y="408.65454"
+ style="stroke-width:0.62235">lastPoint</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1685"
+ width="76.090935"
+ height="20.689505"
+ x="541.69208"
+ y="412.66296" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="544.19141"
+ y="429.11035"
+ id="text1689"><tspan
+ sodipodi:role="line"
+ id="tspan1687"
+ x="544.19141"
+ y="429.11035"
+ style="stroke-width:0.62235">edge 1</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1691"
+ width="92.910706"
+ height="20.631157"
+ x="617.78302"
+ y="412.72131" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="619.83881"
+ y="429.28571"
+ id="text1695"><tspan
+ sodipodi:role="line"
+ id="tspan1693"
+ x="619.83881"
+ y="429.28571"
+ style="stroke-width:0.62235">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="537.10474"
+ y="473.604"
+ id="text1703"><tspan
+ sodipodi:role="line"
+ id="tspan1701"
+ x="537.10474"
+ y="473.604"
+ style="stroke-width:0.62235">Edge 2 to add!</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1807"
+ width="76.090935"
+ height="20.689505"
+ x="539.80872"
+ y="487.46021" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="542.30804"
+ y="503.90759"
+ id="text1811"><tspan
+ sodipodi:role="line"
+ id="tspan1809"
+ x="542.30804"
+ y="503.90759"
+ style="stroke-width:0.62235">Edge</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1813"
+ width="92.910706"
+ height="20.631157"
+ x="615.89966"
+ y="487.51855" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="617.95544"
+ y="504.08295"
+ id="text1817"><tspan
+ sodipodi:role="line"
+ id="tspan1815"
+ x="617.95544"
+ y="504.08295"
+ style="stroke-width:0.62235">lastPoint</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1819"
+ width="76.090935"
+ height="20.689505"
+ x="539.80872"
+ y="508.09137" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="542.30804"
+ y="524.53876"
+ id="text1823"><tspan
+ sodipodi:role="line"
+ id="tspan1821"
+ x="542.30804"
+ y="524.53876"
+ style="stroke-width:0.62235">edge 1</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1825"
+ width="92.910706"
+ height="20.631157"
+ x="615.89966"
+ y="508.14972" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="617.95544"
+ y="524.71411"
+ id="text1829"><tspan
+ sodipodi:role="line"
+ id="tspan1827"
+ x="617.95544"
+ y="524.71411"
+ style="stroke-width:0.62235">0</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1831"
+ width="76.090935"
+ height="20.689505"
+ x="539.80872"
+ y="528.78088" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="542.30804"
+ y="545.22827"
+ id="text1835"><tspan
+ sodipodi:role="line"
+ id="tspan1833"
+ x="542.30804"
+ y="545.22827"
+ style="stroke-width:0.62235">edge 2</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1837"
+ width="92.910706"
+ height="20.631157"
+ x="615.89966"
+ y="528.83923" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="617.95544"
+ y="545.40363"
+ id="text1841"><tspan
+ sodipodi:role="line"
+ id="tspan1839"
+ x="617.95544"
+ y="545.40363"
+ style="stroke-width:0.62235">1</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1889)"
+ d="M 504.81073,255.67602 C 448.04603,235.29249 449.65885,151.02314 453.14196,77.838266"
+ id="path1885"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000"
+ x="522.4021"
+ y="35.045513"
+ id="text1911"><tspan
+ sodipodi:role="line"
+ id="tspan1909"
+ x="522.4021"
+ y="35.045513">Sweepline at point 0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000"
+ x="525.63025"
+ y="262.328"
+ id="text1915"><tspan
+ sodipodi:role="line"
+ id="tspan1913"
+ x="525.63025"
+ y="262.328">Sweepline at point 1</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 42.255666,254.54637 473.05194,211.11281"
+ id="path1917" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000"
+ x="526.82587"
+ y="593.49768"
+ id="text1921"><tspan
+ sodipodi:role="line"
+ id="tspan1919"
+ x="526.82587"
+ y="593.49768">Sweepline at point 2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="528.57806"
+ y="626.17517"
+ id="text1925"><tspan
+ sodipodi:role="line"
+ id="tspan1923"
+ x="528.57806"
+ y="626.17517"
+ style="stroke-width:0.62235">Edge 1 and 2 intersect!</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1927"
+ width="76.090935"
+ height="20.689505"
+ x="528.90607"
+ y="644.75928" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="531.4054"
+ y="661.20667"
+ id="text1931"><tspan
+ sodipodi:role="line"
+ id="tspan1929"
+ x="531.4054"
+ y="661.20667"
+ style="stroke-width:0.62235">Edge</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1933"
+ width="92.910706"
+ height="20.631157"
+ x="604.99701"
+ y="644.81763" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="607.0528"
+ y="661.38202"
+ id="text1937"><tspan
+ sodipodi:role="line"
+ id="tspan1935"
+ x="607.0528"
+ y="661.38202"
+ style="stroke-width:0.62235">lastPoint</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1939"
+ width="76.090935"
+ height="20.689505"
+ x="528.90607"
+ y="665.39044" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="531.4054"
+ y="681.83783"
+ id="text1943"><tspan
+ sodipodi:role="line"
+ id="tspan1941"
+ x="531.4054"
+ y="681.83783"
+ style="stroke-width:0.62235">edge 1</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1945"
+ width="92.910706"
+ height="20.631157"
+ x="604.99701"
+ y="665.44879" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="607.0528"
+ y="682.01318"
+ id="text1949"><tspan
+ sodipodi:role="line"
+ id="tspan1947"
+ x="607.0528"
+ y="682.01318"
+ style="stroke-width:0.62235">0</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1951"
+ width="76.090935"
+ height="20.689505"
+ x="528.90607"
+ y="686.07996" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="531.4054"
+ y="702.52734"
+ id="text1955"><tspan
+ sodipodi:role="line"
+ id="tspan1953"
+ x="531.4054"
+ y="702.52734"
+ style="stroke-width:0.62235">edge 2</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1957"
+ width="92.910706"
+ height="20.631157"
+ x="604.99701"
+ y="686.13831" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="607.0528"
+ y="702.7027"
+ id="text1961"><tspan
+ sodipodi:role="line"
+ id="tspan1959"
+ x="607.0528"
+ y="702.7027"
+ style="stroke-width:0.62235">1</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1973)"
+ d="m 707.521,668.59544 52.01237,-13.98787"
+ id="path1969"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:13.5242px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.507157"
+ x="766.46564"
+ y="696.48132"
+ id="text1997"><tspan
+ sodipodi:role="line"
+ id="tspan1993"
+ x="766.46564"
+ y="696.48132"
+ style="stroke-width:0.507157">Draw edge from</tspan><tspan
+ sodipodi:role="line"
+ x="766.46564"
+ y="713.3866"
+ id="tspan1995"
+ style="stroke-width:0.507157">point 1 to 2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:13.5242px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.507157"
+ x="765.49023"
+ y="650.12512"
+ id="text2003"><tspan
+ sodipodi:role="line"
+ id="tspan1999"
+ x="765.49023"
+ y="650.12512"
+ style="stroke-width:0.507157">Draw edge from</tspan><tspan
+ sodipodi:role="line"
+ x="765.49023"
+ y="667.0304"
+ id="tspan2001"
+ style="stroke-width:0.507157">point 0 to 2</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2033)"
+ d="m 707.42993,695.83661 51.75913,5.77655"
+ id="path2029"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2063)"
+ d="m 894.63431,675.96577 c 0,0 34.54686,-5.21071 25.85364,43.99525"
+ id="path2059"
+ sodipodi:nodetypes="cc" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2083"
+ width="76.090935"
+ height="20.689505"
+ x="802.84802"
+ y="743.46246" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="805.34735"
+ y="759.90985"
+ id="text2087"><tspan
+ sodipodi:role="line"
+ id="tspan2085"
+ x="805.34735"
+ y="759.90985"
+ style="stroke-width:0.62235">Edge</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2089"
+ width="92.910706"
+ height="20.631157"
+ x="878.93896"
+ y="743.52081" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="880.99475"
+ y="760.08521"
+ id="text2093"><tspan
+ sodipodi:role="line"
+ id="tspan2091"
+ x="880.99475"
+ y="760.08521"
+ style="stroke-width:0.62235">lastPoint</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2095"
+ width="76.090935"
+ height="20.689505"
+ x="802.84802"
+ y="764.09363" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="805.34735"
+ y="780.54102"
+ id="text2099"><tspan
+ sodipodi:role="line"
+ id="tspan2097"
+ x="805.34735"
+ y="780.54102"
+ style="stroke-width:0.62235">edge 1</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2101"
+ width="92.910706"
+ height="20.631157"
+ x="878.93896"
+ y="764.15198" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="880.99475"
+ y="780.71637"
+ id="text2105"><tspan
+ sodipodi:role="line"
+ id="tspan2103"
+ x="880.99475"
+ y="780.71637"
+ style="stroke-width:0.62235">2</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2107"
+ width="76.090935"
+ height="20.689505"
+ x="802.84802"
+ y="784.78314" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="805.34735"
+ y="801.23053"
+ id="text2111"><tspan
+ sodipodi:role="line"
+ id="tspan2109"
+ x="805.34735"
+ y="801.23053"
+ style="stroke-width:0.62235">edge 2</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2113"
+ width="92.910706"
+ height="20.631157"
+ x="878.93896"
+ y="784.84149" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="880.99475"
+ y="801.40588"
+ id="text2117"><tspan
+ sodipodi:role="line"
+ id="tspan2115"
+ x="880.99475"
+ y="801.40588"
+ style="stroke-width:0.62235">2</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:1.1865;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:1.1865, 3.55949;stroke-dashoffset:0"
+ id="rect2125"
+ width="469.43896"
+ height="222.76689"
+ x="512.45044"
+ y="6.391746" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:1.42602;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:1.42602, 4.27807;stroke-dashoffset:0"
+ id="rect2127"
+ width="471.65408"
+ height="320.27844"
+ x="512.57019"
+ y="237.46489" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:1.28125;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:1.28125, 3.84375;stroke-dashoffset:0"
+ id="rect2129"
+ width="472.63187"
+ height="258.0137"
+ x="512.49774"
+ y="563.68231" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2147)"
+ d="m 503.62973,584.19465 c 0,0 -40.90478,-154.11788 -72.09349,-364.06337"
+ id="path2143"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000"
+ x="517.32916"
+ y="867.67126"
+ id="text2199"><tspan
+ sodipodi:role="line"
+ id="tspan2197"
+ x="517.32916"
+ y="867.67126">Sweepline at point 3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="517.94183"
+ y="903.17023"
+ id="text2203"><tspan
+ sodipodi:role="line"
+ id="tspan2201"
+ x="517.94183"
+ y="903.17023"
+ style="stroke-width:0.62235">Edge 1 to remove!</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2205"
+ width="76.090935"
+ height="20.689505"
+ x="519.2804"
+ y="918.34814" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="521.77972"
+ y="934.79553"
+ id="text2209"><tspan
+ sodipodi:role="line"
+ id="tspan2207"
+ x="521.77972"
+ y="934.79553"
+ style="stroke-width:0.62235">Edge</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2211"
+ width="92.910706"
+ height="20.631157"
+ x="595.37134"
+ y="918.40649" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="597.42712"
+ y="934.97089"
+ id="text2215"><tspan
+ sodipodi:role="line"
+ id="tspan2213"
+ x="597.42712"
+ y="934.97089"
+ style="stroke-width:0.62235">lastPoint</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2217"
+ width="76.090935"
+ height="20.689505"
+ x="519.2804"
+ y="938.97931" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="521.77972"
+ y="955.4267"
+ id="text2221"><tspan
+ sodipodi:role="line"
+ id="tspan2219"
+ x="521.77972"
+ y="955.4267"
+ style="stroke-width:0.62235">edge 1</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2223"
+ width="92.910706"
+ height="20.631157"
+ x="595.37134"
+ y="939.03766" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="597.42712"
+ y="955.60205"
+ id="text2227"><tspan
+ sodipodi:role="line"
+ id="tspan2225"
+ x="597.42712"
+ y="955.60205"
+ style="stroke-width:0.62235">2</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2229"
+ width="76.090935"
+ height="20.689505"
+ x="519.2804"
+ y="959.66882" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="521.77972"
+ y="976.11621"
+ id="text2233"><tspan
+ sodipodi:role="line"
+ id="tspan2231"
+ x="521.77972"
+ y="976.11621"
+ style="stroke-width:0.62235">edge 2</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2235"
+ width="92.910706"
+ height="20.631157"
+ x="595.37134"
+ y="959.72717" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="597.42712"
+ y="976.29156"
+ id="text2239"><tspan
+ sodipodi:role="line"
+ id="tspan2237"
+ x="597.42712"
+ y="976.29156"
+ style="stroke-width:0.62235">2</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1973)"
+ d="m 707.521,668.59544 52.01237,-13.98787"
+ id="path2247"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2281)"
+ d="m 694.55406,951.05824 48.94301,1.25906"
+ id="path2277"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:13.5242px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.507157"
+ x="754.52167"
+ y="946.23096"
+ id="text2305"><tspan
+ sodipodi:role="line"
+ id="tspan2301"
+ x="754.52167"
+ y="946.23096"
+ style="stroke-width:0.507157">Draw edge from</tspan><tspan
+ sodipodi:role="line"
+ x="754.52167"
+ y="963.13623"
+ id="tspan2303"
+ style="stroke-width:0.507157">point 2 to 3</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2317)"
+ d="m 882.44014,940.81441 c 0,0 34.54686,-5.21071 25.85364,43.99525"
+ id="path2313"
+ sodipodi:nodetypes="cc" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2337"
+ width="76.090935"
+ height="20.689505"
+ x="756.3902"
+ y="994.16901" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="758.88953"
+ y="1010.6164"
+ id="text2341"><tspan
+ sodipodi:role="line"
+ id="tspan2339"
+ x="758.88953"
+ y="1010.6164"
+ style="stroke-width:0.62235">Edge</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2343"
+ width="92.910706"
+ height="20.631157"
+ x="832.48114"
+ y="994.22736" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="834.53693"
+ y="1010.7917"
+ id="text2347"><tspan
+ sodipodi:role="line"
+ id="tspan2345"
+ x="834.53693"
+ y="1010.7917"
+ style="stroke-width:0.62235">lastPoint</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2349"
+ width="76.090935"
+ height="20.689505"
+ x="756.3902"
+ y="1014.8001" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="758.88953"
+ y="1031.2476"
+ id="text2353"><tspan
+ sodipodi:role="line"
+ id="tspan2351"
+ x="758.88953"
+ y="1031.2476"
+ style="stroke-width:0.62235">edge 1</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2355"
+ width="92.910706"
+ height="20.631157"
+ x="832.48114"
+ y="1014.8585" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="834.53693"
+ y="1031.4229"
+ id="text2359"><tspan
+ sodipodi:role="line"
+ id="tspan2357"
+ x="834.53693"
+ y="1031.4229"
+ style="stroke-width:0.62235">3</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2361"
+ width="76.090935"
+ height="20.689505"
+ x="756.3902"
+ y="1035.4896" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="758.88953"
+ y="1051.937"
+ id="text2365"><tspan
+ sodipodi:role="line"
+ id="tspan2363"
+ x="758.88953"
+ y="1051.937"
+ style="stroke-width:0.62235">edge 2</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2367"
+ width="92.910706"
+ height="20.631157"
+ x="832.48114"
+ y="1035.548" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="834.53693"
+ y="1052.1124"
+ id="text2371"><tspan
+ sodipodi:role="line"
+ id="tspan2369"
+ x="834.53693"
+ y="1052.1124"
+ style="stroke-width:0.62235">2</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 40.138865,382.55671 470.93514,339.12315"
+ id="path2373" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000"
+ x="917.55597"
+ y="1032.6306"
+ id="text2377"><tspan
+ sodipodi:role="line"
+ id="tspan2375"
+ x="917.55597"
+ y="1032.6306">x</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2389)"
+ d="M 743.46868,1025.5559 H 703.57239"
+ id="path2385"
+ sodipodi:nodetypes="cc" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2415"
+ width="76.090935"
+ height="20.689505"
+ x="519.26208"
+ y="1004.8329" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="521.76141"
+ y="1021.2803"
+ id="text2419"><tspan
+ sodipodi:role="line"
+ id="tspan2417"
+ x="521.76141"
+ y="1021.2803"
+ style="stroke-width:0.62235">Edge</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2421"
+ width="92.910706"
+ height="20.631157"
+ x="595.35303"
+ y="1004.8912" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="597.40881"
+ y="1021.4556"
+ id="text2425"><tspan
+ sodipodi:role="line"
+ id="tspan2423"
+ x="597.40881"
+ y="1021.4556"
+ style="stroke-width:0.62235">lastPoint</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2439"
+ width="76.090935"
+ height="20.689505"
+ x="519.26208"
+ y="1025.464" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="521.76141"
+ y="1041.9114"
+ id="text2443"><tspan
+ sodipodi:role="line"
+ id="tspan2441"
+ x="521.76141"
+ y="1041.9114"
+ style="stroke-width:0.62235">edge 2</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2445"
+ width="92.910706"
+ height="20.631157"
+ x="595.35303"
+ y="1025.5223" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="597.40881"
+ y="1042.0868"
+ id="text2449"><tspan
+ sodipodi:role="line"
+ id="tspan2447"
+ x="597.40881"
+ y="1042.0868"
+ style="stroke-width:0.62235">2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="516.98169"
+ y="1083.9663"
+ id="text2457"><tspan
+ sodipodi:role="line"
+ id="tspan2455"
+ x="516.98169"
+ y="1083.9663"
+ style="stroke-width:0.62235">Edge 3 to add!</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2465"
+ width="76.090935"
+ height="20.689505"
+ x="516.70642"
+ y="1098.8639" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="519.20575"
+ y="1115.3113"
+ id="text2469"><tspan
+ sodipodi:role="line"
+ id="tspan2467"
+ x="519.20575"
+ y="1115.3113"
+ style="stroke-width:0.62235">Edge</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2471"
+ width="92.910706"
+ height="20.631157"
+ x="592.79736"
+ y="1098.9221" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="594.85315"
+ y="1115.4866"
+ id="text2475"><tspan
+ sodipodi:role="line"
+ id="tspan2473"
+ x="594.85315"
+ y="1115.4866"
+ style="stroke-width:0.62235">lastPoint</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2477"
+ width="76.090935"
+ height="20.689505"
+ x="516.70642"
+ y="1119.495" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="519.20575"
+ y="1135.9424"
+ id="text2481"><tspan
+ sodipodi:role="line"
+ id="tspan2479"
+ x="519.20575"
+ y="1135.9424"
+ style="stroke-width:0.62235">edge 2</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2483"
+ width="92.910706"
+ height="20.631157"
+ x="592.79736"
+ y="1119.5533" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="594.85315"
+ y="1136.1178"
+ id="text2487"><tspan
+ sodipodi:role="line"
+ id="tspan2485"
+ x="594.85315"
+ y="1136.1178"
+ style="stroke-width:0.62235">2</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2489"
+ width="76.090935"
+ height="20.689505"
+ x="516.70642"
+ y="1140.1261" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="519.20575"
+ y="1156.5735"
+ id="text2493"><tspan
+ sodipodi:role="line"
+ id="tspan2491"
+ x="519.20575"
+ y="1156.5735"
+ style="stroke-width:0.62235">edge 3</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2495"
+ width="92.910706"
+ height="20.631157"
+ x="592.79736"
+ y="1140.1844" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="594.85315"
+ y="1156.7489"
+ id="text2499"><tspan
+ sodipodi:role="line"
+ id="tspan2497"
+ x="594.85315"
+ y="1156.7489"
+ style="stroke-width:0.62235">3</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:1.47069;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:1.47069, 4.41207;stroke-dashoffset:0"
+ id="rect2501"
+ width="482.33456"
+ height="333.11258"
+ x="506.91623"
+ y="840.93774" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2561)"
+ d="m 495.90877,884.31733 c -41.03527,5.67277 32.96469,-198.23286 -89.298,-527.11784"
+ id="path2557"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000"
+ x="46.899685"
+ y="647.60687"
+ id="text2591"><tspan
+ sodipodi:role="line"
+ id="tspan2589"
+ x="46.899685"
+ y="647.60687">Sweepline at point 4</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 40.138865,424.55671 470.93514,381.12315"
+ id="path2593" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="47.777306"
+ y="685.42639"
+ id="text2597"><tspan
+ sodipodi:role="line"
+ id="tspan2595"
+ x="47.777306"
+ y="685.42639"
+ style="stroke-width:0.62235">Edge 2 to remove!</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2599"
+ width="76.090935"
+ height="20.689505"
+ x="45.252327"
+ y="702.67407" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="47.751656"
+ y="719.12146"
+ id="text2603"><tspan
+ sodipodi:role="line"
+ id="tspan2601"
+ x="47.751656"
+ y="719.12146"
+ style="stroke-width:0.62235">Edge</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2605"
+ width="92.910706"
+ height="20.631157"
+ x="121.34327"
+ y="702.7323" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="123.39906"
+ y="719.29675"
+ id="text2609"><tspan
+ sodipodi:role="line"
+ id="tspan2607"
+ x="123.39906"
+ y="719.29675"
+ style="stroke-width:0.62235">lastPoint</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2611"
+ width="76.090935"
+ height="20.689505"
+ x="45.252327"
+ y="723.30518" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="47.751656"
+ y="739.75256"
+ id="text2615"><tspan
+ sodipodi:role="line"
+ id="tspan2613"
+ x="47.751656"
+ y="739.75256"
+ style="stroke-width:0.62235">edge 2</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2617"
+ width="92.910706"
+ height="20.631157"
+ x="121.34327"
+ y="723.36353" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="123.39906"
+ y="739.92798"
+ id="text2621"><tspan
+ sodipodi:role="line"
+ id="tspan2619"
+ x="123.39906"
+ y="739.92798"
+ style="stroke-width:0.62235">2</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2623"
+ width="76.090935"
+ height="20.689505"
+ x="45.252327"
+ y="743.93628" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="47.751656"
+ y="760.38367"
+ id="text2627"><tspan
+ sodipodi:role="line"
+ id="tspan2625"
+ x="47.751656"
+ y="760.38367"
+ style="stroke-width:0.62235">edge 3</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2629"
+ width="92.910706"
+ height="20.631157"
+ x="121.34327"
+ y="743.99463" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="123.39906"
+ y="760.55908"
+ id="text2633"><tspan
+ sodipodi:role="line"
+ id="tspan2631"
+ x="123.39906"
+ y="760.55908"
+ style="stroke-width:0.62235">3</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2645)"
+ d="m 226.25397,733.99463 h 39.89629"
+ id="path2641"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:13.5242px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.507157"
+ x="272.90488"
+ y="731.02496"
+ id="text2669"><tspan
+ sodipodi:role="line"
+ id="tspan2665"
+ x="272.90488"
+ y="731.02496"
+ style="stroke-width:0.507157">Draw edge from</tspan><tspan
+ sodipodi:role="line"
+ x="272.90488"
+ y="747.93024"
+ id="tspan2667"
+ style="stroke-width:0.507157">point 2 to 4</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2743)"
+ d="m 388.55156,740.8288 c 0,0 34.54686,-5.21071 25.85364,43.99525"
+ id="path2717"
+ sodipodi:nodetypes="cc" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2769"
+ width="76.090935"
+ height="20.689505"
+ x="266.41138"
+ y="799.17401" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="268.91071"
+ y="815.6214"
+ id="text2773"><tspan
+ sodipodi:role="line"
+ id="tspan2771"
+ x="268.91071"
+ y="815.6214"
+ style="stroke-width:0.62235">Edge</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2775"
+ width="92.910706"
+ height="20.631157"
+ x="342.50232"
+ y="799.23224" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="344.55814"
+ y="815.79669"
+ id="text2779"><tspan
+ sodipodi:role="line"
+ id="tspan2777"
+ x="344.55814"
+ y="815.79669"
+ style="stroke-width:0.62235">lastPoint</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2781"
+ width="76.090935"
+ height="20.689505"
+ x="266.41138"
+ y="819.80511" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="268.91071"
+ y="836.2525"
+ id="text2785"><tspan
+ sodipodi:role="line"
+ id="tspan2783"
+ x="268.91071"
+ y="836.2525"
+ style="stroke-width:0.62235">edge 2</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2787"
+ width="92.910706"
+ height="20.631157"
+ x="342.50232"
+ y="819.86346" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="344.55814"
+ y="836.42792"
+ id="text2791"><tspan
+ sodipodi:role="line"
+ id="tspan2789"
+ x="344.55814"
+ y="836.42792"
+ style="stroke-width:0.62235">4</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2793"
+ width="76.090935"
+ height="20.689505"
+ x="266.41138"
+ y="840.43622" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="268.91071"
+ y="856.88361"
+ id="text2797"><tspan
+ sodipodi:role="line"
+ id="tspan2795"
+ x="268.91071"
+ y="856.88361"
+ style="stroke-width:0.62235">edge 3</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2799"
+ width="92.910706"
+ height="20.631157"
+ x="342.50232"
+ y="840.49457" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="344.55814"
+ y="857.05902"
+ id="text2803"><tspan
+ sodipodi:role="line"
+ id="tspan2801"
+ x="344.55814"
+ y="857.05902"
+ style="stroke-width:0.62235">3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000"
+ x="427.05054"
+ y="836.9527"
+ id="text2807"><tspan
+ sodipodi:role="line"
+ id="tspan2805"
+ x="427.05054"
+ y="836.9527">x</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2841)"
+ d="M 264.41138,831.86353 H 224.51509"
+ id="path2815"
+ sodipodi:nodetypes="cc" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2855"
+ width="76.090935"
+ height="20.689505"
+ x="45.671253"
+ y="796.68427" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="48.170582"
+ y="813.13165"
+ id="text2859"><tspan
+ sodipodi:role="line"
+ id="tspan2857"
+ x="48.170582"
+ y="813.13165"
+ style="stroke-width:0.62235">Edge</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2861"
+ width="92.910706"
+ height="20.631157"
+ x="121.7622"
+ y="796.74249" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="123.81802"
+ y="813.30695"
+ id="text2865"><tspan
+ sodipodi:role="line"
+ id="tspan2863"
+ x="123.81802"
+ y="813.30695"
+ style="stroke-width:0.62235">lastPoint</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2879"
+ width="76.090935"
+ height="20.689505"
+ x="45.671253"
+ y="817.31531" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="48.170582"
+ y="833.7627"
+ id="text2883"><tspan
+ sodipodi:role="line"
+ id="tspan2881"
+ x="48.170582"
+ y="833.7627"
+ style="stroke-width:0.62235">edge 3</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2885"
+ width="92.910706"
+ height="20.631157"
+ x="121.7622"
+ y="817.37366" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="123.81802"
+ y="833.93811"
+ id="text2889"><tspan
+ sodipodi:role="line"
+ id="tspan2887"
+ x="123.81802"
+ y="833.93811"
+ style="stroke-width:0.62235">3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="44.584824"
+ y="887.64111"
+ id="text2903"><tspan
+ sodipodi:role="line"
+ id="tspan2901"
+ x="44.584824"
+ y="887.64111"
+ style="stroke-width:0.62235">Edge 3 to remove!</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2905"
+ width="76.090935"
+ height="20.689505"
+ x="41.468079"
+ y="907.44482" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="43.967407"
+ y="923.89221"
+ id="text2909"><tspan
+ sodipodi:role="line"
+ id="tspan2907"
+ x="43.967407"
+ y="923.89221"
+ style="stroke-width:0.62235">Edge</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2911"
+ width="92.910706"
+ height="20.631157"
+ x="117.55902"
+ y="907.50305" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="119.61485"
+ y="924.0675"
+ id="text2915"><tspan
+ sodipodi:role="line"
+ id="tspan2913"
+ x="119.61485"
+ y="924.0675"
+ style="stroke-width:0.62235">lastPoint</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2917"
+ width="76.090935"
+ height="20.689505"
+ x="41.468079"
+ y="928.07587" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="43.967407"
+ y="944.52325"
+ id="text2921"><tspan
+ sodipodi:role="line"
+ id="tspan2919"
+ x="43.967407"
+ y="944.52325"
+ style="stroke-width:0.62235">edge 3</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2923"
+ width="92.910706"
+ height="20.631157"
+ x="117.55902"
+ y="928.13422" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="119.61485"
+ y="944.69867"
+ id="text2927"><tspan
+ sodipodi:role="line"
+ id="tspan2925"
+ x="119.61485"
+ y="944.69867"
+ style="stroke-width:0.62235">3</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2929"
+ width="76.090935"
+ height="20.689505"
+ x="267.09317"
+ y="907.31293" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="269.5925"
+ y="923.76031"
+ id="text2933"><tspan
+ sodipodi:role="line"
+ id="tspan2931"
+ x="269.5925"
+ y="923.76031"
+ style="stroke-width:0.62235">Edge</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2935"
+ width="92.910706"
+ height="20.631157"
+ x="343.18411"
+ y="907.37115" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="345.23993"
+ y="923.93561"
+ id="text2939"><tspan
+ sodipodi:role="line"
+ id="tspan2937"
+ x="345.23993"
+ y="923.93561"
+ style="stroke-width:0.62235">lastPoint</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2941"
+ width="76.090935"
+ height="20.689505"
+ x="267.09317"
+ y="927.94397" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="269.5925"
+ y="944.39136"
+ id="text2945"><tspan
+ sodipodi:role="line"
+ id="tspan2943"
+ x="269.5925"
+ y="944.39136"
+ style="stroke-width:0.62235">edge 3</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2947"
+ width="92.910706"
+ height="20.631157"
+ x="343.18411"
+ y="928.00232" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="345.23993"
+ y="944.56677"
+ id="text2951"><tspan
+ sodipodi:role="line"
+ id="tspan2949"
+ x="345.23993"
+ y="944.56677"
+ style="stroke-width:0.62235">4</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2963)"
+ d="m 219.19688,927.94397 h 39.89629"
+ id="path2959"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000"
+ x="427.76697"
+ y="945.63947"
+ id="text2985"><tspan
+ sodipodi:role="line"
+ id="tspan2983"
+ x="427.76697"
+ y="945.63947">x</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:1, 3;stroke-dashoffset:0"
+ id="rect2987"
+ width="424.95172"
+ height="360.29645"
+ x="25.837017"
+ y="609.39429" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2993)"
+ d="m 58.889602,598.3227 c 0,0 -28.189621,-102.28804 2.747075,-169.23825"
+ id="path2989"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ id="text3007"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect3009)"><tspan
+ x="27.21875"
+ y="1032.0898"><tspan
+ style="font-size:16px">Note that while drawing, you do:
+</tspan></tspan><tspan
+ x="27.21875"
+ y="1052.0898"><tspan
+ style="font-size:16px">drawEdge(oldPoint, newPoint) if the edge is top to
+</tspan></tspan><tspan
+ x="27.21875"
+ y="1072.0898"><tspan
+ style="font-size:16px">bottom or horizontal (left to right), otherwise, you'd
+</tspan></tspan><tspan
+ x="27.21875"
+ y="1092.0898"><tspan
+ style="font-size:16px">do:
+</tspan></tspan><tspan
+ x="27.21875"
+ y="1112.0898"><tspan
+ style="font-size:16px">drawEdge(newPoint, oldPoint).
+</tspan></tspan><tspan
+ x="27.21875"
+ y="1132.0898"><tspan
+ style="font-size:16px">This is to ensure, the directions remain same</tspan></tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/convert-simple-high.svg b/doc/livarot-images/convert-simple-high.svg
new file mode 100644
index 0000000..ccede26
--- /dev/null
+++ b/doc/livarot-images/convert-simple-high.svg
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="486.77621"
+ height="516.31232"
+ viewBox="0 0 486.77621 516.31232"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (1a7913d4e8, 2020-08-20, custom)"
+ sodipodi:docname="convert-simple-high.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker1121"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.73466529"
+ inkscape:cx="392.01525"
+ inkscape:cy="432.16959"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-top="10"
+ fit-margin-left="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-31.206402,-35.657172)">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.86674;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 114.93853,537.58003 c 0,0 -7.12643,-411.91923 386.22595,-474.402555 z"
+ id="path829" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:2.86674;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:5.73347, 5.73347;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 114.93853,537.58003 7.40009,-79.46247 16.92909,-73.49058 27.50231,-73.79257 35.63381,-63.78975 50.17974,-60.49927 49.72355,-42.84003 64.50322,-38.83431 64.23464,-24.468298 70.1195,-17.225277 z"
+ id="path1035" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.33666;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path831"
+ cx="115.26668"
+ cy="535.56915"
+ r="6.4003329" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.33666;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle833"
+ cx="121.911"
+ cy="457.75839"
+ r="6.4003329" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.33666;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle835"
+ cx="251.64296"
+ cy="186.47656"
+ r="6.4003329" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.33666;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle837"
+ cx="366.63855"
+ cy="104.16064"
+ r="6.4003329" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.33666;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle839"
+ cx="501.58228"
+ cy="62.199787"
+ r="6.4003329" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.33666;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1025"
+ cx="138.96669"
+ cy="383.32968"
+ r="6.4003329" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.33666;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1027"
+ cx="166.1521"
+ cy="310.74799"
+ r="6.4003329" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.33666;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1029"
+ cx="200.8325"
+ cy="247.2348"
+ r="6.4003329" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.33666;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1031"
+ cx="301.32437"
+ cy="142.98907"
+ r="6.4003329" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.33666;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1033"
+ cx="430.7309"
+ cy="79.271164"
+ r="6.4003329" />
+ <text
+ xml:space="preserve"
+ style="font-size:15.2893px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.573347"
+ x="40.198563"
+ y="57.273457"
+ id="text1043"><tspan
+ sodipodi:role="line"
+ id="tspan1041"
+ x="40.198563"
+ y="57.273457"
+ style="stroke-width:0.573347">Smaller Threshold</tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/convert-simple-low.svg b/doc/livarot-images/convert-simple-low.svg
new file mode 100644
index 0000000..5feaa53
--- /dev/null
+++ b/doc/livarot-images/convert-simple-low.svg
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="396.13266"
+ height="420.10977"
+ viewBox="0 0 396.13266 420.10977"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (1a7913d4e8, 2020-08-20, custom)"
+ sodipodi:docname="convert-simple-low.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker1121"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="351"
+ inkscape:cy="316.5"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-top="10"
+ fit-margin-left="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-29.299149,-40.920317)">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.30464;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 99.453438,443.96395 c 0,0 -5.729127,-331.15259 310.497102,-381.384564 z"
+ id="path829" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:5.89814;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path831"
+ cx="100.13943"
+ cy="445.8847"
+ r="5.1453943" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:2.30464;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:9.21857, 9.21857;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 99.453438,443.96395 111.66843,344.06761 187.37985,185.96713 286.63198,104.20242 409.95054,62.579386 Z"
+ id="path857" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:5.89814;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle833"
+ cx="112.32209"
+ cy="344.4505"
+ r="5.1453943" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:5.89814;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle835"
+ cx="187.13506"
+ cy="186.10045"
+ r="5.1453943" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:5.89814;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle837"
+ cx="285.35266"
+ cy="103.90615"
+ r="5.1453943" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:5.89814;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle839"
+ cx="410.28641"
+ cy="61.793396"
+ r="5.1453943" />
+ <text
+ xml:space="preserve"
+ style="font-size:12.2914px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.460929"
+ x="38.092815"
+ y="60.2589"
+ id="text1039"><tspan
+ sodipodi:role="line"
+ x="38.092815"
+ y="60.2589"
+ id="tspan888"
+ style="stroke-width:0.460929">Bigger Threshold</tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/edge-sorting.svg b/doc/livarot-images/edge-sorting.svg
new file mode 100644
index 0000000..226b52a
--- /dev/null
+++ b/doc/livarot-images/edge-sorting.svg
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="1000"
+ height="1000"
+ viewBox="0 0 1000 1000"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (d63ee585f6, 2020-08-11, custom)"
+ sodipodi:docname="edge-sorting.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible;"
+ id="marker1121"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1119" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="Arrow1Lend"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path828" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.64984822"
+ inkscape:cx="460.10744"
+ inkscape:cy="471.64859"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.00157;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+ d="M 67.585403,500 H 930.47019"
+ id="path823" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.00157;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1121)"
+ d="M 500,67.585384 V 930.47021"
+ id="path1117" />
+ <text
+ xml:space="preserve"
+ style="font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="948.98737"
+ y="506.99948"
+ id="text1171"><tspan
+ sodipodi:role="line"
+ id="tspan1169"
+ x="948.98737"
+ y="506.99948"
+ style="font-size:40px">x</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="488.41867"
+ y="970.67389"
+ id="text1175"><tspan
+ sodipodi:role="line"
+ id="tspan1173"
+ x="488.41867"
+ y="970.67389"
+ style="font-size:40px">y</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="480.92773"
+ y="514.58008"
+ id="text1211"><tspan
+ sodipodi:role="line"
+ id="tspan1209"
+ x="480.92773"
+ y="514.58008"
+ style="font-size:40px">-1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="487.28516"
+ y="258.46341"
+ id="text1215"><tspan
+ sodipodi:role="line"
+ id="tspan1213"
+ x="487.28516"
+ y="258.46341"
+ style="font-size:40px">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="732.20917"
+ y="258.48294"
+ id="text1219"><tspan
+ sodipodi:role="line"
+ id="tspan1217"
+ x="732.20917"
+ y="258.48294"
+ style="font-size:40px">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="733.09784"
+ y="514.84375"
+ id="text1223"><tspan
+ sodipodi:role="line"
+ id="tspan1221"
+ x="733.09784"
+ y="514.84375"
+ style="font-size:40px">2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="732.63885"
+ y="748.21735"
+ id="text1227"><tspan
+ sodipodi:role="line"
+ id="tspan1225"
+ x="732.63885"
+ y="748.21735"
+ style="font-size:40px">3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="487.42188"
+ y="748.23688"
+ id="text1231"><tspan
+ sodipodi:role="line"
+ id="tspan1229"
+ x="487.42188"
+ y="748.23688"
+ style="font-size:40px">4</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="244.42764"
+ y="747.95367"
+ id="text1235"><tspan
+ sodipodi:role="line"
+ id="tspan1233"
+ x="244.42764"
+ y="747.95367"
+ style="font-size:40px">5</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="244.08585"
+ y="514.56055"
+ id="text1243"><tspan
+ sodipodi:role="line"
+ x="244.08585"
+ y="514.56055"
+ style="font-size:40px"
+ id="tspan1245">6</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="244.29092"
+ y="258.48294"
+ id="text1251"><tspan
+ sodipodi:role="line"
+ x="244.29092"
+ y="258.48294"
+ style="font-size:40px"
+ id="tspan1249">7</tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/edge-winding-seed.svg b/doc/livarot-images/edge-winding-seed.svg
new file mode 100644
index 0000000..b54c09e
--- /dev/null
+++ b/doc/livarot-images/edge-winding-seed.svg
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="424.39703"
+ height="373.91052"
+ viewBox="0 0 424.39703 373.91052"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (1a7913d4e8, 2020-08-20, custom)"
+ sodipodi:docname="edge-winding-seed.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker1121"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="229"
+ inkscape:cy="258.5"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-top="10"
+ fit-margin-left="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-89.500001,-189.5)">
+ <path
+ id="path829"
+ style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.504865px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 150.23896,199.75243 V 351.212 H 301.69852 V 502.67157 H 150.23896 V 351.212 H 99.752433 V 553.15809 H 503.64461 V 199.75243 Z m 25.24326,25.24326 H 276.45526 V 325.96874 H 175.48222 Z m 0,151.45957 V 477.42831 H 276.45526 V 376.45526 Z" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1.1107;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 150.23896,199.75243 V 502.67157"
+ id="path1538" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-width:1.95177;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path1540"
+ cx="175.54428"
+ cy="225.05775"
+ r="3.0912569" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-width:1.95177;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="circle1542"
+ cx="175.52843"
+ cy="376.78326"
+ r="3.0912569" />
+ </g>
+</svg>
diff --git a/doc/livarot-images/find-point-2.svg b/doc/livarot-images/find-point-2.svg
new file mode 100644
index 0000000..ee2468f
--- /dev/null
+++ b/doc/livarot-images/find-point-2.svg
@@ -0,0 +1,357 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="337.0166"
+ height="334.90112"
+ viewBox="0 0 337.01661 334.90112"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (d63ee585f6, 2020-08-11, custom)"
+ sodipodi:docname="find-point.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <style
+ id="style1605">
+.measure-arrow
+{
+}
+.measure-label
+{
+
+}
+.measure-line
+{
+}</style>
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker2236"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path2234" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2206"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:#008000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path2204" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2176"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path2174" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1645"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1643" />
+ </marker>
+ <inkscape:path-effect
+ effect="measure_segments"
+ id="path-effect1603"
+ is_visible="true"
+ lpeversion="1"
+ unit="mm"
+ orientation="parallel"
+ coloropacity="#000000ff"
+ fontbutton="Sans 10"
+ precision="2"
+ fix_overlaps="0"
+ position="5"
+ text_top_bottom="0"
+ helpline_distance="0"
+ helpline_overlap="2"
+ line_width="0.25"
+ scale="1"
+ format="{measure}{unit}"
+ blacklist=""
+ active_projection="false"
+ whitelist="false"
+ showindex="false"
+ arrows_outside="false"
+ flip_side="false"
+ scale_sensitive="true"
+ local_locale="true"
+ rotate_anotation="true"
+ hide_back="true"
+ hide_arrows="false"
+ smallx100="false"
+ linked_items=""
+ distance_projection="20"
+ angle_projection="0"
+ avoid_overlapping="true"
+ onbbox="false"
+ bboxonly="false"
+ centers="false"
+ maxmin="false"
+ helpdata="&lt;b&gt;&lt;big&gt;General&lt;/big&gt;&lt;/b&gt;
+Display and position dimension lines and labels
+
+&lt;b&gt;&lt;big&gt;Projection&lt;/big&gt;&lt;/b&gt;
+Show a line with measurements based on the selected items
+
+&lt;b&gt;&lt;big&gt;Options&lt;/big&gt;&lt;/b&gt;
+Options for color, precision, label formatting and display
+
+&lt;b&gt;&lt;big&gt;Tips&lt;/big&gt;&lt;/b&gt;
+&lt;b&gt;&lt;i&gt;Custom styling:&lt;/i&gt;&lt;/b&gt; To further customize the styles, use the XML editor to find out the class or ID, then use the Style dialog to apply a new style.
+&lt;b&gt;&lt;i&gt;Blacklists:&lt;/i&gt;&lt;/b&gt; allow to hide some segments or projection steps.
+&lt;b&gt;&lt;i&gt;Multiple Measure LPEs:&lt;/i&gt;&lt;/b&gt; In the same object, in conjunction with blacklists,this allows for labels and measurements with different orientations or additional projections.
+&lt;b&gt;&lt;i&gt;Set Defaults:&lt;/i&gt;&lt;/b&gt; For every LPE, default values can be set at the bottom." />
+ <marker
+ style="overflow:visible"
+ id="marker1571"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1569" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1519"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#808080;fill-opacity:1;fill-rule:evenodd;stroke:#808080;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1517" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="TriangleOutM"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1364" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1571-3"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:#008000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1569-6" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="1"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.5837767"
+ inkscape:cx="93.447519"
+ inkscape:cy="158.79764"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-left="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10"
+ fit-margin-top="10" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-83.749898,32.083839)">
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 267.99475,142.84487 c 0,0 6.64406,16.59829 -7.97787,22.4135"
+ id="path1747" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutM)"
+ d="M 240.31542,146.25174 99.664523,281.78887"
+ id="path1217" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="-58.365868"
+ y="264.45288"
+ id="text1507"
+ transform="rotate(-44.465341)"><tspan
+ sodipodi:role="line"
+ id="tspan1505"
+ x="-58.365868"
+ y="264.45288"
+ style="font-size:16px">bNorm</tspan></text>
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 248.88319,138.53474 6.95145,7.30751 -8.48559,7.76245"
+ id="path1755" />
+ <path
+ style="fill:#ff0000;stroke:#ff0000;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1571)"
+ d="M 99.664523,281.78887 225.38087,273.26651"
+ id="path1567"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#008000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 245.60632,129.9363 c 0,0 31.28048,3.0901 14.41056,35.32207"
+ id="path1757" />
+ <path
+ style="fill:none;fill-opacity:1;stroke:#808080;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1519)"
+ d="M 240.31542,146.25174 375.85255,286.90265"
+ id="path1515" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="342.99881"
+ y="-76.441467"
+ id="text1559"
+ transform="rotate(45.53466)"><tspan
+ sodipodi:role="line"
+ id="tspan1557"
+ x="342.99881"
+ y="-76.441467"
+ style="font-size:16px">bNorm.ccw()</tspan></text>
+ <circle
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.89134;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path1561"
+ cx="238.05536"
+ cy="272.15973"
+ r="4.4594245" />
+ <circle
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.89134;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1563"
+ cx="273.21555"
+ cy="114.23372"
+ r="4.4594245" />
+ <circle
+ style="fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.89134;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1565"
+ cx="143.98232"
+ cy="109.09448"
+ r="4.4594245" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1645)"
+ d="M 99.664523,281.78887 264.20711,122.88773"
+ id="path1641"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#008000;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1571-3)"
+ d="M 99.664523,281.78887 141.17926,121.40511"
+ id="path1567-7"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="272.63654"
+ y="166.73859"
+ id="text1751"><tspan
+ sodipodi:role="line"
+ id="tspan1749"
+ x="272.63654"
+ y="166.73859"
+ style="font-size:16px;fill:#ff0000">θ<tspan
+ style="font-size:65%;baseline-shift:sub"
+ id="tspan1753">r</tspan></tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff"
+ x="270.05438"
+ y="136.71002"
+ id="text1769"><tspan
+ sodipodi:role="line"
+ id="tspan1767"
+ x="270.05438"
+ y="136.71002"
+ style="font-size:16px;fill:#0000ff">θ<tspan
+ style="font-size:65%;baseline-shift:sub"
+ id="tspan1771">b</tspan></tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#008000"
+ x="224.15295"
+ y="126.32184"
+ id="text1777"><tspan
+ sodipodi:role="line"
+ id="tspan1775"
+ x="224.15295"
+ y="126.32184"
+ style="font-size:16px;fill:#008000">θ<tspan
+ style="font-size:65%;baseline-shift:sub;fill:#008000"
+ id="tspan1779">g</tspan></tspan></text>
+ <path
+ style="opacity:0.5;fill:none;stroke:#0000ff;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2176)"
+ d="M 240.31542,146.25174 404.85801,-12.6494"
+ id="path2172"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="opacity:0.5;fill:none;stroke:#008000;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2206)"
+ d="M 240.31542,146.25174 281.83016,-14.13202"
+ id="path2202"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="opacity:0.5;fill:#ff0000;stroke:#ff0000;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2236)"
+ d="m 240.31542,146.25174 125.71635,-8.52236"
+ id="path2232"
+ sodipodi:nodetypes="cc" />
+ </g>
+</svg>
diff --git a/doc/livarot-images/find-point-same-opp-sweepsense.svg b/doc/livarot-images/find-point-same-opp-sweepsense.svg
new file mode 100644
index 0000000..066011a
--- /dev/null
+++ b/doc/livarot-images/find-point-same-opp-sweepsense.svg
@@ -0,0 +1,417 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="307.80222"
+ height="208.3214"
+ viewBox="0 0 307.80222 208.3214"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (d63ee585f6, 2020-08-11, custom)"
+ sodipodi:docname="find-point-same-opp-sweepsense.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <style
+ id="style1605">
+.measure-arrow
+{
+}
+.measure-label
+{
+
+}
+.measure-line
+{
+}</style>
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker2206"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path2204" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2170"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path2168" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2134"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path2132" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2074"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path2072" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1533"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1531" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1497"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1495" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1395"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1393" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1293"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1291" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1263"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1261" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1203"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1201" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1143"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1141" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1047"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1045" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1011"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1009" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1645"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1643" />
+ </marker>
+ <inkscape:path-effect
+ effect="measure_segments"
+ id="path-effect1603"
+ is_visible="true"
+ lpeversion="1"
+ unit="mm"
+ orientation="parallel"
+ coloropacity="#000000ff"
+ fontbutton="Sans 10"
+ precision="2"
+ fix_overlaps="0"
+ position="5"
+ text_top_bottom="0"
+ helpline_distance="0"
+ helpline_overlap="2"
+ line_width="0.25"
+ scale="1"
+ format="{measure}{unit}"
+ blacklist=""
+ active_projection="false"
+ whitelist="false"
+ showindex="false"
+ arrows_outside="false"
+ flip_side="false"
+ scale_sensitive="true"
+ local_locale="true"
+ rotate_anotation="true"
+ hide_back="true"
+ hide_arrows="false"
+ smallx100="false"
+ linked_items=""
+ distance_projection="20"
+ angle_projection="0"
+ avoid_overlapping="true"
+ onbbox="false"
+ bboxonly="false"
+ centers="false"
+ maxmin="false"
+ helpdata="&lt;b&gt;&lt;big&gt;General&lt;/big&gt;&lt;/b&gt; Display and position dimension lines and labels &lt;b&gt;&lt;big&gt;Projection&lt;/big&gt;&lt;/b&gt; Show a line with measurements based on the selected items &lt;b&gt;&lt;big&gt;Options&lt;/big&gt;&lt;/b&gt; Options for color, precision, label formatting and display &lt;b&gt;&lt;big&gt;Tips&lt;/big&gt;&lt;/b&gt; &lt;b&gt;&lt;i&gt;Custom styling:&lt;/i&gt;&lt;/b&gt; To further customize the styles, use the XML editor to find out the class or ID, then use the Style dialog to apply a new style. &lt;b&gt;&lt;i&gt;Blacklists:&lt;/i&gt;&lt;/b&gt; allow to hide some segments or projection steps. &lt;b&gt;&lt;i&gt;Multiple Measure LPEs:&lt;/i&gt;&lt;/b&gt; In the same object, in conjunction with blacklists,this allows for labels and measurements with different orientations or additional projections. &lt;b&gt;&lt;i&gt;Set Defaults:&lt;/i&gt;&lt;/b&gt; For every LPE, default values can be set at the bottom." />
+ <marker
+ style="overflow:visible"
+ id="marker1519"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#808080;fill-opacity:1;fill-rule:evenodd;stroke:#808080;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1517" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="TriangleOutM"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1364" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="1"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2.6577043"
+ inkscape:cx="162.5463"
+ inkscape:cy="86.728986"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-left="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10"
+ fit-margin-top="10" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-81.511939,-113.77527)">
+ <path
+ style="fill:#ff00ff;stroke:#ff00ff;stroke-width:3.26929;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1011)"
+ d="m 265.67004,240.12496 88.9392,-14.91372"
+ id="path1007"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:3.26929;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1395)"
+ d="m 265.67004,240.12496 -36.34951,-79.9144"
+ id="path1391"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutM)"
+ d="M 232.74865,270.3408 373.39954,134.80367"
+ id="path1217" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="98.04657"
+ y="371.93192"
+ id="text1507"
+ transform="rotate(-44.465341)"><tspan
+ sodipodi:role="line"
+ id="tspan1505"
+ x="98.04657"
+ y="371.93192"
+ style="font-size:16px">bNorm</tspan></text>
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 224.20549,260.95038 7.30751,-6.95146 7.76245,8.48559"
+ id="path1755" />
+ <path
+ style="fill:none;fill-opacity:1;stroke:#808080;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1519)"
+ d="M 232.74865,270.3408 97.21152,129.68989"
+ id="path1515" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="218.83685"
+ y="39.289875"
+ id="text1559"
+ transform="rotate(45.53466)"><tspan
+ sodipodi:role="line"
+ id="tspan1557"
+ x="218.83685"
+ y="39.289875"
+ style="font-size:16px">bNorm.ccw()</tspan></text>
+ <circle
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.89134;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1563"
+ cx="265.19934"
+ cy="239.61365"
+ r="4.4594245" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1645)"
+ d="m 232.74865,270.3408 23.89169,-23.36401"
+ id="path1641"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff"
+ x="217.75481"
+ y="249.06168"
+ id="text1769"><tspan
+ sodipodi:role="line"
+ id="tspan1767"
+ x="217.75481"
+ y="249.06168"
+ style="font-size:16px;fill:#0000ff">θ<tspan
+ style="font-size:65%;baseline-shift:sub"
+ id="tspan1771">b</tspan></tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:3.269;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.269, 3.269;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker2074)"
+ d="m 265.67004,240.12496 -79.9144,36.34952"
+ id="path2070"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:#ff00ff;stroke:#ff00ff;stroke-width:3.26929;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.26929, 3.26929;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker2134)"
+ d="m 265.67004,240.12496 -14.91372,-88.9392"
+ id="path2130"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="opacity:0.5;fill:none;stroke:#ff0000;stroke-width:3.269;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.269, 3.269;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker2170)"
+ d="m 232.74865,270.3408 -79.9144,36.34952"
+ id="path2166"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="opacity:0.5;fill:#ff00ff;stroke:#ff00ff;stroke-width:3.26929;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.26929, 3.26929;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker2206)"
+ d="M 232.74865,270.3408 217.83493,181.4016"
+ id="path2202"
+ sodipodi:nodetypes="cc" />
+ </g>
+</svg>
diff --git a/doc/livarot-images/find-point-same.svg b/doc/livarot-images/find-point-same.svg
new file mode 100644
index 0000000..e337c2c
--- /dev/null
+++ b/doc/livarot-images/find-point-same.svg
@@ -0,0 +1,386 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="307.80225"
+ height="208.18222"
+ viewBox="0 0 307.80225 208.18222"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (d63ee585f6, 2020-08-11, custom)"
+ sodipodi:docname="find-point-same.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <style
+ id="style1605">
+.measure-arrow
+{
+}
+.measure-label
+{
+
+}
+.measure-line
+{
+}</style>
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker1533"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1531" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1497"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1495" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1449"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1447" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1395"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1393" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1353"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1351" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1293"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1291" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1263"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1261" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1203"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1201" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1143"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1141" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1047"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1045" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1011"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1009" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1645"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1643" />
+ </marker>
+ <inkscape:path-effect
+ effect="measure_segments"
+ id="path-effect1603"
+ is_visible="true"
+ lpeversion="1"
+ unit="mm"
+ orientation="parallel"
+ coloropacity="#000000ff"
+ fontbutton="Sans 10"
+ precision="2"
+ fix_overlaps="0"
+ position="5"
+ text_top_bottom="0"
+ helpline_distance="0"
+ helpline_overlap="2"
+ line_width="0.25"
+ scale="1"
+ format="{measure}{unit}"
+ blacklist=""
+ active_projection="false"
+ whitelist="false"
+ showindex="false"
+ arrows_outside="false"
+ flip_side="false"
+ scale_sensitive="true"
+ local_locale="true"
+ rotate_anotation="true"
+ hide_back="true"
+ hide_arrows="false"
+ smallx100="false"
+ linked_items=""
+ distance_projection="20"
+ angle_projection="0"
+ avoid_overlapping="true"
+ onbbox="false"
+ bboxonly="false"
+ centers="false"
+ maxmin="false"
+ helpdata="&lt;b&gt;&lt;big&gt;General&lt;/big&gt;&lt;/b&gt; Display and position dimension lines and labels &lt;b&gt;&lt;big&gt;Projection&lt;/big&gt;&lt;/b&gt; Show a line with measurements based on the selected items &lt;b&gt;&lt;big&gt;Options&lt;/big&gt;&lt;/b&gt; Options for color, precision, label formatting and display &lt;b&gt;&lt;big&gt;Tips&lt;/big&gt;&lt;/b&gt; &lt;b&gt;&lt;i&gt;Custom styling:&lt;/i&gt;&lt;/b&gt; To further customize the styles, use the XML editor to find out the class or ID, then use the Style dialog to apply a new style. &lt;b&gt;&lt;i&gt;Blacklists:&lt;/i&gt;&lt;/b&gt; allow to hide some segments or projection steps. &lt;b&gt;&lt;i&gt;Multiple Measure LPEs:&lt;/i&gt;&lt;/b&gt; In the same object, in conjunction with blacklists,this allows for labels and measurements with different orientations or additional projections. &lt;b&gt;&lt;i&gt;Set Defaults:&lt;/i&gt;&lt;/b&gt; For every LPE, default values can be set at the bottom." />
+ <marker
+ style="overflow:visible"
+ id="marker1519"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#808080;fill-opacity:1;fill-rule:evenodd;stroke:#808080;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1517" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="TriangleOutM"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1364" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="1"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2.6577043"
+ inkscape:cx="127.17743"
+ inkscape:cy="129.99942"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-left="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10"
+ fit-margin-top="10" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-83.749898,-94.635058)">
+ <path
+ style="fill:#ff00ff;stroke:#ff00ff;stroke-width:3.26929;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1011)"
+ d="m 208.27083,177.72879 -8.95566,98.42731"
+ id="path1007" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:3.26929;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1395)"
+ d="m 208.27083,177.72879 -79.9144,36.34951"
+ id="path1391"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutM)"
+ d="M 240.31542,146.25174 99.664523,281.78887"
+ id="path1217" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="-119.34449"
+ y="266.36035"
+ id="text1507"
+ transform="rotate(-44.465341)"><tspan
+ sodipodi:role="line"
+ id="tspan1505"
+ x="-119.34449"
+ y="266.36035"
+ style="font-size:16px">bNorm</tspan></text>
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 247.54911,157.14467 -7.30751,6.95146 -7.76245,-8.48559"
+ id="path1755" />
+ <path
+ style="fill:none;fill-opacity:1;stroke:#808080;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1519)"
+ d="M 240.31542,146.25174 375.85255,286.90265"
+ id="path1515" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="356.33493"
+ y="-75.652992"
+ id="text1559"
+ transform="rotate(45.53466)"><tspan
+ sodipodi:role="line"
+ id="tspan1557"
+ x="356.33493"
+ y="-75.652992"
+ style="font-size:16px">bNorm.ccw()</tspan></text>
+ <circle
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.89134;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1563"
+ cx="207.79117"
+ cy="177.55916"
+ r="4.4594245" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1645)"
+ d="m 240.31542,146.25174 -23.89169,23.36401"
+ id="path1641"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff"
+ x="228.36461"
+ y="173.38316"
+ id="text1769"><tspan
+ sodipodi:role="line"
+ id="tspan1767"
+ x="228.36461"
+ y="173.38316"
+ style="font-size:16px;fill:#0000ff">θ<tspan
+ style="font-size:65%;baseline-shift:sub"
+ id="tspan1771">b</tspan></tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:3.26929;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.26929, 3.26929;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker1449)"
+ d="m 208.27083,177.72879 36.34951,79.9144"
+ id="path1445"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:#ff00ff;stroke:#ff00ff;stroke-width:3.26929;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.26929, 3.26929;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker1353)"
+ d="m 208.27083,177.72879 98.4273,8.95566"
+ id="path1349" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:3.26929;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.26929, 3.26928999999999981;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker1497);opacity:0.5"
+ d="m 240.31542,146.25174 36.34951,79.9144"
+ id="path1493"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:#ff00ff;stroke:#ff00ff;stroke-width:3.26929;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.26929, 3.26928999999999981;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker1533);opacity:0.5"
+ d="m 240.31542,146.25174 98.4273,8.95566"
+ id="path1529" />
+ </g>
+</svg>
diff --git a/doc/livarot-images/find-point.svg b/doc/livarot-images/find-point.svg
new file mode 100644
index 0000000..ba7ea2e
--- /dev/null
+++ b/doc/livarot-images/find-point.svg
@@ -0,0 +1,299 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="307.80225"
+ height="208.18222"
+ viewBox="0 0 307.80225 208.18222"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (d63ee585f6, 2020-08-11, custom)"
+ sodipodi:docname="find-point.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <style
+ id="style1605">
+.measure-arrow
+{
+}
+.measure-label
+{
+
+}
+.measure-line
+{
+}</style>
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker1645"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1643" />
+ </marker>
+ <inkscape:path-effect
+ effect="measure_segments"
+ id="path-effect1603"
+ is_visible="true"
+ lpeversion="1"
+ unit="mm"
+ orientation="parallel"
+ coloropacity="#000000ff"
+ fontbutton="Sans 10"
+ precision="2"
+ fix_overlaps="0"
+ position="5"
+ text_top_bottom="0"
+ helpline_distance="0"
+ helpline_overlap="2"
+ line_width="0.25"
+ scale="1"
+ format="{measure}{unit}"
+ blacklist=""
+ active_projection="false"
+ whitelist="false"
+ showindex="false"
+ arrows_outside="false"
+ flip_side="false"
+ scale_sensitive="true"
+ local_locale="true"
+ rotate_anotation="true"
+ hide_back="true"
+ hide_arrows="false"
+ smallx100="false"
+ linked_items=""
+ distance_projection="20"
+ angle_projection="0"
+ avoid_overlapping="true"
+ onbbox="false"
+ bboxonly="false"
+ centers="false"
+ maxmin="false"
+ helpdata="&lt;b&gt;&lt;big&gt;General&lt;/big&gt;&lt;/b&gt;
+Display and position dimension lines and labels
+
+&lt;b&gt;&lt;big&gt;Projection&lt;/big&gt;&lt;/b&gt;
+Show a line with measurements based on the selected items
+
+&lt;b&gt;&lt;big&gt;Options&lt;/big&gt;&lt;/b&gt;
+Options for color, precision, label formatting and display
+
+&lt;b&gt;&lt;big&gt;Tips&lt;/big&gt;&lt;/b&gt;
+&lt;b&gt;&lt;i&gt;Custom styling:&lt;/i&gt;&lt;/b&gt; To further customize the styles, use the XML editor to find out the class or ID, then use the Style dialog to apply a new style.
+&lt;b&gt;&lt;i&gt;Blacklists:&lt;/i&gt;&lt;/b&gt; allow to hide some segments or projection steps.
+&lt;b&gt;&lt;i&gt;Multiple Measure LPEs:&lt;/i&gt;&lt;/b&gt; In the same object, in conjunction with blacklists,this allows for labels and measurements with different orientations or additional projections.
+&lt;b&gt;&lt;i&gt;Set Defaults:&lt;/i&gt;&lt;/b&gt; For every LPE, default values can be set at the bottom." />
+ <marker
+ style="overflow:visible"
+ id="marker1571"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1569" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1519"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#808080;fill-opacity:1;fill-rule:evenodd;stroke:#808080;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1517" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="TriangleOutM"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1364" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1571-3"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:#008000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1569-6" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="1"
+ inkscape:pageshadow="2"
+ inkscape:zoom="10.630817"
+ inkscape:cx="146.46099"
+ inkscape:cy="64.952676"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-left="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10"
+ fit-margin-top="10" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-83.749898,-94.635058)">
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 263.61025,169.95772 c 0,0 -10.66367,14.35036 -23.27317,4.93666"
+ id="path1747" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutM)"
+ d="M 240.31542,146.25174 99.664523,281.78887"
+ id="path1217" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="-58.365868"
+ y="264.45288"
+ id="text1507"
+ transform="rotate(-44.465341)"><tspan
+ sodipodi:role="line"
+ id="tspan1505"
+ x="-58.365868"
+ y="264.45288"
+ style="font-size:16px">bNorm</tspan></text>
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 248.88319,138.53474 6.95145,7.30751 -8.48559,7.76245"
+ id="path1755" />
+ <path
+ style="fill:#ff0000;stroke:#ff0000;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1571)"
+ d="m 240.31542,146.25174 -1.58368,114.30611"
+ id="path1567"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#008000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 253.37421,160.24635 c 0,0 -27.56623,15.10365 -31.83159,-21.02529"
+ id="path1757" />
+ <path
+ style="fill:none;fill-opacity:1;stroke:#808080;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1519)"
+ d="M 240.31542,146.25174 375.85255,286.90265"
+ id="path1515" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="342.99881"
+ y="-76.441467"
+ id="text1559"
+ transform="rotate(45.53466)"><tspan
+ sodipodi:role="line"
+ id="tspan1557"
+ x="342.99881"
+ y="-76.441467"
+ style="font-size:16px">bNorm.ccw()</tspan></text>
+ <circle
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.89134;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path1561"
+ cx="238.05536"
+ cy="272.15973"
+ r="4.4594245" />
+ <circle
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.89134;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1563"
+ cx="273.21555"
+ cy="114.23372"
+ r="4.4594245" />
+ <circle
+ style="fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.89134;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1565"
+ cx="143.98232"
+ cy="109.09448"
+ r="4.4594245" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1645)"
+ d="m 240.31542,146.25174 23.89169,-23.36401"
+ id="path1641"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#008000;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1571-3)"
+ d="M 240.31542,146.25174 155.53223,113.45785"
+ id="path1567-7"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="251.02913"
+ y="192.64919"
+ id="text1751"><tspan
+ sodipodi:role="line"
+ id="tspan1749"
+ x="251.02913"
+ y="192.64919"
+ style="font-size:16px;fill:#ff0000">θ<tspan
+ style="font-size:65%;baseline-shift:sub"
+ id="tspan1753">r</tspan></tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff"
+ x="257.61835"
+ y="153.61459"
+ id="text1769"><tspan
+ sodipodi:role="line"
+ id="tspan1767"
+ x="257.61835"
+ y="153.61459"
+ style="font-size:16px;fill:#0000ff">θ<tspan
+ style="font-size:65%;baseline-shift:sub"
+ id="tspan1771">b</tspan></tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#008000"
+ x="206.59474"
+ y="153.46944"
+ id="text1777"><tspan
+ sodipodi:role="line"
+ id="tspan1775"
+ x="206.59474"
+ y="153.46944"
+ style="font-size:16px;fill:#008000">θ<tspan
+ style="font-size:65%;baseline-shift:sub;fill:#008000"
+ id="tspan1779">g</tspan></tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/intersection-cross-product.svg b/doc/livarot-images/intersection-cross-product.svg
new file mode 100644
index 0000000..b2004db
--- /dev/null
+++ b/doc/livarot-images/intersection-cross-product.svg
@@ -0,0 +1,443 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="500"
+ height="700"
+ viewBox="0 0 500.00001 700"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (6f52e792f5, 2020-08-23, custom)"
+ sodipodi:docname="intersection-cross-product.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker1557"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1555" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1499"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1497" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1489"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1487" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1347"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1345" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1231"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1229" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1159"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1157" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1149"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1147" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1091"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1089" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1033"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1031" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1023"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1021" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker933"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path931" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker903"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path901" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker847"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path845" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1121"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.7070136"
+ inkscape:cx="185.70443"
+ inkscape:cy="463.67527"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000.0005px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1121)"
+ d="M 40.376023,51.195578 184.68385,195.50341"
+ id="path829" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker847)"
+ d="M 186.94302,51.087771 42.635185,195.39561"
+ id="path843" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="27.279669"
+ y="45.689095"
+ id="text875"><tspan
+ sodipodi:role="line"
+ id="tspan873"
+ x="27.279669"
+ y="45.689095">left</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="174.84354"
+ y="39.357662"
+ id="text879"><tspan
+ sodipodi:role="line"
+ id="tspan877"
+ x="174.84354"
+ y="39.357662">right</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.860571px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker903)"
+ d="M 361.95404,61.714577 486.14115,185.90169"
+ id="path899" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.860571px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker933)"
+ d="M 361.95404,61.714577 237.76692,185.9017"
+ id="path929" />
+ <text
+ xml:space="preserve"
+ style="font-size:13.7691px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.860571"
+ x="428.63852"
+ y="123.67144"
+ id="text967"><tspan
+ sodipodi:role="line"
+ id="tspan965"
+ x="428.63852"
+ y="123.67144"
+ style="stroke-width:0.860571">left</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:13.7691px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.860571"
+ x="267.50607"
+ y="120.33862"
+ id="text971"><tspan
+ sodipodi:role="line"
+ id="tspan969"
+ x="267.50607"
+ y="120.33862"
+ style="stroke-width:0.860571">right</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1033)"
+ d="M 31.562822,248.05474 175.87065,392.36257"
+ id="path1009" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1023)"
+ d="M 178.12982,247.94693 33.821984,392.25477"
+ id="path1011" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="168.3092"
+ y="239.50467"
+ id="text1015"><tspan
+ sodipodi:role="line"
+ id="tspan1013"
+ x="168.3092"
+ y="239.50467">left</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="13.953851"
+ y="240.20125"
+ id="text1019"><tspan
+ sodipodi:role="line"
+ id="tspan1017"
+ x="13.953851"
+ y="240.20125">right</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.860571px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1159)"
+ d="M 353.68417,264.68996 477.87128,388.87707"
+ id="path1135" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.860571px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1149)"
+ d="M 353.68417,264.68996 229.49705,388.87708"
+ id="path1137" />
+ <text
+ xml:space="preserve"
+ style="font-size:13.7691px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.860571"
+ x="261.2811"
+ y="322.17184"
+ id="text1141"><tspan
+ sodipodi:role="line"
+ id="tspan1139"
+ x="261.2811"
+ y="322.17184"
+ style="stroke-width:0.860571">left</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:13.7691px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.860571"
+ x="413.39346"
+ y="319.2049"
+ id="text1145"><tspan
+ sodipodi:role="line"
+ id="tspan1143"
+ x="413.39346"
+ y="319.2049"
+ style="stroke-width:0.860571">right</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="304.15286"
+ y="29.0243"
+ id="text1193"><tspan
+ sodipodi:role="line"
+ id="tspan1191"
+ x="304.15286"
+ y="29.0243">cross(ldir, rdir);</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1231);paint-order:normal"
+ d="m 390.02678,90.544454 c 0,0 -25.46234,33.475456 -54.15233,0.04604"
+ id="path1227"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1347)"
+ d="m 326.30728,291.97517 c 0,0 20.78023,28.33579 51.3341,-0.47436"
+ id="path1343"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:12.5877px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.786733"
+ x="301.95645"
+ y="141.09514"
+ id="text1385"><tspan
+ sodipodi:role="line"
+ id="tspan1383"
+ x="301.95645"
+ y="141.09514"
+ style="stroke-width:0.786733">cross(ldir, rdir) &gt; 0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.5877px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.786733"
+ x="289.08221"
+ y="359.32712"
+ id="text1389"><tspan
+ sodipodi:role="line"
+ id="tspan1387"
+ x="289.08221"
+ y="359.32712"
+ style="stroke-width:0.786733">cross(ldir, rdir) &lt; 0</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1499)"
+ d="M 33.412499,452.06889 177.72033,596.37672"
+ id="path1479" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="56.942776"
+ y="522.93726"
+ id="text1485"><tspan
+ sodipodi:role="line"
+ id="tspan1483"
+ x="56.942776"
+ y="522.93726">left</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="139.73827"
+ y="506.14304"
+ id="text1539"><tspan
+ sodipodi:role="line"
+ id="tspan1537"
+ x="139.73827"
+ y="506.14304">right</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1557)"
+ d="M 43.272694,443.14263 187.58052,587.45046"
+ id="path1553" />
+ <text
+ xml:space="preserve"
+ style="font-size:12.5877px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.786733"
+ x="292.02301"
+ y="537.99573"
+ id="text1585"><tspan
+ sodipodi:role="line"
+ id="tspan1583"
+ x="292.02301"
+ y="537.99573"
+ style="stroke-width:0.786733">cross(ldir, rdir) = 0</tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/intersection-cross-products.svg b/doc/livarot-images/intersection-cross-products.svg
new file mode 100644
index 0000000..66fff08
--- /dev/null
+++ b/doc/livarot-images/intersection-cross-products.svg
@@ -0,0 +1,373 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="445.25089"
+ height="357.09039"
+ viewBox="0 0 445.25089 357.09039"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (6f52e792f5, 2020-08-23, custom)"
+ sodipodi:docname="intersection-cross-products.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker1503"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1501" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1461"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#000080;fill-opacity:1;fill-rule:evenodd;stroke:#000080;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1459" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1427"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1425" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow1Mend"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:#008000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1142" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1119"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1117" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1097"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1095" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1063"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000080;fill-opacity:1;fill-rule:evenodd;stroke:#000080;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1061" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1025"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1023" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker951"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:#008000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path949" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker941"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path939" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker871"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path869" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1121"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="408"
+ inkscape:cy="330.5"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="false"
+ fit-margin-top="10"
+ fit-margin-left="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-28.419477,-56.383514)">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.30108;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1121)"
+ d="M 93.063111,88.297429 405.71371,400.94806"
+ id="path829" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.30108;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker871)"
+ d="M 406.50688,87.557219 93.856281,400.20785"
+ id="path867" />
+ <text
+ xml:space="preserve"
+ style="font-size:20.8173px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:1.30108"
+ x="144.9722"
+ y="193.51253"
+ id="text909"><tspan
+ sodipodi:role="line"
+ id="tspan907"
+ x="144.9722"
+ y="193.51253"
+ style="stroke-width:1.30108">left</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:20.8173px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:1.30108"
+ x="317.59818"
+ y="190.99515"
+ id="text913"><tspan
+ sodipodi:role="line"
+ id="tspan911"
+ x="317.59818"
+ y="190.99515"
+ style="stroke-width:1.30108">right</tspan></text>
+ <path
+ style="fill:none;stroke:#008000;stroke-width:1.30108px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker951)"
+ d="M 406.50688,87.557219 93.063111,88.297429"
+ id="path995" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1.30108px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1025)"
+ d="M 406.50688,87.557219 405.71371,400.94806"
+ id="path1021" />
+ <text
+ xml:space="preserve"
+ style="font-size:20.8173px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#008000;stroke-width:1.30108"
+ x="238.57541"
+ y="82.199783"
+ id="text1047"><tspan
+ sodipodi:role="line"
+ id="tspan1045"
+ x="238.57541"
+ y="82.199783"
+ style="stroke-width:1.30108">sdiff1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:20.8173px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:1.30108"
+ x="413.12622"
+ y="252.7749"
+ id="text1051"><tspan
+ sodipodi:role="line"
+ id="tspan1049"
+ x="413.12622"
+ y="252.7749"
+ style="stroke-width:1.30108">ediff1</tspan></text>
+ <path
+ style="fill:none;stroke:#000080;stroke-width:1.30108px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1063)"
+ d="m 93.063111,86.817009 313.443769,0.74021"
+ id="path1059" />
+ <text
+ xml:space="preserve"
+ style="font-size:20.8173px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000080;stroke:none;stroke-width:1.30108"
+ x="238.3334"
+ y="108.95457"
+ id="text1091"><tspan
+ sodipodi:role="line"
+ id="tspan1089"
+ x="238.3334"
+ y="108.95457"
+ style="stroke-width:1.30108">sdiff2</tspan></text>
+ <path
+ style="fill:none;stroke:#ff00ff;stroke-width:1.30108px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1097)"
+ d="m 93.063111,86.817009 0.79317,313.390841"
+ id="path1093" />
+ <text
+ xml:space="preserve"
+ style="font-size:20.8173px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff00ff;stroke-width:1.30108"
+ x="33.270866"
+ y="248.48138"
+ id="text1113"><tspan
+ sodipodi:role="line"
+ id="tspan1111"
+ x="33.270866"
+ y="248.48138"
+ style="stroke-width:1.30108">ediff2</tspan></text>
+ <path
+ style="fill:none;stroke:#008000;stroke-width:1.30108px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
+ d="m 370.3101,124.92022 c 0,0 -30.07994,-6.6184 -24.16392,-37.112011"
+ id="path1115" />
+ <text
+ xml:space="preserve"
+ style="font-size:11.4862px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#008000;stroke-width:0.717889"
+ x="318.56375"
+ y="122.53162"
+ id="text1421"><tspan
+ sodipodi:role="line"
+ id="tspan1419"
+ x="318.56375"
+ y="122.53162"
+ style="stroke-width:0.717889">srDot</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1.30108px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1427)"
+ d="m 370.3101,124.92022 c 0,0 14.56784,23.53419 36.68947,13.21591"
+ id="path1423" />
+ <text
+ xml:space="preserve"
+ style="font-size:11.4862px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.717889"
+ x="364.55103"
+ y="153.52997"
+ id="text1449"><tspan
+ sodipodi:role="line"
+ id="tspan1447"
+ x="364.55103"
+ y="153.52997"
+ style="fill:#ff0000;stroke-width:0.717889">erDot</tspan></text>
+ <path
+ style="fill:none;stroke:#000080;stroke-width:1.30108px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1461)"
+ d="m 130.61307,126.17116 c 0,0 23.53418,-14.56785 13.2159,-36.689471"
+ id="path1457" />
+ <path
+ style="fill:none;stroke:#ff00ff;stroke-width:1.30108px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1503)"
+ d="m 130.61307,126.17116 c 0,0 -6.61841,30.07994 -37.112019,24.16392"
+ id="path1499" />
+ <text
+ xml:space="preserve"
+ style="font-size:11.4862px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000080;stroke-width:0.717889"
+ x="151.19702"
+ y="125.0546"
+ id="text1537"><tspan
+ sodipodi:role="line"
+ id="tspan1535"
+ x="151.19702"
+ y="125.0546"
+ style="fill:#000080;stroke-width:0.717889">slDot</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11.4862px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff00ff;stroke-width:0.717889"
+ x="111.54098"
+ y="163.82812"
+ id="text1541"><tspan
+ sodipodi:role="line"
+ id="tspan1539"
+ x="111.54098"
+ y="163.82812"
+ style="fill:#ff00ff;stroke-width:0.717889">elDot</tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/intersection-point-calculation.svg b/doc/livarot-images/intersection-point-calculation.svg
new file mode 100644
index 0000000..d52f533
--- /dev/null
+++ b/doc/livarot-images/intersection-point-calculation.svg
@@ -0,0 +1,1473 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="648.50635"
+ height="939.43402"
+ viewBox="0 0 648.50635 939.43402"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (e41a0c7bf5, 2020-08-24, custom)"
+ sodipodi:docname="intersection-point-calculation.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker3383"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path3381" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker3319"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path3317" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker3173"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path3171" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker3163"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path3161" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker3153"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path3151" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker3143"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path3141" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker3133"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path3131" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker3123"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path3121" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2981"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2979" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2923"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2921" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2789"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2787" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2779"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2777" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2769"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2767" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2759"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2757" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2749"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2747" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2739"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2737" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2291"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2289" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2281"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2279" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2271"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2269" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2261"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2259" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2251"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2249" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2241"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2239" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2099"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2097" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1873"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1871" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1863"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1861" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1853"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1851" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1843"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1841" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1833"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1831" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1823"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1821" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1703"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1701" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1509"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1507" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1499"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1497" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1489"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1487" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1479"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1477" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1469"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1467" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1459"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1457" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1299"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1297" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1275"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1273" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow1Mend"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path988" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker919"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path917" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker889"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path887" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker851"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path849" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1121"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.59005547"
+ inkscape:cx="106.76962"
+ inkscape:cy="509.27416"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="false"
+ fit-margin-top="10"
+ fit-margin-left="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-22.043676,-14.197386)">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1121)"
+ d="M 135.16769,56.686072 196.0682,294.44534"
+ id="path829" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="185.42911"
+ y="234.72577"
+ id="text845"><tspan
+ sodipodi:role="line"
+ id="tspan843"
+ x="185.42911"
+ y="234.72577">left</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker851)"
+ d="M 293.03344,81.589571 58.271003,267.0276"
+ id="path847" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="230.39577"
+ y="146.69347"
+ id="text867"><tspan
+ sodipodi:role="line"
+ id="tspan865"
+ x="230.39577"
+ y="146.69347">right</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker889)"
+ d="M 135.16769,56.686072 293.03344,81.589571"
+ id="path885" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker919)"
+ d="M 135.16769,56.686072 58.271003,267.0276"
+ id="path915" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke:none"
+ x="198.6951"
+ y="64.560463"
+ id="text935"><tspan
+ sodipodi:role="line"
+ id="tspan933"
+ x="198.6951"
+ y="64.560463">sl</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff"
+ x="79.493889"
+ y="153.75989"
+ id="text939"><tspan
+ sodipodi:role="line"
+ id="tspan937"
+ x="79.493889"
+ y="153.75989">el</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
+ d="m 142.09143,84.020601 c 0,0 14.51945,1.80683 23.00678,-20.183239"
+ id="path977"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1299)"
+ d="m 142.09143,84.020601 c 0,0 -6.1903,8.60689 -15.96596,4.08512"
+ id="path1295"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.746963"
+ x="159.90778"
+ y="89.113739"
+ id="text1333"><tspan
+ sodipodi:role="line"
+ id="tspan1331"
+ x="159.90778"
+ y="89.113739"
+ style="fill:#ff0000;stroke-width:0.746963">θ<tspan
+ style="font-size:7.76841px;baseline-shift:sub;fill:#ff0000;stroke-width:0.746963"
+ id="tspan1335">sl</tspan></tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;stroke-width:0.746963"
+ x="126.4185"
+ y="104.74226"
+ id="text1341"><tspan
+ sodipodi:role="line"
+ id="tspan1339"
+ x="126.4185"
+ y="104.74226"
+ style="fill:#0000ff;stroke-width:0.746963">θ<tspan
+ style="font-size:65%;baseline-shift:sub;fill:#0000ff"
+ id="tspan1343">el</tspan></tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1509)"
+ d="M 555.72436,55.765056 538.48422,278.20039"
+ id="path1417"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="448.40778"
+ y="141.83841"
+ id="text1421"><tspan
+ sodipodi:role="line"
+ id="tspan1419"
+ x="448.40778"
+ y="141.83841">left</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1499)"
+ d="M 435.31866,95.249185 659.02551,271.62511"
+ id="path1423"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="550.3689"
+ y="156.31856"
+ id="text1427"><tspan
+ sodipodi:role="line"
+ id="tspan1425"
+ x="550.3689"
+ y="156.31856">right</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1489)"
+ d="M 555.72436,55.765056 659.02551,271.62511"
+ id="path1429"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1479)"
+ d="M 555.72436,55.765056 435.31866,95.249185"
+ id="path1431"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke:none"
+ x="613.67993"
+ y="161.7193"
+ id="text1435"><tspan
+ sodipodi:role="line"
+ id="tspan1433"
+ x="613.67993"
+ y="161.7193">er</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff"
+ x="482.22571"
+ y="71.412544"
+ id="text1439"><tspan
+ sodipodi:role="line"
+ id="tspan1437"
+ x="482.22571"
+ y="71.412544">sr</tspan></text>
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1469)"
+ d="m 553.31786,87.823815 c 0,0 -26.42952,2.62275 -25.4053,-20.504977"
+ id="path1673"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1703)"
+ d="m 553.31786,87.823815 c 0,0 6.44571,7.42495 15.41911,0.0755"
+ id="path1699"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;stroke-width:0.746963"
+ x="522.59601"
+ y="93.852287"
+ id="text1733"><tspan
+ sodipodi:role="line"
+ id="tspan1731"
+ x="522.59601"
+ y="93.852287"
+ style="fill:#0000ff;stroke-width:0.746963">θ<tspan
+ style="font-size:65%;baseline-shift:sub"
+ id="tspan1735">sr</tspan></tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.746963"
+ x="557.55469"
+ y="106.46495"
+ id="text1741"><tspan
+ sodipodi:role="line"
+ id="tspan1739"
+ x="557.55469"
+ y="106.46495"
+ style="fill:#ff0000;stroke-width:0.746963">θ<tspan
+ style="font-size:65%;baseline-shift:sub;fill:#ff0000"
+ id="tspan1743">er</tspan></tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1873)"
+ d="m 148.06507,384.08974 60.90051,237.75927"
+ id="path1781" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="198.32649"
+ y="562.12946"
+ id="text1785"><tspan
+ sodipodi:role="line"
+ id="tspan1783"
+ x="198.32649"
+ y="562.12946">left</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1863)"
+ d="M 305.93082,408.99324 71.168384,594.43127"
+ id="path1787" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="243.29315"
+ y="474.09714"
+ id="text1791"><tspan
+ sodipodi:role="line"
+ id="tspan1789"
+ x="243.29315"
+ y="474.09714">right</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1853)"
+ d="m 148.06507,384.08974 157.86575,24.9035"
+ id="path1793" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1843)"
+ d="M 148.06507,384.08974 71.168384,594.43127"
+ id="path1795" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke:none"
+ x="211.59248"
+ y="391.96414"
+ id="text1799"><tspan
+ sodipodi:role="line"
+ id="tspan1797"
+ x="211.59248"
+ y="391.96414">sl</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff"
+ x="92.391266"
+ y="481.16354"
+ id="text1803"><tspan
+ sodipodi:role="line"
+ id="tspan1801"
+ x="92.391266"
+ y="481.16354">el</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1833)"
+ d="m 154.98881,411.42427 c 0,0 14.51945,1.80683 23.00678,-20.18324"
+ id="path1805"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1823)"
+ d="m 154.98881,411.42427 c 0,0 -6.1903,8.60689 -15.96596,4.08512"
+ id="path1807"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.746963"
+ x="172.80516"
+ y="416.5174"
+ id="text1813"><tspan
+ sodipodi:role="line"
+ id="tspan1811"
+ x="172.80516"
+ y="416.5174"
+ style="fill:#ff0000;stroke-width:0.746963">θ<tspan
+ style="font-size:7.76841px;baseline-shift:sub;fill:#ff0000;stroke-width:0.746963"
+ id="tspan1809">sl</tspan></tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;stroke-width:0.746963"
+ x="139.31589"
+ y="432.14594"
+ id="text1819"><tspan
+ sodipodi:role="line"
+ id="tspan1817"
+ x="139.31589"
+ y="432.14594"
+ style="fill:#0000ff;stroke-width:0.746963">θ<tspan
+ style="font-size:65%;baseline-shift:sub;fill:#0000ff"
+ id="tspan1815">el</tspan></tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 163.75575,445.79773 303.57298,409.63644"
+ id="path1995"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 193.56436,561.78721 71.168384,594.43127"
+ id="path2043"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;stroke-width:0.746963"
+ x="-10.587813"
+ y="607.22388"
+ id="text2129"
+ transform="rotate(-11.92579)"><tspan
+ sodipodi:role="line"
+ id="tspan2127"
+ x="-10.587813"
+ y="607.22388"
+ style="fill:#0000ff;stroke-width:0.746963">elsin(θ<tspan
+ style="font-size:65%;baseline-shift:sub"
+ id="tspan2131">el</tspan>)</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.746963"
+ x="69.625122"
+ y="487.75339"
+ id="text2137"
+ transform="rotate(-15.943369)"><tspan
+ sodipodi:role="line"
+ id="tspan2135"
+ x="69.625122"
+ y="487.75339"
+ style="fill:#ff0000;stroke-width:0.746963">slsin(θ<tspan
+ style="font-size:65%;baseline-shift:sub"
+ id="tspan2141">sl</tspan>)</tspan></text>
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 163.75575,445.79773 41.359774,478.44179"
+ id="path2143"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2291)"
+ d="M 496.48889,385.98564 557.3894,623.74491"
+ id="path2181" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="546.75031"
+ y="564.02533"
+ id="text2185"><tspan
+ sodipodi:role="line"
+ id="tspan2183"
+ x="546.75031"
+ y="564.02533">left</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2281)"
+ d="M 654.35464,410.88914 489.25291,533.09623"
+ id="path2187"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="591.71692"
+ y="475.99301"
+ id="text2191"><tspan
+ sodipodi:role="line"
+ id="tspan2189"
+ x="591.71692"
+ y="475.99301">right</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2271)"
+ d="m 496.48889,385.98564 157.86575,24.9035"
+ id="path2193" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2261)"
+ d="m 496.48889,385.98564 -7.23598,147.11059"
+ id="path2195"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke:none"
+ x="560.0163"
+ y="393.86002"
+ id="text2199"><tspan
+ sodipodi:role="line"
+ id="tspan2197"
+ x="560.0163"
+ y="393.86002">sl</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff"
+ x="473.11127"
+ y="477.11063"
+ id="text2203"><tspan
+ sodipodi:role="line"
+ id="tspan2201"
+ x="473.11127"
+ y="477.11063">el</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2251)"
+ d="m 503.41263,413.32017 c 0,0 14.51945,1.80683 23.00678,-20.18324"
+ id="path2205"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2241)"
+ d="m 503.41263,413.32017 c 0,0 2.39249,9.48133 -7.38317,4.95956"
+ id="path2207"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.746963"
+ x="521.22894"
+ y="418.41327"
+ id="text2213"><tspan
+ sodipodi:role="line"
+ id="tspan2211"
+ x="521.22894"
+ y="418.41327"
+ style="fill:#ff0000;stroke-width:0.746963">θ<tspan
+ style="font-size:7.76841px;baseline-shift:sub;fill:#ff0000;stroke-width:0.746963"
+ id="tspan2209">sl</tspan></tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;stroke-width:0.746963"
+ x="495.46582"
+ y="446.24545"
+ id="text2219"><tspan
+ sodipodi:role="line"
+ id="tspan2217"
+ x="495.46582"
+ y="446.24545"
+ style="fill:#0000ff;stroke-width:0.746963">θ<tspan
+ style="font-size:65%;baseline-shift:sub;fill:#0000ff"
+ id="tspan2215">el</tspan></tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 512.17957,447.69363 651.9968,411.53234"
+ id="path2221"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 532.14415,522.28889 -42.89124,10.80734"
+ id="path2223"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;stroke-width:0.746963"
+ x="358.86017"
+ y="638.76202"
+ id="text2229"
+ transform="rotate(-11.92579)"><tspan
+ sodipodi:role="line"
+ id="tspan2227"
+ x="358.86017"
+ y="638.76202"
+ style="fill:#0000ff;stroke-width:0.746963">elsin(θ<tspan
+ style="font-size:65%;baseline-shift:sub"
+ id="tspan2225">el</tspan>)</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.746963"
+ x="404.12558"
+ y="585.28394"
+ id="text2235"
+ transform="rotate(-15.943369)"><tspan
+ sodipodi:role="line"
+ id="tspan2233"
+ x="404.12558"
+ y="585.28394"
+ style="fill:#ff0000;stroke-width:0.746963">slsin(θ<tspan
+ style="font-size:65%;baseline-shift:sub"
+ id="tspan2231">sl</tspan>)</tspan></text>
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 512.17957,447.69363 -42.89124,10.80734"
+ id="path2425"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2789)"
+ d="m 151.07875,697.80999 60.90051,237.75927"
+ id="path2679" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="138.66779"
+ y="765.84698"
+ id="text2683"><tspan
+ sodipodi:role="line"
+ id="tspan2681"
+ x="138.66779"
+ y="765.84698">left</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2779)"
+ d="M 308.9445,722.71349 74.182065,908.15152"
+ id="path2685" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="87.225952"
+ y="865.48138"
+ id="text2689"><tspan
+ sodipodi:role="line"
+ id="tspan2687"
+ x="87.225952"
+ y="865.48138">right</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2769)"
+ d="M 308.9445,722.71349 211.97926,935.56926"
+ id="path2691"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2759)"
+ d="M 308.9445,722.71349 151.07875,697.80999"
+ id="path2693"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke:none"
+ x="272.24536"
+ y="832.289"
+ id="text2697"><tspan
+ sodipodi:role="line"
+ id="tspan2695"
+ x="272.24536"
+ y="832.289">er</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff"
+ x="217.12143"
+ y="704.2002"
+ id="text2701"><tspan
+ sodipodi:role="line"
+ id="tspan2699"
+ x="217.12143"
+ y="704.2002">sr</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.746963"
+ x="268.44763"
+ y="769.25641"
+ id="text2711"><tspan
+ sodipodi:role="line"
+ id="tspan2709"
+ x="268.44763"
+ y="769.25641"
+ style="fill:#ff0000;stroke-width:0.746963">θ<tspan
+ style="font-size:65%;baseline-shift:sub"
+ id="tspan2969">er</tspan></tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;stroke-width:0.746963"
+ x="255.62274"
+ y="737.24817"
+ id="text2717"><tspan
+ sodipodi:role="line"
+ id="tspan2715"
+ x="255.62274"
+ y="737.24817"
+ style="fill:#0000ff;stroke-width:0.746963">θ<tspan
+ style="font-size:65%;baseline-shift:sub"
+ id="tspan2967">sr</tspan></tspan></text>
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2749)"
+ d="m 281.64851,744.21016 c 0,0 -18.3076,-9.79274 -6.56203,-24.96139"
+ id="path2911"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2923)"
+ d="m 281.64851,744.21016 c 0,0 -7.26638,14.11109 8.4247,15.05009"
+ id="path2919"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 144.96677,852.44629 67.01249,83.12297"
+ id="path2977"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 151.07875,697.80999 72.55876,91.45786"
+ id="path3007"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;stroke-width:0.746963"
+ x="673.98969"
+ y="333.04694"
+ id="text3013"
+ transform="rotate(49.85623)"><tspan
+ sodipodi:role="line"
+ id="tspan3011"
+ x="673.98969"
+ y="333.04694"
+ style="fill:#0000ff;stroke-width:0.746963">srsin(θ<tspan
+ style="font-size:65%;baseline-shift:sub"
+ id="tspan3015">sr</tspan>)</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.746963"
+ x="801.20343"
+ y="389.59534"
+ id="text3021"
+ transform="rotate(54.217931)"><tspan
+ sodipodi:role="line"
+ id="tspan3019"
+ x="801.20343"
+ y="389.59534"
+ style="fill:#ff0000;stroke-width:0.746963">ersin(θ<tspan
+ style="font-size:65%;baseline-shift:sub"
+ id="tspan3023">er</tspan>)</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 223.63751,789.26785 290.65,872.39082"
+ id="path3025"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker3173)"
+ d="m 495.48037,703.99148 60.90051,237.75927"
+ id="path3063" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="484.33508"
+ y="780.65839"
+ id="text3067"><tspan
+ sodipodi:role="line"
+ id="tspan3065"
+ x="484.33508"
+ y="780.65839">left</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker3163)"
+ d="M 653.34612,728.89498 488.24439,851.10207"
+ id="path3069"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="575.08008"
+ y="799.73828"
+ id="text3073"><tspan
+ sodipodi:role="line"
+ id="tspan3071"
+ x="575.08008"
+ y="799.73828">right</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker3153)"
+ d="M 653.34612,728.89498 556.38088,941.75075"
+ id="path3075"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker3143)"
+ d="M 653.34612,728.89498 495.48037,703.99148"
+ id="path3077"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke:none"
+ x="617.52051"
+ y="845.56146"
+ id="text3081"><tspan
+ sodipodi:role="line"
+ id="tspan3079"
+ x="617.52051"
+ y="845.56146">er</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff"
+ x="569.09357"
+ y="709.5929"
+ id="text3085"><tspan
+ sodipodi:role="line"
+ id="tspan3083"
+ x="569.09357"
+ y="709.5929">sr</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;stroke-width:0.746963"
+ x="595.19434"
+ y="747.26141"
+ id="text3095"><tspan
+ sodipodi:role="line"
+ id="tspan3093"
+ x="595.19434"
+ y="747.26141"
+ style="fill:#0000ff;stroke-width:0.746963">θ<tspan
+ style="font-size:65%;baseline-shift:sub;fill:#0000ff"
+ id="tspan3339">sr</tspan></tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.746963"
+ x="612.15448"
+ y="773.90698"
+ id="text3101"><tspan
+ sodipodi:role="line"
+ id="tspan3099"
+ x="612.15448"
+ y="773.90698"
+ style="fill:#ff0000;stroke-width:0.746963">θ<tspan
+ style="font-size:65%;baseline-shift:sub;fill:#ff0000"
+ id="tspan3341">er</tspan></tspan></text>
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker3133)"
+ d="m 621.96485,752.41567 c 0,0 -18.95544,-7.75067 -6.38961,-27.19956"
+ id="path3307"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker3319)"
+ d="m 621.96485,752.41567 c 0,0 -1.29219,14.56104 14.97198,11.96259"
+ id="path3315" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 559.79973,798.02066 495.48037,703.99148"
+ id="path3379"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 556.38088,941.75075 492.06152,847.72157"
+ id="path3409"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;stroke-width:0.746963"
+ x="903.65625"
+ y="76.356575"
+ id="text3415"
+ transform="rotate(49.85623)"><tspan
+ sodipodi:role="line"
+ id="tspan3413"
+ x="903.65625"
+ y="76.356575"
+ style="fill:#0000ff;stroke-width:0.746963">srsin(θ<tspan
+ style="font-size:65%;baseline-shift:sub"
+ id="tspan3411">sr</tspan>)</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.746963"
+ x="1010.1659"
+ y="113.25944"
+ id="text3421"
+ transform="rotate(54.217931)"><tspan
+ sodipodi:role="line"
+ id="tspan3419"
+ x="1010.1659"
+ y="113.25944"
+ style="fill:#ff0000;stroke-width:0.746963">ersin(θ<tspan
+ style="font-size:65%;baseline-shift:sub"
+ id="tspan3417">er</tspan>)</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 624.11909,892.04984 559.79973,798.02066"
+ id="path3423"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="29.426485"
+ y="44.457829"
+ id="text3443"><tspan
+ sodipodi:role="line"
+ id="tspan3441"
+ x="29.426485"
+ y="44.457829"
+ style="font-size:26.6667px">Fig 0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="359.70151"
+ y="44.457829"
+ id="text3447"><tspan
+ sodipodi:role="line"
+ id="tspan3445"
+ x="359.70151"
+ y="44.457829"
+ style="font-size:26.6667px">Fig 1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="41.487854"
+ y="367.78854"
+ id="text3451"><tspan
+ sodipodi:role="line"
+ id="tspan3449"
+ x="41.487854"
+ y="367.78854"
+ style="font-size:26.6667px">Fig 2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="371.76288"
+ y="367.78854"
+ id="text3455"><tspan
+ sodipodi:role="line"
+ id="tspan3453"
+ x="371.76288"
+ y="367.78854"
+ style="font-size:26.6667px">Fig 3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="50.613743"
+ y="674.32947"
+ id="text3459"><tspan
+ sodipodi:role="line"
+ id="tspan3457"
+ x="50.613743"
+ y="674.32947"
+ style="font-size:26.6667px">Fig 4</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="380.88876"
+ y="674.32947"
+ id="text3463"><tspan
+ sodipodi:role="line"
+ id="tspan3461"
+ x="380.88876"
+ y="674.32947"
+ style="font-size:26.6667px">Fig 5</tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/lastChgtPt-from-avance.svg b/doc/livarot-images/lastChgtPt-from-avance.svg
new file mode 100644
index 0000000..6eb93cc
--- /dev/null
+++ b/doc/livarot-images/lastChgtPt-from-avance.svg
@@ -0,0 +1,146 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="332.26663"
+ height="300.29181"
+ viewBox="0 0 332.26663 300.29181"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (80318448fe, 2020-08-23, custom)"
+ sodipodi:docname="lastChgtPt-from-avance.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker883"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path881" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1121"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.5020252"
+ inkscape:cx="173.09963"
+ inkscape:cy="156.12255"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-top="10"
+ fit-margin-left="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-103.57619,-121.75057)">
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.00465015;stroke-linecap:square"
+ id="path829"
+ cx="168.05617"
+ cy="182.92595"
+ r="14.716245" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.00465015;stroke-linecap:square"
+ id="circle831"
+ cx="263.57138"
+ cy="182.92595"
+ r="14.716245" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.00465015;stroke-linecap:square"
+ id="circle833"
+ cx="359.08658"
+ cy="182.92595"
+ r="14.716245" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.00465015;stroke-linecap:square"
+ id="circle835"
+ cx="167.10698"
+ cy="267.31601"
+ r="14.716245" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.00465015;stroke-linecap:square"
+ id="circle837"
+ cx="262.62219"
+ cy="267.31601"
+ r="14.716245" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.00465015;stroke-linecap:square"
+ id="circle839"
+ cx="358.13739"
+ cy="267.31601"
+ r="14.716245" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.00465015;stroke-linecap:square"
+ id="circle841"
+ cx="168.34859"
+ cy="352.23386"
+ r="14.716245" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="210.49413"
+ y="377.92395"
+ id="text865"><tspan
+ sodipodi:role="line"
+ id="tspan863"
+ x="210.49413"
+ y="377.92395">lastPointNo</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1121)"
+ d="m 230.20665,355.48728 c 0,0 11.64353,-39.00475 -41.64015,-17.29232"
+ id="path867" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="260.49899"
+ y="314.62433"
+ id="text877"><tspan
+ sodipodi:role="line"
+ id="tspan875"
+ x="260.49899"
+ y="314.62433">lastChgtPt</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker883)"
+ d="m 244.02337,313.50571 c 0,0 -38.11809,-8.29918 -55.70413,-31.97461"
+ id="path879" />
+ </g>
+</svg>
diff --git a/doc/livarot-images/problematic-intersection-case.svg b/doc/livarot-images/problematic-intersection-case.svg
new file mode 100644
index 0000000..d47b474
--- /dev/null
+++ b/doc/livarot-images/problematic-intersection-case.svg
@@ -0,0 +1,185 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="593.25421"
+ height="414.70798"
+ viewBox="0 0 593.25421 414.70798"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (e41a0c7bf5, 2020-08-24, custom)"
+ sodipodi:docname="problematic-intersection-case.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker973"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path971" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker963"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path961" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker859"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path857" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1121"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.53409942"
+ inkscape:cx="-56.169318"
+ inkscape:cy="317.35665"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-left="10"
+ fit-margin-top="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-172.41122,-63.625426)">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1121)"
+ d="m 250.89042,81.406202 85.6937,319.813218"
+ id="path829" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker859)"
+ d="M 291.90829,238.05712 183.88162,144.92989"
+ id="path855"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="203.0696"
+ y="209.07495"
+ id="text887"><tspan
+ sodipodi:role="line"
+ id="tspan885"
+ x="203.0696"
+ y="209.07495">left</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="298.60837"
+ y="186.01599"
+ id="text891"><tspan
+ sodipodi:role="line"
+ id="tspan889"
+ x="298.60837"
+ y="186.01599">right</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker973)"
+ d="m 657.14458,73.754836 85.6937,319.813214"
+ id="path949" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker963)"
+ d="M 698.16245,230.40575 626.79513,357.48346"
+ id="path951"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="630.6897"
+ y="285.12833"
+ id="text955"><tspan
+ sodipodi:role="line"
+ id="tspan953"
+ x="630.6897"
+ y="285.12833">left</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="704.86255"
+ y="178.36462"
+ id="text959"><tspan
+ sodipodi:role="line"
+ id="tspan957"
+ x="704.86255"
+ y="178.36462">right</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:34.2668px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:2.14167"
+ x="205.33521"
+ y="467.84818"
+ id="text1029"><tspan
+ sodipodi:role="line"
+ id="tspan1027"
+ x="205.33521"
+ y="467.84818"
+ style="stroke-width:2.14167">lst &gt; lEn</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:33.5599px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:2.09749"
+ x="617.29639"
+ y="459.41025"
+ id="text1033"><tspan
+ sodipodi:role="line"
+ id="tspan1031"
+ x="617.29639"
+ y="459.41025"
+ style="stroke-width:2.09749">lst &lt; lEn</tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/process-flat-to-convert.svg b/doc/livarot-images/process-flat-to-convert.svg
new file mode 100644
index 0000000..ad11931
--- /dev/null
+++ b/doc/livarot-images/process-flat-to-convert.svg
@@ -0,0 +1,855 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="1500"
+ height="500"
+ viewBox="0 0 1500 500"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (037b845d7b, 2020-08-19, custom)"
+ sodipodi:docname="process-flat-to-convert.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker2838"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path2836" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2816"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path2814" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2764"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path2762" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2730"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path2728" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2714"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path2712" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2692"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path2690" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2676"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path2674" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2660"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path2658" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2644"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path2642" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2446"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mstart"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4) translate(10,0)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path2444" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2436"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mstart"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4) translate(10,0)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path2434" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2426"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mstart"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4) translate(10,0)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path2424" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2416"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mstart"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4) translate(10,0)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path2414" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2406"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mstart"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4) translate(10,0)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path2404" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2396"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mstart"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4) translate(10,0)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path2394" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2386"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mstart"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4) translate(10,0)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path2384" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2376"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mstart"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4) translate(10,0)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path2374" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2040"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path2038" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2018"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path2016" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1960"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path1958" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1950"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path1948" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1940"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path1938" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1930"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path1928" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1920"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path1918" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1910"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path1908" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1900"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path1898" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1407"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1405" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1111"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1109" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1101"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1099" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1091"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1089" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1071"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1069" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1061"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1059" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1051"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1049" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1041"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1039" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1031"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1029" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker923"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path921" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="7.0550821"
+ inkscape:cx="1203.2461"
+ inkscape:cy="208.43131"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1500px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:lockguides="true" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 35.326022,353.69409 c 0,0 41.895205,-165.85263 212.908788,-152.66748 l -92.49916,57.62752 79.35282,-138.30902 109.79549,222.65806 z"
+ id="path829" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 390.08736,342.48623 c 0,0 41.8952,-165.85263 212.90879,-152.66748 l -92.49916,57.62752 79.35282,-138.30902 109.79549,222.65806 z"
+ id="path835" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="path831"
+ cx="391.24176"
+ cy="341.56976"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle853"
+ cx="437.13937"
+ cy="255.43558"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle855"
+ cx="497.14078"
+ cy="208.7459"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle857"
+ cx="562.44568"
+ cy="190.12463"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle859"
+ cx="603.85394"
+ cy="189.72343"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle861"
+ cx="512.40961"
+ cy="246.39914"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle863"
+ cx="590.08545"
+ cy="107.97838"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle865"
+ cx="699.90894"
+ cy="331.86072"
+ r="4.6614089" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:3,3;stroke-dashoffset:0"
+ d="m 390.08736,342.48623 47.54346,-88.03417 60.38131,-45.9603 64.83556,-18.10578 40.14846,-0.56723 -92.49916,57.62752 79.35282,-138.30902 109.79549,222.65806 z"
+ id="path883" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle887"
+ cx="751.59222"
+ cy="330.35614"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle889"
+ cx="797.48981"
+ cy="244.22194"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle891"
+ cx="857.49121"
+ cy="197.53226"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle893"
+ cx="922.79614"
+ cy="178.911"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle895"
+ cx="964.20441"
+ cy="178.5098"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle897"
+ cx="872.76007"
+ cy="235.1855"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle899"
+ cx="950.43591"
+ cy="96.76474"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle901"
+ cx="1060.2594"
+ cy="320.64709"
+ r="4.6614089" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2040)"
+ d="m 753.01517,325.9249 39.27636,-73.07465"
+ id="path1235"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1910)"
+ d="m 801.49521,241.76393 47.8429,-38.4059"
+ id="path1275"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1920)"
+ d="M 861.86391,196.83092 913.36747,181.965"
+ id="path1305"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2018)"
+ d="m 927.38106,178.75985 27.23737,0.0444"
+ id="path1335"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1930)"
+ d="m 960.70488,181.47408 -78.85054,49.14656"
+ id="path1365"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1940)"
+ d="M 874.20885,230.8235 945.09517,105.19924"
+ id="path1395"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1950)"
+ d="M 952.44023,101.03683 1056.2572,311.16797"
+ id="path1425"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1960)"
+ d="m 1055.605,320.94286 -293.89186,9.27867"
+ id="path1461"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle995"
+ cx="1136.7375"
+ cy="326.53745"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle997"
+ cx="1182.6351"
+ cy="240.40324"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle999"
+ cx="1242.6366"
+ cy="193.71356"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle1001"
+ cx="1307.9415"
+ cy="175.0923"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle1003"
+ cx="1349.3497"
+ cy="174.6911"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle1005"
+ cx="1257.9054"
+ cy="231.36681"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle1007"
+ cx="1335.5813"
+ cy="92.946053"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle1009"
+ cx="1445.4048"
+ cy="316.8284"
+ r="4.6614089" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2644)"
+ d="m 1180.6084,244.46984 -39.367,73.54152"
+ id="path1011"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2816)"
+ d="m 1239.2175,197.24738 -48.4404,36.88694"
+ id="path1015"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2838)"
+ d="m 1284.8779,182.16393 -32.8837,8.69811"
+ id="path1017"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1900)"
+ d="m 1312.5731,175.13895 30.642,-0.15315"
+ id="path1019"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2730)"
+ d="m 1346.0276,178.03976 -79.29,49.0325"
+ id="path1021"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2676)"
+ d="M 1443.3183,312.95924 1340.6121,101.88125"
+ id="path1025"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2660)"
+ d="m 1141.3047,326.72802 294.7223,-8.63214"
+ id="path1027"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle1341"
+ cx="1284.6919"
+ cy="182.21416"
+ r="4.6614089" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2692)"
+ d="m 1333.1858,96.850075 -42.8181,76.404755"
+ id="path1023"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2714)"
+ d="m 1260.3216,227.4814 19.5513,-36.48655"
+ id="path1373"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2764)"
+ d="m 1289.1656,181.47107 9.2725,-2.8258"
+ id="path1403"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="29.738272"
+ y="392.17133"
+ id="text1429"><tspan
+ sodipodi:role="line"
+ id="tspan1427"
+ x="29.738272"
+ y="392.17133">1. Path Descriptions </tspan><tspan
+ sodipodi:role="line"
+ x="29.738272"
+ y="425.5047"
+ id="tspan1431">Added.</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="373.73657"
+ y="383.69681"
+ id="text1437"><tspan
+ sodipodi:role="line"
+ x="373.73657"
+ y="383.69681"
+ id="tspan1435">2. Path::Convert</tspan><tspan
+ sodipodi:role="line"
+ x="373.73657"
+ y="417.03018"
+ id="tspan1441">or</tspan><tspan
+ sodipodi:role="line"
+ x="373.73657"
+ y="450.36356"
+ id="tspan1443">Path::ConvertWithBackData</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="763.67297"
+ y="372.67661"
+ id="text1451"><tspan
+ sodipodi:role="line"
+ x="763.67297"
+ y="372.67661"
+ id="tspan1449">3. Path::Fill</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="1114.0807"
+ y="381.37952"
+ id="text1460"><tspan
+ sodipodi:role="line"
+ x="1114.0807"
+ y="381.37952"
+ id="tspan1458">4. Shape::ConvertToShape</tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/process-flat-to-convert.svg.2020_08_20_00_55_09.0.svg b/doc/livarot-images/process-flat-to-convert.svg.2020_08_20_00_55_09.0.svg
new file mode 100644
index 0000000..33c525e
--- /dev/null
+++ b/doc/livarot-images/process-flat-to-convert.svg.2020_08_20_00_55_09.0.svg
@@ -0,0 +1,566 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="1500"
+ height="500"
+ viewBox="0 0 1500 500"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (037b845d7b, 2020-08-19, custom)"
+ sodipodi:docname="process-flat-to-convert.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible;"
+ id="marker1655"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1653" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1645"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1643" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1635"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1633" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1625"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1623" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1615"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1613" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1605"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1603" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1595"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1593" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1585"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1583" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1575"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1573" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1465"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1463" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1429"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1427" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1399"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1397" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1369"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1367" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1339"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1337" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1309"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1307" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1279"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1277" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1261"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1259" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="Arrow2Mend"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path982" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker923"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path921" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.8380483"
+ inkscape:cx="933.59895"
+ inkscape:cy="234.21582"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1500px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:lockguides="true" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 35.326022,353.69409 c 0,0 41.895205,-165.85263 212.908788,-152.66748 l -92.49916,57.62752 79.35282,-138.30902 109.79549,222.65806 z"
+ id="path829" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 390.08736,342.48623 c 0,0 41.8952,-165.85263 212.90879,-152.66748 l -92.49916,57.62752 79.35282,-138.30902 109.79549,222.65806 z"
+ id="path835" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="path831"
+ cx="391.24176"
+ cy="341.56976"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle853"
+ cx="437.13937"
+ cy="255.43558"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle855"
+ cx="497.14078"
+ cy="208.7459"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle857"
+ cx="562.44568"
+ cy="190.12463"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle859"
+ cx="603.85394"
+ cy="189.72343"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle861"
+ cx="512.40961"
+ cy="246.39914"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle863"
+ cx="590.08545"
+ cy="107.97838"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle865"
+ cx="699.90894"
+ cy="331.86072"
+ r="4.6614089" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:3,3;stroke-dashoffset:0"
+ d="m 390.08736,342.48623 47.54346,-88.03417 60.38131,-45.9603 64.83556,-18.10578 40.14846,-0.56723 -92.49916,57.62752 79.35282,-138.30902 109.79549,222.65806 z"
+ id="path883" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle887"
+ cx="751.59222"
+ cy="330.35614"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle889"
+ cx="797.48981"
+ cy="244.22194"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle891"
+ cx="857.49121"
+ cy="197.53226"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle893"
+ cx="922.79614"
+ cy="178.911"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle895"
+ cx="964.20441"
+ cy="178.5098"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle897"
+ cx="872.76007"
+ cy="235.1855"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle899"
+ cx="950.43591"
+ cy="96.76474"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle901"
+ cx="1060.2594"
+ cy="320.64709"
+ r="4.6614089" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)"
+ d="m 750.43782,331.27259 47.03937,-86.55458"
+ id="path905" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1261)"
+ d="m 750.43782,331.27259 47.03937,-86.55458"
+ id="path1235" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1279)"
+ d="M 797.47719,244.71801 857.5353,197.79005"
+ id="path1275"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1309)"
+ d="m 857.5353,197.79005 64.93717,-18.08061"
+ id="path1305"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1339)"
+ d="m 922.47247,179.70944 40.87414,-1.10433"
+ id="path1335"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1369)"
+ d="m 963.34661,178.60511 -92.49916,57.62752"
+ id="path1365"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1399)"
+ d="M 870.84745,236.23263 950.20027,97.923613"
+ id="path1395"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1429)"
+ d="M 950.20027,97.923613 1059.9958,320.58167"
+ id="path1425"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1465)"
+ d="M 1059.9958,320.58167 750.43782,331.27259"
+ id="path1461"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle1539"
+ cx="1110.3844"
+ cy="318.76852"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle1541"
+ cx="1156.282"
+ cy="232.63429"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle1543"
+ cx="1216.2834"
+ cy="185.94461"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle1545"
+ cx="1281.5884"
+ cy="167.32335"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle1547"
+ cx="1322.9966"
+ cy="166.92215"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle1549"
+ cx="1231.5522"
+ cy="223.59785"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle1551"
+ cx="1309.2281"
+ cy="85.177101"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle1553"
+ cx="1419.0516"
+ cy="309.05948"
+ r="4.6614089" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1655)"
+ d="m 1109.23,319.68495 47.0393,-86.55458"
+ id="path1555" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1645)"
+ d="m 1109.23,319.68495 47.0393,-86.55458"
+ id="path1557" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1635)"
+ d="m 1156.2693,233.13037 60.0582,-46.92796"
+ id="path1559"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1625)"
+ d="m 1216.3275,186.20241 64.9371,-18.08061"
+ id="path1561"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1615)"
+ d="m 1281.2646,168.1218 40.8742,-1.10433"
+ id="path1563"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1605)"
+ d="m 1322.1388,167.01747 -92.4992,57.62752"
+ id="path1565"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1595)"
+ d="M 1229.6396,224.64499 1308.9924,86.335971"
+ id="path1567"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1585)"
+ d="M 1308.9924,86.335971 1418.788,308.99403"
+ id="path1569"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1575)"
+ d="M 1418.788,308.99403 1109.23,319.68495"
+ id="path1571"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle1771"
+ cx="1258.8988"
+ cy="174.04913"
+ r="4.6614089" />
+ </g>
+</svg>
diff --git a/doc/livarot-images/rounded-edge-diagonal-avoid.svg b/doc/livarot-images/rounded-edge-diagonal-avoid.svg
new file mode 100644
index 0000000..d376a55
--- /dev/null
+++ b/doc/livarot-images/rounded-edge-diagonal-avoid.svg
@@ -0,0 +1,271 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="500"
+ height="500"
+ viewBox="0 0 500 500"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (80318448fe, 2020-08-23, custom)"
+ sodipodi:docname="rounded-edge-diagonal-avoid.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker1049"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1047" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker977"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path975" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker939"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path937" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker911"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path909" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1121"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.4345874"
+ inkscape:cx="266.27865"
+ inkscape:cy="248.50351"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="500px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:none;stroke:#ff00ff;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+ d="M 191.78627,187.96645 V 316.27874 H 313.09566"
+ id="path971" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.54245;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect833"
+ width="119.04181"
+ height="119.04181"
+ x="130.48016"
+ y="128.77312" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.54245;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect835"
+ width="119.04181"
+ height="119.04181"
+ x="249.52196"
+ y="128.77312" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.54245;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect837"
+ width="119.04181"
+ height="119.04181"
+ x="130.48016"
+ y="247.81493" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.54245;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect839"
+ width="119.04181"
+ height="119.04181"
+ x="249.52196"
+ y="247.81493" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path841"
+ cx="191.12761"
+ cy="189.35629"
+ r="39.345333" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle859"
+ cx="311.5365"
+ cy="310.30621"
+ r="39.345333" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="235.49031"
+ y="76.456963"
+ id="text863"><tspan
+ sodipodi:role="line"
+ id="tspan861"
+ x="235.49031"
+ y="76.456963"
+ style="font-size:26.6667px">lp</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1121)"
+ d="m 214.05208,70.449106 c 0,0 -39.62381,9.305858 -28.67538,74.636724"
+ id="path865"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="fill:#ff00ff;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle895"
+ cx="191.12761"
+ cy="310.30621"
+ r="39.345333" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="406.09329"
+ y="317.00021"
+ id="text899"><tspan
+ sodipodi:role="line"
+ id="tspan897"
+ x="406.09329"
+ y="317.00021"
+ style="font-size:26.6667px">lftN</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker911)"
+ d="m 426.08485,291.19709 c 0,0 -2.05097,-13.04856 -67.38183,-2.10013"
+ id="path907"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="151.58751"
+ y="410.58646"
+ id="text933"><tspan
+ sodipodi:role="line"
+ id="tspan931"
+ x="151.58751"
+ y="410.58646"
+ style="font-size:26.6667px">lftN-1</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker939)"
+ d="m 144.77976,384.51252 c 0,0 -5.00305,-17.31523 14.35045,-42.59101"
+ id="path935"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+ d="M 191.78627,187.96645 312.10026,312.47717"
+ id="path969"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker977)"
+ d="m 358.64187,93.761094 c 0,0 -72.99126,47.745006 -98.73333,140.759806"
+ id="path973"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="363.58093"
+ y="94.583557"
+ id="text993"><tspan
+ sodipodi:role="line"
+ id="tspan991"
+ x="363.58093"
+ y="94.583557"
+ style="font-size:16px">we want to</tspan><tspan
+ sodipodi:role="line"
+ x="363.58093"
+ y="114.58356"
+ id="tspan995"
+ style="font-size:16px">avoid</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1049)"
+ d="m 75.850462,292.37458 c 0,0 7.461366,-36.31628 109.013618,-30.14191"
+ id="path1045"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="9.8154373"
+ y="310.22327"
+ id="text1127"><tspan
+ sodipodi:role="line"
+ x="9.8154373"
+ y="310.22327"
+ id="tspan1125"
+ style="font-size:16px">we prefer</tspan><tspan
+ sodipodi:role="line"
+ x="9.8154373"
+ y="330.22327"
+ style="font-size:16px"
+ id="tspan1131">the magenta</tspan><tspan
+ sodipodi:role="line"
+ x="9.8154373"
+ y="350.22327"
+ style="font-size:16px"
+ id="tspan1133">edges instead</tspan><tspan
+ sodipodi:role="line"
+ x="9.8154373"
+ y="370.22327"
+ style="font-size:16px"
+ id="tspan1135">of the red</tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/sequence-convert-shape-loop.svg b/doc/livarot-images/sequence-convert-shape-loop.svg
new file mode 100644
index 0000000..2070a79
--- /dev/null
+++ b/doc/livarot-images/sequence-convert-shape-loop.svg
@@ -0,0 +1,618 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="460.31302"
+ height="590.33685"
+ viewBox="0 0 460.31302 590.33685"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (b11d04efb7, 2020-08-25, custom)"
+ sodipodi:docname="sequence-convert-shape-loop.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker1121"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:#008000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.53018718"
+ inkscape:cx="475.30384"
+ inkscape:cy="510.19717"
+ inkscape:document-units="px"
+ inkscape:current-layer="g1066"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ fit-margin-top="10"
+ fit-margin-left="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-85.279484,-60.687766)">
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke-width:0.966873;stroke-linecap:square;stroke-dasharray:0.966873, 0.966873"
+ id="path829"
+ cx="119.1729"
+ cy="213.40791"
+ r="22.591625" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.966873;stroke-linecap:square;stroke-dasharray:0.966873, 0.966873"
+ id="circle831"
+ cx="231.82152"
+ cy="211.8035"
+ r="22.591625" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.966873;stroke-linecap:square;stroke-dasharray:0.966873, 0.966873"
+ id="circle833"
+ cx="340.60272"
+ cy="215.01233"
+ r="22.591625" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke-width:0.966873;stroke-linecap:square;stroke-dasharray:0.966873, 0.966873"
+ id="circle835"
+ cx="117.87111"
+ cy="303.18491"
+ r="22.591625" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.966873;stroke-linecap:square;stroke-dasharray:0.966873, 0.966873"
+ id="circle837"
+ cx="230.51976"
+ cy="301.58047"
+ r="22.591625" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.966873;stroke-linecap:square;stroke-dasharray:0.966873, 0.966873"
+ id="circle839"
+ cx="339.30096"
+ cy="304.78931"
+ r="22.591625" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke-width:0.966873;stroke-linecap:square;stroke-dasharray:0.966873, 0.966873"
+ id="circle843"
+ cx="118.44617"
+ cy="398.50806"
+ r="22.591625" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.966873;stroke-linecap:square;stroke-dasharray:0.966873, 0.966873"
+ id="circle845"
+ cx="231.09483"
+ cy="396.90359"
+ r="22.591625" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.966873;stroke-linecap:square;stroke-dasharray:0.966873, 0.966873"
+ id="circle847"
+ cx="339.87604"
+ cy="400.11243"
+ r="22.591625" />
+ <text
+ xml:space="preserve"
+ style="font-size:15.4699px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;stroke-width:0.966873"
+ x="114.44395"
+ y="218.86243"
+ id="text851"><tspan
+ sodipodi:role="line"
+ id="tspan849"
+ x="114.44395"
+ y="218.86243"
+ style="stroke-width:0.966873">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:15.4699px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;stroke-width:0.966873"
+ x="225.49794"
+ y="217.54526"
+ id="text855"><tspan
+ sodipodi:role="line"
+ id="tspan853"
+ x="225.49794"
+ y="217.54526"
+ style="stroke-width:0.966873">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:15.4699px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;stroke-width:0.966873"
+ x="335.65616"
+ y="219.52641"
+ id="text859"><tspan
+ sodipodi:role="line"
+ id="tspan857"
+ x="335.65616"
+ y="219.52641"
+ style="stroke-width:0.966873">2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:15.4699px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;stroke-width:0.966873"
+ x="224.48131"
+ y="308.00348"
+ id="text863"><tspan
+ sodipodi:role="line"
+ id="tspan861"
+ x="224.48131"
+ y="308.00348"
+ style="stroke-width:0.966873">4</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:15.4699px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;stroke-width:0.966873"
+ x="113.22529"
+ y="309.7952"
+ id="text867"><tspan
+ sodipodi:role="line"
+ id="tspan865"
+ x="113.22529"
+ y="309.7952"
+ style="stroke-width:0.966873">3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:15.4699px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;stroke-width:0.966873"
+ x="333.99774"
+ y="311.33444"
+ id="text871"><tspan
+ sodipodi:role="line"
+ id="tspan869"
+ x="333.99774"
+ y="311.33444"
+ style="stroke-width:0.966873">5</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:15.4699px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;stroke-width:0.966873"
+ x="113.64395"
+ y="403.90793"
+ id="text875"><tspan
+ sodipodi:role="line"
+ id="tspan873"
+ x="113.64395"
+ y="403.90793"
+ style="stroke-width:0.966873">6</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:15.4699px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;stroke-width:0.966873"
+ x="225.44637"
+ y="403.42715"
+ id="text879"><tspan
+ sodipodi:role="line"
+ id="tspan877"
+ x="225.44637"
+ y="403.42715"
+ style="stroke-width:0.966873">7</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:15.4699px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;stroke-width:0.966873"
+ x="334.24973"
+ y="407.63211"
+ id="text883"><tspan
+ sodipodi:role="line"
+ id="tspan881"
+ x="334.24973"
+ y="407.63211"
+ style="stroke-width:0.966873">8</tspan></text>
+ <g
+ id="g926"
+ transform="matrix(0.53646214,0,0,0.53646214,143.95697,-30.619609)">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-linecap:square;stroke-dasharray:1, 1"
+ id="rect917"
+ width="254.51257"
+ height="55.541786"
+ x="474.66269"
+ y="189.34348" />
+ <text
+ xml:space="preserve"
+ style="font-size:21.3333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="486.30383"
+ y="224.65175"
+ id="text921"><tspan
+ sodipodi:role="line"
+ id="tspan919"
+ x="486.30383"
+ y="224.65175"
+ style="font-size:21.3333px">Add point 0</tspan></text>
+ </g>
+ <g
+ id="g934"
+ transform="matrix(0.53646214,0,0,0.53646214,143.95697,-0.82354433)">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-linecap:square;stroke-dasharray:1, 1"
+ id="rect928"
+ width="254.51257"
+ height="55.541786"
+ x="474.66269"
+ y="189.34348" />
+ <text
+ xml:space="preserve"
+ style="font-size:21.3333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="486.30383"
+ y="224.65175"
+ id="text932"><tspan
+ sodipodi:role="line"
+ id="tspan930"
+ x="486.30383"
+ y="224.65175"
+ style="font-size:21.3333px">Reconstruction block</tspan></text>
+ </g>
+ <g
+ id="g942"
+ transform="matrix(0.53646214,0,0,0.53646214,143.95697,28.972516)">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-linecap:square;stroke-dasharray:1, 1"
+ id="rect936"
+ width="254.51257"
+ height="55.541786"
+ x="474.66269"
+ y="189.34348" />
+ <text
+ xml:space="preserve"
+ style="font-size:21.3333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="486.30383"
+ y="224.65175"
+ id="text940"><tspan
+ sodipodi:role="line"
+ id="tspan938"
+ x="486.30383"
+ y="224.65175"
+ style="font-size:21.3333px">Sweepline stuff</tspan></text>
+ </g>
+ <g
+ id="g950"
+ transform="matrix(0.53646214,0,0,0.53646214,143.95697,58.768579)">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-linecap:square;stroke-dasharray:1, 1"
+ id="rect944"
+ width="254.51257"
+ height="55.541786"
+ x="474.66269"
+ y="189.34348" />
+ <text
+ xml:space="preserve"
+ style="font-size:21.3333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="486.30383"
+ y="224.65175"
+ id="text948"><tspan
+ sodipodi:role="line"
+ id="tspan946"
+ x="486.30383"
+ y="224.65175"
+ style="font-size:21.3333px">Add point 1</tspan></text>
+ </g>
+ <g
+ id="g958"
+ transform="matrix(0.53646214,0,0,0.53646214,143.95697,88.564639)">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-linecap:square;stroke-dasharray:1, 1"
+ id="rect952"
+ width="254.51257"
+ height="55.541786"
+ x="474.66269"
+ y="189.34348" />
+ <text
+ xml:space="preserve"
+ style="font-size:21.3333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="486.30383"
+ y="224.65175"
+ id="text956"><tspan
+ sodipodi:role="line"
+ id="tspan954"
+ x="486.30383"
+ y="224.65175"
+ style="font-size:21.3333px">Sweepline stuff</tspan></text>
+ </g>
+ <g
+ id="g966"
+ transform="matrix(0.53646214,0,0,0.53646214,143.95697,118.3607)">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-linecap:square;stroke-dasharray:1, 1"
+ id="rect960"
+ width="254.51257"
+ height="55.541786"
+ x="474.66269"
+ y="189.34348" />
+ <text
+ xml:space="preserve"
+ style="font-size:21.3333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="486.30383"
+ y="224.65175"
+ id="text964"><tspan
+ sodipodi:role="line"
+ id="tspan962"
+ x="486.30383"
+ y="224.65175"
+ style="font-size:21.3333px">Add point 2</tspan></text>
+ </g>
+ <g
+ id="g974"
+ transform="matrix(0.53646214,0,0,0.53646214,143.95697,148.15676)">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-linecap:square;stroke-dasharray:1, 1"
+ id="rect968"
+ width="254.51257"
+ height="55.541786"
+ x="474.66269"
+ y="189.34348" />
+ <text
+ xml:space="preserve"
+ style="font-size:21.3333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="486.30383"
+ y="224.65175"
+ id="text972"><tspan
+ sodipodi:role="line"
+ id="tspan970"
+ x="486.30383"
+ y="224.65175"
+ style="font-size:21.3333px">Sweepline stuff</tspan></text>
+ </g>
+ <g
+ id="g990"
+ transform="matrix(0.53659598,0,0,0.53651321,143.85939,177.94316)">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-linecap:square;stroke-dasharray:1, 1"
+ id="rect984"
+ width="254.51257"
+ height="55.541786"
+ x="474.66269"
+ y="189.34348" />
+ <text
+ xml:space="preserve"
+ style="font-size:21.3333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="486.30383"
+ y="224.65175"
+ id="text988"><tspan
+ sodipodi:role="line"
+ id="tspan986"
+ x="486.30383"
+ y="224.65175"
+ style="font-size:21.3333px">Add point 3</tspan></text>
+ </g>
+ <g
+ id="g998"
+ transform="matrix(0.53646214,0,0,0.53646214,143.95697,207.75172)">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-linecap:square;stroke-dasharray:1, 1"
+ id="rect992"
+ width="254.51257"
+ height="55.541786"
+ x="474.66269"
+ y="189.34348" />
+ <text
+ xml:space="preserve"
+ style="font-size:21.3333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="486.30383"
+ y="224.65175"
+ id="text996"><tspan
+ sodipodi:role="line"
+ id="tspan994"
+ x="486.30383"
+ y="224.65175"
+ style="font-size:21.3333px">Reconstruction block</tspan></text>
+ </g>
+ <g
+ id="g1006"
+ transform="matrix(0.53646214,0,0,0.53646214,143.95697,237.54778)">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-linecap:square;stroke-dasharray:1, 1"
+ id="rect1000"
+ width="254.51257"
+ height="55.541786"
+ x="474.66269"
+ y="189.34348" />
+ <text
+ xml:space="preserve"
+ style="font-size:21.3333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="486.30383"
+ y="224.65175"
+ id="text1004"><tspan
+ sodipodi:role="line"
+ id="tspan1002"
+ x="486.30383"
+ y="224.65175"
+ style="font-size:21.3333px">Sweepline stuff</tspan></text>
+ </g>
+ <g
+ id="g1014"
+ transform="matrix(0.53646214,0,0,0.53646214,143.95697,267.34385)">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-linecap:square;stroke-dasharray:1, 1"
+ id="rect1008"
+ width="254.51257"
+ height="55.541786"
+ x="474.66269"
+ y="189.34348" />
+ <text
+ xml:space="preserve"
+ style="font-size:21.3333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="486.30383"
+ y="224.65175"
+ id="text1012"><tspan
+ sodipodi:role="line"
+ id="tspan1010"
+ x="486.30383"
+ y="224.65175"
+ style="font-size:21.3333px">Add point 4</tspan></text>
+ </g>
+ <g
+ id="g1022"
+ transform="matrix(0.53646214,0,0,0.53646214,143.95697,297.13991)">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-linecap:square;stroke-dasharray:1, 1"
+ id="rect1016"
+ width="254.51257"
+ height="55.541786"
+ x="474.66269"
+ y="189.34348" />
+ <text
+ xml:space="preserve"
+ style="font-size:21.3333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="486.30383"
+ y="224.65175"
+ id="text1020"><tspan
+ sodipodi:role="line"
+ id="tspan1018"
+ x="486.30383"
+ y="224.65175"
+ style="font-size:21.3333px">Sweepline stuff</tspan></text>
+ </g>
+ <g
+ id="g1030"
+ transform="matrix(0.53646214,0,0,0.53646214,143.95697,326.93597)">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-linecap:square;stroke-dasharray:1, 1"
+ id="rect1024"
+ width="254.51257"
+ height="55.541786"
+ x="474.66269"
+ y="189.34348" />
+ <text
+ xml:space="preserve"
+ style="font-size:21.3333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="486.30383"
+ y="224.65175"
+ id="text1028"><tspan
+ sodipodi:role="line"
+ id="tspan1026"
+ x="486.30383"
+ y="224.65175"
+ style="font-size:21.3333px">Add point 5</tspan></text>
+ </g>
+ <g
+ id="g1038"
+ transform="matrix(0.53646214,0,0,0.53646214,143.95697,356.73203)">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-linecap:square;stroke-dasharray:1, 1"
+ id="rect1032"
+ width="254.51257"
+ height="55.541786"
+ x="474.66269"
+ y="189.34348" />
+ <text
+ xml:space="preserve"
+ style="font-size:21.3333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="486.30383"
+ y="224.65175"
+ id="text1036"><tspan
+ sodipodi:role="line"
+ id="tspan1034"
+ x="486.30383"
+ y="224.65175"
+ style="font-size:21.3333px">Sweepline stuff</tspan></text>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-size:35.3405px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:2.20878"
+ x="499.6633"
+ y="-462.91425"
+ id="text1042"
+ transform="rotate(90)"><tspan
+ sodipodi:role="line"
+ id="tspan1040"
+ x="499.6633"
+ y="-462.91425"
+ style="stroke-width:2.20878">....</tspan></text>
+ <g
+ id="g1050"
+ transform="matrix(0.53646214,0,0,0.53646214,144.14933,449.79259)">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-linecap:square;stroke-dasharray:1, 1"
+ id="rect1044"
+ width="254.51257"
+ height="55.541786"
+ x="474.66269"
+ y="189.34348" />
+ <text
+ xml:space="preserve"
+ style="font-size:21.3333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="486.30383"
+ y="224.65175"
+ id="text1048"><tspan
+ sodipodi:role="line"
+ id="tspan1046"
+ x="486.30383"
+ y="224.65175"
+ style="font-size:21.3333px">Add point 8</tspan></text>
+ </g>
+ <g
+ id="g1058"
+ transform="matrix(0.53646214,0,0,0.53646214,144.14933,479.58865)">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-linecap:square;stroke-dasharray:1, 1"
+ id="rect1052"
+ width="254.51257"
+ height="55.541786"
+ x="474.66269"
+ y="189.34348" />
+ <text
+ xml:space="preserve"
+ style="font-size:21.3333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="486.30383"
+ y="224.65175"
+ id="text1056"><tspan
+ sodipodi:role="line"
+ id="tspan1054"
+ x="486.30383"
+ y="224.65175"
+ style="font-size:21.3333px">Sweepline stuff</tspan></text>
+ </g>
+ <g
+ id="g1066"
+ transform="matrix(0.85532258,0,0,0.85532258,173.19641,770.13583)"
+ style="stroke:#008000">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#008000;stroke-width:0.627204;stroke-linecap:square;stroke-dasharray:0.627204, 0.627204"
+ id="rect1060"
+ width="159.63142"
+ height="34.836056"
+ x="263.75018"
+ y="-186.09998" />
+ <text
+ xml:space="preserve"
+ style="font-size:13.3803px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#008000;stroke:none;stroke-width:0.627204"
+ x="271.05154"
+ y="-163.95447"
+ id="text1064"><tspan
+ sodipodi:role="line"
+ id="tspan1062"
+ x="271.05154"
+ y="-163.95447"
+ style="font-size:13.3803px;fill:#008000;stroke:none;stroke-width:0.627204">Reconstruction block</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16.4634px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#008000;stroke:none;stroke-width:1.02896"
+ x="39.374828"
+ y="-226.5031"
+ id="text1070"><tspan
+ sodipodi:role="line"
+ id="tspan1068"
+ style="fill:#008000;stroke:none;stroke-width:1.02896"
+ x="39.374828"
+ y="-226.5031">Written after the loop</tspan></text>
+ <path
+ style="fill:none;stroke:#008000;stroke-width:0.733296;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1121)"
+ d="m 128.95645,-211.67322 c 0,0 4.50002,41.77953 117.60645,44.43107"
+ id="path1072" />
+ </g>
+ </g>
+</svg>
diff --git a/doc/livarot-images/situation-from-add-chgt.svg b/doc/livarot-images/situation-from-add-chgt.svg
new file mode 100644
index 0000000..a106f95
--- /dev/null
+++ b/doc/livarot-images/situation-from-add-chgt.svg
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="332.26663"
+ height="300.29181"
+ viewBox="0 0 332.26663 300.29181"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (6f52e792f5, 2020-08-23, custom)"
+ sodipodi:docname="situation-from-add-chgt.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker966"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path964" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker883"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path881" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.5020252"
+ inkscape:cx="173.09963"
+ inkscape:cy="155.45678"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-top="10"
+ fit-margin-left="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-103.57619,-121.75057)">
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.00465015;stroke-linecap:square"
+ id="path829"
+ cx="168.05617"
+ cy="182.92595"
+ r="14.716245" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.00465015;stroke-linecap:square"
+ id="circle831"
+ cx="263.57138"
+ cy="182.92595"
+ r="14.716245" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.00465015;stroke-linecap:square"
+ id="circle833"
+ cx="359.08658"
+ cy="182.92595"
+ r="14.716245" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.00465015;stroke-linecap:square"
+ id="circle835"
+ cx="167.10698"
+ cy="267.31601"
+ r="14.716245" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.00465015;stroke-linecap:square"
+ id="circle837"
+ cx="262.62219"
+ cy="267.31601"
+ r="14.716245" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.00465015;stroke-linecap:square"
+ id="circle839"
+ cx="358.13739"
+ cy="267.31601"
+ r="14.716245" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.00465015;stroke-linecap:square"
+ id="circle841"
+ cx="168.34859"
+ cy="352.23386"
+ r="14.716245" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="234.48026"
+ y="409.72568"
+ id="text865"><tspan
+ sodipodi:role="line"
+ id="tspan863"
+ x="234.48026"
+ y="409.72568">lastPointNo</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="119.64504"
+ y="409.64163"
+ id="text877"><tspan
+ sodipodi:role="line"
+ id="tspan875"
+ x="119.64504"
+ y="409.64163">lastChgtPt</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker883)"
+ d="m 124.10989,390.24057 c 0,0 -8.78406,-11.69035 14.78151,-27.12439"
+ id="path952" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.00465015;stroke-linecap:square"
+ id="circle960"
+ cx="262.62219"
+ cy="352.23386"
+ r="14.716245" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker966)"
+ d="m 320.20628,386.42472 c 0,0 -0.42318,-24.77027 -27.56073,-28.67999"
+ id="path962" />
+ </g>
+</svg>
diff --git a/doc/livarot-images/snap-rounding-with.svg b/doc/livarot-images/snap-rounding-with.svg
new file mode 100644
index 0000000..702186f
--- /dev/null
+++ b/doc/livarot-images/snap-rounding-with.svg
@@ -0,0 +1,806 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="1000"
+ height="1000"
+ viewBox="0 0 1000 1000"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (b11d04efb7, 2020-08-25, custom)"
+ sodipodi:docname="snap-rounding-with.svg"
+ inkscape:export-filename="/home/moazin/Desktop/snap-rounding-with.png"
+ inkscape:export-xdpi="96"
+ inkscape:export-ydpi="96"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible;"
+ id="marker1121"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.67911215"
+ inkscape:cx="222.34914"
+ inkscape:cy="539.67522"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:none;stroke:#ff00ff;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 198.67033,286.84145 368.40575,285.112 792.25904,194.9126 793.43268,626.26572 618.80571,542.56997 368.40575,285.112 l 0.16756,174.08651 250.2324,83.37146 -424.4699,84.86538 z"
+ id="path1061"
+ sodipodi:nodetypes="cccccccccc" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect829"
+ width="84.756966"
+ height="84.756966"
+ x="71.449844"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect831"
+ width="84.756966"
+ height="84.756966"
+ x="156.20682"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect833"
+ width="84.756966"
+ height="84.756966"
+ x="240.96378"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect835"
+ width="84.756966"
+ height="84.756966"
+ x="325.72073"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect837"
+ width="84.756966"
+ height="84.756966"
+ x="410.47769"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect839"
+ width="84.756966"
+ height="84.756966"
+ x="495.23468"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect841"
+ width="84.756966"
+ height="84.756966"
+ x="579.99164"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect843"
+ width="84.756966"
+ height="84.756966"
+ x="664.7486"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect845"
+ width="84.756966"
+ height="84.756966"
+ x="749.50555"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect847"
+ width="84.756966"
+ height="84.756966"
+ x="834.26251"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect849"
+ width="84.756966"
+ height="84.756966"
+ x="71.449875"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect851"
+ width="84.756966"
+ height="84.756966"
+ x="156.20685"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect853"
+ width="84.756966"
+ height="84.756966"
+ x="240.96381"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect855"
+ width="84.756966"
+ height="84.756966"
+ x="325.72076"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect857"
+ width="84.756966"
+ height="84.756966"
+ x="410.47772"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect859"
+ width="84.756966"
+ height="84.756966"
+ x="495.23471"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect861"
+ width="84.756966"
+ height="84.756966"
+ x="579.9917"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect863"
+ width="84.756966"
+ height="84.756966"
+ x="664.74866"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect865"
+ width="84.756966"
+ height="84.756966"
+ x="749.50562"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect867"
+ width="84.756966"
+ height="84.756966"
+ x="834.26257"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect869"
+ width="84.756966"
+ height="84.756966"
+ x="71.449905"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect871"
+ width="84.756966"
+ height="84.756966"
+ x="156.20688"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect873"
+ width="84.756966"
+ height="84.756966"
+ x="240.96384"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect875"
+ width="84.756966"
+ height="84.756966"
+ x="325.72079"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect877"
+ width="84.756966"
+ height="84.756966"
+ x="410.47775"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect879"
+ width="84.756966"
+ height="84.756966"
+ x="495.23474"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect881"
+ width="84.756966"
+ height="84.756966"
+ x="579.9917"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect883"
+ width="84.756966"
+ height="84.756966"
+ x="664.74866"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect885"
+ width="84.756966"
+ height="84.756966"
+ x="749.50562"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect887"
+ width="84.756966"
+ height="84.756966"
+ x="834.26257"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect889"
+ width="84.756966"
+ height="84.756966"
+ x="71.449875"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect891"
+ width="84.756966"
+ height="84.756966"
+ x="156.20685"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect893"
+ width="84.756966"
+ height="84.756966"
+ x="240.96381"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect895"
+ width="84.756966"
+ height="84.756966"
+ x="325.72076"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect897"
+ width="84.756966"
+ height="84.756966"
+ x="410.47772"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect899"
+ width="84.756966"
+ height="84.756966"
+ x="495.23471"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect901"
+ width="84.756966"
+ height="84.756966"
+ x="579.9917"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect903"
+ width="84.756966"
+ height="84.756966"
+ x="664.74866"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect905"
+ width="84.756966"
+ height="84.756966"
+ x="749.50562"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect907"
+ width="84.756966"
+ height="84.756966"
+ x="834.26257"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect909"
+ width="84.756966"
+ height="84.756966"
+ x="71.449905"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect911"
+ width="84.756966"
+ height="84.756966"
+ x="156.20688"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect913"
+ width="84.756966"
+ height="84.756966"
+ x="240.96384"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect915"
+ width="84.756966"
+ height="84.756966"
+ x="325.72079"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect917"
+ width="84.756966"
+ height="84.756966"
+ x="410.47775"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect919"
+ width="84.756966"
+ height="84.756966"
+ x="495.23474"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect921"
+ width="84.756966"
+ height="84.756966"
+ x="579.9917"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect923"
+ width="84.756966"
+ height="84.756966"
+ x="664.74866"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect925"
+ width="84.756966"
+ height="84.756966"
+ x="749.50562"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect927"
+ width="84.756966"
+ height="84.756966"
+ x="834.26257"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect929"
+ width="84.756966"
+ height="84.756966"
+ x="71.449936"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect931"
+ width="84.756966"
+ height="84.756966"
+ x="156.20691"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect933"
+ width="84.756966"
+ height="84.756966"
+ x="240.96387"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect935"
+ width="84.756966"
+ height="84.756966"
+ x="325.72083"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect937"
+ width="84.756966"
+ height="84.756966"
+ x="410.47778"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect939"
+ width="84.756966"
+ height="84.756966"
+ x="495.23477"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect941"
+ width="84.756966"
+ height="84.756966"
+ x="579.99176"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect943"
+ width="84.756966"
+ height="84.756966"
+ x="664.74872"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect945"
+ width="84.756966"
+ height="84.756966"
+ x="749.50568"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect947"
+ width="84.756966"
+ height="84.756966"
+ x="834.26263"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect949"
+ width="84.756966"
+ height="84.756966"
+ x="71.449966"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect951"
+ width="84.756966"
+ height="84.756966"
+ x="156.20694"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect953"
+ width="84.756966"
+ height="84.756966"
+ x="240.9639"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect955"
+ width="84.756966"
+ height="84.756966"
+ x="325.72086"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect957"
+ width="84.756966"
+ height="84.756966"
+ x="410.47781"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect959"
+ width="84.756966"
+ height="84.756966"
+ x="495.2348"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect961"
+ width="84.756966"
+ height="84.756966"
+ x="579.99176"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect963"
+ width="84.756966"
+ height="84.756966"
+ x="664.74872"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect965"
+ width="84.756966"
+ height="84.756966"
+ x="749.50568"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect967"
+ width="84.756966"
+ height="84.756966"
+ x="834.26263"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect969"
+ width="84.756966"
+ height="84.756966"
+ x="71.449936"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect971"
+ width="84.756966"
+ height="84.756966"
+ x="156.20691"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect973"
+ width="84.756966"
+ height="84.756966"
+ x="240.96387"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect975"
+ width="84.756966"
+ height="84.756966"
+ x="325.72083"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect977"
+ width="84.756966"
+ height="84.756966"
+ x="410.47778"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect979"
+ width="84.756966"
+ height="84.756966"
+ x="495.23477"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect981"
+ width="84.756966"
+ height="84.756966"
+ x="579.99176"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect983"
+ width="84.756966"
+ height="84.756966"
+ x="664.74872"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect985"
+ width="84.756966"
+ height="84.756966"
+ x="749.50568"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect987"
+ width="84.756966"
+ height="84.756966"
+ x="834.26263"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect989"
+ width="84.756966"
+ height="84.756966"
+ x="71.449966"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect991"
+ width="84.756966"
+ height="84.756966"
+ x="156.20694"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect993"
+ width="84.756966"
+ height="84.756966"
+ x="240.9639"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect995"
+ width="84.756966"
+ height="84.756966"
+ x="325.72086"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect997"
+ width="84.756966"
+ height="84.756966"
+ x="410.47781"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect999"
+ width="84.756966"
+ height="84.756966"
+ x="495.2348"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1001"
+ width="84.756966"
+ height="84.756966"
+ x="579.99176"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1003"
+ width="84.756966"
+ height="84.756966"
+ x="664.74872"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1005"
+ width="84.756966"
+ height="84.756966"
+ x="749.50568"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1007"
+ width="84.756966"
+ height="84.756966"
+ x="834.26263"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1009"
+ width="84.756966"
+ height="84.756966"
+ x="71.449936"
+ y="834.30713" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1011"
+ width="84.756966"
+ height="84.756966"
+ x="156.20691"
+ y="834.30713" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1013"
+ width="84.756966"
+ height="84.756966"
+ x="240.96387"
+ y="834.30713" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1015"
+ width="84.756966"
+ height="84.756966"
+ x="325.72083"
+ y="834.30713" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1017"
+ width="84.756966"
+ height="84.756966"
+ x="410.47778"
+ y="834.30713" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1019"
+ width="84.756966"
+ height="84.756966"
+ x="495.23477"
+ y="834.30713" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1021"
+ width="84.756966"
+ height="84.756966"
+ x="579.99176"
+ y="834.30713" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1023"
+ width="84.756966"
+ height="84.756966"
+ x="664.74872"
+ y="834.30713" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1025"
+ width="84.756966"
+ height="84.756966"
+ x="749.50568"
+ y="834.30713" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1027"
+ width="84.756966"
+ height="84.756966"
+ x="834.26263"
+ y="834.30713" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path1029"
+ cx="196.42531"
+ cy="283.91745"
+ r="21.058813" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1031"
+ cx="791.37793"
+ cy="197.10309"
+ r="21.058813" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1033"
+ cx="792.03827"
+ cy="625.56738"
+ r="21.058813" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1035"
+ cx="369.68683"
+ cy="285.2713"
+ r="21.058813" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1037"
+ cx="195.70045"
+ cy="625.53809"
+ r="21.058813" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1057"
+ cx="370.71881"
+ cy="455.9498"
+ r="21.058813" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1059"
+ cx="618.74072"
+ cy="541.64209"
+ r="21.058813" />
+ </g>
+</svg>
diff --git a/doc/livarot-images/snap-rounding-without.png b/doc/livarot-images/snap-rounding-without.png
new file mode 100644
index 0000000..deb4620
--- /dev/null
+++ b/doc/livarot-images/snap-rounding-without.png
Binary files differ
diff --git a/doc/livarot-images/snap-rounding-without.svg b/doc/livarot-images/snap-rounding-without.svg
new file mode 100644
index 0000000..e6da690
--- /dev/null
+++ b/doc/livarot-images/snap-rounding-without.svg
@@ -0,0 +1,802 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="1000"
+ height="1000"
+ viewBox="0 0 1000 1000"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (b11d04efb7, 2020-08-25, custom)"
+ sodipodi:docname="snap-rounding-without.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible;"
+ id="marker1121"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.8217843"
+ inkscape:cx="461.19158"
+ inkscape:cy="497.08908"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:none;stroke:#ff00ff;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+ d="M 198.67033,286.84145 792.25904,194.9126 793.43268,626.26572 368.40575,285.112 l 0.16756,174.08651 257.76564,84.28271 -432.00314,83.95413 z"
+ id="path1061" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect829"
+ width="84.756966"
+ height="84.756966"
+ x="71.449844"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect831"
+ width="84.756966"
+ height="84.756966"
+ x="156.20682"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect833"
+ width="84.756966"
+ height="84.756966"
+ x="240.96378"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect835"
+ width="84.756966"
+ height="84.756966"
+ x="325.72073"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect837"
+ width="84.756966"
+ height="84.756966"
+ x="410.47769"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect839"
+ width="84.756966"
+ height="84.756966"
+ x="495.23468"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect841"
+ width="84.756966"
+ height="84.756966"
+ x="579.99164"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect843"
+ width="84.756966"
+ height="84.756966"
+ x="664.7486"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect845"
+ width="84.756966"
+ height="84.756966"
+ x="749.50555"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect847"
+ width="84.756966"
+ height="84.756966"
+ x="834.26251"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect849"
+ width="84.756966"
+ height="84.756966"
+ x="71.449875"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect851"
+ width="84.756966"
+ height="84.756966"
+ x="156.20685"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect853"
+ width="84.756966"
+ height="84.756966"
+ x="240.96381"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect855"
+ width="84.756966"
+ height="84.756966"
+ x="325.72076"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect857"
+ width="84.756966"
+ height="84.756966"
+ x="410.47772"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect859"
+ width="84.756966"
+ height="84.756966"
+ x="495.23471"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect861"
+ width="84.756966"
+ height="84.756966"
+ x="579.9917"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect863"
+ width="84.756966"
+ height="84.756966"
+ x="664.74866"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect865"
+ width="84.756966"
+ height="84.756966"
+ x="749.50562"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect867"
+ width="84.756966"
+ height="84.756966"
+ x="834.26257"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect869"
+ width="84.756966"
+ height="84.756966"
+ x="71.449905"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect871"
+ width="84.756966"
+ height="84.756966"
+ x="156.20688"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect873"
+ width="84.756966"
+ height="84.756966"
+ x="240.96384"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect875"
+ width="84.756966"
+ height="84.756966"
+ x="325.72079"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect877"
+ width="84.756966"
+ height="84.756966"
+ x="410.47775"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect879"
+ width="84.756966"
+ height="84.756966"
+ x="495.23474"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect881"
+ width="84.756966"
+ height="84.756966"
+ x="579.9917"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect883"
+ width="84.756966"
+ height="84.756966"
+ x="664.74866"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect885"
+ width="84.756966"
+ height="84.756966"
+ x="749.50562"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect887"
+ width="84.756966"
+ height="84.756966"
+ x="834.26257"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect889"
+ width="84.756966"
+ height="84.756966"
+ x="71.449875"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect891"
+ width="84.756966"
+ height="84.756966"
+ x="156.20685"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect893"
+ width="84.756966"
+ height="84.756966"
+ x="240.96381"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect895"
+ width="84.756966"
+ height="84.756966"
+ x="325.72076"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect897"
+ width="84.756966"
+ height="84.756966"
+ x="410.47772"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect899"
+ width="84.756966"
+ height="84.756966"
+ x="495.23471"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect901"
+ width="84.756966"
+ height="84.756966"
+ x="579.9917"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect903"
+ width="84.756966"
+ height="84.756966"
+ x="664.74866"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect905"
+ width="84.756966"
+ height="84.756966"
+ x="749.50562"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect907"
+ width="84.756966"
+ height="84.756966"
+ x="834.26257"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect909"
+ width="84.756966"
+ height="84.756966"
+ x="71.449905"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect911"
+ width="84.756966"
+ height="84.756966"
+ x="156.20688"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect913"
+ width="84.756966"
+ height="84.756966"
+ x="240.96384"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect915"
+ width="84.756966"
+ height="84.756966"
+ x="325.72079"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect917"
+ width="84.756966"
+ height="84.756966"
+ x="410.47775"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect919"
+ width="84.756966"
+ height="84.756966"
+ x="495.23474"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect921"
+ width="84.756966"
+ height="84.756966"
+ x="579.9917"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect923"
+ width="84.756966"
+ height="84.756966"
+ x="664.74866"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect925"
+ width="84.756966"
+ height="84.756966"
+ x="749.50562"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect927"
+ width="84.756966"
+ height="84.756966"
+ x="834.26257"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect929"
+ width="84.756966"
+ height="84.756966"
+ x="71.449936"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect931"
+ width="84.756966"
+ height="84.756966"
+ x="156.20691"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect933"
+ width="84.756966"
+ height="84.756966"
+ x="240.96387"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect935"
+ width="84.756966"
+ height="84.756966"
+ x="325.72083"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect937"
+ width="84.756966"
+ height="84.756966"
+ x="410.47778"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect939"
+ width="84.756966"
+ height="84.756966"
+ x="495.23477"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect941"
+ width="84.756966"
+ height="84.756966"
+ x="579.99176"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect943"
+ width="84.756966"
+ height="84.756966"
+ x="664.74872"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect945"
+ width="84.756966"
+ height="84.756966"
+ x="749.50568"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect947"
+ width="84.756966"
+ height="84.756966"
+ x="834.26263"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect949"
+ width="84.756966"
+ height="84.756966"
+ x="71.449966"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect951"
+ width="84.756966"
+ height="84.756966"
+ x="156.20694"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect953"
+ width="84.756966"
+ height="84.756966"
+ x="240.9639"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect955"
+ width="84.756966"
+ height="84.756966"
+ x="325.72086"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect957"
+ width="84.756966"
+ height="84.756966"
+ x="410.47781"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect959"
+ width="84.756966"
+ height="84.756966"
+ x="495.2348"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect961"
+ width="84.756966"
+ height="84.756966"
+ x="579.99176"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect963"
+ width="84.756966"
+ height="84.756966"
+ x="664.74872"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect965"
+ width="84.756966"
+ height="84.756966"
+ x="749.50568"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect967"
+ width="84.756966"
+ height="84.756966"
+ x="834.26263"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect969"
+ width="84.756966"
+ height="84.756966"
+ x="71.449936"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect971"
+ width="84.756966"
+ height="84.756966"
+ x="156.20691"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect973"
+ width="84.756966"
+ height="84.756966"
+ x="240.96387"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect975"
+ width="84.756966"
+ height="84.756966"
+ x="325.72083"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect977"
+ width="84.756966"
+ height="84.756966"
+ x="410.47778"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect979"
+ width="84.756966"
+ height="84.756966"
+ x="495.23477"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect981"
+ width="84.756966"
+ height="84.756966"
+ x="579.99176"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect983"
+ width="84.756966"
+ height="84.756966"
+ x="664.74872"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect985"
+ width="84.756966"
+ height="84.756966"
+ x="749.50568"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect987"
+ width="84.756966"
+ height="84.756966"
+ x="834.26263"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect989"
+ width="84.756966"
+ height="84.756966"
+ x="71.449966"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect991"
+ width="84.756966"
+ height="84.756966"
+ x="156.20694"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect993"
+ width="84.756966"
+ height="84.756966"
+ x="240.9639"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect995"
+ width="84.756966"
+ height="84.756966"
+ x="325.72086"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect997"
+ width="84.756966"
+ height="84.756966"
+ x="410.47781"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect999"
+ width="84.756966"
+ height="84.756966"
+ x="495.2348"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1001"
+ width="84.756966"
+ height="84.756966"
+ x="579.99176"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1003"
+ width="84.756966"
+ height="84.756966"
+ x="664.74872"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1005"
+ width="84.756966"
+ height="84.756966"
+ x="749.50568"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1007"
+ width="84.756966"
+ height="84.756966"
+ x="834.26263"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1009"
+ width="84.756966"
+ height="84.756966"
+ x="71.449936"
+ y="834.30713" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1011"
+ width="84.756966"
+ height="84.756966"
+ x="156.20691"
+ y="834.30713" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1013"
+ width="84.756966"
+ height="84.756966"
+ x="240.96387"
+ y="834.30713" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1015"
+ width="84.756966"
+ height="84.756966"
+ x="325.72083"
+ y="834.30713" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1017"
+ width="84.756966"
+ height="84.756966"
+ x="410.47778"
+ y="834.30713" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1019"
+ width="84.756966"
+ height="84.756966"
+ x="495.23477"
+ y="834.30713" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1021"
+ width="84.756966"
+ height="84.756966"
+ x="579.99176"
+ y="834.30713" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1023"
+ width="84.756966"
+ height="84.756966"
+ x="664.74872"
+ y="834.30713" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1025"
+ width="84.756966"
+ height="84.756966"
+ x="749.50568"
+ y="834.30713" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1027"
+ width="84.756966"
+ height="84.756966"
+ x="834.26263"
+ y="834.30713" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path1029"
+ cx="196.42531"
+ cy="283.91745"
+ r="21.058813" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1031"
+ cx="791.37793"
+ cy="197.10309"
+ r="21.058813" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1033"
+ cx="792.03827"
+ cy="625.56738"
+ r="21.058813" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1035"
+ cx="369.68683"
+ cy="285.2713"
+ r="21.058813" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1037"
+ cx="195.70045"
+ cy="625.53809"
+ r="21.058813" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1057"
+ cx="370.71881"
+ cy="455.9498"
+ r="21.058813" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1059"
+ cx="618.74072"
+ cy="541.64209"
+ r="21.058813" />
+ </g>
+</svg>
diff --git a/doc/livarot-images/sweep-tree.svg b/doc/livarot-images/sweep-tree.svg
new file mode 100644
index 0000000..6e9b15b
--- /dev/null
+++ b/doc/livarot-images/sweep-tree.svg
@@ -0,0 +1,527 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="124.28852mm"
+ height="94.016853mm"
+ viewBox="0 0 124.28852 94.016851"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (d63ee585f6, 2020-08-11, custom)"
+ sodipodi:docname="sweep-tree.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker1760"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1758" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1726"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1724" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1692"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1690" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1658"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1656" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1624"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1622" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow1Lstart"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path948" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1570"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1568" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1552"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1550" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1528"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1526" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1510"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1508" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1492"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1490" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1456"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1454" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1342"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1340" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1318"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1316" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1294"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1292" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1270"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1268" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1246"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1244" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow1Lend"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path951" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2Mend"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(-0.6)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path975" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="28"
+ inkscape:cy="292.5"
+ inkscape:document-units="mm"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-top="10"
+ fit-margin-left="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-40.978363,-3.0172235)">
+ <g
+ id="g832">
+ <circle
+ style="opacity:1;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.765"
+ id="path823"
+ cx="104.78666"
+ cy="20.534264"
+ r="7.1345401" />
+ <text
+ xml:space="preserve"
+ style="font-size:4.93889px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
+ x="101.53806"
+ y="22.276302"
+ id="text827"><tspan
+ sodipodi:role="line"
+ id="tspan825"
+ style="font-size:4.93889px;stroke-width:0.264583"
+ x="101.53806"
+ y="22.276302">10</tspan></text>
+ </g>
+ <g
+ id="g872"
+ transform="translate(-23.348819,27.982776)">
+ <circle
+ style="opacity:1;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.765"
+ id="circle866"
+ cx="104.78666"
+ cy="20.534264"
+ r="7.1345401" />
+ <text
+ xml:space="preserve"
+ style="font-size:4.93889px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
+ x="101.53806"
+ y="22.276302"
+ id="text870"><tspan
+ sodipodi:role="line"
+ id="tspan868"
+ style="font-size:4.93889px;stroke-width:0.264583"
+ x="101.53806"
+ y="22.276302"> 5</tspan></text>
+ </g>
+ <g
+ id="g880"
+ transform="translate(22.799712,27.982776)">
+ <circle
+ style="opacity:1;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.765"
+ id="circle874"
+ cx="104.78666"
+ cy="20.534264"
+ r="7.1345401" />
+ <text
+ xml:space="preserve"
+ style="font-size:4.93889px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
+ x="101.53806"
+ y="22.276302"
+ id="text878"><tspan
+ sodipodi:role="line"
+ id="tspan876"
+ style="font-size:4.93889px;stroke-width:0.264583"
+ x="101.53806"
+ y="22.276302">15</tspan></text>
+ </g>
+ <g
+ id="g888"
+ transform="translate(-45.471245,58.982776)">
+ <circle
+ style="opacity:1;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.765"
+ id="circle882"
+ cx="104.78666"
+ cy="20.534264"
+ r="7.1345401" />
+ <text
+ xml:space="preserve"
+ style="font-size:4.93889px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
+ x="101.53806"
+ y="22.276302"
+ id="text886"><tspan
+ sodipodi:role="line"
+ id="tspan884"
+ style="font-size:4.93889px;stroke-width:0.264583"
+ x="101.53806"
+ y="22.276302"> 2</tspan></text>
+ </g>
+ <g
+ id="g896"
+ transform="translate(-10.320324,58.982776)">
+ <circle
+ style="opacity:1;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.765"
+ id="circle890"
+ cx="104.78666"
+ cy="20.534264"
+ r="7.1345401" />
+ <text
+ xml:space="preserve"
+ style="font-size:4.93889px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
+ x="101.53806"
+ y="22.276302"
+ id="text894"><tspan
+ sodipodi:role="line"
+ id="tspan892"
+ style="font-size:4.93889px;stroke-width:0.264583"
+ x="101.53806"
+ y="22.276302"> 6</tspan></text>
+ </g>
+ <g
+ id="g904"
+ transform="translate(13.727096,58.982776)">
+ <circle
+ style="opacity:1;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.765"
+ id="circle898"
+ cx="104.78666"
+ cy="20.534264"
+ r="7.1345401" />
+ <text
+ xml:space="preserve"
+ style="font-size:4.93889px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
+ x="101.53806"
+ y="22.276302"
+ id="text902"><tspan
+ sodipodi:role="line"
+ id="tspan900"
+ style="font-size:4.93889px;stroke-width:0.264583"
+ x="101.53806"
+ y="22.276302">12</tspan></text>
+ </g>
+ <g
+ id="g912"
+ transform="translate(42.963188,58.982776)">
+ <circle
+ style="opacity:1;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.765"
+ id="circle906"
+ cx="104.78666"
+ cy="20.534264"
+ r="7.1345401" />
+ <text
+ xml:space="preserve"
+ style="font-size:4.93889px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
+ x="101.53806"
+ y="22.276302"
+ id="text910"><tspan
+ sodipodi:role="line"
+ id="tspan908"
+ style="font-size:4.93889px;stroke-width:0.264583"
+ x="101.53806"
+ y="22.276302">16</tspan></text>
+ </g>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+ d="M 100.25707,26.41835 86.117126,42.284718"
+ id="path946"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1246)"
+ d="m 110.55328,25.303924 13.32307,16.504903"
+ id="path1242"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1270)"
+ d="M 75.828181,53.445818 62.095933,72.494939"
+ id="path1266"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1294)"
+ d="m 86.994418,53.481936 6.28842,18.408665"
+ id="path1290"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1318)"
+ d="m 123.69923,54.909719 -5.50839,16.911353"
+ id="path1314"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1342)"
+ d="M 133.16502,53.221276 144.26564,72.61295"
+ id="path1338"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Lstart);marker-end:url(#marker1456)"
+ d="m 53.998481,73.746375 c 0,0 -8.467299,-17.695479 19.445787,-25.117427"
+ id="path1452" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker1624);marker-end:url(#marker1492)"
+ d="m 83.044574,55.610074 c 0,0 -6.423041,13.995289 5.671534,19.427698"
+ id="path1488" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker1658);marker-end:url(#marker1510)"
+ d="m 97.226875,72.582952 c 0,0 -9.390967,-23.446878 5.899485,-45.018169"
+ id="path1506" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker1692);marker-end:url(#marker1528)"
+ d="m 107.63796,27.676623 c 0,0 11.11293,17.049964 7.50924,45.042653"
+ id="path1524" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker1726);marker-end:url(#marker1552)"
+ d="m 123.64723,74.063491 c 0,0 -2.08728,-6.595073 3.61579,-18.253844"
+ id="path1548" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker1760);marker-end:url(#marker1570)"
+ d="m 135.20751,48.710794 c 0,0 13.47163,6.568286 13.01054,23.537195"
+ id="path1566" />
+ </g>
+</svg>
diff --git a/doc/livarot-images/sweepline-list-node-add-removal.svg b/doc/livarot-images/sweepline-list-node-add-removal.svg
new file mode 100644
index 0000000..10dd86e
--- /dev/null
+++ b/doc/livarot-images/sweepline-list-node-add-removal.svg
@@ -0,0 +1,524 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="1000"
+ height="1000"
+ viewBox="0 0 1000 1000"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (037b845d7b, 2020-08-19, custom)"
+ sodipodi:docname="sweepline-list-node-add-removal.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible;"
+ id="marker1675"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1673" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1603"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1601" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1501"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1499" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1491"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1489" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1481"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1479" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1471"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1469" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1461"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1459" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1451"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1449" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1235"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1233" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1219"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1217" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1195"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1193" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow1Lstart"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path913" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker875"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path873" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1121"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.64995572"
+ inkscape:cx="361.56309"
+ inkscape:cy="626.96579"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <g
+ id="g1847">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect829"
+ width="144.05873"
+ height="72.029366"
+ x="227.12935"
+ y="113.07404" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect833"
+ width="144.05873"
+ height="72.029366"
+ x="614.05084"
+ y="113.07404" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1121)"
+ d="M 398.25309,147.95307 H 580.47504"
+ id="path835" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="248.59921"
+ y="158.92729"
+ id="text851"><tspan
+ sodipodi:role="line"
+ id="tspan849"
+ x="248.59921"
+ y="158.92729">Node A</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="638.16888"
+ y="158.95834"
+ id="text855"><tspan
+ sodipodi:role="line"
+ id="tspan853"
+ x="638.16888"
+ y="158.95834">Node C</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect857"
+ width="144.05873"
+ height="72.029366"
+ x="416.0134"
+ y="289.00961" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="162.1252"
+ y="150.03897"
+ id="text861"><tspan
+ sodipodi:role="line"
+ id="tspan859"
+ x="162.1252"
+ y="150.03897">...</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="799.82977"
+ y="150.34343"
+ id="text865"><tspan
+ sodipodi:role="line"
+ id="tspan863"
+ x="799.82977"
+ y="150.34343">...</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="438.8143"
+ y="334.28433"
+ id="text869"><tspan
+ sodipodi:role="line"
+ id="tspan867"
+ x="438.8143"
+ y="334.28433">Node B</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker875)"
+ d="m 479.34323,276.90051 c 0,0 -7.47623,-74.55159 0.49492,-110.25811"
+ id="path871" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="482.88586"
+ y="214.18095"
+ id="text891"><tspan
+ sodipodi:role="line"
+ id="tspan889"
+ x="482.88586"
+ y="214.18095"
+ style="font-size:16px">Node B should</tspan><tspan
+ sodipodi:role="line"
+ x="482.88586"
+ y="234.18095"
+ id="tspan893"
+ style="font-size:16px">go here!</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Lstart);marker-end:url(#marker1195)"
+ d="m 289.35549,204.02359 c 0,0 -14.54869,110.6081 100.03454,119.46346"
+ id="path911" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker1235);marker-end:url(#marker1219)"
+ d="m 687.26266,201.72696 c 0,0 18.23666,80.13707 -87.49543,121.9944"
+ id="path1215" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="136.2262"
+ y="336.39407"
+ id="text1281"><tspan
+ sodipodi:role="line"
+ x="136.2262"
+ y="336.39407"
+ id="tspan1279"
+ style="font-size:16px">Test intersection of Node A</tspan><tspan
+ sodipodi:role="line"
+ x="136.2262"
+ y="356.39407"
+ style="font-size:16px"
+ id="tspan1285">and Node B</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="650.39099"
+ y="326.96677"
+ id="text1291"><tspan
+ sodipodi:role="line"
+ x="650.39099"
+ y="326.96677"
+ style="font-size:16px"
+ id="tspan1295">Test interesction of Node B</tspan><tspan
+ sodipodi:role="line"
+ x="650.39099"
+ y="346.96677"
+ style="font-size:16px"
+ id="tspan1299">and Node C</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="406.17383"
+ y="83.143784"
+ id="text1355"><tspan
+ sodipodi:role="line"
+ id="tspan1353"
+ x="406.17383"
+ y="83.143784">Node Insertion</tspan></text>
+ </g>
+ <g
+ id="g1993">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1393"
+ width="144.05873"
+ height="72.029366"
+ x="163.45003"
+ y="593.651" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1395"
+ width="144.05873"
+ height="72.029366"
+ x="664.37152"
+ y="593.651" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1501)"
+ d="m 321.20528,628.87828 h 64.22195"
+ id="path1397"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="186.91988"
+ y="639.50427"
+ id="text1401"><tspan
+ sodipodi:role="line"
+ id="tspan1399"
+ x="186.91988"
+ y="639.50427">Node A</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="688.48956"
+ y="639.53534"
+ id="text1405"><tspan
+ sodipodi:role="line"
+ id="tspan1403"
+ x="688.48956"
+ y="639.53534">Node C</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1407"
+ width="144.05873"
+ height="72.029366"
+ x="408.97522"
+ y="593.33228" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="106.44588"
+ y="630.61597"
+ id="text1411"><tspan
+ sodipodi:role="line"
+ id="tspan1409"
+ x="106.44588"
+ y="630.61597">...</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="868.15045"
+ y="630.92041"
+ id="text1415"><tspan
+ sodipodi:role="line"
+ id="tspan1413"
+ x="868.15045"
+ y="630.92041">...</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="431.77612"
+ y="638.60706"
+ id="text1419"><tspan
+ sodipodi:role="line"
+ id="tspan1417"
+ x="431.77612"
+ y="638.60706">Node B</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="396.54059"
+ y="708.59326"
+ id="text1443"><tspan
+ sodipodi:role="line"
+ x="396.54059"
+ y="708.59326"
+ style="font-size:16px"
+ id="tspan1441">Node B is to removed!</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="390.60059"
+ y="554.08777"
+ id="text1447"><tspan
+ sodipodi:role="line"
+ id="tspan1445"
+ x="390.60059"
+ y="554.08777">Node Removal</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1603)"
+ d="m 575.83993,628.89852 h 64.22195"
+ id="path1599"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:200px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="421.59924"
+ y="689.41443"
+ id="text1657"><tspan
+ sodipodi:role="line"
+ id="tspan1655"
+ x="421.59924"
+ y="689.41443"
+ style="font-size:200px;fill:#ff0000">x</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker1461);marker-end:url(#marker1675)"
+ d="m 235.19859,678.95928 c 0,0 261.58614,386.40472 501.64177,-0.73691"
+ id="path1659" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="334.86252"
+ y="879.20044"
+ id="text1697"><tspan
+ sodipodi:role="line"
+ id="tspan1695"
+ x="334.86252"
+ y="879.20044"
+ style="font-size:16px">Test intersection of Node A and Node C</tspan></text>
+ </g>
+ </g>
+</svg>
diff --git a/doc/livarot-images/sweepline-list-node-event.svg b/doc/livarot-images/sweepline-list-node-event.svg
new file mode 100644
index 0000000..113b038
--- /dev/null
+++ b/doc/livarot-images/sweepline-list-node-event.svg
@@ -0,0 +1,749 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="968.10083"
+ height="331.81192"
+ viewBox="0 0 968.10083 331.81192"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (037b845d7b, 2020-08-19, custom)"
+ sodipodi:docname="sweepline-list-node-event.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker5479"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path5477" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker5433"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path5431" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker5393"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path5391" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker5353"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path5351" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker5313"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path5311" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker5267"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path5265" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker5033"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path5031" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker5023"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path5021" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker4979"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path4977" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker4949"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path4947" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker4905"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path4903" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1675"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1673" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1603"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1601" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1491"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1489" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1481"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1479" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1471"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1469" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1461"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1459" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1451"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1449" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1501"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1499" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1603-3"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1601-6" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2716"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2714" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2822"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2820" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2910"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2908" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker3148"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path3146" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker3158"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path3156" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="456"
+ inkscape:cy="218.5"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-top="10"
+ fit-margin-left="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-19.258692,-171.43173)">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1393"
+ width="144.05873"
+ height="72.029366"
+ x="79.677895"
+ y="184.81586" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1395"
+ width="144.05873"
+ height="72.029366"
+ x="552.59943"
+ y="184.81586" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1501)"
+ d="m 235.43316,222.04313 h 64.22195"
+ id="path1397"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="103.14777"
+ y="230.66913"
+ id="text1401"><tspan
+ sodipodi:role="line"
+ id="tspan1399"
+ x="103.14777"
+ y="230.66913">Node A</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="576.71747"
+ y="230.7002"
+ id="text1405"><tspan
+ sodipodi:role="line"
+ id="tspan1403"
+ x="576.71747"
+ y="230.7002">Node C</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1407"
+ width="144.05873"
+ height="72.029366"
+ x="313.20309"
+ y="184.49713" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="38.673744"
+ y="221.78082"
+ id="text1411"><tspan
+ sodipodi:role="line"
+ id="tspan1409"
+ x="38.673744"
+ y="221.78082">...</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="336.004"
+ y="229.77191"
+ id="text1419"><tspan
+ sodipodi:role="line"
+ id="tspan1417"
+ x="336.004"
+ y="229.77191">Node B</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="372.01352"
+ y="468.19766"
+ id="text1447"><tspan
+ sodipodi:role="line"
+ id="tspan1445"
+ x="372.01352"
+ y="468.19766">Intersection Event Y</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1603-3)"
+ d="m 470.06781,220.06337 h 64.22195"
+ id="path1599"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2716)"
+ d="m 711.3125,221.08891 h 64.22195"
+ id="path2712"
+ sodipodi:nodetypes="cc" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect2736"
+ width="144.05873"
+ height="72.029366"
+ x="790.00989"
+ y="183.93173" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="814.12793"
+ y="229.81607"
+ id="text2740"><tspan
+ sodipodi:role="line"
+ id="tspan2738"
+ x="814.12793"
+ y="229.81607">Node D</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="954.80743"
+ y="222.15726"
+ id="text2768"><tspan
+ sodipodi:role="line"
+ id="tspan2766"
+ x="954.80743"
+ y="222.15726">...</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5"
+ id="rect4865"
+ width="280.40131"
+ height="60.872498"
+ x="366.26901"
+ y="427.63132" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1675)"
+ d="m 411.9676,421.78292 c 0,0 -20.52681,-102.8869 -10.50871,-145.89724"
+ id="path4887" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4905)"
+ d="m 602.98362,419.05248 c 0,0 20.52681,-102.8869 10.50871,-145.89724"
+ id="path4901" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="35.503197"
+ y="467.66599"
+ id="text4929"><tspan
+ sodipodi:role="line"
+ id="tspan4927"
+ x="35.503197"
+ y="467.66599">Intersection Event X</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5"
+ id="rect4931"
+ width="280.40131"
+ height="60.872498"
+ x="31.758692"
+ y="427.09964" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="685.30121"
+ y="470.4375"
+ id="text4935"><tspan
+ sodipodi:role="line"
+ id="tspan4933"
+ x="685.30121"
+ y="470.4375">Intersection Event Z</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5"
+ id="rect4937"
+ width="280.40131"
+ height="60.872498"
+ x="681.5567"
+ y="429.87115" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4949)"
+ d="m 275.70823,415.58419 c 0,0 17.41976,-99.46264 48.07449,-147.62808"
+ id="path4945"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4979)"
+ d="m 118.09847,415.23126 c 0,0 -20.526812,-102.8869 -10.50871,-145.89724"
+ id="path4975" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5033)"
+ d="m 701.16684,420.74245 c 0,0 -20.52681,-102.8869 -10.50871,-145.89724"
+ id="path5017" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5023)"
+ d="m 894.18286,416.01201 c 0,0 20.52681,-102.8869 10.50871,-145.89724"
+ id="path5019" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;stroke:none"
+ x="31.799215"
+ y="397.14044"
+ id="text5241"><tspan
+ sodipodi:role="line"
+ id="tspan5239"
+ x="31.799215"
+ y="397.14044"
+ style="font-size:16px;fill:#0000ff;stroke:none">sweep[0]</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;stroke:none"
+ x="201.39487"
+ y="394.77426"
+ id="text5245"><tspan
+ sodipodi:role="line"
+ id="tspan5243"
+ x="201.39487"
+ y="394.77426"
+ style="font-size:16px;fill:#0000ff;stroke:none">sweep[1]</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;stroke:none"
+ x="331.86487"
+ y="412.71164"
+ id="text5249"><tspan
+ sodipodi:role="line"
+ id="tspan5247"
+ x="331.86487"
+ y="412.71164"
+ style="font-size:16px;fill:#0000ff;stroke:none">sweep[0]</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;stroke:none"
+ x="594.96307"
+ y="399.85498"
+ id="text5253"><tspan
+ sodipodi:role="line"
+ id="tspan5251"
+ x="594.96307"
+ y="399.85498"
+ style="font-size:16px;fill:#0000ff;stroke:none">sweep[1]</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;stroke:none"
+ x="644.31329"
+ y="366.16492"
+ id="text5257"><tspan
+ sodipodi:role="line"
+ id="tspan5255"
+ x="644.31329"
+ y="366.16492"
+ style="font-size:16px;fill:#0000ff;stroke:none">sweep[0]</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;stroke:none"
+ x="818.49713"
+ y="398.42136"
+ id="text5261"><tspan
+ sodipodi:role="line"
+ id="tspan5259"
+ x="818.49713"
+ y="398.42136"
+ style="font-size:16px;fill:#0000ff;stroke:none">sweep[1]</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5267)"
+ d="m 146.80155,268.85211 c 0,0 17.80183,84.37686 9.26573,141.4038"
+ id="path5263"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke:none"
+ x="161.88095"
+ y="288.25156"
+ id="text5301"><tspan
+ sodipodi:role="line"
+ id="tspan5299"
+ x="161.88095"
+ y="288.25156"
+ style="font-size:16px;fill:#ff0000;stroke:none">evt[1]</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5313)"
+ d="m 338.14022,269.7805 c 0,0 -11.59661,85.01459 -40.50607,144.5068"
+ id="path5309"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke:none"
+ x="341.47235"
+ y="286.50262"
+ id="text5341"><tspan
+ sodipodi:role="line"
+ id="tspan5339"
+ x="341.47235"
+ y="286.50262"
+ style="font-size:16px;fill:#ff0000;stroke:none">evt[0]</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5353)"
+ d="m 438.36393,268.58972 c 0,0 9.90869,82.06385 -2.54565,147.47676"
+ id="path5349"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke:none"
+ x="451.87653"
+ y="285.96515"
+ id="text5381"><tspan
+ sodipodi:role="line"
+ id="tspan5379"
+ x="451.87653"
+ y="285.96515"
+ style="font-size:16px;fill:#ff0000;stroke:none">evt[1]</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5393)"
+ d="m 586.78974,268.88019 c 0,0 9.90869,82.06385 -2.54565,147.47676"
+ id="path5389"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke:none"
+ x="530.96545"
+ y="288.37717"
+ id="text5421"><tspan
+ sodipodi:role="line"
+ id="tspan5419"
+ x="530.96545"
+ y="288.37717"
+ style="font-size:16px;fill:#ff0000;stroke:none">evt[0]</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5433)"
+ d="m 705.77116,266.30022 c 0,0 30.56394,86.10881 18.1096,151.52172"
+ id="path5429"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke:none"
+ x="824.99908"
+ y="285.34741"
+ id="text5467"><tspan
+ sodipodi:role="line"
+ id="tspan5465"
+ x="824.99908"
+ y="285.34741"
+ style="font-size:16px;fill:#ff0000;stroke:none">evt[0]</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5479)"
+ d="m 824.20936,267.3433 c 0,0 -30.56394,86.10881 -18.1096,151.52172"
+ id="path5475"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke:none"
+ x="728.1355"
+ y="288.90375"
+ id="text5603"><tspan
+ sodipodi:role="line"
+ id="tspan5601"
+ x="728.1355"
+ y="288.90375"
+ style="font-size:16px;fill:#ff0000;stroke:none">evt[1]</tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/sweepline-list-node-intersection.svg b/doc/livarot-images/sweepline-list-node-intersection.svg
new file mode 100644
index 0000000..d625ee8
--- /dev/null
+++ b/doc/livarot-images/sweepline-list-node-intersection.svg
@@ -0,0 +1,607 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="976.51135"
+ height="558.99365"
+ viewBox="0 0 976.51135 558.99365"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (037b845d7b, 2020-08-19, custom)"
+ sodipodi:docname="sweepline-list-node-intersection.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker3158"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path3156" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker3148"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path3146" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker3112"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path3110" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker3090"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path3088" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker3066"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path3064" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker3018"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path3016" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker3002"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path3000" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2920"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2918" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2910"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2908" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2900"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2898" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2822"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2820" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2716"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2714" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1675"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1673" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1603"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1601" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1501"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1499" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1491"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1489" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1481"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1479" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1471"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1469" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1461"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1459" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1451"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1449" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.5"
+ inkscape:cx="234"
+ inkscape:cy="441"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-left="20"
+ fit-margin-right="20"
+ fit-margin-bottom="20"
+ fit-margin-top="20" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-4.514839,-14.117568)">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1393"
+ width="144.05873"
+ height="72.029366"
+ x="62.667423"
+ y="174.41948" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1395"
+ width="144.05873"
+ height="72.029366"
+ x="535.58893"
+ y="174.41948" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1501)"
+ d="m 218.42268,211.64676 h 64.22195"
+ id="path1397"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="86.137276"
+ y="220.27275"
+ id="text1401"><tspan
+ sodipodi:role="line"
+ id="tspan1399"
+ x="86.137276"
+ y="220.27275">Node A</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="559.70697"
+ y="220.30382"
+ id="text1405"><tspan
+ sodipodi:role="line"
+ id="tspan1403"
+ x="559.70697"
+ y="220.30382">Node C</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1407"
+ width="144.05873"
+ height="72.029366"
+ x="296.1926"
+ y="174.10075" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="21.663273"
+ y="211.38445"
+ id="text1411"><tspan
+ sodipodi:role="line"
+ id="tspan1409"
+ x="21.663273"
+ y="211.38445">...</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="318.9935"
+ y="219.37553"
+ id="text1419"><tspan
+ sodipodi:role="line"
+ id="tspan1417"
+ x="318.9935"
+ y="219.37553">Node B</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="383.48172"
+ y="54.37801"
+ id="text1447"><tspan
+ sodipodi:role="line"
+ id="tspan1445"
+ x="383.48172"
+ y="54.37801">Intersection Event</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1603)"
+ d="m 453.05733,209.667 h 64.22195"
+ id="path1599"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2716)"
+ d="m 694.30202,210.69254 h 64.22195"
+ id="path2712"
+ sodipodi:nodetypes="cc" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect2736"
+ width="144.05873"
+ height="72.029366"
+ x="772.99939"
+ y="173.53534" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="797.11743"
+ y="219.41968"
+ id="text2740"><tspan
+ sodipodi:role="line"
+ id="tspan2738"
+ x="797.11743"
+ y="219.41968">Node D</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="937.79694"
+ y="211.76088"
+ id="text2768"><tspan
+ sodipodi:role="line"
+ id="tspan2766"
+ x="937.79694"
+ y="211.76088">...</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker1461);marker-end:url(#marker2822)"
+ d="m 367.07502,165.02758 c 0,0 122.44573,-169.2719463 237.84173,-1.9313"
+ id="path2806" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect2860"
+ width="144.05873"
+ height="72.029366"
+ x="63.344536"
+ y="350.12198" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect2862"
+ width="144.05873"
+ height="72.029366"
+ x="536.26605"
+ y="350.12198" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2920)"
+ d="m 219.0998,387.34925 h 64.22195"
+ id="path2864"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="86.814392"
+ y="395.97525"
+ id="text2868"><tspan
+ sodipodi:role="line"
+ id="tspan2866"
+ x="86.814392"
+ y="395.97525">Node A</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="560.38409"
+ y="396.00632"
+ id="text2872"><tspan
+ sodipodi:role="line"
+ id="tspan2870"
+ x="560.38409"
+ y="396.00632">Node B</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect2874"
+ width="144.05873"
+ height="72.029366"
+ x="296.86972"
+ y="349.80325" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="22.340389"
+ y="387.08694"
+ id="text2878"><tspan
+ sodipodi:role="line"
+ id="tspan2876"
+ x="22.340389"
+ y="387.08694">...</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="319.67062"
+ y="395.07803"
+ id="text2882"><tspan
+ sodipodi:role="line"
+ id="tspan2880"
+ x="319.67062"
+ y="395.07803">Node C</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2910)"
+ d="M 453.73445,385.36949 H 517.9564"
+ id="path2884"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2900)"
+ d="m 694.97914,386.39503 h 64.22195"
+ id="path2886"
+ sodipodi:nodetypes="cc" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect2888"
+ width="144.05873"
+ height="72.029366"
+ x="773.67651"
+ y="349.23782" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="797.79456"
+ y="395.12216"
+ id="text2892"><tspan
+ sodipodi:role="line"
+ id="tspan2890"
+ x="797.79456"
+ y="395.12216">Node D</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="938.47406"
+ y="387.46338"
+ id="text2896"><tspan
+ sodipodi:role="line"
+ id="tspan2894"
+ x="938.47406"
+ y="387.46338">...</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker3018)"
+ d="m 354.89564,261.0309 c 23.13156,81.68357 127.46419,10.52624 205.68985,76.25342"
+ id="path2982"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker3066)"
+ d="M 566.79266,261.80415 C 543.6611,343.48772 439.32847,272.33039 361.10281,338.05757"
+ id="path3062"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker3090);marker-end:url(#marker3112)"
+ d="m 148.79191,446.67774 c 0,0 101.99589,128.05773 194.32452,1.50452"
+ id="path3086" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker3148);marker-end:url(#marker3158)"
+ d="m 627.74341,445.12726 c 0,0 101.99589,128.05773 194.32452,1.50452"
+ id="path3144" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="155.84358"
+ y="528.97888"
+ id="text3192"><tspan
+ sodipodi:role="line"
+ id="tspan3190"
+ x="155.84358"
+ y="528.97888"
+ style="font-size:16px">Test intersection between</tspan><tspan
+ sodipodi:role="line"
+ x="155.84358"
+ y="548.97888"
+ style="font-size:16px"
+ id="tspan3194">Node A and Node C</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="636.01483"
+ y="532.88464"
+ id="text3200"><tspan
+ sodipodi:role="line"
+ id="tspan3196"
+ x="636.01483"
+ y="532.88464"
+ style="font-size:16px">Test intersection between</tspan><tspan
+ sodipodi:role="line"
+ x="636.01483"
+ y="552.88464"
+ style="font-size:16px"
+ id="tspan3198">Node B and Node D</tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/teste-intersection.svg b/doc/livarot-images/teste-intersection.svg
new file mode 100644
index 0000000..6da9eff
--- /dev/null
+++ b/doc/livarot-images/teste-intersection.svg
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="1000"
+ height="500"
+ viewBox="0 0 1000 500"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (6f52e792f5, 2020-08-23, custom)"
+ sodipodi:docname="teste-intersection.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker1039"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1037" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1029"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1027" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker979"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path977" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker949"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path947" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1121"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.0419628"
+ inkscape:cx="481.78306"
+ inkscape:cy="314.31066"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ height="500px" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.72916;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1121)"
+ d="M 100.23342,95.023744 359.84197,387.71018"
+ id="path829" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.72916;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker979)"
+ d="M 361.73888,93.579984 102.13033,386.26641"
+ id="path975" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.72916;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1039)"
+ d="M 577.69298,97.217464 837.30153,389.90391"
+ id="path1023" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.72916;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1029)"
+ d="M 839.19844,95.773704 579.58989,388.46014"
+ id="path1025" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="79.295097"
+ y="83.473335"
+ id="text1085"><tspan
+ sodipodi:role="line"
+ id="tspan1083"
+ x="79.295097"
+ y="83.473335">left</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="339.72794"
+ y="83.15741"
+ id="text1089"><tspan
+ sodipodi:role="line"
+ id="tspan1087"
+ x="339.72794"
+ y="83.15741">right</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="550.44861"
+ y="80.070129"
+ id="text1093"><tspan
+ sodipodi:role="line"
+ id="tspan1091"
+ x="550.44861"
+ y="80.070129">right</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="810.88141"
+ y="79.754204"
+ id="text1097"><tspan
+ sodipodi:role="line"
+ id="tspan1095"
+ x="810.88141"
+ y="79.754204">left</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:21.3333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#008000"
+ x="69.516663"
+ y="433.01526"
+ id="text1117"><tspan
+ sodipodi:role="line"
+ id="tspan1115"
+ x="69.516663"
+ y="433.01526"
+ style="font-size:21.3333px">intersection will be detected!</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:21.3333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke:none"
+ x="543.74603"
+ y="429.28043"
+ id="text1121"><tspan
+ sodipodi:role="line"
+ id="tspan1119"
+ x="543.74603"
+ y="429.28043"
+ style="font-size:21.3333px;fill:#ff0000;stroke:none">intersection won't be detected!</tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/winding-brutal-bounds.svg b/doc/livarot-images/winding-brutal-bounds.svg
new file mode 100644
index 0000000..8686d52
--- /dev/null
+++ b/doc/livarot-images/winding-brutal-bounds.svg
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="1000"
+ height="1000"
+ viewBox="0 0 1000 1000"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (d255dbba1b, 2020-08-17, custom)"
+ sodipodi:docname="winding-brutal-bounds.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible;"
+ id="Arrow1Lend"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1262" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker841"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#9d9d9d;stroke-width:1pt;stroke-opacity:1;fill:#9d9d9d;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path839" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1121"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#9d9d9d;stroke-width:1pt;stroke-opacity:1;fill:#9d9d9d;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.75218964"
+ inkscape:cx="438.71915"
+ inkscape:cy="477.93798"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:none;stroke:#9d9d9d;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1121)"
+ d="m 268.58337,281.77376 381.89668,-75.04827 170.54306,234.09509 3.59727,293.7843 -240.71554,101.7599 -382.00521,41.82466 -40.08303,-314.83498 z"
+ id="path829" />
+ <path
+ style="fill:none;stroke:#9d9d9d;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker841)"
+ d="m 386.72433,423.48759 248.27774,-57.7043 51.39574,230.68115 -79.13973,115.11225 -303.03516,-17.57966 z"
+ id="path837" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend);stroke-miterlimit:4;stroke-dasharray:none"
+ d="m 386.72433,423.48759 248.27774,-57.7043"
+ id="path1257" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 385.82101,4.5522816 V 998.06984"
+ id="path1533" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 634.64283,2.2138937 V 995.73145"
+ id="path1535" />
+ <circle
+ style="opacity:1;fill:#000000;fill-rule:evenodd;stroke:#9d9d9d;stroke-width:0.675296;stroke-miterlimit:4;stroke-dasharray:2.70118, 2.70118;stroke-dashoffset:0;stroke-opacity:1"
+ id="path1537"
+ cx="501.03006"
+ cy="531.95819"
+ r="7.3470368" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="516.05164"
+ y="530.62878"
+ id="text1541"><tspan
+ sodipodi:role="line"
+ id="tspan1539"
+ x="516.05164"
+ y="530.62878">px</tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/winding-brutal-endpoints-end.svg b/doc/livarot-images/winding-brutal-endpoints-end.svg
new file mode 100644
index 0000000..8651451
--- /dev/null
+++ b/doc/livarot-images/winding-brutal-endpoints-end.svg
@@ -0,0 +1,497 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="1500"
+ height="500"
+ viewBox="0 0 1500 500"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (d255dbba1b, 2020-08-17, custom)"
+ sodipodi:docname="winding-brutal-endpoints-end.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker1121"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1119" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow1Lend"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1262" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1942"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1940" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2028"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2026" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2090"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2088" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2184"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2182" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.2996964"
+ inkscape:cx="1217.2073"
+ inkscape:cy="312.76535"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1500px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 97.829677,62.083183 V 432.4746"
+ id="path1878" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+ d="m 391.74945,230.44379 -294.128343,6.6255"
+ id="path1712" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path1838"
+ cx="97.440231"
+ cy="237.38846"
+ r="6.9231076" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1840"
+ cx="396.2977"
+ cy="230.35394"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="413.01929"
+ y="258.05316"
+ id="text1844"><tspan
+ sodipodi:role="line"
+ id="tspan1842"
+ x="413.01929"
+ y="258.05316">st</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="52.019428"
+ y="254.02423"
+ id="text1848"><tspan
+ sodipodi:role="line"
+ id="tspan1846"
+ x="52.019428"
+ y="254.02423">en</tspan></text>
+ <circle
+ style="fill:#0000ff;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1872"
+ cx="97.669662"
+ cy="144.77304"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="115.17683"
+ y="148.27361"
+ id="text1876"><tspan
+ sodipodi:role="line"
+ id="tspan1874"
+ x="115.17683"
+ y="148.27361">px</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 508.43652,67.795173 V 438.18658"
+ id="path1918" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1942)"
+ d="M 508.22795,68.781263 508.00138,327.99903"
+ id="path1920"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1922"
+ cx="508.04703"
+ cy="69.100441"
+ r="6.9231076" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1924"
+ cx="508.47964"
+ cy="331.97455"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="469.4422"
+ y="99.835777"
+ id="text1928"><tspan
+ sodipodi:role="line"
+ id="tspan1926"
+ x="469.4422"
+ y="99.835777">st</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="520.54718"
+ y="336.90927"
+ id="text1932"><tspan
+ sodipodi:role="line"
+ id="tspan1930"
+ x="520.54718"
+ y="336.90927">en</tspan></text>
+ <circle
+ style="fill:#0000ff;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1934"
+ cx="507.46701"
+ cy="373.78403"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="524.76398"
+ y="379.10217"
+ id="text1938"><tspan
+ sodipodi:role="line"
+ id="tspan1936"
+ x="524.76398"
+ y="379.10217">px</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 672.03367,73.661163 V 444.05258"
+ id="path2004" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2028)"
+ d="M 671.8071,332.87893 672.03367,73.661163"
+ id="path2006"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle2008"
+ cx="671.64423"
+ cy="74.966438"
+ r="6.9231076" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle2010"
+ cx="672.07684"
+ cy="337.84055"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="627.03937"
+ y="105.70177"
+ id="text2014"><tspan
+ sodipodi:role="line"
+ id="tspan2012"
+ x="627.03937"
+ y="105.70177">en</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="684.14435"
+ y="342.77527"
+ id="text2018"><tspan
+ sodipodi:role="line"
+ id="tspan2016"
+ x="684.14435"
+ y="342.77527">st</tspan></text>
+ <circle
+ style="fill:#0000ff;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle2020"
+ cx="671.06421"
+ cy="379.65002"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="688.36115"
+ y="384.96817"
+ id="text2024"><tspan
+ sodipodi:role="line"
+ id="tspan2022"
+ x="688.36115"
+ y="384.96817">px</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 1074.1954,68.909523 V 439.30094"
+ id="path2066" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2090)"
+ d="m 811.27004,274.91853 262.71676,-31.0229"
+ id="path2068"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle2070"
+ cx="1073.8058"
+ cy="244.21478"
+ r="6.9231076" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle2072"
+ cx="804.8031"
+ cy="274.3696"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="795.71118"
+ y="312.6402"
+ id="text2076"><tspan
+ sodipodi:role="line"
+ id="tspan2074"
+ x="795.71118"
+ y="312.6402">st</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="1031.8691"
+ y="282.4342"
+ id="text2080"><tspan
+ sodipodi:role="line"
+ id="tspan2078"
+ x="1031.8691"
+ y="282.4342">en</tspan></text>
+ <circle
+ style="fill:#0000ff;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle2110"
+ cx="1075.1056"
+ cy="351.57867"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="1092.6128"
+ y="355.07922"
+ id="text2114"><tspan
+ sodipodi:role="line"
+ id="tspan2112"
+ x="1092.6128"
+ y="355.07922">px</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
+ id="rect2146"
+ width="745.49908"
+ height="479.21591"
+ x="15.103928"
+ y="12.970182" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 1185.0759,66.706113 V 437.09753"
+ id="path2160" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2184)"
+ d="M 1454.9518,287.60526 1184.8673,241.69222"
+ id="path2162"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle2164"
+ cx="1184.6863"
+ cy="242.01138"
+ r="6.9231076" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle2166"
+ cx="1460.5824"
+ cy="288.33813"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="1444.3207"
+ y="327.28195"
+ id="text2170"><tspan
+ sodipodi:role="line"
+ id="tspan2168"
+ x="1444.3207"
+ y="327.28195">st</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="1143.5872"
+ y="270.00342"
+ id="text2174"><tspan
+ sodipodi:role="line"
+ id="tspan2172"
+ x="1143.5872"
+ y="270.00342">en</tspan></text>
+ <circle
+ style="fill:#0000ff;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle2176"
+ cx="1185.9861"
+ cy="349.37524"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="1203.4933"
+ y="352.87579"
+ id="text2180"><tspan
+ sodipodi:role="line"
+ id="tspan2178"
+ x="1203.4933"
+ y="352.87579">px</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#008000;stroke-width:0.987852;stroke-miterlimit:4;stroke-dasharray:2.96356, 2.96356;stroke-dashoffset:0"
+ id="rect2216"
+ width="711.75806"
+ height="478.97443"
+ x="778.21667"
+ y="12.970182" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="877.24799"
+ y="163.7778"
+ id="text2220"><tspan
+ sodipodi:role="line"
+ id="tspan2218"
+ x="877.24799"
+ y="163.7778">ll -= weight</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="1242.0385"
+ y="87.960579"
+ id="text2224"><tspan
+ sodipodi:role="line"
+ id="tspan2222"
+ x="1242.0385"
+ y="87.960579">rr += weight</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000"
+ x="146.97099"
+ y="50.400936"
+ id="text3150"><tspan
+ sodipodi:role="line"
+ id="tspan3148"
+ x="146.97099"
+ y="50.400936">en.y &gt;= px.y</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000"
+ x="415.3587"
+ y="470.14624"
+ id="text3185"><tspan
+ sodipodi:role="line"
+ id="tspan3183"
+ x="415.3587"
+ y="470.14624">st.x == px.x</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000"
+ x="586.68628"
+ y="46.106606"
+ id="text3189"><tspan
+ sodipodi:role="line"
+ id="tspan3187"
+ x="586.68628"
+ y="46.106606">st.x == px.x</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#008000"
+ x="844.28601"
+ y="434.89484"
+ id="text3193"><tspan
+ sodipodi:role="line"
+ id="tspan3191"
+ x="844.28601"
+ y="434.89484">st.x &lt; px.x</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#008000"
+ x="1263.3663"
+ y="434.08752"
+ id="text3197"><tspan
+ sodipodi:role="line"
+ id="tspan3195"
+ x="1263.3663"
+ y="434.08752">st.x &gt; px.x</tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/winding-brutal-endpoints-start.svg b/doc/livarot-images/winding-brutal-endpoints-start.svg
new file mode 100644
index 0000000..7522dfb
--- /dev/null
+++ b/doc/livarot-images/winding-brutal-endpoints-start.svg
@@ -0,0 +1,511 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="1500"
+ height="500"
+ viewBox="0 0 1500 500"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (d255dbba1b, 2020-08-17, custom)"
+ sodipodi:docname="winding-brutal-endpoints-start.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker2184"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2182" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2090"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2088" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2028"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2026" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1942"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1940" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow1Send"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Send"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.2,0,0,-0.2,-1.2,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1274" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow1Lend"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1262" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1121"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.2996964"
+ inkscape:cx="1132.5722"
+ inkscape:cy="259.67602"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1200px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 96.784771,60.327315 V 430.71873"
+ id="path1878" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+ d="m 96.576201,235.31342 294.128349,-6.6255"
+ id="path1712" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path1838"
+ cx="96.395317"
+ cy="235.63258"
+ r="6.9231076" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1840"
+ cx="395.25281"
+ cy="228.59808"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="57.790482"
+ y="266.36792"
+ id="text1844"><tspan
+ sodipodi:role="line"
+ id="tspan1842"
+ x="57.790482"
+ y="266.36792">st</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="411.57416"
+ y="252.49287"
+ id="text1848"><tspan
+ sodipodi:role="line"
+ id="tspan1846"
+ x="411.57416"
+ y="252.49287">en</tspan></text>
+ <circle
+ style="fill:#0000ff;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1872"
+ cx="96.624763"
+ cy="143.01718"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="114.13193"
+ y="146.51775"
+ id="text1876"><tspan
+ sodipodi:role="line"
+ id="tspan1874"
+ x="114.13193"
+ y="146.51775">px</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 507.39161,66.039298 V 436.43071"
+ id="path1918" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1942)"
+ d="M 507.18304,67.025395 506.95647,326.24316"
+ id="path1920"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1922"
+ cx="507.00214"
+ cy="67.344566"
+ r="6.9231076" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1924"
+ cx="507.43475"
+ cy="330.21866"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="468.39731"
+ y="98.079903"
+ id="text1928"><tspan
+ sodipodi:role="line"
+ id="tspan1926"
+ x="468.39731"
+ y="98.079903">st</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="519.50226"
+ y="335.15338"
+ id="text1932"><tspan
+ sodipodi:role="line"
+ id="tspan1930"
+ x="519.50226"
+ y="335.15338">en</tspan></text>
+ <circle
+ style="fill:#0000ff;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1934"
+ cx="506.42212"
+ cy="372.02814"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="523.71906"
+ y="377.34628"
+ id="text1938"><tspan
+ sodipodi:role="line"
+ id="tspan1936"
+ x="523.71906"
+ y="377.34628">px</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 670.98876,71.905293 V 442.29671"
+ id="path2004" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2028)"
+ d="M 670.76219,331.12306 670.98876,71.905293"
+ id="path2006"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle2008"
+ cx="670.5993"
+ cy="73.210564"
+ r="6.9231076" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle2010"
+ cx="671.03192"
+ cy="336.08466"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="625.99445"
+ y="103.9459"
+ id="text2014"><tspan
+ sodipodi:role="line"
+ id="tspan2012"
+ x="625.99445"
+ y="103.9459">en</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="683.09943"
+ y="341.01938"
+ id="text2018"><tspan
+ sodipodi:role="line"
+ id="tspan2016"
+ x="683.09943"
+ y="341.01938">st</tspan></text>
+ <circle
+ style="fill:#0000ff;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle2020"
+ cx="670.01929"
+ cy="377.89413"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="687.31622"
+ y="383.21228"
+ id="text2024"><tspan
+ sodipodi:role="line"
+ id="tspan2022"
+ x="687.31622"
+ y="383.21228">px</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 1073.1505,67.153656 V 437.54507"
+ id="path2066" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2090)"
+ d="m 1072.9419,242.13976 -262.71677,31.0229"
+ id="path2068"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle2070"
+ cx="1072.761"
+ cy="242.45892"
+ r="6.9231076" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle2072"
+ cx="803.75818"
+ cy="272.61371"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="1034.1561"
+ y="273.19427"
+ id="text2076"><tspan
+ sodipodi:role="line"
+ id="tspan2074"
+ x="1034.1561"
+ y="273.19427">st</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="796.10779"
+ y="305.62875"
+ id="text2080"><tspan
+ sodipodi:role="line"
+ id="tspan2078"
+ x="796.10779"
+ y="305.62875">en</tspan></text>
+ <circle
+ style="fill:#0000ff;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle2110"
+ cx="1074.0608"
+ cy="349.82278"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="1091.568"
+ y="353.32333"
+ id="text2114"><tspan
+ sodipodi:role="line"
+ id="tspan2112"
+ x="1091.568"
+ y="353.32333">px</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
+ id="rect2146"
+ width="745.49908"
+ height="479.21591"
+ x="14.059022"
+ y="11.214308" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 1184.031,64.950242 V 435.34166"
+ id="path2160" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2184)"
+ d="m 1183.8224,239.93635 270.0845,45.91304"
+ id="path2162"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle2164"
+ cx="1183.6415"
+ cy="240.25551"
+ r="6.9231076" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle2166"
+ cx="1459.5376"
+ cy="286.58224"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="1145.0366"
+ y="270.99084"
+ id="text2170"><tspan
+ sodipodi:role="line"
+ id="tspan2168"
+ x="1145.0366"
+ y="270.99084">st</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="1450.072"
+ y="318.70618"
+ id="text2174"><tspan
+ sodipodi:role="line"
+ id="tspan2172"
+ x="1450.072"
+ y="318.70618">en</tspan></text>
+ <circle
+ style="fill:#0000ff;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle2176"
+ cx="1184.9413"
+ cy="347.61935"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="1202.4485"
+ y="351.1199"
+ id="text2180"><tspan
+ sodipodi:role="line"
+ id="tspan2178"
+ x="1202.4485"
+ y="351.1199">px</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#008000;stroke-width:0.987852;stroke-miterlimit:4;stroke-dasharray:2.96356, 2.96356;stroke-dashoffset:0"
+ id="rect2216"
+ width="711.75806"
+ height="478.97443"
+ x="777.17175"
+ y="11.214308" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="819.9256"
+ y="94.482887"
+ id="text2220"><tspan
+ sodipodi:role="line"
+ id="tspan2218"
+ x="819.9256"
+ y="94.482887">ll += weight</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="1240.9937"
+ y="86.204704"
+ id="text2224"><tspan
+ sodipodi:role="line"
+ id="tspan2222"
+ x="1240.9937"
+ y="86.204704">rr -= weight</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000"
+ x="125.74956"
+ y="48.354774"
+ id="text3150"><tspan
+ sodipodi:role="line"
+ id="tspan3148"
+ x="125.74956"
+ y="48.354774">st.y &gt;= px.y</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000"
+ x="420.27167"
+ y="41.737579"
+ id="text3154"><tspan
+ sodipodi:role="line"
+ id="tspan3152"
+ x="420.27167"
+ y="41.737579">en.x == px.x</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000"
+ x="574.83295"
+ y="470.11664"
+ id="text3158"><tspan
+ sodipodi:role="line"
+ id="tspan3156"
+ x="574.83295"
+ y="470.11664">en.x == px.x</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#008000"
+ x="845.35382"
+ y="457.98773"
+ id="text3162"><tspan
+ sodipodi:role="line"
+ id="tspan3160"
+ x="845.35382"
+ y="457.98773">en.x &lt; px.x</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#008000"
+ x="1265.2245"
+ y="452.51105"
+ id="text3166"><tspan
+ sodipodi:role="line"
+ id="tspan3164"
+ x="1265.2245"
+ y="452.51105">en.x &gt; px.x</tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/winding-brutal-endpoints.svg b/doc/livarot-images/winding-brutal-endpoints.svg
new file mode 100644
index 0000000..9cab8c4
--- /dev/null
+++ b/doc/livarot-images/winding-brutal-endpoints.svg
@@ -0,0 +1,188 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="829.88721"
+ height="493.87897"
+ viewBox="0 0 829.88721 493.87897"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (d255dbba1b, 2020-08-17, custom)"
+ sodipodi:docname="winding-brutal-endpoints.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker1365"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1363" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1355"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1353" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1033"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1031" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1121"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.45951208"
+ inkscape:cx="278.55633"
+ inkscape:cy="477.68058"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-top="10"
+ fit-margin-left="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-115.52707,-7.680121)">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1121)"
+ d="M 125.72018,133.13399 499.61226,69.44625"
+ id="path1015"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1033)"
+ d="M 499.61226,69.44625 924.63869,130.4916"
+ id="path1029"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1365)"
+ d="M 498.83224,293.19301 136.33836,356.14224"
+ id="path1349"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1355)"
+ d="M 935.25687,353.49985 498.83224,293.19301"
+ id="path1351"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2, 4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 499.32489,17.680121 V 491.55908"
+ id="path1421"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="opacity:1;fill:#ff0000;fill-rule:evenodd;stroke:#008000;stroke-width:0.0311553;stroke-miterlimit:4;stroke-dasharray:2, 4;stroke-dashoffset:0"
+ id="path1457"
+ cx="499.85498"
+ cy="70.172821"
+ r="8.2645006" />
+ <circle
+ style="opacity:1;fill:#ff0000;fill-rule:evenodd;stroke:#008000;stroke-width:0.0311553;stroke-miterlimit:4;stroke-dasharray:2, 4;stroke-dashoffset:0"
+ id="circle1459"
+ cx="500.37192"
+ cy="294.22516"
+ r="8.2645006" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="636.28711"
+ y="55.133041"
+ id="text1786"><tspan
+ sodipodi:role="line"
+ id="tspan1784"
+ x="636.28711"
+ y="55.133041">rr -= weight</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="218.99373"
+ y="55.669769"
+ id="text1790"><tspan
+ sodipodi:role="line"
+ id="tspan1788"
+ x="218.99373"
+ y="55.669769">ll -= weight</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="647.1358"
+ y="284.53876"
+ id="text1794"><tspan
+ sodipodi:role="line"
+ id="tspan1792"
+ x="647.1358"
+ y="284.53876">rr += weight</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="229.84239"
+ y="285.0755"
+ id="text1798"><tspan
+ sodipodi:role="line"
+ id="tspan1796"
+ x="229.84239"
+ y="285.0755">ll += weight</tspan></text>
+ <circle
+ style="opacity:1;fill:#000080;fill-rule:evenodd;stroke:#008000;stroke-width:0.0311553;stroke-miterlimit:4;stroke-dasharray:2, 4;stroke-dashoffset:0"
+ id="path1836"
+ cx="499.31451"
+ cy="433.13156"
+ r="8.9434338" />
+ </g>
+</svg>
diff --git a/doc/livarot-images/winding-computation-seed.svg b/doc/livarot-images/winding-computation-seed.svg
new file mode 100644
index 0000000..8b9b947
--- /dev/null
+++ b/doc/livarot-images/winding-computation-seed.svg
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="1000"
+ height="1000"
+ viewBox="0 0 1000 1000"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (d63ee585f6, 2020-08-11, custom)"
+ sodipodi:docname="winding-computation-seed.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible;"
+ id="marker1269"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1267" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1227"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1225" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1165"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1163" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="Arrow1Lend"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path834" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1121"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.56765702"
+ inkscape:cx="177.92434"
+ inkscape:cy="229.89234"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+ d="m 121.86956,280.70098 207.15235,-92.80807 247.52662,6.76662 197.81409,40.11693 105.28065,151.2316 L 859.60009,639.83349 781.39598,762.50486 581.42394,813.80327 327.54639,713.16209 175.00692,516.32686 Z"
+ id="path829" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1121)"
+ d="M 291.03612,295.36209 317.57139,559.41742 504.16027,691.69731 772.31549,514.56028 605.20006,283.82539 Z"
+ id="path1105" />
+ <text
+ xml:space="preserve"
+ style="font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="355.65457"
+ y="98.934639"
+ id="text1159"><tspan
+ sodipodi:role="line"
+ id="tspan1157"
+ x="355.65457"
+ y="98.934639"
+ style="font-size:40px">0</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1165)"
+ d="m 348.01331,88.401867 c 0,0 -36.29881,17.850513 -20.67928,81.507783"
+ id="path1205" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="325.54794"
+ y="229.36482"
+ id="text1215"><tspan
+ sodipodi:role="line"
+ id="tspan1213"
+ x="325.54794"
+ y="229.36482"
+ style="font-size:26.6667px">-1</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1269)"
+ d="m 321.25906,222.28064 c 0,0 -46.68494,-11.6065 -30.57198,62.59189"
+ id="path1259"
+ sodipodi:nodetypes="cc" />
+ </g>
+</svg>
diff --git a/doc/livarot-images/winding-computation.svg b/doc/livarot-images/winding-computation.svg
new file mode 100644
index 0000000..205db22
--- /dev/null
+++ b/doc/livarot-images/winding-computation.svg
@@ -0,0 +1,391 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="1200"
+ height="400"
+ viewBox="0 0 1200 400"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (d63ee585f6, 2020-08-11, custom)"
+ sodipodi:docname="winding-computation.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker1782"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path1780" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1772"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path1770" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1664"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path1662" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1654"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path1652" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1526"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path1524" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1516"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path1514" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1410"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path1408" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="TriangleOutL"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path973" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="Arrow1Send"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Send"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.2) rotate(180) translate(6,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path846" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1121"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.76481579"
+ inkscape:cx="456.31903"
+ inkscape:cy="224.237"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ height="400px" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutL)"
+ d="M 53.102856,121.31063 H 236.91895"
+ id="path1358" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1410)"
+ d="m 236.91895,121.31063 v 183.8161"
+ id="path1406" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="140.01514"
+ y="112.12971"
+ id="text1432"><tspan
+ sodipodi:role="line"
+ id="tspan1430"
+ x="140.01514"
+ y="112.12971">x</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="140.19936"
+ y="146.32263"
+ id="text1436"><tspan
+ sodipodi:role="line"
+ id="tspan1434"
+ x="140.19936"
+ y="146.32263">y</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="203.02963"
+ y="224.92418"
+ id="text1440"><tspan
+ sodipodi:role="line"
+ id="tspan1438"
+ x="203.02963"
+ y="224.92418">y</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="252.29536"
+ y="225.19261"
+ id="text1444"><tspan
+ sodipodi:role="line"
+ id="tspan1442"
+ x="252.29536"
+ y="225.19261">y+w</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="15.981778"
+ y="31.220333"
+ id="text1464"><tspan
+ sodipodi:role="line"
+ id="tspan1462"
+ x="15.981778"
+ y="31.220333">* w = weight of edge</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1526)"
+ d="M 533.64887,119.57667 H 349.83278"
+ id="path1494" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1516)"
+ d="M 533.64887,305.39277 V 121.57667"
+ id="path1496" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="436.74506"
+ y="110.39574"
+ id="text1500"><tspan
+ sodipodi:role="line"
+ id="tspan1498"
+ x="436.74506"
+ y="110.39574">x</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="436.92929"
+ y="144.58867"
+ id="text1504"><tspan
+ sodipodi:role="line"
+ id="tspan1502"
+ x="436.92929"
+ y="144.58867">y</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="499.75955"
+ y="223.19022"
+ id="text1508"><tspan
+ sodipodi:role="line"
+ id="tspan1506"
+ x="499.75955"
+ y="223.19022">y</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="549.02527"
+ y="223.45865"
+ id="text1512"><tspan
+ sodipodi:role="line"
+ id="tspan1510"
+ x="549.02527"
+ y="223.45865">y-w</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1664)"
+ d="M 614.64569,119.84539 H 798.46178"
+ id="path1632" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1654)"
+ d="M 804.46178,305.66149 V 121.84539"
+ id="path1634" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="707.55792"
+ y="110.66445"
+ id="text1638"><tspan
+ sodipodi:role="line"
+ id="tspan1636"
+ x="707.55792"
+ y="110.66445">x</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="707.74219"
+ y="144.85739"
+ id="text1642"><tspan
+ sodipodi:role="line"
+ id="tspan1640"
+ x="707.74219"
+ y="144.85739">y</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="770.57245"
+ y="223.45894"
+ id="text1646"><tspan
+ sodipodi:role="line"
+ id="tspan1644"
+ x="770.57245"
+ y="223.45894">y</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="819.83813"
+ y="223.72737"
+ id="text1650"><tspan
+ sodipodi:role="line"
+ id="tspan1648"
+ x="819.83813"
+ y="223.72737">y-w</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1782)"
+ d="M 1092.9279,123.93169 H 909.11177"
+ id="path1750" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1772)"
+ d="m 1092.9279,123.93169 v 183.8161"
+ id="path1752" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="996.02399"
+ y="114.75076"
+ id="text1756"><tspan
+ sodipodi:role="line"
+ id="tspan1754"
+ x="996.02399"
+ y="114.75076">x</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="996.20825"
+ y="148.9437"
+ id="text1760"><tspan
+ sodipodi:role="line"
+ id="tspan1758"
+ x="996.20825"
+ y="148.9437">y</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="1059.0386"
+ y="227.54524"
+ id="text1764"><tspan
+ sodipodi:role="line"
+ id="tspan1762"
+ x="1059.0386"
+ y="227.54524">y</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="1108.3042"
+ y="227.81367"
+ id="text1768"><tspan
+ sodipodi:role="line"
+ id="tspan1766"
+ x="1108.3042"
+ y="227.81367">y+w</tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/winding-fundamental-principle.svg b/doc/livarot-images/winding-fundamental-principle.svg
new file mode 100644
index 0000000..902e780
--- /dev/null
+++ b/doc/livarot-images/winding-fundamental-principle.svg
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="500"
+ height="500"
+ viewBox="0 0 500 500"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (1a7913d4e8, 2020-08-20, custom)"
+ sodipodi:docname="winding-fundamental-principle.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker1121"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.99317345"
+ inkscape:cx="231.5809"
+ inkscape:cy="261.28367"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="500px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.42384px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 29.636171,408.04605 322.53398,114.92512"
+ id="path829" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-width:1.42384;stroke-linecap:square;stroke-dasharray:1.42384, 4.27153"
+ id="path831"
+ cx="322.59906"
+ cy="114.70495"
+ r="8.5719481" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-width:1.42384;stroke-linecap:square;stroke-dasharray:1.42384, 4.27153"
+ id="circle833"
+ cx="30.021046"
+ cy="409.39725"
+ r="8.5719481" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.42384px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 450.0606,368.89604 322.53398,114.92512"
+ id="path835"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:12.4757px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.779732"
+ x="-172.9818"
+ y="302.38113"
+ id="text839"
+ transform="rotate(-43.803513)"><tspan
+ sodipodi:role="line"
+ id="tspan837"
+ x="-172.9818"
+ y="302.38113"
+ style="font-size:12.4757px;stroke-width:0.779732">edge whose winding numbers we know</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.4757px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.779732"
+ x="277.55835"
+ y="-238.94035"
+ id="text843"
+ transform="rotate(62.524585)"><tspan
+ sodipodi:role="line"
+ id="tspan841"
+ x="277.55835"
+ y="-238.94035"
+ style="font-size:12.4757px;stroke-width:0.779732">edge whose winding numbers we want to find</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.42384;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:1.42384, 4.27153;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 322.53398,114.92512 265.45954,397.65915"
+ id="path861" />
+ <text
+ xml:space="preserve"
+ style="font-size:37.9692px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke:none;stroke-width:1.42384"
+ x="268.44699"
+ y="328.28156"
+ id="text865"><tspan
+ sodipodi:role="line"
+ id="tspan863"
+ x="268.44699"
+ y="328.28156"
+ style="stroke-width:1.42384">x</tspan></text>
+ </g>
+</svg>
diff --git a/doc/markers_design.txt b/doc/markers_design.txt
new file mode 100644
index 0000000..e37ff1c
--- /dev/null
+++ b/doc/markers_design.txt
@@ -0,0 +1,125 @@
+ Markers Design
+ Bryce W. Harrington
+ -----------
+
+Markers (or "arrowheads") are drawing elements specified by the SVG
+standard that can be placed on lines at one of three positions: Start,
+End, or Midpoints. This document isn't intended to be an exhaustive
+guide to Markers, but rather to simply capture notes about the
+implementation of them within Inkscape.
+
+History
+=======
+The marker code was originally developed by Lauris for Sodipodi, but due
+to various issues, the code was not hooked to the interface. Thus
+there was no way for users to actually put markers on lines. He seems
+to have also started some very preliminary work for doing dimensioning,
+although the code is not far enough along to reveal the design intent.
+
+Early in Inkscape, I dug through the code and reactivated the markers
+function, and then hammered on a few of the main issues to get markers
+to (mostly) work. There were a variety of remaining issues (e.g., you
+couldn't change marker colors, updates didn't work very well, and snap
+points were messed up.) But at least they no longer crashed when you
+used them. ;-)
+
+Simarilius and others did the work of getting the UI hooked up for
+markers, and other assorted fixes. A set of stock markers were created
+and distributed with Inkscape.
+
+Since then, though, the code has sat mostly idle, as no one has had
+time/inclination to put more work on it. Despite this, the remaining
+marker issues (color setting in particular) remain popular requests
+among users.
+
+I'm hoping this document assists anyone wishing to work on markers to
+come up to speed with the code more easily than otherwise.
+
+Implementation Files
+====================
+The following files contain code of relevance to markers:
+
+marker.h: Defines the SPMarker and SPMarkerReference classes. SPMarker
+ holds information about the marker's reference points, dimensions,
+ orientation, and viewbox. It also contains an extra transform matrix,
+ a list of views that will need updating if the marker's definition
+ changes, and a set of options relating to units and aspect ratios. The
+ SPMarkerReference provides an URI reference for SPMarkers.
+
+marker.cpp: Implements the sp_marker class, providing functionality for
+ managing the relationship of markers to lines or other objects they've
+ been applied to. Updates reprs and properties as the marker's
+ definition changes. Handles updates/changes to marker views as well.
+
+sp-shape.cpp: "Shapes" are drawing objects which, among other things,
+are able to have start, mid, and end markers applied to them. This file
+implements the handling of start, mid, and end markers, including
+managing references, setting or unsetting, updating, transforming,
+and updating them.
+
+selection-chemistry.cpp: One of the routines in this file implements a
+function for copying defs, including markers.
+
+sp-marker-loc.h: Just contains a set of enum definitions for marker
+locations (start/mid/end).
+
+display/nr-arena-shape.cpp: Arena Shapes handle adding, updating, and
+etc. the children (like markers) of shapes. This also takes care of
+rendering a shape's markers by composing them into the parent's buffer.
+
+helper/stock-items.cpp: This file implements the code for loading
+default marker definitions from Inkscape's markers directory and making
+them available in the current document's defs section.
+
+dialogs/stroke-style.cpp: Implements the stroke style dialog, which
+includes the widgets for displaying stock markers that can be applied to
+lines.
+
+
+Marker Architecture
+===================
+A marker is a distinct drawing element that exists in the <defs> section
+of an SVG document. Markers often appear multiple places in a document
+- for instance, you might have a diagram with dozens of lines, each
+tipped by a copy of the same arrow. Rather than paste a copy of the
+arrowhead in at each point it's used, a single definition is made, and a
+reference, or 'href', is attached at each place its used.
+
+In Inkscape, the marker definition is implemented as a 'SPMarker'
+object, and each reference is a 'SPMarkerView' object. Each SPMarker
+has a listing of all its SPMarkerViews, which it can use for update
+purposes when it changes.
+
+SPShapes are objects which can take markers in one of three places:
+start, middle, or end. The SPShape class also has the routines for
+doing the logistics of setting markers, coordinating references, and so
+forth.
+
+Rendering of the markers is coordinated by SPArenaShape, which handles
+compositing of the rendered marker image into the parent shape's area,
+and takes care of clipping boundaries and such.
+
+We provide a set of stock markers that are loaded from the markers.svg
+file and hooked into each loaded document's data structure. This is
+handled in the stock-items code.
+
+
+Stroke Dialog
+=============
+In the stroke style dialog, several routines allow for setting and
+interacting with the stroke markers. Most of these routines are already
+documented, but a few are worth some additional attention.
+
+sp_marker_prev_new(): Generates the preview images of markers for
+display in the marker menu.
+
+sp_marker_list_from_doc(): Generates a listing of non-stock markers in
+the document. Generates preview and label for the marker.
+
+ink_markers_preview_doc(): Returns a new document containing default
+start, mid, and end markers by creating the SVG text and running it
+through sp_document_new_from_mem. I'm not entirely sure why this
+exists, but it's called from sp_stroke_style_line_widget_new() so
+presumably is needed.
+
+ink_marker_menu(): Generates the marker menu.
diff --git a/doc/nr-filter-interface.txt b/doc/nr-filter-interface.txt
new file mode 100644
index 0000000..012accf
--- /dev/null
+++ b/doc/nr-filter-interface.txt
@@ -0,0 +1,229 @@
+Public interface for NR::Filter and NR::FilterPrimitive
+
+Constructors
+============
+
+Filter::Filter()
+Creates a new filter with space for one filter element
+
+Filter::Filter(int n)
+Creates a new filter with space for n filter elements. If number of filter
+elements is known beforehand, it's better to use this constructor.
+
+
+Managing filter primitives
+==========================
+
+FilterPrimitive * Filter::add_primitive(FilterPrimitiveType type)
+Creates a new filter primitive under this filter object.
+New primitive is placed so that it will be executed after all filter
+primitives defined beforehand for this filter object.
+Should this filter not have enough space for a new primitive, the filter
+is enlarged to accommodate the new filter element. It may be enlarged by more
+that one element.
+Returns a pointer to the filter primitive created.
+Returns NULL, if type is not valid filter primitive type or filter primitive
+of such type cannot be created.
+
+void Filter::clear_primitives()
+Removes all filter primitives from this filter.
+All pointers to filter primitives inside this filter should be considered
+invalid after calling this function.
+
+FilterPrimitive * Filter::replace_primitive(FilterPrimitive *target,
+ FilterPrimitiveType type)
+Replaces filter primitive pointed by 'target' with a new filter primitive of
+type 'type'
+If 'target' does not correspond to any primitive inside this filter OR
+'type' is not a valid filter primitive type OR
+filter primitive of such type cannot be created,
+this function returns NULL and doesn't change the internal state of this
+filter.
+Otherwise, a new filter primitive is created. Any pointers to filter primitive
+'target' should be considered invalid. A pointer to the newly created
+primitive is returned.
+
+
+Filter primitive types
+======================
+
+enum FilterPrimitiveType is declared in display/nr-filter-types.h
+
+Enumeration value Corresponding filter primitive
+NR_FILTER_BLEND feBlend
+NR_FILTER_COLORMATRIX feColorMatrix
+NR_FILTER_COMPONENTTRANSFER feComponentTransfer
+NR_FILTER_COMPOSITE feComposite
+NR_FILTER_CONVOLVEMATRIX feConvolveMatrix
+NR_FILTER_DIFFUSELIGHTING feDiffuseLighting
+NR_FILTER_DISPLACEMENTMAP feDisplacementMap
+NR_FILTER_FLOOD feFlood
+NR_FILTER_GAUSSIANBLUR feGaussianBlur
+NR_FILTER_IMAGE feImage
+NR_FILTER_MERGE feMerge
+NR_FILTER_MORPHOLOGY feMorphology
+NR_FILTER_OFFSET feOffset
+NR_FILTER_SPECULARLIGHTING feSpecularLighting
+NR_FILTER_TILE feTile
+NR_FILTER_TURBULENCE feTurbulence
+
+
+Setting inputs and outputs for filter primitives
+================================================
+
+Each filter primitive can take one or more images as inputs and produces
+a single image as output. In NR::Filter these are managed as image slots.
+Every slot can hold one image.
+
+There are two types of slots: pre-defined and user defined. Pre-defined
+slots may only be used as inputs, while user defined slots may be used as
+both inputs and outputs. User defined slots are numbered from 0 upwards,
+pre-defined slots are numbered with the following constants:
+
+Constant name Corresponding SVG input name
+NR_FILTER_SOURCEGRAPHIC SourceGraphic
+NR_FILTER_SOURCEALPHA SourceAlpha
+NR_FILTER_BACKGROUNDIMAGE BackgroundImage
+NR_FILTER_BACKGROUNDALPHA BackgroundAlpha
+NR_FILTER_FILLPAINT FillPaint
+NR_FILTER_SOURCEPAINT SourcePaint
+(defined in display/nr-filter-types.h)
+
+Any user defined slot used as input must be the output of some previous
+filter primitive. Other than that, user defined input slots do not need to be
+used in any particular order.
+
+void FilterPrimitive::set_input(int slot)
+Sets the input slot number 'slot' to be used as input in rendering filter
+primitive 'primitive'
+For filter primitive types accepting more than one input, this sets the
+first input.
+If any of the required input slots is not set, the output of previous filter
+primitive is used, or SourceGraphic if this is the first primitive for this
+filter.
+
+void FilterPrimitive::set_input(int input, int slot)
+Sets the input slot number 'slot' to be user as input number 'input' in
+rendering filter primitive 'primitive'
+First input for a filter primitive is number 0. For primitives with attributes
+'in' and 'in2', these are numbered 0 and 1, respectively.
+If any of required input slots for a filter is not set, the output of
+previous filter primitive is used, or SourceGraphic if this is the first
+filter primitive for this filter.
+
+void FilterPrimitive::set_output(int slot)
+Sets the slot number 'slot' to be used as output from filter primitive
+'primitive'
+If output slot for a filter element is not set, one of the unused image
+slots is used.
+It is an error to specify a pre-defined slot as 'slot'. Such call does
+not have any effect to the state of filter or its primitives.
+
+void Filter::set_output(int slot)
+Sets the slot number 'slot' to be used as result from this filter.
+If output is not set, the output from last filter primitive is used as
+output from the filter.
+It is an error to specify a pre-defined slot as 'slot'. Such call does
+not have any effect to the state of filter or its primitives.
+
+
+Functions for reading filter state
+==================================
+
+int Filter::get_enlarge(Matrix const &m)
+Returns the amount of pixels the rendering area should be enlarged
+to prevent visual artefacts when filter needs to read pixels that
+are outside its output area (e.g. gaussian blur)
+
+void Filter::bbox_enlarge(NRRectL &bbox)
+Given an object bounding box, this function enlarges it so that it
+contains the filter effect area
+
+
+Filter effects region and filter primitive subregion
+====================================================
+
+void Filter::set_x(SVGLength &length)
+void FilterPrimitive::set_x(SVGLength &length)
+
+void Filter::set_y(SVGLength &length)
+void FilterPrimitive::set_y(SVGLength &length)
+
+void Filter::set_width(SVGLength &length)
+void FilterPrimitive::set_width(SVGLength &length)
+
+void Filter::set_height(SVGLength &length)
+void FilterPrimitive::set_width(SVGLength &length)
+
+These functions set the parameters for filter effects region and filter
+primitive subregion.
+Passing an unset length (length._set == false) results in no changes to
+filter state.
+Filter will not hold any references to the passed SVGLength object after
+function returns.
+If any of these parameters does not get set - either because function
+for setting that is not called, or it is called with an unset length -
+the default value, as defined in SVG standard, for that parameter is
+used instead.
+
+void Filter::set_region(SVGLength &x, SVGLength &y,
+ SVGLength &width, SVGLength &height)
+void FilterPrimitive::set_region(SVGLength &x, SVGLength &y,
+ SVGLength &width, SVGLength &height)
+
+This is shorthand for calling set_x(x), set_y(y), set_width(width) and
+set_height(height). The result is as if those four functions had been
+called separately.
+
+void Filter::reset_region()
+void FilterPrimitive::reset_region()
+
+Resets the filter effects region or filter primitive subregion to its
+default value as defined in SVG standard.
+
+void Filter::set_resolution(double x_pixels)
+
+Sets the width of intermediate images in pixels. If not set, suitable
+resolution is determined automatically. If x_pixels is less than zero,
+calling this function results in no changes to filter state.
+
+void Filter::set_resolution(double x_pixels, double y_pixels)
+
+Sets the width and height of intermediate images in pixels. If not set,
+suitable resolution is determined automatically. If either parameter is
+less than zero, calling this function results in no changes to filter
+state.
+
+void Filter::reset_resolution()
+
+Resets the filter resolution to its default value, i.e. automatically
+determined.
+
+void Filter::set_filter_units(SPFilterUnits unit)
+void Filter::set_primitive_units(SPFilterUnits unit)
+
+Set the filterUnits and primitiveUnits -properteries, respectively. If
+not set, the default values are used: objectBoundingBox for filterUnits
+and userSpaceOnUse for primitiveUnits. If the parameter value is not a
+valid enumeration value from SPFilterUnits, no changes to filter state
+are made.
+
+
+Parameters specific to some filter primitive type
+=================================================
+
+Gaussian blur
+-------------
+
+void FilterGaussian::set_deviation(double deviation)
+void FilterGaussian::set_deviation(double x, double y)
+
+Set the standard deviation value for gaussian blur. One-parameter
+version sets deviation along both axis to same value, two-parameter
+version allows setting deviation along x- and y-axis separately.
+Passing either of these functions a negative value, NaN or infinity is
+considered an error and no changes to filter state are made. If not set,
+default value of zero is used, which means the filter results in
+transparent black image.
+(NB: as for now, the default value can be overridden with configuration
+file parameter options.filtertest)
diff --git a/doc/refcounting.txt b/doc/refcounting.txt
new file mode 100644
index 0000000..e409262
--- /dev/null
+++ b/doc/refcounting.txt
@@ -0,0 +1,136 @@
+Refcounting
+-----------
+
+INTRODUCTION
+
+Many objects in Inkscape have lifecycles which are managed by
+"reference counting". Each such object has a counter associated with it,
+which is supposed to reflect the number of outstanding references to it.
+When that counter falls to zero, the object can be freed.
+
+This releases the programmer from worrying about having freed an object
+while somebody else is still using it (or someone else freeing while
+you're using it!). Simply "ref" the object (increment the counter) to
+stake your claim, and then "unref" it (decrement the counter) when you don't
+need it anymore. The ultimate decision to free the object is made safely
+behind the scenes.
+
+You should "ref" an object whenever you plan to hold onto it while
+transferring control to another part of the code (which might otherwise
+end up freeing the object out from under you).
+
+REFCOUNTING FUNCTIONS
+
+Ref and unref functions are provided to manipulate an object's refcount
+(and perhaps make the final decision to free the object), but their names
+will vary depending on the type of object.
+
+Examples include g_object_ref()/g_object_unref() (for most GObject-based
+types), sp_object_ref()/sp_object_unref() (for SPObject-derived classes),
+and GC::anchor()/GC::release (for garbage-collector managed objects deriving
+from GC::Anchored -- more on that later).
+
+[ note: for code underneath the Inkscape namespace, you need only write
+ GC::anchor(), but in other code you will need to write
+ Inkscape::GC::anchor(), or import the GC namespace to your .cpp file
+ with:
+
+ namespace GC = Inkscape::GC;
+
+ Consider this encouragement to start writing new code in the Inkscape
+ namespace. ]
+
+REFCOUNTING POLICY
+
+Refcounted objects start with a reference count of one when they are
+created. This means that you do not need to manually ref one that you've
+just created. However, you will still be responsible for unreffing it when
+you're done with it.
+
+This means that during the lifetime of an object, there should be N refs
+and N+1 unrefs on it. If these become unbalanced, then you are likely to
+experience either transient crashing bugs (the object gets freed while
+someone is still using it) or memory leaks (the object never gets freed).
+
+As a rule, an object should be unreffed by the same class or compilation
+unit that reffed it. Reffing or unreffing an object on someone else's behalf
+is usually a recipe for confusion (and defeats the point of refcounting,
+really). If you pass someone a pointer, they should be the ones responsible
+for reffing it if they need to hold onto it. Similarly, you shouldn't try to
+make the decision to unref it for them.
+
+When you've unreffed the last ref you know about, you should generally
+assume that the object is now gone forever.
+
+CIRCULAR REFERENCES
+
+One disadvantage of reference counting is that a naive application of it
+breaks down in the presence of objects that reference each other. Common
+examples are elements in a doubly-linked list with "prev" and "next"
+pointers, and nodes in a tree, where a parent keeps a list of children, and
+children keep a pointer to their parent. If both cases, if there is a "ref"
+in both directions, neither object can ever get freed.
+
+Because of this, circular data structures should be avoided when possible.
+When they are necessary, try only "reffing" in one direction
+(e.g. parent -> child) but not the other (e.g. child -> parent).
+
+This can sometimes be trickier than it sounds -- circular references don't
+have to be direct to cause problems. A simple example of an indirect circular
+reference would be a circular singly-linked list, where the "last" element
+in the list points back to the "first". In that case, unidirectional
+reffing isn't sufficient; you'd have no choice but to delegate ref handling to
+some object which encapsuled the circular list, reffing and unreffing entries
+as it added and removed them.
+
+ANCHORED OBJECTS
+
+As a rule of thumb, the garbage collector can see pointers in:
+
+ * global/static variables in the program
+
+ * local variables/parameters
+
+ * objects derived from GC::Managed<>
+
+ * STL containers using GC::Alloc<>
+
+ * objects manually allocated with GC::SCANNED
+
+It cannot see pointers in:
+
+ * global/static variables in shared libraries
+
+ * objects not derived from GC::Managed<>
+
+ * STL containers not using GC::Alloc<>
+
+Since a lot of important objects (e.g. gtkmm widgets or Glib collections)
+fall into the latter category, I've provided the GC::Anchored class from
+which garbage-collector managed classes can be derived if they may be
+remembered in such places. As noted earlier, the associated ref and unref
+functions are GC::anchor() and GC::release(), respectively.
+
+For most refcounted objects, a nonzero refcount means "this object is in
+use", and a zero refcount means "this object is no longer in use, you can
+free it now". For GC::Anchored objects, refcounting is merely an override
+to the normal operation of the garbage collector, so the rules are relaxed
+somewhat: a nonzero refcount merely means "the object is in use in places that
+the garbage collector can't see", and a zero refcount asserts that "the garbage
+collector can now see every use that matters".
+
+While GC::Anchored objects start with an initial refcount of one like
+any other refcounted type, in most cases it's safe (and convenient) to
+GC::release the object immediately upon creating it. This is because the
+garbage collector can see references to the object from parameters or local
+variables. Trust the collector.
+
+One final note: when code is converted from pure refcounting to garbage
+collection with GC::Anchored, refs and unrefs between GC::Anchored objects
+should be removed. Refs are no longer necessary, and when circular references
+are present, reffing will lead to memory leaks.
+
+Normally (unlike pure refcounting) the collector has no problem with freeing
+circular references, but GC::anchor()ing a reference the collector can
+already see overrides the collector's judgement.
+
diff --git a/doc/spsvgview.txt b/doc/spsvgview.txt
new file mode 100644
index 0000000..ff48947
--- /dev/null
+++ b/doc/spsvgview.txt
@@ -0,0 +1,15 @@
+Both spsvgview and sodipodi are mostly built from a set of common
+libraries (these are static of course, to save people from
+versioning pain, but can in theory function as dynamic libs
+as well).
+The shared dynamic SVG GUI is built from:
+* libarikkei, libnr, libnrtype - lowlevel helper code
+* libspxml - xml backbone
+* libspsvg - svg parsing helpers
+* libspdisplay - GUI-independent renderer
+* libsodipodi - dynamic SVG document
+Sodipodi and spsvgview attach SVG document to different
+widgets (SPDesktop and SPSVGView), plus sodipodi adds
+extra controller parts (event contexts, selections, dialogs).
+The separation is still not 100%, but quite close, and should
+be easy to complete, if needed.