<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.inkscape.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jfb</id>
	<title>Inkscape Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.inkscape.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jfb"/>
	<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/Special:Contributions/Jfb"/>
	<updated>2026-04-29T02:30:04Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=54229</id>
		<title>Release notes/0.47</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=54229"/>
		<updated>2009-10-13T09:20:25Z</updated>

		<summary type="html">&lt;p&gt;Jfb: /* New effects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Inkscape 0.47==&lt;br /&gt;
'''(not released yet - [[AnnouncePlanning047]])'''&lt;br /&gt;
&lt;br /&gt;
Inkscape 0.47 brings a host of important improvements all across the program:&lt;br /&gt;
&lt;br /&gt;
* '''Timed autosave''': no more lost work&lt;br /&gt;
&lt;br /&gt;
* '''Spiro splines''': an exciting new way to work with paths, fully supported in Pen, Pencil, and Node tools &lt;br /&gt;
&lt;br /&gt;
* '''Auto smooth nodes''': a new type of node that keeps the path as smooth as possible as you move it or its neighbors&lt;br /&gt;
&lt;br /&gt;
* New modes in '''Tweak tool''': pushing and jittering whole objects, scaling/rotating objects, deleting and duplicating using the &amp;quot;soft brush&amp;quot; &lt;br /&gt;
&lt;br /&gt;
* Reworked, much more usable '''snapping system''' and a Snapping toolbar&lt;br /&gt;
&lt;br /&gt;
* New '''path effects''', including sketch, hatching, envelope deformation; effects can be stacked and assigned to groups&lt;br /&gt;
&lt;br /&gt;
* A huge collection of '''preset filters''' in the new Filters menu&lt;br /&gt;
&lt;br /&gt;
* New cairo-based '''PS and EPS export''': improved quality, more features supported, fallback rasterization for filters and transparency&lt;br /&gt;
&lt;br /&gt;
* '''Spell checker''' for text objects in a document&lt;br /&gt;
&lt;br /&gt;
* Many '''new extensions''': restacking, calendar, printing marks, cartesian and polar grids, interpolating attributes&lt;br /&gt;
&lt;br /&gt;
* '''Optimized SVG code''' options, now with their own Preferences page&lt;br /&gt;
&lt;br /&gt;
* Many other improvements, usability tweaks, memleak stops, and misc bugfixes&lt;br /&gt;
&lt;br /&gt;
==Refactoring effort==&lt;br /&gt;
&lt;br /&gt;
The focus of the 0.47 release was to clean up legacy code and push forward the migration to clean object-oriented C++. The goal of this effort was to increase reliability and maintainability of Inkscape. In the long run, it will mean fewer bugs and more new features, because it will be easier to develop and find bugs in Inkscape.&lt;br /&gt;
&lt;br /&gt;
===Migration to lib2geom===&lt;br /&gt;
Many parts of the code have been changed to use the 2geom library for geometrical calculations instead of the old libnr and livarot libraries.&lt;br /&gt;
&lt;br /&gt;
===Preferences===&lt;br /&gt;
Instead of global functions directly manipulating an XML document, the preferences API is now exposed through the &amp;lt;code&amp;gt;Inkscape::Preferences&amp;lt;/code&amp;gt; singleton. It abstracts away the way the preferences are stored in memory. In the future it may allow for different user settings storage backends (like GConf or the upcoming dconf on GNOME desktops or .plist files on OS X). Previously, Inkscape directly manipulated an internal XML document.&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
&lt;br /&gt;
===Node tool===&lt;br /&gt;
&lt;br /&gt;
* In previous versions of Inkscape, no visual feedback was given back to the user when hovering over paths when using the ''Node tool''. In this update, hovering over a path with the ''Node tool'' now results in a highlighted path outline being displayed. '''Note:''' the duration and color of the new path outline feature can be configured in the '''Tools &amp;gt; Node''' section of the  '''Inkscape Preferences''' dialog.&lt;br /&gt;
&lt;br /&gt;
* The Node tool can now edit '''clipping paths''' and '''masks''' of objects on canvas, without releasing them. If the selected object has a clipping path and mask, the corresponding buttons on the controls bar of the tool will be enabled; pressing these buttons will display the editable paths or handles of the clippath or mask. A clipping path is stroked green, a mask is stroked blue (the same colors as those used for them in Outline mode).&lt;br /&gt;
&lt;br /&gt;
* Snapping has been improved (more details in Snapping below).&lt;br /&gt;
&lt;br /&gt;
* When dragging a node handle with '''Ctrl''' pressed, it now snaps not only to the 15 degree increments starting from 0 and to the original handle direction, but also to the direction of the opposite handle (if it exists) or of the opposite line segment (if it is a straight line).&lt;br /&gt;
&lt;br /&gt;
* The behavior of the buttons/shortcuts that make a node smooth or cusp has been improved:&lt;br /&gt;
** If a node is already a cusp (diamond shaped), pressing Shift+C again on it will retract both its handles. As this works for any number of selected nodes, you can always retract all handles in all nodes by selecting all nodes and pressing Shift+C twice.&lt;br /&gt;
** If a non-smooth node is next to a straight line segment, pressing Shift+S once makes it ''half-smooth'': it now has one handle aligned with that line segment. Another press of Shift+S will expand the second handle as well turning it into a full smooth node. If a node is between two curve segments, Shift+S will expand both handles as before.&lt;br /&gt;
&lt;br /&gt;
*'''Auto smooth nodes''': this is a new node type, similar to the one  Xara Xtreme has. An auto node is a smooth node which automatically adjusts (rotates and stretches) its handles when this node or its neighbors are moved. This adjustment (same as what you get when you convert node type to Smooth, but continuous) keeps the curve at this node as smooth as possible. It feels a bit like Spiro paths (see below); although not as smooth as a Spiro, auto nodes may often be preferable as they work without applying any path effect. Whenever you manually adjust the ''handles'' of an auto node or drag the adjacent ''curve'', the node loses its auto state and becomes simply smooth; for this reason, it is recommended to edit smooth nodes with the node handles hidden via a toggle button on the Node tool controls bar. Auto nodes are represented by little circles, as opposed to smooth/symmetric nodes (squares) and cusp nodes (diamonds). To convert selected node(s) to auto, press '''Shift+A''' or use the corresponding node type button on the controls bar.&lt;br /&gt;
&lt;br /&gt;
===Tweak tool===&lt;br /&gt;
&lt;br /&gt;
Several new modes are added to the Tweak tool for transforming, duplicating, and deleting selected objects using the same &amp;quot;soft brush&amp;quot; metaphor that the path editing and coloring modes use. Using these new modes, it is easy to &amp;quot;sculpt&amp;quot; scatterings of small objects, such as clone tilings, into complex and naturalistic textures.&lt;br /&gt;
&lt;br /&gt;
* '''Push mode''' moves those selected objects that are under the brush in the direction in which you move the brush. This is similar to the Push path mode, except that the Move mode affects entire objects and not parts of the paths under the brush.&lt;br /&gt;
&lt;br /&gt;
* '''Attract/Repel Objects mode'''  moves those selected objects that are under the brush towards the cursor (default) or away from cursor (with '''Shift''' pressed). This is similar to the Attract/repel path mode, except that the Move in/out mode affects entire objects and not parts of the paths under cursor.&lt;br /&gt;
&lt;br /&gt;
* '''Jitter mode''' moves those selected objects that are under the brush in random directions and by random amounts, but the overall amount of movement depends on Force, pen pressure (if you're using a tablet pen), on the closeness of the object to the center of brush, and on how long you apply the brush.&lt;br /&gt;
&lt;br /&gt;
* '''Scale mode''' scales those selected objects that are under the brush down (by default) or up (with '''Shift''' pressed). The speed of scaling depends on Force, pen pressure (if you're using a tablet pen), on the closeness of the object to the center of brush, and on how long you apply the brush.&lt;br /&gt;
&lt;br /&gt;
* '''Rotate mode''' rotates those selected objects that are under the brush clockwise (by default) or counterclockwise (with '''Shift''' pressed). The speed of rotation depends on Force, pen pressure (if you're using a tablet pen), on the closeness of the object to the center of brush, and on how long you apply the brush. &lt;br /&gt;
&lt;br /&gt;
* '''Duplicate/delete mode''' randomly duplicates those selected objects that are under the brush (by default) or deletes them (with '''Shift''' pressed). The chance of an object to be duplicated and deleted depends on Force, pen pressure (if you're using a tablet pen), on the closeness of the object to the center of brush, and on how long you apply the brush. Like with the regular Duplicate command, duplicating with Tweak tool places the copies right over the originals, and you may need to use the Jitter mode to ruffle them apart.  The duplicates created by the tool are automatically added to selection if the originals objects were in selection (e.g. if you're tweaking a group of objects, they are duplicated within that group and are not by themselves selected). &lt;br /&gt;
&lt;br /&gt;
*'''Blur mode''' blurs the selected objects under the brush more (by default) or less (with Shift pressed). The amount of blur added or removed depends on Force, pen pressure (if you're using a tablet pen), on the closeness of the object to the center of brush, and on how long you apply the brush. &lt;br /&gt;
&lt;br /&gt;
Also, the existing path editing modes of the tool have been rearranged: now Shrink and Grow are one mode (shrinks by default, grows with Shift), and Attract and Repel are one mode (attracts by default, repels with Shift). Here is a complete list of modes and shortcuts of the Tweak tool:&lt;br /&gt;
&lt;br /&gt;
 Shift+m, Shift+0	        move mode&lt;br /&gt;
 Shift+i, Shift+1	attract/repel objects mode&lt;br /&gt;
 Shift+z, Shift+2	jitter mode&lt;br /&gt;
 Shift+&amp;lt;, Shift+&amp;gt;, Shift+3	scale mode&lt;br /&gt;
 Shift+[, Shift+], Shift+4	rotate mode&lt;br /&gt;
 Shift+d, Shift+5	duplicate/delete mode&lt;br /&gt;
 Shift+p, Shift+6	push path mode&lt;br /&gt;
 Shift+s, Shift+7	shrink/grow path mode&lt;br /&gt;
 Shift+a, Shift+8	attract/repel path mode&lt;br /&gt;
 Shift+r, Shift+9	roughen mode&lt;br /&gt;
 Shift+c	        paint mode&lt;br /&gt;
 Shift+j	        color jitter mode&lt;br /&gt;
 Shift+b	        blur mode&lt;br /&gt;
&lt;br /&gt;
In Paint mode, painting with Shift inverts the color you're applying (e.g. when painting with yellow, Shift will switch the applied color to blue).&lt;br /&gt;
&lt;br /&gt;
===Calligraphy tool===&lt;br /&gt;
&lt;br /&gt;
* The tool's settings can now be set from a preset (see the drop-down list in the controls bar). Several presets are provided that imitate various drawing implements and styles.&lt;br /&gt;
&lt;br /&gt;
* When drawing with '''Alt''' pressed, Inkscape ''subtracts'' the new path you are creating from the selected path. With '''Shift''', it ''unions'' the new path with the selected path. This allows you to quickly patch or erase defects in a stroke you have drawn, without leaving the tool.&lt;br /&gt;
&lt;br /&gt;
* The behavior of the tool when tracking a guide (drawing with '''Ctrl''') has been improved:&lt;br /&gt;
&lt;br /&gt;
:* The initial &amp;quot;jerk&amp;quot; when you start drawing is suppressed.&lt;br /&gt;
&lt;br /&gt;
:* The undesired flipping of the stroke to the other side of the guide path, when drawing along closed paths, is fixed. &lt;br /&gt;
&lt;br /&gt;
:* If you lose connection with your guide path, the tool tries to continue moving in the same direction as if by inertia, so as to minimize the tearoff jerk.&lt;br /&gt;
&lt;br /&gt;
===Paint Bucket tool===&lt;br /&gt;
* Paint Bucket is now more tightly integrated with potrace.  As a result, memory and CPU usage on each fill operation have been reduced significantly.&lt;br /&gt;
&lt;br /&gt;
===Eraser Tool===&lt;br /&gt;
A new tool, Eraser, has been added to the main toolbox. Its shortcut is '''Shift+E'''. It has two main modes, selectable by toggle buttons on its controls bar:&lt;br /&gt;
&lt;br /&gt;
* '''Delete Objects''' mode: any shape touched by dragging is deleted completely. This is analogous to &amp;quot;touch selection&amp;quot; in Selector followed by '''Del'''.&lt;br /&gt;
* '''Cut mode''': dragging subtracts, using a boolean Subtract operation, parts of paths it touches. On the controls bar, you can adjust the Width of the trace left by the tool. If nothing is selected, it acts on all objects in the current layer, whether selected or not; if there's a selection, its action is limited to selection. This mode is similar to '''Alt+drag''' in Calligraphic tool.&lt;br /&gt;
&lt;br /&gt;
===Pen and Pencil===&lt;br /&gt;
&lt;br /&gt;
====New modes====&lt;br /&gt;
&lt;br /&gt;
Apart from the regular Bezier mode, these drawing tools now provide several new modes:&lt;br /&gt;
&lt;br /&gt;
* '''Spiro mode''': This mode automatically applies the new Spiro Splines path effect (see the section on new effects) to any newly drawn path. As mentioned below, it is not yet possible to preview a spiro before it is finished. This mode is available in both Pen and Pencil tools.&lt;br /&gt;
&lt;br /&gt;
* '''Polyline mode''' (Pen only): This mode makes it easy to draw many straight line segments by disallowing any curves, even when you accidentally drag with the mouse instead of clicking. &lt;br /&gt;
&lt;br /&gt;
* '''Paraxial mode''' (Pen only): create straight line segments that are parallel to one of the coordinate axes. This works similar to the Polyline mode with '''Ctrl'''. Normally, each next line segment is drawn perpendicular to the previous one, but the direction of the line segment being drawn can be toggled by pressing '''Shift'''. If you click on the start anchor, the path gets closed with an L-shaped segment (its direction of which can also be flipped with '''Shift''').&lt;br /&gt;
&lt;br /&gt;
====Stroke shapes====&lt;br /&gt;
&lt;br /&gt;
As a first step towards [http://wiki.inkscape.org/wiki/index.php/Vector-brushes this blueprint], it is now possible to automatically apply predefined vector '''shapes''' to path strokes in Pen and Pencil tools. The choice of shapes in the drop-down list on the controls bar includes:&lt;br /&gt;
&lt;br /&gt;
* '''Triangle in''' and '''Triangle out''': tapering out in both directions&lt;br /&gt;
&lt;br /&gt;
* '''Ellipse''': smooth elliptic shape stretching along path&lt;br /&gt;
&lt;br /&gt;
* '''From clipboard''': any path you had previously selected and copied to clipboard&lt;br /&gt;
&lt;br /&gt;
To adjust the width of the stroke, open the Path Effect Editor, choose &amp;quot;Pattern along path&amp;quot; effect, and edit its Width parameter. It is measured in units of the original size of the applied shape; the triangles and ellipse are all 10px in size, and the clipboard size can be any size. The default value of Width is 1.00, which means the triangle/elliptic strokes will be 10px wide and the from-clipboard stroke will be as wide as the copied object was tall.&lt;br /&gt;
&lt;br /&gt;
====Pencil smoothing====&lt;br /&gt;
&lt;br /&gt;
In Pencil tool, the controls bar now provides the '''Smoothing''' parameter, changeable in the range from 1 to 100, which controls how much smoothing is applied to the freehand lines you draw. Small Smoothing values produce rough lines with many nodes; large values give smooth lines with few nodes. Previously, this control was only available in Inkscape Preferences.&lt;br /&gt;
&lt;br /&gt;
====Pencil sketch mode====&lt;br /&gt;
&lt;br /&gt;
The sketch mode is still experimental. In essence, it enables the artist to draw many strokes, which Inkscape then averages into a single path. It tries to mimic sketching with a real pencil and paper, taking the 'visual average' of many strokes and condensing it into one stroke.&lt;br /&gt;
&lt;br /&gt;
Pick the pencil tool, press '''Alt''', and sketch away; release Alt to finalize the result. After each stroke (a stroke starts when the mouse button is pressed down, and ends when it is released), the resulting path will be an average of the old result and the newly drawn stroke. In Inkscape's Pencil tool preferences, one can choose to either average between all drawn strokes (so that all stroke have the same weight), or just the new stroke and the old result (so that later strokes have greater weight).&lt;br /&gt;
&lt;br /&gt;
Currently, going back and forth between A and B in one stroke does not give the expected result; it will result in a long path going back and forth, instead of the visually expected path going from A to B just once. We are working on this (difficult!) issue. For best results, draw strokes only from A to B (and not from B to A).&lt;br /&gt;
&lt;br /&gt;
===Text tool===&lt;br /&gt;
&lt;br /&gt;
* When editing multiline or flowed text, the '''PgUp''' and '''PgDn''' keys now work to move the cursor by one screen (i.e. by as many lines as fit into the screen at current zoom).&lt;br /&gt;
&lt;br /&gt;
* The usability of the font family drop-down list in the Text tool controls bar has been improved: it no longer steals focus, all keyboard shortcuts work as designed ('''Alt+X''' to access the family control, '''Alt+down''' to open the drop-down list with font previews, '''arrows''' to move in the list, '''Enter''' to set chosen font) and the completion feature works (start typing a family name and a pop-up list with possible completions appears). &lt;br /&gt;
&lt;br /&gt;
:A remaining problem that may be fixed in a future version is that the first opening of the drop-down list of family names may be slow (several seconds) if you have many fonts installed (the delay is Inkscape generating the previews for all fonts). Subsequent openings of the list are much faster.&lt;br /&gt;
&lt;br /&gt;
===Connector tool===&lt;br /&gt;
&lt;br /&gt;
* Connectors are now drawn to the edges of shapes, rather than to the bounding box of shapes.&lt;br /&gt;
* The routing buffer around shapes is now altered in the correct direction when the user changes this via the spacing control fon the connector toolbar.&lt;br /&gt;
* A bug has been fixed where the spinboxes on the connector toolbar did not properly respond to single clicks of their up and down arrows.&lt;br /&gt;
&lt;br /&gt;
==Path effects==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Path Effects stacking===&lt;br /&gt;
&lt;br /&gt;
More than one Path Effect can be assigned to an object. A new UI was created to control the stack in the Path Effects Editor (Shift+Ctrl+7): the '''Effect list''' shows the stack of effects for the selected object; below, buttons allow you to move a selected effect in the stack up or down or remove it from stack. &lt;br /&gt;
&lt;br /&gt;
The stack works from top to bottom, i.e. the topmost listed effect is applied first, the second one works on the result of the first, and so on until the bottom effect which produces the final visible result. A new effect that you choose in the &amp;quot;Apply new effect&amp;quot; list and created by the '''Add''' button gets added to the end of the current stack.&lt;br /&gt;
&lt;br /&gt;
===Path Effects for groups===&lt;br /&gt;
&lt;br /&gt;
Path effects can now be assigned to a group. In most cases, the effect is applied recursively to the member paths, but for Bend Path and Envelope Deformation the result that the distortion applies to the group as a whole. &lt;br /&gt;
&lt;br /&gt;
* You can, as usual, enter the group by double-clicking on it, and edit the paths there watching the transformed result update live. &lt;br /&gt;
&lt;br /&gt;
* Path effects can be assigned to groups of groups, applying recursively to all grouped paths.&lt;br /&gt;
&lt;br /&gt;
* The ''Convert Object to Path'' command (Ctrl+Shift+C), when applied to a group with effects applied, removes these effects from group and converts all its member paths to effect-less paths looking exactly as before.&lt;br /&gt;
&lt;br /&gt;
===Misc new features===&lt;br /&gt;
&lt;br /&gt;
* The '''Paste Path Effect''' command in Path menu can now assign the path effect of the clipboard's path to any number of paths, going recursively into groups if necessary.&lt;br /&gt;
&lt;br /&gt;
* A new command, '''Remove Path Effect''' in Path menu, removes any path effects from all selected objects, going recursively into groups if necessary. &lt;br /&gt;
&lt;br /&gt;
* Path effects can now be assigned to the sides of a 3D box (use '''Ctrl+click''' to select individual sides) without breaking its 3D functionality.&lt;br /&gt;
&lt;br /&gt;
* The Pen and Pencil tools now correctly work with paths with effects: you can continue such a path or add a new subpath to it by drawing with '''Shift''', while preserving the effects applied to it.&lt;br /&gt;
&lt;br /&gt;
* Path parameters of effects can now link to existing shapes &amp;lt;b&amp;gt;or texts&amp;lt;/b&amp;gt;. For example, now it is possible to use a text as the pattern for the Pattern Along Path effect, or shape a path with the Envelope Deformation where one of the envelope sides is text! Since the effect links to the text, not copies it, the result will update live if you edit the text.&lt;br /&gt;
&lt;br /&gt;
* Lib2geom now has an implementation for EllipticalArc. For Inkscape, this means that it is now possible to directly copy-paste ellipse shapes to path parameters (e.g. 'pattern' in Pattern along Path), without the need to convert the ellipse to path first.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===New effects===&lt;br /&gt;
&lt;br /&gt;
* '''Sketch''': Simulates hand-drawn lines. A set of parameters lets you tune the effect. They are all summarized in this [[:Image:SketchParameters.png|picture]].&lt;br /&gt;
&lt;br /&gt;
:[[Image:SketchExemple.png|300px]]&lt;br /&gt;
&lt;br /&gt;
* '''Hatches''': Fills the shape with rough, randomized hatches, simulating a quick hand drawing. It is configurable through numeric parameters as well as on-screen handles visible in Node tool. &lt;br /&gt;
:[[Image:hatches-lpe.png|300px]].&lt;br /&gt;
&lt;br /&gt;
* '''von Koch''': This effect creates fractal pictures. A collection of transformations (rotations, rescalings, etc...) is recursively applied to the input path. The transforms are derived from a &amp;quot;reference&amp;quot; path (a line segment) and a &amp;quot;generating&amp;quot; path (basically a collection of segments): the transforms are those needed to move the reference segment onto each segment of the generating path (components in the generating path having more than one segment might be used to define shearing/mirroring transforms). A famous example is the [http://en.wikipedia.org/wiki/Koch_snowflake von Koch's snowflake].&lt;br /&gt;
:[[Image:VonKochExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''Warning'': the complexity of the output path grows exponentially fast with the number of generations. As a guardrail, an editable complexity bound is provided, above which the effect is disabled.&lt;br /&gt;
&lt;br /&gt;
* '''Knot''': Creates a knot from a flat self-intersecting curve: at each crossing, one strand is interrupted to make it look like it's going under the other. The &amp;quot;sign&amp;quot; of each crossing (first strand interrupted, second interrupted, or no interruptions) can be set independently by clicking the on-screen handle which can be dragged from one crossing to the other. &lt;br /&gt;
:[[Image:KnotExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''Warning'': as far as possible, the lpe tries to keep the modifications of crossing signs unchanged under small deformations. For large or topology changing deformations however, some or all crossings might jump back to their default orientation.&lt;br /&gt;
&lt;br /&gt;
* '''Spiro splines''' are a novel way of defining curvilinear paths [http://www.levien.com/spiro/ developed by Raph Levien]. It takes some getting used to, but for certain tasks (such as lettershape design) Spiros have a clear advantage over Bezier curves. Recently, Spiro support was added to the FontForge font editor; now it is available in Inkscape too, which means you can use all the convenient Inkscape path tools (moving and transforming groups of nodes, node sculpting, etc.) on Spiro paths.&lt;br /&gt;
&lt;br /&gt;
:A Spiro path is defined by a sequence of points, but unlike a regular path with Bezier curves, all Spiro points lie on the path and there are no off-path handles. The curvature of the path is defined entirely by the positions of the points and their types. The path behaves very similar to a springy rod which is forced to pass through the given points and which uses the minimum possible curvature to satisfy the requirement. As such, it feels quite natural and the resulting path is very smooth - not just superficially smooth (i.e. having no cusps), but smooth at a deeper level, which you can achieve with Beziers only after a lot of laborious tweaking. &lt;br /&gt;
&lt;br /&gt;
:To create a Spiro path, select any path and assign the &amp;quot;Spiro spline&amp;quot; path effect to it. There are no parameters. Each node of your path becomes a point of a Spiro path, depending on the type of node:&lt;br /&gt;
&lt;br /&gt;
:* Smooth nodes (those with two collinear Bezier handles; use Shift+S to make a node smooth) become smooth curve points of the Spiro path. Note that the length or direction of the Bezier handles of the source path is ignored; the only thing that matters is their collinearity.&lt;br /&gt;
&lt;br /&gt;
:* Cusp nodes of the source path become corner points of the Spiro path, like free hinges on the springy rod. Between two corner points, the path is always a straight line. To make a node cusp, retract its Bezier handles by Ctrl+click, or press Shift+C and move one of the handles so they are no longer collinear.&lt;br /&gt;
&lt;br /&gt;
:* Half-smooth nodes - those with one Bezier handle collinear with a straight line segment on the other hand - become &amp;quot;left&amp;quot; or &amp;quot;right&amp;quot; points on the Spiro path which behave exactly the same: they sit between a straight line and a curve and enforce that these two segments join smoothly without a cusp. To create such a node, make sure one of the segments is a line (select its ends and press Shift+L), then Ctrl+drag the remaining handle to make it snap to the direction of the straight line segment on the other side, or press Shift+S to lock it to that direction.&lt;br /&gt;
&lt;br /&gt;
:Note that what matters is the actual collinearity of a node's handles, regardless of the node type that the node has in the Node tool; for example, if a node designated as cusp (diamond-shaped) has collinear handles, it will become a smooth curve point of the Spiro path. &lt;br /&gt;
&lt;br /&gt;
:Some configurations of points do not converge and produce wild loops and spirals instead of a smooth curve. According to Raph, &amp;quot;The spline solver in this release is _not_ numerically robust. When you start drawing random points, you'll quickly run into divergence. However, &amp;quot;sensible&amp;quot; plates based on real fonts usually converge.&amp;quot; Avoid too sharp changes in direction between points to prevent divergence. Hopefully, the robustness of the algorithm will be improved in future releases.&lt;br /&gt;
&lt;br /&gt;
:For now, to edit Spiro paths viewing the result in real time, you have to use the Node tool; it is recommended to turn off the red highlight of the source path. The Pen tool does not yet allow you to preview a Spiro as you draw, although you can paste the Spiro effect on the path and see the result as soon as the path is finalized. &lt;br /&gt;
&lt;br /&gt;
:You can always use the Node tool to continue a Spiro path by duplicating and dragging away its end nodes. Also, when you have a Spiro path selected, you can add a new subpath to it with Pen or Pencil if you start drawing with Shift.&lt;br /&gt;
&lt;br /&gt;
* '''Construct Grid''':  Draws a grid using the first three nodes of a path. The center node defines the origin. The other two nodes define the direction and length of the two adjacent sides of the first cell. If a path has more than three nodes, the other nodes are ignored. One can select the number of cells in the two orthogonal directions.&lt;br /&gt;
&lt;br /&gt;
* '''Envelope Deformation''': Allows you to deform an object (or a group of object) by deforming its sides. Modifications are done by deforming the four path parameters: Top, Bottom, Left and Right; for each, you can edit it with Node tool, copy, paste, or link to an existing path in the document.&lt;br /&gt;
&lt;br /&gt;
* '''Ruler''': Draws ruler marks along the path; you can set distance between the marks, their length for major and minor marks, the major/minor ratio, and other parameters.&lt;br /&gt;
&lt;br /&gt;
* '''Interpolate Subpaths''': Creates a given number of interpolated paths between the (first) two subpaths of a path (the subpaths after the second subpath are ignored). The interpolations are spread along an editable trajectory path.&lt;br /&gt;
:[[Image:InterpolateSubpathsExample.png|342px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- These effects are still hidden or under development, unhide them when they are added...&lt;br /&gt;
&lt;br /&gt;
* '''Perspective paths''': Draw an arbitrary path as if viewed in perspective. This is work in progress. Known limitations (among others): It can only use the first perspective that exists in the document defs, and the perspective cannot be adapted interactively yet (the effect must be removed and reapplied after modifying the perspective). [max]&lt;br /&gt;
* '''Lattice Deformation''' allows you to deform an object (or a group of objects) by moving 16 control points.&lt;br /&gt;
&lt;br /&gt;
* '''Perpendicular bisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Angle bisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Tangent to a curve''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle through 3 points''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle with radius''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Freehand Shape''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Path Length''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Text Label''': [max]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Notable effect bugfixes and changes===&lt;br /&gt;
&lt;br /&gt;
We try to refrain from changing the behavior of existing path effects, because it will change appearance in old files when opened in a new version of Inkscape (but not in any other SVG viewer or editor).  However, when an effect is really broken, we have to fix it:&lt;br /&gt;
&lt;br /&gt;
* '''Pattern Along Path''':&lt;br /&gt;
**The pattern used to be stretched across discontinuities (separate subpaths). This has been fixed; now it treats a discontinuous path as a group of continuous paths and applies the effect separately to each. &lt;br /&gt;
** Successive copies of the pattern can now be fused into continuous paths (using the new &amp;quot;fuse nearby ends&amp;quot; feature) so that &amp;quot;filling&amp;quot; the result works as expected.&lt;br /&gt;
&lt;br /&gt;
* '''Bend Path''':&lt;br /&gt;
** Closed input paths would sometimes result in unclosed output paths. This has been fixed.&lt;br /&gt;
&lt;br /&gt;
==Import/Export==&lt;br /&gt;
===PostScript and EPS import===&lt;br /&gt;
&lt;br /&gt;
Inkscape's PS and EPS import now uses Ghostscript instead of pstoedit. If you need to open files of these types, install Ghostscript and make sure the directory with the &amp;lt;code&amp;gt;ps2pdf&amp;lt;/code&amp;gt; utility from Ghostscript installation is in your PATH. On importing a file, you will see a preferences dialog, similar to PDF import; for multipage PS files, this dialog allows you to select which page to open.&lt;br /&gt;
&lt;br /&gt;
===PDF import===&lt;br /&gt;
&lt;br /&gt;
* A new checkbox on the PDF import dialog, '''Replace PDF fonts with closest-named installed fonts''' (on by default) attempts to replace all font names in the imported PDF with the most similar names of those fonts installed on your system. For example, if the PDF uses the font &amp;quot;TimesNewRomanPSMT&amp;quot; and you have &amp;quot;Times New Roman&amp;quot; installed, that font will be used, which will likely give you a more correct appearance than the unknown font &amp;quot;TimesNewRomanPSMT&amp;quot; that will be displayed as the default sans serif font. This is a temporary fix necessary because Inkscape cannot yet extract the fonts from the PDF files it imports nor can it embed them into SVG; when it gets these capabilities, such font name conversion will become unnecessary because all fonts will be preserved. &lt;br /&gt;
&lt;br /&gt;
* Importing PDF files now works '''from the command line'''. For example,&lt;br /&gt;
&lt;br /&gt;
 inkscape file.pdf --export-plain-svg=file.svg&lt;br /&gt;
&lt;br /&gt;
:will take the first page of the PDF and use the default import options, and save the result to SVG. If you try to import PDF without an &amp;lt;code&amp;gt;--export&amp;lt;/code&amp;gt; command, it will show the import options dialog as before and open the file in the UI.&lt;br /&gt;
&lt;br /&gt;
===PDF, PostScript, and EPS export===&lt;br /&gt;
&lt;br /&gt;
The new Cairo-based PS and EPS exporter provides much better support for various vector features, including clipping paths, patterns, and non-ASCII characters. Those features that are not supported by the targeted format become embedded bitmaps that preserve the appearance. In particular:&lt;br /&gt;
&lt;br /&gt;
* '''transparency''' is always rasterized in PS or EPS but not PDF, as PDF supports vector transparency;&lt;br /&gt;
&lt;br /&gt;
* '''filters''', such as blur, are by default rasterized in all three formats (PS, EPS, PDF). This can be turned off by unchecking the &amp;quot;Rasterize filter effects&amp;quot; option in the UI or adding the '''--export-ignore-filters''' option via the command line. In this case, filtered objects are rendered as vectors without filters and without rasterization.&lt;br /&gt;
&lt;br /&gt;
* The '''resolution''' for rasterizing the filters can be set in the UI in the &amp;quot;Resolution for rasterization (dpi)&amp;quot; parameter or on the command line by '''--export-dpi''' parameter (same as used for exporting SVG documents to bitmaps). The default is 90 dpi. The '''rendering quality''' of filters for rasterization, as well as for bitmap export, is always the best possible regardless of what you have set in the Filters tab of Preferences (which only affects on-screen rendering). For example,&lt;br /&gt;
&lt;br /&gt;
 inkscape --export-pdf=out.pdf --export-dpi=300 file.svg&lt;br /&gt;
&lt;br /&gt;
:will export file.svg to out.pdf, rasterizing any filtered objects in it at 300 dpi. (If there are no filtered objects, the --export-dpi has no effect.)&lt;br /&gt;
&lt;br /&gt;
All of PS, EPS, and PDF export formats uniformly support the export area options (page or drawing) and the new export-id option: &lt;br /&gt;
&lt;br /&gt;
* You can now export a single object from a complex document (for example, a single layer) if you specify the ID of that object in the &amp;quot;Limit export to the object with ID&amp;quot; field in the GUI or via the '''--export-id=ID''' option on the command line. The export will show only that object (all others will not be exported). The BoundingBox (page size) of the exported PS/EPS/PDF file will correspond to the bounding box of that object. You can override this with &amp;quot;Export area is page&amp;quot; (GUI) or '''--export-area-page''' (command line) option which forces the output to have the size of the SVG document's page (this may not be possible with EPS, see below).&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Export area is page&amp;quot; (GUI) or '''--export-area-page''' (command line) option forces the output to have the size of the SVG document's page. This is the default for PS and PDF but not for EPS. &lt;br /&gt;
&lt;br /&gt;
:*Note, the specification of the EPS format does not allow a bounding box to extend beyond the content. This is enforced by the Cairo graphics library which means that when &amp;lt;code&amp;gt;--export-area-page&amp;lt;code&amp;gt; is used with EPS export, the page bounding box will be trimmed inwards (but never expanded outwards) to the bounding box of the content if it is smaller. If you want a file which has a %BoundingBox different from the bounding box of its content, you can use PS or PDF export formats instead of EPS, or add a white background rectangle with the required size to source document before exporting to EPS.&lt;br /&gt;
&lt;br /&gt;
:* The '''--export-bbox-page''' command line parameter has been removed; use '''--export-area-page''' instead. &lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Export area is drawing&amp;quot; (GUI) or '''--export-area-drawing''' (command line) option forces the output to have the size of the exported objects' bounding box, regardless of page size. If no --export-id is specified, this means the bounding box of the entire drawing; with --export-id, this means the bounding box of the exported object only. This is the default for EPS. Note that checking &amp;quot;Export area is page&amp;quot; or using '''--export-area-page''' overrides this setting for PS and PDF output.&lt;br /&gt;
&lt;br /&gt;
* The '''--export-embed-fonts''' option is removed. Inkscape now always embeds and subsets all fonts used in the document when exporting PS, EPS, or PDF.&lt;br /&gt;
&lt;br /&gt;
===UniConvertor-based import and export===&lt;br /&gt;
&lt;br /&gt;
Inkscape can now use UniConvertor to import files of the following types:&lt;br /&gt;
&lt;br /&gt;
* Corel DRAW versions 7 to X4 document files (CDR)&lt;br /&gt;
* Corel DRAW versions 7 to X4 Template files (CDT)&lt;br /&gt;
* Corel DRAW Presentation Exchange files (CMX)&lt;br /&gt;
* Corel DRAW Compressed Exchange files (CCX)&lt;br /&gt;
* sK1 files (SK1)&lt;br /&gt;
* Computer Graphics Metafiles (CGM)&lt;br /&gt;
* Windows Metafiles (WMF)&lt;br /&gt;
* HPGL (AutoCAD) Plot files (PLT) (requires UniConvertor 1.1.4)&lt;br /&gt;
&lt;br /&gt;
Inkscape can now use UniConvertor to export files of the following types:&lt;br /&gt;
&lt;br /&gt;
* Windows Metafiles (WMF)&lt;br /&gt;
* sK1 files (SK1)&lt;br /&gt;
* HPGL (AutoCAD) Plot files (PLT) (requires UniConvertor 1.1.4)&lt;br /&gt;
&lt;br /&gt;
Text objects are not supported as of UniConvertor 1.1.4.&lt;br /&gt;
&lt;br /&gt;
On Windows, UniConvertor is included with Inkscape distribution and does not require separate installation.&lt;br /&gt;
&lt;br /&gt;
===HPGL export===&lt;br /&gt;
&lt;br /&gt;
In addition to the HPGL export via UniConvertor listed above, Inkscape can now export to HPGL (Hewlett-Packard Graphics Language) via an internal routine that is geared towards various cutters/plotters.&lt;br /&gt;
&lt;br /&gt;
===JavaFX export===&lt;br /&gt;
&lt;br /&gt;
Inkscape can export drawings to JavaFX format (.fx file extension).&lt;br /&gt;
&lt;br /&gt;
===DXF import and export===&lt;br /&gt;
&lt;br /&gt;
* DXF export for desktop cutting plotters is much faster than in previous versions. A new option was added to provide support for RoboMaster desktop cutting software. Also, polylines and polysplines are now supported.&lt;br /&gt;
&lt;br /&gt;
* DXF import is new. It supports a number of the simpler DXF shapes: line, Bezier spline, ellipse, circular arc, text.&lt;br /&gt;
&lt;br /&gt;
===PNG export===&lt;br /&gt;
&lt;br /&gt;
* PNG export has been updated to include metadata if present in the source SVG. This includes the Author, Copyright, Creation Time, Description, and Title fields. PNG metadata can be viewed using the ImageMagick &amp;lt;code&amp;gt;identify&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
* Export filenames that are relative (e.g. &amp;lt;code&amp;gt;../file.png&amp;lt;/code&amp;gt; or simply &amp;lt;code&amp;gt;file.png&amp;lt;/code&amp;gt;) are now resolved relative to the document's location. This applies to the filenames you type in the Export dialog as well as those stored in export hints in the document itself (and used by the &amp;quot;Batch export&amp;quot; checkbutton as well as in command line export with &amp;lt;code&amp;gt;--export-use-hints&amp;lt;/code&amp;gt;). However, export filenames specified directly on the command line are not resolved, which in effect means they work, as before, from the current working directory from which you run the export command.&lt;br /&gt;
&lt;br /&gt;
===OCAL (Open Clip Art Library) Export===&lt;br /&gt;
* Export to Openclipart.org has been disabled for 0.47 as it had become non-functional and needs to be re-written.&lt;br /&gt;
&lt;br /&gt;
==Autosave==&lt;br /&gt;
&lt;br /&gt;
The new autosave feature allow for automatic timed backups as work goes on. Saved versions are put in a designated directory and do not overwrite the original SVG file nor each other. &lt;br /&gt;
&lt;br /&gt;
In Inkscape Preferences (Ctrl+Shift+P), '''Save''' tab, you can enable this feature and specify various options:&lt;br /&gt;
&lt;br /&gt;
* the time interval between backups, in minutes;&lt;br /&gt;
&lt;br /&gt;
* the directory where you want the backups to be stored;&lt;br /&gt;
&lt;br /&gt;
* and the maximum number of saved backups (if this number is exceeded, old backups will start to be deleted).&lt;br /&gt;
&lt;br /&gt;
==Extensions==&lt;br /&gt;
&lt;br /&gt;
* The former Effects menu is renamed to '''Extensions'''. This is less confusing and better reflects the content of the menu: a collection of extensions, written mostly in Python, which perform various tasks with or without selection. &lt;br /&gt;
&lt;br /&gt;
===New and improved extensions===&lt;br /&gt;
&lt;br /&gt;
* The new '''Arrange &amp;gt; Restack''' extension restacks (changes the z-order of) selected objects, with options including: left to right, top to bottom (or vice versa), radial outward or inward, or at an arbitrary angle. You can also specify what point of an object is used to calculate its position for restacking.&lt;br /&gt;
&lt;br /&gt;
* The new '''Generate from Path &amp;gt; Extrude''' extension is similar to the old Extrude effect, which has been renamed Motion. The new effect requires two paths and draws connection lines or polygons between their nodes. If you want more dense extrusion, add more nodes to the paths. All the extrusion polygons are separate (grouped) objects, so they can be easily painted by the Tweak tool to get nicely shaded ribbons, 3D letters, and the like.&lt;br /&gt;
&lt;br /&gt;
* The new '''Generate from Path &amp;gt; Scatter''' extension spreads copies of pattern along arbitrary &amp;quot;skeleton&amp;quot; paths. The pattern must be the topmost object in the selection. Groups of paths, shapes, clones are allowed.&lt;br /&gt;
&lt;br /&gt;
* The improved '''Modify Path &amp;gt; Add Nodes''' extension now allows segments to be divided into a given number of subsegments.&lt;br /&gt;
&lt;br /&gt;
* The new '''Modify Path &amp;gt; Convert to Dashes''' extension takes the dash pattern of the stroke and explicitly cuts the curve to duplicate this pattern. This can be used to allow desktop cutting plotters, which don't understand dashed stroke style, to cut dashed paths. You can also achieve interesting effects with smoothly varying dash length if you edit the resulting path with Node Sculpting technique (Alt+drag with Node tool).&lt;br /&gt;
&lt;br /&gt;
* The new '''Render &amp;gt; Add printing marks''' extension adds printing marks and color bars required by print bureaus. You can either manually define margins by which cut marks are created.&lt;br /&gt;
&lt;br /&gt;
* The new '''Render &amp;gt; 3D Polyhedron''' extension draws 2D projections of 3D polyhedrons and other 3D shapes. You can choose one of a number of predefined shapes (cube, octahedron, truncated dodecahedron and others) or load a shape definition from an OBJ file. The shape can be rotated around any of the three axes by arbitrary amount; you can also define various style options such as color of the faces and stroke width, and enable shading with adjustable light source position.&lt;br /&gt;
&lt;br /&gt;
* The new '''Render &amp;gt; Alphabet Soup''' extension is a vector rework of Matt Chrisholm's [http://www.theory.org/artprojects/alphabetsoup/main.html script]. Alphabet Soup randomly mashes glyph elements together to make exotic-looking text.&lt;br /&gt;
&lt;br /&gt;
* The new '''Render &amp;gt; Cartesian Grid''' extension plots Cartesian (square) grids that do not fill the page, but offer three levels of division, logarithmic scales (with clutter-reduction and arbitrary base) and customizable line width. All like elements (e.g. x-axis subminor divisions) are put into subgroups together. A proper border is also drawn, with an independent line width.&lt;br /&gt;
&lt;br /&gt;
* The new '''Render &amp;gt; Polar Grid''' extension plots a polar coordinate grid, with options for arbitrary-base logarithmic subdivisions, clutter-reduction around the origin, circumferential labels and custom line widths.&lt;br /&gt;
&lt;br /&gt;
* The new '''Render &amp;gt; Draw from Triangle''' extension takes a triangle drawn as a path (only the first three nodes of a path are counted) and allows to draw many triangle-related geometrical objects such as circumcircles, excentral triangles, etc. It also lets you specify custom trilinear coordinates and triangle centre functions, as well as compute basic triangle properties such as area and semiperimeter.&lt;br /&gt;
&lt;br /&gt;
* The new '''Render &amp;gt; Guides Creator''' extension quickly creates horizontal and vertical guides for subdividing the canvas. You can choose the divisions from None, 1/2, 1/3 ... to 1/10.&lt;br /&gt;
&lt;br /&gt;
* The new '''Render &amp;gt; Calendar''' extension draws a calendar for a given year with localizable month/weekday names, colors, and many other options.&lt;br /&gt;
&lt;br /&gt;
* The new '''Render &amp;gt; Foldable Box''' extension creates foldouts for paper boxes.&lt;br /&gt;
&lt;br /&gt;
* The new '''Text &amp;gt; Convert to Braille''' extension recodes English (or just Latin letters) text to [http://en.wikipedia.org/wiki/Braille Braille] code. It is not intended to create a real Braille text for visually impaired people, just an accurate graphical representation of Braille text to be used in illustrations.&lt;br /&gt;
&lt;br /&gt;
* The new '''Modify Path &amp;gt; Interpolate Attribute in a Group''' extension takes a group of objects and assigns to its members interpolated values of an attribute of your choice, such as width, height, opacity, etc. &lt;br /&gt;
&lt;br /&gt;
* The new '''Web &amp;gt; JavaScript''' extensions allow you to set various interactive JavaScript attributes, such as onclick or onfocus, on SVG elements. Inkscape does not support them on rendering but you might need them for other SVG viewers such as Firefox.&lt;br /&gt;
&lt;br /&gt;
===Extension API changes===&lt;br /&gt;
&lt;br /&gt;
* While the &amp;quot;Live preview&amp;quot; checkbox is useful for most effects, for some it just does not make sense. Now, you can add the attribute &amp;lt;code&amp;gt;needs-live-preview=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;effect&amp;lt;/code&amp;gt; element in the .inx file of the effect to suppress this checkbox for your effect.&lt;br /&gt;
&lt;br /&gt;
* Parameters passed to extensions (via the &amp;lt;param&amp;gt; element) now can have a boolean attribute, &amp;lt;code&amp;gt;gui-hidden&amp;lt;/code&amp;gt;, to indicate that the parameter should not be represented in the GUI. If all parameters are marked as hidden, no GUI is presented for such extension.&lt;br /&gt;
&lt;br /&gt;
* All '''.inx''' files are now properly formatted XML files with their own namespace of: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.inkscape.org/namespace/inkscape/extension&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and a Relax NG schema to define it. More information can be found on the [[Extensions]] page.&lt;br /&gt;
&lt;br /&gt;
==Filters==&lt;br /&gt;
&lt;br /&gt;
The Filter Editor (former Filter Effects) and Remove Filters commands are moved from the Object menu to the new '''Filters''' top-level menu, which also contains a collection of preset filters.&lt;br /&gt;
&lt;br /&gt;
===Preset filters===&lt;br /&gt;
&lt;br /&gt;
The Filter Editor is powerful, but can be quite cumbersome. You can now apply complex '''preset filters''' to selected objects with a single command by choosing it from the new ''Filters'' top-level menu. Submenus categorize the filters by function or appearance. To view a sampler of all preset filters, open '''filters.svg''' document from Inkscape's examples (&amp;lt;code&amp;gt;share/examples&amp;lt;/code&amp;gt; in the Inkscape tree).&lt;br /&gt;
&lt;br /&gt;
Most filters apply immediately after selecting the command; some present a dialog where you can adjust some of the parameters before applying the filter (such filters have &amp;quot;...&amp;quot; at the end of the command in the menu). &lt;br /&gt;
&lt;br /&gt;
By default, if the selected object already has some filter applied, the chosen filter will be '''merged''' with the existing filter for combined effect. However you can also '''overlay''' several filters to an object while keeping them separated: simply press Ctrl+G after applying any filter and then apply another one; the filters will then display separately in the Filters Editor.&lt;br /&gt;
&lt;br /&gt;
You can easily add your own filters to these menus. Simply place any SVG file with the filters to the &amp;lt;code&amp;gt;filters&amp;lt;/code&amp;gt; subdirectory of your config directory (&amp;lt;code&amp;gt;~/.config/Inkscape/&amp;lt;/code&amp;gt; on Linux) and the filters will be picked up from it when you start Inkscape. By default, they will be placed in the ''Personal'' submenu under ''Effects &amp;gt; Filters''. If you want to control this, add the following attributes to the &amp;lt;code&amp;gt;filter&amp;lt;/code&amp;gt; element:&lt;br /&gt;
&lt;br /&gt;
 inkscape:label         is the command label&lt;br /&gt;
 inkscape:menu          is the submenu to place the command into&lt;br /&gt;
 inkscape:menu-tooltip  is the tooltip (displayed in the statusbar &lt;br /&gt;
                        as you select the command)&lt;br /&gt;
&lt;br /&gt;
===''No Filters'' rendering mode===&lt;br /&gt;
In order to facilitate editing documents that use lots of SVG filter effects, filter effects can now be disabled for a particular document window by selecting ''View &amp;gt; Display mode &amp;gt; No Filters'' from the menu.  This provides an intermediate step between Normal and Outline view modes.&lt;br /&gt;
&lt;br /&gt;
The ''Toggle View'' command in the ''Display Mode'' submenu ('''Ctrl+keypad 5''') toggles between all 3 modes in a loop: Normal, No filters, Outline.&lt;br /&gt;
&lt;br /&gt;
===Filter quality setting===&lt;br /&gt;
&lt;br /&gt;
In addition to the Blur Quality setting, Inkscape now has a general ''Filter Effects Quality'' setting on the Filters tab of Inkscape Preferences. It affects all filters and gives you an opportunity to seek optimum balance between speed and accuracy when rendering filters.&lt;br /&gt;
&lt;br /&gt;
* '''Best quality''' is the quality used when exporting.&lt;br /&gt;
* '''Better quality''' uses fast methods for transforming images, which occasionally shows up as jagged edges. Full rendering resolution is used.&lt;br /&gt;
* Anything below that also uses low resolution rendering for filters.&lt;br /&gt;
&lt;br /&gt;
For exporting images, the best quality is used regardless of this setting.&lt;br /&gt;
&lt;br /&gt;
==SVG support==&lt;br /&gt;
&lt;br /&gt;
===Optimized CSS properties===&lt;br /&gt;
&lt;br /&gt;
* As a file size optimization, Inkscape does not write into SVG some of the stroke properties if the object has &amp;lt;code&amp;gt;stroke:none&amp;lt;/code&amp;gt; and some of the fill properties when it has &amp;lt;code&amp;gt;fill:none&amp;lt;/code&amp;gt;. The only situation where this might affect you is if you remove stroke from an object and then turn it back on - the object will get the default stroke instead of the same it had before. &lt;br /&gt;
&lt;br /&gt;
:Also, in manually-edited SVG where a parent group has no stroke but sets some stroke properties to be inherited by its descendants, you will need to set stroke property to other than none on the group, and suppress inheritance with stroke:none on those children that don't need it.&lt;br /&gt;
&lt;br /&gt;
:Specifically, if stroke:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 stroke-width&lt;br /&gt;
 stroke-linecap&lt;br /&gt;
 stroke-linejoin&lt;br /&gt;
 stroke-miterlimit&lt;br /&gt;
 stroke-opacity&lt;br /&gt;
 stroke-dasharray&lt;br /&gt;
 stroke-dashoffset&lt;br /&gt;
&lt;br /&gt;
:Note that this does not include marker properties, which means you can still have markers on a path without visible stroke.&lt;br /&gt;
&lt;br /&gt;
:If fill:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 fill-opacity&lt;br /&gt;
 fill-rule&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;opacity&amp;lt;/code&amp;gt; property is not written if it has the default value of 1 (this property is not inherited, so the change should have no side effects).&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;marker-start&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;marker-mid&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;marker-end&amp;lt;/code&amp;gt; properties are not written if the &amp;lt;code&amp;gt;marker&amp;lt;/code&amp;gt; property is already present with the same value.&lt;br /&gt;
&lt;br /&gt;
===Optimized path data===&lt;br /&gt;
&lt;br /&gt;
In this version, the size of the path data written in the &amp;lt;code&amp;gt;d=&amp;lt;/code&amp;gt; attribute of &amp;lt;code&amp;gt;path&amp;lt;/code&amp;gt; elements is reduced by about 10%. Inkscape generates the shortest possible path strings by avoiding repeated operators and using relative coordinates (when it helps).&lt;br /&gt;
&lt;br /&gt;
This is controlled by the options on the '''SVG output''' page of Inkscape Preferences dialog. Also, you can change the following attributes in &amp;lt;code&amp;gt;group id=&amp;quot;svgoutput&amp;quot;&amp;lt;/code&amp;gt; in your preferences.xml file:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;allowrelativecoordinates&amp;lt;/code&amp;gt; (default 1) to switch relative coordinates on (1) or off (0)&lt;br /&gt;
* &amp;lt;code&amp;gt;forcerepeatcommands&amp;lt;/code&amp;gt; (default 0) to force repeating operators (1) or allow use of the more compact representation without repeated operators (0)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [this seems no longer to be true, fix it!!! I don't know what happened, someone changed something and now it no longer works :'( -johan]&lt;br /&gt;
&lt;br /&gt;
===No more explicit closing line segment===&lt;br /&gt;
Inkscape used to always explicitly write the closing line segment to SVG for closed paths, for example: &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 L 0,0 z&amp;quot;. With the improved SVG path data writing, Inkscape no longer generates this closing line segment, resulting in &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 z&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
When SVG path data input contains this explicit closing segment, it is maintained throughout transformations, but is removed after using the node edit tool.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Horizontal and vertical path segments===&lt;br /&gt;
&lt;br /&gt;
If an SVG contains paths with shorthands for horizontal and vertical path segments ('H' or 'V'), then Inkscape will try to maintain those shorthands if possible, so the saved file will also contain them.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;script&amp;gt; tag preserved===&lt;br /&gt;
&lt;br /&gt;
While Inkscape does not yet support SVG scripting via the &amp;lt;script&amp;gt; element, this element is now preserved after editing the file in Inkscape.&lt;br /&gt;
&lt;br /&gt;
===Initial SVG Fonts support===&lt;br /&gt;
&lt;br /&gt;
As a SoC 2008 project, JucaBlues implemented initial parsing and rendering of [http://www.w3.org/TR/SVG11/fonts.html SVG Fonts].&lt;br /&gt;
You can design fonts within Inkscape, but using them to render text on the canvas is not yet supported. We are waiting for libpango to implement proper support of the user-fonts feature. &lt;br /&gt;
&lt;br /&gt;
Currently, the main benefit of this feature is to improve the font design workflow when working with FontForge: You can save SVG files with fonts embedded and import them into Fontforge, and you only need one file per font instead of one file per glyph.&lt;br /&gt;
&lt;br /&gt;
An SVG font is a mapping of chunks of SVG drawing to characters. When a certain character is used in a string, its respective glyph is rendered. If no glyph is declared for a certain character, then there is a default &amp;quot;missing glyph&amp;quot; that is rendered. You can set the drawing that defines this missing glyph; this is done by clicking on the '''Missing Glyph: From Selection...''' button at the top of the dialog.&lt;br /&gt;
&lt;br /&gt;
Here's an example of a font design workflow:&lt;br /&gt;
&lt;br /&gt;
# Open the SVG Font dialog by _Text &amp;gt; SVG Fonts_. &lt;br /&gt;
# Click '''New''' under the font list. Select the new font in list; you can rename it by clicking on its name and typing a new name. You will see a set of black squares in the text preview area. This is the preview text being rendered. It only uses the default missing glyph (which is initially defined as a black square) because no specific glyphs were defined yet.&lt;br /&gt;
# Draw something that you want to use for the missing glyph &lt;br /&gt;
# Click '''Missing Glyph: From selection...'''&lt;br /&gt;
# Draw a glyph for the &amp;quot;a&amp;quot; character (character matching is case sensitive)&lt;br /&gt;
# On the '''Glyphs''' tab, click '''Add glyph'''&lt;br /&gt;
# Type &amp;quot;a&amp;quot; in the '''Matching String''' column (at the moment, handling of the glyph-name attribute is not implemented)&lt;br /&gt;
# With the row selected, click '''Get curves from selection...'''&lt;br /&gt;
# Now, you will see the &amp;quot;a&amp;quot; glyph in the preview rendering if the preview text contains it. You can edit the preview text as needed to view different characters.&lt;br /&gt;
&lt;br /&gt;
Repeat steps 5 through 9 for every glyph you wish to add to your font, then save the SVG file and open it in FontForge for further editing.&lt;br /&gt;
&lt;br /&gt;
===SVG Test Suite Compliance===&lt;br /&gt;
&lt;br /&gt;
As a result of last year's GSoC, there is now a rendering test framework along with a number of tests (found in the SVN repository [http://inkscape.svn.sourceforge.net/svnroot/inkscape/gsoc-testsuite/tester/ here]). These tests can be run reasonably easily on any system (you don't need to be able to compile Inkscape) and include a large part of the [http://www.w3.org/Graphics/SVG/Test/ [[W3C]] SVG Test Suite]. See [http://home.hccnet.nl/th.v.d.gronde/inkscape/ResultViewer.html this page] or [http://auriga.mine.nu/inkscape/ this page] for up-to-date rendering results. Also see [[TestingInkscape]] for information on running and creating rendering tests.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [files which failed on 0.46 and now pass, and vice versa]&lt;br /&gt;
List of render test changes with respect to 0.46:&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Editing Aids==&lt;br /&gt;
&lt;br /&gt;
===Grids===&lt;br /&gt;
* The dotted rectangular grid now shows small crosses at the intersection points of emphasis lines.&lt;br /&gt;
&lt;br /&gt;
===Guides===&lt;br /&gt;
&lt;br /&gt;
* Guides can now be rotated using the mouse. Each guide has an anchor (visible as a little circle) around which it can rotate.&lt;br /&gt;
:*'''Drag''' a guide anywhere to move it.&lt;br /&gt;
:*'''Shift+drag''' to rotate a guide about its anchor (additionally press '''Ctrl''' to constrain the rotation angle to multiples of 15 degrees).&lt;br /&gt;
:*'''Ctrl+drag''' to move the anchor along the guide.&lt;br /&gt;
:*Press '''Del''' while hovering the mouse over the guide to delete it.&lt;br /&gt;
 &lt;br /&gt;
* There is now an option in the Preferences dialog ('''Tools''' page) to treat groups as single objects during conversion to guides (as opposed to converting each object inside the group separately).&lt;br /&gt;
&lt;br /&gt;
===Snapping===&lt;br /&gt;
&lt;br /&gt;
Inkscape's snapping code has undergone major changes to make it more reliable and easier to use. Snapping to objects now invokes routines from the 2geom library, which is actively maintained and less error-prone than the old livarot library. &lt;br /&gt;
&lt;br /&gt;
There is a new '''snapping toolbar''' to control the snapping options and modes. Use _View &amp;gt; Show/Hide &amp;gt; Snap_ controls bar to show or hide this toolbar. The toolbar contains toggle buttons for various snapping modes (snap nodes, snap to paths, etc.) as well as a master snapping toggle that disables and reenables all activated modes.&lt;br /&gt;
&lt;br /&gt;
Also, to control some of the snapping features, a '''Snapping''' tab has been created in the Inkscape Preferences dialog. The new features found on this tab are:&lt;br /&gt;
* '''Snap indicator''': When snapping has occurred, an indicator is displayed at that specific position. For now that indicator is just a cross that disappears after a second. In the future the shape of the indicator will be related to the type of target that has been snapped to.&lt;br /&gt;
* '''Snap delay''': Inkscape now optionally waits some time after the mouse pointer has stopped moving before it tries to snap. This makes Inkscape much more responsive on complex documents and allows moving objects in a straight line over a grid, amongst others. &lt;br /&gt;
* Inkscape can be forced to only try snapping the (source) node that is '''closest to the mouse pointer''', à la Corel DRAW. When this mode is enabled, a snap indicator will shortly be shown at that node. This will give you maximum control of the snapping which is useful for complex drawings with many nodes.&lt;br /&gt;
* When multiple snap solutions are found, Inkscape can either prefer the closest transformation (when the weight slider is set to 0; this is the old mode), or prefer the moved object's node that was initially the closest to the pointer (when the slider is set to 1). The way Inkscape calculates the preferred snap has been improved too, which should lead to more predictable snapping.&lt;br /&gt;
&lt;br /&gt;
Other improvements are:&lt;br /&gt;
* The '''Node tool''' now snaps to any unselected node (both cusp and smooth) within the path that's being edited, and nodes of other paths. It also snaps to the path itself, but only to the stationary segments in between two unselected nodes, not to the segment being currently reshaped. It is now also possible to snap while moving nodes along a vertical or horizontal constraint.&lt;br /&gt;
* In the Document Properties dialog, the checkbox for &amp;quot;always snap&amp;quot; has been replaced by a pair of radiobuttons; this should eliminate most of the confusion surrounding this option.&lt;br /&gt;
* Holding the '''Shift''' key now also disables snapping while dragging node handles and while creating single dots.&lt;br /&gt;
* During constrained drawing (using '''Ctrl'''), Inkscape will now only snap to the points on the constrained line.&lt;br /&gt;
* In the Selector tool, snapping while skewing or moving with a constraint (with '''Ctrl''') has been improved.&lt;br /&gt;
* Also in the Selector tool, while moving, Inkscape will now snap the bounding box of each selected item individually instead of the selection as a whole&lt;br /&gt;
&lt;br /&gt;
Inkscape can consider the following objects for snapping, depending on the toggles in the Snapping toolbar:&lt;br /&gt;
* Clipping paths and masks&lt;br /&gt;
* Midpoints of line segments&lt;br /&gt;
* Midpoints of bounding box edges&lt;br /&gt;
* Page border&lt;br /&gt;
* Intersections of any kind of paths&lt;br /&gt;
* Smooth nodes&lt;br /&gt;
* Cusp nodes&lt;br /&gt;
* Each of the handle points (when creating new shapes)&lt;br /&gt;
* Radius handles of rectangles&lt;br /&gt;
* Single dots&lt;br /&gt;
&lt;br /&gt;
==Other features==&lt;br /&gt;
&lt;br /&gt;
===Spell checker===&lt;br /&gt;
&lt;br /&gt;
There's now a built-in spell checker. Press '''Ctrl+Alt+K''' or choose ''Text &amp;gt; Check spelling'' to check all visible text objects in your document (they need not be selected) in turn, going top-to-bottom and left-to-right. Once a misspelled word is found, a red frame around it is displayed, and the object with the misspelling is selected; if you are in Text tool, it also places the text cursor at the beginning of the misspelled word. &lt;br /&gt;
&lt;br /&gt;
In the dialog, you can choose one of the listed suggestions and '''Accept''' it (this button is disabled unless you choose something in the list); '''Ignore''' the word for the rest of this session; or '''Add''' the word to the local dictionary.&lt;br /&gt;
&lt;br /&gt;
Also, since the dialog does not lock Inkscape's window, you can simply edit the word with Text tool. Once you edit it to something acceptable to the speller, it will automatically turn off the red frame and continue checking the&lt;br /&gt;
document. &lt;br /&gt;
&lt;br /&gt;
On Linux, you need to install Aspell and its dictionaries for the languages you want to check. On Windows, for now, only the English dictionary is included with Inkscape builds. &lt;br /&gt;
&lt;br /&gt;
===Desktop integration improvements===&lt;br /&gt;
&lt;br /&gt;
* '''Clipboard is system-wide''': you can now copy/paste objects between different Inkscape instances as well as between Inkscape and other applications (which must be able to handle SVG on the clipboard to use this).&lt;br /&gt;
&lt;br /&gt;
* '''Open Recent menu''' now integrates with Windows recent documents management as well as freedesktop.org recent document lists (used by Gnome, KDE and Xfce). The list can be cleared from the Preferences dialog (the Interface tab).&lt;br /&gt;
&lt;br /&gt;
* '''Themable Icons''': all icons used in Inkscape are now themable using the standard freedesktop.org theming mechanism. The list of names used is available [[themable icons|here]].&lt;br /&gt;
&lt;br /&gt;
===Shell mode===&lt;br /&gt;
&lt;br /&gt;
If you run inkscape with &amp;lt;code&amp;gt;--shell&amp;lt;/code&amp;gt;, it will enter a shell mode. In this mode, you type in commands at the prompt and Inkscape executes them, without you having to run a new copy of Inkscape for each command. This feature is mostly useful for scripting and server uses: it adds no new capabilities but allows you to improve the speed and memory requirements of any script that repeatedly calls Inkscape to perform command line tasks (such as export or conversions). Each command in shell mode must be a complete valid Inkscape command line but without the Inkscape program name, for example:&lt;br /&gt;
&lt;br /&gt;
 $ inkscape --shell&lt;br /&gt;
 Inkscape 0.46+devel interactive shell mode. Type 'quit' to quit.&lt;br /&gt;
 &amp;gt;file.svg --export-pdf=file.pdf&lt;br /&gt;
 &amp;gt;otherfile.svg --export-png=bitmap.png&lt;br /&gt;
 Background RRGGBBAA: ffffff00&lt;br /&gt;
 Area 0:0:744.094:1052.36 exported to 744 x 1052 pixels (90 dpi)&lt;br /&gt;
 Bitmap saved as: bitmap.png&lt;br /&gt;
 &amp;gt;quit&lt;br /&gt;
&lt;br /&gt;
===Gesture-based stroke width adjustment===&lt;br /&gt;
&lt;br /&gt;
Similar to editing the fill or stroke colors by dragging away from the color swatch in the status bar (added in 0.46), this version allows you to drag away from the stroke width value displayed there to change the stroke width of selection. Dragging above the 45-degree line from the swatch increases the width (up to four times the original width), dragging below it decreases the width (down to zero). With this feature, quick yet precise stroke width adjustments are possible without opening any dialogs or menus.&lt;br /&gt;
&lt;br /&gt;
===Tool switching by input device===&lt;br /&gt;
&lt;br /&gt;
Tablets and other input devices that report separate hardware (e.g. pen tip and eraser on the two ends of the pen) are now recognized and current tool can be set to change (to Calligraphic Pen or Eraser) in response to the physical tool being used.&lt;br /&gt;
&lt;br /&gt;
===Layers===&lt;br /&gt;
&lt;br /&gt;
* The Layers dialog now can hide or show '''all layers other than the current''': click on the layer name with right mouse button to get the pop-up menu. The ''Solo'' feature allows you to quickly switch between working layers and check their content in isolation.&lt;br /&gt;
&lt;br /&gt;
* A new command, '''Duplicate Layer''', has been added to the Layers menu to duplicate an existing layer with all of its objects (even hidden or locked) and any sub-layers.&lt;br /&gt;
&lt;br /&gt;
* The Add Layer dialog can be opened with '''Ctrl+Shift+N''' (N for new).&lt;br /&gt;
&lt;br /&gt;
* Layer names can now be non-unique within the document.&lt;br /&gt;
&lt;br /&gt;
* Several layer handling inconsistencies have been fixed.&lt;br /&gt;
&lt;br /&gt;
===Editing bitmaps in an external editor===&lt;br /&gt;
&lt;br /&gt;
Linked (but not embedded) bitmaps can be '''edited in an external application'''. Right-click an image and choose ''Edit externally...''&lt;br /&gt;
&lt;br /&gt;
An image will reload when its linked file changes on disk. Both the external editor application to use and the reload behavior are configurable on the ''Bitmaps'' page of the Inkscape Preferences dialog.&lt;br /&gt;
&lt;br /&gt;
===Command for relinking clones===&lt;br /&gt;
&lt;br /&gt;
A new command, '''Relink Clone to Copied''' in ''Edit &amp;gt; Clone'', allows you to relink any clone to a different original object without changing its other properties. Just copy (Ctrl+C) the object you want to be the new original, select any number of clones, and choose the Relink command. Now all selected clones are linked to the copied object.&lt;br /&gt;
&lt;br /&gt;
Note that this may cause the clone to move if the new original and the old original objects are in different positions.&lt;br /&gt;
&lt;br /&gt;
===Automatic relinking of clones on Duplicate===&lt;br /&gt;
&lt;br /&gt;
If you turn on the '''When duplicating original+clones: Relink duplicated clones''' option on the ''Clones'' tab of Inkscape Preferences (default is off), duplicating a selection containing both a clone and its original (possibly in groups) will relink the duplicated clone to the duplicated original instead of the old original.&lt;br /&gt;
&lt;br /&gt;
===Pattern editing===&lt;br /&gt;
&lt;br /&gt;
When editing pattern fills:&lt;br /&gt;
* The pattern origin and scale handles now snap.&lt;br /&gt;
* The pattern scaling can now be different in X and Y direction. Press '''Ctrl''' to have a fixed 1:1 ratio scaling (old behavior). &lt;br /&gt;
* The handles are now positioned at the corners  of the unit cell, instead of only a quarter of that cell as before. So, now a rectangle filled with pattern will have all of the pattern handles in the corners, making it harder to manipulate them. However, the handles can be dragged outside the rectangle by moving the pattern's origin handle.&lt;br /&gt;
&lt;br /&gt;
===Transform dialog: spacing out option===&lt;br /&gt;
&lt;br /&gt;
Previously, the ''Apply to each object separately'' checkbox had no effect for the ''Move'' tab of the Transform dialog (Ctrl+Shift+M). Now, if several objects are selected, this checkbox is on, and &amp;quot;Relative move&amp;quot; is on, each object is shifted '''relative to the closest selected object''' on the left (for X) or below (for Y). &lt;br /&gt;
&lt;br /&gt;
For example, if you have a horizontal row of objects and you move them relatively by x = 5 px with &amp;quot;Apply to each object separately&amp;quot; on, the leftmost object will shift by 5px, the next one to the right by 10px, and so on; the rightmost selected object is displaced by 5*n px where n is the number of selected objects. As a result, the distance in each pair of adjacent objects will increase by 5px and the whole row will be spaced out, much like a letterspacing adjustment spaces out a text string. Moving these objects by X=-5px will, conversely, squeeze them tighter together: the leftmost will move by -5px, the next one by -10px, and so on. For Y, the effect is the same except that the move starts from the object closest to the bottom (i.e. with smallest Y coordinate).&lt;br /&gt;
&lt;br /&gt;
When determining the order of shifting objects, for X, the left edges of their bounding boxes are sorted horizontally, and for Y, the bottoms of their bounding boxes are sorted vertically. The order of selecting the objects or their z-order do not matter.&lt;br /&gt;
&lt;br /&gt;
===Converting text to path produces a group===&lt;br /&gt;
&lt;br /&gt;
Converting a text or flowed text to path (Ctrl+Shift+C) now produces a '''group of paths''', one path for each glyph of text, instead of a single monolithic path as before. Apart from easier manipulation, an additional advantage is that if your text contained styled spans (i.e. fragments with different color, opacity, or other properties), these styles will be preserved by the corresponding glyph paths after the conversion. You can still easily get a single path out of such a group by selecting it and doing Combine (Ctrl+K).&lt;br /&gt;
&lt;br /&gt;
===Combine works on groups===&lt;br /&gt;
&lt;br /&gt;
The Combine command now works transparently on groups, i.e. combines paths inside selected groups at any level of grouping.&lt;br /&gt;
&lt;br /&gt;
===Exclusion works on multiple paths===&lt;br /&gt;
The Exclusion boolean operation can now operate on an arbitrary number of paths.&lt;br /&gt;
&lt;br /&gt;
===No more Whiteboard===&lt;br /&gt;
The configure flag for Whiteboard has been removed since the feature was non-functional. This menu item will no longer exist in the releases until it is properly fixed to avoid any confusion.&lt;br /&gt;
&lt;br /&gt;
===Save As directory===&lt;br /&gt;
On the '''Save''' tab in Inkscape Preferences, an option was added to change the behavior to our old behavior. When this option is on, the &amp;quot;Save as...&amp;quot; dialog will always open in the directory where the currently open document is. When it's off, it will open in the directory where you last saved a file using that dialog..&lt;br /&gt;
&lt;br /&gt;
===Packaging Improvements===&lt;br /&gt;
Packaging for OSX and Windows has been worked on heavily and greatly improved during this release cycle. Inkscape also now has a Portable version available for Windows.&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
&lt;br /&gt;
===Inkscape Preferences dialog===&lt;br /&gt;
&lt;br /&gt;
* This dialog has been rearranged for more logical grouping of options. New pages have been added: '''Bitmaps''' (options for the new update-on-file-change and external editor features), '''UI''' (options for toolbar icon sizes), '''SVG Output''' (options for SVG formatting, introduced in 0.46 and now editable from the dialog as well), and '''Save''' (save directory and autosave options). &lt;br /&gt;
&lt;br /&gt;
===Bitmap Copy resolution===&lt;br /&gt;
&lt;br /&gt;
* A new option on the Bitmaps tab, '''Resolution for Create Bitmap Copy''', allows you to set the resolution of the bitmap created by the corresponding command (by default bound to Alt+B). The default value of 90 dpi forces the resulting bitmap to align with the default 1px-spaced grid on the canvas.&lt;br /&gt;
&lt;br /&gt;
===Zoom correction factor===&lt;br /&gt;
&lt;br /&gt;
* The Interface tab has an adjustable ruler for '''Zoom correction factor'''. Move the slider until the ruler's on-screen size matches its true size. This is used as a reference point for the 100% (original size) zoom command.&lt;br /&gt;
&lt;br /&gt;
===Interface language choice===&lt;br /&gt;
&lt;br /&gt;
* The application's interface language can be set from the preferences dialog, Interface tab. You'll have to restart Inkscape for this choice to take effect.&lt;br /&gt;
&lt;br /&gt;
===Toolbars===&lt;br /&gt;
&lt;br /&gt;
* On the Interface tab, the toolbar icon sizes for the three main toolbars are now separately configurable and to a few different sizes. This allows for a more compact user interface.&lt;br /&gt;
* The vertical toolbox has been converted to a standard GtkToolbar, which fixed the problem of it pushing the main window taller. Tools that don't fit automatically go into a popup menu.&lt;br /&gt;
* When torn off, toolbars now keep the size they last had in the main window. They can be resized by docking, resizing the main window, and then undocking again.&lt;br /&gt;
* Some controls (such as the Width in Calligraphic/Tweak/Eraser tools, Tremor, Wiggle, and Mass in Calligraphic, Threshold in Paintbucket, Tolerance in Pencil) are converted from numeric editable fields into draggable sliders, with labels and values (usually in the range 0..100) displayed on top. As these values don't usually require high precision, this makes adjusting them much easier and faster.&lt;br /&gt;
&lt;br /&gt;
===Clone/original visualization===&lt;br /&gt;
&lt;br /&gt;
When you press '''Shift+D''' to find and select the original of the selected clone, Inkscape draws a '''dashed blue line''' between the centers of the bounding boxes of the clone and the original. This line disappears after one second.&lt;br /&gt;
&lt;br /&gt;
===File dialogs===&lt;br /&gt;
* The Windows builds of Inkscape now have Windows-native file dialogs to keep consistency with other Windows applications.&lt;br /&gt;
* Two new entries in the File type list, '''All Bitmaps''' and '''All Vectors''', allow you to limit the listing to bitmap or vector formats only.&lt;br /&gt;
&lt;br /&gt;
===Document Properties dialog===&lt;br /&gt;
* New Color Management tab. In this new tab, you can declare multiple ICC color profiles for the current document.&lt;br /&gt;
* New Script tab. ?&lt;br /&gt;
&lt;br /&gt;
===Object Properties dialog===&lt;br /&gt;
* New Title and Description fields. The Title attribute is intended to be used as tooltip. [sas]&lt;br /&gt;
* New Interactivity section to add JavaScript calls.&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
* The confusing icons on buttons in the controls bar of the Dropper tool (pick/assign opacity) are replaced by text labels.&lt;br /&gt;
* Hovering over a swatch now shows the name of the swatch in the status bar. This makes it easier for tablet users to identify a swatch by name, as holding a stylus still enough for the tooltip to show up may be difficult.&lt;br /&gt;
* In the Align and Distribute dialog, there is an option to treat all selected objects as a group when aligning. This spares the trouble of manually grouping them, aligning, and ungrouping afterwards.&lt;br /&gt;
&lt;br /&gt;
==Notable bug fixes==&lt;br /&gt;
&lt;br /&gt;
* Several '''memory leaks''' are stopped, reducing the memory consumption during long editing sessions considerably. Closing the last window with a document now frees memory used by that document immediately. &lt;br /&gt;
&lt;br /&gt;
* '''Copy/paste''' between Inkscape and other programs, as well as between different Inkscape instances, finally works as expected.&lt;br /&gt;
&lt;br /&gt;
* '''No more ID clashes on import and paste''': previously, importing or pasting SVG objects might sometimes distort their colors, because the imported objects referred to gradients with the same IDs as those that already exist in the document but look different. Now, IDs of all gradients in the pasted document are checked for clashes with those in the host document, and if necessary changed with all their users updated correspondingly, so such unexpected color changes will never happen.&lt;br /&gt;
&lt;br /&gt;
* The '''visual bounding box''' (which is the default bounding box type used by Inkscape) of an object with a filter applied now includes the expanded area of the filter. For '''single blur filter''' (such as the blur you apply with a slider in the Fill and Stroke dialog), this expands the bounding box by 2.4*radius; although theoretically, blur is infinite, this is the distance at which the opacity of the object drops below the perceptibility threshold of our renderer. For all other filters, the area is expanded by the relative amounts you specify on the &amp;quot;Filter general settings&amp;quot; tab of the Filter Editor dialog.&lt;br /&gt;
&lt;br /&gt;
:Only visual bounding box is affected; if you use geometric bounding box, you will notice no change in most cases. However, the '''Export Bitmap''' dialog always uses the visual bounding box for selection of the export area; this means that you can now export a blurred object to bitmap without any clipping of the blur.&lt;br /&gt;
&lt;br /&gt;
* Bounding box calculation does not include the invisible objects, [https://bugs.launchpad.net/inkscape/+bug/252547 bug #252547].&lt;br /&gt;
&lt;br /&gt;
* Various fixes to PS and PDF rendering of objects involving masks, patterns, and/or bitmaps: [https://bugs.launchpad.net/inkscape/+bug/208217 bug #208217], [https://bugs.launchpad.net/inkscape/+bug/217212 bug #217212] and others.&lt;br /&gt;
&lt;br /&gt;
* File dialogs (Open, Save, Save as) now remember the last visited directory.&lt;br /&gt;
&lt;br /&gt;
* The &amp;lt;code&amp;gt;--vacuum-defs&amp;lt;/code&amp;gt; command line parameter erroneously deleted markers which are in use.&lt;br /&gt;
&lt;br /&gt;
* No more garbage lines in Outline mode.&lt;br /&gt;
&lt;br /&gt;
* No more artifacts left by the circle cursor in Tweak tool.&lt;br /&gt;
&lt;br /&gt;
* The '''Bend Path''' and '''Pattern along Path''' path effects now work correctly with closed paths.&lt;br /&gt;
&lt;br /&gt;
* Several '''[[ViewBoxToDo|viewBox]]''' related bugs fixed:&lt;br /&gt;
:* Documents with viewBox are now editable without transformation defects. In particular this affected documents created with e.g. pstoedit. [https://bugs.launchpad.net/inkscape/+bug/168370 bug #168370]&lt;br /&gt;
:* Resizing the page adjusts viewBox [https://bugs.launchpad.net/inkscape/+bug/167682 bug #167682].&lt;br /&gt;
:* preserveAspectRatio parsing code was fixed [https://bugs.launchpad.net/inkscape/+bug/166885 bug #166885].&lt;br /&gt;
&lt;br /&gt;
* Several fixes allow Inkscape to correctly render and edit SVG files that use &amp;lt;code&amp;gt;currentColor&amp;lt;/code&amp;gt; in objects' style (this includes files created by gnuplot).&lt;br /&gt;
&lt;br /&gt;
* Inkscape is now able to handle paths with only 'movetos', i.e. &amp;quot;M 0,0 M 1,1 M 2,2&amp;quot;. These kind of paths can be used to only show markers on a path without the rest of the path visible.&lt;br /&gt;
&lt;br /&gt;
* Open paths (as opposed to closed) are now correctly drawn when start and end points are equal (SVG test suite ''paths-data-10-t.svg'').&lt;br /&gt;
&lt;br /&gt;
* The shorthand 'marker' property is now correctly interpreted (SVG test suite ''painting-marker-03-f.svg'').&lt;br /&gt;
&lt;br /&gt;
* Coordinates and lengths specified in percentages are now correctly interpreted (SVG test suite ''coords-units-02-b.svg'').&lt;br /&gt;
&lt;br /&gt;
* Horizontally scrolling the canvas with a tilt wheel (present on several Logitech mice such as the LX5) in the Bezier tool will no longer finish the path being drawn.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Diederik's patch had to be backed out...&lt;br /&gt;
&lt;br /&gt;
* Annoying random displacements of pixels of bitmaps when you view them at a close zoom level are fixed.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Known issues=&lt;br /&gt;
&lt;br /&gt;
* First time opening of the drop-down list with font families in Text tool may be slow, especially if you have many fonts installed. Subsequent accesses of this list are fast. &lt;br /&gt;
&lt;br /&gt;
=Previous releases=&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=52947</id>
		<title>Release notes/0.47</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=52947"/>
		<updated>2009-06-06T22:13:08Z</updated>

		<summary type="html">&lt;p&gt;Jfb: /* New effects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Inkscape 0.47==&lt;br /&gt;
'''(not released yet - [[AnnouncePlanning047]])'''&lt;br /&gt;
&lt;br /&gt;
==Refactoring effort==&lt;br /&gt;
&lt;br /&gt;
The focus of the 0.47 release was to clean up legacy code and push forward the migration to clean object-oriented C++. The goal of this effort was to increase reliability and maintainability of Inkscape. In the long run, it will mean fewer bugs and more new features, because it will be easier to develop and find bugs in Inkscape.&lt;br /&gt;
&lt;br /&gt;
===Migration to lib2geom===&lt;br /&gt;
Many parts of the code have been changed to use the 2Geom library for geometrical calculations instead of the old libnr and Livarot libraries.&lt;br /&gt;
&lt;br /&gt;
===Preferences===&lt;br /&gt;
Instead of global functions directly manipulating an XML document, the preferences API is now exposed through the &amp;lt;code&amp;gt;Inkscape::Preferences&amp;lt;/code&amp;gt; singleton. It abstracts away the way the preferences are stored in memory. In the future it may allow for different user settings storage backends (like GConf or the upcoming dconf on GNOME desktops or .plist files on OS X). Previously, Inkscape directly manipulated an internal XML document.&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
&lt;br /&gt;
===Node tool===&lt;br /&gt;
&lt;br /&gt;
* When hovering over a path in the Node tool, the path's outline will be displayed for a short time. This effect, its duration and the color of the outline is configurable.&lt;br /&gt;
* The Node tool can now edit '''clipping paths''' and '''masks''' of objects on canvas, without releasing them. If the selected object has a clipping path and mask, the corresponding buttons on the controls bar of the tool will be enabled; pressing these buttons will display the editable paths or handles of the clippath or mask. A clipping path is stroked green, a mask is stroked blue (the same colors as those used for them in Outline mode).&lt;br /&gt;
* Snapping has been improved (more details in Snapping below)&lt;br /&gt;
* When dragging a node handle with Ctrl pressed, it now snaps not only to the 15 degree increments starting from 0 and to the original handle direction, but also to the direction of the opposite handle (if it exists) or of the opposite line segment (if it is a straight line).&lt;br /&gt;
* The behavior of the buttons/shortcuts that make a node smooth or cusp has been improved:&lt;br /&gt;
** If a node is already a cusp (diamond shaped), pressing Shift+C again on it will retract both its handles. As this works for any number of selected nodes, you can always retract all handles in all nodes by selecting all nodes and pressing Shift+C twice.&lt;br /&gt;
** If a non-smooth node is next to a straight line segment, pressing Shift+S once makes it ''half-smooth'': it now has one handle aligned with that line segment. Another press of Shift+S will expand the second handle as well turning it into a full smooth node. If a node is between two curve segments, Shift+S will expand both handles as before.&lt;br /&gt;
*'''Auto smooth nodes''': a new &amp;quot;auto&amp;quot; node type was added, similar to the one  Xara Xtreme has. An auto node is a smooth node which automatically adjusts (rotates and stretches) its handles when this node or its neighbors are moved. This adjustment (same as what you get when you convert node type to Smooth, but continuous) keeps the curve at this node as smooth as possible. It feels a bit like Spiro paths (see below); although not as smooth as a Spiro, auto nodes may often be preferable as they work without applying any Path Effect. Whenever you manually adjust the handles of an auto node or drag the adjacent curve, it loses its auto state and becomes simply smooth; for this reason, it is recommended to edit smooth nodes with the node handles hidden via a toggle button on the controls bar. Auto nodes are represented by little circles, as opposed to smooth/symmetric nodes (squares) and cusp nodes (diamonds). To convert selected node(s) to auto, press '''Shift+A''' or use the corresponding node type button on the controls bar.&lt;br /&gt;
&lt;br /&gt;
===Tweak tool===&lt;br /&gt;
&lt;br /&gt;
Several new modes are added to the Tweak tool for transforming, duplicating, and deleting selected objects using the same &amp;quot;soft brush&amp;quot; metaphor that the path editing and coloring modes use. Using these new modes, it is easy to &amp;quot;sculpt&amp;quot; scatterings of small objects, such as clone tilings, into complex and naturalistic textures.&lt;br /&gt;
&lt;br /&gt;
* '''Push mode''' moves those selected objects that are under the brush in the direction in which you move the brush. This is similar to the Push path mode, except that the Move mode affects entire objects and not parts of the paths under the brush.&lt;br /&gt;
&lt;br /&gt;
* '''Attract/Repel Objects mode'''  moves those selected objects that are under the brush towards the cursor (default) or away from cursor (with '''Shift''' pressed). This is similar to the Attract/repel path mode, except that the Move in/out mode affects entire objects and not parts of the paths under cursor.&lt;br /&gt;
&lt;br /&gt;
* '''Jitter mode''' moves those selected objects that are under the brush in random directions and by random amounts, but the overall amount of movement depends on Force, pen pressure (if you're using a tablet pen), on the closeness of the object to the center of brush, and on how long you apply the brush.&lt;br /&gt;
&lt;br /&gt;
* '''Scale mode''' scales those selected objects that are under the brush down (by default) or up (with '''Shift''' pressed). The speed of scaling depends on Force, pen pressure (if you're using a tablet pen), on the closeness of the object to the center of brush, and on how long you apply the brush.&lt;br /&gt;
&lt;br /&gt;
* '''Rotate mode''' rotates those selected objects that are under the brush clockwise (by default) or counterclockwise (with '''Shift''' pressed). The speed of rotation depends on Force, pen pressure (if you're using a tablet pen), on the closeness of the object to the center of brush, and on how long you apply the brush. &lt;br /&gt;
&lt;br /&gt;
* '''Duplicate/delete mode''' randomly duplicates those selected objects that are under the brush (by default) or deletes them (with '''Shift''' pressed). The chance of an object to be duplicated and deleted depends on Force, pen pressure (if you're using a tablet pen), on the closeness of the object to the center of brush, and on how long you apply the brush. Like with the regular Duplicate command, duplicating with Tweak tool places the copies right over the originals, and you may need to use the Jitter mode to ruffle them apart.  The duplicates created by the tool are automatically added to selection if the originals objects were in selection (e.g. if you're tweaking a group of objects, they are duplicated within that group and are not by themselves selected). &lt;br /&gt;
&lt;br /&gt;
*'''Blur mode''' blurs the selected objects under the brush more (by default) or less (with Shift pressed). The amount of blur added or removed depends on Force, pen pressure (if you're using a tablet pen), on the closeness of the object to the center of brush, and on how long you apply the brush. &lt;br /&gt;
&lt;br /&gt;
Also, the existing path editing modes of the tool have been rearranged: now Shrink and Grow are one mode (shrinks by default, grows with Shift), and Attract and Repel are one mode (attracts by default, repels with Shift). Here is a complete list of modes and shortcuts of the Tweak tool:&lt;br /&gt;
&lt;br /&gt;
 Shift+m, Shift+0	        move mode&lt;br /&gt;
 Shift+i, Shift+1	attract/repel objects mode&lt;br /&gt;
 Shift+z, Shift+2	jitter mode&lt;br /&gt;
 Shift+&amp;lt;, Shift+&amp;gt;, Shift+3	scale mode&lt;br /&gt;
 Shift+[, Shift+], Shift+4	rotate mode&lt;br /&gt;
 Shift+d, Shift+5	duplicate/delete mode&lt;br /&gt;
 Shift+p, Shift+6	push path mode&lt;br /&gt;
 Shift+s, Shift+7	shrink/grow path mode&lt;br /&gt;
 Shift+a, Shift+8	attract/repel path mode&lt;br /&gt;
 Shift+r, Shift+9	roughen mode&lt;br /&gt;
 Shift+c	        paint mode&lt;br /&gt;
 Shift+j	        color jitter mode&lt;br /&gt;
 Shift+b	        blur mode&lt;br /&gt;
&lt;br /&gt;
In Paint mode, painting with Shift inverts the color you're applying (e.g. when painting with yellow, Shift will switch the applied color to blue).&lt;br /&gt;
&lt;br /&gt;
===Calligraphy tool===&lt;br /&gt;
&lt;br /&gt;
* The tool's settings can now be saved and restored as presets.&lt;br /&gt;
&lt;br /&gt;
* When drawing with Alt pressed, Inkscape subtracts the path you have created from the selected path. With Shift, it unions with the selected path. This allows you to quickly patch or fix problems in a stroke you have drawn without leaving the tool.&lt;br /&gt;
&lt;br /&gt;
* The behavior of the tool when tracking a guide (drawing with Ctrl) has been improved:&lt;br /&gt;
&lt;br /&gt;
** The initial &amp;quot;jerk&amp;quot; when you start drawing is suppressed.&lt;br /&gt;
&lt;br /&gt;
** The undesired flipping of the stroke to the other side of the guide path, when drawing along closed paths, is fixed. &lt;br /&gt;
&lt;br /&gt;
** If you lose connection with your guide path, the tool tries to continue moving in the same direction as if by inertia, so as to minimize the tearoff jerk.&lt;br /&gt;
&lt;br /&gt;
===Paint Bucket tool===&lt;br /&gt;
* Paint Bucket is now more tightly integrated with potrace.  As a result, memory and CPU usage on each fill operation have been reduced significantly.&lt;br /&gt;
&lt;br /&gt;
===Eraser Tool===&lt;br /&gt;
A new eraser tool has been added. Its shortcut is Shift+E. It has two main modes:&lt;br /&gt;
&lt;br /&gt;
* Delete Objects mode where any shape touched by the tool is deleted completely. This operation is in line with &amp;quot;vector&amp;quot; editing.&lt;br /&gt;
* Cut mode where erasing acts similar to erasing in a standard bitmap editor. It acts on all objects in the current layer.&lt;br /&gt;
&lt;br /&gt;
===Pen and Pencil===&lt;br /&gt;
&lt;br /&gt;
Apart from the regular Bezier mode, the pen tool now provides several new modes:&lt;br /&gt;
&lt;br /&gt;
* '''Spiro mode''': This mode automatically applies the new Spiro Splines LPE (see the section on new effects) to any newly drawn path. As mentioned below, it is not yet possible to preview Spiros before the path is finished.&lt;br /&gt;
&lt;br /&gt;
* '''Polyline mode''': This mode makes it easy to draw many straight line segments in quick succession by disallowing curves (even when you drag with the mouse).&lt;br /&gt;
&lt;br /&gt;
* '''Paraxial polyline mode''': In this mode, you can create straight line segments that are parallel to one of the coordinate axes. Normally, each line segment is drawn perpendicular to the previous one. The direction of the line segment being drawn can be toggled with Shift. When clicking on the start anchor, the path is closed with an L-shaped segment (the direction of which can also be flipped with Shift).&lt;br /&gt;
&lt;br /&gt;
Furthermore, it is now possible to automatically apply predefined vector brushes to path strokes in pen and pencil tools. This is a first step towards [http://wiki.inkscape.org/wiki/index.php/Vector-brushes this blueprint].&lt;br /&gt;
&lt;br /&gt;
In Pencil tool, the controls bar now provides the '''Smoothing''' parameter, changeable in the range from 1 to 100, which controls how much smoothing is applied to the freehand line. Small Smoothing values produce rough lines with many nodes; large values give smooth lines with few nodes. Previously, this control was only available in Inkscape Preferences.&lt;br /&gt;
&lt;br /&gt;
====Pencil sketch mode====&lt;br /&gt;
[johan]&lt;br /&gt;
Press alt and sketch away, release alt to finalize result.&lt;br /&gt;
&lt;br /&gt;
===Text tool===&lt;br /&gt;
&lt;br /&gt;
When editing multiline or flowed text, the '''PgUp''' and '''PgDn''' keys now work to move the cursor by one screen (i.e. by as many lines as fit into the screen at current zoom).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Path effects==&lt;br /&gt;
===Notable bug fixes and effect changes===&lt;br /&gt;
We try to refrain from changing the behavior of LPE's, because it will change appearance in old files when opened in new version of Inkscape (but not in any other SVG viewer or editor).  However, when an effect is really broken, we have to fix it:&lt;br /&gt;
&lt;br /&gt;
* The Pattern Along Path effect:&lt;br /&gt;
**The pattern used to be stretched across discontinuities. This has been fixed; now it treats a discontinuous path as a group of continuous paths and applies the effect separately to each. &lt;br /&gt;
** Successive copies of the pattern can now be fused into continuous paths (using the new &amp;quot;fuse nearby ends&amp;quot; feature) so that &amp;quot;filling&amp;quot; the result works as expected.&lt;br /&gt;
&lt;br /&gt;
===New effects===&lt;br /&gt;
&lt;br /&gt;
* '''Sketch''': Simulates hand-drawn lines. A set of parameters lets you tune the effect. They are all summarized in this [[:Image:SketchParameters.png|picture]].&lt;br /&gt;
&lt;br /&gt;
:[[Image:SketchExemple.png|300px]]&lt;br /&gt;
&lt;br /&gt;
* '''Hatches''' Fills the given shape with rough, configurable and randomized hatches, simulating a quick hand drawing.&lt;br /&gt;
:[[Image:hatches-lpe.png|300px]].&lt;br /&gt;
&lt;br /&gt;
* '''von Koch''': This effect creates fractal pictures. A collection of transformations (rotations, rescalings, etc...) is recursively applied to the input path. The transforms are derived from a &amp;quot;reference&amp;quot; path (a line segment) and a &amp;quot;generating&amp;quot; path (basically a collection of segments): the thransforms are the one needed to move the reference onto each segment of the generating path (components in the generating path having more than one segment might be used to define shearing/mirroring transforms). A famous example is the [http://en.wikipedia.org/wiki/Koch_snowflake von Koch's snowflake].&lt;br /&gt;
:[[Image:VonKochExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''Warning'': the complexity of the output path grows exponentially fast with the number of generations. As a guardrail, an (editable) complexity bound is provided, above which the effect is disabled.&lt;br /&gt;
&lt;br /&gt;
* '''Knot''': Creates a knot from a flat self intersecting curve. At each crossing, one string is interrupted to make it look like going under the other. The &amp;quot;sign&amp;quot; of each crossing can be set independantly. &lt;br /&gt;
:[[Image:KnotExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''Warning'': Should not be applied to groups yet, unless you don't want to edit the crossing signs.&lt;br /&gt;
&lt;br /&gt;
* '''Perspective paths''': Draw an arbitrary path as if viewed in perspective. This is work in progress. Known limitations (among others): It can only use the first perspective that exists in the document defs, and the perspective cannot be adapted interactively yet (the effect must be removed and reapplied after modifying the perspective). [max]&lt;br /&gt;
&lt;br /&gt;
* '''Spiro splines''' are a novel way of defining curvilinear paths [http://www.levien.com/spiro/ developed by Raph Levien]. It takes some getting used to, but for certain tasks (such as lettershape design) Spiros have a clear advantage over Bezier curves. Recently, Spiro support was added to the FontForge font editor; now it is available in Inkscape too, which means you can use all the convenient Inkscape path tools (moving and transforming groups of nodes, node sculpting, etc.) on Spiro paths.&lt;br /&gt;
&lt;br /&gt;
:A Spiro path is defined by a sequence of points, but unlike a regular path with Bezier curves, all Spiro points lie on the path and there are no off-path handles. The curvature of the path is defined entirely by the positions of the points and their types. The path behaves very similar to a springy rod which is forced to pass through the given points and which uses the minimum possible curvature to satisfy the requirement. As such, it feels quite natural and the resulting path is very smooth - not just superficially smooth (i.e. having no cusps), but smooth at a deeper level, which you can achieve with Beziers only after a lot of laborious tweaking. &lt;br /&gt;
&lt;br /&gt;
:To create a Spiro path, select any path and assign the &amp;quot;Spiro spline&amp;quot; path effect to it. There are no parameters. Each node of your path becomes a point of a Spiro path, depending on the type of node:&lt;br /&gt;
&lt;br /&gt;
:* Smooth nodes (those with two collinear Bezier handles; use Shift+S to make a node smooth) become smooth curve points of the Spiro path. Note that the length or direction of the Bezier handles of the source path is ignored; the only thing that matters is their collinearity.&lt;br /&gt;
&lt;br /&gt;
:* Cusp nodes of the source path become corner points of the Spiro path, like free hinges on the springy rod. Between two corner points, the path is always a straight line. To make a node cusp, retract its Bezier handles by Ctrl+click, or press Shift+C and move one of the handles so they are no longer collinear.&lt;br /&gt;
&lt;br /&gt;
:* Half-smooth nodes - those with one Bezier handle collinear with a straight line segment on the other hand - become &amp;quot;left&amp;quot; or &amp;quot;right&amp;quot; points on the Spiro path which behave exactly the same: they sit between a straight line and a curve and enforce that these two segments join smoothly without a cusp. To create such a node, make sure one of the segments is a line (select its ends and press Shift+L), then Ctrl+drag the remaining handle to make it snap to the direction of the straight line segment on the other side, or press Shift+S to lock it to that direction.&lt;br /&gt;
&lt;br /&gt;
:Note that what matters is the actual collinearity of a node's handles, regardless of the node type that the node has in the Node tool; for example, if a node designated as cusp (diamond-shaped) has collinear handles, it will become a smooth curve point of the Spiro path. &lt;br /&gt;
&lt;br /&gt;
:Some configurations of points do not converge and produce wild loops and spirals instead of a smooth curve. According to Raph, &amp;quot;The spline solver in this release is _not_ numerically robust. When you start drawing random points, you'll quickly run into divergence. However, &amp;quot;sensible&amp;quot; plates based on real fonts usually converge.&amp;quot; Avoid too sharp changes in direction between points to prevent divergence. Hopefully, the robustness of the algorithm will be improved in future releases.&lt;br /&gt;
&lt;br /&gt;
:For now, to edit Spiro paths viewing the result in real time, you have to use the Node tool; it is recommended to turn off the red highlight of the source path. The Pen tool does not yet allow you to preview a Spiro as you draw, although you can paste the Spiro effect on the path and see the result as soon as the path is finalized. &lt;br /&gt;
&lt;br /&gt;
:You can always use the Node tool to continue a Spiro path by duplicating and dragging away its end nodes. Also, when you have a Spiro path selected, you can add a new subpath to it with Pen or Pencil if you start drawing with Shift.&lt;br /&gt;
&lt;br /&gt;
* '''Construct Grid'''  [johan] Draws a grid using the first three nodes of a path. The center node defines the origin. The other two nodes define the direction and length of the two adjacent sides of the first cell. If a path has more than three nodes, the other nodes are ignored. One can select the number of cells in the two orthogonal directions.&lt;br /&gt;
&lt;br /&gt;
* '''Envelope Deformation''' allows you to deform an object (or a group of object) by deforming its sides. Modifications are done by deforming the four path parameters: Top, Bottom, Left and Right.&lt;br /&gt;
&lt;br /&gt;
* '''Ruler''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Interpolate Subpaths''': [Johan]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- These effects are still hidden or under developpement. unhide them when they are added...&lt;br /&gt;
&lt;br /&gt;
* '''Lattice Deformation''' allows you to deform an object (or a group of objects) by moving 16 control points.&lt;br /&gt;
&lt;br /&gt;
* '''Perpendicular bisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Angle bisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Tangent to a curve''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle through 3 points''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle with radius''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Freehand Shape''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Path Length''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Text Label''': [max]&lt;br /&gt;
--!&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===New features===&lt;br /&gt;
* The '''Paste Path Effect''' command is enabled to assign the path effect of the clipboard to any number of paths, going recursively into groups if necessary.&lt;br /&gt;
&lt;br /&gt;
* A new command, '''Remove Path effect''' removes any path effects from all selected objects, going recursively into groups if necessary. &lt;br /&gt;
&lt;br /&gt;
* Along with the commands to open the path effects dialog and to paste path effects, the three commands were collected in a submenu under Path menu.&lt;br /&gt;
&lt;br /&gt;
* Live path effects can now be assigned to the sides of a 3D box (use Ctrl+click to select individual sides).&lt;br /&gt;
&lt;br /&gt;
* The Pen and Pencil tools now correctly work with paths with LPEs: you can continue such a path or add a new subpath to it by drawing with Shift, all preserving the effect applied to it.&lt;br /&gt;
&lt;br /&gt;
* Path type parameters can now link to existing shapes &amp;lt;b&amp;gt;and text&amp;lt;/b&amp;gt;, like clones do. Now it is possible to use text as input for the Pattern Along Path effect for example!&lt;br /&gt;
&lt;br /&gt;
* Lib2geom now has an implementation for EllipticalArc. For Inkscape, this means that it is now possible to directly copy-paste ellipse shapes on path parameters (e.g. 'pattern' in Pattern along Path), without the need to convert the ellipse object to path first. [needs coding and checking]&lt;br /&gt;
&lt;br /&gt;
===Live Path Effects for groups===&lt;br /&gt;
&lt;br /&gt;
LPE can now be assigned to a group. For most LPEs, the effect is applied recursively but for Bend Path or Deformations the result is more powerful : the distortion applies on the whole group. &lt;br /&gt;
&lt;br /&gt;
*You can as usual enter the group by double-clicking on it. &lt;br /&gt;
*It applies recursively, this means that a LPE can be assigned to groups of groups &lt;br /&gt;
*The Effect can be applied definitively with &amp;quot;Convert Object to path&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Live Path Effects stacking===&lt;br /&gt;
&lt;br /&gt;
With Live Path Effects stacking, more than one Live Path Effect can be assigned to an item. A new UI was created to control the stack.&lt;br /&gt;
&lt;br /&gt;
==Import/Export==&lt;br /&gt;
===PostScript and EPS import===&lt;br /&gt;
&lt;br /&gt;
Inkscape's capability to open or import PS and EPS files now uses Ghostscript instead of pstoedit. If you need to open files of these types, install Ghostscript and make sure the directory with the &amp;lt;code&amp;gt;ps2pdf&amp;lt;/code&amp;gt; utility from Ghostscript installation is in your PATH. On opening, you will see a preferences dialog similar to PDF import, which, for multipage PS files, allows you to select the page to open.&lt;br /&gt;
&lt;br /&gt;
===PDF import===&lt;br /&gt;
&lt;br /&gt;
* A new checkbox on the PDF import dialog, '''Replace PDF fonts with closest-named installed fonts''' (on by default) attempts to replace all font names in the imported PDF with the most similar names of those fonts installed on your system. For example, if the PDF uses the font &amp;quot;TimesNewRomanPSMT&amp;quot; and you have &amp;quot;Times New Roman&amp;quot; installed, that font will be used, which will likely give you a more correct appearance than the unknown font &amp;quot;TimesNewRomanPSMT&amp;quot; that will be displayed as the default sans serif font. This is a temporary fix necessary because Inkscape cannot yet extract the fonts from the PDF files it imports nor can it embed them into SVG; when it gets these capabilities, such font name conversion will become unnecessary because all fonts will be preserved. &lt;br /&gt;
&lt;br /&gt;
* Importing PDF files now works '''from the command line'''. For example,&lt;br /&gt;
&lt;br /&gt;
 inkscape file.pdf --export-plain-svg=file.svg&lt;br /&gt;
&lt;br /&gt;
:It will take the first page of the PDF and all the default import options, and save the result to SVG. If you try to import PDF without an &amp;lt;code&amp;gt;--export&amp;lt;/code&amp;gt; command, it will show the import options dialog as before and open the file in the UI.&lt;br /&gt;
&lt;br /&gt;
===PDF, PostScript, and EPS export===&lt;br /&gt;
&lt;br /&gt;
The new Cairo-based PS and EPS exporter provides a much better support for various vector features, including clipping paths, patterns, and non-ASCII characters. Those features that are not supported by the target formats are exported via embedded rasters that preserve the appearance; in particular:&lt;br /&gt;
&lt;br /&gt;
* '''transparency''' is always rasterized in PS or EPS but not PDF, as PDF supports vector transparency;&lt;br /&gt;
&lt;br /&gt;
* '''filters''', such as blur, are by default rasterized in all three formats (PS, EPS, PDF), but this can be turned off by unchecking the &amp;quot;Rasterize filter effects&amp;quot; option in the UI or adding the --export-ignore-filters option via the command line, in which case filtered objects are rendered as vectors without filters and without rasterization.&lt;br /&gt;
&lt;br /&gt;
* The '''resolution''' for rasterizing the filters can be set in the UI as &amp;quot;Resolution for rasterization (dpi)&amp;quot; parameter or on the command line by --export-dpi parameter (same as used for exporting SVG documents to bitmaps). The default is 90 dpi. The '''rendering quality''' of filters for rasterization, as well as for bitmap export, is always the best possible regardless of what you have set in the Filters tab of Preferences (that only affects on-screen rendering). For example,&lt;br /&gt;
&lt;br /&gt;
 inkscape --export-pdf=out.pdf --export-dpi=300 file.svg&lt;br /&gt;
&lt;br /&gt;
:will export file.svg to out.pdf, rasterizing any filtered objects in it at 300 dpi. (If there are no filtered objects, the --export-dpi has no effect on anything.)&lt;br /&gt;
&lt;br /&gt;
All of PS, EPS, and PDF export formats uniformly support the export area options (canvas or drawing) and the new export-id option: &lt;br /&gt;
&lt;br /&gt;
* You can now export a single object from a complex document (for example, a single layer) if you specify the ID of that object in the &amp;quot;Limit export to the object with ID&amp;quot; field in the GUI or via the '''--export-id=ID''' option on the command line. The export will show only that object (all others will not be exported at all). The BoundingBox (page size) of the exported PS/EPS/PDF file will correspond to the bounding box of that object; you can override that with &amp;quot;Export area is whole canvas&amp;quot; (GUI) or '''--export-area-canvas''' (command line) option which forces the output to have the size of the SVG document's canvas (this may not be possible with EPS, see below).&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Export area is whole canvas&amp;quot; (GUI) or '''--export-area-canvas''' (command line) option forces the output to have the size of the SVG document's canvas. This is the default for PS and PDF but not for EPS. &lt;br /&gt;
&lt;br /&gt;
**Note that for EPS, the specification of the format does not allow its bounding box to extend beyond its content. This means that when --export-area-canvas is used with EPS export, the canvas bounding box will be trimmed inwards (but never outwards) to the bounding box of the content if it is smaller. If you want a file which has a %BoundingBox different from the bounding box of its content, you can use PS or PDF export formats instead of EPS, or add a white background rectangle with the required size to source document before exporting to EPS.&lt;br /&gt;
&lt;br /&gt;
** The &amp;lt;b&amp;gt;--export-bbox-page&amp;lt;/b&amp;gt; command line parameter is removed; use &amp;lt;b&amp;gt;--export-area-canvas&amp;lt;/b&amp;gt; instead. &lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Export area is the drawing&amp;quot; (GUI) or '''--export-area-drawing''' (command line) option forces the output to have the size of the exported objects' bounding box, regardless of canvas size. If no --export-id is specified, this means the bounding box of the entire drawing; with --export-id, this means the bounding box of the exported object only. This is the default for EPS. &lt;br /&gt;
&lt;br /&gt;
* The &amp;lt;b&amp;gt;--export-embed-fonts&amp;lt;/b&amp;gt; option is removed; now Inkscape always embeds and subsets all fonts used in the document when exporting PS, EPS, or PDF.&lt;br /&gt;
&lt;br /&gt;
===UniConvertor-based import and export===&lt;br /&gt;
&lt;br /&gt;
Inkscape can now use UniConvertor to import files of the following types:&lt;br /&gt;
&lt;br /&gt;
* Corel DRAW Compressed Exchange files (CCX)&lt;br /&gt;
* Corel DRAW 7-X4 document files (CDR)&lt;br /&gt;
* Corel DRAW 7-X4 Template files (CDT)&lt;br /&gt;
* Corel DRAW Presentation Exchange files (CMX)&lt;br /&gt;
* sK1 files (SK1)&lt;br /&gt;
* Computer Graphics Metafiles (CGM)&lt;br /&gt;
* Windows Metafiles (WMF)&lt;br /&gt;
&lt;br /&gt;
Inkscape can now use UniConvertor to export files of the following types:&lt;br /&gt;
&lt;br /&gt;
* Windows Metafiles (WMF)&lt;br /&gt;
* sK1 files (SK1)&lt;br /&gt;
&lt;br /&gt;
Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
On Windows, UniConvertor is included with Inkscape distribution and does not require separate installation.&lt;br /&gt;
&lt;br /&gt;
===HPGL export===&lt;br /&gt;
&lt;br /&gt;
Inkscape can now export to HPGL (Hewlett-Packard Graphics Language). It is a file format that is used for various cutters/plotters.&lt;br /&gt;
&lt;br /&gt;
===JavaFX export===&lt;br /&gt;
&lt;br /&gt;
[]&lt;br /&gt;
&lt;br /&gt;
===DXF export===&lt;br /&gt;
&lt;br /&gt;
DXF export is much faster than in previous versions.&lt;br /&gt;
&lt;br /&gt;
===PNG export===&lt;br /&gt;
&lt;br /&gt;
* If you specify a relative path for exported PNG file (e.g. &amp;lt;code&amp;gt;../&amp;lt;/code&amp;gt;) it will now be resolved relative to the current document's location.&lt;br /&gt;
&lt;br /&gt;
* PNG export has been updated to include metadata if present in the source SVG.&lt;br /&gt;
&lt;br /&gt;
==Autosave==&lt;br /&gt;
&lt;br /&gt;
Autosave has now been added to allow for automatic timed backups as work goes on. Saved versions are put in a designated directory and do not overwrite the original SVG file and each other. Go to Inkscape Preferences, Autosave tab, to enable this feature and specify the backup time interval, the directory, and the maximum number of saved backups (if this number is exceeded, old backups will start to be deleted).&lt;br /&gt;
&lt;br /&gt;
==Extensions==&lt;br /&gt;
&lt;br /&gt;
* The former Effects menu is renamed to '''Extensions'''. This is less confusing and better reflects the content of the menu: a collection of extensions, written mostly in Python, which perform various tasks with or without selection. &lt;br /&gt;
&lt;br /&gt;
===New and improved extensions===&lt;br /&gt;
&lt;br /&gt;
* The new '''Arrange &amp;gt; Restack''' extension restacks the Z-order of selected objects, from left to right, top to bottom (or vice versa), with radial outward or inward or by an arbitrary angle, specifying the base point for comparison (top, left, middle, etc.).&lt;br /&gt;
* The improved '''Modify Path &amp;gt; Add Nodes''' extension now also allows segments to be divided into a given number of subsegments.&lt;br /&gt;
* The new '''Printing &amp;gt; Add printing marks''' extension add useful printing marks and color bars required by printing bureaus. You can either manually define margins by which cut marks are created.&lt;br /&gt;
* The new '''Render &amp;gt; 3D Polyhedron''' extension allows drawing polyhedrons from scratch and render them from OBJ files.&lt;br /&gt;
* The new '''Render &amp;gt; Alphabet Soup''' extension is a vector rework of Matt Chrisholm's [http://www.theory.org/artprojects/alphabetsoup/main.html GPLed script]. Alphabet Soup randomly mashes glyph-elements together to make exotic looking text.&lt;br /&gt;
* The new '''Render &amp;gt; Cartesian Grid''' extension plots Cartesian (square) grids that do not fill the page, but offer three levels of division, logarithmic scales (with clutter-reduction and arbitrary base) and customisable line width. All like elements (eg x-axis subminor divisions) are put into subgroups together. A proper border is also drawn, with an independent line thickness.&lt;br /&gt;
* The new '''Render &amp;gt; Draw from Triangle''' extension takes a triangle drawn as a path (only the first three nodes of a path are counted) and allows to draw many triangle-related geometrical objects such as circumcircles, excentral triangles, etc. It also allows entry of custom trilinear coordinated and triangle centre functions, as well as computation of basic triangle properties such as area and semiperimeter.&lt;br /&gt;
* The new '''Render &amp;gt; Guides Creator''' extension allows creating easily horizontal and vertical guides for dividing equally the canvas. You can choose the divisions from None, 1/2, 1/3 ... to 1/10.&lt;br /&gt;
* The new '''Render &amp;gt; Polar Grid''' extension plots a polar co-ordinate grid, with options for arbitrary-base logarithmic subdivisions, clutter-reduction around the origin, circumferential labels and custom line widths.&lt;br /&gt;
* The new '''Render &amp;gt; Calendar''' extension draws a calendar for a given year with localizable month/weekday names, colors, and other options.&lt;br /&gt;
* The new '''Text &amp;gt; Convert to Braille''' extension recodes English (or just Latin letters) text to [http://en.wikipedia.org/wiki/Braille Braille] code. This is obviously just an aesthetical feature. It is not intended to create real braille text for visually impaired people but instead it is meant to enable an accurate graphical representation of braille text to be used in illustrations.&lt;br /&gt;
* The new '''Render &amp;gt; Foldable Box''' extension helps to design and construct paper boxes.&lt;br /&gt;
&lt;br /&gt;
===API changes===&lt;br /&gt;
&lt;br /&gt;
While the &amp;quot;Live preview&amp;quot; checkbox is useful for most effects, for some it just does not make sense. Now, you can add the attribute &amp;lt;code&amp;gt;needs-live-preview=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;effect&amp;lt;/code&amp;gt; element in the .inx file of the effect to suppress this checkbox for your effect.&lt;br /&gt;
&lt;br /&gt;
Parameters passed to extensions (via the &amp;lt;param&amp;gt; element) now have a new boolean attribute - &amp;lt;code&amp;gt;gui-hidden&amp;lt;/code&amp;gt; to indicate that the parameter should not be represented in the GUI. If all parameters are marked as hidden no GUI is presented for such extension.&lt;br /&gt;
&lt;br /&gt;
All '''.inx''' files are now properly formatted XML files with its own namespace of: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.inkscape.org/namespace/inkscape/extension&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and a Relax NG schema to define it. More information can be found in the [[Extensions]] Article.&lt;br /&gt;
&lt;br /&gt;
==Filters==&lt;br /&gt;
&lt;br /&gt;
The Filter Editor (former Filter Effects) and Remove Filters commands are moved from the Object menu to the new '''Filters''' top-level menu, which also contains a collection of preset filters.&lt;br /&gt;
&lt;br /&gt;
===Preset filters===&lt;br /&gt;
&lt;br /&gt;
The Filter Editor is powerful, but can be quite cumbersome. You can now add complex preset filters to the selected objects with a single command by choosing it from the new '''Filters''' top-level menu. Submenus categorize the filters by function or appearance. Most filters apply immediately after selecting the command; some present a dialog where you can adjust some of the parameters before applying the filter (such filters have &amp;quot;...&amp;quot; at the end of the command in the menu). By default if the selected object already has some filter applied, the chosen filter will be merged with the existing filter for combined effect. However you can also apply several overlaid filters to an object while keeping them separated : simply press Ctrl+G after applying any filter and then apply another one ; the filters will then display separately into the Filters Editor.&lt;br /&gt;
&lt;br /&gt;
You can easily add your own filters to these menus. Simply place any SVG file with the filters to the &amp;lt;code&amp;gt;filters&amp;lt;/code&amp;gt; subdirectory of your config directory (&amp;lt;code&amp;gt;~/.config/Inkscape/&amp;lt;/code&amp;gt; on Linux) and the filters will be picked up. By default, they will be placed in the Personal submenu under Effects &amp;gt; Filters. If you want to control this, add the following attributes to the &amp;lt;code&amp;gt;filter&amp;lt;/code&amp;gt; element:&lt;br /&gt;
&lt;br /&gt;
 inkscape:label         is the command label&lt;br /&gt;
 inkscape:menu          is the submenu to place the command into&lt;br /&gt;
 inkscape:menu-tooltip  is the tooltip (displayed in the statusbar &lt;br /&gt;
                        as you select the command)&lt;br /&gt;
&lt;br /&gt;
===''No Filters'' rendering mode===&lt;br /&gt;
In order to facilitate editing documents that use lots of SVG filter effects, filter effects can now be disabled for a particular document window by selecting '''View|Display mode|No Filters''' from its menu.  This provides an intermediate step between &amp;quot;normal&amp;quot; and &amp;quot;outline&amp;quot; view modes.&lt;br /&gt;
&lt;br /&gt;
The Toggle view command in the Display mode submenu (Ctrl+keypad 5) toggles between the outline view and either regular or no-filters view, depending on which was used most recent.&lt;br /&gt;
&lt;br /&gt;
===Filter quality setting===&lt;br /&gt;
&lt;br /&gt;
Instead of the 'blur quality' setting, Inkscape now has a general 'filter effects quality' setting. It affects all filters and gives you an opportunity to find optimum balance between speed and accuracy when rendering filters.&lt;br /&gt;
&lt;br /&gt;
==SVG support==&lt;br /&gt;
&lt;br /&gt;
===Optimized CSS properties===&lt;br /&gt;
&lt;br /&gt;
* As a file size optimization, Inkscape does not write into SVG some of the stroke properties if the object has &amp;lt;code&amp;gt;stroke:none&amp;lt;/code&amp;gt; and some of the fill properties when it has &amp;lt;code&amp;gt;fill:none&amp;lt;/code&amp;gt;. The only situation where this might affect you is if you remove stroke from an object and then turn it back on - the object will get the default stroke instead of the same it had before. &lt;br /&gt;
&lt;br /&gt;
:Also, in manually-edited SVG where a parent group has no stroke but sets some stroke properties to be inherited by its descendants, you will need to set stroke property to other than none on the group, and suppress inheritance with stroke:none on those children that don't need it.&lt;br /&gt;
&lt;br /&gt;
:Specifically, if stroke:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 stroke-width&lt;br /&gt;
 stroke-linecap&lt;br /&gt;
 stroke-linejoin&lt;br /&gt;
 stroke-miterlimit&lt;br /&gt;
 stroke-opacity&lt;br /&gt;
 stroke-dasharray&lt;br /&gt;
 stroke-dashoffset&lt;br /&gt;
&lt;br /&gt;
:Note that this does not include marker properties, which means you can still have markers on a path without visible stroke.&lt;br /&gt;
&lt;br /&gt;
:If fill:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 fill-opacity&lt;br /&gt;
 fill-rule&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;opacity&amp;lt;/code&amp;gt; property is not written if it has the default value of 1 (this property is not inherited, so the change should have no side effects).&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;marker-start&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;marker-mid&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;marker-end&amp;lt;/code&amp;gt; properties are not written if the &amp;lt;code&amp;gt;marker&amp;lt;/code&amp;gt; property is already present with the same value.&lt;br /&gt;
&lt;br /&gt;
===Optimized path data===&lt;br /&gt;
&lt;br /&gt;
In this version, the size of the path data written in the &amp;lt;code&amp;gt;d=&amp;lt;/code&amp;gt; attribute of &amp;lt;code&amp;gt;path&amp;lt;/code&amp;gt; elements is reduced by about 10%. Inkscape generates the shortest possible path strings by avoiding repeated operators and using relative coordinates (when it helps).&lt;br /&gt;
&lt;br /&gt;
This is controlled by the '''SVG output''' page of Inkscape Preferences dialog, as well as the following attributes in &amp;lt;code&amp;gt;group id=&amp;quot;svgoutput&amp;quot;&amp;lt;/code&amp;gt; in your preferences.xml file:&lt;br /&gt;
&lt;br /&gt;
* allowrelativecoordinates (default 1) to switch relative coordinates on (1) or off (0)&lt;br /&gt;
* forcerepeatcommands (default 0) to force repeating operators (1) or allow use of the more compact representation without repeated operators (0)&lt;br /&gt;
&lt;br /&gt;
===No more explicit closing line segment===&lt;br /&gt;
Inkscape used to always explicitly write the closing line segment to SVG for closed paths. For example: &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 L 0,0 z&amp;quot;. With the improved SVG path data writing, Inkscape no longer generates this closing line segment, resulting in &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 z&amp;quot;.&lt;br /&gt;
When SVG path data input contains this explicit closing segment, it is maintained throughout transformations, but is removed after using the node edit tool.&lt;br /&gt;
[this seems no longer to be true, fix it!!! -johan]&lt;br /&gt;
&lt;br /&gt;
===Horizontal and vertical path segments===&lt;br /&gt;
&lt;br /&gt;
If an SVG contains paths with shorthands for horizontal and vertical path segments ('H' or 'V'), then Inkscape will try to maintain those shorthands if possible, so the saved file will also contain them.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;script&amp;gt; tag preserved===&lt;br /&gt;
&lt;br /&gt;
While Inkscape does not yet support SVG scripting via the &amp;lt;script&amp;gt; element, this element is now preserved after editing the file in Inkscape.&lt;br /&gt;
&lt;br /&gt;
===Initial SVG Fonts support===&lt;br /&gt;
&lt;br /&gt;
As a SoC 2008 project, JucaBlues implemented initial parsing and rendering of [http://www.w3.org/TR/SVG11/fonts.html SVG Fonts].&lt;br /&gt;
You can design fonts within Inkscape, but using them to render text on the canvas is not yet supported. We are waiting libpango to implement proper support for the user-fonts feature. &lt;br /&gt;
&lt;br /&gt;
Currently the main benefit of this feature is to improve the font design workflow when working with FontForge: You can save SVG files with fonts embedded and import them into Fontforge, and you only need one file per font instead of one file per glyph.&lt;br /&gt;
&lt;br /&gt;
You can open the SVG Font dialog through Text-&amp;gt;SVG Fonts menu option.&lt;br /&gt;
&lt;br /&gt;
There is a concept that has to be understood while using the SVG Font Editor. An SVG font is a mapping of chunks of SVG drawing to characters. When a certain character is used in a string, its respective glyph is rendered. If no glyph is declared for a certain character, then there is a default &amp;quot;missing glyph&amp;quot; that is rendered. You can set the drawing that defines this missing glyph also. This is done by clicking on the '''Missing Glyph: From Selection...''' button at the top of the dialog.&lt;br /&gt;
&lt;br /&gt;
So, an example of workflow would be:&lt;br /&gt;
&lt;br /&gt;
1. Click '''New font'''. Select it. You can rename it if you wish. You will see a set of black squares in the text preview area. This is the preview text being rendered. It only uses the default missing glyph (which is initially defined as a black square) because no specific glyph was defined yet.&lt;br /&gt;
&lt;br /&gt;
2. Draw something for your desired missing glyph&lt;br /&gt;
&lt;br /&gt;
3. Click '''Missing Glyph: From selection...'''&lt;br /&gt;
&lt;br /&gt;
4. Draw a glyph for the &amp;quot;a&amp;quot; character (character matching is case sensitive)&lt;br /&gt;
&lt;br /&gt;
5. On the '''Glyphs''' tab, click '''Add glyph'''&lt;br /&gt;
&lt;br /&gt;
6. Type &amp;quot;a&amp;quot; in the '''Matching String''' column (at the moment, handling of the glyph-name attribute is not implemented)&lt;br /&gt;
&lt;br /&gt;
7. With the row selected, click '''Get curves from selection...'''&lt;br /&gt;
&lt;br /&gt;
8. Now you will probably see the &amp;quot;a&amp;quot; glyph in the preview rendering, if the preview text contains it. You can freely edit the preview text as needed to view different characters.&lt;br /&gt;
&lt;br /&gt;
Repeat steps 4 through 7 for every other glyph you wish to add to your font.&lt;br /&gt;
&lt;br /&gt;
===SVG Test Suite Compliance===&lt;br /&gt;
&lt;br /&gt;
[describe what has been improved over 0.46 and point to recent test result website]&lt;br /&gt;
As a result of last year's GSoC, there is now a rendering test framework along with a number of tests (found in the SVN repository [http://inkscape.svn.sourceforge.net/svnroot/inkscape/gsoc-testsuite/tester/ here]. These tests can be run reasonably easily on any system (you don't need to be able to compile Inkscape) and include a large part of the [http://www.w3.org/Graphics/SVG/Test/ [[W3C]] SVG Test Suite]. See [http://home.hccnet.nl/th.v.d.gronde/inkscape/ResultViewer.html this list] for up-to-date rendering results. Also see [[TestingInkscape]] for information on running and creating rendering tests.&lt;br /&gt;
&lt;br /&gt;
List of render test changes with respect to 0.46:&lt;br /&gt;
...[files which failed on 0.46 and now pass, and vice versa]&lt;br /&gt;
&lt;br /&gt;
==Editing Aids==&lt;br /&gt;
&lt;br /&gt;
===Grids===&lt;br /&gt;
* The dotted rectangular grid now shows small crosses at the intersection points of emphasis lines.&lt;br /&gt;
&lt;br /&gt;
===Guides===&lt;br /&gt;
&lt;br /&gt;
* Guides can now be rotated using the mouse. Each guide has an anchor that determines the point around which it rotates.&lt;br /&gt;
* There is now an option to treat groups as single objects during conversion to guides (as opposed to converting each object inside the group separately).&lt;br /&gt;
&lt;br /&gt;
===Snapping===&lt;br /&gt;
&lt;br /&gt;
The code relating to the snapping mechanisms has undergone major changes to make it more reliable and easier to use from a developer's perspective. Snapping to objects now invokes routines from the 2geom library, which is actively maintained and less error prone than the old Livarot library. This fixes at least two known snapping bugs.&lt;br /&gt;
&lt;br /&gt;
There is a new toolbar to control the snapping options and modes. Use View &amp;gt; Show/Hide &amp;gt; Snap controls bar to show or hide this toolbar. To control some other new snapping features, a dedicated tab has been created in the preferences dialog. The new features found on this tab are:&lt;br /&gt;
* '''Snap indicator''': When snapping has occurred, an indicator is displayed at that specific position. For now that indicator is just a cross that disappears after a second. In the future the shape of the indicator will be related to the type of target that has been snapped to&lt;br /&gt;
* '''Snap delay''': Inkscape now optionally waits some time after the mouse pointer has stopped moving before it tries to snap. This makes Inkscape much more responsive on complex documents and allows moving objects in a straight line over a grid, amongst others. &lt;br /&gt;
* Inkscape can be forced to only try snapping the (source) node that is '''closest to the mouse pointer''', à la Corel DRAW. When this mode is enabled, a snap indicator will shortly be shown at that node. This will give you maximum control of the snapping which is useful for complex drawings with many nodes.&lt;br /&gt;
* When multiple snap solutions are found, Inkscape can either prefer the closest transformation (when the weight-slider is set to 0; this is the old mode), or prefer the moved object's node that was initially the closest to the pointer (when the slider is set to 1). The way Inkscape calculates the preferred snap has been improved too, which should lead to more predictable snapping.&lt;br /&gt;
&lt;br /&gt;
Other improvements are:&lt;br /&gt;
* The '''Node tool''' now snaps to any unselected node (both cusp and smooth) within the path that's being edited, and nodes of other paths. It also snaps to the path itself, but only to the stationary segments in between two unselected nodes. It is now also possible to snap while moving nodes along a vertical or horizontal constraint.&lt;br /&gt;
* In the document properties dialog, the checkbox for &amp;quot;always snap&amp;quot; has been replaced by two radiobuttons; this should eliminate most of the confusion surrounding this option.&lt;br /&gt;
* Holding the Shift key now also disables snapping while dragging node handles, and while creating single dots&lt;br /&gt;
* During constrained drawing (using Ctrl), Inkscape will now only snap to the points on the constrained line.&lt;br /&gt;
* In the selector tool, snapping while skewing or moving with a constraint (with Ctrl) has been improved.&lt;br /&gt;
&lt;br /&gt;
Inkscape now also considers the following objects for snapping:&lt;br /&gt;
* Clipping paths and masks&lt;br /&gt;
* Midpoints of line segments&lt;br /&gt;
* Midpoints of bounding box edges&lt;br /&gt;
* Page border&lt;br /&gt;
* Intersections of any kind of paths&lt;br /&gt;
* Smooth nodes&lt;br /&gt;
* Cusp nodes&lt;br /&gt;
* Each of the handle points when creating new shapes&lt;br /&gt;
* Radius handles of rectangles&lt;br /&gt;
* Single dots&lt;br /&gt;
&lt;br /&gt;
==Other features==&lt;br /&gt;
&lt;br /&gt;
===Spell checker===&lt;br /&gt;
&lt;br /&gt;
There's now a built-in spell checker. Press '''Ctrl+Alt+K''' or choose ''Text &amp;gt; Check spelling'' to check all visible text objects in your document (they need not be selected) in turn, going top-to-bottom and left-to-right. Once a misspelled word is found, a red frame around it is displayed, and the object with the misspelling is selected; if you are in Text tool, it also places the text cursor at the beginning of the misspelled word. &lt;br /&gt;
&lt;br /&gt;
In the dialog, you can choose one of the listed suggestions and '''Accept''' it (this button is disabled unless you choose something in the list); '''Ignore''' the word for the rest of this session; or '''Add''' the word to the local dictionary.&lt;br /&gt;
&lt;br /&gt;
Also, since the dialog does not lock Inkscape's window, you can simply edit the word with Text tool. Once you edit it to something acceptable to the speller, it will automatically turn off the red frame and continue checking the&lt;br /&gt;
document. &lt;br /&gt;
&lt;br /&gt;
On Linux, you need to install Aspell and its dictionaries for the languages you want to check. On Windows, for now, only the English dictionary is included with Inkscape builds. &lt;br /&gt;
&lt;br /&gt;
===Desktop integration improvements===&lt;br /&gt;
&lt;br /&gt;
* '''Clipboard is system-wide''' - you can now copy/paste objects between different Inkscape instances as well as between Inkscape and other applications (which must be able to handle SVG on the clipboard to use this).&lt;br /&gt;
&lt;br /&gt;
* '''Open Recent menu''' now integrates with Windows recent documents management as well as freedesktop.org recent document lists (used by Gnome, KDE and Xfce). The list can be cleared from the Preferences dialog (the Interface tab).&lt;br /&gt;
&lt;br /&gt;
* '''Themable Icons''' - all icons used in Inkscape are now themable using the standard freedesktop.org theming mechanism. The list of names used is available [[themable icons|here]].&lt;br /&gt;
&lt;br /&gt;
===Shell mode===&lt;br /&gt;
&lt;br /&gt;
If you run inkscape with &amp;lt;code&amp;gt;--shell&amp;lt;/code&amp;gt;, it will enter a shell mode. In this mode, you type in commands at the prompt and Inkscape executes them, without you having to run a new copy of Inkscape for each command. This feature is mostly useful for scripting and server uses: it adds no new capabilities but allows you to improve the speed and memory requirements of any script that repeatedly calls Inkscape to perform command line tasks (such as export or conversions). Each command in shell mode must be a complete valid Inkscape command line but without the Inkscape program name, for example:&lt;br /&gt;
&lt;br /&gt;
 $ inkscape --shell&lt;br /&gt;
 Inkscape 0.46+devel interactive shell mode. Type 'quit' to quit.&lt;br /&gt;
 &amp;gt;file.svg --export-pdf=file.pdf&lt;br /&gt;
 &amp;gt;otherfile.svg --export-png=bitmap.png&lt;br /&gt;
 Background RRGGBBAA: ffffff00&lt;br /&gt;
 Area 0:0:744.094:1052.36 exported to 744 x 1052 pixels (90 dpi)&lt;br /&gt;
 Bitmap saved as: bitmap.png&lt;br /&gt;
 &amp;gt;quit&lt;br /&gt;
&lt;br /&gt;
===Gesture-based stroke width adjustment===&lt;br /&gt;
&lt;br /&gt;
Similar to editing the fill or stroke colors by dragging away from the swatch in the status bar, which was added in the last version, this version allows you to drag away from the stroke width value displayed there to change the stroke width of selection. Dragging above the 45-degree line from the swatch increases the width (up to twice the original width), dragging below it decreases the width (down to half the original width). With this feature, quick and precise stroke width adjustments are possible without opening any dialogs or menus.&lt;br /&gt;
&lt;br /&gt;
===Enhanced tablet support===&lt;br /&gt;
&lt;br /&gt;
====Input device tool switching====&lt;br /&gt;
&lt;br /&gt;
Tablets and other input devices that report separate hardware are now recognized and current tool and/or settings can be set to switch in response to the physical tool being used.&lt;br /&gt;
&lt;br /&gt;
====Extended input device configuration====&lt;br /&gt;
&lt;br /&gt;
The stock Input Devices dialog has been replaced with a completely redone version that provides a more useful representation of settings. It also contains a simple area for testing different inputs of different devices.&lt;br /&gt;
&lt;br /&gt;
Additionally hardware setup itself has been separated from general settings to allow for easier dynamic switching of settings appropriate to the task at hand.&lt;br /&gt;
&lt;br /&gt;
===Layers===&lt;br /&gt;
&lt;br /&gt;
The Layers dialog now allows for hiding or showing all layers other than the current layer. This &amp;quot;solo&amp;quot; feature allows for faster switching between working layers and for quick checking with and without others shown.&lt;br /&gt;
&lt;br /&gt;
A new command, '''Duplicate Layer''', has been added to the Layers menu to allow for duplicating an existing layer with all of its objects (even hidden or locked objects) and any sub-layers.&lt;br /&gt;
&lt;br /&gt;
The New Layer dialog can be opened with '''Ctrl+Shift+N''' shortcut.&lt;br /&gt;
&lt;br /&gt;
Layer names can now be non-unique.&lt;br /&gt;
&lt;br /&gt;
Several layer-handling inconsistencies have been fixed.&lt;br /&gt;
&lt;br /&gt;
===Linked bitmaps===&lt;br /&gt;
Linked bitmaps have a context menu option to launch editing in an external application. Linked images now will reload when the linked file changes on disk. Both the external editor application and the reload behavior is configurable.&lt;br /&gt;
&lt;br /&gt;
===Command for relinking clones===&lt;br /&gt;
&lt;br /&gt;
A new command, '''Relink Clone to Copied''' in ''Edit &amp;gt; Clone'', allows you to relink any clone to a different original object without changing its other properties. Just copy (Ctrl+C) the object you want to be the new original, select any number of clones, and choose the Relink command. Now all selected clones are linked to the copied object.&lt;br /&gt;
&lt;br /&gt;
===Automatic relinking of clones on Duplicate===&lt;br /&gt;
&lt;br /&gt;
If you turn on the '''When duplicating original+clones: Relink duplicated clones''' option on Clones tab of Inkscape Preferences (default is off), duplicating a selection containing both a clone and its original (possibly in groups) will relink the duplicated clone to the duplicated original instead of the old original.&lt;br /&gt;
&lt;br /&gt;
===Pattern editing===&lt;br /&gt;
&lt;br /&gt;
When editing pattern fills:&lt;br /&gt;
* The pattern origin and scale handles now snap.&lt;br /&gt;
* The pattern scaling can now be different in X and Y direction. Press '''Ctrl''' to have a fixed 1:1 ratio scaling (old behavior).&lt;br /&gt;
* The handles are now positioned at the corners  of the unit cell, instead of only a quarter of that cell as before. So, now a rectangle filled with pattern will have all of the pattern handles in the corners, making it harder to manipulate them. However, the handles can be dragged outside the rectangle by moving the pattern's origin handle.&lt;br /&gt;
&lt;br /&gt;
===Transform dialog: spacing out option===&lt;br /&gt;
&lt;br /&gt;
Previously, the '''Apply to each object separately''' checkbox had no effect for the '''Move''' tab. Now, if several objects are selected, this checkbox is on, and &amp;quot;Relative move&amp;quot; is on, each object is shifted relative to the closest selected object on the left (for X) or below (for Y). &lt;br /&gt;
&lt;br /&gt;
For example, if you have a horizontal row of objects and you move them relatively by x = 5 px with &amp;quot;Apply to each object separately&amp;quot; on, the leftmost object will shift by 5px, the next one to the right by 10px, and so on; the rightmost selected object is displaced by 5*n px where n is the number of selected objects. As a result, the distance in each pair of adjacent objects will increase by 5px and the whole row will be spaced out, much like a letterspacing adjustment spaces out a text string. Moving these objects by X=-5px will, conversely, squeeze them tighter together: the leftmost will move by -5px, the next one by -10px, and so on. For Y, the effect is the same except that the move starts from the object closest to the bottom (i.e. with smallest Y coordinate).&lt;br /&gt;
&lt;br /&gt;
When determining the order of shifting objects, for X, the left edges of their bounding boxes are sorted horizontally, and for Y, the bottoms of their bounding boxes are sorted vertically. Order of selecting the objects or z-order does not matter.&lt;br /&gt;
&lt;br /&gt;
===Converting text to path produces a group===&lt;br /&gt;
&lt;br /&gt;
Converting a text or flowed text to path (Ctrl+Shift+C) now produces a group of paths, one path for each glyph of text, instead of a single monolithic path as before. Apart from easier manipulation, an additional advantage is that if your text contained styled spans (i.e. fragments with different color, opacity, or other properties), these styles will be preserved by the corresponding glyph paths after the conversion.&lt;br /&gt;
&lt;br /&gt;
===Combine works on groups===&lt;br /&gt;
&lt;br /&gt;
The Combine command now works transparently on groups, i.e. combines paths inside selected groups at any level of grouping.&lt;br /&gt;
&lt;br /&gt;
===Path exclusion===&lt;br /&gt;
The Exclusion boolean operation can now operate on an arbitrary number of paths.&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
&lt;br /&gt;
===Inkscape Preferences dialog===&lt;br /&gt;
&lt;br /&gt;
* This dialog has been rearranged for more logical grouping of options. New pages have been added: '''Bitmaps''' (options for the new update-on-file-change and external editor features), '''UI''' (options for toolbar icon sizes), and '''SVG Output''' (options for SVG formatting, introduced in 0.46 and now editable from the dialog as well). &lt;br /&gt;
&lt;br /&gt;
* A new option on the Bitmaps tab, '''Resolution for Create Bitmap Copy''', allows you to set the resolution of the bitmap created by the corresponding command (by default bound to Alt+B). The default value of 90 dpi forces the resulting bitmap to align with the default 1px-spaced grid on the canvas.&lt;br /&gt;
&lt;br /&gt;
* '''Zoom correction factor''': the Interface tab has an adjustable ruler. Move the slider until the ruler's on-screen size matches its true size. This is used as a reference point for 100% (original size) zoom.&lt;br /&gt;
&lt;br /&gt;
* The application's interface language can be set from the preferences dialog. You'll have to restart Inkscape to see the changes.&lt;br /&gt;
&lt;br /&gt;
===Toolbars===&lt;br /&gt;
&lt;br /&gt;
* The toolbar icon sizes for the three main toolbars are now separately configurable and to a few different sizes. This allows for a more compact user interface.&lt;br /&gt;
* The main tools toolbar has been converted to a standard GtkToolbar, removing the problem of it pushing the main window taller. Tools that don't fit automatically flow into a popup menu.&lt;br /&gt;
* When torn off, toolbars now keep the size they last had in the main window. They can be resized by docking, resizing the main window, and then undocking again.&lt;br /&gt;
* Some controls (such as the Width in Calligraphic/Tweak/Eraser tools, Tremor, Wiggle, and Mass in Calligraphic, Threshold in Paintbucket, Tolerance in Pencil) are converted from numeric editable fields into draggable sliders, with labels and values (usually in the range 0..100) displayed on top. As these values don't usually require much precision, this makes adjusting them much easier and faster.&lt;br /&gt;
&lt;br /&gt;
===Clone/original visualization===&lt;br /&gt;
&lt;br /&gt;
When you press Shift+D to find and select the original of the selected clone, Inkscape draws a dashed line between the centers of the bounding boxes of the clone and the original. This line disappears after one second.&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
* The Windows builds of Inkscape now have Windows-native file dialogs to keep consistency with other Windows applications.&lt;br /&gt;
* The file dialogs have two new entries in the File type list, All Bitmaps and All Vectors, allowing you to limit the listing to bitmap or vector formats only.&lt;br /&gt;
* In the Align and Distribute dialog there is now an option to treat all selected objects as a group when aligning. This spares the trouble of manually grouping them, aligning, and ungrouping afterwards).&lt;br /&gt;
* The confusing icons on buttons in the controls bar of the Dropper tool (pick/assign opacity) are replaced by text labels.&lt;br /&gt;
* The Document Properties dialog now has a Color Management tab. In this new tab, you can declare multiple ICC color profiles for the current document.&lt;br /&gt;
* Hovering over a swatch now shows the name of the swatch in the status bar. This makes it easier for tablet users to identify a swatch by name, as holding a stylus still enough for the tooltip to show up is difficult.&lt;br /&gt;
* Title and Description fields in the Object Properties dialog [sas]&lt;br /&gt;
* Interactivity attributes in the Object Properties dialog&lt;br /&gt;
&lt;br /&gt;
==Notable bug fixes==&lt;br /&gt;
&lt;br /&gt;
* Several '''memory leaks''' are stopped, reducing the memory consumption during long editing sessions considerably. Closing the last window with a document now frees memory used by that document immediately. &lt;br /&gt;
&lt;br /&gt;
* Inkscape is now able to handle paths with only 'movetos', i.e. &amp;quot;M 0,0 M 1,1 M 2,2&amp;quot;. These kind of paths can be used to only show markers on a path without the rest of the path visible.&lt;br /&gt;
&lt;br /&gt;
* The '''visual bounding box''' (which is the default bounding box type used by Inkscape) of an object with a filter applied, now includes the expanded area of the filter. For '''single blur filter''' (such as the blur you apply with a slider in the Fill and Stroke dialog), this expands the bounding box by 2.4*radius; although theoretically, blur is infinite, this is the distance at which the opacity of the object drops below the perceptibility threshold of our renderer. For all other filters, the area is expanded by the relative amounts you specify on the &amp;quot;Filter general settings&amp;quot; tab of the Filter Effects dialog.&lt;br /&gt;
&lt;br /&gt;
:Only visual bounding box is affected; if you use geometric bounding box, you will notice no change in most cases. However, the Export bitmap dialog always uses the visual bounding box for selection of the export area; this means that you can now export a blurred object to bitmap without any clipping of the blur.&lt;br /&gt;
&lt;br /&gt;
* Bounding box calculation does not include the invisible objects. [https://bugs.launchpad.net/inkscape/+bug/252547 bug #252547]&lt;br /&gt;
&lt;br /&gt;
* Several fixes allows Inkscape to correctly render and edit SVG files that use &amp;lt;code&amp;gt;currentColor&amp;lt;/code&amp;gt; in objects' style (this includes files created by gnuplot).&lt;br /&gt;
&lt;br /&gt;
* '''No more ID clashes on import and paste''': previously, importing or pasting SVG objects might sometimes distort their colors, because the imported objects referred to gradients with the same IDs as those that already exist in the document but look different. Now, IDs of all gradients in the pasted document are checked for clashes with those in the host document, and if necessary changed with all their users updated correspondingly, so such unexpected color changes will never happen.&lt;br /&gt;
&lt;br /&gt;
* File dialogs remember last visited directory.&lt;br /&gt;
&lt;br /&gt;
* The --vacuum-defs command line parameter erroneously deleted markers which are in use.&lt;br /&gt;
&lt;br /&gt;
* No more garbage lines in outline mode.&lt;br /&gt;
&lt;br /&gt;
* No more artifacts left by the circle cursor in Tweak tool.&lt;br /&gt;
&lt;br /&gt;
* The Live Path Effects '''Bend Path''' and '''Pattern along Path''' now work correctly with closed paths.&lt;br /&gt;
&lt;br /&gt;
* Several '''[[ViewBoxToDo|viewBox]]''' related bugs fixed&lt;br /&gt;
** Documents with viewBox are now editable without transformation defects. In particular this affected documents created with e.g. pstoedit. [https://bugs.launchpad.net/inkscape/+bug/168370 bug #168370]&lt;br /&gt;
** Resizing the page adjusts viewBox. [https://bugs.launchpad.net/inkscape/+bug/167682 bug #167682]&lt;br /&gt;
** preserveAspectRatio parsing code fixed. [https://bugs.launchpad.net/inkscape/+bug/166885 bug #166885]&lt;br /&gt;
&lt;br /&gt;
* open paths (as opposed to closed paths) are now correctly drawn when start and end points are equal. (SVG test suite ''paths-data-10-t.svg'')&lt;br /&gt;
&lt;br /&gt;
* The shorthand 'marker' property is now correctly interpreted (SVG test suite ''painting-marker-03-f.svg'')&lt;br /&gt;
&lt;br /&gt;
* Coordinates and lengths specified in percentages are now correctly interpreted (SVG test suite ''coords-units-02-b.svg'')&lt;br /&gt;
&lt;br /&gt;
* Horizontally scrolling the canvas with a tilt wheel (present on several Logitech mice like the LX5) in the Bezier tool will no longer finish creating the path.&lt;br /&gt;
&lt;br /&gt;
* Various fixes to PS and PDF rendering of objects involving masks, patterns, and/or bitmaps. [https://bugs.launchpad.net/inkscape/+bug/208217 bug #208217], [https://bugs.launchpad.net/inkscape/+bug/217212 bug #217212].&lt;br /&gt;
&lt;br /&gt;
==Previous releases==&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=50064</id>
		<title>Release notes/0.47</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=50064"/>
		<updated>2009-04-15T18:18:54Z</updated>

		<summary type="html">&lt;p&gt;Jfb: /* New effects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Inkscape 0.47==&lt;br /&gt;
'''(not released yet)'''&lt;br /&gt;
&lt;br /&gt;
==Refactoring effort==&lt;br /&gt;
&lt;br /&gt;
The focus of the 0.47 release was to clean up legacy code and push forward the migration to clean object-oriented C++. The goal of this effort was to increase reliability and maintainability of Inkscape. In the long run, it will mean fewer bugs and more new features, because it will be easier to develop and find bugs in Inkscape.&lt;br /&gt;
&lt;br /&gt;
===Migration to lib2geom===&lt;br /&gt;
Many parts of the code have been changed to use the 2Geom library for geometrical calculations instead of the old libnr and Livarot libraries.&lt;br /&gt;
&lt;br /&gt;
===Preferences===&lt;br /&gt;
Instead of global functions directly manipulating an XML document, the preferences API is now exposed through the &amp;lt;code&amp;gt;Inkscape::Preferences&amp;lt;/code&amp;gt; singleton. It abstracts away the way the preferences are stored in memory. In the future it may allow for different user settings storage backends (like GConf or the upcoming dconf on GNOME desktops or .plist files on OS X). Previously, Inkscape directly manipulated an internal XML document.&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
&lt;br /&gt;
===Node tool===&lt;br /&gt;
&lt;br /&gt;
* When hovering over a path in the Node tool, the path's outline will be displayed for a short time. This effect, its duration and the color of the outline is configurable.&lt;br /&gt;
* The Node tool can now edit '''clipping paths''' and '''masks''' of objects on canvas, without releasing them. If the selected object has a clipping path and mask, the corresponding buttons on the controls bar of the tool will be enabled; pressing these buttons will display the editable paths or handles of the clippath or mask. A clipping path is stroked green, a mask is stroked blue (the same colors as those used for them in Outline mode).&lt;br /&gt;
* Snapping has been improved (more details in Snapping below)&lt;br /&gt;
* When dragging a node handle with Ctrl pressed, it now snaps not only to the 15 degree increments starting from 0 and to the original handle direction, but also to the direction of the opposite handle (if it exists) or of the opposite line segment (if it is a straight line).&lt;br /&gt;
* The behavior of the buttons/shortcuts that make a node smooth or cusp has been improved:&lt;br /&gt;
** If a node is already a cusp (diamond shaped), pressing Shift+C again on it will retract both its handles. As this works for any number of selected nodes, you can always retract all handles in all nodes by selecting all nodes and pressing Shift+C twice.&lt;br /&gt;
** If a non-smooth node is next to a straight line segment, pressing Shift+S once makes it ''half-smooth'': it now has one handle aligned with that line segment. Another press of Shift+S will expand the second handle as well turning it into a full smooth node. If a node is between two curve segments, Shift+S will expand both handles as before.&lt;br /&gt;
*'''Auto smooth nodes''': a new &amp;quot;auto&amp;quot; node type was added, similar to the one  Xara Xtreme has. An auto node is a smooth node which automatically adjusts (rotates and stretches) its handles when this node or its neighbors are moved. This adjustment (same as what you get when you convert node type to Smooth, but continuous) keeps the curve at this node as smooth as possible. It feels a bit like Spiro paths (see below); although not as smooth as a Spiro, auto nodes may often be preferable as they work without applying any Path Effect. Whenever you manually adjust the handles of an auto node or drag the adjacent curve, it loses its auto state and becomes simply smooth; for this reason, it is recommended to edit smooth nodes with the node handles hidden via a toggle button on the controls bar. Auto nodes are represented by little circles, as opposed to smooth/symmetric nodes (squares) and cusp nodes (diamonds). To convert selected node(s) to auto, press '''Shift+A''' or use the corresponding node type button on the controls bar.&lt;br /&gt;
&lt;br /&gt;
===Tweak tool===&lt;br /&gt;
&lt;br /&gt;
Several new modes are added to the Tweak tool for transforming, duplicating, and deleting selected objects using the same &amp;quot;soft brush&amp;quot; metaphor that the path editing and coloring modes use. Using these new modes, it is easy to &amp;quot;sculpt&amp;quot; scatterings of small objects, such as clone tilings, into complex and naturalistic textures.&lt;br /&gt;
&lt;br /&gt;
* '''Push mode''' moves those selected objects that are under the brush in the direction in which you move the brush. This is similar to the Push path mode, except that the Move mode affects entire objects and not parts of the paths under the brush.&lt;br /&gt;
&lt;br /&gt;
* '''Attract/Repel Objects mode'''  moves those selected objects that are under the brush towards the cursor (default) or away from cursor (with '''Shift''' pressed). This is similar to the Attract/repel path mode, except that the Move in/out mode affects entire objects and not parts of the paths under cursor.&lt;br /&gt;
&lt;br /&gt;
* '''Jitter mode''' moves those selected objects that are under the brush in random directions and by random amounts, but the overall amount of movement depends on Force, pen pressure (if you're using a tablet pen), on the closeness of the object to the center of brush, and on how long you apply the brush.&lt;br /&gt;
&lt;br /&gt;
* '''Scale mode''' scales those selected objects that are under the brush down (by default) or up (with '''Shift''' pressed). The speed of scaling depends on Force, pen pressure (if you're using a tablet pen), on the closeness of the object to the center of brush, and on how long you apply the brush.&lt;br /&gt;
&lt;br /&gt;
* '''Rotate mode''' rotates those selected objects that are under the brush clockwise (by default) or counterclockwise (with '''Shift''' pressed). The speed of rotation depends on Force, pen pressure (if you're using a tablet pen), on the closeness of the object to the center of brush, and on how long you apply the brush. &lt;br /&gt;
&lt;br /&gt;
* '''Duplicate/delete mode''' randomly duplicates those selected objects that are under the brush (by default) or deletes them (with '''Shift''' pressed). The chance of an object to be duplicated and deleted depends on Force, pen pressure (if you're using a tablet pen), on the closeness of the object to the center of brush, and on how long you apply the brush. Like with the regular Duplicate command, duplicating with Tweak tool places the copies right over the originals, and you may need to use the Jitter mode to ruffle them apart.  The duplicates created by the tool are automatically added to selection if the originals objects were in selection (e.g. if you're tweaking a group of objects, they are duplicated within that group and are not by themselves selected). &lt;br /&gt;
&lt;br /&gt;
*'''Blur mode''' blurs the selected objects under the brush more (by default) or less (with Shift pressed). The amount of blur added or removed depends on Force, pen pressure (if you're using a tablet pen), on the closeness of the object to the center of brush, and on how long you apply the brush. &lt;br /&gt;
&lt;br /&gt;
Also, the existing path editing modes of the tool have been rearranged: now Shrink and Grow are one mode (shrinks by default, grows with Shift), and Attract and Repel are one mode (attracts by default, repels with Shift). Here is a complete list of modes and shortcuts of the Tweak tool:&lt;br /&gt;
&lt;br /&gt;
 Shift+m, Shift+0	        move mode&lt;br /&gt;
 Shift+i, Shift+1	attract/repel objects mode&lt;br /&gt;
 Shift+z, Shift+2	jitter mode&lt;br /&gt;
 Shift+&amp;lt;, Shift+&amp;gt;, Shift+3	scale mode&lt;br /&gt;
 Shift+[, Shift+], Shift+4	rotate mode&lt;br /&gt;
 Shift+d, Shift+5	duplicate/delete mode&lt;br /&gt;
 Shift+p, Shift+6	push path mode&lt;br /&gt;
 Shift+s, Shift+7	shrink/grow path mode&lt;br /&gt;
 Shift+a, Shift+8	attract/repel path mode&lt;br /&gt;
 Shift+r, Shift+9	roughen mode&lt;br /&gt;
 Shift+c	        paint mode&lt;br /&gt;
 Shift+j	        color jitter mode&lt;br /&gt;
 Shift+b	        blur mode&lt;br /&gt;
&lt;br /&gt;
In Paint mode, painting with Shift inverts the color you're applying (e.g. when painting with yellow, Shift will switch the applied color to blue).&lt;br /&gt;
&lt;br /&gt;
===Calligraphy tool===&lt;br /&gt;
&lt;br /&gt;
* The tool's settings can now be saved and restored as presets.&lt;br /&gt;
&lt;br /&gt;
* When drawing with Alt pressed, Inkscape subtracts the path you have created from the selected path. With Shift, it unions with the selected path. This allows you to quickly patch or fix problems in a stroke you have drawn without leaving the tool.&lt;br /&gt;
&lt;br /&gt;
* The behavior of the tool when tracking a guide (drawing with Ctrl) has been improved:&lt;br /&gt;
&lt;br /&gt;
** The initial &amp;quot;jerk&amp;quot; when you start drawing is suppressed.&lt;br /&gt;
&lt;br /&gt;
** The undesired flipping of the stroke to the other side of the guide path, when drawing along closed paths, is fixed. &lt;br /&gt;
&lt;br /&gt;
** If you lose connection with your guide path, the tool tries to continue moving in the same direction as if by inertia, so as to minimize the tearoff jerk.&lt;br /&gt;
&lt;br /&gt;
===Paint Bucket tool===&lt;br /&gt;
* Paint Bucket is now more tightly integrated with potrace.  As a result, memory and CPU usage on each fill operation have been reduced significantly.&lt;br /&gt;
&lt;br /&gt;
===Eraser Tool===&lt;br /&gt;
A new eraser tool has been added. Its shortcut is Shift+E. It has two main modes:&lt;br /&gt;
&lt;br /&gt;
* Delete Objects mode where any shape touched by the tool is deleted completely. This operation is in line with &amp;quot;vector&amp;quot; editing.&lt;br /&gt;
* Cut mode where erasing acts similar to erasing in a standard bitmap editor. It acts on all objects in the current layer.&lt;br /&gt;
&lt;br /&gt;
===Pen and Pencil===&lt;br /&gt;
&lt;br /&gt;
Apart from the regular Bezier mode, the pen tool now provides several new modes:&lt;br /&gt;
&lt;br /&gt;
* '''Spiro mode''': This mode automatically applies the new Spiro Splines LPE (see the section on new effects) to any newly drawn path. As mentioned below, it is not yet possible to preview Spiros before the path is finished.&lt;br /&gt;
&lt;br /&gt;
* '''Polyline mode''': This mode makes it easy to draw many straight line segments in quick succession by disallowing curves (even when you drag with the mouse).&lt;br /&gt;
&lt;br /&gt;
* '''Paraxial polyline mode''': In this mode, you can create straight line segments that are parallel to one of the coordinate axes. Normally, each line segment is drawn perpendicular to the previous one. The direction of the line segment being drawn can be toggled with Shift. When clicking on the start anchor, the path is closed with an L-shaped segment (the direction of which can also be flipped with Shift).&lt;br /&gt;
&lt;br /&gt;
Furthermore, it is now possible to automatically apply predefined vector brushes to path strokes in pen and pencil tools. This is a first step towards [http://wiki.inkscape.org/wiki/index.php/Vector-brushes this blueprint].&lt;br /&gt;
&lt;br /&gt;
In Pencil tool, the controls bar now provides the '''Smoothing''' parameter, changeable in the range from 1 to 100, which controls how much smoothing is applied to the freehand line. Small Smoothing values produce rough lines with many nodes; large values give smooth lines with few nodes. Previously, this control was only available in Inkscape Preferences.&lt;br /&gt;
&lt;br /&gt;
====Pencil sketch mode====&lt;br /&gt;
[johan]&lt;br /&gt;
Press alt and sketch away, release alt to finalize result.&lt;br /&gt;
&lt;br /&gt;
===Text tool===&lt;br /&gt;
&lt;br /&gt;
When editing multiline or flowed text, the '''PgUp''' and '''PgDn''' keys now work to move the cursor by one screen (i.e. by as many lines as fit into the screen at current zoom).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Path effects==&lt;br /&gt;
===Notable bug fixes and effect changes===&lt;br /&gt;
We try to refrain from changing the behavior of LPE's, because it will change appearance in old files when opened in new version of Inkscape (but not in any other SVG viewer or editor).  However, when an effect is really broken, we have to fix it:&lt;br /&gt;
&lt;br /&gt;
* The Pattern Along Path effect:&lt;br /&gt;
**The pattern used to be stretched across discontinuities. This has been fixed; now it treats a discontinuous path as a group of continuous paths and applies the effect separately to each. &lt;br /&gt;
** Successive copies of the pattern can now be fused into continuous paths (using the new &amp;quot;fuse nearby ends&amp;quot; feature) so that &amp;quot;filling&amp;quot; the result works as expected.&lt;br /&gt;
&lt;br /&gt;
===New effects===&lt;br /&gt;
&lt;br /&gt;
* '''Sketch''': Simulates hand-drawn lines. A set of parameters lets you tune the effect. They are all summarized in this [[:Image:SketchParameters.png|picture]].&lt;br /&gt;
&lt;br /&gt;
:[[Image:SketchExemple.png|300px]]&lt;br /&gt;
&lt;br /&gt;
* '''Hatches''' Fills the given shape with rough, configurable and randomized hatches, simulating a quick hand drawing.&lt;br /&gt;
:[[Image:hatches-lpe.png|300px]].&lt;br /&gt;
&lt;br /&gt;
* '''von Koch''': This effect creates fractal pictures. A collection of transformations (rotations, rescalings, etc...) is recursively applied to the input path. The transforms are derived from a &amp;quot;reference&amp;quot; path (a line segment) and a &amp;quot;generating&amp;quot; path (basically a collection of segments): the thransforms are the one needed to move the reference onto each segment of the generating path (components in the generating path having more than one segment might be used to define shearing/mirroring transforms). A famous example is the [http://en.wikipedia.org/wiki/Koch_snowflake von Koch's snowflake].&lt;br /&gt;
:[[Image:VonKochExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''Warning'': the complexity of the output path grows exponentially fast with the number of generations. As a guardrail, an (editable) complexity bound is provided, above which the effect is disabled.&lt;br /&gt;
&lt;br /&gt;
* '''Knot''': Creates a knot from a flat self intersecting curve. At each crossing, one string is interrupted to make it look like going under the other. The &amp;quot;sign&amp;quot; of each crossing can be set independantly. &lt;br /&gt;
:[[Image:KnotExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''Warning'': Should not be applied to groups yet, unless you don't want to edit the crossing signs.&lt;br /&gt;
&lt;br /&gt;
* '''Perspective paths''': Draw an arbitrary path as if viewed in perspective. This is work in progress. Known limitations (among others): It can only use the first perspective that exists in the document defs, and the perspective cannot be adapted interactively yet (the effect must be removed and reapplied after modifying the perspective). [max]&lt;br /&gt;
&lt;br /&gt;
* '''Spiro splines''' are a novel way of defining curvilinear paths [http://www.levien.com/spiro/ developed by Raph Levien]. It takes some getting used to, but for certain tasks (such as lettershape design) Spiros have a clear advantage over Bezier curves. Recently, Spiro support was added to the FontForge font editor; now it is available in Inkscape too, which means you can use all the convenient Inkscape path tools (moving and transforming groups of nodes, node sculpting, etc.) on Spiro paths.&lt;br /&gt;
&lt;br /&gt;
:A Spiro path is defined by a sequence of points, but unlike a regular path with Bezier curves, all Spiro points lie on the path and there are no off-path handles. The curvature of the path is defined entirely by the positions of the points and their types. The path behaves very similar to a springy rod which is forced to pass through the given points and which uses the minimum possible curvature to satisfy the requirement. As such, it feels quite natural and the resulting path is very smooth - not just superficially smooth (i.e. having no cusps), but smooth at a deeper level, which you can achieve with Beziers only after a lot of laborious tweaking. &lt;br /&gt;
&lt;br /&gt;
:To create a Spiro path, select any path and assign the &amp;quot;Spiro spline&amp;quot; path effect to it. There are no parameters. Each node of your path becomes a point of a Spiro path, depending on the type of node:&lt;br /&gt;
&lt;br /&gt;
:* Smooth nodes (those with two collinear Bezier handles; use Shift+S to make a node smooth) become smooth curve points of the Spiro path. Note that the length or direction of the Bezier handles of the source path is ignored; the only thing that matters is their collinearity.&lt;br /&gt;
&lt;br /&gt;
:* Cusp nodes of the source path become corner points of the Spiro path, like free hinges on the springy rod. Between two corner points, the path is always a straight line. To make a node cusp, retract its Bezier handles by Ctrl+click, or press Shift+C and move one of the handles so they are no longer collinear.&lt;br /&gt;
&lt;br /&gt;
:* Half-smooth nodes - those with one Bezier handle collinear with a straight line segment on the other hand - become &amp;quot;left&amp;quot; or &amp;quot;right&amp;quot; points on the Spiro path which behave exactly the same: they sit between a straight line and a curve and enforce that these two segments join smoothly without a cusp. To create such a node, make sure one of the segments is a line (select its ends and press Shift+L), then Ctrl+drag the remaining handle to make it snap to the direction of the straight line segment on the other side, or press Shift+S to lock it to that direction.&lt;br /&gt;
&lt;br /&gt;
:Note that what matters is the actual collinearity of a node's handles, regardless of the node type that the node has in the Node tool; for example, if a node designated as cusp (diamond-shaped) has collinear handles, it will become a smooth curve point of the Spiro path. &lt;br /&gt;
&lt;br /&gt;
:Some configurations of points do not converge and produce wild loops and spirals instead of a smooth curve. According to Raph, &amp;quot;The spline solver in this release is _not_ numerically robust. When you start drawing random points, you'll quickly run into divergence. However, &amp;quot;sensible&amp;quot; plates based on real fonts usually converge.&amp;quot; Avoid too sharp changes in direction between points to prevent divergence. Hopefully, the robustness of the algorithm will be improved in future releases.&lt;br /&gt;
&lt;br /&gt;
:For now, to edit Spiro paths viewing the result in real time, you have to use the Node tool; it is recommended to turn off the red highlight of the source path. The Pen tool does not yet allow you to preview a Spiro as you draw, although you can paste the Spiro effect on the path and see the result as soon as the path is finalized. &lt;br /&gt;
&lt;br /&gt;
:You can always use the Node tool to continue a Spiro path by duplicating and dragging away its end nodes. Also, when you have a Spiro path selected, you can add a new subpath to it with Pen or Pencil if you start drawing with Shift.&lt;br /&gt;
&lt;br /&gt;
* '''Construct Grid'''  [johan]&lt;br /&gt;
&lt;br /&gt;
* '''Perpendicular bisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Angle bisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Tangent to a curve''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle through 3 points''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle with radius''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Envelope Deformation''' allows you to deform an object (or a group of object) by deforming its sides. Modifications are done by deforming the four path parameters: Top, Bottom, Left and Right.&lt;br /&gt;
&lt;br /&gt;
* '''Lattice Deformation''' allows you to deform an object (or a group of objects) by moving 16 control points.&lt;br /&gt;
&lt;br /&gt;
* '''Ruler''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Freehand Shape''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Interpolate Subpaths''': [Johan]&lt;br /&gt;
&lt;br /&gt;
* '''Path Length''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Text Label''': [max]&lt;br /&gt;
&lt;br /&gt;
===New features===&lt;br /&gt;
* The '''Paste Path Effect''' command is enabled to assign the path effect of the clipboard to any number of paths, going recursively into groups if necessary.&lt;br /&gt;
&lt;br /&gt;
* A new command, '''Remove Path effect''' removes any path effects from all selected objects, going recursively into groups if necessary. &lt;br /&gt;
&lt;br /&gt;
* Along with the commands to open the path effects dialog and to paste path effects, the three commands were collected in a submenu under Path menu.&lt;br /&gt;
&lt;br /&gt;
* Live path effects can now be assigned to the sides of a 3D box (use Ctrl+click to select individual sides).&lt;br /&gt;
&lt;br /&gt;
* The Pen and Pencil tools now correctly work with paths with LPEs: you can continue such a path or add a new subpath to it by drawing with Shift, all preserving the effect applied to it.&lt;br /&gt;
&lt;br /&gt;
* Path type parameters can now link to existing shapes &amp;lt;b&amp;gt;and text&amp;lt;/b&amp;gt;, like clones do. Now it is possible to use text as input for the Pattern Along Path effect for example!&lt;br /&gt;
&lt;br /&gt;
* Lib2geom now has an implementation for EllipticalArc. For Inkscape, this means that it is now possible to directly copy-paste ellipse shapes on path parameters (e.g. 'pattern' in Pattern along Path), without the need to convert the ellipse object to path first. [needs coding and checking]&lt;br /&gt;
&lt;br /&gt;
===Live Path Effects for groups===&lt;br /&gt;
&lt;br /&gt;
LPE can now be assigned to a group. For most LPEs, the effect is applied recursively but for Bend Path or Deformations the result is more powerful : the distortion applies on the whole group. &lt;br /&gt;
&lt;br /&gt;
*You can as usual enter the group by double-clicking on it. &lt;br /&gt;
*It applies recursively, this means that a LPE can be assigned to groups of groups &lt;br /&gt;
*The Effect can be applied definitively with &amp;quot;Convert Object to path&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Live Path Effects stacking===&lt;br /&gt;
&lt;br /&gt;
With Live Path Effects stacking, more than one Live Path Effect can be assigned to an item. A new UI was created to control the stack.&lt;br /&gt;
&lt;br /&gt;
==Import/Export==&lt;br /&gt;
===PostScript and EPS import===&lt;br /&gt;
&lt;br /&gt;
Inkscape's capability to open or import PS and EPS files now uses Ghostscript instead of pstoedit. If you need to open files of these types, install Ghostscript and make sure the directory with the &amp;lt;code&amp;gt;ps2pdf&amp;lt;/code&amp;gt; utility from Ghostscript installation is in your PATH. On opening, you will see a preferences dialog similar to PDF import, which, for multipage PS files, allows you to select the page to open.&lt;br /&gt;
&lt;br /&gt;
===PDF import from the command line===&lt;br /&gt;
&lt;br /&gt;
Now you can use, for example,&lt;br /&gt;
&lt;br /&gt;
 inkscape file.pdf --export-plain-svg=file.svg&lt;br /&gt;
&lt;br /&gt;
It will take the first page of the PDF and all the default import options, and save the result to SVG. If you try to import PDF without an &amp;lt;code&amp;gt;--export&amp;lt;/code&amp;gt; command, it will show the import options dialog as before and open the file in the UI.&lt;br /&gt;
&lt;br /&gt;
===PDF, PostScript, and EPS export===&lt;br /&gt;
&lt;br /&gt;
The new Cairo-based PS and EPS exporter provides a much better support for various vector features, including clipping paths, patterns, and non-ASCII characters. Those features that are not supported by the target formats are exported via embedded rasters that preserve the appearance; in particular:&lt;br /&gt;
&lt;br /&gt;
* transparency is always rasterized in PS or EPS (but not PDF, as PDF supports vector transparency);&lt;br /&gt;
&lt;br /&gt;
* filters, such as blur, are by default rasterized in all three formats (PS, EPS, PDF), but this can be turned off by unchecking the &amp;quot;Rasterize filter effects&amp;quot; option in the UI or adding the --export-ignore-filters option via the command line, in which case filtered objects are rendered as vectors without filters and without rasterization.&lt;br /&gt;
&lt;br /&gt;
All of PS, EPS, and PDF export formats uniformly support the export area options (canvas or drawing) and the new export-id option: &lt;br /&gt;
&lt;br /&gt;
* You can now export a single object from a complex document (for example, a single layer) if you specify the ID of that object in the &amp;quot;Limit export to the object with ID&amp;quot; field in the GUI or via the '''--export-id=ID''' option on the command line. The export will show only that object (all others will not be exported at all). The BoundingBox (page size) of the exported PS/EPS/PDF file will correspond to the bounding box of that object; you can override that with &amp;quot;Export area is whole canvas&amp;quot; (GUI) or '''--export-area-canvas''' (command line) option which forces the output to have the size of the SVG document's canvas (this may not be possible with EPS, see below).&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Export area is whole canvas&amp;quot; (GUI) or '''--export-area-canvas''' (command line) option forces the output to have the size of the SVG document's canvas. This is the default for PS and PDF but not for EPS. &lt;br /&gt;
&lt;br /&gt;
**Note that for EPS, the specification of the format does not allow its bounding box to extend beyond its content. This means that when --export-area-canvas is used with EPS export, the canvas bounding box will be trimmed inwards (but never outwards) to the bounding box of the content if it is smaller. If you want a file which has a %BoundingBox different from the bounding box of its content, you can use PS or PDF export formats instead of EPS, or add a white background rectangle with the required size to source document before exporting to EPS.&lt;br /&gt;
&lt;br /&gt;
** The &amp;lt;b&amp;gt;--export-bbox-page&amp;lt;/b&amp;gt; command line parameter is removed; use &amp;lt;b&amp;gt;--export-area-canvas&amp;lt;/b&amp;gt; instead. &lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Export area is the drawing&amp;quot; (GUI) or '''--export-area-drawing''' (command line) option forces the output to have the size of the exported objects' bounding box, regardless of canvas size. If no --export-id is specified, this means the bounding box of the entire drawing; with --export-id, this means the bounding box of the exported object only. This is the default for EPS. &lt;br /&gt;
&lt;br /&gt;
* The &amp;lt;b&amp;gt;--export-embed-fonts&amp;lt;/b&amp;gt; option is removed; now Inkscape always embeds and subsets all fonts used in the document when exporting PS, EPS, or PDF.&lt;br /&gt;
&lt;br /&gt;
===UniConvertor-based import and export===&lt;br /&gt;
&lt;br /&gt;
Inkscape can now use UniConvertor to import files of the following types:&lt;br /&gt;
&lt;br /&gt;
* Corel DRAW Compressed Exchange files (CCX)&lt;br /&gt;
* Corel DRAW 7-X4 document files (CDR)&lt;br /&gt;
* Corel DRAW 7-X4 Template files (CDT)&lt;br /&gt;
* Corel DRAW Presentation Exchange files (CMX)&lt;br /&gt;
* sK1 files (SK1)&lt;br /&gt;
* Computer Graphics Metafiles (CGM)&lt;br /&gt;
* Windows Metafiles (WMF)&lt;br /&gt;
&lt;br /&gt;
Inkscape can now use UniConvertor to export files of the following types:&lt;br /&gt;
&lt;br /&gt;
* Windows Metafiles (WMF)&lt;br /&gt;
* sK1 files (SK1)&lt;br /&gt;
&lt;br /&gt;
Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
On Windows, UniConvertor is included with Inkscape distribution and does not require separate installation.&lt;br /&gt;
&lt;br /&gt;
===HPGL export===&lt;br /&gt;
&lt;br /&gt;
Inkscape can now export to HPGL (Hewlett-Packard Graphics Language). It is a file format that is used for various cutters/plotters.&lt;br /&gt;
&lt;br /&gt;
===JavaFX export===&lt;br /&gt;
&lt;br /&gt;
[]&lt;br /&gt;
&lt;br /&gt;
===DXF export===&lt;br /&gt;
&lt;br /&gt;
DXF export is much faster than in previous versions.&lt;br /&gt;
&lt;br /&gt;
===PNG export===&lt;br /&gt;
&lt;br /&gt;
* If you specify a relative path for exported PNG file (e.g. &amp;lt;code&amp;gt;../&amp;lt;/code&amp;gt;) it will now be resolved relative to the current document's location.&lt;br /&gt;
&lt;br /&gt;
* PNG export has been updated to include metadata if present in the source SVG.&lt;br /&gt;
&lt;br /&gt;
==Autosave==&lt;br /&gt;
&lt;br /&gt;
Autosave has now been added to allow for automatic timed backups as work goes on. Saved versions are put in a designated directory and do not overwrite the original SVG file and each other. Go to Inkscape Preferences, Autosave tab, to enable this feature and specify the backup time interval, the directory, and the maximum number of saved backups (if this number is exceeded, old backups will start to be deleted).&lt;br /&gt;
&lt;br /&gt;
==Extensions==&lt;br /&gt;
&lt;br /&gt;
* The former Effects menu is renamed to '''Extensions'''. This is less confusing and better reflects the content of the menu: a collection of extensions, written mostly in Python, which perform various tasks with or without selection. &lt;br /&gt;
&lt;br /&gt;
===New and improved extensions===&lt;br /&gt;
&lt;br /&gt;
* The new '''Arrange &amp;gt; Restack''' extension restacks the Z-order of selected objects, from left to right, top to bottom (or vice versa), with radial outward or inward or by an arbitrary angle, specifying the base point for comparison (top, left, middle, etc.).&lt;br /&gt;
* The improved '''Modify Path &amp;gt; Add Nodes''' extension now also allows segments to be divided into a given number of subsegments.&lt;br /&gt;
* The new '''Printing &amp;gt; Add printing marks''' extension add useful printing marks and color bars required by printing bureaus. You can either manually define margins by which cut marks are created.&lt;br /&gt;
* The new '''Render &amp;gt; 3D Polyhedron''' extension allows drawing polyhedrons from scratch and render them from OBJ files.&lt;br /&gt;
* The new '''Render &amp;gt; Alphabet Soup''' extension is a vector rework of Matt Chrisholm's [http://www.theory.org/artprojects/alphabetsoup/main.html GPLed script]. Alphabet Soup randomly mashes glyph-elements together to make exotic looking text.&lt;br /&gt;
* The new '''Render &amp;gt; Cartesian Grid''' extension plots Cartesian (square) grids that do not fill the page, but offer three levels of division, logarithmic scales (with clutter-reduction and arbitrary base) and customisable line width. All like elements (eg x-axis subminor divisions) are put into subgroups together. A proper border is also drawn, with an independent line thickness.&lt;br /&gt;
* The new '''Render &amp;gt; Draw from Triangle''' extension takes a triangle drawn as a path (only the first three nodes of a path are counted) and allows to draw many triangle-related geometrical objects such as circumcircles, excentral triangles, etc. It also allows entry of custom trilinear coordinated and triangle centre functions, as well as computation of basic triangle properties such as area and semiperimeter.&lt;br /&gt;
* The new '''Render &amp;gt; Guides Creator''' extension allows creating easily horizontal and vertical guides for dividing equally the canvas. You can choose the divisions from None, 1/2, 1/3 ... to 1/10.&lt;br /&gt;
* The new '''Render &amp;gt; Polar Grid''' extension plots a polar co-ordinate grid, with options for arbitrary-base logarithmic subdivisions, clutter-reduction around the origin, circumferential labels and custom line widths.&lt;br /&gt;
* The new '''Render &amp;gt; Calendar''' extension draws a calendar for a given year with localizable month/weekday names, colors, and other options.&lt;br /&gt;
* The new '''Text &amp;gt; Convert to Braille''' extension recodes English (or just Latin letters) text to [http://en.wikipedia.org/wiki/Braille Braille] code. This is obviously just an aesthetical feature. It is not intended to create real braille text for visually impaired people but instead it is meant to enable an accurate graphical representation of braille text to be used in illustrations.&lt;br /&gt;
* The new '''Render &amp;gt; Foldable Box''' extension helps to design and construct paper boxes.&lt;br /&gt;
&lt;br /&gt;
===API changes===&lt;br /&gt;
&lt;br /&gt;
While the &amp;quot;Live preview&amp;quot; checkbox is useful for most effects, for some it just does not make sense. Now, you can add the attribute &amp;lt;code&amp;gt;needs-live-preview=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;effect&amp;lt;/code&amp;gt; element in the .inx file of the effect to suppress this checkbox for your effect.&lt;br /&gt;
&lt;br /&gt;
Parameters passed to extensions (via the &amp;lt;param&amp;gt; element) now have a new boolean attribute - &amp;lt;code&amp;gt;gui-hidden&amp;lt;/code&amp;gt; to indicate that the parameter should not be represented in the GUI. If all parameters are marked as hidden no GUI is presented for such extension.&lt;br /&gt;
&lt;br /&gt;
All '''.inx''' files are now properly formatted XML files with its own namespace of: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.inkscape.org/namespace/inkscape/extension&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and a Relax NG schema to define it. More information can be found in the [[Extensions]] Article.&lt;br /&gt;
&lt;br /&gt;
==Filters==&lt;br /&gt;
&lt;br /&gt;
The Filter Editor (former Filter Effects) and Remove Filters commands are moved from the Object menu to the new '''Filters''' top-level menu, which also contains a collection of preset filters.&lt;br /&gt;
&lt;br /&gt;
===Preset filters===&lt;br /&gt;
&lt;br /&gt;
The Filter Editor is powerful, but can be quite cumbersome. You can now add complex preset filters to the selected objects with a single command by choosing it from the new '''Filters''' top-level menu. Submenus categorize the filters by function or appearance. Most filters apply immediately after selecting the command; some present a dialog where you can adjust some of the parameters before applying the filter (such filters have &amp;quot;...&amp;quot; at the end of the command in the menu). If the selected object already has some filter applied, the chosen filter will be merged with the existing filter for combined effect. &lt;br /&gt;
&lt;br /&gt;
You can easily add your own filters to these menus. Simply place any SVG file with the filters to the &amp;lt;code&amp;gt;filters&amp;lt;/code&amp;gt; subdirectory of your config directory (&amp;lt;code&amp;gt;~/.config/Inkscape/&amp;lt;/code&amp;gt; on Linux) and the filters will be picked up. By default, they will be placed in the Personal submenu under Effects &amp;gt; Filters. If you want to control this, add the following attributes to the &amp;lt;code&amp;gt;filter&amp;lt;/code&amp;gt; element:&lt;br /&gt;
&lt;br /&gt;
 inkscape:label         is the command label&lt;br /&gt;
 inkscape:menu          is the submenu to place the command into&lt;br /&gt;
 inkscape:menu-tooltip  is the tooltip (displayed in the statusbar &lt;br /&gt;
                        as you select the command)&lt;br /&gt;
&lt;br /&gt;
===''No Filters'' rendering mode===&lt;br /&gt;
In order to facilitate editing documents that use lots of SVG filter effects, filter effects can now be disabled for a particular document window by selecting '''View|Display mode|No Filters''' from its menu.  This provides an intermediate step between &amp;quot;normal&amp;quot; and &amp;quot;outline&amp;quot; view modes.&lt;br /&gt;
&lt;br /&gt;
The Toggle view command in the Display mode submenu (Ctrl+keypad 5) toggles between the outline view and either regular or no-filters view, depending on which was used most recent.&lt;br /&gt;
&lt;br /&gt;
===Filter quality setting===&lt;br /&gt;
&lt;br /&gt;
Instead of the 'blur quality' setting, Inkscape now has a general 'filter effects quality' setting. It affects all filters and gives you an opportunity to find optimum balance between speed and accuracy when rendering filters.&lt;br /&gt;
&lt;br /&gt;
==SVG support==&lt;br /&gt;
&lt;br /&gt;
===Optimized CSS properties===&lt;br /&gt;
&lt;br /&gt;
* As a file size optimization, Inkscape does not write into SVG some of the stroke properties if the object has &amp;lt;code&amp;gt;stroke:none&amp;lt;/code&amp;gt; and some of the fill properties when it has &amp;lt;code&amp;gt;fill:none&amp;lt;/code&amp;gt;. The only situation where this might affect you is if you remove stroke from an object and then turn it back on - the object will get the default stroke instead of the same it had before. &lt;br /&gt;
&lt;br /&gt;
:Also, in manually-edited SVG where a parent group has no stroke but sets some stroke properties to be inherited by its descendants, you will need to set stroke property to other than none on the group, and suppress inheritance with stroke:none on those children that don't need it.&lt;br /&gt;
&lt;br /&gt;
:Specifically, if stroke:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 stroke-width&lt;br /&gt;
 stroke-linecap&lt;br /&gt;
 stroke-linejoin&lt;br /&gt;
 stroke-miterlimit&lt;br /&gt;
 stroke-opacity&lt;br /&gt;
 stroke-dasharray&lt;br /&gt;
 stroke-dashoffset&lt;br /&gt;
&lt;br /&gt;
:Note that this does not include marker properties, which means you can still have markers on a path without visible stroke.&lt;br /&gt;
&lt;br /&gt;
:If fill:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 fill-opacity&lt;br /&gt;
 fill-rule&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;opacity&amp;lt;/code&amp;gt; property is not written if it has the default value of 1 (this property is not inherited, so the change should have no side effects).&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;marker-start&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;marker-mid&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;marker-end&amp;lt;/code&amp;gt; properties are not written if the &amp;lt;code&amp;gt;marker&amp;lt;/code&amp;gt; property is already present with the same value.&lt;br /&gt;
&lt;br /&gt;
===Optimized path data===&lt;br /&gt;
&lt;br /&gt;
In this version, the size of the path data written in the &amp;lt;code&amp;gt;d=&amp;lt;/code&amp;gt; attribute of &amp;lt;code&amp;gt;path&amp;lt;/code&amp;gt; elements is reduced by about 10%. Inkscape generates the shortest possible path strings by avoiding repeated operators and using relative coordinates (when it helps).&lt;br /&gt;
&lt;br /&gt;
This is controlled by the '''SVG output''' page of Inkscape Preferences dialog, as well as the following attributes in &amp;lt;code&amp;gt;group id=&amp;quot;svgoutput&amp;quot;&amp;lt;/code&amp;gt; in your preferences.xml file:&lt;br /&gt;
&lt;br /&gt;
* allowrelativecoordinates (default 1) to switch relative coordinates on (1) or off (0)&lt;br /&gt;
* forcerepeatcommands (default 0) to force repeating operators (1) or allow use of the more compact representation without repeated operators (0)&lt;br /&gt;
&lt;br /&gt;
===No more explicit closing line segment===&lt;br /&gt;
Inkscape used to always explicitly write the closing line segment to SVG for closed paths. For example: &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 L 0,0 z&amp;quot;. With the improved SVG path data writing, Inkscape no longer generates this closing line segment, resulting in &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 z&amp;quot;.&lt;br /&gt;
When SVG path data input contains this explicit closing segment, it is maintained throughout transformations, but is removed after using the node edit tool.&lt;br /&gt;
[this seems no longer to be true, fix it!!! -johan]&lt;br /&gt;
&lt;br /&gt;
===Horizontal and vertical path segments===&lt;br /&gt;
&lt;br /&gt;
If an SVG contains paths with shorthands for horizontal and vertical path segments ('H' or 'V'), then Inkscape will try to maintain those shorthands if possible, so the saved file will also contain them.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;script&amp;gt; tag preserved===&lt;br /&gt;
&lt;br /&gt;
While Inkscape does not yet support SVG scripting via the &amp;lt;script&amp;gt; element, this element is now preserved after editing the file in Inkscape.&lt;br /&gt;
&lt;br /&gt;
===Initial SVG Fonts support===&lt;br /&gt;
&lt;br /&gt;
As a SoC 2008 project, JucaBlues implemented initial parsing and rendering of [http://www.w3.org/TR/SVG11/fonts.html SVG Fonts].&lt;br /&gt;
You can design fonts within Inkscape, but using them to render text on the canvas is not yet supported. Currently the main benefit of this feature is to improve the font design workflow when working with FontForge: you only need one file per font instead of one file per glyph.&lt;br /&gt;
&lt;br /&gt;
You can open the SVG Font dialog through Text-&amp;gt;SVG Fonts menu option.&lt;br /&gt;
&lt;br /&gt;
===SVG Test Suite Compliance===&lt;br /&gt;
&lt;br /&gt;
[describe what has been improved over 0.46 and point to recent test result website]&lt;br /&gt;
As a result of last year's GSoC, there is now a rendering test framework along with a number of tests (found in the SVN repository [http://inkscape.svn.sourceforge.net/svnroot/inkscape/gsoc-testsuite/tester/ here]. These tests can be run reasonably easily on any system (you don't need to be able to compile Inkscape) and include a large part of the [http://www.w3.org/Graphics/SVG/Test/ [[W3C]] SVG Test Suite]. See [http://home.hccnet.nl/th.v.d.gronde/inkscape/ResultViewer.html this list] for up-to-date rendering results. Also see [[TestingInkscape]] for information on running and creating rendering tests.&lt;br /&gt;
&lt;br /&gt;
List of render test changes with respect to 0.46:&lt;br /&gt;
...[files which failed on 0.46 and now pass, and vice versa]&lt;br /&gt;
&lt;br /&gt;
==Editing Aids==&lt;br /&gt;
&lt;br /&gt;
===Grids===&lt;br /&gt;
* The dotted rectangular grid now shows small crosses at the intersection points of emphasis lines.&lt;br /&gt;
&lt;br /&gt;
===Guides===&lt;br /&gt;
&lt;br /&gt;
* Guides can now be rotated using the mouse. Each guide has an anchor that determines the point around which it rotates.&lt;br /&gt;
* There is now an option to treat groups as single objects during conversion to guides (as opposed to converting each object inside the group separately).&lt;br /&gt;
&lt;br /&gt;
===Snapping===&lt;br /&gt;
&lt;br /&gt;
The code relating to the snapping mechanisms has undergone major changes to make it more reliable and easier to use from a developer's perspective. Snapping to objects now invokes routines from the 2geom library, which is actively maintained and less error prone than the old Livarot library. This fixes at least two known snapping bugs.&lt;br /&gt;
&lt;br /&gt;
There is a new toolbar to control the snapping options and modes. Use View &amp;gt; Show/Hide &amp;gt; Snap controls bar to show or hide this toolbar. To control some other new snapping features, a dedicated tab has been created in the preferences dialog. The new features found on this tab are:&lt;br /&gt;
* '''Snap indicator''': When snapping has occurred, an indicator is displayed at that specific position. For now that indicator is just a cross that disappears after a second. In the future the shape of the indicator will be related to the type of target that has been snapped to&lt;br /&gt;
* '''Snap delay''': Inkscape now optionally waits some time after the mouse pointer has stopped moving before it tries to snap. This makes Inkscape much more responsive on complex documents and allows moving objects in a straight line over a grid, amongst others. &lt;br /&gt;
* Inkscape can be forced to only try snapping the (source) node that is '''closest to the mouse pointer''', à la Corel DRAW. When this mode is enabled, a snap indicator will shortly be shown at that node. This will give you maximum control of the snapping which is useful for complex drawings with many nodes.&lt;br /&gt;
* When multiple snap solutions are found, Inkscape can either prefer the closest transformation (when the weight-slider is set to 0; this is the old mode), or prefer the moved object's node that was initially the closest to the pointer (when the slider is set to 1). The way Inkscape calculates the preferred snap has been improved too, which should lead to more predictable snapping.&lt;br /&gt;
&lt;br /&gt;
Other improvements are:&lt;br /&gt;
* The '''Node tool''' now snaps to any unselected node (both cusp and smooth) within the path that's being edited, and nodes of other paths. It also snaps to the path itself, but only to the stationary segments in between two unselected nodes. It is now also possible to snap while moving nodes along a vertical or horizontal constraint.&lt;br /&gt;
* In the document properties dialog, the checkbox for &amp;quot;always snap&amp;quot; has been replaced by two radiobuttons; this should eliminate most of the confusion surrounding this option.&lt;br /&gt;
* Holding the Shift key now also disables snapping while dragging node handles, and while creating single dots&lt;br /&gt;
* During constrained drawing (using Ctrl), Inkscape will now only snap to the points on the constrained line.&lt;br /&gt;
* In the selector tool, snapping while skewing or moving with a constraint (with Ctrl) has been improved.&lt;br /&gt;
&lt;br /&gt;
Inkscape now also considers the following objects for snapping:&lt;br /&gt;
* Clipping paths and masks&lt;br /&gt;
* Midpoints of line segments&lt;br /&gt;
* Midpoints of bounding box edges&lt;br /&gt;
* Page border&lt;br /&gt;
* Intersections of any kind of paths&lt;br /&gt;
* Smooth nodes&lt;br /&gt;
* Cusp nodes&lt;br /&gt;
* Each of the handle points when creating new shapes&lt;br /&gt;
* Radius handles of rectangles&lt;br /&gt;
* Single dots&lt;br /&gt;
&lt;br /&gt;
==Other features==&lt;br /&gt;
&lt;br /&gt;
===Spell checker===&lt;br /&gt;
&lt;br /&gt;
There's now a built-in spell checker. Press '''Ctrl+Alt+K''' or choose ''Text &amp;gt; Check spelling'' to check all visible text objects in your document (they need not be selected) in turn, going top-to-bottom and left-to-right. Once a misspelled word is found, a red frame around it is displayed, and the object with the misspelling is selected; if you are in Text tool, it also places the text cursor at the beginning of the misspelled word. &lt;br /&gt;
&lt;br /&gt;
In the dialog, you can choose one of the listed suggestions and '''Accept''' it (this button is disabled unless you choose something in the list); '''Ignore''' the word for the rest of this session; or '''Add''' the word to the local dictionary.&lt;br /&gt;
&lt;br /&gt;
Also, since the dialog does not lock Inkscape's window, you can simply edit the word with Text tool. Once you edit it to something acceptable to the speller, it will automatically turn off the red frame and continue checking the&lt;br /&gt;
document. &lt;br /&gt;
&lt;br /&gt;
On Linux, you need to install Aspell and its dictionaries for the languages you want to check. On Windows, for now, only the English dictionary is included with Inkscape builds. &lt;br /&gt;
&lt;br /&gt;
===Desktop integration improvements===&lt;br /&gt;
&lt;br /&gt;
* '''Clipboard is system-wide''' - you can now copy/paste objects between different Inkscape instances as well as between Inkscape and other applications (which must be able to handle SVG on the clipboard to use this).&lt;br /&gt;
&lt;br /&gt;
* '''Open Recent menu''' now integrates with Windows recent documents management as well as freedesktop.org recent document lists (used by Gnome, KDE and Xfce). The list can be cleared from the Preferences dialog (the Interface tab).&lt;br /&gt;
&lt;br /&gt;
* '''Themable Icons''' - all icons used in Inkscape are now themable using the standard freedesktop.org theming mechanism. The list of names used is available [[themable icons|here]].&lt;br /&gt;
&lt;br /&gt;
===Shell mode===&lt;br /&gt;
&lt;br /&gt;
TODO: if it is intended for scripts, why does it spam the console so much? It should only print anything when there are errors. --[[User:Tweenk|Tweenk]] 00:04, 27 February 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
If you run inkscape with &amp;lt;code&amp;gt;--shell&amp;lt;/code&amp;gt;, it will enter a shell mode. In this mode, you type in commands at the prompt and Inkscape executes them, without you having to run a new copy of Inkscape for each command. This feature is mostly useful for scripting and server uses: it adds no new capabilities but allows you to improve the speed and memory requirements of any script that repeatedly calls Inkscape to perform command line tasks (such as export or conversions). Each command in shell mode must be a complete valid Inkscape command line but without the Inkscape program name, for example:&lt;br /&gt;
&lt;br /&gt;
 $ inkscape --shell&lt;br /&gt;
 Inkscape 0.46+devel interactive shell mode. Type 'quit' to quit.&lt;br /&gt;
 &amp;gt;file.svg --export-pdf=file.pdf&lt;br /&gt;
 &amp;gt;otherfile.svg --export-png=bitmap.png&lt;br /&gt;
 Background RRGGBBAA: ffffff00&lt;br /&gt;
 Area 0:0:744.094:1052.36 exported to 744 x 1052 pixels (90 dpi)&lt;br /&gt;
 Bitmap saved as: bitmap.png&lt;br /&gt;
 &amp;gt;quit&lt;br /&gt;
&lt;br /&gt;
===Gesture-based stroke width adjustment===&lt;br /&gt;
&lt;br /&gt;
Similar to editing the fill or stroke colors by dragging away from the swatch in the status bar, which was added in the last version, this version allows you to drag away from the stroke width value displayed there to change the stroke width of selection. Dragging above the 45-degree line from the swatch increases the width (up to twice the original width), dragging below it decreases the width (down to half the original width). With this feature, quick and precise stroke width adjustments are possible without opening any dialogs or menus.&lt;br /&gt;
&lt;br /&gt;
===Enhanced tablet support===&lt;br /&gt;
&lt;br /&gt;
====Input device tool switching====&lt;br /&gt;
&lt;br /&gt;
Tablets and other input devices that report separate hardware are now recognized and current tool and/or settings can be set to switch in response to the physical tool being used.&lt;br /&gt;
&lt;br /&gt;
====Extended input device configuration====&lt;br /&gt;
&lt;br /&gt;
The stock Input Devices dialog has been replaced with a completely redone version that provides a more useful representation of settings. It also contains a simple area for testing different inputs of different devices.&lt;br /&gt;
&lt;br /&gt;
Additionally hardware setup itself has been separated from general settings to allow for easier dynamic switching of settings appropriate to the task at hand.&lt;br /&gt;
&lt;br /&gt;
===Layers===&lt;br /&gt;
&lt;br /&gt;
The Layers dialog now allows for hiding or showing all layers other than the current layer. This &amp;quot;solo&amp;quot; feature allows for faster switching between working layers and for quick checking with and without others shown.&lt;br /&gt;
&lt;br /&gt;
A new command, '''Duplicate Layer''', has been added to the Layers menu to allow for duplicating an existing layer with all of its objects (even hidden or locked objects) and any sub-layers.&lt;br /&gt;
&lt;br /&gt;
The New Layer dialog can be opened with '''Ctrl+Shift+N''' shortcut.&lt;br /&gt;
&lt;br /&gt;
Layer names can now be non-unique.&lt;br /&gt;
&lt;br /&gt;
Several layer-handling inconsistencies have been fixed.&lt;br /&gt;
&lt;br /&gt;
===Linked bitmaps===&lt;br /&gt;
Linked bitmaps have a context menu option to launch editing in an external application. Linked images now will reload when the linked file changes on disk. Both the external editor application and the reload behavior is configurable.&lt;br /&gt;
&lt;br /&gt;
===Command for relinking clones===&lt;br /&gt;
&lt;br /&gt;
A new command, '''Relink Clone to Copied''' in ''Edit &amp;gt; Clone'', allows you to relink any clone to a different original object without changing its other properties. Just copy (Ctrl+C) the object you want to be the new original, select any number of clones, and choose the Relink command. Now all selected clones are linked to the copied object.&lt;br /&gt;
&lt;br /&gt;
===Automatic relinking of clones on Duplicate===&lt;br /&gt;
&lt;br /&gt;
If you turn on the '''When duplicating original+clones: Relink duplicated clones''' option on Clones tab of Inkscape Preferences (default is off), duplicating a selection containing both a clone and its original (possibly in groups) will relink the duplicated clone to the duplicated original instead of the old original.&lt;br /&gt;
&lt;br /&gt;
===Pattern editing===&lt;br /&gt;
&lt;br /&gt;
When editing pattern fills:&lt;br /&gt;
* The pattern origin and scale handles now snap.&lt;br /&gt;
* The pattern scaling can now be different in X and Y direction. Press '''Ctrl''' to have a fixed 1:1 ratio scaling (old behavior).&lt;br /&gt;
* The handles are now positioned at the corners  of the unit cell, instead of only a quarter of that cell as before. So, now a rectangle filled with pattern will have all of the pattern handles in the corners, making it harder to manipulate them. However, the handles can be dragged outside the rectangle by moving the pattern's origin handle.&lt;br /&gt;
&lt;br /&gt;
===Transform dialog: spacing out option===&lt;br /&gt;
&lt;br /&gt;
Previously, the '''Apply to each object separately''' checkbox had no effect for the '''Move''' tab. Now, if several objects are selected, this checkbox is on, and &amp;quot;Relative move&amp;quot; is on, each object is shifted relative to the closest selected object on the left (for X) or below (for Y). &lt;br /&gt;
&lt;br /&gt;
For example, if you have a horizontal row of objects and you move them relatively by x = 5 px with &amp;quot;Apply to each object separately&amp;quot; on, the leftmost object will shift by 5px, the next one to the right by 10px, and so on; the rightmost selected object is displaced by 5*n px where n is the number of selected objects. As a result, the distance in each pair of adjacent objects will increase by 5px and the whole row will be spaced out, much like a letterspacing adjustment spaces out a text string. Moving these objects by X=-5px will, conversely, squeeze them tighter together: the leftmost will move by -5px, the next one by -10px, and so on. For Y, the effect is the same except that the move starts from the object closest to the bottom (i.e. with smallest Y coordinate).&lt;br /&gt;
&lt;br /&gt;
When determining the order of shifting objects, for X, the left edges of their bounding boxes are sorted horizontally, and for Y, the bottoms of their bounding boxes are sorted vertically. Order of selecting the objects or z-order does not matter.&lt;br /&gt;
&lt;br /&gt;
===Converting text to path produces a group===&lt;br /&gt;
&lt;br /&gt;
Converting a text or flowed text to path (Ctrl+Shift+C) now produces a group of paths, one path for each glyph of text, instead of a single monolithic path as before. Apart from easier manipulation, an additional advantage is that if your text contained styled spans (i.e. fragments with different color, opacity, or other properties), these styles will be preserved by the corresponding glyph paths after the conversion.&lt;br /&gt;
&lt;br /&gt;
===Combine works on groups===&lt;br /&gt;
&lt;br /&gt;
The Combine command now works transparently on groups, i.e. combines paths inside selected groups at any level of grouping.&lt;br /&gt;
&lt;br /&gt;
===Path exclusion===&lt;br /&gt;
The Exclusion boolean operation can now operate on an arbitrary number of paths.&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
&lt;br /&gt;
===Inkscape Preferences dialog===&lt;br /&gt;
&lt;br /&gt;
* This dialog has been rearranged for more logical grouping of options. New pages have been added: '''Bitmaps''' (options for the new update-on-file-change and external editor features), '''UI''' (options for toolbar icon sizes), and '''SVG Output''' (options for SVG formatting, introduced in 0.46 and now editable from the dialog as well). &lt;br /&gt;
&lt;br /&gt;
* A new option on the Bitmaps tab, '''Resolution for Create Bitmap Copy''', allows you to set the resolution of the bitmap created by the corresponding command (by default bound to Alt+B). The default value of 90 dpi forces the resulting bitmap to align with the default 1px-spaced grid on the canvas.&lt;br /&gt;
&lt;br /&gt;
* '''Zoom correction factor''': the Interface tab has an adjustable ruler. Move the slider until the ruler's on-screen size matches its true size. This is used as a reference point for 100% (original size) zoom.&lt;br /&gt;
&lt;br /&gt;
* The application's interface language can be set from the preferences dialog. You'll have to restart Inkscape to see the changes.&lt;br /&gt;
&lt;br /&gt;
===Toolbars===&lt;br /&gt;
&lt;br /&gt;
* The toolbar icon sizes for the three main toolbars are now separately configurable and to a few different sizes. This allows for a more compact user interface.&lt;br /&gt;
* The main tools toolbar has been converted to a standard GtkToolbar, removing the problem of it pushing the main window taller. Tools that don't fit automatically flow into a popup menu.&lt;br /&gt;
* When torn off, toolbars now keep the size they last had in the main window. They can be resized by docking, resizing the main window, and then undocking again.&lt;br /&gt;
* Some controls (such as the Width in Calligraphic/Tweak/Eraser tools, Tremor, Wiggle, and Mass in Calligraphic, Threshold in Paintbucket, Tolerance in Pencil) are converted from numeric editable fields into draggable sliders, with labels and values (usually in the range 0..100) displayed on top. As these values don't usually require much precision, this makes adjusting them much easier and faster.&lt;br /&gt;
&lt;br /&gt;
===Clone/original visualization===&lt;br /&gt;
&lt;br /&gt;
When you press Shift+D to find and select the original of the selected clone, Inkscape draws a dashed line between the centers of the bounding boxes of the clone and the original. This line disappears after one second.&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
* The Windows builds of Inkscape now have Windows-native file dialogs to keep consistency with other Windows applications.&lt;br /&gt;
* The file dialogs have two new entries in the File type list, All Bitmaps and All Vectors, allowing you to limit the listing to bitmap or vector formats only.&lt;br /&gt;
* In the Align and Distribute dialog there is now an option to treat all selected objects as a group when aligning. This spares the trouble of manually grouping them, aligning, and ungrouping afterwards).&lt;br /&gt;
* The confusing icons on buttons in the controls bar of the Dropper tool (pick/assign opacity) are replaced by text labels.&lt;br /&gt;
* The Document Properties dialog now has a Color Management tab. In this new tab, you can declare multiple ICC color profiles for the current document.&lt;br /&gt;
* Hovering over a swatch now shows the name of the swatch in the status bar. This makes it easier for tablet users to identify a swatch by name, as holding a stylus still enough for the tooltip to show up is difficult.&lt;br /&gt;
* Title and Description fields in the Object Properties dialog [sas]&lt;br /&gt;
* Interactivity attributes in the Object Properties dialog&lt;br /&gt;
&lt;br /&gt;
==Notable bug fixes==&lt;br /&gt;
&lt;br /&gt;
* Several '''memory leaks''' are stopped, reducing the memory consumption during long editing sessions considerably. Closing the last window with a document now frees memory used by that document immediately. &lt;br /&gt;
&lt;br /&gt;
* Inkscape is now able to handle paths with only 'movetos', i.e. &amp;quot;M 0,0 M 1,1 M 2,2&amp;quot;. These kind of paths can be used to only show markers on a path without the rest of the path visible.&lt;br /&gt;
&lt;br /&gt;
* The '''visual bounding box''' (which is the default bounding box type used by Inkscape) of an object with a filter applied, now includes the expanded area of the filter. For '''single blur filter''' (such as the blur you apply with a slider in the Fill and Stroke dialog), this expands the bounding box by 2.4*radius; although theoretically, blur is infinite, this is the distance at which the opacity of the object drops below the perceptibility threshold of our renderer. For all other filters, the area is expanded by the relative amounts you specify on the &amp;quot;Filter general settings&amp;quot; tab of the Filter Effects dialog.&lt;br /&gt;
&lt;br /&gt;
:Only visual bounding box is affected; if you use geometric bounding box, you will notice no change in most cases. However, the Export bitmap dialog always uses the visual bounding box for selection of the export area; this means that you can now export a blurred object to bitmap without any clipping of the blur.&lt;br /&gt;
&lt;br /&gt;
* Bounding box calculation does not include the invisible objects. [https://bugs.launchpad.net/inkscape/+bug/252547 bug #252547]&lt;br /&gt;
&lt;br /&gt;
* Several fixes allows Inkscape to correctly render and edit SVG files that use &amp;lt;code&amp;gt;currentColor&amp;lt;/code&amp;gt; in objects' style (this includes files created by gnuplot).&lt;br /&gt;
&lt;br /&gt;
* '''No more ID clashes on import and paste''': previously, importing or pasting SVG objects might sometimes distort their colors, because the imported objects referred to gradients with the same IDs as those that already exist in the document but look different. Now, IDs of all gradients in the pasted document are checked for clashes with those in the host document, and if necessary changed with all their users updated correspondingly, so such unexpected color changes will never happen.&lt;br /&gt;
&lt;br /&gt;
* File dialogs remember last visited directory.&lt;br /&gt;
&lt;br /&gt;
* The --vacuum-defs command line parameter erroneously deleted markers which are in use.&lt;br /&gt;
&lt;br /&gt;
* No more garbage lines in outline mode.&lt;br /&gt;
&lt;br /&gt;
* No more artifacts left by the circle cursor in Tweak tool.&lt;br /&gt;
&lt;br /&gt;
* The Live Path Effects '''Bend Path''' and '''Pattern along Path''' now work correctly with closed paths.&lt;br /&gt;
&lt;br /&gt;
* Several '''[[ViewBoxToDo|viewBox]]''' related bugs fixed&lt;br /&gt;
** Documents with viewBox are now editable without transformation defects. In particular this affected documents created with e.g. pstoedit. [https://bugs.launchpad.net/inkscape/+bug/168370 bug #168370]&lt;br /&gt;
** Resizing the page adjusts viewBox. [https://bugs.launchpad.net/inkscape/+bug/167682 bug #167682]&lt;br /&gt;
** preserveAspectRatio parsing code fixed. [https://bugs.launchpad.net/inkscape/+bug/166885 bug #166885]&lt;br /&gt;
&lt;br /&gt;
* open paths (as opposed to closed paths) are now correctly drawn when start and end points are equal. (SVG test suite ''paths-data-10-t.svg'')&lt;br /&gt;
&lt;br /&gt;
* The shorthand 'marker' property is now correctly interpreted (SVG test suite ''painting-marker-03-f.svg'')&lt;br /&gt;
&lt;br /&gt;
* Coordinates and lengths specified in percentages are now correctly interpreted (SVG test suite ''coords-units-02-b.svg'')&lt;br /&gt;
&lt;br /&gt;
==Previous releases==&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=38614</id>
		<title>Release notes/0.47</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=38614"/>
		<updated>2008-11-11T05:31:26Z</updated>

		<summary type="html">&lt;p&gt;Jfb: /* New effects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Inkscape 0.47= &lt;br /&gt;
'''(not released yet)'''&lt;br /&gt;
&lt;br /&gt;
=Refactoring effort=&lt;br /&gt;
&lt;br /&gt;
- many instances of SP_ACTIVE_DESKTOP were eliminated (although there still remain quite a lot to be removed)&lt;br /&gt;
&lt;br /&gt;
[mention the 'main' goal of 0.47 and list which things have been refactored and the benefits/new features/different workflow? --johan]&lt;br /&gt;
&lt;br /&gt;
- ratio of code lines and comment lines (difference with 0.46)&lt;br /&gt;
&lt;br /&gt;
- number of fixme's and todo's (difference with 0.46)&lt;br /&gt;
&lt;br /&gt;
- cairo&lt;br /&gt;
&lt;br /&gt;
- speed improvement? (LPE? bootup?)&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
&lt;br /&gt;
==Node tool==&lt;br /&gt;
&lt;br /&gt;
* [helper path display, flashing - johan]&lt;br /&gt;
* The Node tool can now edit '''clipping paths''' and '''masks''' of objects on canvas, without releasing them. If the selected object has a clipping path and mask, the corresponding buttons on the controls bar of the tool will be enabled; pressing these buttons will display the editable paths or handles of the clippath or mask. A clipping path is stroked green, a mask is stroked blue (the same colors as those used for them in Outline mode).&lt;br /&gt;
* Snapping has been improved (more details in Snapping below)&lt;br /&gt;
* When dragging a node '''handle with Ctrl''', it now snaps not only to the 15 degree increments starting from 0 and to the original handle direction, but also to the direction of the '''opposite handle''' (if it exists) or of the '''opposite line segment''' (if it is a straight line).&lt;br /&gt;
* The behavior of the buttons/shortucts that make a node smooth or cusp has been improved:&lt;br /&gt;
:* If a node is already cusp (diamond shaped), pressing Shift+C again on it will retract both its handles. As this works for any number of selected nodes, you can always retract all handles in all nodes by selecting all nodes and pressing Shift+C twice.&lt;br /&gt;
:* If a non-smooth node is next to a straight line segment, pressing Shift+S once makes it ''half-smooth'': it now has one handle aligned with that line segment. Another press of Shift+S will expand the second handle as well turning it into a full smooth node. If a node is between two curve segments, Shift+S will expand both handles as before.&lt;br /&gt;
*'''Auto smooth nodes''': a new &amp;quot;auto&amp;quot; node type was added, similar to the one  Xara Xtreme has. An auto node is a smooth node which automatically adjusts (rotates and stretches) its handles when this node or its neighbors are moved. This adjustment (same as what you get when you convert node type to Smooth, but continuous) keeps the curve at this node as smooth as possible. It feels a bit like Spiro paths (see below); although not as smooth as a Spiro, auto nodes may often be preferable as they work without applying any Path Effect. Whenever you manually adjust the handles of an auto node or drag the adjacent curve, it loses its auto state and becomes simply smooth; for this reason, it is recommended to edit smooth nodes with the node handles hidden via a toggle button on the controls bar. Auto nodes are represented by little circles, as opposed to smooth/symmetric nodes (squares) and cusp nodes (diamonds). To convert selected node(s) to auto, press '''Shift+A''' or use the corresponding node type button on the controls bar.&lt;br /&gt;
&lt;br /&gt;
==Tweak tool==&lt;br /&gt;
&lt;br /&gt;
Several new modes are added to the Tweak tool for transforming, duplicating, and deleting selected objects using the same &amp;quot;soft brush&amp;quot; metaphor that the path editing and coloring modes use. Using these new modes, it is easy to &amp;quot;sculpt&amp;quot; scatterings of small objects, such as clone tilings, into complex and naturalistic textures.&lt;br /&gt;
&lt;br /&gt;
* '''Move mode''' moves those selected objects that are under the brush in the direction in which you move the brush. This is similar to the Push path mode, except that the Move mode affects entire objects and not parts of the paths under the brush.&lt;br /&gt;
&lt;br /&gt;
* '''Move in/out mode'''  moves those selected objects that are under the brush towards the cursor (default) or away from cursor (with '''Shift''' pressed). This is similar to the Attract/repel path mode, except that the Move in/out mode affects entire objects and not parts of the paths under cursor.&lt;br /&gt;
&lt;br /&gt;
* '''Move jitter mode''' moves those selected objects that are under the brush in random directions and by random amounts, but the overall amount of movement depends on Force, pen pressure (if you're using a tablet pen), on the closeness of the object to the center of brush, and on how long you apply the brush.&lt;br /&gt;
&lt;br /&gt;
* '''Scale mode''' scales those selected objects that are under the brush down (by default) or up (with '''Shift''' pressed). The speed of scaling depends on Force, pen pressure (if you're using a tablet pen), on the closeness of the object to the center of brush, and on how long you apply the brush.&lt;br /&gt;
&lt;br /&gt;
* '''Rotate mode''' rotates those selected objects that are under the brush clockwise (by default) or counterclockwise (with '''Shift''' pressed). The speed of rotation depends on Force, pen pressure (if you're using a tablet pen), on the closeness of the object to the center of brush, and on how long you apply the brush. &lt;br /&gt;
&lt;br /&gt;
* '''Duplicate/delete mode''' randomly duplicates those selected objects that are under the brush (by default) or deletes them (with '''Shift''' pressed). The chance of an object to be duplicated and deleted depends on Force, pen pressure (if you're using a tablet pen), on the closeness of the object to the center of brush, and on how long you apply the brush. As with regular Duplicate command, duplicating with Tweak tool places the copies right over the originals, and you may need to use the Move jitter mode to ruffle them apart. &lt;br /&gt;
&lt;br /&gt;
:The duplicates created by the tool are automatically added to selection if the originals objects were in selection (e.g. if you're tweaking a group of objects, they are duplicated within that group and are not by themselves selected). &lt;br /&gt;
&lt;br /&gt;
*'''Blur mode''' blurs the selected objects under the brush more (by default) or less (with '''Shift''' pressed). The amount of blur added or removed depends on Force, pen pressure (if you're using a tablet pen), on the closeness of the object to the center of brush, and on how long you apply the brush. &lt;br /&gt;
&lt;br /&gt;
Also, the existing path editing modes of the tool have been rearranged: now Shrink and Grow are one mode (shrinks by default, grows with Shift), and Attract and Repel are one mode (attracts by default, repels with Shift). Here is a complete list of modes and shortcuts of the Tweak tool:&lt;br /&gt;
&lt;br /&gt;
 Shift+m, Shift+0	        move mode&lt;br /&gt;
 Shift+i, Shift+1	move in/out mode&lt;br /&gt;
 Shift+z, Shift+2	move jitter mode&lt;br /&gt;
 Shift+&amp;lt;, Shift+&amp;gt;, Shift+3	scale mode&lt;br /&gt;
 Shift+[, Shift+], Shift+4	rotate mode&lt;br /&gt;
 Shift+d, Shift+5	duplicate/delete mode&lt;br /&gt;
 Shift+p, Shift+6	push path mode&lt;br /&gt;
 Shift+s, Shift+7	shrink/grow path mode&lt;br /&gt;
 Shift+a, Shift+8	attract/repel path mode&lt;br /&gt;
 Shift+r, Shift+9	roughen mode&lt;br /&gt;
 Shift+c	        color paint mode&lt;br /&gt;
 Shift+j	        color jitter mode&lt;br /&gt;
 Shift+b	        blur mode&lt;br /&gt;
&lt;br /&gt;
In Color Paint mode, painting with Shift inverts the color you're applying (e.g. when painting with white, Shift will switch applied color to black; blue, to yellow, etc.).&lt;br /&gt;
&lt;br /&gt;
==Calligraphy tool ==&lt;br /&gt;
&lt;br /&gt;
[presets - Aubanel]&lt;br /&gt;
&lt;br /&gt;
==Paint Bucket tool==&lt;br /&gt;
* Paint Bucket is now more tightly integrated with potrace.  As a result, memory and CPU usage on each fill operation have been reduced significantly.&lt;br /&gt;
&lt;br /&gt;
==Eraser Tool==&lt;br /&gt;
A new eraser tool has been added. It has two main modes:&lt;br /&gt;
&lt;br /&gt;
* Delete-mode where any shape touched by the tool is deleted completely. This operation is in line with &amp;quot;vector&amp;quot; editing.&lt;br /&gt;
* Cut mode where erasing acts similar to erasing in a standard bitmap editor.&lt;br /&gt;
&lt;br /&gt;
Cut mode works for both selected and not selected objects.&lt;br /&gt;
&lt;br /&gt;
Shortcuts:&lt;br /&gt;
&lt;br /&gt;
* '''Shift+E''' enables the tool&lt;br /&gt;
&lt;br /&gt;
==Pen and Pencil==&lt;br /&gt;
&lt;br /&gt;
Apart from the regular Bezier mode, the pen tool now provides several new modes:&lt;br /&gt;
&lt;br /&gt;
* '''Spiro mode''': This mode automatically applies the new Spiro Splines LPE (see the section on new effects) to any newly drawn path. As mentioned below, it is not yet possible to preview Spiros before the path is finished.&lt;br /&gt;
&lt;br /&gt;
* '''Zigzag mode''': This mode makes it easy to draw many straight line segments in quick succession by disallowing curves (even when the user drags with the mouse).&lt;br /&gt;
&lt;br /&gt;
* '''Paraxial mode''': In this mode, the user can only create straight line segments that are parallel to one of the coordinate axes. Normally, each line segment is drawn perpendicular to the previous one. The direction of the line segment being drawn can be toggled with Shift. When clicking on the start anchor, the path is closed with an L-shaped segment (the direction of which can also be flipped with Shift).&lt;br /&gt;
&lt;br /&gt;
Furthermore, it is now possible to automatically apply predefined vector brushes to path strokes in pen and pencil tools. This is a first step towards [http://wiki.inkscape.org/wiki/index.php/Vector-brushes this blueprint].&lt;br /&gt;
&lt;br /&gt;
In Pencil tool, the controls bar now provides the '''Smoothing''' parameter, changeable in the range from 1 to 100, which controls how much smoothing is applied to the freehand line. Small Smoothing values produce rough lines with many nodes; large values give smooth lines with few nodes. (Previously, this control was only available in Inkscape Preferences.)&lt;br /&gt;
&lt;br /&gt;
==Text tool==&lt;br /&gt;
&lt;br /&gt;
When editing multiline or flowed text, the '''PgUp''' and '''PgDn''' keys now work to move the cursor by one screen (i.e. by as many lines as fit into the screen at current zoom).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Live path effects=&lt;br /&gt;
== Notable bug fixes and effect changes==&lt;br /&gt;
We try to refrain from changing the behavior of LPE's, because it will change appearance in old files when opened in new version of Inkscape (but not in any other SVG viewer or editor).  However, when an effect is really broken, we have to fix it:&lt;br /&gt;
&lt;br /&gt;
* The Pattern Along Path effect:&lt;br /&gt;
**The pattern used to be stretched across discontinuities. This has been fixed; now it treats a discontinuous path as a group of continuous paths and applied the effect separately to each. &lt;br /&gt;
** Successive copies of the pattern can now be fused into continuous paths (using the new &amp;quot;fuse nearby ends&amp;quot; feature) so that &amp;quot;filling&amp;quot; the result works as expected.&lt;br /&gt;
&lt;br /&gt;
==New effects==&lt;br /&gt;
&lt;br /&gt;
* '''Sketch''': Simulates hand-drawn lines. A set of parameters let you tune the effect. They are all sumerized in this [[:Image:SketchParameters.png|picture]].[jfb] &lt;br /&gt;
&lt;br /&gt;
:[[Image:SketchExemple.png|300px]]&lt;br /&gt;
&lt;br /&gt;
* '''Hatches''' Fills the given shape with rough, configurable and randomized, hatches, simulating quick hand-drawn hatches.[jfb]&lt;br /&gt;
:[[Image:hatches-lpe.png|300px]].&lt;br /&gt;
&lt;br /&gt;
* '''von Koch''': This effect creates fractal pictures (example). To the input shape are added some transformed (rotated/scaled/slanted) copies of it, and then copies of the copies, etc... to get the final shape. The transforms are defined via a path.&lt;br /&gt;
:[[Image:VonKochExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''Warning'': the complexity of the output path grows exponentially fast with the number of generations. As a guardrail, an (editable) complexity bound is provided, above which the effect is disabled.[jfb]&lt;br /&gt;
&lt;br /&gt;
* '''Knot''': Creates a knot from a flat self intersecting curve. At each crossing, one string is interrupted to make it look like going under the other. The &amp;quot;sign&amp;quot; of each crossing can be set independantly. &lt;br /&gt;
:[[Image:KnotExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''Known limitation'': can not be applied to groups nor be shared by different objects.[jfb]&lt;br /&gt;
&lt;br /&gt;
* '''Perspective paths''': Draw an arbitrary path as if viewed in perspective. This is work in progress. Known limitations (among others): It can only use the first perspective that exists in the document defs, and the perspective cannot be adapted interactively yet (the effect must be removed and reapplied after modifying the perspective). [max]&lt;br /&gt;
&lt;br /&gt;
* '''Spiro splines''' are a novel way of defining curvilinear paths [http://www.levien.com/spiro/ developed by Raph Levien]. It takes some getting used to, but for certain tasks (such as lettershape design) Spiros have a clear advantage over Bezier curves. Recently, Spiro support was added to the FontForge font editor; now it is available in Inkscape too, which means you can use all the convenient Inkscape path tools (moving and transforming groups of nodes, node sculpting, etc.) on Spiro paths.&lt;br /&gt;
&lt;br /&gt;
:A Spiro path is defined by a sequence of points, but unlike a regular path with Bezier curves, all Spiro points lie on the path and there are no off-path handles. The curvature of the path is defined entirely by the positions of the points and their types. The path behaves very similar to a springy rod which is forced to pass through the given points and which uses the minimum possible curvature to satisfy the requirement. As such, it feels quite natural and the resulting path is very smooth - not just superficially smooth (i.e. having no cusps), but smooth at a deeper level, which you can achieve with Beziers only after a lot of laborious tweaking. &lt;br /&gt;
&lt;br /&gt;
:To create a Spiro path, select any path and assign the &amp;quot;Spiro spline&amp;quot; path effect to it. There are no parameters. Each node of your path becomes a point of a Spiro path, depending on the type of node:&lt;br /&gt;
&lt;br /&gt;
:* Smooth nodes (those with two collinear Bezier handles; use Shift+S to make a node smooth) become smooth curve points of the Spiro path. Note that the length or direction of the Bezier handles of the source path is ignored; the only thing that matters is their collinearity.&lt;br /&gt;
&lt;br /&gt;
:* Cusp nodes of the source path become corner points of the Spiro path, like free hinges on the springy rod. Between two corner points, the path is always a straight line. To make a node cusp, retract its Bezier handles by Ctrl+click, or press Shift+C and move one of the handles so they are no longer collinear.&lt;br /&gt;
&lt;br /&gt;
:* Half-smooth nodes - those with one Bezier handle collinear with a straight line segment on the other hand - become &amp;quot;left&amp;quot; or &amp;quot;right&amp;quot; points on the Spiro path which behave exactly the same: they sit between a straight line and a curve and enforce that these two segments join smoothly without a cusp. To create such a node, make sure one of the segments is a line (select its ends and press Shift+L), then Ctrl+drag the remaining handle to make it snap to the direction of the straight line segment on the other side, or press Shift+S to lock it to that direction.&lt;br /&gt;
&lt;br /&gt;
:Note that what matters is the actual collinearity of a node's handles, regardless of the node type that the node has in the Node tool; for example, if a node designated as cusp (diamond-shaped) has collinear handles, it will become a smooth curve point of the Spiro path. &lt;br /&gt;
&lt;br /&gt;
:Some configurations of points do not converge and produce wild loops and spirals instead of a smooth curve. According to Raph, &amp;quot;The spline solver in this release is _not_ numerically robust. When you start drawing random points, you'll quickly run into divergence. However, &amp;quot;sensible&amp;quot; plates based on real fonts usually converge.&amp;quot; Avoid too sharp changes in direction between points to prevent divergence. Hopefully, the robustness of the algorithm will be improved in future releases.&lt;br /&gt;
&lt;br /&gt;
:For now, to edit Spiro paths viewing the result in real time, you have to use the Node tool; it is recommended to turn off the red highlight of the source path as it is a distraction. The Pen tool does not yet allow you to preview a Spiro as you draw, although you can paste the Spiro effect on the path and see the result as soon as the path is finalized. &lt;br /&gt;
&lt;br /&gt;
:You can always use the Node tool to continue a Spiro path by duplicating and dragging away its end nodes. Also, when you have a Spiro path selected, you can add a new subpath to it with Pen or Pencil if you start drawing with Shift.&lt;br /&gt;
&lt;br /&gt;
* '''Construct Grid'''  [johan]&lt;br /&gt;
&lt;br /&gt;
* '''Perpendicular bisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''AngleBisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Tangent to a curve''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle through 3 points''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle with radius''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Envelope Deformation''' allows the user to deform an object (or a group of object) by deforming its sides. Modifications are done by deforming the 4 Path parameters : Top and Bottom, Left and Right.&lt;br /&gt;
&lt;br /&gt;
* '''Lattice Deformation''' allows the user to deform an object (or a group of object) by moving 16 control points.&lt;br /&gt;
&lt;br /&gt;
* '''Ruler''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Freehand Shape''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Interpolate Subpaths''': [Johan]&lt;br /&gt;
&lt;br /&gt;
* '''Path Length''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Text Label''': [max]&lt;br /&gt;
&lt;br /&gt;
==New features==&lt;br /&gt;
* The '''Paste Path Effect''' command is enabled to assign the path effect of the clipboard to any number of paths, going recursively into groups if necessary.&lt;br /&gt;
&lt;br /&gt;
* A new command, '''Remove path effect''' removes any path effects from all selected objects, going recursively into groups if necessary. &lt;br /&gt;
&lt;br /&gt;
* Along with the commands to open the path effects dialog and to paste path effects, the three commands were collected in a submenu under Path menu.&lt;br /&gt;
&lt;br /&gt;
* Live path effects can now be assigned to the sides of a 3D box (use Ctrl+click to select individual sides).&lt;br /&gt;
&lt;br /&gt;
* The Pen and Pencil tools now correctly work with paths with LPEs: you can continue such a path or add a new subpath to it by drawing with Shift, all preserving the effect applied to it.&lt;br /&gt;
&lt;br /&gt;
* Path type parameters can now link to existing shapes &amp;lt;b&amp;gt;and text&amp;lt;/b&amp;gt;, like clones do. Now it is possible to use text as input for the Pattern Along Path effect for example!&lt;br /&gt;
&lt;br /&gt;
* Lib2geom now has an implementation for EllipticalArc. For Inkscape, this means that it is now possible to directly copy-paste ellipse shapes on path parameters (e.g. 'pattern' in Pattern along Path), without the need to convert the ellipse object to path first. [needs coding and checking]&lt;br /&gt;
&lt;br /&gt;
==Live Path Effects for groups==&lt;br /&gt;
&lt;br /&gt;
LPE can now be assigned to a group. For most LPE, the effect is applied recursively but for Bend Path or Deformations the result is more powerful : the distortion applies on the whole group. &lt;br /&gt;
&lt;br /&gt;
*You can as usual enter the group by double-clicking on it. &lt;br /&gt;
*It applies recursively, this means that a LPE can be assigned to groups of groups &lt;br /&gt;
*The Effect can be applied definitively with &amp;quot;Convert Object to path&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Live Path Effects stacking==&lt;br /&gt;
&lt;br /&gt;
With Live Path Effects stacking, more than one Live Path Effect can be assigned to an item. A new UI was created to control the stack.&lt;br /&gt;
&lt;br /&gt;
=Import/Export=&lt;br /&gt;
==PostScript and EPS import==&lt;br /&gt;
&lt;br /&gt;
Inkscape's capability to open or import PS and EPS files now uses Ghostscript instead of pstoedit. If you need to open files of these types, install Ghostscript and make sure the directory with the &amp;lt;code&amp;gt;ps2pdf&amp;lt;/code&amp;gt; utility from Ghostscript installation is in your PATH. On opening, you will see a preferences dialog similar to PDF import, which, for multipage PS files, allows you to select the page to open.&lt;br /&gt;
&lt;br /&gt;
==PDF import from the command line==&lt;br /&gt;
&lt;br /&gt;
Now you can use, for example,&lt;br /&gt;
&lt;br /&gt;
 inkscape file.pdf --export-plain-svg=file.svg&lt;br /&gt;
&lt;br /&gt;
It will take the first page of the PDF and all the default import options, and save the result to SVG. (Before, it crashed because it tried to open the PDF import preferences dialog and could not do it in the command line mode.) If you try to import PDF without an &amp;lt;code&amp;gt;--export&amp;lt;/code&amp;gt; command, it will show the prefs dialog as before and open the file in the UI.&lt;br /&gt;
&lt;br /&gt;
==PDF, PostScript, and EPS export==&lt;br /&gt;
&lt;br /&gt;
The new cairo-based PS and EPS exporter provides a much better support for various vector features, including '''clipping paths''', '''patterns''', and '''non-ASCII characters'''. Those features that are not supported by the Postscript language, such as transparency, are exported via rasters embedded into Postscript.&lt;br /&gt;
&lt;br /&gt;
The new cairo-based PDF exporter correctly translates into PDF '''clipping paths''' and '''patterns''' and brings many other improvements.&lt;br /&gt;
&lt;br /&gt;
All of PS, EPS, and PDF export formats uniformly support the export area options (canvas or drawing) and the new export-id option: &lt;br /&gt;
&lt;br /&gt;
* You can now export a single object from a complex document (for example, a single layer) if you specify the ID of that object in the &amp;quot;Limit export to the object with ID&amp;quot; field in the GUI or via the '''--export-id=ID''' option on the command line. The export will show only that object (all others will not be exported at all). The BoundingBox (page size) of the exported PS/EPS/PDF file will correspond to the bounding box of that object; you can override that with &amp;quot;Export area is whole canvas&amp;quot; (GUI) or '''--export-area-canvas''' (command line) option which forces the output to have the size of the SVG document's canvas (this may not be possible with EPS, see below).&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Export area is whole canvas&amp;quot; (GUI) or '''--export-area-canvas''' (command line) option forces the output to have the size of the SVG document's canvas. This is the default for PS and PDF but not for EPS. &lt;br /&gt;
&lt;br /&gt;
:*Note that for EPS, the specification of the format does not allow its bounding box to extend beyond its content. This means that when --export-area-canvas is used with EPS export, the canvas bounding box will be trimmed inwards (but never outwards) to the bounding box of the content if it is smaller. If you want a file which has a %BoundingBox different from the bounding box of its content, you can use PS or PDF export formats instead of EPS, or add a white background rectangle with the required size to source document before exporting to EPS.&lt;br /&gt;
&lt;br /&gt;
:* The &amp;lt;b&amp;gt;--export-bbox-page&amp;lt;/b&amp;gt; command line parameter is removed; use &amp;lt;b&amp;gt;--export-area-canvas&amp;lt;/b&amp;gt; instead. &lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Export area is the drawing (GUI) or '''--export-area-drawing''' (command line) option forces the output to have the size of the exported objects' bounding box, regardless of canvas size. If no --export-id is specified, this means the bounding box of the entire drawing; with --export-id, this means the bounding box of the exported object only. This is the default for EPS. &lt;br /&gt;
&lt;br /&gt;
* The &amp;lt;b&amp;gt;--export-embed-fonts&amp;lt;/b&amp;gt; option is removed; now Inkscape always embeds and subsets all fonts used in the document when exporting PS, EPS, or PDF.&lt;br /&gt;
&lt;br /&gt;
==Corel DRAW files import==&lt;br /&gt;
&lt;br /&gt;
Now Inkscape can import more Corel DRAW files of following types:&lt;br /&gt;
&lt;br /&gt;
* Corel DRAW Compressed Exchange files (CCX)&lt;br /&gt;
* Corel DRAW 7-X4 Template files (CDT)&lt;br /&gt;
* Corel DRAW Presentation Exchange files (CMX)&lt;br /&gt;
&lt;br /&gt;
Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==sK1 files import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import sK1 files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==CGM import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import Computer Graphics Metafile (CGM) files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==HPGL export==&lt;br /&gt;
&lt;br /&gt;
Inkscape can now export to HPGL (Hewlett-Packard Graphics Language). It is a file format that is used for various cutters/plotters.&lt;br /&gt;
&lt;br /&gt;
==JavaFX export==&lt;br /&gt;
&lt;br /&gt;
[]&lt;br /&gt;
&lt;br /&gt;
==DXF export==&lt;br /&gt;
&lt;br /&gt;
DXF export is much faster than in previous versions.&lt;br /&gt;
&lt;br /&gt;
==PNG export==&lt;br /&gt;
&lt;br /&gt;
* If you specify a relative path for exported PNG file (e.g. &amp;lt;code&amp;gt;../&amp;lt;/code&amp;gt;) it will now be resolved relative to the current document's location.&lt;br /&gt;
&lt;br /&gt;
* PNG export has been updated to include metadata if present in the source SVG.&lt;br /&gt;
&lt;br /&gt;
= Autosave =&lt;br /&gt;
&lt;br /&gt;
Autosave has now been added to allow for automatic timed backups as work goes on. Saved versions are put in a designated directory and do not overwrite the original SVG file and each other. Go to Inkscape Preferences, Autosave tab, to enable this feature and specify the backup time interval, the directory, and the maximum number of saved backups (if this number is exceeded, old backups will start to be deleted).&lt;br /&gt;
&lt;br /&gt;
=Extension effects=&lt;br /&gt;
==New and improved effects==&lt;br /&gt;
&lt;br /&gt;
* The new '''Arrange &amp;gt; Restack''' extension restacks the Z-order of selected objects, from left to right, top to bottom (or vice versa), with radial outward or inward or by an arbitrary angle, specifying the base point for comparison (top, left, middle, etc.).&lt;br /&gt;
* The improved '''Modify Path &amp;gt; Add Nodes''' extension now also allows segments to be divided into a given number of subsegments.&lt;br /&gt;
* The new '''Render &amp;gt; 3D Polyhedron''' extension allows drawing polyhedrons from scratch and render them from OBJ files.&lt;br /&gt;
* The new '''Render &amp;gt; Alphabet Soup''' extension is a vector rework of Matt Chrisholm's [http://www.theory.org/artprojects/alphabetsoup/main.html GPLed script]. Alphabet Soup randomly mashes glyph-elements together to make exotic looking text.&lt;br /&gt;
* The new '''Render &amp;gt; Cartesian Grid''' extension plots Cartesian (square) grids that do not fill the page, but offer three levels of division, logarithmic scales (with clutter-reduction and arbitrary base) and customisable line width. All like elements (eg x-axis subminor divisions) are put into subgroups together. A proper border is also drawn, with an independent line thickness.&lt;br /&gt;
* The new '''Render &amp;gt; Draw from Triangle''' extension takes a triangle drawn as a path (only the first three nodes of a path are counted) and allows to draw many triangle-related geometrical objects such as circumcircles, excentral triangles, etc. It also allows entry of custom trilinear coordinated and triangle centre functions, as well as computation of basic triangle properties such as area and semiperimeter.&lt;br /&gt;
* The new '''Render &amp;gt; Polar Grid''' extension plots a polar co-ordinate grid, with options for arbitrary-base logarithmic subdivisions, clutter-reduction around the origin, circumferential labels and custom line widths.&lt;br /&gt;
* The new '''Text &amp;gt; Convert to Braille''' extension recodes English (or just Latin letters) text to [http://en.wikipedia.org/wiki/Braille Braille] code created for visually impaired people.&lt;br /&gt;
* [preset filter effects]&lt;br /&gt;
&lt;br /&gt;
==API changes==&lt;br /&gt;
&lt;br /&gt;
While the &amp;quot;Live preview&amp;quot; checkbox is useful for most effects, for some it just does not make sense. Now, you can add the attribute &amp;lt;code&amp;gt;needs-live-preview=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;effect&amp;lt;/code&amp;gt; element in the .inx file of the effect to suppress this checkbox for your effect.&lt;br /&gt;
&lt;br /&gt;
Parameters passed to extensions (via the &amp;lt;param&amp;gt; element) now have a new boolean attribute - &amp;lt;code&amp;gt;gui-hidden&amp;lt;/code&amp;gt; to indicate that the parameter should not be represented in the GUI. If all parameters are marked as hidden no GUI is presented for such extension.&lt;br /&gt;
&lt;br /&gt;
All '''.inx''' files are now properly formatted XML files with its own namespace of: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.inkscape.org/namespace/inkscape/extension&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and a Relax NG schema to define it. More information can be found in the [[Extensions]] Article.&lt;br /&gt;
&lt;br /&gt;
=SVG output=&lt;br /&gt;
&lt;br /&gt;
==Optimized CSS properties==&lt;br /&gt;
&lt;br /&gt;
* As a file size optimization, Inkscape does not write into SVG some of the stroke properties if the object has &amp;lt;code&amp;gt;stroke:none&amp;lt;/code&amp;gt; and some of the fill properties when it has &amp;lt;code&amp;gt;fill:none&amp;lt;/code&amp;gt;. The only situation where this might affect you is if you remove stroke from an object and then turn it back on - the object will get the default stroke instead of the same it had before. &lt;br /&gt;
&lt;br /&gt;
:Also, in manually-edited SVG where a parent group has no stroke but sets some stroke properties to be inherited by its descendants, you will need to set stroke property to other than none on the group, and suppress inheritance with stroke:none on those children that don't need it.&lt;br /&gt;
&lt;br /&gt;
:Specifically, if stroke:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 stroke-width&lt;br /&gt;
 stroke-linecap&lt;br /&gt;
 stroke-linejoin&lt;br /&gt;
 stroke-miterlimit&lt;br /&gt;
 stroke-opacity&lt;br /&gt;
 stroke-dasharray&lt;br /&gt;
 stroke-dashoffset&lt;br /&gt;
&lt;br /&gt;
:Note that this does not include marker properties, which means you can still have markers on a path without visible stroke.&lt;br /&gt;
&lt;br /&gt;
:If fill:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 fill-opacity&lt;br /&gt;
 fill-rule&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;opacity&amp;lt;/code&amp;gt; property is not written if it has the default value of 1 (this property is not inherited, so the change should have no side effects).&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;marker-start&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;marker-mid&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;marker-end&amp;lt;/code&amp;gt; properties are not written if the &amp;lt;code&amp;gt;marker&amp;lt;/code&amp;gt; property is already present with the same value.&lt;br /&gt;
&lt;br /&gt;
==Optimized path data==&lt;br /&gt;
&lt;br /&gt;
In this version, the size of the path data written in the &amp;lt;code&amp;gt;d=&amp;lt;/code&amp;gt; attribute of &amp;lt;code&amp;gt;path&amp;lt;/code&amp;gt; elements is reduced by about 10%. Inkscape generates the shortest possible path strings by avoiding repeated operators and using relative coordinates (when it helps).&lt;br /&gt;
&lt;br /&gt;
This is controlled by the '''SVG output''' page of Inkscape Preferences dialog, as well as the following attributes in &amp;lt;code&amp;gt;group id=&amp;quot;svgoutput&amp;quot;&amp;lt;/code&amp;gt; in your preferences.xml file:&lt;br /&gt;
&lt;br /&gt;
* allowrelativecoordinates (default 1) to switch relative coordinates on (1) or off (0)&lt;br /&gt;
* forcerepeatcommands (default 0) to force repeating operators (1) or allow use of the more compact representation without repeated operators (0)&lt;br /&gt;
&lt;br /&gt;
==No more explicit closing line segment==&lt;br /&gt;
Inkscape used to always explicitly write the closing line segment to SVG for closed paths. For example: &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 L 0,0 z&amp;quot;. With the improved SVG path data writing, Inkscape no longer generates this closing line segment, resulting in &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 z&amp;quot;.&lt;br /&gt;
When SVG path data input contains this explicit closing segment, it is maintained throughout transformations, but is removed after using the node edit tool.&lt;br /&gt;
[this seems no longer to be true, fix it!!! -johan]&lt;br /&gt;
&lt;br /&gt;
==Horizontal and vertical path segments==&lt;br /&gt;
&lt;br /&gt;
If an SVG contains paths with shorthands for horizontal and vertical path segments ('H' or 'V'), then Inkscape will try to maintain those shorthands if possible, so the saved file will also contain them.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;script&amp;gt; support==&lt;br /&gt;
&lt;br /&gt;
While Inkscape does not yet support SVG scripting via the &amp;lt;script&amp;gt; element, this element is now preserved after editing the file in Inkscape.&lt;br /&gt;
&lt;br /&gt;
=Other features=&lt;br /&gt;
&lt;br /&gt;
==Shell mode==&lt;br /&gt;
&lt;br /&gt;
If you run inkscape with &amp;lt;code&amp;gt;--shell&amp;lt;/code&amp;gt;, it will enter an interactive command line shell mode. In this mode, you type in commands at the prompt and Inkscape executes them, without you having to run a new copy of Inkscape for each command. This feature is mostly useful for scripting and server uses: it adds no new capabilities but allows you to improve the speed and memory requirements of any script that repeatedly calls Inkscape to perform command line tasks (such as export or conversions). Each command in shell mode must be a complete valid Inkscape command line but without the Inkscape program name, for example:&lt;br /&gt;
&lt;br /&gt;
 $ inkscape --shell&lt;br /&gt;
 Inkscape 0.46+devel interactive shell mode. Type 'quit' to quit.&lt;br /&gt;
 &amp;gt;file.svg --export-pdf=file.pdf&lt;br /&gt;
 &amp;gt;otherfile.svg --export-png=bitmap.png&lt;br /&gt;
 Background RRGGBBAA: ffffff00&lt;br /&gt;
 Area 0:0:744.094:1052.36 exported to 744 x 1052 pixels (90 dpi)&lt;br /&gt;
 Bitmap saved as: bitmap.png&lt;br /&gt;
 &amp;gt;quit&lt;br /&gt;
&lt;br /&gt;
==Masks and clipping paths==&lt;br /&gt;
&lt;br /&gt;
[editable in node tool - johan]&lt;br /&gt;
&lt;br /&gt;
==Stroke width changeable by dragging==&lt;br /&gt;
&lt;br /&gt;
Similar to editing the fill or stroke colors by dragging away from the swatch in the status bar, which was added in the last version, this version allows you to drag away from the stroke width value displayed there to change the stroke width of selection. Dragging above the 45-degree line from the swatch increases the width (up to twice the original width), dragging below it decreases the width (down to half the original width). With this feature, quick and precise stroke width adjustments are possible without opening any dialogs or menus.&lt;br /&gt;
&lt;br /&gt;
==Enhanced tablet support==&lt;br /&gt;
&lt;br /&gt;
===Input device tool switching===&lt;br /&gt;
&lt;br /&gt;
Tablets and other input devices that report separate hardware are now recognized and current tool and/or settings can be set to switch in response to the physical tool being used.&lt;br /&gt;
&lt;br /&gt;
===Extended input device configuration===&lt;br /&gt;
&lt;br /&gt;
The stock Input Devices dialog has been replaced with a completely redone version that provides a more useful representation of settings. It also contains a simple area for testing different inputs of different devices.&lt;br /&gt;
&lt;br /&gt;
Additionally hardware setup itself has been separated from general settings to allow for easier dynamic switching of settings appropriate to the task at hand.&lt;br /&gt;
&lt;br /&gt;
==Layers==&lt;br /&gt;
&lt;br /&gt;
===Show/hide other layers===&lt;br /&gt;
&lt;br /&gt;
The layers dialog now allows for hiding or showing all layers other than the current layer. This &amp;quot;solo&amp;quot; feature allows for faster switching between working layers and for quick checking with and without others shown.&lt;br /&gt;
&lt;br /&gt;
===Duplicate Layer command===&lt;br /&gt;
&lt;br /&gt;
A new command has been added to the layers menus to allow for duplicating an existing layer with all of its objects.&lt;br /&gt;
&lt;br /&gt;
==External image editing and reload==&lt;br /&gt;
&lt;br /&gt;
Linked bitmaps have a context menu option to launch editing in an external application. Linked images now will reload when the linked file changes on disk. Both the external editor application and the reload behavior can be controlled by user preferences.&lt;br /&gt;
&lt;br /&gt;
==Command for relinking clones==&lt;br /&gt;
&lt;br /&gt;
A new command, '''Relink Clone to Copied''' in ''Edit &amp;gt; Clone'', allows you to relink any clone to a different original object without changing its other properties. Just copy (Ctrl+C) the object you want to be the new original, select any number of clones, and choose the Relink command. Now all selected clones are linked to the copied object.&lt;br /&gt;
&lt;br /&gt;
==Auto relinking clones on Duplicate==&lt;br /&gt;
&lt;br /&gt;
If you turn on the '''When duplicating original+clones: Relink duplicated clones''' option on Clones tab of Inkscape Preferences (default is off), duplicating a selection containing both a clone and its original (possibly in groups) will relink the duplicated clone to the duplicated original instead of the old original.&lt;br /&gt;
&lt;br /&gt;
==Pattern editing==&lt;br /&gt;
&lt;br /&gt;
When editing pattern fills:&lt;br /&gt;
* The pattern origin and scale handles now snap.&lt;br /&gt;
* The pattern scaling can now be different in X and Y direction. Press '''Ctrl''' to have a fixed 1:1 ratio scaling (old behavior).&lt;br /&gt;
* The handles are now positioned at the corners  of the unit cell, instead of only a quarter of that cell as before. So, now a rectangle filled with pattern will have all of the pattern handles in the corners, making it harder to manipulate them. However, the handles can be dragged outside the rectangle by moving the pattern's origin handle.&lt;br /&gt;
&lt;br /&gt;
==Transform dialog: spacing out option==&lt;br /&gt;
&lt;br /&gt;
Previously, the '''Apply to each object separately''' checkbox had no effect for the '''Move''' tab. Now, if several objects are selected, this checkbox is on, and &amp;quot;Relative move&amp;quot; is on, each object is shifted relative to the closest selected object on the left (for X) or below (for Y). &lt;br /&gt;
&lt;br /&gt;
For example, if you have a horizontal row of objects and you move them relatively by X=5px with &amp;quot;Apply to each object separately&amp;quot; on, the leftmost object will shift by 5px, the next one to the right by 10px, and so on; the rightmost selected object is displaced by 5*n px where n is the number of selected objects.  As a result, the distance in each pair of adjacent objects will increase by 5px and the whole row will be spaced out, much like a letterspacing adjustment spaces out a text string. Moving these objects by X=-5px will, conversely, squeeze them tighter together: the leftmost will move by -5px, the next one by -10px, and so on. For Y, the effect is the same except that the move starts from the object closest to the bottom (i.e. with smallest Y coordinate). &lt;br /&gt;
&lt;br /&gt;
When determining the order of shifting objects, for X, the left edges of their bounding boxes are sorted horizontally, and for Y, the bottoms of their bounding boxes are sorted vertically. Order of selecting the objects or z-order does not matter.&lt;br /&gt;
&lt;br /&gt;
==Converting text to path produces a group==&lt;br /&gt;
&lt;br /&gt;
Converting a text or flowed text to path (Ctrl+Shift+C) now produces a group of paths, one path for each glyph of text, instead of a single monolithic path as before. Apart from easier manipulation, an additional advantage is that if your text contained styled spans (i.e. fragments with different color, opacity, or other properties), these styles will be preserved by the corresponding glyph paths after the conversion.&lt;br /&gt;
&lt;br /&gt;
=User interface=&lt;br /&gt;
&lt;br /&gt;
==Filters can be disabled==&lt;br /&gt;
In order to facilitate editing documents that use lots of SVG filter effects, filter effects can now be disabled for a particular document window by selecting '''View|Display mode|No Filters''' from its menu.  This provides an intermediate step between &amp;quot;normal&amp;quot; and &amp;quot;outline&amp;quot; view modes.&lt;br /&gt;
&lt;br /&gt;
The Toggle view command in the Display mode submenu (Ctrl+keypad 5) toggles between the outline view and either regular or no-filters view, depending on which was used most recent.&lt;br /&gt;
&lt;br /&gt;
==Filter quality setting==&lt;br /&gt;
&lt;br /&gt;
Instead of the 'blur quality' setting, Inkscape now has a general 'filter effects quality' setting. It affects all filters and gives you an opportunity to find optimum balance between speed and accuracy when rendering filters.&lt;br /&gt;
&lt;br /&gt;
==Native file dialogs for Windows==&lt;br /&gt;
The windows builds of inkscape now have Windows-native file dialogs to keep consistency with other windows applications.&lt;br /&gt;
&lt;br /&gt;
==Inkscape Preferences dialog==&lt;br /&gt;
&lt;br /&gt;
This dialog has been rearranged for more logical grouping of options. New pages has been added: Bitmaps (options for the new update-on-file-change and external editor features), UI (options for toolbar icon sizes), and SVG Output (options for SVG formatting, introduced in 0.46 and now editable from the dialog as well). &lt;br /&gt;
&lt;br /&gt;
A new option on the Bitmaps tab, '''Resolution for Create Bitmap Copy''', allows you to set the resolution of the bitmap created by the corresponding command (by default bound to Alt+B). The default value of 90 dpi forces the resulting bitmap to align with the default 1px-spaced grid on the canvas.&lt;br /&gt;
&lt;br /&gt;
There is a new option on the Interface tab, '''Zoom correction factor''', which displays an adjustable ruler. Move the slider until the ruler's on-screen size matches its true size. The resulting conversion factor is used internally when zooming to 1:1 etc. such that objects are displayed in their true size.&lt;br /&gt;
&lt;br /&gt;
== Align and Distribute dialog ==&lt;br /&gt;
&lt;br /&gt;
There is now an option to treat all selected objects as a group when aligning (this spares the user the trouble to manually group them, align, and ungroup afterwards).&lt;br /&gt;
&lt;br /&gt;
==Dropper tool==&lt;br /&gt;
&lt;br /&gt;
The confusing icons on buttons in the controls bar of the Dropper tool (pick/assign opacity) are replaced by text labels.&lt;br /&gt;
&lt;br /&gt;
==Swatches==&lt;br /&gt;
&lt;br /&gt;
Hovering over a swatch now shows the name of the swatch in the status bar. This makes it easier for tablet users to identify a swatch by name, as holding a stylus still enough to show a tool tip is difficult.&lt;br /&gt;
&lt;br /&gt;
==Toolbars==&lt;br /&gt;
&lt;br /&gt;
* The toolbar icon sizes for the three main toolbars are now separately configurable and to a few different sizes. This allows users to get a smaller UI on certain systems, including Ubuntu.&lt;br /&gt;
&lt;br /&gt;
* The main tools toolbar has been converted to a standard GtkToolbar, removing the problem of it pushing the main window taller. Tools that don't fit automatically flow into a popup menu.&lt;br /&gt;
&lt;br /&gt;
* When torn off, toolbars now keep the size they last had in the main window. They can be resized by docking, sizing the main window, and then undocking agin.&lt;br /&gt;
&lt;br /&gt;
* Some controls (such as the Width in Calligraphic/Tweak/Eraser tools, Tremor, Wiggle, and Mass in Calligraphic, Threshold in Paintbucket, Tolerance in Pencil) are converted from numeric editable fields into draggable sliders, with labels and values (usually in the range 0..100) displayed on top. As these values don't usually require much precision, this makes adjusting them much easier and faster.&lt;br /&gt;
&lt;br /&gt;
==Title and Description==&lt;br /&gt;
&lt;br /&gt;
* [the Title and Description fields on the Object Properties dialog - sas]&lt;br /&gt;
&lt;br /&gt;
==Clone/original visualization==&lt;br /&gt;
&lt;br /&gt;
When you press Shift+D to find and select the original of the selected clone, Inkscape draws a dashed line between the centers of the bounding boxes of the clone and the original. This line disappears after one second.&lt;br /&gt;
&lt;br /&gt;
=Grids, guides, snapping=&lt;br /&gt;
&lt;br /&gt;
==Grids==&lt;br /&gt;
* The dotted rectangular grid now shows small crosses at the intersection points of emphasis lines.&lt;br /&gt;
&lt;br /&gt;
==Guides==&lt;br /&gt;
&lt;br /&gt;
There is now an option to treat groups as single objects during conversion to guides (as opposed to converting each object inside the group separately).&lt;br /&gt;
&lt;br /&gt;
==Snapping==&lt;br /&gt;
Snapping has been implemented or improved in these areas:&lt;br /&gt;
* The '''node tool''' now snaps to any unselected node (both cusp and smooth) within the path that's being edited, and nodes of other paths. It also snaps to the path itself, but only to the stationary segments in between two unselected nodes. It is now also possible to snap while moving nodes along a vertical or horizontal constraint&lt;br /&gt;
* Whether or not to snap to '''smooth nodes''' is now an option in the preferences&lt;br /&gt;
* '''Clipping paths and masks''' are now also snappable&lt;br /&gt;
* The object snapper now also allows to snap to the '''page border'''&lt;br /&gt;
* It is now possible to snap to '''intersections of paths''' (were we previously only snapped to intersections of line-segments)&lt;br /&gt;
* In the selector tool, snapping while '''skewing ''' or '''constrained translating''' have been improved&lt;br /&gt;
* When creating '''new shapes''', all of their handle points now snap&lt;br /&gt;
* In the document properties dialog, the checkbox for ''' 'always'''' snap has been replaced by two radiobuttons; this should eliminate most of the confusion surrounding this option&lt;br /&gt;
* Holding the shift-key now also disables snapping while dragging '''node-handles'''&lt;br /&gt;
* The code relating to the snapping mechanisms has undergone '''major refactoring''' to make it more reliable and easier to use from a developer's perspective&lt;br /&gt;
* Snapping to objects now uses routines from the '''2geom libraries''', which are actively maintained and are less error prone than the old Livarot libraries. This fixes at least two known snapping bugs&lt;br /&gt;
* While drawing and '''constraining to specific angles''' (using CTRL), Inkscape should now only snap to points on the constrained line.&lt;br /&gt;
* When '''pasting''', previously aligned originals will stay aligned to the grid. The code for this had to be reinvented due to the refactoring&lt;br /&gt;
&lt;br /&gt;
==Snap indicator==&lt;br /&gt;
When snapping has occurred, an indicator is displayed at that specific position. For now that indicator is just a cross that disappears in a second. In the future the shape of the indicator will be related to the type of target that has been snapped to. The snapping indicator can be disabled in the Document Properties dialog.&lt;br /&gt;
&lt;br /&gt;
=Localization and documentation=&lt;br /&gt;
&lt;br /&gt;
* Hebrew localization complete now&lt;br /&gt;
&lt;br /&gt;
=Other changes and improvements=&lt;br /&gt;
&lt;br /&gt;
*  ''New Layer'' dialog can be opened with '''Ctrl+Shift+N''' shortcut now&lt;br /&gt;
&lt;br /&gt;
=Notable bug fixes=&lt;br /&gt;
&lt;br /&gt;
* Several '''memory leaks''' are stopped, reducing the memory consumption during long editing sessions considerably. Closing the last window with a document now frees memory used by that document immediately. &lt;br /&gt;
&lt;br /&gt;
* Inkscape is now able to handle paths with only 'movetos', i.e. &amp;quot;M 0,0 M 1,1 M 2,2&amp;quot;. These kind of paths can be used to only show markers on a path without the rest of the path visible.&lt;br /&gt;
&lt;br /&gt;
* The '''visual bounding box''' (which is the default bounding box type used by Inkscape) of an object with a filter applied, now includes the expanded area of the filter. For '''single blur filter''' (such as the blur you apply with a slider in the Fill and Stroke dialog), this expands the bounding box by 2.4*radius; although theoretically, blur is infinite, this is the distance at which the opacity of the object drops below the perceptibility threshold of our renderer. For all other filters, the area is expanded by the relative amounts you specify on the &amp;quot;Filter general settings&amp;quot; tab of the Filter Effects dialog.&lt;br /&gt;
&lt;br /&gt;
:Only visual bounding box is affected; if you use geometric bounding box, you will notice no change in most cases. However, the Export bitmap dialog always uses the visual bbox for selection of the export area; this means that you can now export a blurred object to bitmap without any clipping of the blur.&lt;br /&gt;
&lt;br /&gt;
* Bounding box calculation does not include the invisible objects. (#252547)&lt;br /&gt;
&lt;br /&gt;
* Several fixes allows Inkscape to correctly render and edit SVG files that use &amp;lt;code&amp;gt;currentColor&amp;lt;/code&amp;gt; in objects' style (this includes files created by gnuplot).&lt;br /&gt;
&lt;br /&gt;
* '''No more ID clashes on import and paste''': previously, importing or pasting SVG objects might sometimes distort their colors, because the imported objects referred to gradients with the same IDs as those that already exist in the document but look different. Now, IDs of all gradients in the pasted document are checked for clashes with those in the host document, and if necessary changed with all their users updated correspondingly, so such unexpected color changes will never happen.&lt;br /&gt;
&lt;br /&gt;
* '''Clipboard is system-wide''': you can now copy/paste objects between different Inkscape instances as well as between Inkscape and other applications (which must be able to handle SVG on the clipboard to use this).&lt;br /&gt;
&lt;br /&gt;
* File dialogs remember last visited directory.&lt;br /&gt;
&lt;br /&gt;
* The --vacuum-defs command line parameter erroneously deleted markers which are in use.&lt;br /&gt;
&lt;br /&gt;
* No more garbage lines in outline mode.&lt;br /&gt;
&lt;br /&gt;
* No more artifacts left by the circle cursor in Tweak tool.&lt;br /&gt;
&lt;br /&gt;
* The Live Path Effects '''Bend Path''' and '''Pattern along Path''' now work correctly with closed paths.&lt;br /&gt;
&lt;br /&gt;
= Previous releases =&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=File:Hatches-lpe.png&amp;diff=38604</id>
		<title>File:Hatches-lpe.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=File:Hatches-lpe.png&amp;diff=38604"/>
		<updated>2008-11-11T05:29:44Z</updated>

		<summary type="html">&lt;p&gt;Jfb: demonstrates the hatches-lpe applied to a rect.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;demonstrates the hatches-lpe applied to a rect.&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=38594</id>
		<title>Release notes/0.47</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=38594"/>
		<updated>2008-11-11T05:02:09Z</updated>

		<summary type="html">&lt;p&gt;Jfb: /* New effects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Inkscape 0.47= &lt;br /&gt;
'''(not released yet)'''&lt;br /&gt;
&lt;br /&gt;
=Refactoring effort=&lt;br /&gt;
&lt;br /&gt;
- many instances of SP_ACTIVE_DESKTOP were eliminated (although there still remain quite a lot to be removed)&lt;br /&gt;
&lt;br /&gt;
[mention the 'main' goal of 0.47 and list which things have been refactored and the benefits/new features/different workflow? --johan]&lt;br /&gt;
&lt;br /&gt;
- ratio of code lines and comment lines (difference with 0.46)&lt;br /&gt;
&lt;br /&gt;
- number of fixme's and todo's (difference with 0.46)&lt;br /&gt;
&lt;br /&gt;
- cairo&lt;br /&gt;
&lt;br /&gt;
- speed improvement? (LPE? bootup?)&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
&lt;br /&gt;
==Node tool==&lt;br /&gt;
&lt;br /&gt;
* [helper path display, flashing - johan]&lt;br /&gt;
* The Node tool can now edit '''clipping paths''' and '''masks''' of objects on canvas, without releasing them. If the selected object has a clipping path and mask, the corresponding buttons on the controls bar of the tool will be enabled; pressing these buttons will display the editable paths or handles of the clippath or mask. A clipping path is stroked green, a mask is stroked blue (the same colors as those used for them in Outline mode).&lt;br /&gt;
* Snapping has been improved (more details in Snapping below)&lt;br /&gt;
* When dragging a node '''handle with Ctrl''', it now snaps not only to the 15 degree increments starting from 0 and to the original handle direction, but also to the direction of the '''opposite handle''' (if it exists) or of the '''opposite line segment''' (if it is a straight line).&lt;br /&gt;
* The behavior of the buttons/shortucts that make a node smooth or cusp has been improved:&lt;br /&gt;
:* If a node is already cusp (diamond shaped), pressing Shift+C again on it will retract both its handles. As this works for any number of selected nodes, you can always retract all handles in all nodes by selecting all nodes and pressing Shift+C twice.&lt;br /&gt;
:* If a non-smooth node is next to a straight line segment, pressing Shift+S once makes it ''half-smooth'': it now has one handle aligned with that line segment. Another press of Shift+S will expand the second handle as well turning it into a full smooth node. If a node is between two curve segments, Shift+S will expand both handles as before.&lt;br /&gt;
*'''Auto smooth nodes''': a new &amp;quot;auto&amp;quot; node type was added, similar to the one  Xara Xtreme has. An auto node is a smooth node which automatically adjusts (rotates and stretches) its handles when this node or its neighbors are moved. This adjustment (same as what you get when you convert node type to Smooth, but continuous) keeps the curve at this node as smooth as possible. It feels a bit like Spiro paths (see below); although not as smooth as a Spiro, auto nodes may often be preferable as they work without applying any Path Effect. Whenever you manually adjust the handles of an auto node or drag the adjacent curve, it loses its auto state and becomes simply smooth; for this reason, it is recommended to edit smooth nodes with the node handles hidden via a toggle button on the controls bar. Auto nodes are represented by little circles, as opposed to smooth/symmetric nodes (squares) and cusp nodes (diamonds). To convert selected node(s) to auto, press '''Shift+A''' or use the corresponding node type button on the controls bar.&lt;br /&gt;
&lt;br /&gt;
==Tweak tool==&lt;br /&gt;
&lt;br /&gt;
Several new modes are added to the Tweak tool for transforming, duplicating, and deleting selected objects using the same &amp;quot;soft brush&amp;quot; metaphor that the path editing and coloring modes use. Using these new modes, it is easy to &amp;quot;sculpt&amp;quot; scatterings of small objects, such as clone tilings, into complex and naturalistic textures.&lt;br /&gt;
&lt;br /&gt;
* '''Move mode''' moves those selected objects that are under the brush in the direction in which you move the brush. This is similar to the Push path mode, except that the Move mode affects entire objects and not parts of the paths under the brush.&lt;br /&gt;
&lt;br /&gt;
* '''Move in/out mode'''  moves those selected objects that are under the brush towards the cursor (default) or away from cursor (with '''Shift''' pressed). This is similar to the Attract/repel path mode, except that the Move in/out mode affects entire objects and not parts of the paths under cursor.&lt;br /&gt;
&lt;br /&gt;
* '''Move jitter mode''' moves those selected objects that are under the brush in random directions and by random amounts, but the overall amount of movement depends on Force, pen pressure (if you're using a tablet pen), on the closeness of the object to the center of brush, and on how long you apply the brush.&lt;br /&gt;
&lt;br /&gt;
* '''Scale mode''' scales those selected objects that are under the brush down (by default) or up (with '''Shift''' pressed). The speed of scaling depends on Force, pen pressure (if you're using a tablet pen), on the closeness of the object to the center of brush, and on how long you apply the brush.&lt;br /&gt;
&lt;br /&gt;
* '''Rotate mode''' rotates those selected objects that are under the brush clockwise (by default) or counterclockwise (with '''Shift''' pressed). The speed of rotation depends on Force, pen pressure (if you're using a tablet pen), on the closeness of the object to the center of brush, and on how long you apply the brush. &lt;br /&gt;
&lt;br /&gt;
* '''Duplicate/delete mode''' randomly duplicates those selected objects that are under the brush (by default) or deletes them (with '''Shift''' pressed). The chance of an object to be duplicated and deleted depends on Force, pen pressure (if you're using a tablet pen), on the closeness of the object to the center of brush, and on how long you apply the brush. As with regular Duplicate command, duplicating with Tweak tool places the copies right over the originals, and you may need to use the Move jitter mode to ruffle them apart. &lt;br /&gt;
&lt;br /&gt;
:The duplicates created by the tool are automatically added to selection if the originals objects were in selection (e.g. if you're tweaking a group of objects, they are duplicated within that group and are not by themselves selected). &lt;br /&gt;
&lt;br /&gt;
*'''Blur mode''' blurs the selected objects under the brush more (by default) or less (with '''Shift''' pressed). The amount of blur added or removed depends on Force, pen pressure (if you're using a tablet pen), on the closeness of the object to the center of brush, and on how long you apply the brush. &lt;br /&gt;
&lt;br /&gt;
Also, the existing path editing modes of the tool have been rearranged: now Shrink and Grow are one mode (shrinks by default, grows with Shift), and Attract and Repel are one mode (attracts by default, repels with Shift). Here is a complete list of modes and shortcuts of the Tweak tool:&lt;br /&gt;
&lt;br /&gt;
 Shift+m, Shift+0	        move mode&lt;br /&gt;
 Shift+i, Shift+1	move in/out mode&lt;br /&gt;
 Shift+z, Shift+2	move jitter mode&lt;br /&gt;
 Shift+&amp;lt;, Shift+&amp;gt;, Shift+3	scale mode&lt;br /&gt;
 Shift+[, Shift+], Shift+4	rotate mode&lt;br /&gt;
 Shift+d, Shift+5	duplicate/delete mode&lt;br /&gt;
 Shift+p, Shift+6	push path mode&lt;br /&gt;
 Shift+s, Shift+7	shrink/grow path mode&lt;br /&gt;
 Shift+a, Shift+8	attract/repel path mode&lt;br /&gt;
 Shift+r, Shift+9	roughen mode&lt;br /&gt;
 Shift+c	        color paint mode&lt;br /&gt;
 Shift+j	        color jitter mode&lt;br /&gt;
 Shift+b	        blur mode&lt;br /&gt;
&lt;br /&gt;
In Color Paint mode, painting with Shift inverts the color you're applying (e.g. when painting with white, Shift will switch applied color to black; blue, to yellow, etc.).&lt;br /&gt;
&lt;br /&gt;
==Calligraphy tool ==&lt;br /&gt;
&lt;br /&gt;
[presets - Aubanel]&lt;br /&gt;
&lt;br /&gt;
==Paint Bucket tool==&lt;br /&gt;
* Paint Bucket is now more tightly integrated with potrace.  As a result, memory and CPU usage on each fill operation have been reduced significantly.&lt;br /&gt;
&lt;br /&gt;
==Eraser Tool==&lt;br /&gt;
A new eraser tool has been added. It has two main modes:&lt;br /&gt;
&lt;br /&gt;
* Delete-mode where any shape touched by the tool is deleted completely. This operation is in line with &amp;quot;vector&amp;quot; editing.&lt;br /&gt;
* Cut mode where erasing acts similar to erasing in a standard bitmap editor.&lt;br /&gt;
&lt;br /&gt;
Cut mode works for both selected and not selected objects.&lt;br /&gt;
&lt;br /&gt;
Shortcuts:&lt;br /&gt;
&lt;br /&gt;
* '''Shift+E''' enables the tool&lt;br /&gt;
&lt;br /&gt;
==Pen and Pencil==&lt;br /&gt;
&lt;br /&gt;
Apart from the regular Bezier mode, the pen tool now provides several new modes:&lt;br /&gt;
&lt;br /&gt;
* '''Spiro mode''': This mode automatically applies the new Spiro Splines LPE (see the section on new effects) to any newly drawn path. As mentioned below, it is not yet possible to preview Spiros before the path is finished.&lt;br /&gt;
&lt;br /&gt;
* '''Zigzag mode''': This mode makes it easy to draw many straight line segments in quick succession by disallowing curves (even when the user drags with the mouse).&lt;br /&gt;
&lt;br /&gt;
* '''Paraxial mode''': In this mode, the user can only create straight line segments that are parallel to one of the coordinate axes. Normally, each line segment is drawn perpendicular to the previous one. The direction of the line segment being drawn can be toggled with Shift. When clicking on the start anchor, the path is closed with an L-shaped segment (the direction of which can also be flipped with Shift).&lt;br /&gt;
&lt;br /&gt;
Furthermore, it is now possible to automatically apply predefined vector brushes to path strokes in pen and pencil tools. This is a first step towards [http://wiki.inkscape.org/wiki/index.php/Vector-brushes this blueprint].&lt;br /&gt;
&lt;br /&gt;
In Pencil tool, the controls bar now provides the '''Smoothing''' parameter, changeable in the range from 1 to 100, which controls how much smoothing is applied to the freehand line. Small Smoothing values produce rough lines with many nodes; large values give smooth lines with few nodes. (Previously, this control was only available in Inkscape Preferences.)&lt;br /&gt;
&lt;br /&gt;
==Text tool==&lt;br /&gt;
&lt;br /&gt;
When editing multiline or flowed text, the '''PgUp''' and '''PgDn''' keys now work to move the cursor by one screen (i.e. by as many lines as fit into the screen at current zoom).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Live path effects=&lt;br /&gt;
== Notable bug fixes and effect changes==&lt;br /&gt;
We try to refrain from changing the behavior of LPE's, because it will change appearance in old files when opened in new version of Inkscape (but not in any other SVG viewer or editor).  However, when an effect is really broken, we have to fix it:&lt;br /&gt;
&lt;br /&gt;
* The Pattern Along Path effect:&lt;br /&gt;
**The pattern used to be stretched across discontinuities. This has been fixed; now it treats a discontinuous path as a group of continuous paths and applied the effect separately to each. &lt;br /&gt;
** Successive copies of the pattern can now be fused into continuous paths (using the new &amp;quot;fuse nearby ends&amp;quot; feature) so that &amp;quot;filling&amp;quot; the result works as expected.&lt;br /&gt;
&lt;br /&gt;
==New effects==&lt;br /&gt;
&lt;br /&gt;
* '''Sketch''': Simulates hand-drawn lines. A set of parameters let you tune the effect. They are all sumerized in this [[:Image:SketchParameters.png|picture]].[jfb] &lt;br /&gt;
&lt;br /&gt;
:[[Image:SketchExemple.png|300px]]&lt;br /&gt;
&lt;br /&gt;
* '''Hatches''' Fills the given shape with rough, configurable and randomized, hatches, simulating quick hand-drawn hatches.[jfb]&lt;br /&gt;
&lt;br /&gt;
* '''von Koch''': This effect creates fractal pictures (example). To the input shape are added some transformed (rotated/scaled/slanted) copies of it, and then copies of the copies, etc... to get the final shape. The transforms are defined via a path.&lt;br /&gt;
:[[Image:VonKochExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''Warning'': the complexity of the output path grows exponentially fast with the number of generations. As a guardrail, an (editable) complexity bound is provided, above which the effect is disabled.[jfb]&lt;br /&gt;
&lt;br /&gt;
* '''Knot''': Creates a knot from a flat self intersecting curve. At each crossing, one string is interrupted to make it look like going under the other. The &amp;quot;sign&amp;quot; of each crossing can be set independantly. &lt;br /&gt;
:[[Image:KnotExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''Known limitation'': can not be applied to groups nor be shared by different objects.[jfb]&lt;br /&gt;
&lt;br /&gt;
* '''Perspective paths''': Draw an arbitrary path as if viewed in perspective. This is work in progress. Known limitations (among others): It can only use the first perspective that exists in the document defs, and the perspective cannot be adapted interactively yet (the effect must be removed and reapplied after modifying the perspective). [max]&lt;br /&gt;
&lt;br /&gt;
* '''Spiro splines''' are a novel way of defining curvilinear paths [http://www.levien.com/spiro/ developed by Raph Levien]. It takes some getting used to, but for certain tasks (such as lettershape design) Spiros have a clear advantage over Bezier curves. Recently, Spiro support was added to the FontForge font editor; now it is available in Inkscape too, which means you can use all the convenient Inkscape path tools (moving and transforming groups of nodes, node sculpting, etc.) on Spiro paths.&lt;br /&gt;
&lt;br /&gt;
:A Spiro path is defined by a sequence of points, but unlike a regular path with Bezier curves, all Spiro points lie on the path and there are no off-path handles. The curvature of the path is defined entirely by the positions of the points and their types. The path behaves very similar to a springy rod which is forced to pass through the given points and which uses the minimum possible curvature to satisfy the requirement. As such, it feels quite natural and the resulting path is very smooth - not just superficially smooth (i.e. having no cusps), but smooth at a deeper level, which you can achieve with Beziers only after a lot of laborious tweaking. &lt;br /&gt;
&lt;br /&gt;
:To create a Spiro path, select any path and assign the &amp;quot;Spiro spline&amp;quot; path effect to it. There are no parameters. Each node of your path becomes a point of a Spiro path, depending on the type of node:&lt;br /&gt;
&lt;br /&gt;
:* Smooth nodes (those with two collinear Bezier handles; use Shift+S to make a node smooth) become smooth curve points of the Spiro path. Note that the length or direction of the Bezier handles of the source path is ignored; the only thing that matters is their collinearity.&lt;br /&gt;
&lt;br /&gt;
:* Cusp nodes of the source path become corner points of the Spiro path, like free hinges on the springy rod. Between two corner points, the path is always a straight line. To make a node cusp, retract its Bezier handles by Ctrl+click, or press Shift+C and move one of the handles so they are no longer collinear.&lt;br /&gt;
&lt;br /&gt;
:* Half-smooth nodes - those with one Bezier handle collinear with a straight line segment on the other hand - become &amp;quot;left&amp;quot; or &amp;quot;right&amp;quot; points on the Spiro path which behave exactly the same: they sit between a straight line and a curve and enforce that these two segments join smoothly without a cusp. To create such a node, make sure one of the segments is a line (select its ends and press Shift+L), then Ctrl+drag the remaining handle to make it snap to the direction of the straight line segment on the other side, or press Shift+S to lock it to that direction.&lt;br /&gt;
&lt;br /&gt;
:Note that what matters is the actual collinearity of a node's handles, regardless of the node type that the node has in the Node tool; for example, if a node designated as cusp (diamond-shaped) has collinear handles, it will become a smooth curve point of the Spiro path. &lt;br /&gt;
&lt;br /&gt;
:Some configurations of points do not converge and produce wild loops and spirals instead of a smooth curve. According to Raph, &amp;quot;The spline solver in this release is _not_ numerically robust. When you start drawing random points, you'll quickly run into divergence. However, &amp;quot;sensible&amp;quot; plates based on real fonts usually converge.&amp;quot; Avoid too sharp changes in direction between points to prevent divergence. Hopefully, the robustness of the algorithm will be improved in future releases.&lt;br /&gt;
&lt;br /&gt;
:For now, to edit Spiro paths viewing the result in real time, you have to use the Node tool; it is recommended to turn off the red highlight of the source path as it is a distraction. The Pen tool does not yet allow you to preview a Spiro as you draw, although you can paste the Spiro effect on the path and see the result as soon as the path is finalized. &lt;br /&gt;
&lt;br /&gt;
:You can always use the Node tool to continue a Spiro path by duplicating and dragging away its end nodes. Also, when you have a Spiro path selected, you can add a new subpath to it with Pen or Pencil if you start drawing with Shift.&lt;br /&gt;
&lt;br /&gt;
* '''Construct Grid'''  [johan]&lt;br /&gt;
&lt;br /&gt;
* '''Perpendicular bisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''AngleBisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Tangent to a curve''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle through 3 points''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle with radius''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Envelope Deformation''' allows the user to deform an object (or a group of object) by deforming its sides. Modifications are done by deforming the 4 Path parameters : Top and Bottom, Left and Right.&lt;br /&gt;
&lt;br /&gt;
* '''Lattice Deformation''' allows the user to deform an object (or a group of object) by moving 16 control points.&lt;br /&gt;
&lt;br /&gt;
* '''Ruler''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Freehand Shape''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Interpolate Subpaths''': [Johan]&lt;br /&gt;
&lt;br /&gt;
* '''Path Length''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Text Label''': [max]&lt;br /&gt;
&lt;br /&gt;
==New features==&lt;br /&gt;
* The '''Paste Path Effect''' command is enabled to assign the path effect of the clipboard to any number of paths, going recursively into groups if necessary.&lt;br /&gt;
&lt;br /&gt;
* A new command, '''Remove path effect''' removes any path effects from all selected objects, going recursively into groups if necessary. &lt;br /&gt;
&lt;br /&gt;
* Along with the commands to open the path effects dialog and to paste path effects, the three commands were collected in a submenu under Path menu.&lt;br /&gt;
&lt;br /&gt;
* Live path effects can now be assigned to the sides of a 3D box (use Ctrl+click to select individual sides).&lt;br /&gt;
&lt;br /&gt;
* The Pen and Pencil tools now correctly work with paths with LPEs: you can continue such a path or add a new subpath to it by drawing with Shift, all preserving the effect applied to it.&lt;br /&gt;
&lt;br /&gt;
* Path type parameters can now link to existing shapes &amp;lt;b&amp;gt;and text&amp;lt;/b&amp;gt;, like clones do. Now it is possible to use text as input for the Pattern Along Path effect for example!&lt;br /&gt;
&lt;br /&gt;
* Lib2geom now has an implementation for EllipticalArc. For Inkscape, this means that it is now possible to directly copy-paste ellipse shapes on path parameters (e.g. 'pattern' in Pattern along Path), without the need to convert the ellipse object to path first. [needs coding and checking]&lt;br /&gt;
&lt;br /&gt;
==Live Path Effects for groups==&lt;br /&gt;
&lt;br /&gt;
LPE can now be assigned to a group. For most LPE, the effect is applied recursively but for Bend Path or Deformations the result is more powerful : the distortion applies on the whole group. &lt;br /&gt;
&lt;br /&gt;
*You can as usual enter the group by double-clicking on it. &lt;br /&gt;
*It applies recursively, this means that a LPE can be assigned to groups of groups &lt;br /&gt;
*The Effect can be applied definitively with &amp;quot;Convert Object to path&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Live Path Effects stacking==&lt;br /&gt;
&lt;br /&gt;
With Live Path Effects stacking, more than one Live Path Effect can be assigned to an item. A new UI was created to control the stack.&lt;br /&gt;
&lt;br /&gt;
=Import/Export=&lt;br /&gt;
==PostScript and EPS import==&lt;br /&gt;
&lt;br /&gt;
Inkscape's capability to open or import PS and EPS files now uses Ghostscript instead of pstoedit. If you need to open files of these types, install Ghostscript and make sure the directory with the &amp;lt;code&amp;gt;ps2pdf&amp;lt;/code&amp;gt; utility from Ghostscript installation is in your PATH. On opening, you will see a preferences dialog similar to PDF import, which, for multipage PS files, allows you to select the page to open.&lt;br /&gt;
&lt;br /&gt;
==PDF import from the command line==&lt;br /&gt;
&lt;br /&gt;
Now you can use, for example,&lt;br /&gt;
&lt;br /&gt;
 inkscape file.pdf --export-plain-svg=file.svg&lt;br /&gt;
&lt;br /&gt;
It will take the first page of the PDF and all the default import options, and save the result to SVG. (Before, it crashed because it tried to open the PDF import preferences dialog and could not do it in the command line mode.) If you try to import PDF without an &amp;lt;code&amp;gt;--export&amp;lt;/code&amp;gt; command, it will show the prefs dialog as before and open the file in the UI.&lt;br /&gt;
&lt;br /&gt;
==PDF, PostScript, and EPS export==&lt;br /&gt;
&lt;br /&gt;
The new cairo-based PS and EPS exporter provides a much better support for various vector features, including '''clipping paths''', '''patterns''', and '''non-ASCII characters'''. Those features that are not supported by the Postscript language, such as transparency, are exported via rasters embedded into Postscript.&lt;br /&gt;
&lt;br /&gt;
The new cairo-based PDF exporter correctly translates into PDF '''clipping paths''' and '''patterns''' and brings many other improvements.&lt;br /&gt;
&lt;br /&gt;
All of PS, EPS, and PDF export formats uniformly support the export area options (canvas or drawing) and the new export-id option: &lt;br /&gt;
&lt;br /&gt;
* You can now export a single object from a complex document (for example, a single layer) if you specify the ID of that object in the &amp;quot;Limit export to the object with ID&amp;quot; field in the GUI or via the '''--export-id=ID''' option on the command line. The export will show only that object (all others will not be exported at all). The BoundingBox (page size) of the exported PS/EPS/PDF file will correspond to the bounding box of that object; you can override that with &amp;quot;Export area is whole canvas&amp;quot; (GUI) or '''--export-area-canvas''' (command line) option which forces the output to have the size of the SVG document's canvas (this may not be possible with EPS, see below).&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Export area is whole canvas&amp;quot; (GUI) or '''--export-area-canvas''' (command line) option forces the output to have the size of the SVG document's canvas. This is the default for PS and PDF but not for EPS. &lt;br /&gt;
&lt;br /&gt;
:*Note that for EPS, the specification of the format does not allow its bounding box to extend beyond its content. This means that when --export-area-canvas is used with EPS export, the canvas bounding box will be trimmed inwards (but never outwards) to the bounding box of the content if it is smaller. If you want a file which has a %BoundingBox different from the bounding box of its content, you can use PS or PDF export formats instead of EPS, or add a white background rectangle with the required size to source document before exporting to EPS.&lt;br /&gt;
&lt;br /&gt;
:* The &amp;lt;b&amp;gt;--export-bbox-page&amp;lt;/b&amp;gt; command line parameter is removed; use &amp;lt;b&amp;gt;--export-area-canvas&amp;lt;/b&amp;gt; instead. &lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Export area is the drawing (GUI) or '''--export-area-drawing''' (command line) option forces the output to have the size of the exported objects' bounding box, regardless of canvas size. If no --export-id is specified, this means the bounding box of the entire drawing; with --export-id, this means the bounding box of the exported object only. This is the default for EPS. &lt;br /&gt;
&lt;br /&gt;
* The &amp;lt;b&amp;gt;--export-embed-fonts&amp;lt;/b&amp;gt; option is removed; now Inkscape always embeds and subsets all fonts used in the document when exporting PS, EPS, or PDF.&lt;br /&gt;
&lt;br /&gt;
==Corel DRAW files import==&lt;br /&gt;
&lt;br /&gt;
Now Inkscape can import more Corel DRAW files of following types:&lt;br /&gt;
&lt;br /&gt;
* Corel DRAW Compressed Exchange files (CCX)&lt;br /&gt;
* Corel DRAW 7-X4 Template files (CDT)&lt;br /&gt;
* Corel DRAW Presentation Exchange files (CMX)&lt;br /&gt;
&lt;br /&gt;
Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==sK1 files import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import sK1 files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==CGM import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import Computer Graphics Metafile (CGM) files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==HPGL export==&lt;br /&gt;
&lt;br /&gt;
Inkscape can now export to HPGL (Hewlett-Packard Graphics Language). It is a file format that is used for various cutters/plotters.&lt;br /&gt;
&lt;br /&gt;
==JavaFX export==&lt;br /&gt;
&lt;br /&gt;
[]&lt;br /&gt;
&lt;br /&gt;
==DXF export==&lt;br /&gt;
&lt;br /&gt;
DXF export is much faster than in previous versions.&lt;br /&gt;
&lt;br /&gt;
==PNG export==&lt;br /&gt;
&lt;br /&gt;
* If you specify a relative path for exported PNG file (e.g. &amp;lt;code&amp;gt;../&amp;lt;/code&amp;gt;) it will now be resolved relative to the current document's location.&lt;br /&gt;
&lt;br /&gt;
* PNG export has been updated to include metadata if present in the source SVG.&lt;br /&gt;
&lt;br /&gt;
= Autosave =&lt;br /&gt;
&lt;br /&gt;
Autosave has now been added to allow for automatic timed backups as work goes on. Saved versions are put in a designated directory and do not overwrite the original SVG file and each other. Go to Inkscape Preferences, Autosave tab, to enable this feature and specify the backup time interval, the directory, and the maximum number of saved backups (if this number is exceeded, old backups will start to be deleted).&lt;br /&gt;
&lt;br /&gt;
=Extension effects=&lt;br /&gt;
==New and improved effects==&lt;br /&gt;
&lt;br /&gt;
* The new '''Arrange &amp;gt; Restack''' extension restacks the Z-order of selected objects, from left to right, top to bottom (or vice versa), with radial outward or inward or by an arbitrary angle, specifying the base point for comparison (top, left, middle, etc.).&lt;br /&gt;
* The improved '''Modify Path &amp;gt; Add Nodes''' extension now also allows segments to be divided into a given number of subsegments.&lt;br /&gt;
* The new '''Render &amp;gt; 3D Polyhedron''' extension allows drawing polyhedrons from scratch and render them from OBJ files.&lt;br /&gt;
* The new '''Render &amp;gt; Alphabet Soup''' extension is a vector rework of Matt Chrisholm's [http://www.theory.org/artprojects/alphabetsoup/main.html GPLed script]. Alphabet Soup randomly mashes glyph-elements together to make exotic looking text.&lt;br /&gt;
* The new '''Render &amp;gt; Cartesian Grid''' extension plots Cartesian (square) grids that do not fill the page, but offer three levels of division, logarithmic scales (with clutter-reduction and arbitrary base) and customisable line width. All like elements (eg x-axis subminor divisions) are put into subgroups together. A proper border is also drawn, with an independent line thickness.&lt;br /&gt;
* The new '''Render &amp;gt; Draw from Triangle''' extension takes a triangle drawn as a path (only the first three nodes of a path are counted) and allows to draw many triangle-related geometrical objects such as circumcircles, excentral triangles, etc. It also allows entry of custom trilinear coordinated and triangle centre functions, as well as computation of basic triangle properties such as area and semiperimeter.&lt;br /&gt;
* The new '''Render &amp;gt; Polar Grid''' extension plots a polar co-ordinate grid, with options for arbitrary-base logarithmic subdivisions, clutter-reduction around the origin, circumferential labels and custom line widths.&lt;br /&gt;
* The new '''Text &amp;gt; Convert to Braille''' extension recodes English (or just Latin letters) text to [http://en.wikipedia.org/wiki/Braille Braille] code created for visually impaired people.&lt;br /&gt;
* [preset filter effects]&lt;br /&gt;
&lt;br /&gt;
==API changes==&lt;br /&gt;
&lt;br /&gt;
While the &amp;quot;Live preview&amp;quot; checkbox is useful for most effects, for some it just does not make sense. Now, you can add the attribute &amp;lt;code&amp;gt;needs-live-preview=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;effect&amp;lt;/code&amp;gt; element in the .inx file of the effect to suppress this checkbox for your effect.&lt;br /&gt;
&lt;br /&gt;
Parameters passed to extensions (via the &amp;lt;param&amp;gt; element) now have a new boolean attribute - &amp;lt;code&amp;gt;gui-hidden&amp;lt;/code&amp;gt; to indicate that the parameter should not be represented in the GUI. If all parameters are marked as hidden no GUI is presented for such extension.&lt;br /&gt;
&lt;br /&gt;
All '''.inx''' files are now properly formatted XML files with its own namespace of: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.inkscape.org/namespace/inkscape/extension&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and a Relax NG schema to define it. More information can be found in the [[Extensions]] Article.&lt;br /&gt;
&lt;br /&gt;
=SVG output=&lt;br /&gt;
&lt;br /&gt;
==Optimized CSS properties==&lt;br /&gt;
&lt;br /&gt;
* As a file size optimization, Inkscape does not write into SVG some of the stroke properties if the object has &amp;lt;code&amp;gt;stroke:none&amp;lt;/code&amp;gt; and some of the fill properties when it has &amp;lt;code&amp;gt;fill:none&amp;lt;/code&amp;gt;. The only situation where this might affect you is if you remove stroke from an object and then turn it back on - the object will get the default stroke instead of the same it had before. &lt;br /&gt;
&lt;br /&gt;
:Also, in manually-edited SVG where a parent group has no stroke but sets some stroke properties to be inherited by its descendants, you will need to set stroke property to other than none on the group, and suppress inheritance with stroke:none on those children that don't need it.&lt;br /&gt;
&lt;br /&gt;
:Specifically, if stroke:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 stroke-width&lt;br /&gt;
 stroke-linecap&lt;br /&gt;
 stroke-linejoin&lt;br /&gt;
 stroke-miterlimit&lt;br /&gt;
 stroke-opacity&lt;br /&gt;
 stroke-dasharray&lt;br /&gt;
 stroke-dashoffset&lt;br /&gt;
&lt;br /&gt;
:Note that this does not include marker properties, which means you can still have markers on a path without visible stroke.&lt;br /&gt;
&lt;br /&gt;
:If fill:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 fill-opacity&lt;br /&gt;
 fill-rule&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;opacity&amp;lt;/code&amp;gt; property is not written if it has the default value of 1 (this property is not inherited, so the change should have no side effects).&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;marker-start&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;marker-mid&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;marker-end&amp;lt;/code&amp;gt; properties are not written if the &amp;lt;code&amp;gt;marker&amp;lt;/code&amp;gt; property is already present with the same value.&lt;br /&gt;
&lt;br /&gt;
==Optimized path data==&lt;br /&gt;
&lt;br /&gt;
In this version, the size of the path data written in the &amp;lt;code&amp;gt;d=&amp;lt;/code&amp;gt; attribute of &amp;lt;code&amp;gt;path&amp;lt;/code&amp;gt; elements is reduced by about 10%. Inkscape generates the shortest possible path strings by avoiding repeated operators and using relative coordinates (when it helps).&lt;br /&gt;
&lt;br /&gt;
This is controlled by the '''SVG output''' page of Inkscape Preferences dialog, as well as the following attributes in &amp;lt;code&amp;gt;group id=&amp;quot;svgoutput&amp;quot;&amp;lt;/code&amp;gt; in your preferences.xml file:&lt;br /&gt;
&lt;br /&gt;
* allowrelativecoordinates (default 1) to switch relative coordinates on (1) or off (0)&lt;br /&gt;
* forcerepeatcommands (default 0) to force repeating operators (1) or allow use of the more compact representation without repeated operators (0)&lt;br /&gt;
&lt;br /&gt;
==No more explicit closing line segment==&lt;br /&gt;
Inkscape used to always explicitly write the closing line segment to SVG for closed paths. For example: &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 L 0,0 z&amp;quot;. With the improved SVG path data writing, Inkscape no longer generates this closing line segment, resulting in &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 z&amp;quot;.&lt;br /&gt;
When SVG path data input contains this explicit closing segment, it is maintained throughout transformations, but is removed after using the node edit tool.&lt;br /&gt;
[this seems no longer to be true, fix it!!! -johan]&lt;br /&gt;
&lt;br /&gt;
==Horizontal and vertical path segments==&lt;br /&gt;
&lt;br /&gt;
If an SVG contains paths with shorthands for horizontal and vertical path segments ('H' or 'V'), then Inkscape will try to maintain those shorthands if possible, so the saved file will also contain them.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;script&amp;gt; support==&lt;br /&gt;
&lt;br /&gt;
While Inkscape does not yet support SVG scripting via the &amp;lt;script&amp;gt; element, this element is now preserved after editing the file in Inkscape.&lt;br /&gt;
&lt;br /&gt;
=Other features=&lt;br /&gt;
&lt;br /&gt;
==Shell mode==&lt;br /&gt;
&lt;br /&gt;
If you run inkscape with &amp;lt;code&amp;gt;--shell&amp;lt;/code&amp;gt;, it will enter an interactive command line shell mode. In this mode, you type in commands at the prompt and Inkscape executes them, without you having to run a new copy of Inkscape for each command. This feature is mostly useful for scripting and server uses: it adds no new capabilities but allows you to improve the speed and memory requirements of any script that repeatedly calls Inkscape to perform command line tasks (such as export or conversions). Each command in shell mode must be a complete valid Inkscape command line but without the Inkscape program name, for example:&lt;br /&gt;
&lt;br /&gt;
 $ inkscape --shell&lt;br /&gt;
 Inkscape 0.46+devel interactive shell mode. Type 'quit' to quit.&lt;br /&gt;
 &amp;gt;file.svg --export-pdf=file.pdf&lt;br /&gt;
 &amp;gt;otherfile.svg --export-png=bitmap.png&lt;br /&gt;
 Background RRGGBBAA: ffffff00&lt;br /&gt;
 Area 0:0:744.094:1052.36 exported to 744 x 1052 pixels (90 dpi)&lt;br /&gt;
 Bitmap saved as: bitmap.png&lt;br /&gt;
 &amp;gt;quit&lt;br /&gt;
&lt;br /&gt;
==Masks and clipping paths==&lt;br /&gt;
&lt;br /&gt;
[editable in node tool - johan]&lt;br /&gt;
&lt;br /&gt;
==Stroke width changeable by dragging==&lt;br /&gt;
&lt;br /&gt;
Similar to editing the fill or stroke colors by dragging away from the swatch in the status bar, which was added in the last version, this version allows you to drag away from the stroke width value displayed there to change the stroke width of selection. Dragging above the 45-degree line from the swatch increases the width (up to twice the original width), dragging below it decreases the width (down to half the original width). With this feature, quick and precise stroke width adjustments are possible without opening any dialogs or menus.&lt;br /&gt;
&lt;br /&gt;
==Enhanced tablet support==&lt;br /&gt;
&lt;br /&gt;
===Input device tool switching===&lt;br /&gt;
&lt;br /&gt;
Tablets and other input devices that report separate hardware are now recognized and current tool and/or settings can be set to switch in response to the physical tool being used.&lt;br /&gt;
&lt;br /&gt;
===Extended input device configuration===&lt;br /&gt;
&lt;br /&gt;
The stock Input Devices dialog has been replaced with a completely redone version that provides a more useful representation of settings. It also contains a simple area for testing different inputs of different devices.&lt;br /&gt;
&lt;br /&gt;
Additionally hardware setup itself has been separated from general settings to allow for easier dynamic switching of settings appropriate to the task at hand.&lt;br /&gt;
&lt;br /&gt;
==Layers==&lt;br /&gt;
&lt;br /&gt;
===Show/hide other layers===&lt;br /&gt;
&lt;br /&gt;
The layers dialog now allows for hiding or showing all layers other than the current layer. This &amp;quot;solo&amp;quot; feature allows for faster switching between working layers and for quick checking with and without others shown.&lt;br /&gt;
&lt;br /&gt;
===Duplicate Layer command===&lt;br /&gt;
&lt;br /&gt;
A new command has been added to the layers menus to allow for duplicating an existing layer with all of its objects.&lt;br /&gt;
&lt;br /&gt;
==External image editing and reload==&lt;br /&gt;
&lt;br /&gt;
Linked bitmaps have a context menu option to launch editing in an external application. Linked images now will reload when the linked file changes on disk. Both the external editor application and the reload behavior can be controlled by user preferences.&lt;br /&gt;
&lt;br /&gt;
==Command for relinking clones==&lt;br /&gt;
&lt;br /&gt;
A new command, '''Relink Clone to Copied''' in ''Edit &amp;gt; Clone'', allows you to relink any clone to a different original object without changing its other properties. Just copy (Ctrl+C) the object you want to be the new original, select any number of clones, and choose the Relink command. Now all selected clones are linked to the copied object.&lt;br /&gt;
&lt;br /&gt;
==Auto relinking clones on Duplicate==&lt;br /&gt;
&lt;br /&gt;
If you turn on the '''When duplicating original+clones: Relink duplicated clones''' option on Clones tab of Inkscape Preferences (default is off), duplicating a selection containing both a clone and its original (possibly in groups) will relink the duplicated clone to the duplicated original instead of the old original.&lt;br /&gt;
&lt;br /&gt;
==Pattern editing==&lt;br /&gt;
&lt;br /&gt;
When editing pattern fills:&lt;br /&gt;
* The pattern origin and scale handles now snap.&lt;br /&gt;
* The pattern scaling can now be different in X and Y direction. Press '''Ctrl''' to have a fixed 1:1 ratio scaling (old behavior).&lt;br /&gt;
* The handles are now positioned at the corners  of the unit cell, instead of only a quarter of that cell as before. So, now a rectangle filled with pattern will have all of the pattern handles in the corners, making it harder to manipulate them. However, the handles can be dragged outside the rectangle by moving the pattern's origin handle.&lt;br /&gt;
&lt;br /&gt;
==Transform dialog: spacing out option==&lt;br /&gt;
&lt;br /&gt;
Previously, the '''Apply to each object separately''' checkbox had no effect for the '''Move''' tab. Now, if several objects are selected, this checkbox is on, and &amp;quot;Relative move&amp;quot; is on, each object is shifted relative to the closest selected object on the left (for X) or below (for Y). &lt;br /&gt;
&lt;br /&gt;
For example, if you have a horizontal row of objects and you move them relatively by X=5px with &amp;quot;Apply to each object separately&amp;quot; on, the leftmost object will shift by 5px, the next one to the right by 10px, and so on; the rightmost selected object is displaced by 5*n px where n is the number of selected objects.  As a result, the distance in each pair of adjacent objects will increase by 5px and the whole row will be spaced out, much like a letterspacing adjustment spaces out a text string. Moving these objects by X=-5px will, conversely, squeeze them tighter together: the leftmost will move by -5px, the next one by -10px, and so on. For Y, the effect is the same except that the move starts from the object closest to the bottom (i.e. with smallest Y coordinate). &lt;br /&gt;
&lt;br /&gt;
When determining the order of shifting objects, for X, the left edges of their bounding boxes are sorted horizontally, and for Y, the bottoms of their bounding boxes are sorted vertically. Order of selecting the objects or z-order does not matter.&lt;br /&gt;
&lt;br /&gt;
==Converting text to path produces a group==&lt;br /&gt;
&lt;br /&gt;
Converting a text or flowed text to path (Ctrl+Shift+C) now produces a group of paths, one path for each glyph of text, instead of a single monolithic path as before. Apart from easier manipulation, an additional advantage is that if your text contained styled spans (i.e. fragments with different color, opacity, or other properties), these styles will be preserved by the corresponding glyph paths after the conversion.&lt;br /&gt;
&lt;br /&gt;
=User interface=&lt;br /&gt;
&lt;br /&gt;
==Filters can be disabled==&lt;br /&gt;
In order to facilitate editing documents that use lots of SVG filter effects, filter effects can now be disabled for a particular document window by selecting '''View|Display mode|No Filters''' from its menu.  This provides an intermediate step between &amp;quot;normal&amp;quot; and &amp;quot;outline&amp;quot; view modes.&lt;br /&gt;
&lt;br /&gt;
The Toggle view command in the Display mode submenu (Ctrl+keypad 5) toggles between the outline view and either regular or no-filters view, depending on which was used most recent.&lt;br /&gt;
&lt;br /&gt;
==Filter quality setting==&lt;br /&gt;
&lt;br /&gt;
Instead of the 'blur quality' setting, Inkscape now has a general 'filter effects quality' setting. It affects all filters and gives you an opportunity to find optimum balance between speed and accuracy when rendering filters.&lt;br /&gt;
&lt;br /&gt;
==Native file dialogs for Windows==&lt;br /&gt;
The windows builds of inkscape now have Windows-native file dialogs to keep consistency with other windows applications.&lt;br /&gt;
&lt;br /&gt;
==Inkscape Preferences dialog==&lt;br /&gt;
&lt;br /&gt;
This dialog has been rearranged for more logical grouping of options. New pages has been added: Bitmaps (options for the new update-on-file-change and external editor features), UI (options for toolbar icon sizes), and SVG Output (options for SVG formatting, introduced in 0.46 and now editable from the dialog as well). &lt;br /&gt;
&lt;br /&gt;
A new option on the Bitmaps tab, '''Resolution for Create Bitmap Copy''', allows you to set the resolution of the bitmap created by the corresponding command (by default bound to Alt+B). The default value of 90 dpi forces the resulting bitmap to align with the default 1px-spaced grid on the canvas.&lt;br /&gt;
&lt;br /&gt;
There is a new option on the Interface tab, '''Zoom correction factor''', which displays an adjustable ruler. Move the slider until the ruler's on-screen size matches its true size. The resulting conversion factor is used internally when zooming to 1:1 etc. such that objects are displayed in their true size.&lt;br /&gt;
&lt;br /&gt;
== Align and Distribute dialog ==&lt;br /&gt;
&lt;br /&gt;
There is now an option to treat all selected objects as a group when aligning (this spares the user the trouble to manually group them, align, and ungroup afterwards).&lt;br /&gt;
&lt;br /&gt;
==Dropper tool==&lt;br /&gt;
&lt;br /&gt;
The confusing icons on buttons in the controls bar of the Dropper tool (pick/assign opacity) are replaced by text labels.&lt;br /&gt;
&lt;br /&gt;
==Swatches==&lt;br /&gt;
&lt;br /&gt;
Hovering over a swatch now shows the name of the swatch in the status bar. This makes it easier for tablet users to identify a swatch by name, as holding a stylus still enough to show a tool tip is difficult.&lt;br /&gt;
&lt;br /&gt;
==Toolbars==&lt;br /&gt;
&lt;br /&gt;
* The toolbar icon sizes for the three main toolbars are now separately configurable and to a few different sizes. This allows users to get a smaller UI on certain systems, including Ubuntu.&lt;br /&gt;
&lt;br /&gt;
* The main tools toolbar has been converted to a standard GtkToolbar, removing the problem of it pushing the main window taller. Tools that don't fit automatically flow into a popup menu.&lt;br /&gt;
&lt;br /&gt;
* When torn off, toolbars now keep the size they last had in the main window. They can be resized by docking, sizing the main window, and then undocking agin.&lt;br /&gt;
&lt;br /&gt;
* Some controls (such as the Width in Calligraphic/Tweak/Eraser tools, Tremor, Wiggle, and Mass in Calligraphic, Threshold in Paintbucket, Tolerance in Pencil) are converted from numeric editable fields into draggable sliders, with labels and values (usually in the range 0..100) displayed on top. As these values don't usually require much precision, this makes adjusting them much easier and faster.&lt;br /&gt;
&lt;br /&gt;
==Title and Description==&lt;br /&gt;
&lt;br /&gt;
* [the Title and Description fields on the Object Properties dialog - sas]&lt;br /&gt;
&lt;br /&gt;
==Clone/original visualization==&lt;br /&gt;
&lt;br /&gt;
When you press Shift+D to find and select the original of the selected clone, Inkscape draws a dashed line between the centers of the bounding boxes of the clone and the original. This line disappears after one second.&lt;br /&gt;
&lt;br /&gt;
=Grids, guides, snapping=&lt;br /&gt;
&lt;br /&gt;
==Grids==&lt;br /&gt;
* The dotted rectangular grid now shows small crosses at the intersection points of emphasis lines.&lt;br /&gt;
&lt;br /&gt;
==Guides==&lt;br /&gt;
&lt;br /&gt;
There is now an option to treat groups as single objects during conversion to guides (as opposed to converting each object inside the group separately).&lt;br /&gt;
&lt;br /&gt;
==Snapping==&lt;br /&gt;
Snapping has been implemented or improved in these areas:&lt;br /&gt;
* The '''node tool''' now snaps to any unselected node (both cusp and smooth) within the path that's being edited, and nodes of other paths. It also snaps to the path itself, but only to the stationary segments in between two unselected nodes. It is now also possible to snap while moving nodes along a vertical or horizontal constraint&lt;br /&gt;
* Whether or not to snap to '''smooth nodes''' is now an option in the preferences&lt;br /&gt;
* '''Clipping paths and masks''' are now also snappable&lt;br /&gt;
* The object snapper now also allows to snap to the '''page border'''&lt;br /&gt;
* It is now possible to snap to '''intersections of paths''' (were we previously only snapped to intersections of line-segments)&lt;br /&gt;
* In the selector tool, snapping while '''skewing ''' or '''constrained translating''' have been improved&lt;br /&gt;
* When creating '''new shapes''', all of their handle points now snap&lt;br /&gt;
* In the document properties dialog, the checkbox for ''' 'always'''' snap has been replaced by two radiobuttons; this should eliminate most of the confusion surrounding this option&lt;br /&gt;
* Holding the shift-key now also disables snapping while dragging '''node-handles'''&lt;br /&gt;
* The code relating to the snapping mechanisms has undergone '''major refactoring''' to make it more reliable and easier to use from a developer's perspective&lt;br /&gt;
* Snapping to objects now uses routines from the '''2geom libraries''', which are actively maintained and are less error prone than the old Livarot libraries. This fixes at least two known snapping bugs&lt;br /&gt;
* While drawing and '''constraining to specific angles''' (using CTRL), Inkscape should now only snap to points on the constrained line.&lt;br /&gt;
* When '''pasting''', previously aligned originals will stay aligned to the grid. The code for this had to be reinvented due to the refactoring&lt;br /&gt;
&lt;br /&gt;
==Snap indicator==&lt;br /&gt;
When snapping has occurred, an indicator is displayed at that specific position. For now that indicator is just a cross that disappears in a second. In the future the shape of the indicator will be related to the type of target that has been snapped to. The snapping indicator can be disabled in the Document Properties dialog.&lt;br /&gt;
&lt;br /&gt;
=Localization and documentation=&lt;br /&gt;
&lt;br /&gt;
* Hebrew localization complete now&lt;br /&gt;
&lt;br /&gt;
=Other changes and improvements=&lt;br /&gt;
&lt;br /&gt;
*  ''New Layer'' dialog can be opened with '''Ctrl+Shift+N''' shortcut now&lt;br /&gt;
&lt;br /&gt;
=Notable bug fixes=&lt;br /&gt;
&lt;br /&gt;
* Several '''memory leaks''' are stopped, reducing the memory consumption during long editing sessions considerably. Closing the last window with a document now frees memory used by that document immediately. &lt;br /&gt;
&lt;br /&gt;
* Inkscape is now able to handle paths with only 'movetos', i.e. &amp;quot;M 0,0 M 1,1 M 2,2&amp;quot;. These kind of paths can be used to only show markers on a path without the rest of the path visible.&lt;br /&gt;
&lt;br /&gt;
* The '''visual bounding box''' (which is the default bounding box type used by Inkscape) of an object with a filter applied, now includes the expanded area of the filter. For '''single blur filter''' (such as the blur you apply with a slider in the Fill and Stroke dialog), this expands the bounding box by 2.4*radius; although theoretically, blur is infinite, this is the distance at which the opacity of the object drops below the perceptibility threshold of our renderer. For all other filters, the area is expanded by the relative amounts you specify on the &amp;quot;Filter general settings&amp;quot; tab of the Filter Effects dialog.&lt;br /&gt;
&lt;br /&gt;
:Only visual bounding box is affected; if you use geometric bounding box, you will notice no change in most cases. However, the Export bitmap dialog always uses the visual bbox for selection of the export area; this means that you can now export a blurred object to bitmap without any clipping of the blur.&lt;br /&gt;
&lt;br /&gt;
* Bounding box calculation does not include the invisible objects. (#252547)&lt;br /&gt;
&lt;br /&gt;
* Several fixes allows Inkscape to correctly render and edit SVG files that use &amp;lt;code&amp;gt;currentColor&amp;lt;/code&amp;gt; in objects' style (this includes files created by gnuplot).&lt;br /&gt;
&lt;br /&gt;
* '''No more ID clashes on import and paste''': previously, importing or pasting SVG objects might sometimes distort their colors, because the imported objects referred to gradients with the same IDs as those that already exist in the document but look different. Now, IDs of all gradients in the pasted document are checked for clashes with those in the host document, and if necessary changed with all their users updated correspondingly, so such unexpected color changes will never happen.&lt;br /&gt;
&lt;br /&gt;
* '''Clipboard is system-wide''': you can now copy/paste objects between different Inkscape instances as well as between Inkscape and other applications (which must be able to handle SVG on the clipboard to use this).&lt;br /&gt;
&lt;br /&gt;
* File dialogs remember last visited directory.&lt;br /&gt;
&lt;br /&gt;
* The --vacuum-defs command line parameter erroneously deleted markers which are in use.&lt;br /&gt;
&lt;br /&gt;
* No more garbage lines in outline mode.&lt;br /&gt;
&lt;br /&gt;
* No more artifacts left by the circle cursor in Tweak tool.&lt;br /&gt;
&lt;br /&gt;
* The Live Path Effects '''Bend Path''' and '''Pattern along Path''' now work correctly with closed paths.&lt;br /&gt;
&lt;br /&gt;
= Previous releases =&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=38584</id>
		<title>Release notes/0.47</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=38584"/>
		<updated>2008-11-11T04:58:11Z</updated>

		<summary type="html">&lt;p&gt;Jfb: /* Notable bug fixes and effect changes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Inkscape 0.47= &lt;br /&gt;
'''(not released yet)'''&lt;br /&gt;
&lt;br /&gt;
=Refactoring effort=&lt;br /&gt;
&lt;br /&gt;
- many instances of SP_ACTIVE_DESKTOP were eliminated (although there still remain quite a lot to be removed)&lt;br /&gt;
&lt;br /&gt;
[mention the 'main' goal of 0.47 and list which things have been refactored and the benefits/new features/different workflow? --johan]&lt;br /&gt;
&lt;br /&gt;
- ratio of code lines and comment lines (difference with 0.46)&lt;br /&gt;
&lt;br /&gt;
- number of fixme's and todo's (difference with 0.46)&lt;br /&gt;
&lt;br /&gt;
- cairo&lt;br /&gt;
&lt;br /&gt;
- speed improvement? (LPE? bootup?)&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
&lt;br /&gt;
==Node tool==&lt;br /&gt;
&lt;br /&gt;
* [helper path display, flashing - johan]&lt;br /&gt;
* The Node tool can now edit '''clipping paths''' and '''masks''' of objects on canvas, without releasing them. If the selected object has a clipping path and mask, the corresponding buttons on the controls bar of the tool will be enabled; pressing these buttons will display the editable paths or handles of the clippath or mask. A clipping path is stroked green, a mask is stroked blue (the same colors as those used for them in Outline mode).&lt;br /&gt;
* Snapping has been improved (more details in Snapping below)&lt;br /&gt;
* When dragging a node '''handle with Ctrl''', it now snaps not only to the 15 degree increments starting from 0 and to the original handle direction, but also to the direction of the '''opposite handle''' (if it exists) or of the '''opposite line segment''' (if it is a straight line).&lt;br /&gt;
* The behavior of the buttons/shortucts that make a node smooth or cusp has been improved:&lt;br /&gt;
:* If a node is already cusp (diamond shaped), pressing Shift+C again on it will retract both its handles. As this works for any number of selected nodes, you can always retract all handles in all nodes by selecting all nodes and pressing Shift+C twice.&lt;br /&gt;
:* If a non-smooth node is next to a straight line segment, pressing Shift+S once makes it ''half-smooth'': it now has one handle aligned with that line segment. Another press of Shift+S will expand the second handle as well turning it into a full smooth node. If a node is between two curve segments, Shift+S will expand both handles as before.&lt;br /&gt;
*'''Auto smooth nodes''': a new &amp;quot;auto&amp;quot; node type was added, similar to the one  Xara Xtreme has. An auto node is a smooth node which automatically adjusts (rotates and stretches) its handles when this node or its neighbors are moved. This adjustment (same as what you get when you convert node type to Smooth, but continuous) keeps the curve at this node as smooth as possible. It feels a bit like Spiro paths (see below); although not as smooth as a Spiro, auto nodes may often be preferable as they work without applying any Path Effect. Whenever you manually adjust the handles of an auto node or drag the adjacent curve, it loses its auto state and becomes simply smooth; for this reason, it is recommended to edit smooth nodes with the node handles hidden via a toggle button on the controls bar. Auto nodes are represented by little circles, as opposed to smooth/symmetric nodes (squares) and cusp nodes (diamonds). To convert selected node(s) to auto, press '''Shift+A''' or use the corresponding node type button on the controls bar.&lt;br /&gt;
&lt;br /&gt;
==Tweak tool==&lt;br /&gt;
&lt;br /&gt;
Several new modes are added to the Tweak tool for transforming, duplicating, and deleting selected objects using the same &amp;quot;soft brush&amp;quot; metaphor that the path editing and coloring modes use. Using these new modes, it is easy to &amp;quot;sculpt&amp;quot; scatterings of small objects, such as clone tilings, into complex and naturalistic textures.&lt;br /&gt;
&lt;br /&gt;
* '''Move mode''' moves those selected objects that are under the brush in the direction in which you move the brush. This is similar to the Push path mode, except that the Move mode affects entire objects and not parts of the paths under the brush.&lt;br /&gt;
&lt;br /&gt;
* '''Move in/out mode'''  moves those selected objects that are under the brush towards the cursor (default) or away from cursor (with '''Shift''' pressed). This is similar to the Attract/repel path mode, except that the Move in/out mode affects entire objects and not parts of the paths under cursor.&lt;br /&gt;
&lt;br /&gt;
* '''Move jitter mode''' moves those selected objects that are under the brush in random directions and by random amounts, but the overall amount of movement depends on Force, pen pressure (if you're using a tablet pen), on the closeness of the object to the center of brush, and on how long you apply the brush.&lt;br /&gt;
&lt;br /&gt;
* '''Scale mode''' scales those selected objects that are under the brush down (by default) or up (with '''Shift''' pressed). The speed of scaling depends on Force, pen pressure (if you're using a tablet pen), on the closeness of the object to the center of brush, and on how long you apply the brush.&lt;br /&gt;
&lt;br /&gt;
* '''Rotate mode''' rotates those selected objects that are under the brush clockwise (by default) or counterclockwise (with '''Shift''' pressed). The speed of rotation depends on Force, pen pressure (if you're using a tablet pen), on the closeness of the object to the center of brush, and on how long you apply the brush. &lt;br /&gt;
&lt;br /&gt;
* '''Duplicate/delete mode''' randomly duplicates those selected objects that are under the brush (by default) or deletes them (with '''Shift''' pressed). The chance of an object to be duplicated and deleted depends on Force, pen pressure (if you're using a tablet pen), on the closeness of the object to the center of brush, and on how long you apply the brush. As with regular Duplicate command, duplicating with Tweak tool places the copies right over the originals, and you may need to use the Move jitter mode to ruffle them apart. &lt;br /&gt;
&lt;br /&gt;
:The duplicates created by the tool are automatically added to selection if the originals objects were in selection (e.g. if you're tweaking a group of objects, they are duplicated within that group and are not by themselves selected). &lt;br /&gt;
&lt;br /&gt;
*'''Blur mode''' blurs the selected objects under the brush more (by default) or less (with '''Shift''' pressed). The amount of blur added or removed depends on Force, pen pressure (if you're using a tablet pen), on the closeness of the object to the center of brush, and on how long you apply the brush. &lt;br /&gt;
&lt;br /&gt;
Also, the existing path editing modes of the tool have been rearranged: now Shrink and Grow are one mode (shrinks by default, grows with Shift), and Attract and Repel are one mode (attracts by default, repels with Shift). Here is a complete list of modes and shortcuts of the Tweak tool:&lt;br /&gt;
&lt;br /&gt;
 Shift+m, Shift+0	        move mode&lt;br /&gt;
 Shift+i, Shift+1	move in/out mode&lt;br /&gt;
 Shift+z, Shift+2	move jitter mode&lt;br /&gt;
 Shift+&amp;lt;, Shift+&amp;gt;, Shift+3	scale mode&lt;br /&gt;
 Shift+[, Shift+], Shift+4	rotate mode&lt;br /&gt;
 Shift+d, Shift+5	duplicate/delete mode&lt;br /&gt;
 Shift+p, Shift+6	push path mode&lt;br /&gt;
 Shift+s, Shift+7	shrink/grow path mode&lt;br /&gt;
 Shift+a, Shift+8	attract/repel path mode&lt;br /&gt;
 Shift+r, Shift+9	roughen mode&lt;br /&gt;
 Shift+c	        color paint mode&lt;br /&gt;
 Shift+j	        color jitter mode&lt;br /&gt;
 Shift+b	        blur mode&lt;br /&gt;
&lt;br /&gt;
In Color Paint mode, painting with Shift inverts the color you're applying (e.g. when painting with white, Shift will switch applied color to black; blue, to yellow, etc.).&lt;br /&gt;
&lt;br /&gt;
==Calligraphy tool ==&lt;br /&gt;
&lt;br /&gt;
[presets - Aubanel]&lt;br /&gt;
&lt;br /&gt;
==Paint Bucket tool==&lt;br /&gt;
* Paint Bucket is now more tightly integrated with potrace.  As a result, memory and CPU usage on each fill operation have been reduced significantly.&lt;br /&gt;
&lt;br /&gt;
==Eraser Tool==&lt;br /&gt;
A new eraser tool has been added. It has two main modes:&lt;br /&gt;
&lt;br /&gt;
* Delete-mode where any shape touched by the tool is deleted completely. This operation is in line with &amp;quot;vector&amp;quot; editing.&lt;br /&gt;
* Cut mode where erasing acts similar to erasing in a standard bitmap editor.&lt;br /&gt;
&lt;br /&gt;
Cut mode works for both selected and not selected objects.&lt;br /&gt;
&lt;br /&gt;
Shortcuts:&lt;br /&gt;
&lt;br /&gt;
* '''Shift+E''' enables the tool&lt;br /&gt;
&lt;br /&gt;
==Pen and Pencil==&lt;br /&gt;
&lt;br /&gt;
Apart from the regular Bezier mode, the pen tool now provides several new modes:&lt;br /&gt;
&lt;br /&gt;
* '''Spiro mode''': This mode automatically applies the new Spiro Splines LPE (see the section on new effects) to any newly drawn path. As mentioned below, it is not yet possible to preview Spiros before the path is finished.&lt;br /&gt;
&lt;br /&gt;
* '''Zigzag mode''': This mode makes it easy to draw many straight line segments in quick succession by disallowing curves (even when the user drags with the mouse).&lt;br /&gt;
&lt;br /&gt;
* '''Paraxial mode''': In this mode, the user can only create straight line segments that are parallel to one of the coordinate axes. Normally, each line segment is drawn perpendicular to the previous one. The direction of the line segment being drawn can be toggled with Shift. When clicking on the start anchor, the path is closed with an L-shaped segment (the direction of which can also be flipped with Shift).&lt;br /&gt;
&lt;br /&gt;
Furthermore, it is now possible to automatically apply predefined vector brushes to path strokes in pen and pencil tools. This is a first step towards [http://wiki.inkscape.org/wiki/index.php/Vector-brushes this blueprint].&lt;br /&gt;
&lt;br /&gt;
In Pencil tool, the controls bar now provides the '''Smoothing''' parameter, changeable in the range from 1 to 100, which controls how much smoothing is applied to the freehand line. Small Smoothing values produce rough lines with many nodes; large values give smooth lines with few nodes. (Previously, this control was only available in Inkscape Preferences.)&lt;br /&gt;
&lt;br /&gt;
==Text tool==&lt;br /&gt;
&lt;br /&gt;
When editing multiline or flowed text, the '''PgUp''' and '''PgDn''' keys now work to move the cursor by one screen (i.e. by as many lines as fit into the screen at current zoom).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Live path effects=&lt;br /&gt;
== Notable bug fixes and effect changes==&lt;br /&gt;
We try to refrain from changing the behavior of LPE's, because it will change appearance in old files when opened in new version of Inkscape (but not in any other SVG viewer or editor).  However, when an effect is really broken, we have to fix it:&lt;br /&gt;
&lt;br /&gt;
* The Pattern Along Path effect:&lt;br /&gt;
**The pattern used to be stretched across discontinuities. This has been fixed; now it treats a discontinuous path as a group of continuous paths and applied the effect separately to each. &lt;br /&gt;
** Successive copies of the pattern can now be fused into continuous paths (using the new &amp;quot;fuse nearby ends&amp;quot; feature) so that &amp;quot;filling&amp;quot; the result works as expected.&lt;br /&gt;
&lt;br /&gt;
==New effects==&lt;br /&gt;
&lt;br /&gt;
* '''Sketch''': Simulates hand-drawn lines. A set of parameters let you tune the effect. They are all sumerized in this [[:Image:SketchParameters.png|picture]]. &lt;br /&gt;
&lt;br /&gt;
:[[Image:SketchExemple.png|300px]]&lt;br /&gt;
&lt;br /&gt;
* '''Hatches''' [jfbarraud]&lt;br /&gt;
&lt;br /&gt;
* '''von Koch''': This effect creates fractal pictures (example). To the input shape are added some transformed (rotated/scaled/slanted) copies of it, and then copies of the copies, etc... to get the final shape. The transforms are defined via a path. &lt;br /&gt;
:[[Image:VonKochExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''Warning'': the complexity of the output path grows exponentially fast with the number of generations. As a guardrail, an (editable) complexity bound is provided, above which the effect is disabled.&lt;br /&gt;
&lt;br /&gt;
* '''Knot''': Creates a knot from a flat self intersecting curve. At each crossing, one string is interrupted to make it look like going under the other. The &amp;quot;sign&amp;quot; of each crossing can be set independantly. &lt;br /&gt;
:[[Image:KnotExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''Known limitation'': can not be applied to groups nor be shared by different objects.&lt;br /&gt;
&lt;br /&gt;
* '''Perspective paths''': Draw an arbitrary path as if viewed in perspective. This is work in progress. Known limitations (among others): It can only use the first perspective that exists in the document defs, and the perspective cannot be adapted interactively yet (the effect must be removed and reapplied after modifying the perspective). [max]&lt;br /&gt;
&lt;br /&gt;
* '''Spiro splines''' are a novel way of defining curvilinear paths [http://www.levien.com/spiro/ developed by Raph Levien]. It takes some getting used to, but for certain tasks (such as lettershape design) Spiros have a clear advantage over Bezier curves. Recently, Spiro support was added to the FontForge font editor; now it is available in Inkscape too, which means you can use all the convenient Inkscape path tools (moving and transforming groups of nodes, node sculpting, etc.) on Spiro paths.&lt;br /&gt;
&lt;br /&gt;
:A Spiro path is defined by a sequence of points, but unlike a regular path with Bezier curves, all Spiro points lie on the path and there are no off-path handles. The curvature of the path is defined entirely by the positions of the points and their types. The path behaves very similar to a springy rod which is forced to pass through the given points and which uses the minimum possible curvature to satisfy the requirement. As such, it feels quite natural and the resulting path is very smooth - not just superficially smooth (i.e. having no cusps), but smooth at a deeper level, which you can achieve with Beziers only after a lot of laborious tweaking. &lt;br /&gt;
&lt;br /&gt;
:To create a Spiro path, select any path and assign the &amp;quot;Spiro spline&amp;quot; path effect to it. There are no parameters. Each node of your path becomes a point of a Spiro path, depending on the type of node:&lt;br /&gt;
&lt;br /&gt;
:* Smooth nodes (those with two collinear Bezier handles; use Shift+S to make a node smooth) become smooth curve points of the Spiro path. Note that the length or direction of the Bezier handles of the source path is ignored; the only thing that matters is their collinearity.&lt;br /&gt;
&lt;br /&gt;
:* Cusp nodes of the source path become corner points of the Spiro path, like free hinges on the springy rod. Between two corner points, the path is always a straight line. To make a node cusp, retract its Bezier handles by Ctrl+click, or press Shift+C and move one of the handles so they are no longer collinear.&lt;br /&gt;
&lt;br /&gt;
:* Half-smooth nodes - those with one Bezier handle collinear with a straight line segment on the other hand - become &amp;quot;left&amp;quot; or &amp;quot;right&amp;quot; points on the Spiro path which behave exactly the same: they sit between a straight line and a curve and enforce that these two segments join smoothly without a cusp. To create such a node, make sure one of the segments is a line (select its ends and press Shift+L), then Ctrl+drag the remaining handle to make it snap to the direction of the straight line segment on the other side, or press Shift+S to lock it to that direction.&lt;br /&gt;
&lt;br /&gt;
:Note that what matters is the actual collinearity of a node's handles, regardless of the node type that the node has in the Node tool; for example, if a node designated as cusp (diamond-shaped) has collinear handles, it will become a smooth curve point of the Spiro path. &lt;br /&gt;
&lt;br /&gt;
:Some configurations of points do not converge and produce wild loops and spirals instead of a smooth curve. According to Raph, &amp;quot;The spline solver in this release is _not_ numerically robust. When you start drawing random points, you'll quickly run into divergence. However, &amp;quot;sensible&amp;quot; plates based on real fonts usually converge.&amp;quot; Avoid too sharp changes in direction between points to prevent divergence. Hopefully, the robustness of the algorithm will be improved in future releases.&lt;br /&gt;
&lt;br /&gt;
:For now, to edit Spiro paths viewing the result in real time, you have to use the Node tool; it is recommended to turn off the red highlight of the source path as it is a distraction. The Pen tool does not yet allow you to preview a Spiro as you draw, although you can paste the Spiro effect on the path and see the result as soon as the path is finalized. &lt;br /&gt;
&lt;br /&gt;
:You can always use the Node tool to continue a Spiro path by duplicating and dragging away its end nodes. Also, when you have a Spiro path selected, you can add a new subpath to it with Pen or Pencil if you start drawing with Shift.&lt;br /&gt;
&lt;br /&gt;
* '''Construct Grid'''  [johan]&lt;br /&gt;
&lt;br /&gt;
* '''Perpendicular bisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''AngleBisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Tangent to a curve''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle through 3 points''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle with radius''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Envelope Deformation''' allows the user to deform an object (or a group of object) by deforming its sides. Modifications are done by deforming the 4 Path parameters : Top and Bottom, Left and Right.&lt;br /&gt;
&lt;br /&gt;
* '''Lattice Deformation''' allows the user to deform an object (or a group of object) by moving 16 control points.&lt;br /&gt;
&lt;br /&gt;
* '''Ruler''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Freehand Shape''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Interpolate Subpaths''': [Johan]&lt;br /&gt;
&lt;br /&gt;
* '''Path Length''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Text Label''': [max]&lt;br /&gt;
&lt;br /&gt;
==New features==&lt;br /&gt;
* The '''Paste Path Effect''' command is enabled to assign the path effect of the clipboard to any number of paths, going recursively into groups if necessary.&lt;br /&gt;
&lt;br /&gt;
* A new command, '''Remove path effect''' removes any path effects from all selected objects, going recursively into groups if necessary. &lt;br /&gt;
&lt;br /&gt;
* Along with the commands to open the path effects dialog and to paste path effects, the three commands were collected in a submenu under Path menu.&lt;br /&gt;
&lt;br /&gt;
* Live path effects can now be assigned to the sides of a 3D box (use Ctrl+click to select individual sides).&lt;br /&gt;
&lt;br /&gt;
* The Pen and Pencil tools now correctly work with paths with LPEs: you can continue such a path or add a new subpath to it by drawing with Shift, all preserving the effect applied to it.&lt;br /&gt;
&lt;br /&gt;
* Path type parameters can now link to existing shapes &amp;lt;b&amp;gt;and text&amp;lt;/b&amp;gt;, like clones do. Now it is possible to use text as input for the Pattern Along Path effect for example!&lt;br /&gt;
&lt;br /&gt;
* Lib2geom now has an implementation for EllipticalArc. For Inkscape, this means that it is now possible to directly copy-paste ellipse shapes on path parameters (e.g. 'pattern' in Pattern along Path), without the need to convert the ellipse object to path first. [needs coding and checking]&lt;br /&gt;
&lt;br /&gt;
==Live Path Effects for groups==&lt;br /&gt;
&lt;br /&gt;
LPE can now be assigned to a group. For most LPE, the effect is applied recursively but for Bend Path or Deformations the result is more powerful : the distortion applies on the whole group. &lt;br /&gt;
&lt;br /&gt;
*You can as usual enter the group by double-clicking on it. &lt;br /&gt;
*It applies recursively, this means that a LPE can be assigned to groups of groups &lt;br /&gt;
*The Effect can be applied definitively with &amp;quot;Convert Object to path&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Live Path Effects stacking==&lt;br /&gt;
&lt;br /&gt;
With Live Path Effects stacking, more than one Live Path Effect can be assigned to an item. A new UI was created to control the stack.&lt;br /&gt;
&lt;br /&gt;
=Import/Export=&lt;br /&gt;
==PostScript and EPS import==&lt;br /&gt;
&lt;br /&gt;
Inkscape's capability to open or import PS and EPS files now uses Ghostscript instead of pstoedit. If you need to open files of these types, install Ghostscript and make sure the directory with the &amp;lt;code&amp;gt;ps2pdf&amp;lt;/code&amp;gt; utility from Ghostscript installation is in your PATH. On opening, you will see a preferences dialog similar to PDF import, which, for multipage PS files, allows you to select the page to open.&lt;br /&gt;
&lt;br /&gt;
==PDF import from the command line==&lt;br /&gt;
&lt;br /&gt;
Now you can use, for example,&lt;br /&gt;
&lt;br /&gt;
 inkscape file.pdf --export-plain-svg=file.svg&lt;br /&gt;
&lt;br /&gt;
It will take the first page of the PDF and all the default import options, and save the result to SVG. (Before, it crashed because it tried to open the PDF import preferences dialog and could not do it in the command line mode.) If you try to import PDF without an &amp;lt;code&amp;gt;--export&amp;lt;/code&amp;gt; command, it will show the prefs dialog as before and open the file in the UI.&lt;br /&gt;
&lt;br /&gt;
==PDF, PostScript, and EPS export==&lt;br /&gt;
&lt;br /&gt;
The new cairo-based PS and EPS exporter provides a much better support for various vector features, including '''clipping paths''', '''patterns''', and '''non-ASCII characters'''. Those features that are not supported by the Postscript language, such as transparency, are exported via rasters embedded into Postscript.&lt;br /&gt;
&lt;br /&gt;
The new cairo-based PDF exporter correctly translates into PDF '''clipping paths''' and '''patterns''' and brings many other improvements.&lt;br /&gt;
&lt;br /&gt;
All of PS, EPS, and PDF export formats uniformly support the export area options (canvas or drawing) and the new export-id option: &lt;br /&gt;
&lt;br /&gt;
* You can now export a single object from a complex document (for example, a single layer) if you specify the ID of that object in the &amp;quot;Limit export to the object with ID&amp;quot; field in the GUI or via the '''--export-id=ID''' option on the command line. The export will show only that object (all others will not be exported at all). The BoundingBox (page size) of the exported PS/EPS/PDF file will correspond to the bounding box of that object; you can override that with &amp;quot;Export area is whole canvas&amp;quot; (GUI) or '''--export-area-canvas''' (command line) option which forces the output to have the size of the SVG document's canvas (this may not be possible with EPS, see below).&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Export area is whole canvas&amp;quot; (GUI) or '''--export-area-canvas''' (command line) option forces the output to have the size of the SVG document's canvas. This is the default for PS and PDF but not for EPS. &lt;br /&gt;
&lt;br /&gt;
:*Note that for EPS, the specification of the format does not allow its bounding box to extend beyond its content. This means that when --export-area-canvas is used with EPS export, the canvas bounding box will be trimmed inwards (but never outwards) to the bounding box of the content if it is smaller. If you want a file which has a %BoundingBox different from the bounding box of its content, you can use PS or PDF export formats instead of EPS, or add a white background rectangle with the required size to source document before exporting to EPS.&lt;br /&gt;
&lt;br /&gt;
:* The &amp;lt;b&amp;gt;--export-bbox-page&amp;lt;/b&amp;gt; command line parameter is removed; use &amp;lt;b&amp;gt;--export-area-canvas&amp;lt;/b&amp;gt; instead. &lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Export area is the drawing (GUI) or '''--export-area-drawing''' (command line) option forces the output to have the size of the exported objects' bounding box, regardless of canvas size. If no --export-id is specified, this means the bounding box of the entire drawing; with --export-id, this means the bounding box of the exported object only. This is the default for EPS. &lt;br /&gt;
&lt;br /&gt;
* The &amp;lt;b&amp;gt;--export-embed-fonts&amp;lt;/b&amp;gt; option is removed; now Inkscape always embeds and subsets all fonts used in the document when exporting PS, EPS, or PDF.&lt;br /&gt;
&lt;br /&gt;
==Corel DRAW files import==&lt;br /&gt;
&lt;br /&gt;
Now Inkscape can import more Corel DRAW files of following types:&lt;br /&gt;
&lt;br /&gt;
* Corel DRAW Compressed Exchange files (CCX)&lt;br /&gt;
* Corel DRAW 7-X4 Template files (CDT)&lt;br /&gt;
* Corel DRAW Presentation Exchange files (CMX)&lt;br /&gt;
&lt;br /&gt;
Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==sK1 files import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import sK1 files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==CGM import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import Computer Graphics Metafile (CGM) files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==HPGL export==&lt;br /&gt;
&lt;br /&gt;
Inkscape can now export to HPGL (Hewlett-Packard Graphics Language). It is a file format that is used for various cutters/plotters.&lt;br /&gt;
&lt;br /&gt;
==JavaFX export==&lt;br /&gt;
&lt;br /&gt;
[]&lt;br /&gt;
&lt;br /&gt;
==DXF export==&lt;br /&gt;
&lt;br /&gt;
DXF export is much faster than in previous versions.&lt;br /&gt;
&lt;br /&gt;
==PNG export==&lt;br /&gt;
&lt;br /&gt;
* If you specify a relative path for exported PNG file (e.g. &amp;lt;code&amp;gt;../&amp;lt;/code&amp;gt;) it will now be resolved relative to the current document's location.&lt;br /&gt;
&lt;br /&gt;
* PNG export has been updated to include metadata if present in the source SVG.&lt;br /&gt;
&lt;br /&gt;
= Autosave =&lt;br /&gt;
&lt;br /&gt;
Autosave has now been added to allow for automatic timed backups as work goes on. Saved versions are put in a designated directory and do not overwrite the original SVG file and each other. Go to Inkscape Preferences, Autosave tab, to enable this feature and specify the backup time interval, the directory, and the maximum number of saved backups (if this number is exceeded, old backups will start to be deleted).&lt;br /&gt;
&lt;br /&gt;
=Extension effects=&lt;br /&gt;
==New and improved effects==&lt;br /&gt;
&lt;br /&gt;
* The new '''Arrange &amp;gt; Restack''' extension restacks the Z-order of selected objects, from left to right, top to bottom (or vice versa), with radial outward or inward or by an arbitrary angle, specifying the base point for comparison (top, left, middle, etc.).&lt;br /&gt;
* The improved '''Modify Path &amp;gt; Add Nodes''' extension now also allows segments to be divided into a given number of subsegments.&lt;br /&gt;
* The new '''Render &amp;gt; 3D Polyhedron''' extension allows drawing polyhedrons from scratch and render them from OBJ files.&lt;br /&gt;
* The new '''Render &amp;gt; Alphabet Soup''' extension is a vector rework of Matt Chrisholm's [http://www.theory.org/artprojects/alphabetsoup/main.html GPLed script]. Alphabet Soup randomly mashes glyph-elements together to make exotic looking text.&lt;br /&gt;
* The new '''Render &amp;gt; Cartesian Grid''' extension plots Cartesian (square) grids that do not fill the page, but offer three levels of division, logarithmic scales (with clutter-reduction and arbitrary base) and customisable line width. All like elements (eg x-axis subminor divisions) are put into subgroups together. A proper border is also drawn, with an independent line thickness.&lt;br /&gt;
* The new '''Render &amp;gt; Draw from Triangle''' extension takes a triangle drawn as a path (only the first three nodes of a path are counted) and allows to draw many triangle-related geometrical objects such as circumcircles, excentral triangles, etc. It also allows entry of custom trilinear coordinated and triangle centre functions, as well as computation of basic triangle properties such as area and semiperimeter.&lt;br /&gt;
* The new '''Render &amp;gt; Polar Grid''' extension plots a polar co-ordinate grid, with options for arbitrary-base logarithmic subdivisions, clutter-reduction around the origin, circumferential labels and custom line widths.&lt;br /&gt;
* The new '''Text &amp;gt; Convert to Braille''' extension recodes English (or just Latin letters) text to [http://en.wikipedia.org/wiki/Braille Braille] code created for visually impaired people.&lt;br /&gt;
* [preset filter effects]&lt;br /&gt;
&lt;br /&gt;
==API changes==&lt;br /&gt;
&lt;br /&gt;
While the &amp;quot;Live preview&amp;quot; checkbox is useful for most effects, for some it just does not make sense. Now, you can add the attribute &amp;lt;code&amp;gt;needs-live-preview=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;effect&amp;lt;/code&amp;gt; element in the .inx file of the effect to suppress this checkbox for your effect.&lt;br /&gt;
&lt;br /&gt;
Parameters passed to extensions (via the &amp;lt;param&amp;gt; element) now have a new boolean attribute - &amp;lt;code&amp;gt;gui-hidden&amp;lt;/code&amp;gt; to indicate that the parameter should not be represented in the GUI. If all parameters are marked as hidden no GUI is presented for such extension.&lt;br /&gt;
&lt;br /&gt;
All '''.inx''' files are now properly formatted XML files with its own namespace of: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.inkscape.org/namespace/inkscape/extension&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and a Relax NG schema to define it. More information can be found in the [[Extensions]] Article.&lt;br /&gt;
&lt;br /&gt;
=SVG output=&lt;br /&gt;
&lt;br /&gt;
==Optimized CSS properties==&lt;br /&gt;
&lt;br /&gt;
* As a file size optimization, Inkscape does not write into SVG some of the stroke properties if the object has &amp;lt;code&amp;gt;stroke:none&amp;lt;/code&amp;gt; and some of the fill properties when it has &amp;lt;code&amp;gt;fill:none&amp;lt;/code&amp;gt;. The only situation where this might affect you is if you remove stroke from an object and then turn it back on - the object will get the default stroke instead of the same it had before. &lt;br /&gt;
&lt;br /&gt;
:Also, in manually-edited SVG where a parent group has no stroke but sets some stroke properties to be inherited by its descendants, you will need to set stroke property to other than none on the group, and suppress inheritance with stroke:none on those children that don't need it.&lt;br /&gt;
&lt;br /&gt;
:Specifically, if stroke:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 stroke-width&lt;br /&gt;
 stroke-linecap&lt;br /&gt;
 stroke-linejoin&lt;br /&gt;
 stroke-miterlimit&lt;br /&gt;
 stroke-opacity&lt;br /&gt;
 stroke-dasharray&lt;br /&gt;
 stroke-dashoffset&lt;br /&gt;
&lt;br /&gt;
:Note that this does not include marker properties, which means you can still have markers on a path without visible stroke.&lt;br /&gt;
&lt;br /&gt;
:If fill:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 fill-opacity&lt;br /&gt;
 fill-rule&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;opacity&amp;lt;/code&amp;gt; property is not written if it has the default value of 1 (this property is not inherited, so the change should have no side effects).&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;marker-start&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;marker-mid&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;marker-end&amp;lt;/code&amp;gt; properties are not written if the &amp;lt;code&amp;gt;marker&amp;lt;/code&amp;gt; property is already present with the same value.&lt;br /&gt;
&lt;br /&gt;
==Optimized path data==&lt;br /&gt;
&lt;br /&gt;
In this version, the size of the path data written in the &amp;lt;code&amp;gt;d=&amp;lt;/code&amp;gt; attribute of &amp;lt;code&amp;gt;path&amp;lt;/code&amp;gt; elements is reduced by about 10%. Inkscape generates the shortest possible path strings by avoiding repeated operators and using relative coordinates (when it helps).&lt;br /&gt;
&lt;br /&gt;
This is controlled by the '''SVG output''' page of Inkscape Preferences dialog, as well as the following attributes in &amp;lt;code&amp;gt;group id=&amp;quot;svgoutput&amp;quot;&amp;lt;/code&amp;gt; in your preferences.xml file:&lt;br /&gt;
&lt;br /&gt;
* allowrelativecoordinates (default 1) to switch relative coordinates on (1) or off (0)&lt;br /&gt;
* forcerepeatcommands (default 0) to force repeating operators (1) or allow use of the more compact representation without repeated operators (0)&lt;br /&gt;
&lt;br /&gt;
==No more explicit closing line segment==&lt;br /&gt;
Inkscape used to always explicitly write the closing line segment to SVG for closed paths. For example: &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 L 0,0 z&amp;quot;. With the improved SVG path data writing, Inkscape no longer generates this closing line segment, resulting in &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 z&amp;quot;.&lt;br /&gt;
When SVG path data input contains this explicit closing segment, it is maintained throughout transformations, but is removed after using the node edit tool.&lt;br /&gt;
[this seems no longer to be true, fix it!!! -johan]&lt;br /&gt;
&lt;br /&gt;
==Horizontal and vertical path segments==&lt;br /&gt;
&lt;br /&gt;
If an SVG contains paths with shorthands for horizontal and vertical path segments ('H' or 'V'), then Inkscape will try to maintain those shorthands if possible, so the saved file will also contain them.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;script&amp;gt; support==&lt;br /&gt;
&lt;br /&gt;
While Inkscape does not yet support SVG scripting via the &amp;lt;script&amp;gt; element, this element is now preserved after editing the file in Inkscape.&lt;br /&gt;
&lt;br /&gt;
=Other features=&lt;br /&gt;
&lt;br /&gt;
==Shell mode==&lt;br /&gt;
&lt;br /&gt;
If you run inkscape with &amp;lt;code&amp;gt;--shell&amp;lt;/code&amp;gt;, it will enter an interactive command line shell mode. In this mode, you type in commands at the prompt and Inkscape executes them, without you having to run a new copy of Inkscape for each command. This feature is mostly useful for scripting and server uses: it adds no new capabilities but allows you to improve the speed and memory requirements of any script that repeatedly calls Inkscape to perform command line tasks (such as export or conversions). Each command in shell mode must be a complete valid Inkscape command line but without the Inkscape program name, for example:&lt;br /&gt;
&lt;br /&gt;
 $ inkscape --shell&lt;br /&gt;
 Inkscape 0.46+devel interactive shell mode. Type 'quit' to quit.&lt;br /&gt;
 &amp;gt;file.svg --export-pdf=file.pdf&lt;br /&gt;
 &amp;gt;otherfile.svg --export-png=bitmap.png&lt;br /&gt;
 Background RRGGBBAA: ffffff00&lt;br /&gt;
 Area 0:0:744.094:1052.36 exported to 744 x 1052 pixels (90 dpi)&lt;br /&gt;
 Bitmap saved as: bitmap.png&lt;br /&gt;
 &amp;gt;quit&lt;br /&gt;
&lt;br /&gt;
==Masks and clipping paths==&lt;br /&gt;
&lt;br /&gt;
[editable in node tool - johan]&lt;br /&gt;
&lt;br /&gt;
==Stroke width changeable by dragging==&lt;br /&gt;
&lt;br /&gt;
Similar to editing the fill or stroke colors by dragging away from the swatch in the status bar, which was added in the last version, this version allows you to drag away from the stroke width value displayed there to change the stroke width of selection. Dragging above the 45-degree line from the swatch increases the width (up to twice the original width), dragging below it decreases the width (down to half the original width). With this feature, quick and precise stroke width adjustments are possible without opening any dialogs or menus.&lt;br /&gt;
&lt;br /&gt;
==Enhanced tablet support==&lt;br /&gt;
&lt;br /&gt;
===Input device tool switching===&lt;br /&gt;
&lt;br /&gt;
Tablets and other input devices that report separate hardware are now recognized and current tool and/or settings can be set to switch in response to the physical tool being used.&lt;br /&gt;
&lt;br /&gt;
===Extended input device configuration===&lt;br /&gt;
&lt;br /&gt;
The stock Input Devices dialog has been replaced with a completely redone version that provides a more useful representation of settings. It also contains a simple area for testing different inputs of different devices.&lt;br /&gt;
&lt;br /&gt;
Additionally hardware setup itself has been separated from general settings to allow for easier dynamic switching of settings appropriate to the task at hand.&lt;br /&gt;
&lt;br /&gt;
==Layers==&lt;br /&gt;
&lt;br /&gt;
===Show/hide other layers===&lt;br /&gt;
&lt;br /&gt;
The layers dialog now allows for hiding or showing all layers other than the current layer. This &amp;quot;solo&amp;quot; feature allows for faster switching between working layers and for quick checking with and without others shown.&lt;br /&gt;
&lt;br /&gt;
===Duplicate Layer command===&lt;br /&gt;
&lt;br /&gt;
A new command has been added to the layers menus to allow for duplicating an existing layer with all of its objects.&lt;br /&gt;
&lt;br /&gt;
==External image editing and reload==&lt;br /&gt;
&lt;br /&gt;
Linked bitmaps have a context menu option to launch editing in an external application. Linked images now will reload when the linked file changes on disk. Both the external editor application and the reload behavior can be controlled by user preferences.&lt;br /&gt;
&lt;br /&gt;
==Command for relinking clones==&lt;br /&gt;
&lt;br /&gt;
A new command, '''Relink Clone to Copied''' in ''Edit &amp;gt; Clone'', allows you to relink any clone to a different original object without changing its other properties. Just copy (Ctrl+C) the object you want to be the new original, select any number of clones, and choose the Relink command. Now all selected clones are linked to the copied object.&lt;br /&gt;
&lt;br /&gt;
==Auto relinking clones on Duplicate==&lt;br /&gt;
&lt;br /&gt;
If you turn on the '''When duplicating original+clones: Relink duplicated clones''' option on Clones tab of Inkscape Preferences (default is off), duplicating a selection containing both a clone and its original (possibly in groups) will relink the duplicated clone to the duplicated original instead of the old original.&lt;br /&gt;
&lt;br /&gt;
==Pattern editing==&lt;br /&gt;
&lt;br /&gt;
When editing pattern fills:&lt;br /&gt;
* The pattern origin and scale handles now snap.&lt;br /&gt;
* The pattern scaling can now be different in X and Y direction. Press '''Ctrl''' to have a fixed 1:1 ratio scaling (old behavior).&lt;br /&gt;
* The handles are now positioned at the corners  of the unit cell, instead of only a quarter of that cell as before. So, now a rectangle filled with pattern will have all of the pattern handles in the corners, making it harder to manipulate them. However, the handles can be dragged outside the rectangle by moving the pattern's origin handle.&lt;br /&gt;
&lt;br /&gt;
==Transform dialog: spacing out option==&lt;br /&gt;
&lt;br /&gt;
Previously, the '''Apply to each object separately''' checkbox had no effect for the '''Move''' tab. Now, if several objects are selected, this checkbox is on, and &amp;quot;Relative move&amp;quot; is on, each object is shifted relative to the closest selected object on the left (for X) or below (for Y). &lt;br /&gt;
&lt;br /&gt;
For example, if you have a horizontal row of objects and you move them relatively by X=5px with &amp;quot;Apply to each object separately&amp;quot; on, the leftmost object will shift by 5px, the next one to the right by 10px, and so on; the rightmost selected object is displaced by 5*n px where n is the number of selected objects.  As a result, the distance in each pair of adjacent objects will increase by 5px and the whole row will be spaced out, much like a letterspacing adjustment spaces out a text string. Moving these objects by X=-5px will, conversely, squeeze them tighter together: the leftmost will move by -5px, the next one by -10px, and so on. For Y, the effect is the same except that the move starts from the object closest to the bottom (i.e. with smallest Y coordinate). &lt;br /&gt;
&lt;br /&gt;
When determining the order of shifting objects, for X, the left edges of their bounding boxes are sorted horizontally, and for Y, the bottoms of their bounding boxes are sorted vertically. Order of selecting the objects or z-order does not matter.&lt;br /&gt;
&lt;br /&gt;
==Converting text to path produces a group==&lt;br /&gt;
&lt;br /&gt;
Converting a text or flowed text to path (Ctrl+Shift+C) now produces a group of paths, one path for each glyph of text, instead of a single monolithic path as before. Apart from easier manipulation, an additional advantage is that if your text contained styled spans (i.e. fragments with different color, opacity, or other properties), these styles will be preserved by the corresponding glyph paths after the conversion.&lt;br /&gt;
&lt;br /&gt;
=User interface=&lt;br /&gt;
&lt;br /&gt;
==Filters can be disabled==&lt;br /&gt;
In order to facilitate editing documents that use lots of SVG filter effects, filter effects can now be disabled for a particular document window by selecting '''View|Display mode|No Filters''' from its menu.  This provides an intermediate step between &amp;quot;normal&amp;quot; and &amp;quot;outline&amp;quot; view modes.&lt;br /&gt;
&lt;br /&gt;
The Toggle view command in the Display mode submenu (Ctrl+keypad 5) toggles between the outline view and either regular or no-filters view, depending on which was used most recent.&lt;br /&gt;
&lt;br /&gt;
==Filter quality setting==&lt;br /&gt;
&lt;br /&gt;
Instead of the 'blur quality' setting, Inkscape now has a general 'filter effects quality' setting. It affects all filters and gives you an opportunity to find optimum balance between speed and accuracy when rendering filters.&lt;br /&gt;
&lt;br /&gt;
==Native file dialogs for Windows==&lt;br /&gt;
The windows builds of inkscape now have Windows-native file dialogs to keep consistency with other windows applications.&lt;br /&gt;
&lt;br /&gt;
==Inkscape Preferences dialog==&lt;br /&gt;
&lt;br /&gt;
This dialog has been rearranged for more logical grouping of options. New pages has been added: Bitmaps (options for the new update-on-file-change and external editor features), UI (options for toolbar icon sizes), and SVG Output (options for SVG formatting, introduced in 0.46 and now editable from the dialog as well). &lt;br /&gt;
&lt;br /&gt;
A new option on the Bitmaps tab, '''Resolution for Create Bitmap Copy''', allows you to set the resolution of the bitmap created by the corresponding command (by default bound to Alt+B). The default value of 90 dpi forces the resulting bitmap to align with the default 1px-spaced grid on the canvas.&lt;br /&gt;
&lt;br /&gt;
There is a new option on the Interface tab, '''Zoom correction factor''', which displays an adjustable ruler. Move the slider until the ruler's on-screen size matches its true size. The resulting conversion factor is used internally when zooming to 1:1 etc. such that objects are displayed in their true size.&lt;br /&gt;
&lt;br /&gt;
== Align and Distribute dialog ==&lt;br /&gt;
&lt;br /&gt;
There is now an option to treat all selected objects as a group when aligning (this spares the user the trouble to manually group them, align, and ungroup afterwards).&lt;br /&gt;
&lt;br /&gt;
==Dropper tool==&lt;br /&gt;
&lt;br /&gt;
The confusing icons on buttons in the controls bar of the Dropper tool (pick/assign opacity) are replaced by text labels.&lt;br /&gt;
&lt;br /&gt;
==Swatches==&lt;br /&gt;
&lt;br /&gt;
Hovering over a swatch now shows the name of the swatch in the status bar. This makes it easier for tablet users to identify a swatch by name, as holding a stylus still enough to show a tool tip is difficult.&lt;br /&gt;
&lt;br /&gt;
==Toolbars==&lt;br /&gt;
&lt;br /&gt;
* The toolbar icon sizes for the three main toolbars are now separately configurable and to a few different sizes. This allows users to get a smaller UI on certain systems, including Ubuntu.&lt;br /&gt;
&lt;br /&gt;
* The main tools toolbar has been converted to a standard GtkToolbar, removing the problem of it pushing the main window taller. Tools that don't fit automatically flow into a popup menu.&lt;br /&gt;
&lt;br /&gt;
* When torn off, toolbars now keep the size they last had in the main window. They can be resized by docking, sizing the main window, and then undocking agin.&lt;br /&gt;
&lt;br /&gt;
* Some controls (such as the Width in Calligraphic/Tweak/Eraser tools, Tremor, Wiggle, and Mass in Calligraphic, Threshold in Paintbucket, Tolerance in Pencil) are converted from numeric editable fields into draggable sliders, with labels and values (usually in the range 0..100) displayed on top. As these values don't usually require much precision, this makes adjusting them much easier and faster.&lt;br /&gt;
&lt;br /&gt;
==Title and Description==&lt;br /&gt;
&lt;br /&gt;
* [the Title and Description fields on the Object Properties dialog - sas]&lt;br /&gt;
&lt;br /&gt;
==Clone/original visualization==&lt;br /&gt;
&lt;br /&gt;
When you press Shift+D to find and select the original of the selected clone, Inkscape draws a dashed line between the centers of the bounding boxes of the clone and the original. This line disappears after one second.&lt;br /&gt;
&lt;br /&gt;
=Grids, guides, snapping=&lt;br /&gt;
&lt;br /&gt;
==Grids==&lt;br /&gt;
* The dotted rectangular grid now shows small crosses at the intersection points of emphasis lines.&lt;br /&gt;
&lt;br /&gt;
==Guides==&lt;br /&gt;
&lt;br /&gt;
There is now an option to treat groups as single objects during conversion to guides (as opposed to converting each object inside the group separately).&lt;br /&gt;
&lt;br /&gt;
==Snapping==&lt;br /&gt;
Snapping has been implemented or improved in these areas:&lt;br /&gt;
* The '''node tool''' now snaps to any unselected node (both cusp and smooth) within the path that's being edited, and nodes of other paths. It also snaps to the path itself, but only to the stationary segments in between two unselected nodes. It is now also possible to snap while moving nodes along a vertical or horizontal constraint&lt;br /&gt;
* Whether or not to snap to '''smooth nodes''' is now an option in the preferences&lt;br /&gt;
* '''Clipping paths and masks''' are now also snappable&lt;br /&gt;
* The object snapper now also allows to snap to the '''page border'''&lt;br /&gt;
* It is now possible to snap to '''intersections of paths''' (were we previously only snapped to intersections of line-segments)&lt;br /&gt;
* In the selector tool, snapping while '''skewing ''' or '''constrained translating''' have been improved&lt;br /&gt;
* When creating '''new shapes''', all of their handle points now snap&lt;br /&gt;
* In the document properties dialog, the checkbox for ''' 'always'''' snap has been replaced by two radiobuttons; this should eliminate most of the confusion surrounding this option&lt;br /&gt;
* Holding the shift-key now also disables snapping while dragging '''node-handles'''&lt;br /&gt;
* The code relating to the snapping mechanisms has undergone '''major refactoring''' to make it more reliable and easier to use from a developer's perspective&lt;br /&gt;
* Snapping to objects now uses routines from the '''2geom libraries''', which are actively maintained and are less error prone than the old Livarot libraries. This fixes at least two known snapping bugs&lt;br /&gt;
* While drawing and '''constraining to specific angles''' (using CTRL), Inkscape should now only snap to points on the constrained line.&lt;br /&gt;
* When '''pasting''', previously aligned originals will stay aligned to the grid. The code for this had to be reinvented due to the refactoring&lt;br /&gt;
&lt;br /&gt;
==Snap indicator==&lt;br /&gt;
When snapping has occurred, an indicator is displayed at that specific position. For now that indicator is just a cross that disappears in a second. In the future the shape of the indicator will be related to the type of target that has been snapped to. The snapping indicator can be disabled in the Document Properties dialog.&lt;br /&gt;
&lt;br /&gt;
=Localization and documentation=&lt;br /&gt;
&lt;br /&gt;
* Hebrew localization complete now&lt;br /&gt;
&lt;br /&gt;
=Other changes and improvements=&lt;br /&gt;
&lt;br /&gt;
*  ''New Layer'' dialog can be opened with '''Ctrl+Shift+N''' shortcut now&lt;br /&gt;
&lt;br /&gt;
=Notable bug fixes=&lt;br /&gt;
&lt;br /&gt;
* Several '''memory leaks''' are stopped, reducing the memory consumption during long editing sessions considerably. Closing the last window with a document now frees memory used by that document immediately. &lt;br /&gt;
&lt;br /&gt;
* Inkscape is now able to handle paths with only 'movetos', i.e. &amp;quot;M 0,0 M 1,1 M 2,2&amp;quot;. These kind of paths can be used to only show markers on a path without the rest of the path visible.&lt;br /&gt;
&lt;br /&gt;
* The '''visual bounding box''' (which is the default bounding box type used by Inkscape) of an object with a filter applied, now includes the expanded area of the filter. For '''single blur filter''' (such as the blur you apply with a slider in the Fill and Stroke dialog), this expands the bounding box by 2.4*radius; although theoretically, blur is infinite, this is the distance at which the opacity of the object drops below the perceptibility threshold of our renderer. For all other filters, the area is expanded by the relative amounts you specify on the &amp;quot;Filter general settings&amp;quot; tab of the Filter Effects dialog.&lt;br /&gt;
&lt;br /&gt;
:Only visual bounding box is affected; if you use geometric bounding box, you will notice no change in most cases. However, the Export bitmap dialog always uses the visual bbox for selection of the export area; this means that you can now export a blurred object to bitmap without any clipping of the blur.&lt;br /&gt;
&lt;br /&gt;
* Bounding box calculation does not include the invisible objects. (#252547)&lt;br /&gt;
&lt;br /&gt;
* Several fixes allows Inkscape to correctly render and edit SVG files that use &amp;lt;code&amp;gt;currentColor&amp;lt;/code&amp;gt; in objects' style (this includes files created by gnuplot).&lt;br /&gt;
&lt;br /&gt;
* '''No more ID clashes on import and paste''': previously, importing or pasting SVG objects might sometimes distort their colors, because the imported objects referred to gradients with the same IDs as those that already exist in the document but look different. Now, IDs of all gradients in the pasted document are checked for clashes with those in the host document, and if necessary changed with all their users updated correspondingly, so such unexpected color changes will never happen.&lt;br /&gt;
&lt;br /&gt;
* '''Clipboard is system-wide''': you can now copy/paste objects between different Inkscape instances as well as between Inkscape and other applications (which must be able to handle SVG on the clipboard to use this).&lt;br /&gt;
&lt;br /&gt;
* File dialogs remember last visited directory.&lt;br /&gt;
&lt;br /&gt;
* The --vacuum-defs command line parameter erroneously deleted markers which are in use.&lt;br /&gt;
&lt;br /&gt;
* No more garbage lines in outline mode.&lt;br /&gt;
&lt;br /&gt;
* No more artifacts left by the circle cursor in Tweak tool.&lt;br /&gt;
&lt;br /&gt;
* The Live Path Effects '''Bend Path''' and '''Pattern along Path''' now work correctly with closed paths.&lt;br /&gt;
&lt;br /&gt;
= Previous releases =&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=36114</id>
		<title>Release notes/0.47</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=36114"/>
		<updated>2008-09-22T22:34:43Z</updated>

		<summary type="html">&lt;p&gt;Jfb: /* New effects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Inkscape 0.47= &lt;br /&gt;
'''(not released yet)'''&lt;br /&gt;
&lt;br /&gt;
=Refactoring effort=&lt;br /&gt;
&lt;br /&gt;
- many instances of SP_ACTIVE_DESKTOP were eliminated (although there still remain quite a lot to be removed)&lt;br /&gt;
&lt;br /&gt;
[mention the 'main' goal of 0.47 and list which things have been refactored and the benefits/new features/different workflow? --johan]&lt;br /&gt;
&lt;br /&gt;
- ratio of code lines and comment lines (difference with 0.46)&lt;br /&gt;
&lt;br /&gt;
- number of fixme's and todo's (difference with 0.46)&lt;br /&gt;
&lt;br /&gt;
- cairo&lt;br /&gt;
&lt;br /&gt;
- speed improvement? (LPE? bootup?)&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
&lt;br /&gt;
==Node tool==&lt;br /&gt;
&lt;br /&gt;
* [helper path display, flashing - johan]&lt;br /&gt;
* The Node tool can now edit '''clipping paths''' and '''masks''' of objects on canvas, without releasing them. If the selected object has a clipping path and mask, the corresponding buttons on the controls bar of the tool will be enabled; pressing these buttons will display the editable paths or handles of the clippath or mask. A clipping path is stroked green, a mask is stroked blue (the same colors as those used for them in Outline mode).&lt;br /&gt;
* Snapping has been improved (more details in Snapping below)&lt;br /&gt;
* When dragging a node '''handle with Ctrl''', it now snaps not only to the 15 degree increments starting from 0 and to the original handle direction, but also to the direction of the '''opposite handle''' (if it exists) or of the '''opposite line segment''' (if it is a straight line).&lt;br /&gt;
* The behavior of the buttons/shortucts that make a node smooth or cusp has been improved:&lt;br /&gt;
:* If a node is already cusp (diamond shaped), pressing Shift+C again on it will retract both its handles. As this works for any number of selected nodes, you can always retract all handles in all nodes by selecting all nodes and pressing Shift+C twice.&lt;br /&gt;
:* If a non-smooth node is next to a straight line segment, pressing Shift+S once makes it ''half-smooth'': it now has one handle aligned with that line segment. Another press of Shift+S will expand the second handle as well turning it into a full smooth node. If a node is between two curve segments, Shift+S will expand both handles as before.&lt;br /&gt;
&lt;br /&gt;
==Tweak tool==&lt;br /&gt;
&lt;br /&gt;
Several new modes are added to the Tweak tool for transforming, duplicating, and deleting selected objects using the same &amp;quot;soft brush&amp;quot; metaphor that the path editing and coloring modes use. Using these new modes, it is easy to &amp;quot;sculpt&amp;quot; scatterings of small objects, such as clone tilings, into complex and naturalistic textures.&lt;br /&gt;
&lt;br /&gt;
* '''Move mode''' moves those selected objects that are under the brush in the direction in which you move the brush. This is similar to the Push path mode, except that the Move mode affects entire objects and not parts of the paths under the brush.&lt;br /&gt;
&lt;br /&gt;
* '''Move in/out mode'''  moves those selected objects that are under the brush towards the cursor (default) or away from cursor (with '''Shift''' pressed). This is similar to the Attract/repel path mode, except that the Move in/out mode affects entire objects and not parts of the paths under cursor.&lt;br /&gt;
&lt;br /&gt;
* '''Move jitter mode''' moves those selected objects that are under the brush in random directions and by random amounts, but the overall amount of movement depends on Force, pen pressure (if you're using a tablet pen), on the closeness of the object to the center of brush, and on how long you apply the brush.&lt;br /&gt;
&lt;br /&gt;
* '''Scale mode''' scales those selected objects that are under the brush down (by default) or up (with '''Shift''' pressed). The speed of scaling depends on Force, pen pressure (if you're using a tablet pen), on the closeness of the object to the center of brush, and on how long you apply the brush.&lt;br /&gt;
&lt;br /&gt;
* '''Rotate mode''' rotates those selected objects that are under the brush clockwise (by default) or counterclockwise (with '''Shift''' pressed). The speed of rotation depends on Force, pen pressure (if you're using a tablet pen), on the closeness of the object to the center of brush, and on how long you apply the brush. &lt;br /&gt;
&lt;br /&gt;
* '''Duplicate/delete mode''' randomly duplicates those selected objects that are under the brush (by default) or deletes them (with '''Shift''' pressed). The chance of an object to be duplicated and deleted depends on Force, pen pressure (if you're using a tablet pen), on the closeness of the object to the center of brush, and on how long you apply the brush. As with regular Duplicate command, duplicating with Tweak tool places the copies right over the originals, and you may need to use the Move jitter mode to ruffle them apart. &lt;br /&gt;
&lt;br /&gt;
:Note that the duplicates created by the tool are not automatically added to selection and therefore are out of reach for further tweaking until you manually select them. To work around this, group all the objects you are working on and select the group. All Tweak modes will work with individual objects inside the group, and any objects created by the Duplicate mode will also be part of that selected group and therefore immediately tweakable.&lt;br /&gt;
&lt;br /&gt;
Also, the existing path editing modes of the tool have been rearranged: now Shrink and Grow are one mode (shrinks by default, grows with Shift), and Attract and Repel are one mode (attracts by default, repels with Shift). Here is a complete list of modes and shortcuts of the Tweak tool:&lt;br /&gt;
&lt;br /&gt;
 Shift+m, Shift+0	        move mode&lt;br /&gt;
 Shift+i, Shift+1	move in/out mode&lt;br /&gt;
 Shift+z, Shift+2	move jitter mode&lt;br /&gt;
 Shift+&amp;lt;, Shift+&amp;gt;, Shift+3	scale mode&lt;br /&gt;
 Shift+[, Shift+], Shift+4	rotate mode&lt;br /&gt;
 Shift+d, Shift+5	duplicate/delete mode&lt;br /&gt;
 Shift+p, Shift+6	push path mode&lt;br /&gt;
 Shift+s, Shift+7	shrink/grow path mode&lt;br /&gt;
 Shift+a, Shift+8	attract/repel path mode&lt;br /&gt;
 Shift+r, Shift+9	roughen mode&lt;br /&gt;
 Shift+c	        color paint mode&lt;br /&gt;
 Shift+j	        color jitter mode&lt;br /&gt;
&lt;br /&gt;
==Calligraphy tool ==&lt;br /&gt;
&lt;br /&gt;
[presets - Aubanel]&lt;br /&gt;
&lt;br /&gt;
==Paint Bucket tool==&lt;br /&gt;
* Paint Bucket is now more tightly integrated with potrace.  As a result, memory and CPU usage on each fill operation have been reduced significantly.&lt;br /&gt;
&lt;br /&gt;
==Eraser Tool==&lt;br /&gt;
A new eraser tool has been added. It has two main modes:&lt;br /&gt;
&lt;br /&gt;
* Delete-mode where any shape touched by the tool is deleted completely. This operation is in line with &amp;quot;vector&amp;quot; editing.&lt;br /&gt;
* Cut mode where erasing acts similar to erasing in a standard bitmap editor.&lt;br /&gt;
&lt;br /&gt;
Cut mode works for both selected and not selected objects.&lt;br /&gt;
&lt;br /&gt;
==Pen and Pencil==&lt;br /&gt;
&lt;br /&gt;
Apart from the regular Bezier mode, the pen tool now provides several new modes:&lt;br /&gt;
&lt;br /&gt;
* '''Spiro mode''': This mode automatically applies the new Spiro Splines LPE (see the section on new effects) to any newly drawn path. As mentioned below, it is not yet possible to preview Spiros before the path is finished.&lt;br /&gt;
&lt;br /&gt;
* '''Zigzag mode''': This mode makes it easy to draw many straight line segments in quick succession by disallowing curves (even when the user drags with the mouse).&lt;br /&gt;
&lt;br /&gt;
* '''Paraxial mode''': In this mode, the user can only create straight line segments that are parallel to one of the coordinate axes. Normally, each line segment is drawn perpendicular to the previous one. The direction of the line segment being drawn can be toggled with Shift. When clicking on the start anchor, the path is closed with an L-shaped segment (the direction of which can also be flipped with Shift).&lt;br /&gt;
&lt;br /&gt;
Furthermore, it is now possible to automatically apply predefined vector brushes to path strokes in pen and pencil tools. This is a first step towards [http://wiki.inkscape.org/wiki/index.php/Vector-brushes this blueprint].&lt;br /&gt;
&lt;br /&gt;
In Pencil tool, the controls bar now provides the '''Smoothing''' parameter, changeable in the range from 1 to 100, which controls how much smoothing is applied to the freehand line. Small Smoothing values produce rough lines with many nodes; large values give smooth lines with few nodes. (Previously, this control was only available in Inkscape Preferences.)&lt;br /&gt;
&lt;br /&gt;
==Text tool==&lt;br /&gt;
&lt;br /&gt;
When editing multiline or flowed text, the '''PgUp''' and '''PgDn''' keys now work to move the cursor by one screen (i.e. by as many lines as fit into the screen at current zoom).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Live path effects=&lt;br /&gt;
== Notable bug fixes and effect changes==&lt;br /&gt;
We try to refrain from changing the behavior of LPE's, because it will change appearance in old files when opened in new version of Inkscape (but not in any other SVG viewer or editor).  However, when an effect is really broken, we have to fix it:&lt;br /&gt;
&lt;br /&gt;
* The Pattern Along Path effect used to stretch the pattern across discontinuities. This has been fixed; now it treats a discontinuous path as a group of continuous paths and applied the effect separately to each.&lt;br /&gt;
&lt;br /&gt;
==New effects==&lt;br /&gt;
&lt;br /&gt;
* '''Sketch''': Simulates hand-drawn lines. A set of paramters let you tune the effect. They are all sumerized in this [[:Image:SketchParameters.png|picture]]. &lt;br /&gt;
&lt;br /&gt;
:[[Image:SketchExemple.png|300px]]&lt;br /&gt;
&lt;br /&gt;
* '''von Koch''': This effect creates fractal pictures (example). To the input shape are added some transformed (rotated/scaled/slanted) copies of it, and then copies of the copies, etc... to get the final shape. The transforms are defined via a path. &lt;br /&gt;
:[[Image:VonKochExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''Warning'': the complexity of the output path grows exponentially fast with the number of generations. As a guardrail, an (editable) complexity bound is provided, above which the effect is disabled.&lt;br /&gt;
&lt;br /&gt;
* '''Knot''': Creates a knot from a flat self intersecting curve. At each crossing, one string is interrupted to make it look like going under the other. The &amp;quot;sign&amp;quot; of each crossing can be set independantly. &lt;br /&gt;
:[[Image:KnotExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''Known limitation'': can not be applied to groups nor be shared by different objects.&lt;br /&gt;
&lt;br /&gt;
* '''Perspective paths''': Draw an arbitrary path as if viewed in perspective. This is work in progress. Known limitations (among others): It can only use the first perspective that exists in the document defs, and the perspective cannot be adapted interactively yet (the effect must be removed and reapplied after modifying the perspective). [max]&lt;br /&gt;
&lt;br /&gt;
* '''Spiro splines''' are a novel way of defining curvilinear paths [http://www.levien.com/spiro/ developed by Raph Levien]. It takes some getting used to, but for certain tasks (such as lettershape design) Spiros have a clear advantage over Bezier curves. Recently, Spiro support was added to the FontForge font editor; now it is available in Inkscape too, which means you can use all the convenient Inkscape path tools (moving and transforming groups of nodes, node sculpting, etc.) on Spiro paths.&lt;br /&gt;
&lt;br /&gt;
:A Spiro path is defined by a sequence of points, but unlike a regular path with Bezier curves, all Spiro points lie on the path and there are no off-path handles. The curvature of the path is defined entirely by the positions of the points and their types. The path behaves very similar to a springy rod which is forced to pass through the given points and which uses the minimum possible curvature to satisfy the requirement. As such, it feels quite natural and the resulting path is very smooth - not just superficially smooth (i.e. having no cusps), but smooth at a deeper level, which you can achieve with Beziers only after a lot of laborious tweaking. &lt;br /&gt;
&lt;br /&gt;
:To create a Spiro path, select any path and assign the &amp;quot;Spiro spline&amp;quot; path effect to it. There are no parameters. Each node of your path becomes a point of a Spiro path, depending on the type of node:&lt;br /&gt;
&lt;br /&gt;
:* Smooth nodes (those with two collinear Bezier handles; use Shift+S to make a node smooth) become smooth curve points of the Spiro path. Note that the length or direction of the Bezier handles of the source path is ignored; the only thing that matters is their collinearity.&lt;br /&gt;
&lt;br /&gt;
:* Cusp nodes of the source path become corner points of the Spiro path, like free hinges on the springy rod. Between two corner points, the path is always a straight line. To make a node cusp, retract its Bezier handles by Ctrl+click, or press Shift+C and move one of the handles so they are no longer collinear.&lt;br /&gt;
&lt;br /&gt;
:* Half-smooth nodes - those with one Bezier handle collinear with a straight line segment on the other hand - become &amp;quot;left&amp;quot; or &amp;quot;right&amp;quot; points on the Spiro path which behave exactly the same: they sit between a straight line and a curve and enforce that these two segments join smoothly without a cusp. To create such a node, make sure one of the segments is a line (select its ends and press Shift+L), then Ctrl+drag the remaining handle to make it snap to the direction of the straight line segment on the other side, or press Shift+S to lock it to that direction.&lt;br /&gt;
&lt;br /&gt;
:Note that what matters is the actual collinearity of a node's handles, regardless of the node type that the node has in the Node tool; for example, if a node designated as cusp (diamond-shaped) has collinear handles, it will become a smooth curve point of the Spiro path. &lt;br /&gt;
&lt;br /&gt;
:Some configurations of points do not converge and produce wild loops and spirals instead of a smooth curve. According to Raph, &amp;quot;The spline solver in this release is _not_ numerically robust. When you start drawing random points, you'll quickly run into divergence. However, &amp;quot;sensible&amp;quot; plates based on real fonts usually converge.&amp;quot; Avoid too sharp changes in direction between points to prevent divergence. Hopefully, the robustness of the algorithm will be improved in future releases.&lt;br /&gt;
&lt;br /&gt;
:For now, to edit Spiro paths viewing the result in real time, you have to use the Node tool; it is recommended to turn off the red highlight of the source path as it is a distraction. The Pen tool does not yet allow you to preview a Spiro as you draw, although you can paste the Spiro effect on the path and see the result as soon as the path is finalized. &lt;br /&gt;
&lt;br /&gt;
:You can always use the Node tool to continue a Spiro path by duplicating and dragging away its end nodes. Also, when you have a Spiro path selected, you can add a new subpath to it with Pen or Pencil if you start drawing with Shift.&lt;br /&gt;
&lt;br /&gt;
* '''Construct Grid'''  [johan]&lt;br /&gt;
&lt;br /&gt;
* '''Perpendicular bisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''AngleBisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Tangent to a curve''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle through 3 points''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle with radius''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Envelope Deformation''' allows the user to deform an object (or a group of object) by deforming its sides. Modifications are done by deforming the 4 Path parameters : Top and Bottom, Left and Right.&lt;br /&gt;
&lt;br /&gt;
* '''Lattice Deformation''' allows the user to deform an object (or a group of object) by moving 16 control points.&lt;br /&gt;
&lt;br /&gt;
* '''Ruler''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Freehand Shape''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Interpolate Subpaths''': [Johan]&lt;br /&gt;
&lt;br /&gt;
* '''Path Length''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Text Label''': [max]&lt;br /&gt;
&lt;br /&gt;
==New features==&lt;br /&gt;
* The '''Paste Path Effect''' command is enabled to assign the path effect of the clipboard to any number of paths, going recursively into groups if necessary.&lt;br /&gt;
&lt;br /&gt;
* A new command, '''Remove path effect''' removes any path effects from all selected objects, going recursively into groups if necessary. &lt;br /&gt;
&lt;br /&gt;
* Along with the commands to open the path effects dialog and to paste path effects, the three commands were collected in a submenu under Path menu.&lt;br /&gt;
&lt;br /&gt;
* Live path effects can now be assigned to the sides of a 3D box (use Ctrl+click to select individual sides).&lt;br /&gt;
&lt;br /&gt;
* The Pen and Pencil tools now correctly work with paths with LPEs: you can continue such a path or add a new subpath to it by drawing with Shift, all preserving the effect applied to it.&lt;br /&gt;
&lt;br /&gt;
* Path type parameters can now link to existing shapes &amp;lt;b&amp;gt;and text&amp;lt;/b&amp;gt;, like clones do. Now it is possible to use text as input for the Pattern Along Path effect for example!&lt;br /&gt;
&lt;br /&gt;
* Lib2geom now has an implementation for EllipticalArc. For Inkscape, this means that it is now possible to directly copy-paste ellipse shapes on path parameters (e.g. 'pattern' in Pattern along Path), without the need to convert the ellipse object to path first. [needs coding and checking]&lt;br /&gt;
&lt;br /&gt;
==Live Path Effects for groups==&lt;br /&gt;
&lt;br /&gt;
LPE can now be assigned to a group. For most LPE, the effect is applied recursively but for Bend Path or Deformations the result is more powerful : the distortion applies on the whole group. &lt;br /&gt;
&lt;br /&gt;
*You can as usual enter the group by double-clicking on it. &lt;br /&gt;
*It applies recursively, this means that a LPE can be assigned to groups of groups &lt;br /&gt;
*The Effect can be applied definitively with &amp;quot;Convert Object to path&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Live Path Effects stacking==&lt;br /&gt;
&lt;br /&gt;
With Live Path Effects stacking, more than one Live Path Effect can be assigned to an item. A new UI was created to control the stack.&lt;br /&gt;
&lt;br /&gt;
=Import/Export=&lt;br /&gt;
==PostScript and EPS import==&lt;br /&gt;
&lt;br /&gt;
Inkscape's capability to open or import PS and EPS files now uses Ghostscript instead of pstoedit. If you need to open files of these types, install Ghostscript and make sure the directory with ps2pdf from Ghostscript installation is in your PATH. On opening, you will see a preferences dialog which, for multipage PS files, allows you to select the page to open.&lt;br /&gt;
&lt;br /&gt;
==PostScript and EPS export==&lt;br /&gt;
&lt;br /&gt;
The new PS and EPS exporter uses cairo and provides a much better support for various vector features, including '''clipping paths''', '''patterns''', and '''non-ASCII characters'''. Those features that are not supported by the Postscript language, such as transparency, are exported via rasters embedded into Postscript.&lt;br /&gt;
&lt;br /&gt;
==Corel DRAW files import==&lt;br /&gt;
&lt;br /&gt;
Now Inkscape can import more Corel DRAW files of following types:&lt;br /&gt;
&lt;br /&gt;
* Corel DRAW Compressed Exchange files (CCX)&lt;br /&gt;
* Corel DRAW 7-X4 Template files (CDT)&lt;br /&gt;
* Corel DRAW Presentation Exchange files (CMX)&lt;br /&gt;
&lt;br /&gt;
Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==sK1 files import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import sK1 files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==CGM import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import Computer Graphics Metafile (CGM) files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==PDF export==&lt;br /&gt;
&lt;br /&gt;
The new PDF exporter correctly translates into PDF '''clipping paths''' and '''patterns''' (requires a recent version of cairo).&lt;br /&gt;
&lt;br /&gt;
With PDF export, it is now possible to make the PDF page the size of the entire drawing, instead of the same as SVG page as before, by the &amp;quot;Export drawing, not page&amp;quot; checkbox in PDF export options. Also, you can export a single object from a complex document to PDF if you specify the ID of that object in the &amp;quot;Limit export to the object with ID&amp;quot; field; the page of such PDF will be the same size as the bounding box of that object and will show only that object (all others will be hidden).&lt;br /&gt;
&lt;br /&gt;
The same capabilities are available from the command line by using &amp;lt;code&amp;gt;--export-area-drawing&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--export-id=ID&amp;lt;/code&amp;gt; parameters with &amp;lt;code&amp;gt;--export-pdf&amp;lt;/code&amp;gt; (previously, they only worked for PNG export).&lt;br /&gt;
&lt;br /&gt;
==PDF import from the command line==&lt;br /&gt;
&lt;br /&gt;
Now you can use, for example,&lt;br /&gt;
&lt;br /&gt;
 inkscape file.pdf --export-plain-svg=file.svg&lt;br /&gt;
&lt;br /&gt;
It will take the first page of the PDF and all the default import options, and save the result to SVG. (Before, it crashed because it tried to open the PDF import preferences dialog and could not do it in the command line mode.) If you try to import PDF without an &amp;lt;code&amp;gt;--export&amp;lt;/code&amp;gt; command, it will show the prefs dialog as before and open the file in the UI.&lt;br /&gt;
&lt;br /&gt;
==HPGL export==&lt;br /&gt;
&lt;br /&gt;
Inkscape can now export to HPGL (Hewlett-Packard Graphics Language). It is a file format that is used for various cutters/plotters.&lt;br /&gt;
&lt;br /&gt;
==JavaFX export==&lt;br /&gt;
&lt;br /&gt;
[]&lt;br /&gt;
&lt;br /&gt;
==DXF export==&lt;br /&gt;
&lt;br /&gt;
DXF export is much faster than in previous versions.&lt;br /&gt;
&lt;br /&gt;
= Autosave =&lt;br /&gt;
&lt;br /&gt;
Autosave has now been added to allow for automatic timed backups as work goes on. Saved versions are put in a designated directory and do not overwrite the original SVG file and each other. Go to Inkscape Preferences, Autosave tab, to enable this feature and specify the backup time interval, the directory, and the maximum number of saved backups (if this number is exceeded, old backups will start to be deleted).&lt;br /&gt;
&lt;br /&gt;
=Extension effects=&lt;br /&gt;
==New and improved effects==&lt;br /&gt;
&lt;br /&gt;
* The new '''Arrange &amp;gt; Restack''' extension restacks the Z-order of selected objects, from left to right, top to bottom (or vice versa), with radial outward or inward or by an arbitrary angle, specifying the base point for comparison (top, left, middle, etc.).&lt;br /&gt;
* The improved '''Modify Path &amp;gt; Add Nodes''' extension now also allows segments to be divided into a given number of subsegments.&lt;br /&gt;
* The new '''Render &amp;gt; Alphabet Soup''' extension is a vector rework of Matt Chrisholm's GPLed script [http://www.theory.org/artprojects/alphabetsoup/main.html]. Alphabet Soup randomly mashes glyph-elements together to make exotic looking text.&lt;br /&gt;
* The new '''Render &amp;gt; Cartesian Grid''' extension plots Cartesian (square) grids that do not fill the page, but offer three levels of division, logarithmic scales (with clutter-reduction and arbitrary base) and customisable line width. All like elements (eg x-axis subminor divisions) are put into subgroups together. A proper border is also drawn, with an independent line thickness.&lt;br /&gt;
* The new '''Render &amp;gt; Polar Grid''' extension plots a polar co-ordinate grid, with options for arbitrary-base logarithmic subdivisions, clutter-reduction around the origin, circumferential labels and custom line widths.&lt;br /&gt;
* The new '''Text &amp;gt; Convert to Braille''' extension recodes English (or just Latin letters) text to [http://en.wikipedia.org/wiki/Braille Braille] code created for visually impaired people.&lt;br /&gt;
* [preset filter effects]&lt;br /&gt;
&lt;br /&gt;
==API changes==&lt;br /&gt;
&lt;br /&gt;
While the &amp;quot;Live preview&amp;quot; checkbox is useful for most effects, for some it just does not make sense. Now, you can add the attribute &amp;lt;code&amp;gt;needs-live-preview=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;effect&amp;lt;/code&amp;gt; element in the .inx file of the effect to suppress this checkbox for your effect.&lt;br /&gt;
&lt;br /&gt;
Parameters passed to extensions (via the &amp;lt;param&amp;gt; element) now have a new boolean attribute - &amp;lt;code&amp;gt;gui-hidden&amp;lt;/code&amp;gt; to indicate that the parameter should not be represented in the GUI. If all parameters are marked as hidden no GUI is presented for such extension.&lt;br /&gt;
&lt;br /&gt;
All '''.inx''' files are now properly formatted XML files with its own namespace of: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.inkscape.org/namespace/inkscape/extension&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and a Relax NG schema to define it. More information can be found in the [[Extensions]] Article.&lt;br /&gt;
&lt;br /&gt;
=SVG output=&lt;br /&gt;
&lt;br /&gt;
==Optimized CSS properties==&lt;br /&gt;
&lt;br /&gt;
* As a file size optimization, Inkscape does not write into SVG some of the stroke properties if the object has &amp;lt;code&amp;gt;stroke:none&amp;lt;/code&amp;gt; and some of the fill properties when it has &amp;lt;code&amp;gt;fill:none&amp;lt;/code&amp;gt;. The only situation where this might affect you is if you remove stroke from an object and then turn it back on - the object will get the default stroke instead of the same it had before. &lt;br /&gt;
&lt;br /&gt;
:Also, in manually-edited SVG where a parent group has no stroke but sets some stroke properties to be inherited by its descendants, you will need to set stroke property to other than none on the group, and suppress inheritance with stroke:none on those children that don't need it.&lt;br /&gt;
&lt;br /&gt;
:Specifically, if stroke:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 stroke-width&lt;br /&gt;
 stroke-linecap&lt;br /&gt;
 stroke-linejoin&lt;br /&gt;
 stroke-miterlimit&lt;br /&gt;
 stroke-opacity&lt;br /&gt;
 stroke-dasharray&lt;br /&gt;
 stroke-dashoffset&lt;br /&gt;
&lt;br /&gt;
:Note that this does not include marker properties, which means you can still have markers on a path without visible stroke.&lt;br /&gt;
&lt;br /&gt;
:If fill:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 fill-opacity&lt;br /&gt;
 fill-rule&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;opacity&amp;lt;/code&amp;gt; property is not written if it has the default value of 1 (this property is not inherited, so the change should have no side effects).&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;marker-start&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;marker-mid&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;marker-end&amp;lt;/code&amp;gt; properties are not written if the &amp;lt;code&amp;gt;marker&amp;lt;/code&amp;gt; property is already present with the same value.&lt;br /&gt;
&lt;br /&gt;
==Optimized path data==&lt;br /&gt;
&lt;br /&gt;
In this version, the size of the path data written in the &amp;lt;code&amp;gt;d=&amp;lt;/code&amp;gt; attribute of &amp;lt;code&amp;gt;path&amp;lt;/code&amp;gt; elements is reduced by about 10%. Inkscape generates the shortest possible path strings by avoiding repeated operators and using relative coordinates (when it helps).&lt;br /&gt;
&lt;br /&gt;
This is controlled by the '''SVG output''' page of Inkscape Preferences dialog, as well as the following attributes in &amp;lt;code&amp;gt;group id=&amp;quot;svgoutput&amp;quot;&amp;lt;/code&amp;gt; in your preferences.xml file:&lt;br /&gt;
&lt;br /&gt;
* allowrelativecoordinates (default 1) to switch relative coordinates on (1) or off (0)&lt;br /&gt;
* forcerepeatcommands (default 0) to force repeating operators (1) or allow use of the more compact representation without repeated operators (0)&lt;br /&gt;
&lt;br /&gt;
==No more explicit closing line segment==&lt;br /&gt;
Inkscape used to always explicitly write the closing line segment to SVG for closed paths. For example: &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 L 0,0 z&amp;quot;. With the improved SVG path data writing, Inkscape no longer generates this closing line segment, resulting in &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 z&amp;quot;.&lt;br /&gt;
When SVG path data input contains this explicit closing segment, it is maintained throughout transformations, but is removed after using the node edit tool.&lt;br /&gt;
[this seems no longer to be true, fix it!!! -johan]&lt;br /&gt;
&lt;br /&gt;
==Horizontal and vertical path segments==&lt;br /&gt;
&lt;br /&gt;
If an SVG contains paths with shorthands for horizontal and vertical path segments ('H' or 'V'), then Inkscape will try to maintain those shorthands if possible, so the saved file will also contain them.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;script&amp;gt; support==&lt;br /&gt;
&lt;br /&gt;
While Inkscape does not yet support SVG scripting via the &amp;lt;script&amp;gt; element, this element is now preserved after editing the file in Inkscape.&lt;br /&gt;
&lt;br /&gt;
=Other features=&lt;br /&gt;
&lt;br /&gt;
==Shell mode==&lt;br /&gt;
&lt;br /&gt;
If you run inkscape with &amp;lt;code&amp;gt;--shell&amp;lt;/code&amp;gt;, it will enter an interactive command line shell mode. In this mode, you type in commands at the prompt and Inkscape executes them, without you having to run a new copy of Inkscape for each command. This feature is mostly useful for scripting and server uses: it adds no new capabilities but allows you to improve the speed and memory requirements of any script that repeatedly calls Inkscape to perform command line tasks (such as export or conversions). Each command in shell mode must be a complete valid Inkscape command line but without the Inkscape program name, for example:&lt;br /&gt;
&lt;br /&gt;
 $ inkscape --shell&lt;br /&gt;
 Inkscape 0.46+devel interactive shell mode. Type 'quit' to quit.&lt;br /&gt;
 &amp;gt;file.svg --export-pdf=file.pdf&lt;br /&gt;
 &amp;gt;otherfile.svg --export-png=bitmap.png&lt;br /&gt;
 Background RRGGBBAA: ffffff00&lt;br /&gt;
 Area 0:0:744.094:1052.36 exported to 744 x 1052 pixels (90 dpi)&lt;br /&gt;
 Bitmap saved as: bitmap.png&lt;br /&gt;
 &amp;gt;quit&lt;br /&gt;
&lt;br /&gt;
==Clipboard enhancements==&lt;br /&gt;
&lt;br /&gt;
The clipboard used by Inkscape is now system-wide instead of being confined to a single instance of the application. Copied elements are exported to the clipboard using all the available output formats. SVG data can be pasted into other applications supporting one of Inkscape's output formats, and SVG data provided by other applications can be pasted into Inkscape.&lt;br /&gt;
&lt;br /&gt;
If you copy a string that can be interpreted as a hexadecimal color specification, i.e. 2f7ab4 or #014522b0, and then paste it into Inkscape, the fill of the selected objects will change to the given color. This is especially useful when working with HTML pages.&lt;br /&gt;
&lt;br /&gt;
==Masks and clipping paths==&lt;br /&gt;
&lt;br /&gt;
[editable in node tool - johan]&lt;br /&gt;
&lt;br /&gt;
==Stroke width changeable by dragging==&lt;br /&gt;
&lt;br /&gt;
[bbyak]&lt;br /&gt;
&lt;br /&gt;
==Enhanced tablet support==&lt;br /&gt;
&lt;br /&gt;
===Input device tool switching===&lt;br /&gt;
&lt;br /&gt;
Tablets and other input devices that report separate hardware are now recognized and current tool and/or settings can be set to switch in response to the physical tool being used.&lt;br /&gt;
&lt;br /&gt;
===Extended input device configuration===&lt;br /&gt;
&lt;br /&gt;
The stock Input Devices dialog has been replaced with a completely redone version that provides a more useful representation of settings. It also contains a simple area for testing different inputs of different devices.&lt;br /&gt;
&lt;br /&gt;
Additionally hardware setup itself has been separated from general settings to allow for easier dynamic switching of settings appropriate to the task at hand.&lt;br /&gt;
&lt;br /&gt;
==Layers==&lt;br /&gt;
&lt;br /&gt;
===Show/hide other layers===&lt;br /&gt;
&lt;br /&gt;
The layers dialog now allows for hiding or showing all layers other than the current layer. This &amp;quot;solo&amp;quot; feature allows for faster switching between working layers and for quick checking with and without others shown.&lt;br /&gt;
&lt;br /&gt;
===Duplicate Layer command===&lt;br /&gt;
&lt;br /&gt;
A new command has been added to the layers menus to allow for duplicating an existing layer with all of its objects.&lt;br /&gt;
&lt;br /&gt;
==External image editing and reload==&lt;br /&gt;
&lt;br /&gt;
Linked bitmaps have a context menu option to launch editing in an external application. Linked images now will reload when the linked file changes on disk. Both the external editor application and the reload behavior can be controlled by user preferences.&lt;br /&gt;
&lt;br /&gt;
==Command for relinking clones==&lt;br /&gt;
&lt;br /&gt;
A new command, '''Relink Clone to Copied''' in ''Edit &amp;gt; Clone'', allows you to relink any clone to a different original object without changing its other properties. Just copy (Ctrl+C) the object you want to be the new original, select any number of clones, and choose the Relink command. Now all selected clones are linked to the copied object.&lt;br /&gt;
&lt;br /&gt;
==Auto relinking clones on Duplicate==&lt;br /&gt;
&lt;br /&gt;
If you turn on the '''When duplicating original+clones: Relink duplicated clones''' option on Clones tab of Inkscape Preferences (default is off), duplicating a selection containing both a clone and its original (possibly in groups) will relink the duplicated clone to the duplicated original instead of the old original.&lt;br /&gt;
&lt;br /&gt;
==Pattern editing==&lt;br /&gt;
&lt;br /&gt;
When editing pattern fills:&lt;br /&gt;
* The pattern origin and scale handles now snap.&lt;br /&gt;
* The pattern scaling can now be different in X and Y direction. Press '''Ctrl''' to have a fixed 1:1 ratio scaling (old behavior).&lt;br /&gt;
* The handles are now positioned at the corners  of the unit cell, instead of only a quarter of that cell as before. So, now a rectangle filled with pattern will have all of the pattern handles in the corners, making it harder to manipulate them. However, the handles can be dragged outside the rectangle by moving the pattern's origin handle.&lt;br /&gt;
&lt;br /&gt;
==Transform dialog: spacing out option==&lt;br /&gt;
&lt;br /&gt;
Previously, the '''Apply to each object separately''' checkbox had no effect for the '''Move''' tab. Now, if several objects are selected, this checkbox is on, and &amp;quot;Relative move&amp;quot; is on, each object is shifted relative to the closest selected object on the left (for X) or below (for Y). &lt;br /&gt;
&lt;br /&gt;
For example, if you have a horizontal row of objects and you move them relatively by X=5px with &amp;quot;Apply to each object separately&amp;quot; on, the leftmost object will shift by 5px, the next one to the right by 10px, and so on; the rightmost selected object is displaced by 5*n px where n is the number of selected objects.  As a result, the distance in each pair of adjacent objects will increase by 5px and the whole row will be spaced out, much like a letterspacing adjustment spaces out a text string. Moving these objects by X=-5px will, conversely, squeeze them tighter together: the leftmost will move by -5px, the next one by -10px, and so on. For Y, the effect is the same except that the move starts from the object closest to the bottom (i.e. with smallest Y coordinate). &lt;br /&gt;
&lt;br /&gt;
When determining the order of shifting objects, for X, the left edges of their bounding boxes are sorted horizontally, and for Y, the bottoms of their bounding boxes are sorted vertically. Order of selecting the objects or z-order does not matter.&lt;br /&gt;
&lt;br /&gt;
=User interface=&lt;br /&gt;
&lt;br /&gt;
==Filters can be disabled==&lt;br /&gt;
In order to facilitate editing documents that use lots of SVG filter effects, filter effects can now be disabled for a particular document window by selecting '''View|Display mode|No Filters''' from its menu.  This provides an intermediate step between &amp;quot;normal&amp;quot; and &amp;quot;outline&amp;quot; view modes.&lt;br /&gt;
&lt;br /&gt;
The Toggle view command in the Display mode submenu (Ctrl+keypad 5) toggles between the outline view and either regular or no-filters view, depending on which was used most recent.&lt;br /&gt;
&lt;br /&gt;
==Native file dialogs for Windows==&lt;br /&gt;
The windows builds of inkscape now have Windows-native file dialogs to keep consistency with other windows applications.&lt;br /&gt;
&lt;br /&gt;
==Inkscape Preferences dialog==&lt;br /&gt;
&lt;br /&gt;
This dialog has been rearranged for more logical grouping of options. New pages has been added: Bitmaps (options for the new update-on-file-change and external editor features), UI (options for toolbar icon sizes), and SVG Output (options for SVG formatting, introduced in 0.46 and now editable from the dialog as well). &lt;br /&gt;
&lt;br /&gt;
A new option on the Bitmaps tab, '''Resolution for Create Bitmap Copy''', allows you to set the resolution of the bitmap created by the corresponding command (by default bound to Alt+B). The default value of 90 dpi forces the resulting bitmap to align with the default 1px-spaced grid on the canvas.&lt;br /&gt;
&lt;br /&gt;
There is a new option on the Interface tab, '''Zoom correction factor''', which displays an adjustable ruler. Move the slider until the ruler's on-screen size matches its true size. The resulting conversion factor is used internally when zooming to 1:1 etc. such that objects are displayed in their true size.&lt;br /&gt;
&lt;br /&gt;
== Align and Distribute dialog ==&lt;br /&gt;
&lt;br /&gt;
There is now an option to treat all selected objects as a group when aligning (this spares the user the trouble to manually group them, align, and ungroup afterwards).&lt;br /&gt;
&lt;br /&gt;
==Dropper tool==&lt;br /&gt;
&lt;br /&gt;
The confusing icons on buttons in the controls bar of the Dropper tool (pick/assign opacity) are replaced by text labels.&lt;br /&gt;
&lt;br /&gt;
==Swatches==&lt;br /&gt;
&lt;br /&gt;
Hovering over a swatch now shows the name of the swatch in the status bar. This makes it easier for tablet users to identify a swatch by name, as holding a stylus still enough to show a tool tip is difficult.&lt;br /&gt;
&lt;br /&gt;
==Toolbars==&lt;br /&gt;
&lt;br /&gt;
* The toolbar icon sizes for the three main toolbars are now separately configurable and to a few different sizes. This allows users to get a smaller UI on certain systems, including Ubuntu.&lt;br /&gt;
&lt;br /&gt;
* The main tools toolbar has been converted to a standard GtkToolbar, removing the problem of it pushing the main window taller. Tools that don't fit automatically flow into a popup menu.&lt;br /&gt;
&lt;br /&gt;
* When torn off, toolbars now keep the size they last had in the main window. They can be resized by docking, sizing the main window, and then undocking agin.&lt;br /&gt;
&lt;br /&gt;
* Some controls (such as the Width in Calligraphic/Tweak/Eraser tools, Tremor, Wiggle, and Mass in Calligraphic, Threshold in Paintbucket, Tolerance in Pencil) are converted from numeric editable fields into draggable sliders, with labels and values (usually in the range 0..100) displayed on top. As these values don't usually require much precision, this makes adjusting them much easier and faster.&lt;br /&gt;
&lt;br /&gt;
==Title and Description==&lt;br /&gt;
&lt;br /&gt;
* [the Title and Description fields on the Object Properties dialog - sas]&lt;br /&gt;
&lt;br /&gt;
==Clone/original visualization==&lt;br /&gt;
&lt;br /&gt;
When you press Shift+D to find and select the original of the selected clone, Inkscape draws a dashed line between the centers of the bounding boxes of the clone and the original. This line disappears after one second.&lt;br /&gt;
&lt;br /&gt;
=Grids, guides, snapping=&lt;br /&gt;
&lt;br /&gt;
==Grids==&lt;br /&gt;
* The dotted rectangular grid now shows small crosses at the intersection points of emphasis lines.&lt;br /&gt;
&lt;br /&gt;
==Guides==&lt;br /&gt;
&lt;br /&gt;
There is now an option to treat groups as single objects during conversion to guides (as opposed to converting each object inside the group separately).&lt;br /&gt;
&lt;br /&gt;
==Snapping==&lt;br /&gt;
Snapping has been implemented or improved in these areas:&lt;br /&gt;
* The '''node tool''' now snaps to any unselected node (cusp or smooth) within the path that's being edited, and to cusp nodes of other paths. It also snaps to the path itself, but only to the stationary segments in between two unselected nodes. It is now also possible to snap while moving nodes along a vertical or horizontal constraint&lt;br /&gt;
* '''Clipping paths and masks''' are now also snappable&lt;br /&gt;
* The object snapper now also allows to snap to the '''page border'''&lt;br /&gt;
* It is now possible to snap to '''intersections of paths''' (were we previously only snapped to intersections of line-segments)&lt;br /&gt;
* In the selector tool, snapping while '''skewing ''' or '''constrained translating''' have been improved&lt;br /&gt;
* When creating '''new shapes''', all of their handle points now snap&lt;br /&gt;
* In the document properties dialog, the checkbox for ''' 'always'''' snap has been replaced by two radiobuttons; this should eliminate most of the confusion surrounding this option&lt;br /&gt;
* Holding the shift-key now also disables snapping while dragging '''node-handles'''&lt;br /&gt;
* The code relating to the snapping mechanisms has undergone '''major refactoring''' to make it more reliable and easier to use from a developer's perspective&lt;br /&gt;
* Snapping to objects now uses routines from the '''2geom libraries''', which are actively maintained and are less error prone than the old Livarot libraries. This fixes at least two known snapping bugs&lt;br /&gt;
* While drawing and '''constraining to specific angles''' (using CTRL), Inkscape should now only snap to points on the constrained line.&lt;br /&gt;
* When '''pasting''', previously aligned originals will stay aligned to the grid. The code for this had to be reinvented due to the refactoring&lt;br /&gt;
&lt;br /&gt;
==Snap indicator==&lt;br /&gt;
When snapping has occurred, an indicator is displayed at that specific position. For now that indicator is just a cross that disappears in a second. In the future the shape of the indicator will be related to the type of target that has been snapped to. The snapping indicator can be disabled in the Document Properties dialog.&lt;br /&gt;
&lt;br /&gt;
=Notable bug fixes=&lt;br /&gt;
&lt;br /&gt;
* Inkscape is now able to handle paths with only 'movetos', i.e. &amp;quot;M 0,0 M 1,1 M 2,2&amp;quot;. These kind of paths can be used to only show markers on a path without the rest of the path visible.&lt;br /&gt;
&lt;br /&gt;
* The '''visual bounding box''' (which is the default bounding box type used by Inkscape) of an object with a filter applied, now includes the expanded area of the filter. For '''single blur filter''' (such as the blur you apply with a slider in the Fill and Stroke dialog), this expands the bounding box by 2.4*radius; although theoretically, blur is infinite, this is the distance at which the opacity of the object drops below the perceptibility threshold of our renderer. For all other filters, the area is expanded by the relative amounts you specify on the &amp;quot;Filter general settings&amp;quot; tab of the Filter Effects dialog.&lt;br /&gt;
&lt;br /&gt;
:Only visual bounding box is affected; if you use geometric bounding box, you will notice no change in most cases. However, the Export bitmap dialog always uses the visual bbox for selection of the export area; this means that you can now export a blurred object to bitmap without any clipping of the blur.&lt;br /&gt;
&lt;br /&gt;
* Bounding box calculation does not include the invisible objects. (#252547)&lt;br /&gt;
&lt;br /&gt;
* Several fixes allows Inkscape to correctly render and edit SVG files that use &amp;lt;code&amp;gt;currentColor&amp;lt;/code&amp;gt; in objects' style (this includes files created by gnuplot).&lt;br /&gt;
&lt;br /&gt;
* '''No more ID clashes on import and paste''': previously, importing or pasting SVG objects might sometimes distort their colors, because the imported objects referred to gradients with the same IDs as those that already exist in the document but look different. Now, IDs of all gradients in the pasted document are checked for clashes with those in the host document, and if necessary changed with all their users updated correspondingly, so such unexpected color changes will never happen.&lt;br /&gt;
&lt;br /&gt;
* '''Clipboard is system-wide''': you can now copy/paste objects between different Inkscape instances as well as between Inkscape and other applications (which must be able to handle SVG on the clipboard to use this).&lt;br /&gt;
&lt;br /&gt;
* File dialogs remember last visited directory&lt;br /&gt;
&lt;br /&gt;
* No more garbage lines in outline mode &lt;br /&gt;
&lt;br /&gt;
* No more artifacts left by the circle cursor in Tweak tool&lt;br /&gt;
&lt;br /&gt;
* The Live Path Effects '''Bend Path''' and '''Pattern along Path''' now work correctly with closed paths.&lt;br /&gt;
&lt;br /&gt;
= Previous releases =&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=File:KnotExample.png&amp;diff=36024</id>
		<title>File:KnotExample.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=File:KnotExample.png&amp;diff=36024"/>
		<updated>2008-09-22T00:32:35Z</updated>

		<summary type="html">&lt;p&gt;Jfb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=File:VonKochExample.png&amp;diff=36014</id>
		<title>File:VonKochExample.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=File:VonKochExample.png&amp;diff=36014"/>
		<updated>2008-09-22T00:31:54Z</updated>

		<summary type="html">&lt;p&gt;Jfb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=File:SketchParameters.png&amp;diff=36004</id>
		<title>File:SketchParameters.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=File:SketchParameters.png&amp;diff=36004"/>
		<updated>2008-09-22T00:28:15Z</updated>

		<summary type="html">&lt;p&gt;Jfb: Quickly explains Sketch lpe parameters.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Quickly explains Sketch lpe parameters.&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=File:SketchParameters.svg&amp;diff=35994</id>
		<title>File:SketchParameters.svg</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=File:SketchParameters.svg&amp;diff=35994"/>
		<updated>2008-09-22T00:22:16Z</updated>

		<summary type="html">&lt;p&gt;Jfb: Meaning of Sketch lpe parameters.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Meaning of Sketch lpe parameters.&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=35984</id>
		<title>Release notes/0.47</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=35984"/>
		<updated>2008-09-22T00:20:37Z</updated>

		<summary type="html">&lt;p&gt;Jfb: /* New effects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Inkscape 0.47= &lt;br /&gt;
'''(not released yet)'''&lt;br /&gt;
&lt;br /&gt;
=Refactoring effort=&lt;br /&gt;
&lt;br /&gt;
- many instances of SP_ACTIVE_DESKTOP were eliminated (although there still remain quite a lot to be removed)&lt;br /&gt;
&lt;br /&gt;
[mention the 'main' goal of 0.47 and list which things have been refactored and the benefits/new features/different workflow? --johan]&lt;br /&gt;
&lt;br /&gt;
- ratio of code lines and comment lines (difference with 0.46)&lt;br /&gt;
&lt;br /&gt;
- number of fixme's and todo's (difference with 0.46)&lt;br /&gt;
&lt;br /&gt;
- cairo&lt;br /&gt;
&lt;br /&gt;
- speed improvement? (LPE? bootup?)&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
&lt;br /&gt;
==Node tool==&lt;br /&gt;
&lt;br /&gt;
* [helper path display, flashing - johan]&lt;br /&gt;
* The Node tool can now edit '''clipping paths''' and '''masks''' of objects on canvas, without releasing them. If the selected object has a clipping path and mask, the corresponding buttons on the controls bar of the tool will be enabled; pressing these buttons will display the editable paths or handles of the clippath or mask. A clipping path is stroked green, a mask is stroked blue (the same colors as those used for them in Outline mode).&lt;br /&gt;
* Snapping has been improved (more details in Snapping below)&lt;br /&gt;
* When dragging a node '''handle with Ctrl''', it now snaps not only to the 15 degree increments starting from 0 and to the original handle direction, but also to the direction of the '''opposite handle''' (if it exists) or of the '''opposite line segment''' (if it is a straight line).&lt;br /&gt;
* The behavior of the buttons/shortucts that make a node smooth or cusp has been improved:&lt;br /&gt;
:* If a node is already cusp (diamond shaped), pressing Shift+C again on it will retract both its handles. As this works for any number of selected nodes, you can always retract all handles in all nodes by selecting all nodes and pressing Shift+C twice.&lt;br /&gt;
:* If a non-smooth node is next to a straight line segment, pressing Shift+S once makes it ''half-smooth'': it now has one handle aligned with that line segment. Another press of Shift+S will expand the second handle as well turning it into a full smooth node. If a node is between two curve segments, Shift+S will expand both handles as before.&lt;br /&gt;
&lt;br /&gt;
==Tweak tool==&lt;br /&gt;
&lt;br /&gt;
Several new modes are added to the Tweak tool for transforming, duplicating, and deleting selected objects using the same &amp;quot;soft brush&amp;quot; metaphor that the path editing and coloring modes use. Using these new modes, it is easy to &amp;quot;sculpt&amp;quot; scatterings of small objects, such as clone tilings, into complex and naturalistic textures.&lt;br /&gt;
&lt;br /&gt;
* '''Move mode''' moves those selected objects that are under the brush in the direction in which you move the brush. This is similar to the Push path mode, except that the Move mode affects entire objects and not parts of the paths under the brush.&lt;br /&gt;
&lt;br /&gt;
* '''Move in/out mode'''  moves those selected objects that are under the brush towards the cursor (default) or away from cursor (with '''Shift''' pressed). This is similar to the Attract/repel path mode, except that the Move in/out mode affects entire objects and not parts of the paths under cursor.&lt;br /&gt;
&lt;br /&gt;
* '''Move jitter mode''' moves those selected objects that are under the brush in random directions and by random amounts, but the overall amount of movement depends on Force, pen pressure (if you're using a tablet pen), on the closeness of the object to the center of brush, and on how long you apply the brush.&lt;br /&gt;
&lt;br /&gt;
* '''Scale mode''' scales those selected objects that are under the brush down (by default) or up (with '''Shift''' pressed). The speed of scaling depends on Force, pen pressure (if you're using a tablet pen), on the closeness of the object to the center of brush, and on how long you apply the brush.&lt;br /&gt;
&lt;br /&gt;
* '''Rotate mode''' rotates those selected objects that are under the brush clockwise (by default) or counterclockwise (with '''Shift''' pressed). The speed of rotation depends on Force, pen pressure (if you're using a tablet pen), on the closeness of the object to the center of brush, and on how long you apply the brush. &lt;br /&gt;
&lt;br /&gt;
* '''Duplicate/delete mode''' randomly duplicates those selected objects that are under the brush (by default) or deletes them (with '''Shift''' pressed). The chance of an object to be duplicated and deleted depends on Force, pen pressure (if you're using a tablet pen), on the closeness of the object to the center of brush, and on how long you apply the brush. As with regular Duplicate command, duplicating with Tweak tool places the copies right over the originals, and you may need to use the Move jitter mode to ruffle them apart. &lt;br /&gt;
&lt;br /&gt;
:Note that the duplicates created by the tool are not automatically added to selection and therefore are out of reach for further tweaking until you manually select them. To work around this, group all the objects you are working on and select the group. All Tweak modes will work with individual objects inside the group, and any objects created by the Duplicate mode will also be part of that selected group and therefore immediately tweakable.&lt;br /&gt;
&lt;br /&gt;
Also, the existing path editing modes of the tool have been rearranged: now Shrink and Grow are one mode (shrinks by default, grows with Shift), and Attract and Repel are one mode (attracts by default, repels with Shift). Here is a complete list of modes and shortcuts of the Tweak tool:&lt;br /&gt;
&lt;br /&gt;
 Shift+m, Shift+0	        move mode&lt;br /&gt;
 Shift+i, Shift+1	move in/out mode&lt;br /&gt;
 Shift+z, Shift+2	move jitter mode&lt;br /&gt;
 Shift+&amp;lt;, Shift+&amp;gt;, Shift+3	scale mode&lt;br /&gt;
 Shift+[, Shift+], Shift+4	rotate mode&lt;br /&gt;
 Shift+d, Shift+5	duplicate/delete mode&lt;br /&gt;
 Shift+p, Shift+6	push path mode&lt;br /&gt;
 Shift+s, Shift+7	shrink/grow path mode&lt;br /&gt;
 Shift+a, Shift+8	attract/repel path mode&lt;br /&gt;
 Shift+r, Shift+9	roughen mode&lt;br /&gt;
 Shift+c	        color paint mode&lt;br /&gt;
 Shift+j	        color jitter mode&lt;br /&gt;
&lt;br /&gt;
==Calligraphy tool ==&lt;br /&gt;
&lt;br /&gt;
[presets - Aubanel]&lt;br /&gt;
&lt;br /&gt;
==Paint Bucket tool==&lt;br /&gt;
* Paint Bucket is now more tightly integrated with potrace.  As a result, memory and CPU usage on each fill operation have been reduced significantly.&lt;br /&gt;
&lt;br /&gt;
==Eraser Tool==&lt;br /&gt;
A new eraser tool has been added. It has two main modes:&lt;br /&gt;
&lt;br /&gt;
* Delete-mode where any shape touched by the tool is deleted completely. This operation is in line with &amp;quot;vector&amp;quot; editing.&lt;br /&gt;
* Cut mode where erasing acts similar to erasing in a standard bitmap editor.&lt;br /&gt;
&lt;br /&gt;
Cut mode works for both selected and not selected objects.&lt;br /&gt;
&lt;br /&gt;
==Pen and Pencil==&lt;br /&gt;
&lt;br /&gt;
Apart from the regular Bezier mode, the pen tool now provides several new modes:&lt;br /&gt;
&lt;br /&gt;
* '''Spiro mode''': This mode automatically applies the new Spiro Splines LPE (see the section on new effects) to any newly drawn path. As mentioned below, it is not yet possible to preview Spiros before the path is finished.&lt;br /&gt;
&lt;br /&gt;
* '''Zigzag mode''': This mode makes it easy to draw many straight line segments in quick succession by disallowing curves (even when the user drags with the mouse).&lt;br /&gt;
&lt;br /&gt;
* '''Paraxial mode''': In this mode, the user can only create straight line segments that are parallel to one of the coordinate axes. Normally, each line segment is drawn perpendicular to the previous one. The direction of the line segment being drawn can be toggled with Shift. When clicking on the start anchor, the path is closed with an L-shaped segment (the direction of which can also be flipped with Shift).&lt;br /&gt;
&lt;br /&gt;
Furthermore, it is now possible to automatically apply predefined vector brushes to path strokes in pen and pencil tools. This is a first step towards [http://wiki.inkscape.org/wiki/index.php/Vector-brushes this blueprint].&lt;br /&gt;
&lt;br /&gt;
In Pencil tool, the controls bar now provides the '''Smoothing''' parameter, changeable in the range from 1 to 100, which controls how much smoothing is applied to the freehand line. Small Smoothing values produce rough lines with many nodes; large values give smooth lines with few nodes. (Previously, this control was only available in Inkscape Preferences.)&lt;br /&gt;
&lt;br /&gt;
==Text tool==&lt;br /&gt;
&lt;br /&gt;
When editing multiline or flowed text, the '''PgUp''' and '''PgDn''' keys now work to move the cursor by one screen (i.e. by as many lines as fit into the screen at current zoom).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Live path effects=&lt;br /&gt;
== Notable bug fixes and effect changes==&lt;br /&gt;
We try to refrain from changing the behavior of LPE's, because it will change appearance in old files when opened in new version of Inkscape (but not in any other SVG viewer or editor).  However, when an effect is really broken, we have to fix it:&lt;br /&gt;
&lt;br /&gt;
* The Pattern Along Path effect used to stretch the pattern across discontinuities. This has been fixed; now it treats a discontinuous path as a group of continuous paths and applied the effect separately to each.&lt;br /&gt;
&lt;br /&gt;
==New effects==&lt;br /&gt;
&lt;br /&gt;
* '''Sketch''': Simulates hand-drawn lines (example). A bunch of paramters let you tune the effect. They are all sumerized in this [[:Image:SketchParameters.png|picture]]. &lt;br /&gt;
&lt;br /&gt;
:[[Image:SketchExemple.png|300px]]&lt;br /&gt;
&lt;br /&gt;
* '''von Koch''': This effect creates fractal pictures (example). To the input shape are added some transformed (rotated/scaled/slanted) copies of it, and then copies of the copies, etc... to get the final shape. The transforms are defined via a path. &lt;br /&gt;
:[[Image:VonKochExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''Warning'': the complexity of the output path grows exponentially fast with the number of generations. As a guardrail, an (editable) complexity bound is provided, above which the effect is disabled.&lt;br /&gt;
&lt;br /&gt;
* '''Knot''': Creates a knot from a flat self intersecting curve. At each crossing, one string is interrupted to make it look like going under the other. The &amp;quot;sign&amp;quot; of each crossing can be set independantly. &lt;br /&gt;
:[[Image:KnotExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''Known limitation'': can not be applied to groups nor be shared by different objects.&lt;br /&gt;
&lt;br /&gt;
* '''Perspective paths''': Draw an arbitrary path as if viewed in perspective. This is work in progress. Known limitations (among others): It can only use the first perspective that exists in the document defs, and the perspective cannot be adapted interactively yet (the effect must be removed and reapplied after modifying the perspective). [max]&lt;br /&gt;
&lt;br /&gt;
* '''Spiro splines''' are a novel way of defining curvilinear paths [http://www.levien.com/spiro/ developed by Raph Levien]. It takes some getting used to, but for certain tasks (such as lettershape design) Spiros have a clear advantage over Bezier curves. Recently, Spiro support was added to the FontForge font editor; now it is available in Inkscape too, which means you can use all the convenient Inkscape path tools (moving and transforming groups of nodes, node sculpting, etc.) on Spiro paths.&lt;br /&gt;
&lt;br /&gt;
:A Spiro path is defined by a sequence of points, but unlike a regular path with Bezier curves, all Spiro points lie on the path and there are no off-path handles. The curvature of the path is defined entirely by the positions of the points and their types. The path behaves very similar to a springy rod which is forced to pass through the given points and which uses the minimum possible curvature to satisfy the requirement. As such, it feels quite natural and the resulting path is very smooth - not just superficially smooth (i.e. having no cusps), but smooth at a deeper level, which you can achieve with Beziers only after a lot of laborious tweaking. &lt;br /&gt;
&lt;br /&gt;
:To create a Spiro path, select any path and assign the &amp;quot;Spiro spline&amp;quot; path effect to it. There are no parameters. Each node of your path becomes a point of a Spiro path, depending on the type of node:&lt;br /&gt;
&lt;br /&gt;
:* Smooth nodes (those with two collinear Bezier handles; use Shift+S to make a node smooth) become smooth curve points of the Spiro path. Note that the length or direction of the Bezier handles of the source path is ignored; the only thing that matters is their collinearity.&lt;br /&gt;
&lt;br /&gt;
:* Cusp nodes of the source path become corner points of the Spiro path, like free hinges on the springy rod. Between two corner points, the path is always a straight line. To make a node cusp, retract its Bezier handles by Ctrl+click, or press Shift+C and move one of the handles so they are no longer collinear.&lt;br /&gt;
&lt;br /&gt;
:* Half-smooth nodes - those with one Bezier handle collinear with a straight line segment on the other hand - become &amp;quot;left&amp;quot; or &amp;quot;right&amp;quot; points on the Spiro path which behave exactly the same: they sit between a straight line and a curve and enforce that these two segments join smoothly without a cusp. To create such a node, make sure one of the segments is a line (select its ends and press Shift+L), then Ctrl+drag the remaining handle to make it snap to the direction of the straight line segment on the other side, or press Shift+S to lock it to that direction.&lt;br /&gt;
&lt;br /&gt;
:Note that what matters is the actual collinearity of a node's handles, regardless of the node type that the node has in the Node tool; for example, if a node designated as cusp (diamond-shaped) has collinear handles, it will become a smooth curve point of the Spiro path. &lt;br /&gt;
&lt;br /&gt;
:Some configurations of points do not converge and produce wild loops and spirals instead of a smooth curve. According to Raph, &amp;quot;The spline solver in this release is _not_ numerically robust. When you start drawing random points, you'll quickly run into divergence. However, &amp;quot;sensible&amp;quot; plates based on real fonts usually converge.&amp;quot; Avoid too sharp changes in direction between points to prevent divergence. Hopefully, the robustness of the algorithm will be improved in future releases.&lt;br /&gt;
&lt;br /&gt;
:For now, to edit Spiro paths viewing the result in real time, you have to use the Node tool; it is recommended to turn off the red highlight of the source path as it is a distraction. The Pen tool does not yet allow you to preview a Spiro as you draw, although you can paste the Spiro effect on the path and see the result as soon as the path is finalized. &lt;br /&gt;
&lt;br /&gt;
:You can always use the Node tool to continue a Spiro path by duplicating and dragging away its end nodes. Also, when you have a Spiro path selected, you can add a new subpath to it with Pen or Pencil if you start drawing with Shift.&lt;br /&gt;
&lt;br /&gt;
* '''Construct Grid'''  [johan]&lt;br /&gt;
&lt;br /&gt;
* '''Perpendicular bisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''AngleBisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Tangent to a curve''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle through 3 points''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle with radius''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Envelope Deformation''' allows the user to deform an object (or a group of object) by deforming its sides. Modifications are done by deforming the 4 Path parameters : Top and Bottom, Left and Right.&lt;br /&gt;
&lt;br /&gt;
* '''Lattice Deformation''' allows the user to deform an object (or a group of object) by moving 16 control points.&lt;br /&gt;
&lt;br /&gt;
* '''Ruler''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Freehand Shape''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Interpolate Subpaths''': [Johan]&lt;br /&gt;
&lt;br /&gt;
* '''Path Length''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Text Label''': [max]&lt;br /&gt;
&lt;br /&gt;
==New features==&lt;br /&gt;
* The '''Paste Path Effect''' command is enabled to assign the path effect of the clipboard to any number of paths, going recursively into groups if necessary.&lt;br /&gt;
&lt;br /&gt;
* A new command, '''Remove path effect''' removes any path effects from all selected objects, going recursively into groups if necessary. &lt;br /&gt;
&lt;br /&gt;
* Along with the commands to open the path effects dialog and to paste path effects, the three commands were collected in a submenu under Path menu.&lt;br /&gt;
&lt;br /&gt;
* Live path effects can now be assigned to the sides of a 3D box (use Ctrl+click to select individual sides).&lt;br /&gt;
&lt;br /&gt;
* The Pen and Pencil tools now correctly work with paths with LPEs: you can continue such a path or add a new subpath to it by drawing with Shift, all preserving the effect applied to it.&lt;br /&gt;
&lt;br /&gt;
* Path type parameters can now link to existing shapes &amp;lt;b&amp;gt;and text&amp;lt;/b&amp;gt;, like clones do. Now it is possible to use text as input for the Pattern Along Path effect for example!&lt;br /&gt;
&lt;br /&gt;
* Lib2geom now has an implementation for EllipticalArc. For Inkscape, this means that it is now possible to directly copy-paste ellipse shapes on path parameters (e.g. 'pattern' in Pattern along Path), without the need to convert the ellipse object to path first. [needs coding and checking]&lt;br /&gt;
&lt;br /&gt;
==Live Path Effects for groups==&lt;br /&gt;
&lt;br /&gt;
LPE can now be assigned to a group. For most LPE, the effect is applied recursively but for Bend Path or Deformations the result is more powerful : the distortion applies on the whole group. &lt;br /&gt;
&lt;br /&gt;
*You can as usual enter the group by double-clicking on it. &lt;br /&gt;
*It applies recursively, this means that a LPE can be assigned to groups of groups &lt;br /&gt;
*The Effect can be applied definitively with &amp;quot;Convert Object to path&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Live Path Effects stacking==&lt;br /&gt;
&lt;br /&gt;
With Live Path Effects stacking, more than one Live Path Effect can be assigned to an item. A new UI was created to control the stack.&lt;br /&gt;
&lt;br /&gt;
=Import/Export=&lt;br /&gt;
==PostScript and EPS import==&lt;br /&gt;
&lt;br /&gt;
Inkscape's capability to open or import PS and EPS files now uses Ghostscript instead of pstoedit. If you need to open files of these types, install Ghostscript and make sure the directory with ps2pdf from Ghostscript installation is in your PATH. On opening, you will see a preferences dialog which, for multipage PS files, allows you to select the page to open.&lt;br /&gt;
&lt;br /&gt;
==PostScript and EPS export==&lt;br /&gt;
&lt;br /&gt;
The new PS and EPS exporter uses cairo and provides a much better support for various vector features, including '''clipping paths''', '''patterns''', and '''non-ASCII characters'''. Those features that are not supported by the Postscript language, such as transparency, are exported via rasters embedded into Postscript.&lt;br /&gt;
&lt;br /&gt;
==Corel DRAW files import==&lt;br /&gt;
&lt;br /&gt;
Now Inkscape can import more Corel DRAW files of following types:&lt;br /&gt;
&lt;br /&gt;
* Corel DRAW Compressed Exchange files (CCX)&lt;br /&gt;
* Corel DRAW 7-X4 Template files (CDT)&lt;br /&gt;
* Corel DRAW Presentation Exchange files (CMX)&lt;br /&gt;
&lt;br /&gt;
Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==sK1 files import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import sK1 files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==CGM import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import Computer Graphics Metafile (CGM) files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==PDF export==&lt;br /&gt;
&lt;br /&gt;
The new PDF exporter correctly translates into PDF '''clipping paths''' and '''patterns''' (requires a recent version of cairo).&lt;br /&gt;
&lt;br /&gt;
With PDF export, it is now possible to make the PDF page the size of the entire drawing, instead of the same as SVG page as before, by the &amp;quot;Export drawing, not page&amp;quot; checkbox in PDF export options. Also, you can export a single object from a complex document to PDF if you specify the ID of that object in the &amp;quot;Limit export to the object with ID&amp;quot; field; the page of such PDF will be the same size as the bounding box of that object and will show only that object (all others will be hidden).&lt;br /&gt;
&lt;br /&gt;
The same capabilities are available from the command line by using &amp;lt;code&amp;gt;--export-area-drawing&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--export-id=ID&amp;lt;/code&amp;gt; parameters with &amp;lt;code&amp;gt;--export-pdf&amp;lt;/code&amp;gt; (previously, they only worked for PNG export).&lt;br /&gt;
&lt;br /&gt;
==PDF import from the command line==&lt;br /&gt;
&lt;br /&gt;
Now you can use, for example,&lt;br /&gt;
&lt;br /&gt;
 inkscape file.pdf --export-plain-svg=file.svg&lt;br /&gt;
&lt;br /&gt;
It will take the first page of the PDF and all the default import options, and save the result to SVG. (Before, it crashed because it tried to open the PDF import preferences dialog and could not do it in the command line mode.) If you try to import PDF without an &amp;lt;code&amp;gt;--export&amp;lt;/code&amp;gt; command, it will show the prefs dialog as before and open the file in the UI.&lt;br /&gt;
&lt;br /&gt;
==HPGL export==&lt;br /&gt;
&lt;br /&gt;
Inkscape can now export to HPGL (Hewlett-Packard Graphics Language). It is a file format that is used for various cutters/plotters.&lt;br /&gt;
&lt;br /&gt;
==JavaFX export==&lt;br /&gt;
&lt;br /&gt;
[]&lt;br /&gt;
&lt;br /&gt;
==DXF export==&lt;br /&gt;
&lt;br /&gt;
DXF export is much faster than in previous versions.&lt;br /&gt;
&lt;br /&gt;
= Autosave =&lt;br /&gt;
&lt;br /&gt;
Autosave has now been added to allow for automatic timed backups as work goes on. Saved versions are put in a designated directory and do not overwrite the original SVG file and each other. Go to Inkscape Preferences, Autosave tab, to enable this feature and specify the backup time interval, the directory, and the maximum number of saved backups (if this number is exceeded, old backups will start to be deleted).&lt;br /&gt;
&lt;br /&gt;
=Extension effects=&lt;br /&gt;
==New and improved effects==&lt;br /&gt;
&lt;br /&gt;
* The new '''Arrange &amp;gt; Restack''' extension restacks the Z-order of selected objects, from left to right, top to bottom (or vice versa), with radial outward or inward or by an arbitrary angle, specifying the base point for comparison (top, left, middle, etc.).&lt;br /&gt;
* The improved '''Modify Path &amp;gt; Add Nodes''' extension now also allows segments to be divided into a given number of subsegments.&lt;br /&gt;
* The new '''Render &amp;gt; Alphabet Soup''' extension is a vector rework of Matt Chrisholm's GPLed script [http://www.theory.org/artprojects/alphabetsoup/main.html]. Alphabet Soup randomly mashes glyph-elements together to make exotic looking text.&lt;br /&gt;
* The new '''Render &amp;gt; Cartesian Grid''' extension plots Cartesian (square) grids that do not fill the page, but offer three levels of division, logarithmic scales (with clutter-reduction and arbitrary base) and customisable line width. All like elements (eg x-axis subminor divisions) are put into subgroups together. A proper border is also drawn, with an independent line thickness.&lt;br /&gt;
* The new '''Render &amp;gt; Polar Grid''' extension plots a polar co-ordinate grid, with options for arbitrary-base logarithmic subdivisions, clutter-reduction around the origin, circumferential labels and custom line widths.&lt;br /&gt;
* The new '''Text &amp;gt; Convert to Braille''' extension recodes English (or just Latin letters) text to [http://en.wikipedia.org/wiki/Braille Braille] code created for visually impaired people.&lt;br /&gt;
* [preset filter effects]&lt;br /&gt;
&lt;br /&gt;
==API changes==&lt;br /&gt;
&lt;br /&gt;
While the &amp;quot;Live preview&amp;quot; checkbox is useful for most effects, for some it just does not make sense. Now, you can add the attribute &amp;lt;code&amp;gt;needs-live-preview=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;effect&amp;lt;/code&amp;gt; element in the .inx file of the effect to suppress this checkbox for your effect.&lt;br /&gt;
&lt;br /&gt;
Parameters passed to extensions (via the &amp;lt;param&amp;gt; element) now have a new boolean attribute - &amp;lt;code&amp;gt;gui-hidden&amp;lt;/code&amp;gt; to indicate that the parameter should not be represented in the GUI. If all parameters are marked as hidden no GUI is presented for such extension.&lt;br /&gt;
&lt;br /&gt;
All '''.inx''' files are now properly formatted XML files with its own namespace of: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.inkscape.org/namespace/inkscape/extension&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and a Relax NG schema to define it. More information can be found in the [[Extensions]] Article.&lt;br /&gt;
&lt;br /&gt;
=SVG output=&lt;br /&gt;
&lt;br /&gt;
==Optimized CSS properties==&lt;br /&gt;
&lt;br /&gt;
* As a file size optimization, Inkscape does not write into SVG some of the stroke properties if the object has &amp;lt;code&amp;gt;stroke:none&amp;lt;/code&amp;gt; and some of the fill properties when it has &amp;lt;code&amp;gt;fill:none&amp;lt;/code&amp;gt;. The only situation where this might affect you is if you remove stroke from an object and then turn it back on - the object will get the default stroke instead of the same it had before. &lt;br /&gt;
&lt;br /&gt;
:Also, in manually-edited SVG where a parent group has no stroke but sets some stroke properties to be inherited by its descendants, you will need to set stroke property to other than none on the group, and suppress inheritance with stroke:none on those children that don't need it.&lt;br /&gt;
&lt;br /&gt;
:Specifically, if stroke:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 stroke-width&lt;br /&gt;
 stroke-linecap&lt;br /&gt;
 stroke-linejoin&lt;br /&gt;
 stroke-miterlimit&lt;br /&gt;
 stroke-opacity&lt;br /&gt;
 stroke-dasharray&lt;br /&gt;
 stroke-dashoffset&lt;br /&gt;
&lt;br /&gt;
:Note that this does not include marker properties, which means you can still have markers on a path without visible stroke.&lt;br /&gt;
&lt;br /&gt;
:If fill:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 fill-opacity&lt;br /&gt;
 fill-rule&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;opacity&amp;lt;/code&amp;gt; property is not written if it has the default value of 1 (this property is not inherited, so the change should have no side effects).&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;marker-start&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;marker-mid&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;marker-end&amp;lt;/code&amp;gt; properties are not written if the &amp;lt;code&amp;gt;marker&amp;lt;/code&amp;gt; property is already present with the same value.&lt;br /&gt;
&lt;br /&gt;
==Optimized path data==&lt;br /&gt;
&lt;br /&gt;
In this version, the size of the path data written in the &amp;lt;code&amp;gt;d=&amp;lt;/code&amp;gt; attribute of &amp;lt;code&amp;gt;path&amp;lt;/code&amp;gt; elements is reduced by about 10%. Inkscape generates the shortest possible path strings by avoiding repeated operators and using relative coordinates (when it helps).&lt;br /&gt;
&lt;br /&gt;
This is controlled by the '''SVG output''' page of Inkscape Preferences dialog, as well as the following attributes in &amp;lt;code&amp;gt;group id=&amp;quot;svgoutput&amp;quot;&amp;lt;/code&amp;gt; in your preferences.xml file:&lt;br /&gt;
&lt;br /&gt;
* allowrelativecoordinates (default 1) to switch relative coordinates on (1) or off (0)&lt;br /&gt;
* forcerepeatcommands (default 0) to force repeating operators (1) or allow use of the more compact representation without repeated operators (0)&lt;br /&gt;
&lt;br /&gt;
==No more explicit closing line segment==&lt;br /&gt;
Inkscape used to always explicitly write the closing line segment to SVG for closed paths. For example: &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 L 0,0 z&amp;quot;. With the improved SVG path data writing, Inkscape no longer generates this closing line segment, resulting in &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 z&amp;quot;.&lt;br /&gt;
When SVG path data input contains this explicit closing segment, it is maintained throughout transformations, but is removed after using the node edit tool.&lt;br /&gt;
[this seems no longer to be true, fix it!!! -johan]&lt;br /&gt;
&lt;br /&gt;
==Horizontal and vertical path segments==&lt;br /&gt;
&lt;br /&gt;
If an SVG contains paths with shorthands for horizontal and vertical path segments ('H' or 'V'), then Inkscape will try to maintain those shorthands if possible, so the saved file will also contain them.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;script&amp;gt; support==&lt;br /&gt;
&lt;br /&gt;
While Inkscape does not yet support SVG scripting via the &amp;lt;script&amp;gt; element, this element is now preserved after editing the file in Inkscape.&lt;br /&gt;
&lt;br /&gt;
=Other features=&lt;br /&gt;
&lt;br /&gt;
==Shell mode==&lt;br /&gt;
&lt;br /&gt;
If you run inkscape with &amp;lt;code&amp;gt;--shell&amp;lt;/code&amp;gt;, it will enter an interactive command line shell mode. In this mode, you type in commands at the prompt and Inkscape executes them, without you having to run a new copy of Inkscape for each command. This feature is mostly useful for scripting and server uses: it adds no new capabilities but allows you to improve the speed and memory requirements of any script that repeatedly calls Inkscape to perform command line tasks (such as export or conversions). Each command in shell mode must be a complete valid Inkscape command line but without the Inkscape program name, for example:&lt;br /&gt;
&lt;br /&gt;
 $ inkscape --shell&lt;br /&gt;
 Inkscape 0.46+devel interactive shell mode. Type 'quit' to quit.&lt;br /&gt;
 &amp;gt;file.svg --export-pdf=file.pdf&lt;br /&gt;
 &amp;gt;otherfile.svg --export-png=bitmap.png&lt;br /&gt;
 Background RRGGBBAA: ffffff00&lt;br /&gt;
 Area 0:0:744.094:1052.36 exported to 744 x 1052 pixels (90 dpi)&lt;br /&gt;
 Bitmap saved as: bitmap.png&lt;br /&gt;
 &amp;gt;quit&lt;br /&gt;
&lt;br /&gt;
==Clipboard enhancements==&lt;br /&gt;
&lt;br /&gt;
The clipboard used by Inkscape is now system-wide instead of being confined to a single instance of the application. Copied elements are exported to the clipboard using all the available output formats. SVG data can be pasted into other applications supporting one of Inkscape's output formats, and SVG data provided by other applications can be pasted into Inkscape.&lt;br /&gt;
&lt;br /&gt;
If you copy a string that can be interpreted as a hexadecimal color specification, i.e. 2f7ab4 or #014522b0, and then paste it into Inkscape, the fill of the selected objects will change to the given color. This is especially useful when working with HTML pages.&lt;br /&gt;
&lt;br /&gt;
==Masks and clipping paths==&lt;br /&gt;
&lt;br /&gt;
[editable in node tool - johan]&lt;br /&gt;
&lt;br /&gt;
==Stroke width changeable by dragging==&lt;br /&gt;
&lt;br /&gt;
[bbyak]&lt;br /&gt;
&lt;br /&gt;
==Enhanced tablet support==&lt;br /&gt;
&lt;br /&gt;
===Input device tool switching===&lt;br /&gt;
&lt;br /&gt;
Tablets and other input devices that report separate hardware are now recognized and current tool and/or settings can be set to switch in response to the physical tool being used.&lt;br /&gt;
&lt;br /&gt;
===Extended input device configuration===&lt;br /&gt;
&lt;br /&gt;
The stock Input Devices dialog has been replaced with a completely redone version that provides a more useful representation of settings. It also contains a simple area for testing different inputs of different devices.&lt;br /&gt;
&lt;br /&gt;
Additionally hardware setup itself has been separated from general settings to allow for easier dynamic switching of settings appropriate to the task at hand.&lt;br /&gt;
&lt;br /&gt;
==Layers==&lt;br /&gt;
&lt;br /&gt;
===Show/hide other layers===&lt;br /&gt;
&lt;br /&gt;
The layers dialog now allows for hiding or showing all layers other than the current layer. This &amp;quot;solo&amp;quot; feature allows for faster switching between working layers and for quick checking with and without others shown.&lt;br /&gt;
&lt;br /&gt;
===Duplicate Layer command===&lt;br /&gt;
&lt;br /&gt;
A new command has been added to the layers menus to allow for duplicating an existing layer with all of its objects.&lt;br /&gt;
&lt;br /&gt;
==External image editing and reload==&lt;br /&gt;
&lt;br /&gt;
Linked bitmaps have a context menu option to launch editing in an external application. Linked images now will reload when the linked file changes on disk. Both the external editor application and the reload behavior can be controlled by user preferences.&lt;br /&gt;
&lt;br /&gt;
==Command for relinking clones==&lt;br /&gt;
&lt;br /&gt;
A new command, '''Relink Clone to Copied''' in ''Edit &amp;gt; Clone'', allows you to relink any clone to a different original object without changing its other properties. Just copy (Ctrl+C) the object you want to be the new original, select any number of clones, and choose the Relink command. Now all selected clones are linked to the copied object.&lt;br /&gt;
&lt;br /&gt;
==Auto relinking clones on Duplicate==&lt;br /&gt;
&lt;br /&gt;
If you turn on the '''When duplicating original+clones: Relink duplicated clones''' option on Clones tab of Inkscape Preferences (default is off), duplicating a selection containing both a clone and its original (possibly in groups) will relink the duplicated clone to the duplicated original instead of the old original.&lt;br /&gt;
&lt;br /&gt;
==Pattern editing==&lt;br /&gt;
&lt;br /&gt;
When editing pattern fills:&lt;br /&gt;
* The pattern origin and scale handles now snap.&lt;br /&gt;
* The pattern scaling can now be different in X and Y direction. Press '''Ctrl''' to have a fixed 1:1 ratio scaling (old behavior).&lt;br /&gt;
* The handles are now positioned at the corners  of the unit cell, instead of only a quarter of that cell as before. So, now a rectangle filled with pattern will have all of the pattern handles in the corners, making it harder to manipulate them. However, the handles can be dragged outside the rectangle by moving the pattern's origin handle.&lt;br /&gt;
&lt;br /&gt;
==Transform dialog: spacing out option==&lt;br /&gt;
&lt;br /&gt;
Previously, the '''Apply to each object separately''' checkbox had no effect for the '''Move''' tab. Now, if several objects are selected, this checkbox is on, and &amp;quot;Relative move&amp;quot; is on, each object is shifted relative to the closest selected object on the left (for X) or below (for Y). &lt;br /&gt;
&lt;br /&gt;
For example, if you have a horizontal row of objects and you move them relatively by X=5px with &amp;quot;Apply to each object separately&amp;quot; on, the leftmost object will shift by 5px, the next one to the right by 10px, and so on; the rightmost selected object is displaced by 5*n px where n is the number of selected objects.  As a result, the distance in each pair of adjacent objects will increase by 5px and the whole row will be spaced out, much like a letterspacing adjustment spaces out a text string. Moving these objects by X=-5px will, conversely, squeeze them tighter together: the leftmost will move by -5px, the next one by -10px, and so on. For Y, the effect is the same except that the move starts from the object closest to the bottom (i.e. with smallest Y coordinate). &lt;br /&gt;
&lt;br /&gt;
When determining the order of shifting objects, for X, the left edges of their bounding boxes are sorted horizontally, and for Y, the bottoms of their bounding boxes are sorted vertically. Order of selecting the objects or z-order does not matter.&lt;br /&gt;
&lt;br /&gt;
=User interface=&lt;br /&gt;
&lt;br /&gt;
==Filters can be disabled==&lt;br /&gt;
In order to facilitate editing documents that use lots of SVG filter effects, filter effects can now be disabled for a particular document window by selecting '''View|Display mode|No Filters''' from its menu.  This provides an intermediate step between &amp;quot;normal&amp;quot; and &amp;quot;outline&amp;quot; view modes.&lt;br /&gt;
&lt;br /&gt;
The Toggle view command in the Display mode submenu (Ctrl+keypad 5) toggles between the outline view and either regular or no-filters view, depending on which was used most recent.&lt;br /&gt;
&lt;br /&gt;
==Native file dialogs for Windows==&lt;br /&gt;
The windows builds of inkscape now have Windows-native file dialogs to keep consistency with other windows applications.&lt;br /&gt;
&lt;br /&gt;
==Inkscape Preferences dialog==&lt;br /&gt;
&lt;br /&gt;
This dialog has been rearranged for more logical grouping of options. New pages has been added: Bitmaps (options for the new update-on-file-change and external editor features), UI (options for toolbar icon sizes), and SVG Output (options for SVG formatting, introduced in 0.46 and now editable from the dialog as well). &lt;br /&gt;
&lt;br /&gt;
A new option on the Bitmaps tab, '''Resolution for Create Bitmap Copy''', allows you to set the resolution of the bitmap created by the corresponding command (by default bound to Alt+B). The default value of 90 dpi forces the resulting bitmap to align with the default 1px-spaced grid on the canvas.&lt;br /&gt;
&lt;br /&gt;
There is a new option on the Interface tab, '''Zoom correction factor''', which displays an adjustable ruler. Move the slider until the ruler's on-screen size matches its true size. The resulting conversion factor is used internally when zooming to 1:1 etc. such that objects are displayed in their true size.&lt;br /&gt;
&lt;br /&gt;
== Align and Distribute dialog ==&lt;br /&gt;
&lt;br /&gt;
There is now an option to treat all selected objects as a group when aligning (this spares the user the trouble to manually group them, align, and ungroup afterwards).&lt;br /&gt;
&lt;br /&gt;
==Dropper tool==&lt;br /&gt;
&lt;br /&gt;
The confusing icons on buttons in the controls bar of the Dropper tool (pick/assign opacity) are replaced by text labels.&lt;br /&gt;
&lt;br /&gt;
==Swatches==&lt;br /&gt;
&lt;br /&gt;
Hovering over a swatch now shows the name of the swatch in the status bar. This makes it easier for tablet users to identify a swatch by name, as holding a stylus still enough to show a tool tip is difficult.&lt;br /&gt;
&lt;br /&gt;
==Toolbars==&lt;br /&gt;
&lt;br /&gt;
* The toolbar icon sizes for the three main toolbars are now separately configurable and to a few different sizes. This allows users to get a smaller UI on certain systems, including Ubuntu.&lt;br /&gt;
&lt;br /&gt;
* The main tools toolbar has been converted to a standard GtkToolbar, removing the problem of it pushing the main window taller. Tools that don't fit automatically flow into a popup menu.&lt;br /&gt;
&lt;br /&gt;
* When torn off, toolbars now keep the size they last had in the main window. They can be resized by docking, sizing the main window, and then undocking agin.&lt;br /&gt;
&lt;br /&gt;
* Some controls (such as the Width in Calligraphic/Tweak/Eraser tools, Tremor, Wiggle, and Mass in Calligraphic, Threshold in Paintbucket, Tolerance in Pencil) are converted from numeric editable fields into draggable sliders, with labels and values (usually in the range 0..100) displayed on top. As these values don't usually require much precision, this makes adjusting them much easier and faster.&lt;br /&gt;
&lt;br /&gt;
==Title and Description==&lt;br /&gt;
&lt;br /&gt;
* [the Title and Description fields on the Object Properties dialog - sas]&lt;br /&gt;
&lt;br /&gt;
==Clone/original visualization==&lt;br /&gt;
&lt;br /&gt;
When you press Shift+D to find and select the original of the selected clone, Inkscape draws a dashed line between the centers of the bounding boxes of the clone and the original. This line disappears after one second.&lt;br /&gt;
&lt;br /&gt;
=Grids, guides, snapping=&lt;br /&gt;
&lt;br /&gt;
==Grids==&lt;br /&gt;
* The dotted rectangular grid now shows small crosses at the intersection points of emphasis lines.&lt;br /&gt;
&lt;br /&gt;
==Guides==&lt;br /&gt;
&lt;br /&gt;
There is now an option to treat groups as single objects during conversion to guides (as opposed to converting each object inside the group separately).&lt;br /&gt;
&lt;br /&gt;
==Snapping==&lt;br /&gt;
Snapping has been implemented or improved in these areas:&lt;br /&gt;
* The '''node tool''' now snaps to any unselected node (cusp or smooth) within the path that's being edited, and to cusp nodes of other paths. It also snaps to the path itself, but only to the stationary segments in between two unselected nodes. It is now also possible to snap while moving nodes along a vertical or horizontal constraint&lt;br /&gt;
* '''Clipping paths and masks''' are now also snappable&lt;br /&gt;
* The object snapper now also allows to snap to the '''page border'''&lt;br /&gt;
* It is now possible to snap to '''intersections of paths''' (were we previously only snapped to intersections of line-segments)&lt;br /&gt;
* In the selector tool, snapping while '''skewing ''' or '''constrained translating''' have been improved&lt;br /&gt;
* When creating '''new shapes''', all of their handle points now snap&lt;br /&gt;
* In the document properties dialog, the checkbox for ''' 'always'''' snap has been replaced by two radiobuttons; this should eliminate most of the confusion surrounding this option&lt;br /&gt;
* Holding the shift-key now also disables snapping while dragging '''node-handles'''&lt;br /&gt;
* The code relating to the snapping mechanisms has undergone '''major refactoring''' to make it more reliable and easier to use from a developer's perspective&lt;br /&gt;
* Snapping to objects now uses routines from the '''2geom libraries''', which are actively maintained and are less error prone than the old Livarot libraries. This fixes at least two known snapping bugs&lt;br /&gt;
* While drawing and '''constraining to specific angles''' (using CTRL), Inkscape should now only snap to points on the constrained line.&lt;br /&gt;
* When '''pasting''', previously aligned originals will stay aligned to the grid. The code for this had to be reinvented due to the refactoring&lt;br /&gt;
&lt;br /&gt;
==Snap indicator==&lt;br /&gt;
When snapping has occurred, an indicator is displayed at that specific position. For now that indicator is just a cross that disappears in a second. In the future the shape of the indicator will be related to the type of target that has been snapped to. The snapping indicator can be disabled in the Document Properties dialog.&lt;br /&gt;
&lt;br /&gt;
=Notable bug fixes=&lt;br /&gt;
&lt;br /&gt;
* Inkscape is now able to handle paths with only 'movetos', i.e. &amp;quot;M 0,0 M 1,1 M 2,2&amp;quot;. These kind of paths can be used to only show markers on a path without the rest of the path visible.&lt;br /&gt;
&lt;br /&gt;
* The '''visual bounding box''' (which is the default bounding box type used by Inkscape) of an object with a filter applied, now includes the expanded area of the filter. For '''single blur filter''' (such as the blur you apply with a slider in the Fill and Stroke dialog), this expands the bounding box by 2.4*radius; although theoretically, blur is infinite, this is the distance at which the opacity of the object drops below the perceptibility threshold of our renderer. For all other filters, the area is expanded by the relative amounts you specify on the &amp;quot;Filter general settings&amp;quot; tab of the Filter Effects dialog.&lt;br /&gt;
&lt;br /&gt;
:Only visual bounding box is affected; if you use geometric bounding box, you will notice no change in most cases. However, the Export bitmap dialog always uses the visual bbox for selection of the export area; this means that you can now export a blurred object to bitmap without any clipping of the blur.&lt;br /&gt;
&lt;br /&gt;
* Bounding box calculation does not include the invisible objects. (#252547)&lt;br /&gt;
&lt;br /&gt;
* Several fixes allows Inkscape to correctly render and edit SVG files that use &amp;lt;code&amp;gt;currentColor&amp;lt;/code&amp;gt; in objects' style (this includes files created by gnuplot).&lt;br /&gt;
&lt;br /&gt;
* '''No more ID clashes on import and paste''': previously, importing or pasting SVG objects might sometimes distort their colors, because the imported objects referred to gradients with the same IDs as those that already exist in the document but look different. Now, IDs of all gradients in the pasted document are checked for clashes with those in the host document, and if necessary changed with all their users updated correspondingly, so such unexpected color changes will never happen.&lt;br /&gt;
&lt;br /&gt;
* '''Clipboard is system-wide''': you can now copy/paste objects between different Inkscape instances as well as between Inkscape and other applications (which must be able to handle SVG on the clipboard to use this).&lt;br /&gt;
&lt;br /&gt;
* File dialogs remember last visited directory&lt;br /&gt;
&lt;br /&gt;
* No more garbage lines in outline mode &lt;br /&gt;
&lt;br /&gt;
* No more artifacts left by the circle cursor in Tweak tool&lt;br /&gt;
&lt;br /&gt;
* The Live Path Effects '''Bend Path''' and '''Pattern along Path''' now work correctly with closed paths.&lt;br /&gt;
&lt;br /&gt;
= Previous releases =&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=File:SketchExemple.png&amp;diff=35974</id>
		<title>File:SketchExemple.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=File:SketchExemple.png&amp;diff=35974"/>
		<updated>2008-09-22T00:08:55Z</updated>

		<summary type="html">&lt;p&gt;Jfb: Illustrating the sketch effect.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Illustrating the sketch effect.&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=File:Sketch.png&amp;diff=27214</id>
		<title>File:Sketch.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=File:Sketch.png&amp;diff=27214"/>
		<updated>2008-04-03T16:36:03Z</updated>

		<summary type="html">&lt;p&gt;Jfb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=SpecFilletChamfer&amp;diff=25354</id>
		<title>SpecFilletChamfer</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=SpecFilletChamfer&amp;diff=25354"/>
		<updated>2008-03-17T22:35:39Z</updated>

		<summary type="html">&lt;p&gt;Jfb: /* More ideas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Launchpad Entry:&lt;br /&gt;
https://blueprints.launchpad.net/inkscape/+spec/fillet-tool&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
The filleting tool will allow the user to replace the cusp of a corner on a path, with a rounding arc of specified radius. This is rather simple to the way we can round off the corners rectangles, but for arbitrary geometry.&lt;br /&gt;
&lt;br /&gt;
Note that this proposed tool will only work on corners in individual paths - not on the intersections of the strokes of separate objects.&lt;br /&gt;
&lt;br /&gt;
== Release Note ==&lt;br /&gt;
&lt;br /&gt;
== Rationale ==&lt;br /&gt;
A fillet/chamfer tool is useful for technical drawings where fillets and chamfers are needed often, and smoothing corners in artwork.&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
=== User Interface ===&lt;br /&gt;
In terms of implementation, the filleting tool must be implemented as a sub-feature within the node edit tool. With the node tool selected, the user will select a series of points in a path that they would like to fillet. The user will then click the fillet button in the node context toolbar.&lt;br /&gt;
&lt;br /&gt;
With this fillet-tool-button clicked, and the an interactive fillet mode is activated. The node edit context toolbar will change to a fillet context toolbar. The fillet-tool-button will remain present on this new toolbar, but will be shown depressed to indicate that the filleting mode is activated. An edit box with spinner will be placed in the bar so that the user can choose the radius  numerically. At the same time handles will be shown on the canvas to allow the user to edit the radius interactively. Helper circles will give a preview of the end result.&lt;br /&gt;
&lt;br /&gt;
Once the user is happy with the fillet, the result can be committed by selecting a different tool or clicking the fillet-tool-button on toolbar (so as to un-depress it). To cancel, the user can press Esc, or can apply the change then Undo.&lt;br /&gt;
&lt;br /&gt;
It might be helpful to give the choice between placing a full circle object into the corner, a tangential arc object of the fillet, or actually filleting the corner with an arc which will modify the parent path to replace the cusp.&lt;br /&gt;
&lt;br /&gt;
This tool will give the option to chamfer the corner - where instead smoothing the corner with an arc, the corner is smoothed with a straight line - simply snipping the tip off.&lt;br /&gt;
&lt;br /&gt;
=== Back End ===&lt;br /&gt;
The illustration below shows the steps involved in filleting the corner of a path:&lt;br /&gt;
&lt;br /&gt;
[[Image:Fillet.png]]&lt;br /&gt;
&lt;br /&gt;
Filleting a corner is a 3-step process. First, the centre point for the arc must be calculated (X and Y in fig 1 and fig 2a). Second, the arc's sweep must be calculated so that it merges with the parent path at the tagents (fig 2b). Third, the point of the corner must be snipped off, and the arc welded on (fig 2c).&lt;br /&gt;
&lt;br /&gt;
All shapes must be converted to paths before filleting can occur.&lt;br /&gt;
&lt;br /&gt;
Finding point X is mathematically trivial. Finding Y is very much harder, and will require a numerical solution to a set of simultaneous equations. Note that there could potentially be more than one possible solution (as shown in fig 2a), so the closest solution to the cusp along the the length of bezier should be selected.&lt;br /&gt;
&lt;br /&gt;
=== More ideas ===&lt;br /&gt;
See [http://www.oberonplace.com/products/curveworks/index.htm]&lt;br /&gt;
&lt;br /&gt;
Cale Gibbard proposed another technique [https://bugs.launchpad.net/inkscape/+bug/202751 here], with an excellent [http://launchpadlibrarian.net/12692602/rcp.svg diagram] to explain it.&lt;br /&gt;
I think it's a very good solution, relatively easy to code and more &amp;quot;stable&amp;quot; under deformations of the original curve (in particular, there is always one and only one solution...). The output arc is not a perfect circle however, and it's radius is not explicitly controlled (depends on tangent angle at the corner). Maybe both option should be tested/implemented.&lt;br /&gt;
--[[User:Jfb|jfb]] 22:35, 17 March 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
== Discussion ==&lt;br /&gt;
===Existing Code?===&lt;br /&gt;
* Q: Does anyone know of any existing code in the codebase that makes these sorts of calculations? So as to avoid reinventing the wheel and duplicating code?&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Lpe-blueprint&amp;diff=22834</id>
		<title>Lpe-blueprint</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Lpe-blueprint&amp;diff=22834"/>
		<updated>2008-03-09T00:23:43Z</updated>

		<summary type="html">&lt;p&gt;Jfb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''''Live path effects' blue print proposal.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This page aims at gathering propositions about what the (eventually long term) future of live path effects could be. The goal is to have better view of what could be done, what is hard, what is easy, what is worth and what is not,&lt;br /&gt;
list possible alternatives, etc...&lt;br /&gt;
Please add your comment and propositions!&lt;br /&gt;
&lt;br /&gt;
Some of this already exists : see the great [http://wiki.inkscape.org/wiki/index.php/MakingLivePathEffects#Current_Projects projects] currently under developpement!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Live Path Effect alias Modifier stack==&lt;br /&gt;
This is a rather long term proposition, formulated from the Features and UI point of view. The basic observation is  that it is natural to have several successive live path effects applied to the same object, leading to an effect stack. The proposition below mimics the modifier stack found in most 3D software. &lt;br /&gt;
As it is also natural to allow sophisticated objects (groups, or objects carrying effects on their own) as input, edition of nested effects can become tricky (consider for instance non destructive boolean operation of two objects, both carrying effects). This proposition tries to address this point.&lt;br /&gt;
&lt;br /&gt;
To end this introduction, consider the two baby cases below, trying to illustrate the need of &amp;quot;rich objects&amp;quot; (i.e. full svg data) both as input paramters and output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:lpe_need_rich_input.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first example shows a boolean operation (difference) of two objects, but the second one recieves a small offset before doing the difference. This kind of &amp;quot;outline&amp;quot; appears frequently in logo design. Notice that both operand carry an effect. For this operation to be non destructive, stacking of effects should be possible not only on one root object, but also on input parameters. Suppose it's not the case: should the sun be the main input of a &amp;quot;boolean-operation&amp;quot; effect, would the offset width be lost (i.e. not editable anymore); should it be the cloud would the pattern-along-path be lost. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:lpe_need_rich_output.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This second example is about lpe output: alowing full svg data would widely enlarge the range of possibilities, for instance deforming colorfull objects (notice this already possible using [http://wiki.inkscape.org/wiki/index.php/LPE_for_groups lpe on groups]!!), or interpolate between styles at the same time as shapes. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Effect stack: features and UI===&lt;br /&gt;
&lt;br /&gt;
Steren : A team of french students is currently implementing this, see [[LPE_stacking]].&lt;br /&gt;
&lt;br /&gt;
====General usage====&lt;br /&gt;
A side panel is dedicated to the effect stack. On the top is displayed &lt;br /&gt;
the stack itself, and below the parameters of particular effects.&lt;br /&gt;
The picture below summerizes the main features of the stack area.&lt;br /&gt;
&lt;br /&gt;
A side panel is dedicated to the effect stack. On the top is displayed &lt;br /&gt;
the stack itself, and below the parameters of particular effects.&lt;br /&gt;
The picture below summerizes the main features of the stack area. &lt;br /&gt;
&lt;br /&gt;
[[Image:lpestack.png]]&lt;br /&gt;
&lt;br /&gt;
The full stack can be navigated and any effect in the stack can be selected to &lt;br /&gt;
become active. The pannel below the stack displays the active effects &lt;br /&gt;
parameters. In the main window (the canvas), the output of the active effect &lt;br /&gt;
is displayed (ideally, a button near the stack toggles wether the stack is&lt;br /&gt;
blocked at the active level, or runs to its end)&lt;br /&gt;
&lt;br /&gt;
*The stack can be collapsed (1) from the active effect to the original shape. The output of the active effect becomes the new original shape.&lt;br /&gt;
*Each effect can be temporariliy (4) bypassed to save performance and interactivity&lt;br /&gt;
*Effects can be draged and droped to reorganize the stack&lt;br /&gt;
*Effects can copied, pasted, cloned (i.e. shared) between objects (6). Shared effects can be made unique (3).&lt;br /&gt;
*Effects names (i.e. svg id attribute) can be edited.&lt;br /&gt;
&lt;br /&gt;
====Sublevel navigation====&lt;br /&gt;
&lt;br /&gt;
Some effect use other objects (paths, groups...) as parameters. In this case, &lt;br /&gt;
the line of the effect in the stack can be expanded to show the list of all &lt;br /&gt;
object parameters (see fig. 2).&lt;br /&gt;
&lt;br /&gt;
[[Image:lpestackeditmode.png]]&lt;br /&gt;
&lt;br /&gt;
As such objects might be &amp;quot;virtual&amp;quot; (i.e. not available on the canvas) and&lt;br /&gt;
complex (typically groups of objects carrying effects on their own),&lt;br /&gt;
an edit mode is needed for such objects that goes beyond the node editor: &lt;br /&gt;
all operations (style, z-order, path effects...) should be availble. &lt;br /&gt;
&lt;br /&gt;
To this end, selecting an object parameter in the effect stack enters edit mode&lt;br /&gt;
for that object: its own effect stack is inserted in the global stack(bracketed&lt;br /&gt;
with easily identified color), and each level of it can be edited normally (in particular, deeper object parameters might be recursively edited). &lt;br /&gt;
&lt;br /&gt;
Edit mode exits when the effect is not active anymore, i.e.&lt;br /&gt;
*another object parameter is selected, &lt;br /&gt;
*the list of object parameters is closed, &lt;br /&gt;
*another effect is selected, &lt;br /&gt;
*the object is deselected. &lt;br /&gt;
(for convenience, a level in the stack could be pined, to avoid non intentional exits).&lt;br /&gt;
&lt;br /&gt;
'''Note:''' For groups, the first line in the stack should be a &amp;quot;group&amp;quot; pseudo effect, meant to allow selection of objects within the group.&lt;br /&gt;
&lt;br /&gt;
===An alternative: effect stack within object browser===&lt;br /&gt;
Sooner or later, we will have an object browser (more user oriented than the xml browser). If we manage to make it effect-aware, all this should be in fact included in the object browser...&lt;br /&gt;
Object carrying effects would have a special icon as child; clicking it would expand the effect stack, and in turn, each effect would have its parameter objects as childs... &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
===Generic effect: features and UI===&lt;br /&gt;
This section describes the general features desired for lpes.&lt;br /&gt;
&lt;br /&gt;
*input:&lt;br /&gt;
**use any object as input(s): groups, clones, text... &amp;lt;/li&amp;gt; (Steren : the french students are currently implementing this, see [[LPE_for_groups]]).&lt;br /&gt;
**check restrictions for input, and eventually warn the user (eg. accept only connected paths...)&lt;br /&gt;
**object paramters are picked with the mouse, and copied, cloned, or moved into the effect according to user choice (see fig. 1).&lt;br /&gt;
**be aware of the style of the inputs.&lt;br /&gt;
*output:&lt;br /&gt;
**can output full svg data,&lt;br /&gt;
**recieves an extra selection of the input (a list of objects, path componenents or nodes(?) of the input) to restrict, if possible, the effect to this selection. Outputs the relevant selection, for the eventual next effect.&lt;br /&gt;
*interaction:&lt;br /&gt;
**can perform all inkscape operations on the active object (node-edition, z-order, insert new lpe, etc...)&lt;br /&gt;
**pick buttons&lt;br /&gt;
**fancy &amp;quot;tools&amp;quot;: can display it's own temporary objects for user interaction purpose, and define how to react to selection/edition of such objects with the node tool.&lt;br /&gt;
&lt;br /&gt;
===Particular effects: per effect specifications===&lt;br /&gt;
&lt;br /&gt;
====Boolean operation====&lt;br /&gt;
Non destructive operation are usefull. Use Mgsloan work on 2geom-intersection here!&lt;br /&gt;
&lt;br /&gt;
====Transform effect====&lt;br /&gt;
Applies a transform matrix to the object; automatically added before a new &lt;br /&gt;
effect if the object has a non empty transform attribute. This is needed since&lt;br /&gt;
transforms and effects do not commute in general...&lt;br /&gt;
&lt;br /&gt;
====Style effect====&lt;br /&gt;
Applies a given style to the object; added automatically when a new style is&lt;br /&gt;
applied to an object with non empty stack. Usefull to overwrite the default &lt;br /&gt;
style produced by other effects. Should allow to set the priority of each&lt;br /&gt;
style component (replace old style, replace only if not set...)&lt;br /&gt;
&lt;br /&gt;
====Selector====&lt;br /&gt;
This effect selects a part of the input. It has 3 modes:&lt;br /&gt;
*object level: selects object(s) within a group.&lt;br /&gt;
*path level: selects component(s) within a path.&lt;br /&gt;
*[node level: selects node(s) within a path.](? --- delicate)&lt;br /&gt;
&lt;br /&gt;
The subsequent effects should work on this selection, and leave everything else &lt;br /&gt;
unchanged. (usefull to apply different effects to different step of an interpolate effect for instance)&lt;br /&gt;
&lt;br /&gt;
Notice that whenever the stack is modified before this effect, the user should be warned that this modifier depends on the &amp;quot;topology&amp;quot; of the input...&lt;br /&gt;
&lt;br /&gt;
====Pattern along path====&lt;br /&gt;
*Take a group as pattern, and set the style of the output according to it, to allow color full pattern stroke.&lt;br /&gt;
*Allow space  between copies, normal and tangential offsets.&lt;br /&gt;
*Add an option to fuse nearby ends (to allow gluing of the successive patterns into a single connected path for instance)(?)&lt;br /&gt;
*Option to leave the original shape in the output(?) (to allow filling of the area)&lt;br /&gt;
*Use another pattern for the &amp;quot;corners&amp;quot;(?) &lt;br /&gt;
&lt;br /&gt;
====Offset====&lt;br /&gt;
Dynmical offset could naturally be turned into an effect (it is not compatible with lpe at the moment).&lt;br /&gt;
&lt;br /&gt;
====Fillet/champfer====&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Thick/Thin strokes====&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Interpolate====&lt;br /&gt;
Intermediate shapes could follow a distorted path instead of a straight line...&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Knotting effect====&lt;br /&gt;
click on a crossing to flip it. The UI should have a node tool button labeled &amp;quot;flip crossings&amp;quot;. When this is selected, small red circles are drawn at each crossing. A a click in such an area flips the coresponding crossing...&lt;br /&gt;
&lt;br /&gt;
====So many more!!====&lt;br /&gt;
All the effects we have as extensions can become live effects rather easily.&lt;br /&gt;
Please add your propositions here!&lt;br /&gt;
&lt;br /&gt;
====Dynamic drop shadow====&lt;br /&gt;
Currently doable with blur, blur+clip path, or with an array of filters, and probably some more ways but not so nice to make and re-edit (especially re-edit) and it would be good to have an on-canvas real time editing effect like this. Numerical parameters could include: opacity, size (complete size of the shadow), extension (how the intensity of the shadow decay, could be related to a blur factor), color, angle and distance.&lt;br /&gt;
&lt;br /&gt;
Angle and distance should be editable numerically on the effect dialog and those values linked to the canvas position of the shadow and its angle, so its easy to adjust both manually or numerically.&lt;br /&gt;
&lt;br /&gt;
Color could be a plain color or a gradient.&lt;br /&gt;
&lt;br /&gt;
The shadow could have a turbulence/convolution filter applied to it.&lt;br /&gt;
--[[User:Pajarico|Pajarico]] 01:30, 1 March 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
====Perspective====&lt;br /&gt;
Steren : The french students are working on this, see :  [[Perspective_LPE]]&lt;br /&gt;
&lt;br /&gt;
Same as the one in ''Effects-&amp;gt;Modify Path'' but editable on-canvas. The editable part is a square bounding box which has four pullable corners to do the perspective (or this is an envelope? I tend to get these two confused...)&lt;br /&gt;
&lt;br /&gt;
If this spec gets approved, a shadow could be rendered in perspective chaining a dynamic drop shadow and a perspective effects together.&lt;br /&gt;
--[[User:Pajarico|Pajarico]] 01:30, 1 March 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
====Deformation Envelope====&lt;br /&gt;
Steren : French Students are working on this too : see [[Deformation_Envelope_LPE]]&lt;br /&gt;
&lt;br /&gt;
==SVG representation==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API design==&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Lpe-blueprint&amp;diff=22554</id>
		<title>Lpe-blueprint</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Lpe-blueprint&amp;diff=22554"/>
		<updated>2008-03-05T22:29:32Z</updated>

		<summary type="html">&lt;p&gt;Jfb: /* Knotting effect */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''''Live path effects' blue print proposal.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This page aims at gathering propositions about what the (eventually long term) future of live path effects could be. The goal is to have better view of what could be done, what is hard, what is easy, what is worth and what is not,&lt;br /&gt;
list possible alternatives, etc...&lt;br /&gt;
Please add your comment and propositions!&lt;br /&gt;
&lt;br /&gt;
==Live Path Effect alias Modifier stack==&lt;br /&gt;
This is a rather long term proposition, formulated from the Features and UI point of view. The basic observation is  that it is natural to have several successive live path effects applied to the same object, leading to an effect stack. The proposition below mimics the modifier stack found in most 3D software. &lt;br /&gt;
As it is also natural to allow sophisticated objects (groups, or objects carrying effects on their own) as input, edition of nested effects can become tricky (consider for instance non destructive boolean operation of two objects, both carrying effects). This proposition tries to address this point.&lt;br /&gt;
&lt;br /&gt;
To end this introduction, consider the two baby cases below, trying to illustrate the need of &amp;quot;rich objects&amp;quot; (i.e. full svg data) both as input paramters and output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:lpe_need_rich_input.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first example shows a boolean operation (difference) of two objects, but the second one recieves a small offset before doing the difference. This kind of &amp;quot;outline&amp;quot; appears frequently in logo design. Notice that both operand carry an effect. For this operation to be non destructive, stacking of effects should be possible not only on one root object, but also on input parameters. Suppose it's not the case: should the sun be the main input of a &amp;quot;boolean-operation&amp;quot; effect, would the offset width be lost (i.e. not editable anymore); should it be the cloud would the pattern-along-path be lost. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:lpe_need_rich_output.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This second example is about lpe output: alowing full svg data would widely enlarge the range of possibilities, for instance deforming colorfull objects...&lt;br /&gt;
&lt;br /&gt;
===Effect stack: features and UI===&lt;br /&gt;
&lt;br /&gt;
====General usage====&lt;br /&gt;
A side panel is dedicated to the effect stack. On the top is displayed &lt;br /&gt;
the stack itself, and below the parameters of particular effects.&lt;br /&gt;
The picture below summerizes the main features of the stack area.&lt;br /&gt;
&lt;br /&gt;
A side panel is dedicated to the effect stack. On the top is displayed &lt;br /&gt;
the stack itself, and below the parameters of particular effects.&lt;br /&gt;
The picture below summerizes the main features of the stack area. &lt;br /&gt;
&lt;br /&gt;
[[Image:lpestack.png]]&lt;br /&gt;
&lt;br /&gt;
The full stack can be navigated and any effect in the stack can be selected to &lt;br /&gt;
become active. The pannel below the stack displays the active effects &lt;br /&gt;
parameters. In the main window (the canvas), the output of the active effect &lt;br /&gt;
is displayed (ideally, a button near the stack toggles wether the stack is&lt;br /&gt;
blocked at the active level, or runs to its end)&lt;br /&gt;
&lt;br /&gt;
*The stack can be collapsed (1) from the active effect to the original shape. The output of the active effect becomes the new original shape.&lt;br /&gt;
*Each effect can be temporariliy (4) bypassed to save performance and interactivity&lt;br /&gt;
*Effects can be draged and droped to reorganize the stack&lt;br /&gt;
*Effects can copied, pasted, cloned (i.e. shared) between objects (6). Shared effects can be made unique (3).&lt;br /&gt;
*Effects names (i.e. svg id attribute) can be edited.&lt;br /&gt;
&lt;br /&gt;
====Sublevel navigation====&lt;br /&gt;
&lt;br /&gt;
Some effect use other objects (paths, groups...) as parameters. In this case, &lt;br /&gt;
the line of the effect in the stack can be expanded to show the list of all &lt;br /&gt;
object parameters (see fig. 2).&lt;br /&gt;
&lt;br /&gt;
[[Image:lpestackeditmode.png]]&lt;br /&gt;
&lt;br /&gt;
As such objects might be &amp;quot;virtual&amp;quot; (i.e. not available on the canvas) and&lt;br /&gt;
complex (typically groups of objects carrying effects on their own),&lt;br /&gt;
an edit mode is needed for such objects that goes beyond the node editor: &lt;br /&gt;
all operations (style, z-order, path effects...) should be availble. &lt;br /&gt;
&lt;br /&gt;
To this end, selecting an object parameter in the effect stack enters edit mode&lt;br /&gt;
for that object: its own effect stack is inserted in the global stack(bracketed&lt;br /&gt;
with easily identified color), and each level of it can be edited normally (in particular, deeper object parameters might be recursively edited). &lt;br /&gt;
&lt;br /&gt;
Edit mode exits when the effect is not active anymore, i.e.&lt;br /&gt;
*another object parameter is selected, &lt;br /&gt;
*the list of object parameters is closed, &lt;br /&gt;
*another effect is selected, &lt;br /&gt;
*the object is deselected. &lt;br /&gt;
(for convenience, a level in the stack could be pined, to avoid non intentional exits).&lt;br /&gt;
&lt;br /&gt;
'''Note:''' For groups, the first line in the stack should be a &amp;quot;group&amp;quot; pseudo effect, meant to allow selection of objects within the group.&lt;br /&gt;
&lt;br /&gt;
===An alternative: effect stack within object browser===&lt;br /&gt;
Sooner or later, we will have an object browser (more user oriented than the xml browser). If we manage to make it effect-aware, all this should be in fact included in the object browser...&lt;br /&gt;
Object carrying effects would have a special icon as child; clicking it would expand the effect stack, and in turn, each effect would have its parameter objects as childs... &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
===Generic effect: features and UI===&lt;br /&gt;
This section describes the general features desired for lpes.&lt;br /&gt;
&lt;br /&gt;
*input:&lt;br /&gt;
**use any object as input(s): groups, clones, text... &amp;lt;/li&amp;gt;&lt;br /&gt;
**check restrictions for input, and eventually warn the user (eg. accept only connected paths...)&lt;br /&gt;
**object paramters are picked with the mouse, and copied, cloned, or moved into the effect according to user choice (see fig. 1).&lt;br /&gt;
**be aware of the style of the inputs.&lt;br /&gt;
*output:&lt;br /&gt;
**can output full svg data,&lt;br /&gt;
**recieves an extra selection of the input (a list of objects, path componenents or nodes(?) of the input) to restrict, if possible, the effect to this selection. Outputs the relevant selection, for the eventual next effect.&lt;br /&gt;
*interaction:&lt;br /&gt;
**can perform all inkscape operations on the active object (node-edition, z-order, insert new lpe, etc...)&lt;br /&gt;
**pick buttons&lt;br /&gt;
**fancy &amp;quot;tools&amp;quot;: can display it's own temporary objects for user interaction purpose, and define how to react to selection/edition of such objects with the node tool.&lt;br /&gt;
&lt;br /&gt;
===Particular effects: per effect specifications===&lt;br /&gt;
&lt;br /&gt;
====Boolean operation====&lt;br /&gt;
Non destructive operation are usefull. Use Mgsloan work on 2geom-intersection here!&lt;br /&gt;
&lt;br /&gt;
====Transform effect====&lt;br /&gt;
Applies a transform matrix to the object; automatically added before a new &lt;br /&gt;
effect if the object has a non empty transform attribute. This is needed since&lt;br /&gt;
transforms and effects do not commute in general...&lt;br /&gt;
&lt;br /&gt;
====Style effect====&lt;br /&gt;
Applies a given style to the object; added automatically when a new style is&lt;br /&gt;
applied to an object with non empty stack. Usefull to overwrite the default &lt;br /&gt;
style produced by other effects. Should allow to set the priority of each&lt;br /&gt;
style component (replace old style, replace only if not set...)&lt;br /&gt;
&lt;br /&gt;
====Selector====&lt;br /&gt;
This effect selects a part of the input. It has 3 modes:&lt;br /&gt;
*object level: selects object(s) within a group.&lt;br /&gt;
*path level: selects component(s) within a path.&lt;br /&gt;
*[node level: selects node(s) within a path.](? --- delicate)&lt;br /&gt;
&lt;br /&gt;
The subsequent effects should work on this selection, and leave everything else &lt;br /&gt;
unchanged. (usefull to apply different effects to different step of an interpolate effect for instance)&lt;br /&gt;
&lt;br /&gt;
Notice that whenever the stack is modified before this effect, the user should be warned that this modifier depends on the &amp;quot;topology&amp;quot; of the input...&lt;br /&gt;
&lt;br /&gt;
====Pattern along path====&lt;br /&gt;
*Take a group as pattern, and set the style of the output according to it, to allow color full pattern stroke.&lt;br /&gt;
*Allow space  between copies, normal and tangential offsets.&lt;br /&gt;
*Add an option to fuse nearby ends (to allow gluing of the successive patterns into a single connected path for instance)(?)&lt;br /&gt;
*Option to leave the original shape in the output(?) (to allow filling of the area)&lt;br /&gt;
*Use another pattern for the &amp;quot;corners&amp;quot;(?) &lt;br /&gt;
&lt;br /&gt;
====Offset====&lt;br /&gt;
Dynmical offset could naturally be turned into an effect (it is not compatible with lpe at the moment).&lt;br /&gt;
&lt;br /&gt;
====Fillet/champfer====&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Thick/Thin strokes====&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Interpolate====&lt;br /&gt;
Intermediate shapes could follow a distorted path instead of a straight line...&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Knotting effect====&lt;br /&gt;
click on a crossing to flip it. The UI should have a node tool button labeled &amp;quot;flip crossings&amp;quot;. When this is selected, small red circles are drawn at each crossing. A a click in such an area flips the coresponding crossing...&lt;br /&gt;
&lt;br /&gt;
====So many more!!====&lt;br /&gt;
All the effects we have as extensions can become live effects rather easily.&lt;br /&gt;
Please add your propositions here!&lt;br /&gt;
&lt;br /&gt;
====Dynamic drop shadow====&lt;br /&gt;
Currently doable with blur, blur+clip path, or with an array of filters, and probably some more ways but not so nice to make and re-edit (especially re-edit) and it would be good to have an on-canvas real time editing effect like this. Numerical parameters could include: opacity, size (complete size of the shadow), extension (how the intensity of the shadow decay, could be related to a blur factor), color, angle and distance.&lt;br /&gt;
&lt;br /&gt;
Angle and distance should be editable numerically on the effect dialog and those values linked to the canvas position of the shadow and its angle, so its easy to adjust both manually or numerically.&lt;br /&gt;
&lt;br /&gt;
Color could be a plain color or a gradient.&lt;br /&gt;
&lt;br /&gt;
The shadow could have a turbulence/convolution filter applied to it.&lt;br /&gt;
--[[User:Pajarico|Pajarico]] 01:30, 1 March 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
===Perspective===&lt;br /&gt;
Same as the one in ''Effects-&amp;gt;Modify Path'' but editable on-canvas. The editable part is a square bounding box which has four pullable corners to do the perspective (or this is an envelope? I tend to get these two confused...)&lt;br /&gt;
&lt;br /&gt;
If this spec gets approved, a shadow could be rendered in perspective chaining a dynamic drop shadow and a perspective effects together.&lt;br /&gt;
--[[User:Pajarico|Pajarico]] 01:30, 1 March 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
==SVG representation==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API design==&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Lpe-blueprint&amp;diff=22544</id>
		<title>Lpe-blueprint</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Lpe-blueprint&amp;diff=22544"/>
		<updated>2008-03-05T22:26:00Z</updated>

		<summary type="html">&lt;p&gt;Jfb: /* Generic effect: features and UI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''''Live path effects' blue print proposal.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This page aims at gathering propositions about what the (eventually long term) future of live path effects could be. The goal is to have better view of what could be done, what is hard, what is easy, what is worth and what is not,&lt;br /&gt;
list possible alternatives, etc...&lt;br /&gt;
Please add your comment and propositions!&lt;br /&gt;
&lt;br /&gt;
==Live Path Effect alias Modifier stack==&lt;br /&gt;
This is a rather long term proposition, formulated from the Features and UI point of view. The basic observation is  that it is natural to have several successive live path effects applied to the same object, leading to an effect stack. The proposition below mimics the modifier stack found in most 3D software. &lt;br /&gt;
As it is also natural to allow sophisticated objects (groups, or objects carrying effects on their own) as input, edition of nested effects can become tricky (consider for instance non destructive boolean operation of two objects, both carrying effects). This proposition tries to address this point.&lt;br /&gt;
&lt;br /&gt;
To end this introduction, consider the two baby cases below, trying to illustrate the need of &amp;quot;rich objects&amp;quot; (i.e. full svg data) both as input paramters and output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:lpe_need_rich_input.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first example shows a boolean operation (difference) of two objects, but the second one recieves a small offset before doing the difference. This kind of &amp;quot;outline&amp;quot; appears frequently in logo design. Notice that both operand carry an effect. For this operation to be non destructive, stacking of effects should be possible not only on one root object, but also on input parameters. Suppose it's not the case: should the sun be the main input of a &amp;quot;boolean-operation&amp;quot; effect, would the offset width be lost (i.e. not editable anymore); should it be the cloud would the pattern-along-path be lost. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:lpe_need_rich_output.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This second example is about lpe output: alowing full svg data would widely enlarge the range of possibilities, for instance deforming colorfull objects...&lt;br /&gt;
&lt;br /&gt;
===Effect stack: features and UI===&lt;br /&gt;
&lt;br /&gt;
====General usage====&lt;br /&gt;
A side panel is dedicated to the effect stack. On the top is displayed &lt;br /&gt;
the stack itself, and below the parameters of particular effects.&lt;br /&gt;
The picture below summerizes the main features of the stack area.&lt;br /&gt;
&lt;br /&gt;
A side panel is dedicated to the effect stack. On the top is displayed &lt;br /&gt;
the stack itself, and below the parameters of particular effects.&lt;br /&gt;
The picture below summerizes the main features of the stack area. &lt;br /&gt;
&lt;br /&gt;
[[Image:lpestack.png]]&lt;br /&gt;
&lt;br /&gt;
The full stack can be navigated and any effect in the stack can be selected to &lt;br /&gt;
become active. The pannel below the stack displays the active effects &lt;br /&gt;
parameters. In the main window (the canvas), the output of the active effect &lt;br /&gt;
is displayed (ideally, a button near the stack toggles wether the stack is&lt;br /&gt;
blocked at the active level, or runs to its end)&lt;br /&gt;
&lt;br /&gt;
*The stack can be collapsed (1) from the active effect to the original shape. The output of the active effect becomes the new original shape.&lt;br /&gt;
*Each effect can be temporariliy (4) bypassed to save performance and interactivity&lt;br /&gt;
*Effects can be draged and droped to reorganize the stack&lt;br /&gt;
*Effects can copied, pasted, cloned (i.e. shared) between objects (6). Shared effects can be made unique (3).&lt;br /&gt;
*Effects names (i.e. svg id attribute) can be edited.&lt;br /&gt;
&lt;br /&gt;
====Sublevel navigation====&lt;br /&gt;
&lt;br /&gt;
Some effect use other objects (paths, groups...) as parameters. In this case, &lt;br /&gt;
the line of the effect in the stack can be expanded to show the list of all &lt;br /&gt;
object parameters (see fig. 2).&lt;br /&gt;
&lt;br /&gt;
[[Image:lpestackeditmode.png]]&lt;br /&gt;
&lt;br /&gt;
As such objects might be &amp;quot;virtual&amp;quot; (i.e. not available on the canvas) and&lt;br /&gt;
complex (typically groups of objects carrying effects on their own),&lt;br /&gt;
an edit mode is needed for such objects that goes beyond the node editor: &lt;br /&gt;
all operations (style, z-order, path effects...) should be availble. &lt;br /&gt;
&lt;br /&gt;
To this end, selecting an object parameter in the effect stack enters edit mode&lt;br /&gt;
for that object: its own effect stack is inserted in the global stack(bracketed&lt;br /&gt;
with easily identified color), and each level of it can be edited normally (in particular, deeper object parameters might be recursively edited). &lt;br /&gt;
&lt;br /&gt;
Edit mode exits when the effect is not active anymore, i.e.&lt;br /&gt;
*another object parameter is selected, &lt;br /&gt;
*the list of object parameters is closed, &lt;br /&gt;
*another effect is selected, &lt;br /&gt;
*the object is deselected. &lt;br /&gt;
(for convenience, a level in the stack could be pined, to avoid non intentional exits).&lt;br /&gt;
&lt;br /&gt;
'''Note:''' For groups, the first line in the stack should be a &amp;quot;group&amp;quot; pseudo effect, meant to allow selection of objects within the group.&lt;br /&gt;
&lt;br /&gt;
===An alternative: effect stack within object browser===&lt;br /&gt;
Sooner or later, we will have an object browser (more user oriented than the xml browser). If we manage to make it effect-aware, all this should be in fact included in the object browser...&lt;br /&gt;
Object carrying effects would have a special icon as child; clicking it would expand the effect stack, and in turn, each effect would have its parameter objects as childs... &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
===Generic effect: features and UI===&lt;br /&gt;
This section describes the general features desired for lpes.&lt;br /&gt;
&lt;br /&gt;
*input:&lt;br /&gt;
**use any object as input(s): groups, clones, text... &amp;lt;/li&amp;gt;&lt;br /&gt;
**check restrictions for input, and eventually warn the user (eg. accept only connected paths...)&lt;br /&gt;
**object paramters are picked with the mouse, and copied, cloned, or moved into the effect according to user choice (see fig. 1).&lt;br /&gt;
**be aware of the style of the inputs.&lt;br /&gt;
*output:&lt;br /&gt;
**can output full svg data,&lt;br /&gt;
**recieves an extra selection of the input (a list of objects, path componenents or nodes(?) of the input) to restrict, if possible, the effect to this selection. Outputs the relevant selection, for the eventual next effect.&lt;br /&gt;
*interaction:&lt;br /&gt;
**can perform all inkscape operations on the active object (node-edition, z-order, insert new lpe, etc...)&lt;br /&gt;
**pick buttons&lt;br /&gt;
**fancy &amp;quot;tools&amp;quot;: can display it's own temporary objects for user interaction purpose, and define how to react to selection/edition of such objects with the node tool.&lt;br /&gt;
&lt;br /&gt;
===Particular effects: per effect specifications===&lt;br /&gt;
&lt;br /&gt;
====Boolean operation====&lt;br /&gt;
Non destructive operation are usefull. Use Mgsloan work on 2geom-intersection here!&lt;br /&gt;
&lt;br /&gt;
====Transform effect====&lt;br /&gt;
Applies a transform matrix to the object; automatically added before a new &lt;br /&gt;
effect if the object has a non empty transform attribute. This is needed since&lt;br /&gt;
transforms and effects do not commute in general...&lt;br /&gt;
&lt;br /&gt;
====Style effect====&lt;br /&gt;
Applies a given style to the object; added automatically when a new style is&lt;br /&gt;
applied to an object with non empty stack. Usefull to overwrite the default &lt;br /&gt;
style produced by other effects. Should allow to set the priority of each&lt;br /&gt;
style component (replace old style, replace only if not set...)&lt;br /&gt;
&lt;br /&gt;
====Selector====&lt;br /&gt;
This effect selects a part of the input. It has 3 modes:&lt;br /&gt;
*object level: selects object(s) within a group.&lt;br /&gt;
*path level: selects component(s) within a path.&lt;br /&gt;
*[node level: selects node(s) within a path.](? --- delicate)&lt;br /&gt;
&lt;br /&gt;
The subsequent effects should work on this selection, and leave everything else &lt;br /&gt;
unchanged. (usefull to apply different effects to different step of an interpolate effect for instance)&lt;br /&gt;
&lt;br /&gt;
Notice that whenever the stack is modified before this effect, the user should be warned that this modifier depends on the &amp;quot;topology&amp;quot; of the input...&lt;br /&gt;
&lt;br /&gt;
====Pattern along path====&lt;br /&gt;
*Take a group as pattern, and set the style of the output according to it, to allow color full pattern stroke.&lt;br /&gt;
*Allow space  between copies, normal and tangential offsets.&lt;br /&gt;
*Add an option to fuse nearby ends (to allow gluing of the successive patterns into a single connected path for instance)(?)&lt;br /&gt;
*Option to leave the original shape in the output(?) (to allow filling of the area)&lt;br /&gt;
*Use another pattern for the &amp;quot;corners&amp;quot;(?) &lt;br /&gt;
&lt;br /&gt;
====Offset====&lt;br /&gt;
Dynmical offset could naturally be turned into an effect (it is not compatible with lpe at the moment).&lt;br /&gt;
&lt;br /&gt;
====Fillet/champfer====&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Thick/Thin strokes====&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Interpolate====&lt;br /&gt;
Intermediate shapes could follow a distorted path instead of a straight line...&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Knotting effect====&lt;br /&gt;
click on a crossing to swap over/below strands.&lt;br /&gt;
&lt;br /&gt;
====So many more!!====&lt;br /&gt;
All the effects we have as extensions can become live effects rather easily.&lt;br /&gt;
Please add your propositions here!&lt;br /&gt;
&lt;br /&gt;
====Dynamic drop shadow====&lt;br /&gt;
Currently doable with blur, blur+clip path, or with an array of filters, and probably some more ways but not so nice to make and re-edit (especially re-edit) and it would be good to have an on-canvas real time editing effect like this. Numerical parameters could include: opacity, size (complete size of the shadow), extension (how the intensity of the shadow decay, could be related to a blur factor), color, angle and distance.&lt;br /&gt;
&lt;br /&gt;
Angle and distance should be editable numerically on the effect dialog and those values linked to the canvas position of the shadow and its angle, so its easy to adjust both manually or numerically.&lt;br /&gt;
&lt;br /&gt;
Color could be a plain color or a gradient.&lt;br /&gt;
&lt;br /&gt;
The shadow could have a turbulence/convolution filter applied to it.&lt;br /&gt;
--[[User:Pajarico|Pajarico]] 01:30, 1 March 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
===Perspective===&lt;br /&gt;
Same as the one in ''Effects-&amp;gt;Modify Path'' but editable on-canvas. The editable part is a square bounding box which has four pullable corners to do the perspective (or this is an envelope? I tend to get these two confused...)&lt;br /&gt;
&lt;br /&gt;
If this spec gets approved, a shadow could be rendered in perspective chaining a dynamic drop shadow and a perspective effects together.&lt;br /&gt;
--[[User:Pajarico|Pajarico]] 01:30, 1 March 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
==SVG representation==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API design==&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Lpe-blueprint&amp;diff=22534</id>
		<title>Lpe-blueprint</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Lpe-blueprint&amp;diff=22534"/>
		<updated>2008-03-05T22:10:11Z</updated>

		<summary type="html">&lt;p&gt;Jfb: /* Live Path Effect alias Modifier stack */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''''Live path effects' blue print proposal.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This page aims at gathering propositions about what the (eventually long term) future of live path effects could be. The goal is to have better view of what could be done, what is hard, what is easy, what is worth and what is not,&lt;br /&gt;
list possible alternatives, etc...&lt;br /&gt;
Please add your comment and propositions!&lt;br /&gt;
&lt;br /&gt;
==Live Path Effect alias Modifier stack==&lt;br /&gt;
This is a rather long term proposition, formulated from the Features and UI point of view. The basic observation is  that it is natural to have several successive live path effects applied to the same object, leading to an effect stack. The proposition below mimics the modifier stack found in most 3D software. &lt;br /&gt;
As it is also natural to allow sophisticated objects (groups, or objects carrying effects on their own) as input, edition of nested effects can become tricky (consider for instance non destructive boolean operation of two objects, both carrying effects). This proposition tries to address this point.&lt;br /&gt;
&lt;br /&gt;
To end this introduction, consider the two baby cases below, trying to illustrate the need of &amp;quot;rich objects&amp;quot; (i.e. full svg data) both as input paramters and output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:lpe_need_rich_input.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first example shows a boolean operation (difference) of two objects, but the second one recieves a small offset before doing the difference. This kind of &amp;quot;outline&amp;quot; appears frequently in logo design. Notice that both operand carry an effect. For this operation to be non destructive, stacking of effects should be possible not only on one root object, but also on input parameters. Suppose it's not the case: should the sun be the main input of a &amp;quot;boolean-operation&amp;quot; effect, would the offset width be lost (i.e. not editable anymore); should it be the cloud would the pattern-along-path be lost. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:lpe_need_rich_output.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This second example is about lpe output: alowing full svg data would widely enlarge the range of possibilities, for instance deforming colorfull objects...&lt;br /&gt;
&lt;br /&gt;
===Effect stack: features and UI===&lt;br /&gt;
&lt;br /&gt;
====General usage====&lt;br /&gt;
A side panel is dedicated to the effect stack. On the top is displayed &lt;br /&gt;
the stack itself, and below the parameters of particular effects.&lt;br /&gt;
The picture below summerizes the main features of the stack area.&lt;br /&gt;
&lt;br /&gt;
A side panel is dedicated to the effect stack. On the top is displayed &lt;br /&gt;
the stack itself, and below the parameters of particular effects.&lt;br /&gt;
The picture below summerizes the main features of the stack area. &lt;br /&gt;
&lt;br /&gt;
[[Image:lpestack.png]]&lt;br /&gt;
&lt;br /&gt;
The full stack can be navigated and any effect in the stack can be selected to &lt;br /&gt;
become active. The pannel below the stack displays the active effects &lt;br /&gt;
parameters. In the main window (the canvas), the output of the active effect &lt;br /&gt;
is displayed (ideally, a button near the stack toggles wether the stack is&lt;br /&gt;
blocked at the active level, or runs to its end)&lt;br /&gt;
&lt;br /&gt;
*The stack can be collapsed (1) from the active effect to the original shape. The output of the active effect becomes the new original shape.&lt;br /&gt;
*Each effect can be temporariliy (4) bypassed to save performance and interactivity&lt;br /&gt;
*Effects can be draged and droped to reorganize the stack&lt;br /&gt;
*Effects can copied, pasted, cloned (i.e. shared) between objects (6). Shared effects can be made unique (3).&lt;br /&gt;
*Effects names (i.e. svg id attribute) can be edited.&lt;br /&gt;
&lt;br /&gt;
====Sublevel navigation====&lt;br /&gt;
&lt;br /&gt;
Some effect use other objects (paths, groups...) as parameters. In this case, &lt;br /&gt;
the line of the effect in the stack can be expanded to show the list of all &lt;br /&gt;
object parameters (see fig. 2).&lt;br /&gt;
&lt;br /&gt;
[[Image:lpestackeditmode.png]]&lt;br /&gt;
&lt;br /&gt;
As such objects might be &amp;quot;virtual&amp;quot; (i.e. not available on the canvas) and&lt;br /&gt;
complex (typically groups of objects carrying effects on their own),&lt;br /&gt;
an edit mode is needed for such objects that goes beyond the node editor: &lt;br /&gt;
all operations (style, z-order, path effects...) should be availble. &lt;br /&gt;
&lt;br /&gt;
To this end, selecting an object parameter in the effect stack enters edit mode&lt;br /&gt;
for that object: its own effect stack is inserted in the global stack(bracketed&lt;br /&gt;
with easily identified color), and each level of it can be edited normally (in particular, deeper object parameters might be recursively edited). &lt;br /&gt;
&lt;br /&gt;
Edit mode exits when the effect is not active anymore, i.e.&lt;br /&gt;
*another object parameter is selected, &lt;br /&gt;
*the list of object parameters is closed, &lt;br /&gt;
*another effect is selected, &lt;br /&gt;
*the object is deselected. &lt;br /&gt;
(for convenience, a level in the stack could be pined, to avoid non intentional exits).&lt;br /&gt;
&lt;br /&gt;
'''Note:''' For groups, the first line in the stack should be a &amp;quot;group&amp;quot; pseudo effect, meant to allow selection of objects within the group.&lt;br /&gt;
&lt;br /&gt;
===An alternative: effect stack within object browser===&lt;br /&gt;
Sooner or later, we will have an object browser (more user oriented than the xml browser). If we manage to make it effect-aware, all this should be in fact included in the object browser...&lt;br /&gt;
Object carrying effects would have a special icon as child; clicking it would expand the effect stack, and in turn, each effect would have its parameter objects as childs... &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
===Generic effect: features and UI===&lt;br /&gt;
This section describes the general features desired for lpes.&lt;br /&gt;
&lt;br /&gt;
*input:&lt;br /&gt;
**use any object as input(s): groups, clones, text... &amp;lt;/li&amp;gt;&lt;br /&gt;
**check restrictions for input, and eventually warn the user (eg. accept only connected paths...)&lt;br /&gt;
**object paramters are picked with the mouse, and copied, cloned, or moved into the effect according to user choice (see fig. 1).&lt;br /&gt;
**be aware of the style of the inputs.&lt;br /&gt;
*output:&lt;br /&gt;
**can output full svg data,&lt;br /&gt;
**recieves an extra selection of the input (a list of objects, path componenents or nodes(?) of the input) to restrict, if possible, the effect to this selection. Outputs the relevant selection, for the eventual next effect.&lt;br /&gt;
*interaction:&lt;br /&gt;
**can perform all inkscape operations on the active object (node-edition, z-order, lpe, etc...)&lt;br /&gt;
**pick buttons&lt;br /&gt;
**'modal' buttons (?) (only use I can think of atm is for changing crossings in the knot effect)&lt;br /&gt;
&lt;br /&gt;
===Particular effects: per effect specifications===&lt;br /&gt;
&lt;br /&gt;
====Boolean operation====&lt;br /&gt;
Non destructive operation are usefull. Use Mgsloan work on 2geom-intersection here!&lt;br /&gt;
&lt;br /&gt;
====Transform effect====&lt;br /&gt;
Applies a transform matrix to the object; automatically added before a new &lt;br /&gt;
effect if the object has a non empty transform attribute. This is needed since&lt;br /&gt;
transforms and effects do not commute in general...&lt;br /&gt;
&lt;br /&gt;
====Style effect====&lt;br /&gt;
Applies a given style to the object; added automatically when a new style is&lt;br /&gt;
applied to an object with non empty stack. Usefull to overwrite the default &lt;br /&gt;
style produced by other effects. Should allow to set the priority of each&lt;br /&gt;
style component (replace old style, replace only if not set...)&lt;br /&gt;
&lt;br /&gt;
====Selector====&lt;br /&gt;
This effect selects a part of the input. It has 3 modes:&lt;br /&gt;
*object level: selects object(s) within a group.&lt;br /&gt;
*path level: selects component(s) within a path.&lt;br /&gt;
*[node level: selects node(s) within a path.](? --- delicate)&lt;br /&gt;
&lt;br /&gt;
The subsequent effects should work on this selection, and leave everything else &lt;br /&gt;
unchanged. (usefull to apply different effects to different step of an interpolate effect for instance)&lt;br /&gt;
&lt;br /&gt;
Notice that whenever the stack is modified before this effect, the user should be warned that this modifier depends on the &amp;quot;topology&amp;quot; of the input...&lt;br /&gt;
&lt;br /&gt;
====Pattern along path====&lt;br /&gt;
*Take a group as pattern, and set the style of the output according to it, to allow color full pattern stroke.&lt;br /&gt;
*Allow space  between copies, normal and tangential offsets.&lt;br /&gt;
*Add an option to fuse nearby ends (to allow gluing of the successive patterns into a single connected path for instance)(?)&lt;br /&gt;
*Option to leave the original shape in the output(?) (to allow filling of the area)&lt;br /&gt;
*Use another pattern for the &amp;quot;corners&amp;quot;(?) &lt;br /&gt;
&lt;br /&gt;
====Offset====&lt;br /&gt;
Dynmical offset could naturally be turned into an effect (it is not compatible with lpe at the moment).&lt;br /&gt;
&lt;br /&gt;
====Fillet/champfer====&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Thick/Thin strokes====&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Interpolate====&lt;br /&gt;
Intermediate shapes could follow a distorted path instead of a straight line...&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Knotting effect====&lt;br /&gt;
click on a crossing to swap over/below strands.&lt;br /&gt;
&lt;br /&gt;
====So many more!!====&lt;br /&gt;
All the effects we have as extensions can become live effects rather easily.&lt;br /&gt;
Please add your propositions here!&lt;br /&gt;
&lt;br /&gt;
====Dynamic drop shadow====&lt;br /&gt;
Currently doable with blur, blur+clip path, or with an array of filters, and probably some more ways but not so nice to make and re-edit (especially re-edit) and it would be good to have an on-canvas real time editing effect like this. Numerical parameters could include: opacity, size (complete size of the shadow), extension (how the intensity of the shadow decay, could be related to a blur factor), color, angle and distance.&lt;br /&gt;
&lt;br /&gt;
Angle and distance should be editable numerically on the effect dialog and those values linked to the canvas position of the shadow and its angle, so its easy to adjust both manually or numerically.&lt;br /&gt;
&lt;br /&gt;
Color could be a plain color or a gradient.&lt;br /&gt;
&lt;br /&gt;
The shadow could have a turbulence/convolution filter applied to it.&lt;br /&gt;
--[[User:Pajarico|Pajarico]] 01:30, 1 March 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
===Perspective===&lt;br /&gt;
Same as the one in ''Effects-&amp;gt;Modify Path'' but editable on-canvas. The editable part is a square bounding box which has four pullable corners to do the perspective (or this is an envelope? I tend to get these two confused...)&lt;br /&gt;
&lt;br /&gt;
If this spec gets approved, a shadow could be rendered in perspective chaining a dynamic drop shadow and a perspective effects together.&lt;br /&gt;
--[[User:Pajarico|Pajarico]] 01:30, 1 March 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
==SVG representation==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API design==&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=User:User:Jfb&amp;diff=22524</id>
		<title>User:User:Jfb</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=User:User:Jfb&amp;diff=22524"/>
		<updated>2008-03-05T21:38:58Z</updated>

		<summary type="html">&lt;p&gt;Jfb: User:User:Jfb moved to Lpe-blueprint: the new name is what the page is!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Lpe-blueprint]]&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Lpe-blueprint&amp;diff=22514</id>
		<title>Lpe-blueprint</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Lpe-blueprint&amp;diff=22514"/>
		<updated>2008-03-05T21:38:58Z</updated>

		<summary type="html">&lt;p&gt;Jfb: User:User:Jfb moved to Lpe-blueprint: the new name is what the page is!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''''Live path effects' blue print proposal.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This page aims at gathering propositions about what the (eventually long term) future of live path effects could be. The goal is to have better view of what could be done, what is hard, what is easy, what is worth and what is not,&lt;br /&gt;
list possible alternatives, etc...&lt;br /&gt;
Please add your comment and propositions!&lt;br /&gt;
&lt;br /&gt;
==Live Path Effect alias Modifier stack==&lt;br /&gt;
This is a rather long term proposition, formulated from the Features and UI point of view. The basic observation is  that it is natural to have several successive live path effects applied to the same object, leading to an effect stack. The proposition below mimics the modifier stack found in most 3D software. &lt;br /&gt;
As it is also natural to allow sophisticated objects (groups, or objects carrying effects on their own) as input, edition of nested effects can become tricky (consider for instance non destructive boolean operation of two objects, both carrying effects). This proposition tries to address this point.&lt;br /&gt;
&lt;br /&gt;
To end this introduction, consider the two baby cases below, trying to illustrate the need of &amp;quot;rich objects&amp;quot; (i.e. full svg data) both as input paramters and output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:lpe_need_rich_input.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first example shows a boolean operation (difference) of two objects, but the second one recieves a small offset before doing the difference. This kind of &amp;quot;outline&amp;quot; appears frequently in logo design. Notice that both operand carry an effect. To be able to further edit them, stacking of effects should be possible not only on one root object, but also on input parameters. Suppose it's not the case: should the sun be the main input of a &amp;quot;boolean-operation&amp;quot; effect, would the offset width be lost (i.e. not editable anymore); should it be the cloud would the pattern-along-path be lost. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:lpe_need_rich_output.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This second example is about lpe output: alowing full svg data would widely enlarge the range of possibilities, for instance deforming colorfull objects...&lt;br /&gt;
&lt;br /&gt;
===Effect stack: features and UI===&lt;br /&gt;
&lt;br /&gt;
====General usage====&lt;br /&gt;
A side panel is dedicated to the effect stack. On the top is displayed &lt;br /&gt;
the stack itself, and below the parameters of particular effects.&lt;br /&gt;
The picture below summerizes the main features of the stack area.&lt;br /&gt;
&lt;br /&gt;
A side panel is dedicated to the effect stack. On the top is displayed &lt;br /&gt;
the stack itself, and below the parameters of particular effects.&lt;br /&gt;
The picture below summerizes the main features of the stack area. &lt;br /&gt;
&lt;br /&gt;
[[Image:lpestack.png]]&lt;br /&gt;
&lt;br /&gt;
The full stack can be navigated and any effect in the stack can be selected to &lt;br /&gt;
become active. The pannel below the stack displays the active effects &lt;br /&gt;
parameters. In the main window (the canvas), the output of the active effect &lt;br /&gt;
is displayed (ideally, a button near the stack toggles wether the stack is&lt;br /&gt;
blocked at the active level, or runs to its end)&lt;br /&gt;
&lt;br /&gt;
*The stack can be collapsed (1) from the active effect to the original shape. The output of the active effect becomes the new original shape.&lt;br /&gt;
*Each effect can be temporariliy (4) bypassed to save performance and interactivity&lt;br /&gt;
*Effects can be draged and droped to reorganize the stack&lt;br /&gt;
*Effects can copied, pasted, cloned (i.e. shared) between objects (6). Shared effects can be made unique (3).&lt;br /&gt;
*Effects names (i.e. svg id attribute) can be edited.&lt;br /&gt;
&lt;br /&gt;
====Sublevel navigation====&lt;br /&gt;
&lt;br /&gt;
Some effect use other objects (paths, groups...) as parameters. In this case, &lt;br /&gt;
the line of the effect in the stack can be expanded to show the list of all &lt;br /&gt;
object parameters (see fig. 2).&lt;br /&gt;
&lt;br /&gt;
[[Image:lpestackeditmode.png]]&lt;br /&gt;
&lt;br /&gt;
As such objects might be &amp;quot;virtual&amp;quot; (i.e. not available on the canvas) and&lt;br /&gt;
complex (typically groups of objects carrying effects on their own),&lt;br /&gt;
an edit mode is needed for such objects that goes beyond the node editor: &lt;br /&gt;
all operations (style, z-order, path effects...) should be availble. &lt;br /&gt;
&lt;br /&gt;
To this end, selecting an object parameter in the effect stack enters edit mode&lt;br /&gt;
for that object: its own effect stack is inserted in the global stack(bracketed&lt;br /&gt;
with easily identified color), and each level of it can be edited normally (in particular, deeper object parameters might be recursively edited). &lt;br /&gt;
&lt;br /&gt;
Edit mode exits when the effect is not active anymore, i.e.&lt;br /&gt;
*another object parameter is selected, &lt;br /&gt;
*the list of object parameters is closed, &lt;br /&gt;
*another effect is selected, &lt;br /&gt;
*the object is deselected. &lt;br /&gt;
(for convenience, a level in the stack could be pined, to avoid non intentional exits).&lt;br /&gt;
&lt;br /&gt;
'''Note:''' For groups, the first line in the stack should be a &amp;quot;group&amp;quot; pseudo effect, meant to allow selection of objects within the group.&lt;br /&gt;
&lt;br /&gt;
===An alternative: effect stack within object browser===&lt;br /&gt;
Sooner or later, we will have an object browser (more user oriented than the xml browser). If we manage to make it effect-aware, all this should be in fact included in the object browser...&lt;br /&gt;
Object carrying effects would have a special icon as child; clicking it would expand the effect stack, and in turn, each effect would have its parameter objects as childs... &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
===Generic effect: features and UI===&lt;br /&gt;
This section describes the general features desired for lpes.&lt;br /&gt;
&lt;br /&gt;
*input:&lt;br /&gt;
**use any object as input(s): groups, clones, text... &amp;lt;/li&amp;gt;&lt;br /&gt;
**check restrictions for input, and eventually warn the user (eg. accept only connected paths...)&lt;br /&gt;
**object paramters are picked with the mouse, and copied, cloned, or moved into the effect according to user choice (see fig. 1).&lt;br /&gt;
**be aware of the style of the inputs.&lt;br /&gt;
*output:&lt;br /&gt;
**can output full svg data,&lt;br /&gt;
**recieves an extra selection of the input (a list of objects, path componenents or nodes(?) of the input) to restrict, if possible, the effect to this selection. Outputs the relevant selection, for the eventual next effect.&lt;br /&gt;
*interaction:&lt;br /&gt;
**can perform all inkscape operations on the active object (node-edition, z-order, lpe, etc...)&lt;br /&gt;
**pick buttons&lt;br /&gt;
**'modal' buttons (?) (only use I can think of atm is for changing crossings in the knot effect)&lt;br /&gt;
&lt;br /&gt;
===Particular effects: per effect specifications===&lt;br /&gt;
&lt;br /&gt;
====Boolean operation====&lt;br /&gt;
Non destructive operation are usefull. Use Mgsloan work on 2geom-intersection here!&lt;br /&gt;
&lt;br /&gt;
====Transform effect====&lt;br /&gt;
Applies a transform matrix to the object; automatically added before a new &lt;br /&gt;
effect if the object has a non empty transform attribute. This is needed since&lt;br /&gt;
transforms and effects do not commute in general...&lt;br /&gt;
&lt;br /&gt;
====Style effect====&lt;br /&gt;
Applies a given style to the object; added automatically when a new style is&lt;br /&gt;
applied to an object with non empty stack. Usefull to overwrite the default &lt;br /&gt;
style produced by other effects. Should allow to set the priority of each&lt;br /&gt;
style component (replace old style, replace only if not set...)&lt;br /&gt;
&lt;br /&gt;
====Selector====&lt;br /&gt;
This effect selects a part of the input. It has 3 modes:&lt;br /&gt;
*object level: selects object(s) within a group.&lt;br /&gt;
*path level: selects component(s) within a path.&lt;br /&gt;
*[node level: selects node(s) within a path.](? --- delicate)&lt;br /&gt;
&lt;br /&gt;
The subsequent effects should work on this selection, and leave everything else &lt;br /&gt;
unchanged. (usefull to apply different effects to different step of an interpolate effect for instance)&lt;br /&gt;
&lt;br /&gt;
Notice that whenever the stack is modified before this effect, the user should be warned that this modifier depends on the &amp;quot;topology&amp;quot; of the input...&lt;br /&gt;
&lt;br /&gt;
====Pattern along path====&lt;br /&gt;
*Take a group as pattern, and set the style of the output according to it, to allow color full pattern stroke.&lt;br /&gt;
*Allow space  between copies, normal and tangential offsets.&lt;br /&gt;
*Add an option to fuse nearby ends (to allow gluing of the successive patterns into a single connected path for instance)(?)&lt;br /&gt;
*Option to leave the original shape in the output(?) (to allow filling of the area)&lt;br /&gt;
*Use another pattern for the &amp;quot;corners&amp;quot;(?) &lt;br /&gt;
&lt;br /&gt;
====Offset====&lt;br /&gt;
Dynmical offset could naturally be turned into an effect (it is not compatible with lpe at the moment).&lt;br /&gt;
&lt;br /&gt;
====Fillet/champfer====&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Thick/Thin strokes====&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Interpolate====&lt;br /&gt;
Intermediate shapes could follow a distorted path instead of a straight line...&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Knotting effect====&lt;br /&gt;
click on a crossing to swap over/below strands.&lt;br /&gt;
&lt;br /&gt;
====So many more!!====&lt;br /&gt;
All the effects we have as extensions can become live effects rather easily.&lt;br /&gt;
Please add your propositions here!&lt;br /&gt;
&lt;br /&gt;
====Dynamic drop shadow====&lt;br /&gt;
Currently doable with blur, blur+clip path, or with an array of filters, and probably some more ways but not so nice to make and re-edit (especially re-edit) and it would be good to have an on-canvas real time editing effect like this. Numerical parameters could include: opacity, size (complete size of the shadow), extension (how the intensity of the shadow decay, could be related to a blur factor), color, angle and distance.&lt;br /&gt;
&lt;br /&gt;
Angle and distance should be editable numerically on the effect dialog and those values linked to the canvas position of the shadow and its angle, so its easy to adjust both manually or numerically.&lt;br /&gt;
&lt;br /&gt;
Color could be a plain color or a gradient.&lt;br /&gt;
&lt;br /&gt;
The shadow could have a turbulence/convolution filter applied to it.&lt;br /&gt;
--[[User:Pajarico|Pajarico]] 01:30, 1 March 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
===Perspective===&lt;br /&gt;
Same as the one in ''Effects-&amp;gt;Modify Path'' but editable on-canvas. The editable part is a square bounding box which has four pullable corners to do the perspective (or this is an envelope? I tend to get these two confused...)&lt;br /&gt;
&lt;br /&gt;
If this spec gets approved, a shadow could be rendered in perspective chaining a dynamic drop shadow and a perspective effects together.&lt;br /&gt;
--[[User:Pajarico|Pajarico]] 01:30, 1 March 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
==SVG representation==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API design==&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Lpe-blueprint&amp;diff=22504</id>
		<title>Lpe-blueprint</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Lpe-blueprint&amp;diff=22504"/>
		<updated>2008-03-05T21:33:52Z</updated>

		<summary type="html">&lt;p&gt;Jfb: /* Live Path Effect alias Modifier stack */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''''Live path effects' blue print proposal.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This page aims at gathering propositions about what the (eventually long term) future of live path effects could be. The goal is to have better view of what could be done, what is hard, what is easy, what is worth and what is not,&lt;br /&gt;
list possible alternatives, etc...&lt;br /&gt;
Please add your comment and propositions!&lt;br /&gt;
&lt;br /&gt;
==Live Path Effect alias Modifier stack==&lt;br /&gt;
This is a rather long term proposition, formulated from the Features and UI point of view. The basic observation is  that it is natural to have several successive live path effects applied to the same object, leading to an effect stack. The proposition below mimics the modifier stack found in most 3D software. &lt;br /&gt;
As it is also natural to allow sophisticated objects (groups, or objects carrying effects on their own) as input, edition of nested effects can become tricky (consider for instance non destructive boolean operation of two objects, both carrying effects). This proposition tries to address this point.&lt;br /&gt;
&lt;br /&gt;
To end this introduction, consider the two baby cases below, trying to illustrate the need of &amp;quot;rich objects&amp;quot; (i.e. full svg data) both as input paramters and output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:lpe_need_rich_input.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first example shows a boolean operation (difference) of two objects, but the second one recieves a small offset before doing the difference. This kind of &amp;quot;outline&amp;quot; appears frequently in logo design. Notice that both operand carry an effect. To be able to further edit them, stacking of effects should be possible not only on one root object, but also on input parameters. Suppose it's not the case: should the sun be the main input of a &amp;quot;boolean-operation&amp;quot; effect, would the offset width be lost (i.e. not editable anymore); should it be the cloud would the pattern-along-path be lost. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:lpe_need_rich_output.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This second example is about lpe output: alowing full svg data would widely enlarge the range of possibilities, for instance deforming colorfull objects...&lt;br /&gt;
&lt;br /&gt;
===Effect stack: features and UI===&lt;br /&gt;
&lt;br /&gt;
====General usage====&lt;br /&gt;
A side panel is dedicated to the effect stack. On the top is displayed &lt;br /&gt;
the stack itself, and below the parameters of particular effects.&lt;br /&gt;
The picture below summerizes the main features of the stack area.&lt;br /&gt;
&lt;br /&gt;
A side panel is dedicated to the effect stack. On the top is displayed &lt;br /&gt;
the stack itself, and below the parameters of particular effects.&lt;br /&gt;
The picture below summerizes the main features of the stack area. &lt;br /&gt;
&lt;br /&gt;
[[Image:lpestack.png]]&lt;br /&gt;
&lt;br /&gt;
The full stack can be navigated and any effect in the stack can be selected to &lt;br /&gt;
become active. The pannel below the stack displays the active effects &lt;br /&gt;
parameters. In the main window (the canvas), the output of the active effect &lt;br /&gt;
is displayed (ideally, a button near the stack toggles wether the stack is&lt;br /&gt;
blocked at the active level, or runs to its end)&lt;br /&gt;
&lt;br /&gt;
*The stack can be collapsed (1) from the active effect to the original shape. The output of the active effect becomes the new original shape.&lt;br /&gt;
*Each effect can be temporariliy (4) bypassed to save performance and interactivity&lt;br /&gt;
*Effects can be draged and droped to reorganize the stack&lt;br /&gt;
*Effects can copied, pasted, cloned (i.e. shared) between objects (6). Shared effects can be made unique (3).&lt;br /&gt;
*Effects names (i.e. svg id attribute) can be edited.&lt;br /&gt;
&lt;br /&gt;
====Sublevel navigation====&lt;br /&gt;
&lt;br /&gt;
Some effect use other objects (paths, groups...) as parameters. In this case, &lt;br /&gt;
the line of the effect in the stack can be expanded to show the list of all &lt;br /&gt;
object parameters (see fig. 2).&lt;br /&gt;
&lt;br /&gt;
[[Image:lpestackeditmode.png]]&lt;br /&gt;
&lt;br /&gt;
As such objects might be &amp;quot;virtual&amp;quot; (i.e. not available on the canvas) and&lt;br /&gt;
complex (typically groups of objects carrying effects on their own),&lt;br /&gt;
an edit mode is needed for such objects that goes beyond the node editor: &lt;br /&gt;
all operations (style, z-order, path effects...) should be availble. &lt;br /&gt;
&lt;br /&gt;
To this end, selecting an object parameter in the effect stack enters edit mode&lt;br /&gt;
for that object: its own effect stack is inserted in the global stack(bracketed&lt;br /&gt;
with easily identified color), and each level of it can be edited normally (in particular, deeper object parameters might be recursively edited). &lt;br /&gt;
&lt;br /&gt;
Edit mode exits when the effect is not active anymore, i.e.&lt;br /&gt;
*another object parameter is selected, &lt;br /&gt;
*the list of object parameters is closed, &lt;br /&gt;
*another effect is selected, &lt;br /&gt;
*the object is deselected. &lt;br /&gt;
(for convenience, a level in the stack could be pined, to avoid non intentional exits).&lt;br /&gt;
&lt;br /&gt;
'''Note:''' For groups, the first line in the stack should be a &amp;quot;group&amp;quot; pseudo effect, meant to allow selection of objects within the group.&lt;br /&gt;
&lt;br /&gt;
===An alternative: effect stack within object browser===&lt;br /&gt;
Sooner or later, we will have an object browser (more user oriented than the xml browser). If we manage to make it effect-aware, all this should be in fact included in the object browser...&lt;br /&gt;
Object carrying effects would have a special icon as child; clicking it would expand the effect stack, and in turn, each effect would have its parameter objects as childs... &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
===Generic effect: features and UI===&lt;br /&gt;
This section describes the general features desired for lpes.&lt;br /&gt;
&lt;br /&gt;
*input:&lt;br /&gt;
**use any object as input(s): groups, clones, text... &amp;lt;/li&amp;gt;&lt;br /&gt;
**check restrictions for input, and eventually warn the user (eg. accept only connected paths...)&lt;br /&gt;
**object paramters are picked with the mouse, and copied, cloned, or moved into the effect according to user choice (see fig. 1).&lt;br /&gt;
**be aware of the style of the inputs.&lt;br /&gt;
*output:&lt;br /&gt;
**can output full svg data,&lt;br /&gt;
**recieves an extra selection of the input (a list of objects, path componenents or nodes(?) of the input) to restrict, if possible, the effect to this selection. Outputs the relevant selection, for the eventual next effect.&lt;br /&gt;
*interaction:&lt;br /&gt;
**can perform all inkscape operations on the active object (node-edition, z-order, lpe, etc...)&lt;br /&gt;
**pick buttons&lt;br /&gt;
**'modal' buttons (?) (only use I can think of atm is for changing crossings in the knot effect)&lt;br /&gt;
&lt;br /&gt;
===Particular effects: per effect specifications===&lt;br /&gt;
&lt;br /&gt;
====Boolean operation====&lt;br /&gt;
Non destructive operation are usefull. Use Mgsloan work on 2geom-intersection here!&lt;br /&gt;
&lt;br /&gt;
====Transform effect====&lt;br /&gt;
Applies a transform matrix to the object; automatically added before a new &lt;br /&gt;
effect if the object has a non empty transform attribute. This is needed since&lt;br /&gt;
transforms and effects do not commute in general...&lt;br /&gt;
&lt;br /&gt;
====Style effect====&lt;br /&gt;
Applies a given style to the object; added automatically when a new style is&lt;br /&gt;
applied to an object with non empty stack. Usefull to overwrite the default &lt;br /&gt;
style produced by other effects. Should allow to set the priority of each&lt;br /&gt;
style component (replace old style, replace only if not set...)&lt;br /&gt;
&lt;br /&gt;
====Selector====&lt;br /&gt;
This effect selects a part of the input. It has 3 modes:&lt;br /&gt;
*object level: selects object(s) within a group.&lt;br /&gt;
*path level: selects component(s) within a path.&lt;br /&gt;
*[node level: selects node(s) within a path.](? --- delicate)&lt;br /&gt;
&lt;br /&gt;
The subsequent effects should work on this selection, and leave everything else &lt;br /&gt;
unchanged. (usefull to apply different effects to different step of an interpolate effect for instance)&lt;br /&gt;
&lt;br /&gt;
Notice that whenever the stack is modified before this effect, the user should be warned that this modifier depends on the &amp;quot;topology&amp;quot; of the input...&lt;br /&gt;
&lt;br /&gt;
====Pattern along path====&lt;br /&gt;
*Take a group as pattern, and set the style of the output according to it, to allow color full pattern stroke.&lt;br /&gt;
*Allow space  between copies, normal and tangential offsets.&lt;br /&gt;
*Add an option to fuse nearby ends (to allow gluing of the successive patterns into a single connected path for instance)(?)&lt;br /&gt;
*Option to leave the original shape in the output(?) (to allow filling of the area)&lt;br /&gt;
*Use another pattern for the &amp;quot;corners&amp;quot;(?) &lt;br /&gt;
&lt;br /&gt;
====Offset====&lt;br /&gt;
Dynmical offset could naturally be turned into an effect (it is not compatible with lpe at the moment).&lt;br /&gt;
&lt;br /&gt;
====Fillet/champfer====&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Thick/Thin strokes====&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Interpolate====&lt;br /&gt;
Intermediate shapes could follow a distorted path instead of a straight line...&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Knotting effect====&lt;br /&gt;
click on a crossing to swap over/below strands.&lt;br /&gt;
&lt;br /&gt;
====So many more!!====&lt;br /&gt;
All the effects we have as extensions can become live effects rather easily.&lt;br /&gt;
Please add your propositions here!&lt;br /&gt;
&lt;br /&gt;
====Dynamic drop shadow====&lt;br /&gt;
Currently doable with blur, blur+clip path, or with an array of filters, and probably some more ways but not so nice to make and re-edit (especially re-edit) and it would be good to have an on-canvas real time editing effect like this. Numerical parameters could include: opacity, size (complete size of the shadow), extension (how the intensity of the shadow decay, could be related to a blur factor), color, angle and distance.&lt;br /&gt;
&lt;br /&gt;
Angle and distance should be editable numerically on the effect dialog and those values linked to the canvas position of the shadow and its angle, so its easy to adjust both manually or numerically.&lt;br /&gt;
&lt;br /&gt;
Color could be a plain color or a gradient.&lt;br /&gt;
&lt;br /&gt;
The shadow could have a turbulence/convolution filter applied to it.&lt;br /&gt;
--[[User:Pajarico|Pajarico]] 01:30, 1 March 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
===Perspective===&lt;br /&gt;
Same as the one in ''Effects-&amp;gt;Modify Path'' but editable on-canvas. The editable part is a square bounding box which has four pullable corners to do the perspective (or this is an envelope? I tend to get these two confused...)&lt;br /&gt;
&lt;br /&gt;
If this spec gets approved, a shadow could be rendered in perspective chaining a dynamic drop shadow and a perspective effects together.&lt;br /&gt;
--[[User:Pajarico|Pajarico]] 01:30, 1 March 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
==SVG representation==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API design==&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=File:Lpe_need_rich_output.png&amp;diff=22494</id>
		<title>File:Lpe need rich output.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=File:Lpe_need_rich_output.png&amp;diff=22494"/>
		<updated>2008-03-05T21:21:44Z</updated>

		<summary type="html">&lt;p&gt;Jfb: why would it be nice to allow lpe to output full svg data.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;why would it be nice to allow lpe to output full svg data.&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=File:Lpe_need_rich_input.png&amp;diff=22484</id>
		<title>File:Lpe need rich input.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=File:Lpe_need_rich_input.png&amp;diff=22484"/>
		<updated>2008-03-05T21:18:46Z</updated>

		<summary type="html">&lt;p&gt;Jfb: lpe need to use rich input to perform non destructive boolean operations.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;lpe need to use rich input to perform non destructive boolean operations.&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Lpe-blueprint&amp;diff=22474</id>
		<title>Lpe-blueprint</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Lpe-blueprint&amp;diff=22474"/>
		<updated>2008-03-05T21:17:04Z</updated>

		<summary type="html">&lt;p&gt;Jfb: /* Live Path Effect alias Modifier stack */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''''Live path effects' blue print proposal.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This page aims at gathering propositions about what the (eventually long term) future of live path effects could be. The goal is to have better view of what could be done, what is hard, what is easy, what is worth and what is not,&lt;br /&gt;
list possible alternatives, etc...&lt;br /&gt;
Please add your comment and propositions!&lt;br /&gt;
&lt;br /&gt;
==Live Path Effect alias Modifier stack==&lt;br /&gt;
This is a rather long term proposition, formulated from the Features and UI point of view. The basic observation is  that it is natural to have several successive live path effects applied to the same object, leading to an effect stack. The proposition below mimics the modifier stack found in most 3D software. &lt;br /&gt;
As it is also natural to allow sophisticated objects (groups, or objects carrying effects on their own) as input, edition of nested effects can become tricky (consider for instance non destructive boolean operation of two objects, both carrying effects). This proposition tries to address this point.&lt;br /&gt;
&lt;br /&gt;
To end this introduction, consider the two baby cases below, trying to illustrate the need of &amp;quot;rich objects&amp;quot; (i.e. full svg data) both as input paramters and output.&lt;br /&gt;
&lt;br /&gt;
[[Image:lpe_need_rich_input.png]]&lt;br /&gt;
&lt;br /&gt;
The first example shows a boolean operation (difference) of two objects, but the second one recieves a small offset before doing the difference. This kind of &amp;quot;outline&amp;quot; appears frequently in logo design. Notice that both operand carry an effect. To be able to further edit them, stacking of effects should be possible not only on one root object, but also on input parameters. Suppose it's not the case: should the sun be the main input of a &amp;quot;boolean-operation&amp;quot; effect, would the offset width be lost (i.e. not editable anymore); should it be the cloud would the pattern-along-path be lost. &lt;br /&gt;
&lt;br /&gt;
[[Image:lpe_need_rich_output.png]]&lt;br /&gt;
&lt;br /&gt;
===Effect stack: features and UI===&lt;br /&gt;
&lt;br /&gt;
====General usage====&lt;br /&gt;
A side panel is dedicated to the effect stack. On the top is displayed &lt;br /&gt;
the stack itself, and below the parameters of particular effects.&lt;br /&gt;
The picture below summerizes the main features of the stack area.&lt;br /&gt;
&lt;br /&gt;
A side panel is dedicated to the effect stack. On the top is displayed &lt;br /&gt;
the stack itself, and below the parameters of particular effects.&lt;br /&gt;
The picture below summerizes the main features of the stack area. &lt;br /&gt;
&lt;br /&gt;
[[Image:lpestack.png]]&lt;br /&gt;
&lt;br /&gt;
The full stack can be navigated and any effect in the stack can be selected to &lt;br /&gt;
become active. The pannel below the stack displays the active effects &lt;br /&gt;
parameters. In the main window (the canvas), the output of the active effect &lt;br /&gt;
is displayed (ideally, a button near the stack toggles wether the stack is&lt;br /&gt;
blocked at the active level, or runs to its end)&lt;br /&gt;
&lt;br /&gt;
*The stack can be collapsed (1) from the active effect to the original shape. The output of the active effect becomes the new original shape.&lt;br /&gt;
*Each effect can be temporariliy (4) bypassed to save performance and interactivity&lt;br /&gt;
*Effects can be draged and droped to reorganize the stack&lt;br /&gt;
*Effects can copied, pasted, cloned (i.e. shared) between objects (6). Shared effects can be made unique (3).&lt;br /&gt;
*Effects names (i.e. svg id attribute) can be edited.&lt;br /&gt;
&lt;br /&gt;
====Sublevel navigation====&lt;br /&gt;
&lt;br /&gt;
Some effect use other objects (paths, groups...) as parameters. In this case, &lt;br /&gt;
the line of the effect in the stack can be expanded to show the list of all &lt;br /&gt;
object parameters (see fig. 2).&lt;br /&gt;
&lt;br /&gt;
[[Image:lpestackeditmode.png]]&lt;br /&gt;
&lt;br /&gt;
As such objects might be &amp;quot;virtual&amp;quot; (i.e. not available on the canvas) and&lt;br /&gt;
complex (typically groups of objects carrying effects on their own),&lt;br /&gt;
an edit mode is needed for such objects that goes beyond the node editor: &lt;br /&gt;
all operations (style, z-order, path effects...) should be availble. &lt;br /&gt;
&lt;br /&gt;
To this end, selecting an object parameter in the effect stack enters edit mode&lt;br /&gt;
for that object: its own effect stack is inserted in the global stack(bracketed&lt;br /&gt;
with easily identified color), and each level of it can be edited normally (in particular, deeper object parameters might be recursively edited). &lt;br /&gt;
&lt;br /&gt;
Edit mode exits when the effect is not active anymore, i.e.&lt;br /&gt;
*another object parameter is selected, &lt;br /&gt;
*the list of object parameters is closed, &lt;br /&gt;
*another effect is selected, &lt;br /&gt;
*the object is deselected. &lt;br /&gt;
(for convenience, a level in the stack could be pined, to avoid non intentional exits).&lt;br /&gt;
&lt;br /&gt;
'''Note:''' For groups, the first line in the stack should be a &amp;quot;group&amp;quot; pseudo effect, meant to allow selection of objects within the group.&lt;br /&gt;
&lt;br /&gt;
===An alternative: effect stack within object browser===&lt;br /&gt;
Sooner or later, we will have an object browser (more user oriented than the xml browser). If we manage to make it effect-aware, all this should be in fact included in the object browser...&lt;br /&gt;
Object carrying effects would have a special icon as child; clicking it would expand the effect stack, and in turn, each effect would have its parameter objects as childs... &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
===Generic effect: features and UI===&lt;br /&gt;
This section describes the general features desired for lpes.&lt;br /&gt;
&lt;br /&gt;
*input:&lt;br /&gt;
**use any object as input(s): groups, clones, text... &amp;lt;/li&amp;gt;&lt;br /&gt;
**check restrictions for input, and eventually warn the user (eg. accept only connected paths...)&lt;br /&gt;
**object paramters are picked with the mouse, and copied, cloned, or moved into the effect according to user choice (see fig. 1).&lt;br /&gt;
**be aware of the style of the inputs.&lt;br /&gt;
*output:&lt;br /&gt;
**can output full svg data,&lt;br /&gt;
**recieves an extra selection of the input (a list of objects, path componenents or nodes(?) of the input) to restrict, if possible, the effect to this selection. Outputs the relevant selection, for the eventual next effect.&lt;br /&gt;
*interaction:&lt;br /&gt;
**can perform all inkscape operations on the active object (node-edition, z-order, lpe, etc...)&lt;br /&gt;
**pick buttons&lt;br /&gt;
**'modal' buttons (?) (only use I can think of atm is for changing crossings in the knot effect)&lt;br /&gt;
&lt;br /&gt;
===Particular effects: per effect specifications===&lt;br /&gt;
&lt;br /&gt;
====Boolean operation====&lt;br /&gt;
Non destructive operation are usefull. Use Mgsloan work on 2geom-intersection here!&lt;br /&gt;
&lt;br /&gt;
====Transform effect====&lt;br /&gt;
Applies a transform matrix to the object; automatically added before a new &lt;br /&gt;
effect if the object has a non empty transform attribute. This is needed since&lt;br /&gt;
transforms and effects do not commute in general...&lt;br /&gt;
&lt;br /&gt;
====Style effect====&lt;br /&gt;
Applies a given style to the object; added automatically when a new style is&lt;br /&gt;
applied to an object with non empty stack. Usefull to overwrite the default &lt;br /&gt;
style produced by other effects. Should allow to set the priority of each&lt;br /&gt;
style component (replace old style, replace only if not set...)&lt;br /&gt;
&lt;br /&gt;
====Selector====&lt;br /&gt;
This effect selects a part of the input. It has 3 modes:&lt;br /&gt;
*object level: selects object(s) within a group.&lt;br /&gt;
*path level: selects component(s) within a path.&lt;br /&gt;
*[node level: selects node(s) within a path.](? --- delicate)&lt;br /&gt;
&lt;br /&gt;
The subsequent effects should work on this selection, and leave everything else &lt;br /&gt;
unchanged. (usefull to apply different effects to different step of an interpolate effect for instance)&lt;br /&gt;
&lt;br /&gt;
Notice that whenever the stack is modified before this effect, the user should be warned that this modifier depends on the &amp;quot;topology&amp;quot; of the input...&lt;br /&gt;
&lt;br /&gt;
====Pattern along path====&lt;br /&gt;
*Take a group as pattern, and set the style of the output according to it, to allow color full pattern stroke.&lt;br /&gt;
*Allow space  between copies, normal and tangential offsets.&lt;br /&gt;
*Add an option to fuse nearby ends (to allow gluing of the successive patterns into a single connected path for instance)(?)&lt;br /&gt;
*Option to leave the original shape in the output(?) (to allow filling of the area)&lt;br /&gt;
*Use another pattern for the &amp;quot;corners&amp;quot;(?) &lt;br /&gt;
&lt;br /&gt;
====Offset====&lt;br /&gt;
Dynmical offset could naturally be turned into an effect (it is not compatible with lpe at the moment).&lt;br /&gt;
&lt;br /&gt;
====Fillet/champfer====&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Thick/Thin strokes====&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Interpolate====&lt;br /&gt;
Intermediate shapes could follow a distorted path instead of a straight line...&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Knotting effect====&lt;br /&gt;
click on a crossing to swap over/below strands.&lt;br /&gt;
&lt;br /&gt;
====So many more!!====&lt;br /&gt;
All the effects we have as extensions can become live effects rather easily.&lt;br /&gt;
Please add your propositions here!&lt;br /&gt;
&lt;br /&gt;
====Dynamic drop shadow====&lt;br /&gt;
Currently doable with blur, blur+clip path, or with an array of filters, and probably some more ways but not so nice to make and re-edit (especially re-edit) and it would be good to have an on-canvas real time editing effect like this. Numerical parameters could include: opacity, size (complete size of the shadow), extension (how the intensity of the shadow decay, could be related to a blur factor), color, angle and distance.&lt;br /&gt;
&lt;br /&gt;
Angle and distance should be editable numerically on the effect dialog and those values linked to the canvas position of the shadow and its angle, so its easy to adjust both manually or numerically.&lt;br /&gt;
&lt;br /&gt;
Color could be a plain color or a gradient.&lt;br /&gt;
&lt;br /&gt;
The shadow could have a turbulence/convolution filter applied to it.&lt;br /&gt;
--[[User:Pajarico|Pajarico]] 01:30, 1 March 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
===Perspective===&lt;br /&gt;
Same as the one in ''Effects-&amp;gt;Modify Path'' but editable on-canvas. The editable part is a square bounding box which has four pullable corners to do the perspective (or this is an envelope? I tend to get these two confused...)&lt;br /&gt;
&lt;br /&gt;
If this spec gets approved, a shadow could be rendered in perspective chaining a dynamic drop shadow and a perspective effects together.&lt;br /&gt;
--[[User:Pajarico|Pajarico]] 01:30, 1 March 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
==SVG representation==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API design==&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Lpe-blueprint&amp;diff=22144</id>
		<title>Lpe-blueprint</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Lpe-blueprint&amp;diff=22144"/>
		<updated>2008-02-28T15:02:40Z</updated>

		<summary type="html">&lt;p&gt;Jfb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''''Live path effects' blue print proposal.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This page aims at gathering propositions about what the (eventually long term) future of live path effects could be. The goal is to have better view of what could be done, what is hard, what is easy, what is worth and what is not,&lt;br /&gt;
list possible alternatives, etc...&lt;br /&gt;
Please add your comment and propositions!&lt;br /&gt;
&lt;br /&gt;
==Live Path Effect alias Modifier stack==&lt;br /&gt;
This is a rather long term proposition, formulated from the Features and UI point of view. The basic observation is  that it is natural to have several successive live path effects applied to the same object, leading to an effect stack. The proposition below mimics the modifier stack found in most 3D software. &lt;br /&gt;
As it is also natural to allow sophisticated objects (groups, or objects carrying effects on their own) as input, edition of nested effects can become tricky (consider for instance non destructive boolean operation of two objects, both carrying effects). This proposition tries to address this point.&lt;br /&gt;
&lt;br /&gt;
===Effect stack: features and UI===&lt;br /&gt;
&lt;br /&gt;
====General usage====&lt;br /&gt;
A side panel is dedicated to the effect stack. On the top is displayed &lt;br /&gt;
the stack itself, and below the parameters of particular effects.&lt;br /&gt;
The picture below summerizes the main features of the stack area.&lt;br /&gt;
&lt;br /&gt;
A side panel is dedicated to the effect stack. On the top is displayed &lt;br /&gt;
the stack itself, and below the parameters of particular effects.&lt;br /&gt;
The picture below summerizes the main features of the stack area. &lt;br /&gt;
&lt;br /&gt;
[[Image:lpestack.png]]&lt;br /&gt;
&lt;br /&gt;
The full stack can be navigated and any effect in the stack can be selected to &lt;br /&gt;
become active. The pannel below the stack displays the active effects &lt;br /&gt;
parameters. In the main window (the canvas), the output of the active effect &lt;br /&gt;
is displayed (ideally, a button near the stack toggles wether the stack is&lt;br /&gt;
blocked at the active level, or runs to its end)&lt;br /&gt;
&lt;br /&gt;
*The stack can be collapsed (1) from the active effect to the original shape. The output of the active effect becomes the new original shape.&lt;br /&gt;
*Each effect can be temporariliy (4) bypassed to save performance and interactivity&lt;br /&gt;
*Effects can be draged and droped to reorganize the stack&lt;br /&gt;
*Effects can copied, pasted, cloned (i.e. shared) between objects (6). Shared effects can be made unique (3).&lt;br /&gt;
*Effects names (i.e. svg id attribute) can be edited.&lt;br /&gt;
&lt;br /&gt;
====Sublevel navigation====&lt;br /&gt;
&lt;br /&gt;
Some effect use other objects (paths, groups...) as parameters. In this case, &lt;br /&gt;
the line of the effect in the stack can be expanded to show the list of all &lt;br /&gt;
object parameters (see fig. 2).&lt;br /&gt;
&lt;br /&gt;
[[Image:lpestackeditmode.png]]&lt;br /&gt;
&lt;br /&gt;
As such objects might be &amp;quot;virtual&amp;quot; (i.e. not available on the canvas) and&lt;br /&gt;
complex (typically groups of objects carrying effects on their own),&lt;br /&gt;
an edit mode is needed for such objects that goes beyond the node editor: &lt;br /&gt;
all operations (style, z-order, path effects...) should be availble. &lt;br /&gt;
&lt;br /&gt;
To this end, selecting an object parameter in the effect stack enters edit mode&lt;br /&gt;
for that object: its own effect stack is inserted in the global stack(bracketed&lt;br /&gt;
with easily identified color), and each level of it can be edited normally (in particular, deeper object parameters might be recursively edited). &lt;br /&gt;
&lt;br /&gt;
Edit mode exits when the effect is not active anymore, i.e.&lt;br /&gt;
*another object parameter is selected, &lt;br /&gt;
*the list of object parameters is closed, &lt;br /&gt;
*another effect is selected, &lt;br /&gt;
*the object is deselected. &lt;br /&gt;
(for convenience, a level in the stack could be pined, to avoid non intentional exits).&lt;br /&gt;
&lt;br /&gt;
'''Note:''' For groups, the first line in the stack should be a &amp;quot;group&amp;quot; pseudo effect, meant to allow selection of objects within the group.&lt;br /&gt;
&lt;br /&gt;
===An alternative: effect stack within object browser===&lt;br /&gt;
Sooner or later, we will have an object browser (more user oriented than the xml browser). If we manage to make it effect-aware, all this should be in fact included in the object browser...&lt;br /&gt;
Object carrying effects would have a special icon as child; clicking it would expand the effect stack, and in turn, each effect would have its parameter objects as childs... &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
===Generic effect: features and UI===&lt;br /&gt;
This section describes the general features desired for lpes.&lt;br /&gt;
&lt;br /&gt;
*input:&lt;br /&gt;
**use any object as input(s): groups, clones, text... &amp;lt;/li&amp;gt;&lt;br /&gt;
**check restrictions for input, and eventually warn the user (eg. accept only connected paths...)&lt;br /&gt;
**object paramters are picked with the mouse, and copied, cloned, or moved into the effect according to user choice (see fig. 1).&lt;br /&gt;
**be aware of the style of the inputs.&lt;br /&gt;
*output:&lt;br /&gt;
**can output full svg data,&lt;br /&gt;
**recieves an extra selection of the input (a list of objects, path componenents or nodes(?) of the input) to restrict, if possible, the effect to this selection. Outputs the relevant selection, for the eventual next effect.&lt;br /&gt;
*interaction:&lt;br /&gt;
**can perform all inkscape operations on the active object (node-edition, z-order, lpe, etc...)&lt;br /&gt;
**pick buttons&lt;br /&gt;
**'modal' buttons (?) (only use I can think of atm is for changing crossings in the knot effect)&lt;br /&gt;
&lt;br /&gt;
===Particular effects: per effect specifications===&lt;br /&gt;
&lt;br /&gt;
====Boolean operation====&lt;br /&gt;
Non destructive operation are usefull. Use Mgsloan work on 2geom-intersection here!&lt;br /&gt;
&lt;br /&gt;
====Transform effect====&lt;br /&gt;
Applies a transform matrix to the object; automatically added before a new &lt;br /&gt;
effect if the object has a non empty transform attribute. This is needed since&lt;br /&gt;
transforms and effects do not commute in general...&lt;br /&gt;
&lt;br /&gt;
====Style effect====&lt;br /&gt;
Applies a given style to the object; added automatically when a new style is&lt;br /&gt;
applied to an object with non empty stack. Usefull to overwrite the default &lt;br /&gt;
style produced by other effects. Should allow to set the priority of each&lt;br /&gt;
style component (replace old style, replace only if not set...)&lt;br /&gt;
&lt;br /&gt;
====Selector====&lt;br /&gt;
This effect selects a part of the input. It has 3 modes:&lt;br /&gt;
*object level: selects object(s) within a group.&lt;br /&gt;
*path level: selects component(s) within a path.&lt;br /&gt;
*[node level: selects node(s) within a path.](? --- delicate)&lt;br /&gt;
&lt;br /&gt;
The subsequent effects should work on this selection, and leave everything else &lt;br /&gt;
unchanged. (usefull to apply different effects to different step of an interpolate effect for instance)&lt;br /&gt;
&lt;br /&gt;
Notice that whenever the stack is modified before this effect, the user should be warned that this modifier depends on the &amp;quot;topology&amp;quot; of the input...&lt;br /&gt;
&lt;br /&gt;
====Pattern along path====&lt;br /&gt;
*Take a group as pattern, and set the style of the output according to it, to allow color full pattern stroke.&lt;br /&gt;
*Allow space  between copies, normal and tangential offsets.&lt;br /&gt;
*Add an option to fuse nearby ends (to allow gluing of the successive patterns into a single connected path for instance)(?)&lt;br /&gt;
*Option to leave the original shape in the output(?) (to allow filling of the area)&lt;br /&gt;
*Use another pattern for the &amp;quot;corners&amp;quot;(?) &lt;br /&gt;
&lt;br /&gt;
====Offset====&lt;br /&gt;
Dynmical offset could naturally be turned into an effect (it is not compatible with lpe at the moment).&lt;br /&gt;
&lt;br /&gt;
====Fillet/champfer====&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Thick/Thin strokes====&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Interpolate====&lt;br /&gt;
Intermediate shapes could follow a distorted path instead of a straight line...&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Knotting effect====&lt;br /&gt;
click on a crossing to swap over/below strands.&lt;br /&gt;
&lt;br /&gt;
====So many more!!====&lt;br /&gt;
All the effects we have as extensions can become live effects rather easily.&lt;br /&gt;
Please add your propositions here!&lt;br /&gt;
&lt;br /&gt;
==SVG representation==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API design==&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Lpe-blueprint&amp;diff=22094</id>
		<title>Lpe-blueprint</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Lpe-blueprint&amp;diff=22094"/>
		<updated>2008-02-28T00:56:22Z</updated>

		<summary type="html">&lt;p&gt;Jfb: /* Boolean operation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''''Live path effects' blue print proposal.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This page aims at gathering propositions about what the (eventually long term) future of live path effects could be. The goal is to have better view of what could be done, what is hard, what is easy, what is worth and what is not,&lt;br /&gt;
list possible alternatives, etc...&lt;br /&gt;
Please add your comment and propositions!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Live Path Effect alias Modifier stack==&lt;br /&gt;
This is a rather long term proposition, formulated from the Features and UI point of view. The basic observation is  that it is natural to have several successive live path effects applied to the same object, leading to an effect stack. The proposition below mimics the modifier stack found in most 3D software. &lt;br /&gt;
As it is also natural to allow sophisticated objects (groups, or objects carrying effects on their own) as input, edition of nested effects can become tricky (consider for instance non destructive boolean operation of two objects, both carrying effects). This proposition tries to address this point.&lt;br /&gt;
&lt;br /&gt;
===Effect stack: features and UI===&lt;br /&gt;
&lt;br /&gt;
====General usage====&lt;br /&gt;
A side panel is dedicated to the effect stack. On the top is displayed &lt;br /&gt;
the stack itself, and below the parameters of particular effects.&lt;br /&gt;
The picture below summerizes the main features of the stack area.&lt;br /&gt;
&lt;br /&gt;
A side panel is dedicated to the effect stack. On the top is displayed &lt;br /&gt;
the stack itself, and below the parameters of particular effects.&lt;br /&gt;
The picture below summerizes the main features of the stack area. &lt;br /&gt;
&lt;br /&gt;
[[Image:lpestack.png]]&lt;br /&gt;
&lt;br /&gt;
The full stack can be navigated and any effect in the stack can be selected to &lt;br /&gt;
become active. The pannel below the stack displays the active effects &lt;br /&gt;
parameters. In the main window (the canvas), the output of the active effect &lt;br /&gt;
is displayed (ideally, a button near the stack toggles wether the stack is&lt;br /&gt;
blocked at the active level, or runs to its end)&lt;br /&gt;
&lt;br /&gt;
*The stack can be collapsed (1) from the active effect to the original shape. The output of the active effect becomes the new original shape.&lt;br /&gt;
*Each effect can be temporariliy (4) bypassed to save performance and interactivity&lt;br /&gt;
*Effects can be draged and droped to reorganize the stack&lt;br /&gt;
*Effects can copied, pasted, cloned (i.e. shared) between objects (6). Shared effects can be made unique (3).&lt;br /&gt;
*Effects names (i.e. svg id attribute) can be edited.&lt;br /&gt;
&lt;br /&gt;
====Sublevel navigation====&lt;br /&gt;
&lt;br /&gt;
Some effect use other objects (paths, groups...) as parameters. In this case, &lt;br /&gt;
the line of the effect in the stack can be expanded to show the list of all &lt;br /&gt;
object parameters (see fig. 2).&lt;br /&gt;
&lt;br /&gt;
[[Image:lpestackeditmode.png]]&lt;br /&gt;
&lt;br /&gt;
As such objects might be &amp;quot;virtual&amp;quot; (i.e. not available on the canvas) and&lt;br /&gt;
complex (typically groups of objects carrying effects on their own),&lt;br /&gt;
an edit mode is needed for such objects that goes beyond the node editor: &lt;br /&gt;
all operations (style, z-order, path effects...) should be availble. &lt;br /&gt;
&lt;br /&gt;
To this end, selecting an object parameter in the effect stack enters edit mode&lt;br /&gt;
for that object: its own effect stack is inserted in the global stack(bracketed&lt;br /&gt;
with easily identified color), and each level of it can be edited normally (in particular, deeper object parameters might be recursively edited). &lt;br /&gt;
&lt;br /&gt;
Edit mode exits when the effect is not active anymore, i.e.&lt;br /&gt;
*another object parameter is selected, &lt;br /&gt;
*the list of object parameters is closed, &lt;br /&gt;
*another effect is selected, &lt;br /&gt;
*the object is deselected. &lt;br /&gt;
(for convenience, a level in the stack could be pined, to avoid non intentional exits).&lt;br /&gt;
&lt;br /&gt;
'''Note:''' For groups, the first line in the stack should be a &amp;quot;group&amp;quot; pseudo effect, meant to allow selection of objects within the group.&lt;br /&gt;
&lt;br /&gt;
===Generic effect: features and UI===&lt;br /&gt;
This section describes the general features desired for lpes.&lt;br /&gt;
&lt;br /&gt;
*input:&lt;br /&gt;
**use any object as input(s): groups, clones, text... &amp;lt;/li&amp;gt;&lt;br /&gt;
**check restrictions for input, and eventually warn the user (eg. accept only connected paths...)&lt;br /&gt;
**object paramters are picked with the mouse, and copied, cloned, or moved into the effect according to user choice (see fig. 1).&lt;br /&gt;
**be aware of the style of the inputs.&lt;br /&gt;
*output:&lt;br /&gt;
**can output full svg data,&lt;br /&gt;
**recieves an extra selection of the input (a list of objects, path componenents or nodes(?) of the input) to restrict, if possible, the effect to this selection. Outputs the relevant selection, for the eventual next effect.&lt;br /&gt;
*interaction:&lt;br /&gt;
**can perform all inkscape operations on the active object (node-edition, z-order, lpe, etc...)&lt;br /&gt;
**pick buttons&lt;br /&gt;
**'modal' buttons (?) (only use I can think of atm is for changing crossings in the knot effect)&lt;br /&gt;
&lt;br /&gt;
===Particular effects: per effect specifications===&lt;br /&gt;
&lt;br /&gt;
====Boolean operation====&lt;br /&gt;
Non destructive operation are usefull. Use Mgsloan work on 2geom-intersection here!&lt;br /&gt;
&lt;br /&gt;
====Transform effect====&lt;br /&gt;
Applies a transform matrix to the object; automatically added before a new &lt;br /&gt;
effect if the object has a non empty transform attribute. This is needed since&lt;br /&gt;
transforms and effects do not commute in general...&lt;br /&gt;
&lt;br /&gt;
====Style effect====&lt;br /&gt;
Applies a given style to the object; added automatically when a new style is&lt;br /&gt;
applied to an object with non empty stack. Usefull to overwrite the default &lt;br /&gt;
style produced by other effects. Should allow to set the priority of each&lt;br /&gt;
style component (replace old style, replace only if not set...)&lt;br /&gt;
&lt;br /&gt;
====Selector====&lt;br /&gt;
This effect selects a part of the input. It has 3 modes:&lt;br /&gt;
*object level: selects object(s) within a group.&lt;br /&gt;
*path level: selects component(s) within a path.&lt;br /&gt;
*[node level: selects node(s) within a path.](? --- delicate)&lt;br /&gt;
&lt;br /&gt;
The subsequent effects should work on this selection, and leave everything else &lt;br /&gt;
unchanged. (usefull to apply different effects to different step of an interpolate effect for instance)&lt;br /&gt;
&lt;br /&gt;
Notice that whenever the stack is modified before this effect, the user should be warned that this modifier depends on the &amp;quot;topology&amp;quot; of the input...&lt;br /&gt;
&lt;br /&gt;
====Pattern along path====&lt;br /&gt;
*Take a group as pattern, and set the style of the output according to it, to allow color full pattern stroke.&lt;br /&gt;
*Allow space  between copies, normal and tangential offsets.&lt;br /&gt;
*Add an option to fuse nearby ends (to allow gluing of the successive patterns into a single connected path for instance)(?)&lt;br /&gt;
*Option to leave the original shape in the output(?) (to allow filling of the area)&lt;br /&gt;
*Use another pattern for the &amp;quot;corners&amp;quot;(?) &lt;br /&gt;
&lt;br /&gt;
====Offset====&lt;br /&gt;
Dynmical offset could naturally be turned into an effect (it is not compatible with lpe at the moment).&lt;br /&gt;
&lt;br /&gt;
====Fillet/champfer====&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Thick/Thin strokes====&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Interpolate====&lt;br /&gt;
Intermediate shapes could follow a distorted path instead of a straight line...&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Knotting effect====&lt;br /&gt;
click on a crossing to swap over/below strands.&lt;br /&gt;
&lt;br /&gt;
====So many more!!====&lt;br /&gt;
All the effects we have as extensions can become live effects rather easily.&lt;br /&gt;
Please add your propositions here!&lt;br /&gt;
&lt;br /&gt;
==SVG representation==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API design==&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Lpe-blueprint&amp;diff=22084</id>
		<title>Lpe-blueprint</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Lpe-blueprint&amp;diff=22084"/>
		<updated>2008-02-28T00:19:31Z</updated>

		<summary type="html">&lt;p&gt;Jfb: /* Sublevel navigation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''''Live path effects' blue print proposal.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This page aims at gathering propositions about what the (eventually long term) future of live path effects could be. The goal is to have better view of what could be done, what is hard, what is easy, what is worth and what is not,&lt;br /&gt;
list possible alternatives, etc...&lt;br /&gt;
Please add your comment and propositions!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Live Path Effect alias Modifier stack==&lt;br /&gt;
This is a rather long term proposition, formulated from the Features and UI point of view. The basic observation is  that it is natural to have several successive live path effects applied to the same object, leading to an effect stack. The proposition below mimics the modifier stack found in most 3D software. &lt;br /&gt;
As it is also natural to allow sophisticated objects (groups, or objects carrying effects on their own) as input, edition of nested effects can become tricky (consider for instance non destructive boolean operation of two objects, both carrying effects). This proposition tries to address this point.&lt;br /&gt;
&lt;br /&gt;
===Effect stack: features and UI===&lt;br /&gt;
&lt;br /&gt;
====General usage====&lt;br /&gt;
A side panel is dedicated to the effect stack. On the top is displayed &lt;br /&gt;
the stack itself, and below the parameters of particular effects.&lt;br /&gt;
The picture below summerizes the main features of the stack area.&lt;br /&gt;
&lt;br /&gt;
A side panel is dedicated to the effect stack. On the top is displayed &lt;br /&gt;
the stack itself, and below the parameters of particular effects.&lt;br /&gt;
The picture below summerizes the main features of the stack area. &lt;br /&gt;
&lt;br /&gt;
[[Image:lpestack.png]]&lt;br /&gt;
&lt;br /&gt;
The full stack can be navigated and any effect in the stack can be selected to &lt;br /&gt;
become active. The pannel below the stack displays the active effects &lt;br /&gt;
parameters. In the main window (the canvas), the output of the active effect &lt;br /&gt;
is displayed (ideally, a button near the stack toggles wether the stack is&lt;br /&gt;
blocked at the active level, or runs to its end)&lt;br /&gt;
&lt;br /&gt;
*The stack can be collapsed (1) from the active effect to the original shape. The output of the active effect becomes the new original shape.&lt;br /&gt;
*Each effect can be temporariliy (4) bypassed to save performance and interactivity&lt;br /&gt;
*Effects can be draged and droped to reorganize the stack&lt;br /&gt;
*Effects can copied, pasted, cloned (i.e. shared) between objects (6). Shared effects can be made unique (3).&lt;br /&gt;
*Effects names (i.e. svg id attribute) can be edited.&lt;br /&gt;
&lt;br /&gt;
====Sublevel navigation====&lt;br /&gt;
&lt;br /&gt;
Some effect use other objects (paths, groups...) as parameters. In this case, &lt;br /&gt;
the line of the effect in the stack can be expanded to show the list of all &lt;br /&gt;
object parameters (see fig. 2).&lt;br /&gt;
&lt;br /&gt;
[[Image:lpestackeditmode.png]]&lt;br /&gt;
&lt;br /&gt;
As such objects might be &amp;quot;virtual&amp;quot; (i.e. not available on the canvas) and&lt;br /&gt;
complex (typically groups of objects carrying effects on their own),&lt;br /&gt;
an edit mode is needed for such objects that goes beyond the node editor: &lt;br /&gt;
all operations (style, z-order, path effects...) should be availble. &lt;br /&gt;
&lt;br /&gt;
To this end, selecting an object parameter in the effect stack enters edit mode&lt;br /&gt;
for that object: its own effect stack is inserted in the global stack(bracketed&lt;br /&gt;
with easily identified color), and each level of it can be edited normally (in particular, deeper object parameters might be recursively edited). &lt;br /&gt;
&lt;br /&gt;
Edit mode exits when the effect is not active anymore, i.e.&lt;br /&gt;
*another object parameter is selected, &lt;br /&gt;
*the list of object parameters is closed, &lt;br /&gt;
*another effect is selected, &lt;br /&gt;
*the object is deselected. &lt;br /&gt;
(for convenience, a level in the stack could be pined, to avoid non intentional exits).&lt;br /&gt;
&lt;br /&gt;
'''Note:''' For groups, the first line in the stack should be a &amp;quot;group&amp;quot; pseudo effect, meant to allow selection of objects within the group.&lt;br /&gt;
&lt;br /&gt;
===Generic effect: features and UI===&lt;br /&gt;
This section describes the general features desired for lpes.&lt;br /&gt;
&lt;br /&gt;
*input:&lt;br /&gt;
**use any object as input(s): groups, clones, text... &amp;lt;/li&amp;gt;&lt;br /&gt;
**check restrictions for input, and eventually warn the user (eg. accept only connected paths...)&lt;br /&gt;
**object paramters are picked with the mouse, and copied, cloned, or moved into the effect according to user choice (see fig. 1).&lt;br /&gt;
**be aware of the style of the inputs.&lt;br /&gt;
*output:&lt;br /&gt;
**can output full svg data,&lt;br /&gt;
**recieves an extra selection of the input (a list of objects, path componenents or nodes(?) of the input) to restrict, if possible, the effect to this selection. Outputs the relevant selection, for the eventual next effect.&lt;br /&gt;
*interaction:&lt;br /&gt;
**can perform all inkscape operations on the active object (node-edition, z-order, lpe, etc...)&lt;br /&gt;
**pick buttons&lt;br /&gt;
**'modal' buttons (?) (only use I can think of atm is for changing crossings in the knot effect)&lt;br /&gt;
&lt;br /&gt;
===Particular effects: per effect specifications===&lt;br /&gt;
&lt;br /&gt;
====Boolean operation====&lt;br /&gt;
Non destructive operation are usefull. No particular comment.&lt;br /&gt;
&lt;br /&gt;
====Transform effect====&lt;br /&gt;
Applies a transform matrix to the object; automatically added before a new &lt;br /&gt;
effect if the object has a non empty transform attribute. This is needed since&lt;br /&gt;
transforms and effects do not commute in general...&lt;br /&gt;
&lt;br /&gt;
====Style effect====&lt;br /&gt;
Applies a given style to the object; added automatically when a new style is&lt;br /&gt;
applied to an object with non empty stack. Usefull to overwrite the default &lt;br /&gt;
style produced by other effects. Should allow to set the priority of each&lt;br /&gt;
style component (replace old style, replace only if not set...)&lt;br /&gt;
&lt;br /&gt;
====Selector====&lt;br /&gt;
This effect selects a part of the input. It has 3 modes:&lt;br /&gt;
*object level: selects object(s) within a group.&lt;br /&gt;
*path level: selects component(s) within a path.&lt;br /&gt;
*[node level: selects node(s) within a path.](? --- delicate)&lt;br /&gt;
&lt;br /&gt;
The subsequent effects should work on this selection, and leave everything else &lt;br /&gt;
unchanged. (usefull to apply different effects to different step of an interpolate effect for instance)&lt;br /&gt;
&lt;br /&gt;
Notice that whenever the stack is modified before this effect, the user should be warned that this modifier depends on the &amp;quot;topology&amp;quot; of the input...&lt;br /&gt;
&lt;br /&gt;
====Pattern along path====&lt;br /&gt;
*Take a group as pattern, and set the style of the output according to it, to allow color full pattern stroke.&lt;br /&gt;
*Allow space  between copies, normal and tangential offsets.&lt;br /&gt;
*Add an option to fuse nearby ends (to allow gluing of the successive patterns into a single connected path for instance)(?)&lt;br /&gt;
*Option to leave the original shape in the output(?) (to allow filling of the area)&lt;br /&gt;
*Use another pattern for the &amp;quot;corners&amp;quot;(?) &lt;br /&gt;
&lt;br /&gt;
====Offset====&lt;br /&gt;
Dynmical offset could naturally be turned into an effect (it is not compatible with lpe at the moment).&lt;br /&gt;
&lt;br /&gt;
====Fillet/champfer====&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Thick/Thin strokes====&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Interpolate====&lt;br /&gt;
Intermediate shapes could follow a distorted path instead of a straight line...&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Knotting effect====&lt;br /&gt;
click on a crossing to swap over/below strands.&lt;br /&gt;
&lt;br /&gt;
====So many more!!====&lt;br /&gt;
All the effects we have as extensions can become live effects rather easily.&lt;br /&gt;
Please add your propositions here!&lt;br /&gt;
&lt;br /&gt;
==SVG representation==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API design==&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Lpe-blueprint&amp;diff=22074</id>
		<title>Lpe-blueprint</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Lpe-blueprint&amp;diff=22074"/>
		<updated>2008-02-28T00:06:28Z</updated>

		<summary type="html">&lt;p&gt;Jfb: /* So many more!! */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''''Live path effects' blue print proposal.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This page aims at gathering propositions about what the (eventually long term) future of live path effects could be. The goal is to have better view of what could be done, what is hard, what is easy, what is worth and what is not,&lt;br /&gt;
list possible alternatives, etc...&lt;br /&gt;
Please add your comment and propositions!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Live Path Effect alias Modifier stack==&lt;br /&gt;
This is a rather long term proposition, formulated from the Features and UI point of view. The basic observation is  that it is natural to have several successive live path effects applied to the same object, leading to an effect stack. The proposition below mimics the modifier stack found in most 3D software. &lt;br /&gt;
As it is also natural to allow sophisticated objects (groups, or objects carrying effects on their own) as input, edition of nested effects can become tricky (consider for instance non destructive boolean operation of two objects, both carrying effects). This proposition tries to address this point.&lt;br /&gt;
&lt;br /&gt;
===Effect stack: features and UI===&lt;br /&gt;
&lt;br /&gt;
====General usage====&lt;br /&gt;
A side panel is dedicated to the effect stack. On the top is displayed &lt;br /&gt;
the stack itself, and below the parameters of particular effects.&lt;br /&gt;
The picture below summerizes the main features of the stack area.&lt;br /&gt;
&lt;br /&gt;
A side panel is dedicated to the effect stack. On the top is displayed &lt;br /&gt;
the stack itself, and below the parameters of particular effects.&lt;br /&gt;
The picture below summerizes the main features of the stack area. &lt;br /&gt;
&lt;br /&gt;
[[Image:lpestack.png]]&lt;br /&gt;
&lt;br /&gt;
The full stack can be navigated and any effect in the stack can be selected to &lt;br /&gt;
become active. The pannel below the stack displays the active effects &lt;br /&gt;
parameters. In the main window (the canvas), the output of the active effect &lt;br /&gt;
is displayed (ideally, a button near the stack toggles wether the stack is&lt;br /&gt;
blocked at the active level, or runs to its end)&lt;br /&gt;
&lt;br /&gt;
*The stack can be collapsed (1) from the active effect to the original shape. The output of the active effect becomes the new original shape.&lt;br /&gt;
*Each effect can be temporariliy (4) bypassed to save performance and interactivity&lt;br /&gt;
*Effects can be draged and droped to reorganize the stack&lt;br /&gt;
*Effects can copied, pasted, cloned (i.e. shared) between objects (6). Shared effects can be made unique (3).&lt;br /&gt;
*Effects names (i.e. svg id attribute) can be edited.&lt;br /&gt;
&lt;br /&gt;
====Sublevel navigation====&lt;br /&gt;
&lt;br /&gt;
Some effect use other objects (paths, groups...) as parameters. In this case, &lt;br /&gt;
the line of the effect in the stack can be expanded to show the list of all &lt;br /&gt;
object parameters (see fig. 2).&lt;br /&gt;
&lt;br /&gt;
[[Image:lpestackeditmode.png]]&lt;br /&gt;
&lt;br /&gt;
As such objects might be &amp;quot;virtual&amp;quot; (i.e. not available on the canvas) and&lt;br /&gt;
complex (typically groups of objects carrying effects on their own),&lt;br /&gt;
an edit mode is needed for such objects that goes beyond the node editor: &lt;br /&gt;
all operations (style, z-order, path effects...) should be availble. &lt;br /&gt;
&lt;br /&gt;
To this end, selecting an object parameter in the effect stack enters edit mode&lt;br /&gt;
for that object: its own effect stack is inserted in the global stack(bracketed&lt;br /&gt;
with easily identified color), and each level of it can be edited normally (in particular, deeper object parameters might be recursively edited). &lt;br /&gt;
&lt;br /&gt;
Edit mode exits when the effect is not active anymore, i.e.&lt;br /&gt;
*another object parameter is selected, &lt;br /&gt;
*the list of object parameters is closed, &lt;br /&gt;
*another effect is selected, &lt;br /&gt;
*the object is deselected. &lt;br /&gt;
(for convenience, a level in the stack could be pined, to avoid non intentional exits).&lt;br /&gt;
&lt;br /&gt;
===Generic effect: features and UI===&lt;br /&gt;
This section describes the general features desired for lpes.&lt;br /&gt;
&lt;br /&gt;
*input:&lt;br /&gt;
**use any object as input(s): groups, clones, text... &amp;lt;/li&amp;gt;&lt;br /&gt;
**check restrictions for input, and eventually warn the user (eg. accept only connected paths...)&lt;br /&gt;
**object paramters are picked with the mouse, and copied, cloned, or moved into the effect according to user choice (see fig. 1).&lt;br /&gt;
**be aware of the style of the inputs.&lt;br /&gt;
*output:&lt;br /&gt;
**can output full svg data,&lt;br /&gt;
**recieves an extra selection of the input (a list of objects, path componenents or nodes(?) of the input) to restrict, if possible, the effect to this selection. Outputs the relevant selection, for the eventual next effect.&lt;br /&gt;
*interaction:&lt;br /&gt;
**can perform all inkscape operations on the active object (node-edition, z-order, lpe, etc...)&lt;br /&gt;
**pick buttons&lt;br /&gt;
**'modal' buttons (?) (only use I can think of atm is for changing crossings in the knot effect)&lt;br /&gt;
&lt;br /&gt;
===Particular effects: per effect specifications===&lt;br /&gt;
&lt;br /&gt;
====Boolean operation====&lt;br /&gt;
Non destructive operation are usefull. No particular comment.&lt;br /&gt;
&lt;br /&gt;
====Transform effect====&lt;br /&gt;
Applies a transform matrix to the object; automatically added before a new &lt;br /&gt;
effect if the object has a non empty transform attribute. This is needed since&lt;br /&gt;
transforms and effects do not commute in general...&lt;br /&gt;
&lt;br /&gt;
====Style effect====&lt;br /&gt;
Applies a given style to the object; added automatically when a new style is&lt;br /&gt;
applied to an object with non empty stack. Usefull to overwrite the default &lt;br /&gt;
style produced by other effects. Should allow to set the priority of each&lt;br /&gt;
style component (replace old style, replace only if not set...)&lt;br /&gt;
&lt;br /&gt;
====Selector====&lt;br /&gt;
This effect selects a part of the input. It has 3 modes:&lt;br /&gt;
*object level: selects object(s) within a group.&lt;br /&gt;
*path level: selects component(s) within a path.&lt;br /&gt;
*[node level: selects node(s) within a path.](? --- delicate)&lt;br /&gt;
&lt;br /&gt;
The subsequent effects should work on this selection, and leave everything else &lt;br /&gt;
unchanged. (usefull to apply different effects to different step of an interpolate effect for instance)&lt;br /&gt;
&lt;br /&gt;
Notice that whenever the stack is modified before this effect, the user should be warned that this modifier depends on the &amp;quot;topology&amp;quot; of the input...&lt;br /&gt;
&lt;br /&gt;
====Pattern along path====&lt;br /&gt;
*Take a group as pattern, and set the style of the output according to it, to allow color full pattern stroke.&lt;br /&gt;
*Allow space  between copies, normal and tangential offsets.&lt;br /&gt;
*Add an option to fuse nearby ends (to allow gluing of the successive patterns into a single connected path for instance)(?)&lt;br /&gt;
*Option to leave the original shape in the output(?) (to allow filling of the area)&lt;br /&gt;
*Use another pattern for the &amp;quot;corners&amp;quot;(?) &lt;br /&gt;
&lt;br /&gt;
====Offset====&lt;br /&gt;
Dynmical offset could naturally be turned into an effect (it is not compatible with lpe at the moment).&lt;br /&gt;
&lt;br /&gt;
====Fillet/champfer====&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Thick/Thin strokes====&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Interpolate====&lt;br /&gt;
Intermediate shapes could follow a distorted path instead of a straight line...&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Knotting effect====&lt;br /&gt;
click on a crossing to swap over/below strands.&lt;br /&gt;
&lt;br /&gt;
====So many more!!====&lt;br /&gt;
All the effects we have as extensions can become live effects rather easily.&lt;br /&gt;
Please add your propositions here!&lt;br /&gt;
&lt;br /&gt;
==SVG representation==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API design==&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Lpe-blueprint&amp;diff=22064</id>
		<title>Lpe-blueprint</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Lpe-blueprint&amp;diff=22064"/>
		<updated>2008-02-28T00:03:20Z</updated>

		<summary type="html">&lt;p&gt;Jfb: /* Generic effect: features and UI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''''Live path effects' blue print proposal.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This page aims at gathering propositions about what the (eventually long term) future of live path effects could be. The goal is to have better view of what could be done, what is hard, what is easy, what is worth and what is not,&lt;br /&gt;
list possible alternatives, etc...&lt;br /&gt;
Please add your comment and propositions!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Live Path Effect alias Modifier stack==&lt;br /&gt;
This is a rather long term proposition, formulated from the Features and UI point of view. The basic observation is  that it is natural to have several successive live path effects applied to the same object, leading to an effect stack. The proposition below mimics the modifier stack found in most 3D software. &lt;br /&gt;
As it is also natural to allow sophisticated objects (groups, or objects carrying effects on their own) as input, edition of nested effects can become tricky (consider for instance non destructive boolean operation of two objects, both carrying effects). This proposition tries to address this point.&lt;br /&gt;
&lt;br /&gt;
===Effect stack: features and UI===&lt;br /&gt;
&lt;br /&gt;
====General usage====&lt;br /&gt;
A side panel is dedicated to the effect stack. On the top is displayed &lt;br /&gt;
the stack itself, and below the parameters of particular effects.&lt;br /&gt;
The picture below summerizes the main features of the stack area.&lt;br /&gt;
&lt;br /&gt;
A side panel is dedicated to the effect stack. On the top is displayed &lt;br /&gt;
the stack itself, and below the parameters of particular effects.&lt;br /&gt;
The picture below summerizes the main features of the stack area. &lt;br /&gt;
&lt;br /&gt;
[[Image:lpestack.png]]&lt;br /&gt;
&lt;br /&gt;
The full stack can be navigated and any effect in the stack can be selected to &lt;br /&gt;
become active. The pannel below the stack displays the active effects &lt;br /&gt;
parameters. In the main window (the canvas), the output of the active effect &lt;br /&gt;
is displayed (ideally, a button near the stack toggles wether the stack is&lt;br /&gt;
blocked at the active level, or runs to its end)&lt;br /&gt;
&lt;br /&gt;
*The stack can be collapsed (1) from the active effect to the original shape. The output of the active effect becomes the new original shape.&lt;br /&gt;
*Each effect can be temporariliy (4) bypassed to save performance and interactivity&lt;br /&gt;
*Effects can be draged and droped to reorganize the stack&lt;br /&gt;
*Effects can copied, pasted, cloned (i.e. shared) between objects (6). Shared effects can be made unique (3).&lt;br /&gt;
*Effects names (i.e. svg id attribute) can be edited.&lt;br /&gt;
&lt;br /&gt;
====Sublevel navigation====&lt;br /&gt;
&lt;br /&gt;
Some effect use other objects (paths, groups...) as parameters. In this case, &lt;br /&gt;
the line of the effect in the stack can be expanded to show the list of all &lt;br /&gt;
object parameters (see fig. 2).&lt;br /&gt;
&lt;br /&gt;
[[Image:lpestackeditmode.png]]&lt;br /&gt;
&lt;br /&gt;
As such objects might be &amp;quot;virtual&amp;quot; (i.e. not available on the canvas) and&lt;br /&gt;
complex (typically groups of objects carrying effects on their own),&lt;br /&gt;
an edit mode is needed for such objects that goes beyond the node editor: &lt;br /&gt;
all operations (style, z-order, path effects...) should be availble. &lt;br /&gt;
&lt;br /&gt;
To this end, selecting an object parameter in the effect stack enters edit mode&lt;br /&gt;
for that object: its own effect stack is inserted in the global stack(bracketed&lt;br /&gt;
with easily identified color), and each level of it can be edited normally (in particular, deeper object parameters might be recursively edited). &lt;br /&gt;
&lt;br /&gt;
Edit mode exits when the effect is not active anymore, i.e.&lt;br /&gt;
*another object parameter is selected, &lt;br /&gt;
*the list of object parameters is closed, &lt;br /&gt;
*another effect is selected, &lt;br /&gt;
*the object is deselected. &lt;br /&gt;
(for convenience, a level in the stack could be pined, to avoid non intentional exits).&lt;br /&gt;
&lt;br /&gt;
===Generic effect: features and UI===&lt;br /&gt;
This section describes the general features desired for lpes.&lt;br /&gt;
&lt;br /&gt;
*input:&lt;br /&gt;
**use any object as input(s): groups, clones, text... &amp;lt;/li&amp;gt;&lt;br /&gt;
**check restrictions for input, and eventually warn the user (eg. accept only connected paths...)&lt;br /&gt;
**object paramters are picked with the mouse, and copied, cloned, or moved into the effect according to user choice (see fig. 1).&lt;br /&gt;
**be aware of the style of the inputs.&lt;br /&gt;
*output:&lt;br /&gt;
**can output full svg data,&lt;br /&gt;
**recieves an extra selection of the input (a list of objects, path componenents or nodes(?) of the input) to restrict, if possible, the effect to this selection. Outputs the relevant selection, for the eventual next effect.&lt;br /&gt;
*interaction:&lt;br /&gt;
**can perform all inkscape operations on the active object (node-edition, z-order, lpe, etc...)&lt;br /&gt;
**pick buttons&lt;br /&gt;
**'modal' buttons (?) (only use I can think of atm is for changing crossings in the knot effect)&lt;br /&gt;
&lt;br /&gt;
===Particular effects: per effect specifications===&lt;br /&gt;
&lt;br /&gt;
====Boolean operation====&lt;br /&gt;
Non destructive operation are usefull. No particular comment.&lt;br /&gt;
&lt;br /&gt;
====Transform effect====&lt;br /&gt;
Applies a transform matrix to the object; automatically added before a new &lt;br /&gt;
effect if the object has a non empty transform attribute. This is needed since&lt;br /&gt;
transforms and effects do not commute in general...&lt;br /&gt;
&lt;br /&gt;
====Style effect====&lt;br /&gt;
Applies a given style to the object; added automatically when a new style is&lt;br /&gt;
applied to an object with non empty stack. Usefull to overwrite the default &lt;br /&gt;
style produced by other effects. Should allow to set the priority of each&lt;br /&gt;
style component (replace old style, replace only if not set...)&lt;br /&gt;
&lt;br /&gt;
====Selector====&lt;br /&gt;
This effect selects a part of the input. It has 3 modes:&lt;br /&gt;
*object level: selects object(s) within a group.&lt;br /&gt;
*path level: selects component(s) within a path.&lt;br /&gt;
*[node level: selects node(s) within a path.](? --- delicate)&lt;br /&gt;
&lt;br /&gt;
The subsequent effects should work on this selection, and leave everything else &lt;br /&gt;
unchanged. (usefull to apply different effects to different step of an interpolate effect for instance)&lt;br /&gt;
&lt;br /&gt;
Notice that whenever the stack is modified before this effect, the user should be warned that this modifier depends on the &amp;quot;topology&amp;quot; of the input...&lt;br /&gt;
&lt;br /&gt;
====Pattern along path====&lt;br /&gt;
*Take a group as pattern, and set the style of the output according to it, to allow color full pattern stroke.&lt;br /&gt;
*Allow space  between copies, normal and tangential offsets.&lt;br /&gt;
*Add an option to fuse nearby ends (to allow gluing of the successive patterns into a single connected path for instance)(?)&lt;br /&gt;
*Option to leave the original shape in the output(?) (to allow filling of the area)&lt;br /&gt;
*Use another pattern for the &amp;quot;corners&amp;quot;(?) &lt;br /&gt;
&lt;br /&gt;
====Offset====&lt;br /&gt;
Dynmical offset could naturally be turned into an effect (it is not compatible with lpe at the moment).&lt;br /&gt;
&lt;br /&gt;
====Fillet/champfer====&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Thick/Thin strokes====&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Interpolate====&lt;br /&gt;
Intermediate shapes could follow a distorted path instead of a straight line...&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====So many more!!====&lt;br /&gt;
All the effects we have as extensions can become live effects rather easily.&lt;br /&gt;
Please add your propositions here!&lt;br /&gt;
&lt;br /&gt;
==SVG representation==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API design==&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Lpe-blueprint&amp;diff=21974</id>
		<title>Lpe-blueprint</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Lpe-blueprint&amp;diff=21974"/>
		<updated>2008-02-27T13:57:23Z</updated>

		<summary type="html">&lt;p&gt;Jfb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''''Live path effects' blue print proposal.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This page aims at gathering propositions about what the (eventually long term) future of live path effects could be. The goal is to have better view of what could be done, what is hard, what is easy, what is worth and what is not,&lt;br /&gt;
list possible alternatives, etc...&lt;br /&gt;
Please add your comment and propositions!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Live Path Effect alias Modifier stack==&lt;br /&gt;
This is a rather long term proposition, formulated from the Features and UI point of view. The basic observation is  that it is natural to have several successive live path effects applied to the same object, leading to an effect stack. The proposition below mimics the modifier stack found in most 3D software. &lt;br /&gt;
As it is also natural to allow sophisticated objects (groups, or objects carrying effects on their own) as input, edition of nested effects can become tricky (consider for instance non destructive boolean operation of two objects, both carrying effects). This proposition tries to address this point.&lt;br /&gt;
&lt;br /&gt;
===Effect stack: features and UI===&lt;br /&gt;
&lt;br /&gt;
====General usage====&lt;br /&gt;
A side panel is dedicated to the effect stack. On the top is displayed &lt;br /&gt;
the stack itself, and below the parameters of particular effects.&lt;br /&gt;
The picture below summerizes the main features of the stack area.&lt;br /&gt;
&lt;br /&gt;
A side panel is dedicated to the effect stack. On the top is displayed &lt;br /&gt;
the stack itself, and below the parameters of particular effects.&lt;br /&gt;
The picture below summerizes the main features of the stack area. &lt;br /&gt;
&lt;br /&gt;
[[Image:lpestack.png]]&lt;br /&gt;
&lt;br /&gt;
The full stack can be navigated and any effect in the stack can be selected to &lt;br /&gt;
become active. The pannel below the stack displays the active effects &lt;br /&gt;
parameters. In the main window (the canvas), the output of the active effect &lt;br /&gt;
is displayed (ideally, a button near the stack toggles wether the stack is&lt;br /&gt;
blocked at the active level, or runs to its end)&lt;br /&gt;
&lt;br /&gt;
*The stack can be collapsed (1) from the active effect to the original shape. The output of the active effect becomes the new original shape.&lt;br /&gt;
*Each effect can be temporariliy (4) bypassed to save performance and interactivity&lt;br /&gt;
*Effects can be draged and droped to reorganize the stack&lt;br /&gt;
*Effects can copied, pasted, cloned (i.e. shared) between objects (6). Shared effects can be made unique (3).&lt;br /&gt;
*Effects names (i.e. svg id attribute) can be edited.&lt;br /&gt;
&lt;br /&gt;
====Sublevel navigation====&lt;br /&gt;
&lt;br /&gt;
Some effect use other objects (paths, groups...) as parameters. In this case, &lt;br /&gt;
the line of the effect in the stack can be expanded to show the list of all &lt;br /&gt;
object parameters (see fig. 2).&lt;br /&gt;
&lt;br /&gt;
[[Image:lpestackeditmode.png]]&lt;br /&gt;
&lt;br /&gt;
As such objects might be &amp;quot;virtual&amp;quot; (i.e. not available on the canvas) and&lt;br /&gt;
complex (typically groups of objects carrying effects on their own),&lt;br /&gt;
an edit mode is needed for such objects that goes beyond the node editor: &lt;br /&gt;
all operations (style, z-order, path effects...) should be availble. &lt;br /&gt;
&lt;br /&gt;
To this end, selecting an object parameter in the effect stack enters edit mode&lt;br /&gt;
for that object: its own effect stack is inserted in the global stack(bracketed&lt;br /&gt;
with easily identified color), and each level of it can be edited normally (in particular, deeper object parameters might be recursively edited). &lt;br /&gt;
&lt;br /&gt;
Edit mode exits when the effect is not active anymore, i.e.&lt;br /&gt;
*another object parameter is selected, &lt;br /&gt;
*the list of object parameters is closed, &lt;br /&gt;
*another effect is selected, &lt;br /&gt;
*the object is deselected. &lt;br /&gt;
(for convenience, a level in the stack could be pined, to avoid non intentional exits).&lt;br /&gt;
&lt;br /&gt;
===Generic effect: features and UI===&lt;br /&gt;
This section describes the general features desired for lpes.&lt;br /&gt;
&lt;br /&gt;
*use any object as input(s): groups, clones, text... &amp;lt;/li&amp;gt;&lt;br /&gt;
*check restrictions for input, and eventually warn the user (eg. accept only connected paths...)&lt;br /&gt;
*object paramters are picked with the mouse, and copied, cloned, or moved into the effect according to user choice (see fig. 1).&lt;br /&gt;
*be aware of the style of the inputs.&lt;br /&gt;
*can output full svg data,&lt;br /&gt;
*recieves an extra selection of the input (a list of objects, path componenents or nodes(?) of the input) to restrict, if possible, the effect to this selection. Outputs the relevant selection, for the eventual next effect.&lt;br /&gt;
&lt;br /&gt;
===Particular effects: per effect specifications===&lt;br /&gt;
&lt;br /&gt;
====Boolean operation====&lt;br /&gt;
Non destructive operation are usefull. No particular comment.&lt;br /&gt;
&lt;br /&gt;
====Transform effect====&lt;br /&gt;
Applies a transform matrix to the object; automatically added before a new &lt;br /&gt;
effect if the object has a non empty transform attribute. This is needed since&lt;br /&gt;
transforms and effects do not commute in general...&lt;br /&gt;
&lt;br /&gt;
====Style effect====&lt;br /&gt;
Applies a given style to the object; added automatically when a new style is&lt;br /&gt;
applied to an object with non empty stack. Usefull to overwrite the default &lt;br /&gt;
style produced by other effects. Should allow to set the priority of each&lt;br /&gt;
style component (replace old style, replace only if not set...)&lt;br /&gt;
&lt;br /&gt;
====Selector====&lt;br /&gt;
This effect selects a part of the input. It has 3 modes:&lt;br /&gt;
*object level: selects object(s) within a group.&lt;br /&gt;
*path level: selects component(s) within a path.&lt;br /&gt;
*[node level: selects node(s) within a path.](? --- delicate)&lt;br /&gt;
&lt;br /&gt;
The subsequent effects should work on this selection, and leave everything else &lt;br /&gt;
unchanged. (usefull to apply different effects to different step of an interpolate effect for instance)&lt;br /&gt;
&lt;br /&gt;
Notice that whenever the stack is modified before this effect, the user should be warned that this modifier depends on the &amp;quot;topology&amp;quot; of the input...&lt;br /&gt;
&lt;br /&gt;
====Pattern along path====&lt;br /&gt;
*Take a group as pattern, and set the style of the output according to it, to allow color full pattern stroke.&lt;br /&gt;
*Allow space  between copies, normal and tangential offsets.&lt;br /&gt;
*Add an option to fuse nearby ends (to allow gluing of the successive patterns into a single connected path for instance)(?)&lt;br /&gt;
*Option to leave the original shape in the output(?) (to allow filling of the area)&lt;br /&gt;
*Use another pattern for the &amp;quot;corners&amp;quot;(?) &lt;br /&gt;
&lt;br /&gt;
====Offset====&lt;br /&gt;
Dynmical offset could naturally be turned into an effect (it is not compatible with lpe at the moment).&lt;br /&gt;
&lt;br /&gt;
====Fillet/champfer====&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Thick/Thin strokes====&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Interpolate====&lt;br /&gt;
Intermediate shapes could follow a distorted path instead of a straight line...&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====So many more!!====&lt;br /&gt;
All the effects we have as extensions can become live effects rather easily.&lt;br /&gt;
Please add your propositions here!&lt;br /&gt;
&lt;br /&gt;
==SVG representation==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API design==&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Lpe-blueprint&amp;diff=21804</id>
		<title>Lpe-blueprint</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Lpe-blueprint&amp;diff=21804"/>
		<updated>2008-02-24T22:43:58Z</updated>

		<summary type="html">&lt;p&gt;Jfb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''''Live path effects' blue print proposal.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This page aims at gathering propositions about what the (eventually long term) future of live path effects could be. The goal is to have better view of what could be done, what is hard, what is easy, what is worth and what is not,&lt;br /&gt;
list possible alternatives, etc...&lt;br /&gt;
Please add your comment and propositions!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Live Path Effect alias Modifier stack==&lt;br /&gt;
This is a rather long term proposition, formulated from the Features and UI point of view. The basic observation is  that it is natural to have several successive live path effects applied to the same object, leading to an effect stack. The proposition below mimics the modifier stack found in most 3D software. &lt;br /&gt;
As it is also natural to allow sophisticated objects (groups, or objects carrying effects on their own) as input, edition of nested effects can become tricky (consider for instance non destructive boolean operation of two objects, both carrying effects). This proposition tries to address this point.&lt;br /&gt;
&lt;br /&gt;
===Effect stack: features and UI===&lt;br /&gt;
&lt;br /&gt;
====General usage====&lt;br /&gt;
A side panel is dedicated to the effect stack. On the top is displayed &lt;br /&gt;
the stack itself, and below the parameters of particular effects.&lt;br /&gt;
The picture below summerizes the main features of the stack area.&lt;br /&gt;
&lt;br /&gt;
A side panel is dedicated to the effect stack. On the top is displayed &lt;br /&gt;
the stack itself, and below the parameters of particular effects.&lt;br /&gt;
The picture below summerizes the main features of the stack area. &lt;br /&gt;
&lt;br /&gt;
[[Image:lpestack.png]]&lt;br /&gt;
&lt;br /&gt;
The full stack can be navigated and any effect in the stack can be selected to &lt;br /&gt;
become active. The pannel below the stack displays the active effects &lt;br /&gt;
parameters. In the main window (the canvas), the output of the active effect &lt;br /&gt;
is displayed (ideally, a button near the stack toggles wether the stack is&lt;br /&gt;
blocked at the active level, or runs to its end)&lt;br /&gt;
&lt;br /&gt;
*The stack can be collapsed (1) from the active effect to the original shape. The output of the active effect becomes the new original shape.&lt;br /&gt;
*Each effect can be temporariliy (4) bypassed to save performance and interactivity&lt;br /&gt;
*Effects can be draged and droped to reorganize the stack&lt;br /&gt;
*Effects can copied, pasted, cloned (i.e. shared) between objects (6). Shared effects can be made unique (3).&lt;br /&gt;
*Effects names (i.e. svg id attribute) can be edited.&lt;br /&gt;
&lt;br /&gt;
====Sublevel navigation====&lt;br /&gt;
&lt;br /&gt;
Some effect use other objects (paths, groups...) as parameters. In this case, &lt;br /&gt;
the line of the effect in the stack can be expanded to show the list of all &lt;br /&gt;
object parameters (see fig. 2).&lt;br /&gt;
&lt;br /&gt;
[[Image:lpestackeditmode.png]]&lt;br /&gt;
&lt;br /&gt;
As such objects might be &amp;quot;virtual&amp;quot; (i.e. not available on the canvas) and&lt;br /&gt;
complex (typically groups of objects carrying effects on their own),&lt;br /&gt;
an edit mode is needed for such objects that goes beyond the node editor: &lt;br /&gt;
all operations (style, z-order, path effects...) should be availble. &lt;br /&gt;
&lt;br /&gt;
To this end, selecting an object parameter in the effect stack enters edit mode&lt;br /&gt;
for that object: its own effect stack is inserted in the global stack(bracketed&lt;br /&gt;
with easily identified color), and each level of it can be edited normally (in particular, deeper object parameters might be recursively edited). &lt;br /&gt;
&lt;br /&gt;
Edit mode exits when the effect is not active anymore, i.e.&lt;br /&gt;
*another object parameter is selected, &lt;br /&gt;
*the list of object parameters is closed, &lt;br /&gt;
*another effect is selected, &lt;br /&gt;
*the object is deselected. &lt;br /&gt;
(for convenience, a level in the stack could be pined, to avoid non intentional exits).&lt;br /&gt;
&lt;br /&gt;
===Generic effect: features and UI===&lt;br /&gt;
This section describes the general features desired for lpes.&lt;br /&gt;
&lt;br /&gt;
*use any object as input(s): groups, clones, text... &amp;lt;/li&amp;gt;&lt;br /&gt;
*check restrictions for input, and eventually warn the user (eg. accept only connected paths...)&lt;br /&gt;
*object paramters are picked with the mouse, and copied, cloned, or moved into the effect according to user choice (see fig. 1).&lt;br /&gt;
*be aware of the style of the inputs.&lt;br /&gt;
*can output full svg data,&lt;br /&gt;
*recieves an extra selection of the input (a list of objects, path componenents or nodes(?) of the input) to restrict, if possible, the effect to this selection. Outputs the relevant selection, for the eventual next effect.&lt;br /&gt;
&lt;br /&gt;
===Particular effects: per effect specifications===&lt;br /&gt;
&lt;br /&gt;
====Boolean operation====&lt;br /&gt;
Non destructive operation are usefull. No particular comment.&lt;br /&gt;
&lt;br /&gt;
====Transform effect====&lt;br /&gt;
Applies a transform matrix to the object; automatically added before a new &lt;br /&gt;
effect if the object has a non empty transform attribute. This is needed since&lt;br /&gt;
transforms and effects do not commute in general...&lt;br /&gt;
&lt;br /&gt;
====Style effect====&lt;br /&gt;
Applies a given style to the object; added automatically when a new style is&lt;br /&gt;
applied to an object with non empty stack. Usefull to overwrite the default &lt;br /&gt;
style produced by other effects. Should allow to set the priority of each&lt;br /&gt;
style component (replace old style, replace only if not set...)&lt;br /&gt;
&lt;br /&gt;
====Selector====&lt;br /&gt;
This effect selects a part of the input. It has 3 modes:&lt;br /&gt;
*object level: selects object(s) within a group.&lt;br /&gt;
*path level: selects component(s) within a path.&lt;br /&gt;
*[node level: selects node(s) within a path.](? --- delicate)&lt;br /&gt;
&lt;br /&gt;
The subsequent effects should work on this selection, and leave everything else &lt;br /&gt;
unchanged. (usefull to apply different effects to different step of an interpolate effect for instance)&lt;br /&gt;
&lt;br /&gt;
Notice that whenever the stack is modified before this effect, the user should be warned that this modifier depends on the &amp;quot;topology&amp;quot; of the input...&lt;br /&gt;
&lt;br /&gt;
====Pattern along path====&lt;br /&gt;
*Take a group as pattern, and set the style of the output according to it, to allow color full pattern stroke.&lt;br /&gt;
*Allow space  between copies, normal and tangential offsets.&lt;br /&gt;
*Add an option to fuse nearby ends (to allow gluing of the successive patterns into a single connected path for instance)(?)&lt;br /&gt;
*Option to leave the original shape in the output(?) (to allow filling of the area)&lt;br /&gt;
*Use another pattern for the &amp;quot;corners&amp;quot;(?) &lt;br /&gt;
&lt;br /&gt;
====Offset====&lt;br /&gt;
Dynmical offset could naturally be turned into an effect (it is not compatible with lpe at the moment).&lt;br /&gt;
&lt;br /&gt;
====Fillet/champfer====&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Thick/Thin strokes====&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====Interpolate====&lt;br /&gt;
Intermediate shapes could follow a distorted path instead of a straight line...&lt;br /&gt;
Add specification here!&lt;br /&gt;
&lt;br /&gt;
====So many more!!====&lt;br /&gt;
All the effects we have as extensions can become live effects rather easily.&lt;br /&gt;
Please add your propositions here!&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Lpe-blueprint&amp;diff=21794</id>
		<title>Lpe-blueprint</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Lpe-blueprint&amp;diff=21794"/>
		<updated>2008-02-24T21:36:01Z</updated>

		<summary type="html">&lt;p&gt;Jfb: /* General usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''''Live path effects' blue print proposal.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Here are some propositions about what the future of live path effects could &lt;br /&gt;
look like in the future, from the features/UI point of view. The goal is not &lt;br /&gt;
to require this or that particular feature, but to have an idea about&lt;br /&gt;
what could be done, what is hard, what is easy, what is worth and what is not,&lt;br /&gt;
list possible alternatives, etc...&lt;br /&gt;
&lt;br /&gt;
It is natural to use several successive live path effects on the same object, &lt;br /&gt;
leading to an effect stack. The proposition below mimics the modifier stack &lt;br /&gt;
found in most 3D software.&lt;br /&gt;
&lt;br /&gt;
==Effect stack: features and UI==&lt;br /&gt;
&lt;br /&gt;
===General usage===&lt;br /&gt;
A side panel is dedicated to the effect stack. On the top is displayed &lt;br /&gt;
the stack itself, and below the parameters of particular effects.&lt;br /&gt;
The picture below summerizes the main features of the stack area.&lt;br /&gt;
&lt;br /&gt;
A side panel is dedicated to the effect stack. On the top is displayed &lt;br /&gt;
the stack itself, and below the parameters of particular effects.&lt;br /&gt;
The picture below summerizes the main features of the stack area. &lt;br /&gt;
&lt;br /&gt;
[[Image:lpestack.png]]&lt;br /&gt;
&lt;br /&gt;
The full stack can be navigated and any effect in the stack can be selected to &lt;br /&gt;
become active. The pannel below the stack displays the active effects &lt;br /&gt;
parameters. In the main window (the canvas), the output of the active effect &lt;br /&gt;
is displayed (ideally, a button near the stack toggles wether the stack is&lt;br /&gt;
blocked at the active level, or runs to its end)&lt;br /&gt;
&lt;br /&gt;
*The stack can be collapsed (1) from the active effect to the original shape. The output of the active effect becomes the new original shape.&lt;br /&gt;
*Each effect can be temporariliy (4) bypassed to save performance and interactivity&lt;br /&gt;
*Effects can be draged and droped to reorganize the stack&lt;br /&gt;
*Effects can copied, pasted, cloned (i.e. shared) between objects (6). Shared effects can be made unique (3).&lt;br /&gt;
*Effects names (i.e. svg id attribute) can be edited.&lt;br /&gt;
&lt;br /&gt;
===Sublevel navigation===&lt;br /&gt;
&lt;br /&gt;
Some effect use other objects (paths, groups...) as parameters. In this case, &lt;br /&gt;
the line of the effect in the stack can be expanded to show the list of all &lt;br /&gt;
object parameters (see fig. 2).&lt;br /&gt;
&lt;br /&gt;
[[Image:lpestackeditmode.png]]&lt;br /&gt;
&lt;br /&gt;
As such objects might be &amp;quot;virtual&amp;quot; (i.e. not available on the canvas) and&lt;br /&gt;
complex (typically groups of objects carrying effects on their own),&lt;br /&gt;
an edit mode is needed for such objects that goes beyond the node editor: &lt;br /&gt;
all operations (style, z-order, path effects...) should be availble. &lt;br /&gt;
&lt;br /&gt;
To this end, selecting an object parameter in the effect stack enters edit mode&lt;br /&gt;
for that object: its own effect stack is inserted in the global stack(bracketed&lt;br /&gt;
with easily identified color), and each level of it can be edited normally (in particular, deeper object parameters might be recursively edited). &lt;br /&gt;
&lt;br /&gt;
Edit mode exits when the effect is not active anymore, i.e.&lt;br /&gt;
*another object parameter is selected, &lt;br /&gt;
*the list of object parameters is closed, &lt;br /&gt;
*another effect is selected, &lt;br /&gt;
*the object is deselected. &lt;br /&gt;
(for convenience, a level in the stack could be pined, to avoid non intentional exits).&lt;br /&gt;
&lt;br /&gt;
==Generic effect: features and UI==&lt;br /&gt;
This section describes the general features desired for lpes.&lt;br /&gt;
&lt;br /&gt;
*use any object as input(s): groups, clones, text... &amp;lt;/li&amp;gt;&lt;br /&gt;
*check restrictions for input, and eventually warn the user (eg. accept only connected paths...)&lt;br /&gt;
*object paramters are picked with the mouse, and copied, cloned, or moved into the effect according to user choice (see fig. 1).&lt;br /&gt;
*be aware of the style of the inputs.&lt;br /&gt;
*can output full svg data&lt;br /&gt;
*can recieve an extra selection of the input (a list of objects, path componenents or nodes of the input) to restrict the effect to this selection, see &amp;quot;Selector&amp;quot; effect below.&lt;br /&gt;
&lt;br /&gt;
==Particular effects: propositions of new effects==&lt;br /&gt;
&lt;br /&gt;
===Boolean operation===&lt;br /&gt;
Non destructive operation are usefull. No particular comment.&lt;br /&gt;
===Transform effect===&lt;br /&gt;
Applies a transform matrix to the object; automatically added before a new &lt;br /&gt;
effect if the object has a non empty transform attribute. This is needed since&lt;br /&gt;
transforms and effects do not commute in general...&lt;br /&gt;
===Style effect===&lt;br /&gt;
Applies a given style to the object; added automatically when a new style is&lt;br /&gt;
applied to an object with non empty stack. Usefull to overwrite the default &lt;br /&gt;
style produced by other effects. Should allow to set the priority of each&lt;br /&gt;
style component (replace old style, replace only if not set...)&lt;br /&gt;
&lt;br /&gt;
===Selector===&lt;br /&gt;
This effects selects a part of the input. It has 3 modes:&lt;br /&gt;
*object level: selects object(s) within a group.&lt;br /&gt;
*path level: selects component(s) within a path.&lt;br /&gt;
*[node level: selects node(s) within a path.](? --- delicate)&lt;br /&gt;
&lt;br /&gt;
The subsequent effects should work on this selection, and leave everything else &lt;br /&gt;
unchanged. (usefull to apply different effects to different step of an interpolate effect for instance)&lt;br /&gt;
&lt;br /&gt;
Notice that whenever the stack is modified before this effect, the user should be warned that this modifier depends on the &amp;quot;topology&amp;quot; of the input...&lt;br /&gt;
&lt;br /&gt;
===Pattern along path===&lt;br /&gt;
*Work on groups: add specifications!&lt;br /&gt;
*Offset parameters, space  between copies.&lt;br /&gt;
*Option to fuse nearby ends (?)&lt;br /&gt;
*Option to leave the original shape in the output (?)&lt;br /&gt;
&lt;br /&gt;
===Offset, fillet/champfer, Interpolate and more generally, all the effects we have as extenstions...===&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Lpe-blueprint&amp;diff=21774</id>
		<title>Lpe-blueprint</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Lpe-blueprint&amp;diff=21774"/>
		<updated>2008-02-24T18:18:13Z</updated>

		<summary type="html">&lt;p&gt;Jfb: /* Sublevel navigation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''''Live path effects' blue print proposal.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Here are some propositions about what the future of live path effects could &lt;br /&gt;
look like in the future, from the features/UI point of view. The goal is not &lt;br /&gt;
to require this or that particular feature, but to have an idea about&lt;br /&gt;
what could be done, what is hard, what is easy, what is worth and what is not,&lt;br /&gt;
list possible alternatives, etc...&lt;br /&gt;
&lt;br /&gt;
It is natural to use several successive live path effects on the same object, &lt;br /&gt;
leading to an effect stack. The proposition below mimics the modifier stack &lt;br /&gt;
found in most 3D software.&lt;br /&gt;
&lt;br /&gt;
==Effect stack: features and UI==&lt;br /&gt;
&lt;br /&gt;
===General usage===&lt;br /&gt;
A side panel is dedicated to the effect stack. On the top is displayed &lt;br /&gt;
the stack itself, and below the parameters of particular effects.&lt;br /&gt;
The picture below summerizes the main features of the stack area.&lt;br /&gt;
&lt;br /&gt;
A side panel is dedicated to the effect stack. On the top is displayed &lt;br /&gt;
the stack itself, and below the parameters of particular effects.&lt;br /&gt;
The picture below summerizes the main features of the stack area. &lt;br /&gt;
&lt;br /&gt;
[[Image:lpestack.png]]&lt;br /&gt;
&lt;br /&gt;
The full stack can be navigated and any effect in the stack can be selected to &lt;br /&gt;
become active. The pannel below the stack displays the active effects &lt;br /&gt;
parameters. In the main window (the canvas), the output of the active effect &lt;br /&gt;
is displayed (ideally, a button near the stack toggles wether the stack is&lt;br /&gt;
blocked at the active level, or runs to its end)&lt;br /&gt;
&lt;br /&gt;
*The stack can be collapsed from the active effect to the original shape. The output of the active effect becomes the new original shape.&lt;br /&gt;
*Each effect can be temporariliy bypassed to save performance and interactivity&lt;br /&gt;
*Effects can be draged and droped to reorganize the stack&lt;br /&gt;
*Effects can copied, pasted, cloned (i.e. shared) between objects. Shared effects can be made unique.&lt;br /&gt;
*Effects names (i.e. svg id attribute) can be edited.&lt;br /&gt;
&lt;br /&gt;
===Sublevel navigation===&lt;br /&gt;
&lt;br /&gt;
Some effect use other objects (paths, groups...) as parameters. In this case, &lt;br /&gt;
the line of the effect in the stack can be expanded to show the list of all &lt;br /&gt;
object parameters (see fig. 2).&lt;br /&gt;
&lt;br /&gt;
[[Image:lpestackeditmode.png]]&lt;br /&gt;
&lt;br /&gt;
As such objects might be &amp;quot;virtual&amp;quot; (i.e. not available on the canvas) and&lt;br /&gt;
complex (typically groups of objects carrying effects on their own),&lt;br /&gt;
an edit mode is needed for such objects that goes beyond the node editor: &lt;br /&gt;
all operations (style, z-order, path effects...) should be availble. &lt;br /&gt;
&lt;br /&gt;
To this end, selecting an object parameter in the effect stack enters edit mode&lt;br /&gt;
for that object: its own effect stack is inserted in the global stack(bracketed&lt;br /&gt;
with easily identified color), and each level of it can be edited normally (in particular, deeper object parameters might be recursively edited). &lt;br /&gt;
&lt;br /&gt;
Edit mode exits when the effect is not active anymore, i.e.&lt;br /&gt;
*another object parameter is selected, &lt;br /&gt;
*the list of object parameters is closed, &lt;br /&gt;
*another effect is selected, &lt;br /&gt;
*the object is deselected. &lt;br /&gt;
(for convenience, a level in the stack could be pined, to avoid non intentional exits).&lt;br /&gt;
&lt;br /&gt;
==Generic effect: features and UI==&lt;br /&gt;
This section describes the general features desired for lpes.&lt;br /&gt;
&lt;br /&gt;
*use any object as input(s): groups, clones, text... &amp;lt;/li&amp;gt;&lt;br /&gt;
*check restrictions for input, and eventually warn the user (eg. accept only connected paths...)&lt;br /&gt;
*object paramters are picked with the mouse, and copied, cloned, or moved into the effect according to user choice (see fig. 1).&lt;br /&gt;
*be aware of the style of the inputs.&lt;br /&gt;
*can output full svg data&lt;br /&gt;
*can recieve an extra selection of the input (a list of objects, path componenents or nodes of the input) to restrict the effect to this selection, see &amp;quot;Selector&amp;quot; effect below.&lt;br /&gt;
&lt;br /&gt;
==Particular effects: propositions of new effects==&lt;br /&gt;
&lt;br /&gt;
===Boolean operation===&lt;br /&gt;
Non destructive operation are usefull. No particular comment.&lt;br /&gt;
===Transform effect===&lt;br /&gt;
Applies a transform matrix to the object; automatically added before a new &lt;br /&gt;
effect if the object has a non empty transform attribute. This is needed since&lt;br /&gt;
transforms and effects do not commute in general...&lt;br /&gt;
===Style effect===&lt;br /&gt;
Applies a given style to the object; added automatically when a new style is&lt;br /&gt;
applied to an object with non empty stack. Usefull to overwrite the default &lt;br /&gt;
style produced by other effects. Should allow to set the priority of each&lt;br /&gt;
style component (replace old style, replace only if not set...)&lt;br /&gt;
&lt;br /&gt;
===Selector===&lt;br /&gt;
This effects selects a part of the input. It has 3 modes:&lt;br /&gt;
*object level: selects object(s) within a group.&lt;br /&gt;
*path level: selects component(s) within a path.&lt;br /&gt;
*[node level: selects node(s) within a path.](? --- delicate)&lt;br /&gt;
&lt;br /&gt;
The subsequent effects should work on this selection, and leave everything else &lt;br /&gt;
unchanged. (usefull to apply different effects to different step of an interpolate effect for instance)&lt;br /&gt;
&lt;br /&gt;
Notice that whenever the stack is modified before this effect, the user should be warned that this modifier depends on the &amp;quot;topology&amp;quot; of the input...&lt;br /&gt;
&lt;br /&gt;
===Pattern along path===&lt;br /&gt;
*Work on groups: add specifications!&lt;br /&gt;
*Offset parameters, space  between copies.&lt;br /&gt;
*Option to fuse nearby ends (?)&lt;br /&gt;
*Option to leave the original shape in the output (?)&lt;br /&gt;
&lt;br /&gt;
===Offset, fillet/champfer, Interpolate and more generally, all the effects we have as extenstions...===&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=File:Lpestackeditmode.png&amp;diff=21764</id>
		<title>File:Lpestackeditmode.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=File:Lpestackeditmode.png&amp;diff=21764"/>
		<updated>2008-02-24T18:17:40Z</updated>

		<summary type="html">&lt;p&gt;Jfb: live effects versus modifier stack blueprint: navigating nested stacks.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;live effects versus modifier stack blueprint: navigating nested stacks.&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=File:Lpestack.png&amp;diff=21754</id>
		<title>File:Lpestack.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=File:Lpestack.png&amp;diff=21754"/>
		<updated>2008-02-24T18:01:20Z</updated>

		<summary type="html">&lt;p&gt;Jfb: live path effects versus modifier stack blueprint.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;live path effects versus modifier stack blueprint.&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Lpe-blueprint&amp;diff=21744</id>
		<title>Lpe-blueprint</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Lpe-blueprint&amp;diff=21744"/>
		<updated>2008-02-24T18:00:19Z</updated>

		<summary type="html">&lt;p&gt;Jfb: /* Effect stack: features and UI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''''Live path effects' blue print proposal.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Here are some propositions about what the future of live path effects could &lt;br /&gt;
look like in the future, from the features/UI point of view. The goal is not &lt;br /&gt;
to require this or that particular feature, but to have an idea about&lt;br /&gt;
what could be done, what is hard, what is easy, what is worth and what is not,&lt;br /&gt;
list possible alternatives, etc...&lt;br /&gt;
&lt;br /&gt;
It is natural to use several successive live path effects on the same object, &lt;br /&gt;
leading to an effect stack. The proposition below mimics the modifier stack &lt;br /&gt;
found in most 3D software.&lt;br /&gt;
&lt;br /&gt;
==Effect stack: features and UI==&lt;br /&gt;
&lt;br /&gt;
===General usage===&lt;br /&gt;
A side panel is dedicated to the effect stack. On the top is displayed &lt;br /&gt;
the stack itself, and below the parameters of particular effects.&lt;br /&gt;
The picture below summerizes the main features of the stack area.&lt;br /&gt;
&lt;br /&gt;
A side panel is dedicated to the effect stack. On the top is displayed &lt;br /&gt;
the stack itself, and below the parameters of particular effects.&lt;br /&gt;
The picture below summerizes the main features of the stack area. &lt;br /&gt;
&lt;br /&gt;
[[Image:lpestack.png]]&lt;br /&gt;
&lt;br /&gt;
The full stack can be navigated and any effect in the stack can be selected to &lt;br /&gt;
become active. The pannel below the stack displays the active effects &lt;br /&gt;
parameters. In the main window (the canvas), the output of the active effect &lt;br /&gt;
is displayed (ideally, a button near the stack toggles wether the stack is&lt;br /&gt;
blocked at the active level, or runs to its end)&lt;br /&gt;
&lt;br /&gt;
*The stack can be collapsed from the active effect to the original shape. The output of the active effect becomes the new original shape.&lt;br /&gt;
*Each effect can be temporariliy bypassed to save performance and interactivity&lt;br /&gt;
*Effects can be draged and droped to reorganize the stack&lt;br /&gt;
*Effects can copied, pasted, cloned (i.e. shared) between objects. Shared effects can be made unique.&lt;br /&gt;
*Effects names (i.e. svg id attribute) can be edited.&lt;br /&gt;
&lt;br /&gt;
===Sublevel navigation===&lt;br /&gt;
&lt;br /&gt;
Some effect use other objects (paths, groups...) as parameters. In this case, &lt;br /&gt;
the line of the effect in the stack can be expanded to show the list of all &lt;br /&gt;
object parameters (see fig. 2).&lt;br /&gt;
&lt;br /&gt;
[[Image:lpestackeditmode.svg]]&lt;br /&gt;
&lt;br /&gt;
As such objects might be &amp;quot;virtual&amp;quot; (i.e. not available on the canvas) and&lt;br /&gt;
complex (typically groups of objects carrying effects on their own),&lt;br /&gt;
an edit mode is needed for such objects that goes beyond the node editor: &lt;br /&gt;
all operations (style, z-order, path effects...) should be availble. &lt;br /&gt;
&lt;br /&gt;
To this end, selecting an object parameter in the effect stack enters edit mode&lt;br /&gt;
for that object: its own effect stack is inserted in the global stack(bracketed&lt;br /&gt;
with easily identified color), and each level of it can be edited normally (in particular, deeper object parameters might be recursively edited). &lt;br /&gt;
&lt;br /&gt;
Edit mode exits when the effect is not active anymore, i.e.&lt;br /&gt;
*another object parameter is selected, &lt;br /&gt;
*the list of object parameters is closed, &lt;br /&gt;
*another effect is selected, &lt;br /&gt;
*the object is deselected. &lt;br /&gt;
(for convenience, a level in the stack could be pined, to avoid non intentional exits).&lt;br /&gt;
&lt;br /&gt;
==Generic effect: features and UI==&lt;br /&gt;
This section describes the general features desired for lpes.&lt;br /&gt;
&lt;br /&gt;
*use any object as input(s): groups, clones, text... &amp;lt;/li&amp;gt;&lt;br /&gt;
*check restrictions for input, and eventually warn the user (eg. accept only connected paths...)&lt;br /&gt;
*object paramters are picked with the mouse, and copied, cloned, or moved into the effect according to user choice (see fig. 1).&lt;br /&gt;
*be aware of the style of the inputs.&lt;br /&gt;
*can output full svg data&lt;br /&gt;
*can recieve an extra selection of the input (a list of objects, path componenents or nodes of the input) to restrict the effect to this selection, see &amp;quot;Selector&amp;quot; effect below.&lt;br /&gt;
&lt;br /&gt;
==Particular effects: propositions of new effects==&lt;br /&gt;
&lt;br /&gt;
===Boolean operation===&lt;br /&gt;
Non destructive operation are usefull. No particular comment.&lt;br /&gt;
===Transform effect===&lt;br /&gt;
Applies a transform matrix to the object; automatically added before a new &lt;br /&gt;
effect if the object has a non empty transform attribute. This is needed since&lt;br /&gt;
transforms and effects do not commute in general...&lt;br /&gt;
===Style effect===&lt;br /&gt;
Applies a given style to the object; added automatically when a new style is&lt;br /&gt;
applied to an object with non empty stack. Usefull to overwrite the default &lt;br /&gt;
style produced by other effects. Should allow to set the priority of each&lt;br /&gt;
style component (replace old style, replace only if not set...)&lt;br /&gt;
&lt;br /&gt;
===Selector===&lt;br /&gt;
This effects selects a part of the input. It has 3 modes:&lt;br /&gt;
*object level: selects object(s) within a group.&lt;br /&gt;
*path level: selects component(s) within a path.&lt;br /&gt;
*[node level: selects node(s) within a path.](? --- delicate)&lt;br /&gt;
&lt;br /&gt;
The subsequent effects should work on this selection, and leave everything else &lt;br /&gt;
unchanged. (usefull to apply different effects to different step of an interpolate effect for instance)&lt;br /&gt;
&lt;br /&gt;
Notice that whenever the stack is modified before this effect, the user should be warned that this modifier depends on the &amp;quot;topology&amp;quot; of the input...&lt;br /&gt;
&lt;br /&gt;
===Pattern along path===&lt;br /&gt;
*Work on groups: add specifications!&lt;br /&gt;
*Offset parameters, space  between copies.&lt;br /&gt;
*Option to fuse nearby ends (?)&lt;br /&gt;
*Option to leave the original shape in the output (?)&lt;br /&gt;
&lt;br /&gt;
===Offset, fillet/champfer, Interpolate and more generally, all the effects we have as extenstions...===&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Lpe-blueprint&amp;diff=21544</id>
		<title>Lpe-blueprint</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Lpe-blueprint&amp;diff=21544"/>
		<updated>2008-02-24T13:37:11Z</updated>

		<summary type="html">&lt;p&gt;Jfb: New page: ''''Live path effects' blue print proposal.'''  ----  Here are some propositions about what the future of live path effects could  look like in the future, from the features/UI point of vi...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''''Live path effects' blue print proposal.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Here are some propositions about what the future of live path effects could &lt;br /&gt;
look like in the future, from the features/UI point of view. The goal is not &lt;br /&gt;
to require this or that particular feature, but to have an idea about&lt;br /&gt;
what could be done, what is hard, what is easy, what is worth and what is not,&lt;br /&gt;
list possible alternatives, etc...&lt;br /&gt;
&lt;br /&gt;
It is natural to use several successive live path effects on the same object, &lt;br /&gt;
leading to an effect stack. The proposition below mimics the modifier stack &lt;br /&gt;
found in most 3D software.&lt;br /&gt;
&lt;br /&gt;
==Effect stack: features and UI==&lt;br /&gt;
&lt;br /&gt;
===General usage===&lt;br /&gt;
A side panel is dedicated to the effect stack. On the top is displayed &lt;br /&gt;
the stack itself, and below the parameters of particular effects.&lt;br /&gt;
The picture below summerizes the main features of the stack area.&lt;br /&gt;
&lt;br /&gt;
A side panel is dedicated to the effect stack. On the top is displayed &lt;br /&gt;
the stack itself, and below the parameters of particular effects.&lt;br /&gt;
The picture below summerizes the main features of the stack area. &lt;br /&gt;
&lt;br /&gt;
[[Image:lpestack.svg]]&lt;br /&gt;
&lt;br /&gt;
The full stack can be navigated and any effect in the stack can be selected to &lt;br /&gt;
become active. The pannel below the stack displays the active effects &lt;br /&gt;
parameters. In the main window (the canvas), the output of the active effect &lt;br /&gt;
is displayed (ideally, a button near the stack toggles wether the stack is&lt;br /&gt;
blocked at the active level, or runs to its end)&lt;br /&gt;
&lt;br /&gt;
*The stack can be collapsed from the active effect to the original shape. The output of the active effect becomes the new original shape.&lt;br /&gt;
*Each effect can be temporariliy bypassed to save performance and interactivity&lt;br /&gt;
*Effects can be draged and droped to reorganize the stack&lt;br /&gt;
*Effects can copied, pasted, cloned (i.e. shared) between objects. Shared effects can be made unique.&lt;br /&gt;
*Effects names (i.e. svg id attribute) can be edited.&lt;br /&gt;
&lt;br /&gt;
===Sublevel navigation===&lt;br /&gt;
&lt;br /&gt;
Some effect use other objects (paths, groups...) as parameters. In this case, &lt;br /&gt;
the line of the effect in the stack can be expanded to show the list of all &lt;br /&gt;
object parameters (see fig. 2).&lt;br /&gt;
&lt;br /&gt;
[[Image:lpestackeditmode.svg]]&lt;br /&gt;
&lt;br /&gt;
As such objects might be &amp;quot;virtual&amp;quot; (i.e. not available on the canvas) and&lt;br /&gt;
complex (typically groups of objects carrying effects on their own),&lt;br /&gt;
an edit mode is needed for such objects that goes beyond the node editor: &lt;br /&gt;
all operations (style, z-order, path effects...) should be availble. &lt;br /&gt;
&lt;br /&gt;
To this end, selecting an object parameter in the effect stack enters edit mode&lt;br /&gt;
for that object: its own effect stack is inserted in the global stack(bracketed&lt;br /&gt;
with easily identified color), and each level of it can be edited normally (in particular, deeper object parameters might be recursively edited). &lt;br /&gt;
&lt;br /&gt;
Edit mode exits when the effect is not active anymore, i.e.&lt;br /&gt;
*another object parameter is selected, &lt;br /&gt;
*the list of object parameters is closed, &lt;br /&gt;
*another effect is selected, &lt;br /&gt;
*the object is deselected. &lt;br /&gt;
(for convenience, a level in the stack could be pined, to avoid non intentional exits).&lt;br /&gt;
&lt;br /&gt;
==Generic effect: features and UI==&lt;br /&gt;
This section describes the general features desired for lpes.&lt;br /&gt;
&lt;br /&gt;
*use any object as input(s): groups, clones, text... &amp;lt;/li&amp;gt;&lt;br /&gt;
*check restrictions for input, and eventually warn the user (eg. accept only connected paths...)&lt;br /&gt;
*object paramters are picked with the mouse, and copied, cloned, or moved into the effect according to user choice (see fig. 1).&lt;br /&gt;
*be aware of the style of the inputs.&lt;br /&gt;
*can output full svg data&lt;br /&gt;
*can recieve an extra selection of the input (a list of objects, path componenents or nodes of the input) to restrict the effect to this selection, see &amp;quot;Selector&amp;quot; effect below.&lt;br /&gt;
&lt;br /&gt;
==Particular effects: propositions of new effects==&lt;br /&gt;
&lt;br /&gt;
===Boolean operation===&lt;br /&gt;
Non destructive operation are usefull. No particular comment.&lt;br /&gt;
===Transform effect===&lt;br /&gt;
Applies a transform matrix to the object; automatically added before a new &lt;br /&gt;
effect if the object has a non empty transform attribute. This is needed since&lt;br /&gt;
transforms and effects do not commute in general...&lt;br /&gt;
===Style effect===&lt;br /&gt;
Applies a given style to the object; added automatically when a new style is&lt;br /&gt;
applied to an object with non empty stack. Usefull to overwrite the default &lt;br /&gt;
style produced by other effects. Should allow to set the priority of each&lt;br /&gt;
style component (replace old style, replace only if not set...)&lt;br /&gt;
&lt;br /&gt;
===Selector===&lt;br /&gt;
This effects selects a part of the input. It has 3 modes:&lt;br /&gt;
*object level: selects object(s) within a group.&lt;br /&gt;
*path level: selects component(s) within a path.&lt;br /&gt;
*[node level: selects node(s) within a path.](? --- delicate)&lt;br /&gt;
&lt;br /&gt;
The subsequent effects should work on this selection, and leave everything else &lt;br /&gt;
unchanged. (usefull to apply different effects to different step of an interpolate effect for instance)&lt;br /&gt;
&lt;br /&gt;
Notice that whenever the stack is modified before this effect, the user should be warned that this modifier depends on the &amp;quot;topology&amp;quot; of the input...&lt;br /&gt;
&lt;br /&gt;
===Pattern along path===&lt;br /&gt;
*Work on groups: add specifications!&lt;br /&gt;
*Offset parameters, space  between copies.&lt;br /&gt;
*Option to fuse nearby ends (?)&lt;br /&gt;
*Option to leave the original shape in the output (?)&lt;br /&gt;
&lt;br /&gt;
===Offset, fillet/champfer, Interpolate and more generally, all the effects we have as extenstions...===&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Creating_Live_Path_Effects&amp;diff=18604</id>
		<title>Creating Live Path Effects</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Creating_Live_Path_Effects&amp;diff=18604"/>
		<updated>2008-01-16T14:38:20Z</updated>

		<summary type="html">&lt;p&gt;Jfb: /* Groundwork: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Instructions for making Live Path Effects.&lt;br /&gt;
&lt;br /&gt;
=How does LPE work?=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Groundwork:=&lt;br /&gt;
It is best to put your new effect in the /live_effects directory. Copy lpe-skeleton.cpp and lpe-skeleton.h to your files (say lpe-youreffect.cpp and lpe-youreffect.h), and rename everything from &amp;lt;i&amp;gt;skeleton&amp;lt;/i&amp;gt; to your name.&lt;br /&gt;
&lt;br /&gt;
In effect.h:&lt;br /&gt;
Add your effect to the enumeration: &amp;quot;enum EffectType&amp;quot;. This way, Inkscape knows how to refer to your effect.&lt;br /&gt;
&lt;br /&gt;
In effect.cpp:&lt;br /&gt;
&lt;br /&gt;
-Add #include &amp;quot;live_effects/lpe-youreffect.h&amp;quot; (below //include effects )&lt;br /&gt;
&lt;br /&gt;
-Add your effect to the &amp;quot;const Util::EnumData&amp;lt;EffectType&amp;gt; LPETypeData[INVALID_LPE]&amp;quot; array. This way, Inkscape knows how to tell the user what the name of the effect is and also how to write its name to SVG.&lt;br /&gt;
&lt;br /&gt;
-Tell inkscape how to create it by inserting it in&lt;br /&gt;
    ...&lt;br /&gt;
    Effect*&lt;br /&gt;
    Effect::New(EffectType lpenr, LivePathEffectObject *lpeobj)&lt;br /&gt;
        ...&lt;br /&gt;
        case YOUREFFECT:&lt;br /&gt;
            neweffect = (Effect*) new LPEYourEffect(lpeobj);&lt;br /&gt;
            break;&lt;br /&gt;
        ...&lt;br /&gt;
    ...&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
One more thing to do: add your files to /live_effects/Makefile_insert. (Be aware of the spaces and tabs in that file!)&lt;br /&gt;
&lt;br /&gt;
That's all! Now your effect should pop up in the LivePathEffect dialog in Inkscape! But your effect won't do anything now, it would just pass along the original path. Time to start writing the main machinery of your cool effect!&lt;br /&gt;
&lt;br /&gt;
=Current Projects=&lt;br /&gt;
*[[Deformation Envelope LPE]]&lt;br /&gt;
&lt;br /&gt;
*[[Perspective LPE]]&lt;br /&gt;
&lt;br /&gt;
*[[LPE for groups]]&lt;br /&gt;
&lt;br /&gt;
*[[LPE stacking]]&lt;br /&gt;
&lt;br /&gt;
=Write your effect:=&lt;br /&gt;
&lt;br /&gt;
The effect code should go into a doEffect function. The doEffect function receives the original path, and should return the path that results from your effect.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;You have to choose between 4 doEffect functions and implement just one of them.&amp;lt;/b&amp;gt; There is a &amp;quot;chain&amp;quot; of these functions. The first doEffect function calls the second, which calls the 3rd, which calls the 4th. The 4th returns its result to the 3rd which returns its result to the 2nd which returns it to the first and finally Inkscape receives the result. But all these standard functions do nothing real, they just change the path from one type to another. You have to determine which type is most convenient for you and &amp;lt;i&amp;gt;overload&amp;lt;/i&amp;gt; that function. This means you put your own doEffect function in the place where normally the standard function would be called.&lt;br /&gt;
&lt;br /&gt;
These are the doEffect functions in the order in which they are called:&lt;br /&gt;
&lt;br /&gt;
1. void doEffect (SPCurve * curve)&amp;lt;br&amp;gt;&lt;br /&gt;
2. NArtBpath * doEffect (NArtBpath * path_in)&amp;lt;br&amp;gt;&lt;br /&gt;
3. std::vector&amp;lt;Geom::Path&amp;gt; doEffect (std::vector&amp;lt;Geom::Path&amp;gt; &amp;amp; path_in)&amp;lt;br&amp;gt;&lt;br /&gt;
4. Geom::Piecewise&amp;lt;Geom::D2&amp;lt;Geom::SBasis&amp;gt; &amp;gt; doEffect (Geom::Piecewise&amp;lt;Geom::D2&amp;lt;Geom::SBasis&amp;gt; &amp;gt; &amp;amp; pwd2_in)&lt;br /&gt;
&lt;br /&gt;
It is easy to replace the standard doEffect function with yours. Let's say you want to create your effect with the path types of the 3rd function. You have to declare that one for your effect in lpe-youreffect.h: they are already writting down in there, you just have to un-comment the one you want, and you can delete the other doEffect functions. You must do the same in lpe-youreffect.cpp. &lt;br /&gt;
&lt;br /&gt;
A &amp;quot;copy&amp;quot; effect has already been put in the .cpp file, you have to spice that up to make it do what you want. It is best to have a look at the doEffect functions of lpe-slant.cpp and lpe-skeleton.cpp to see what is possible and how to implement something!&lt;br /&gt;
&lt;br /&gt;
=Parameter types:=&lt;br /&gt;
&lt;br /&gt;
Your effect can have any number of parameters that you'd like. You have to define them in the .h file. &amp;quot;RealParam number&amp;quot; is already there in the skeleton file; you can delete this if you do not want that kind of parameter ofcourse. That is the location where you can put the parameters that you want.&amp;lt;br&amp;gt;&lt;br /&gt;
You also have to initialise and register them, so Inkscape knows about them. This you should do in the .cpp file: &lt;br /&gt;
&lt;br /&gt;
    // initialise your parameters here:&lt;br /&gt;
    number(_(&amp;quot;Float parameter&amp;quot;), _(&amp;quot;just a real number like 1.4!&amp;quot;), &amp;quot;svgname&amp;quot;, &amp;amp;wr, this, 1.2)&lt;br /&gt;
&lt;br /&gt;
The arguments are respectively, the name of the parameter in the UI, the tooltip text, the name of the parameter in SVG, 2 parameters that you don't have to bother about (they are always the same), and finally the default value. You can also omit the default value.&lt;br /&gt;
&lt;br /&gt;
And these lines register your parameter:&lt;br /&gt;
&lt;br /&gt;
    // register all your parameters here, so Inkscape knows which parameters this effect has:&lt;br /&gt;
    registerParameter( dynamic_cast&amp;lt;Parameter *&amp;gt;(&amp;amp;number) );&lt;br /&gt;
&lt;br /&gt;
==Available parameter types== &lt;br /&gt;
Check the /live_effects/parameter dir for more up-to-date info; perhaps some parameter types were added! You have to include the .h file that belongs to the parameter type in your own .h file to be able to use that parameter type.&lt;br /&gt;
* &amp;lt;b&amp;gt;ScalarParam&amp;lt;/b&amp;gt;: a number of type 'gdouble'. &amp;lt;br&amp;gt;&lt;br /&gt;
include &amp;quot;live_effects/parameter/parameter.h&amp;quot; &amp;lt;br&amp;gt;&lt;br /&gt;
(see lpe-slant.cpp to learn how to use this type)&lt;br /&gt;
* &amp;lt;b&amp;gt;PointParam&amp;lt;/b&amp;gt;: a parameter that describes a coordinate on the page. &amp;lt;br&amp;gt;&lt;br /&gt;
include &amp;quot;live_effects/parameter/point.h&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
(see lpe-skeletal.cpp to learn how to use this type)&lt;br /&gt;
* &amp;lt;b&amp;gt;PathParam&amp;lt;/b&amp;gt;: a parameter that is a path. This is a single path! If the input for this parameter are multiple paths, it is converted to just one path.&amp;lt;br&amp;gt;&lt;br /&gt;
include &amp;quot;live_effects/parameter/path.h&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
(see lpe-skeletal.cpp to learn how to use this type)&lt;br /&gt;
* &amp;lt;b&amp;gt;EnumParam&amp;lt;/b&amp;gt;: a parameter that lets the user choose between a number of options from a dropdown box. &amp;lt;br&amp;gt;&lt;br /&gt;
include &amp;quot;live_effects/parameter/enum.h&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
(see lpe-skeletal.cpp to learn how to use this type)&lt;br /&gt;
* &amp;lt;b&amp;gt;BoolParam&amp;lt;/b&amp;gt;: &amp;lt;br&amp;gt;&lt;br /&gt;
include &amp;quot;live_effects/parameter/bool.h&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;b&amp;gt;RandomParam&amp;lt;/b&amp;gt;: &amp;lt;br&amp;gt;&lt;br /&gt;
include &amp;quot;live_effects/parameter/random.h&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters will automatically appear in the Live Path Effects dialog!&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Jfb</name></author>
	</entry>
</feed>