"SfR Fresh" - the SfR Freeware/Shareware Archive

Member "inkscape-0.46/NEWS" of archive inkscape-0.46.zip:


As a special service "SfR Fresh" has tried to format the requested source page into HTML format using source code syntax highlighting with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. That can be also achieved for any archive member file by clicking within an archive contents listing on the first character of the file(path) respectively on the according byte size field.
    1 ------------------------------------------------------------------------
    2 
    3                              Inkscape 0.46
    4 
    5 ------------------------------------------------------------------------
    6 
    7    Highlights in this release:
    8      * Paintbucket tool
    9      * Tweak tool
   10      * 3D Box tool
   11      * Live path effects
   12      * Color management
   13      * New SVG filters and UI
   14      * Native PDF and AI import
   15      * XAML import/export
   16      * Open Clip Art Library integration (import/export)
   17      * Stock patterns
   18      * Bitmap editing extension effects
   19      * Full on-canvas gradient editing
   20      * Engraver's Toolbox in the Calligraphic tool
   21      * Touch selection
   22      * Dockable dialogs
   23      * Command-line access to verbs
   24      * Snapping made usable
   25      * "3D" / axonometric grid
   26      * Angled guidelines
   27      * Conversion of objects to guidelines
   28      * Significant speed and interactivity improvements
   29      * Hundreds of smaller features and bugfixes
   30 
   31  Speed and interactivity
   32 
   33      * In this version, Inkscape starts using the cairo library for
   34        rendering. It is now used for outline mode display which, thanks to
   35        using cairo and other optimizations, redraws faster by about 25%.
   36        More impressive are memory savings: thanks to cairo, in outline
   37        mode Inkscape now takes only about 50% of the memory used by 0.45
   38        for the same file.
   39 
   40      * Smart redraw directionality: With complex images and/or on slow
   41        computers, you may have noticed that Inkscape redraws the screen
   42        image in horizontal strips, and these strips are painted in order
   43        from top to bottom. Now the redraw always starts at your mouse
   44        cursor location and proceed upwards and downwards from it, so that
   45        the area near the cursor is always redrawn first. This
   46        significantly improves program's responsiveness in some situations.
   47        For example, when you are node-editing part of a complex path, the
   48        entire path needs to be redrawn on each change, but now this redraw
   49        starts from the point you're working on. Moreover, the redraw is
   50        interruptible, so each mouse movement starts new redraw from the
   51        mouse cursor area. As a result, during such operations those parts
   52        that you're working on redraw often and feel snappy and responsive,
   53        while areas further away may lag behind more.
   54 
   55      * Faster blur for exporting and high quality on-screen rendering:
   56        Inkscape now uses an IIR (Infinite Impulse Response) filter for
   57        blurring with large radius. This greatly improves the speed of blur
   58        redraw at high zooms or in high-resolution export (or simply with
   59        very large blur radius). On the other hand, the results are an
   60        approximation to a true Gaussian blur, so a drawing may look
   61        slightly different from the mathematically precise blur (usually
   62        the differences are far from visible, though). This code is mainly
   63        based on: Recursive Gaussian Derivative Filters by L.J. van Vliet,
   64        I.T. Young and P.W. Verbeek (see the source code for more detailed
   65        references).
   66 
   67           Exporting drawings with blur was particularly slow in 0.45; some
   68           files could take hours to export. Now this is fixed, in part by
   69           the faster algorithm mentioned above and in part by a bugfix in
   70           the export code. Now even the quite complex files with large
   71           blurs export at high resolution in at most a few minutes.
   72 
   73      * Minor improvements have been made to gradient rendering
   74        performance.
   75 
   76      * Dragging handles and nodes as well as dragging and transforming
   77        objects by mouse became more responsive, so that working in complex
   78        drawings and especially editing complex paths is noticeably easier.
   79        In particular, this fixes the annoying latency issue where a node
   80        or a handle could follow mouse cursor even after you release mouse
   81        button after a drag.
   82 
   83      * Moving objects, nodes, and gradient handles by cursor keys as well
   84        as scaling and rotating objects from keyboard and zooming by keys
   85        are much more responsive when working with complex slow-rendering
   86        objects. Now, if you press and hold a key, your selection/zoom
   87        level will quickly jump to the final position instead of going
   88        through all the intermediate steps as before.
   89 
   90      * Moving the cursor around in a file with large and complex paths has
   91        become much snappier and more responsive. Previously, in extreme
   92        cases Inkscape could freeze for seconds while catching up with the
   93        mouse cursor; such delays are now eliminated.
   94 
   95      * Several improvements make canvas panning and scrolling smoother and
   96        more interactive in complex slow-rendering documents:
   97 
   98           + When panning by the middle mouse button, Inkscape no longer
   99             attempts to redraw the canvas while your mouse button is
  100             pressed. Any redrawing only happens after you release the
  101             mouse. As a result, the newly revealed parts of the canvas are
  102             somewhat more "dirty" but the panning is smoother than before,
  103             with few if any "hiccups".
  104 
  105           + Redrawing the newly exposed parts of the canvas after
  106             scrolling, especially diagonal scrolling, is now faster
  107             because only the exposed areas are redrawn; before, this often
  108             resulted in the entire screen being redrawn which was much
  109             slower.
  110 
  111           + Previously, if you started panning with middle button while
  112             Inkscape is still redrawing screen in a complex drawing,
  113             panning sometimes completely failed or moved canvas just a
  114             little step. Now it is guaranteed to pan the canvas all the
  115             way from mouse-press point to mouse-release point in any case,
  116             even if sometimes it fails to show the intermediate positions.
  117 
  118           + When pressing and holding Ctrl+arrows to scroll canvas,
  119             Inkscape normally accelerates scrolling so that each next
  120             scrolling step is bigger than the previous. Previously, in
  121             complex drawings this acceleration sometimes got interrupted,
  122             which made scrolling annoyingly bumpy and slow. Now this is
  123             fixed so that scrolling is smoothly accelerated even in a
  124             slow-rendering document.
  125 
  126           + The default starting speed and acceleration of Ctrl+arrows
  127             scrolling are slightly increased. (They are both settable in
  128             Preferences.)
  129 
  130      * Better responsiveness and more visual feedback in user interface:
  131 
  132           + When you zoom, the zoom control on the right end of the
  133             statusbar now updates immediately, not after screen redraw as
  134             before.
  135 
  136           + Many potentially slow commands (Save, Simplify, Combine, Break
  137             Apart and others) now display a busy cursor and flash a
  138             message in the statusbar (e.g. "Saving document...") while
  139             they work.
  140 
  141           + The statusbar messages displayed while you're drawing a shape
  142             or a path in Pen tool do not lag behind the mouse movements.
  143 
  144      * Combine and Convert to paths commands are now orders of magnitude
  145        faster when applied to a selection with hundreds or thousands of
  146        objects.
  147 
  148      * The time it takes to snap to objects using the selector tool has
  149        been reduced dramatically, which is most noticeable for snapping to
  150        complex paths.
  151 
  152  Tools
  153 
  154  Paint Bucket tool
  155 
  156    The new Paint Bucket tool works exactly as you would expect: click in
  157    any area bounded on all sides and it will fill it with color. Being a
  158    vector tool, however, Inkscape's Paint Bucket just creates a new path
  159    that "fills in" the area in which you clicked.
  160 
  161  How it works
  162 
  163    It is important to note that the tool is perceptual, not geometric.
  164    That is, when looking for the boundaries around the point you clicked,
  165    it takes for such boundaries any visible color changes. This means that
  166    filling will stop at gradients, blurs, and even the color boundaries in
  167    imported bitmaps, but will ignore any paths or other objects that are
  168    fully (or almost) transparent or for any other reason do not stand out
  169    from the background. In short, it will work exactly as if you were
  170    filling a rasterized version of your image in a bitmap editor like
  171    Photoshop or GIMP - but will give you a vector object to work with.
  172 
  173    For example, now you can scan a pencil sketch, import the bitmap into
  174    Inkscape, and quickly fill all its cells with colors even without
  175    tracing the bitmap first. This is a very convenient and interactive way
  176    of digitizing your paper drawings, making the traditional bitmap
  177    tracing unnecessary in many cases.
  178 
  179    Internally, the tool works by performing a bitmap-based flood fill on a
  180    rendered version of the visible canvas, then tracing the resulting fill
  181    using potrace and placing the traced path into the document.
  182 
  183    It places the rendered path onto the current layer, so you can have a
  184    layer on top (for example, "Inks") and select the layer below
  185    ("Colors") and do the fills so that they always appear below the Inks.
  186 
  187    The resolution of the bitmap image used to perform the trace is
  188    dependent upon your current zoom level -- the more zoomed in to an area
  189    that you are, the higher the resolution of the bitmap-based flood fill.
  190    So, if you are got a fill that is too imprecise, has rough corners, or
  191    don't go into small nooks and appendices where it is supposed to go,
  192    just undo, zoom in closer and repeat filling from the same point.
  193    Conversely, if the fill leaks out through a small gap, zoom out to make
  194    the gap less visible and fill again (or use the auto gap closing
  195    parameter, see below).
  196 
  197  Style
  198 
  199    Like all object-creating tools, the Paint Bucket may use the last-set
  200    style for the objects it creates (this is the default), or it can use
  201    its own fixed style. You can switch between these modes on this tool's
  202    page in Inkscape Preferences (Ctrl+Shift+P). As in all other tools, the
  203    style swatch on the far right of the Controls bar shows the style that
  204    will be used for the next fill object you create.
  205 
  206  Controls
  207 
  208    In the tool's Controls bar:
  209      * Paint Bucket's perceptual fill can use either all visible colors or
  210        specific color channels. Using the Fill by drop-down list, you can
  211        restrict the fill algorithm to one the following channels:
  212           + Red
  213           + Green
  214           + Blue
  215           + Hue
  216           + Saturation
  217           + Lightness
  218           + Alpha
  219 
  220      * The Threshold (in per cent units) controls how large must be color
  221        difference at a point (compared to the initial click point) to stop
  222        the fill. Zero tolerance means only the area of strictly the same
  223        color will be filled; the larger the tolerance, the easier it will
  224        be for the fill to leak into adjacent different-color areas. The
  225        default value is 10%.
  226 
  227      * Using the Grow/shrink by parameter, you can control the amount of
  228        inset/outset to be applied to the created fill path. Setting a
  229        positive outset causes fill paths to be larger than the filled
  230        bitmap area (good for eliminating anti-aliasing errors), while
  231        setting a negative outset causes the path to be smaller. This works
  232        much the same as the Outset and Inset path commands, except it's
  233        done automatically after every fill.
  234 
  235      * With the Close gaps parameter, you can make the Paint Bucket tool
  236        ignore any gaps in the area boundaries that would normally cause
  237        the fill to spill out of the desired area. There are four settings
  238        to auto gap:
  239           + None
  240           + Small (close gaps up to 2 pixels in size)
  241           + Medium (4 pixels)
  242           + Large (6 pixels)
  243 
  244           Note that setting this parameter to other than None may slow
  245           down noticeably the filling of large areas.
  246 
  247  Shortcuts
  248 
  249    The tool's shortcuts are:
  250      * Single click performs filling from the click point.
  251 
  252      * Shift+click performs filling from the click point and then unions
  253        the resulting path with the selected path. This way, if your first
  254        attempt did not fill in all of the desired area, you can
  255        Shift+click the remaining corner to fill it in separately and
  256        combine the result with the result of the previous fill.
  257 
  258      * Ctrl+click on an object simply changes that object's fill to the
  259        current fill color of the tool, and Shift+Ctrl+click changes the
  260        stroke to the current stroke color.
  261 
  262      * Click and drag performs filling from all of the points that you
  263        pass while dragging (you will see your path visualized by a red
  264        line). From each point, the fill spreads to the neighbors with the
  265        colors similar to that point - in other words, it's like clicking
  266        with this tool at each point of the drag path and unioning the
  267        results. This lets you easily fill an area occupied by a gradient
  268        or blur - just drag from the darkest to the lightest points in the
  269        area you want to fill.
  270 
  271      * Alt+click and drag works similarly to simple drag, except from each
  272        point of the drag path, the fill spreads to the neighbors (if any)
  273        with the colors similar to the initial point (the point where you
  274        started the drag). This lets you fill a series of similarly-colored
  275        yet separated areas (for example, multiple cells in a cartoon) by
  276        starting the drag in one of those areas, and alt+dragging the tool
  277        through all the other areas.
  278 
  279  Tweak tool
  280 
  281    The Tweak tool is an exciting new way to edit drawings which largely
  282    blurs the distinction between vector and raster editing. Instead of
  283    meticulously selecting some objects and then performing an action on
  284    the selection, you can now select all objects (or all objects you are
  285    interested in) and apply the Tweak tool's brush to smoothly and
  286    naturally change the shape or style of only those objects (or parts
  287    thereof) that the brush touches.
  288 
  289    The area of the tool's action - its brush - is marked by an
  290    orange-colored circular outline that moves with your mouse cursor.
  291    However, that area actually has no sharp boundaries; the power of the
  292    tool's action falls off gradually, following a smooth bell-shaped
  293    profile. This makes the tool act softly and smoothly.
  294 
  295    The tool will work on any number of selected objects; for example, you
  296    can select all (Ctrl+A) and "smear" your entire drawing by Push mode or
  297    paint it by Color Paint mode. You can also apply it to groups of
  298    objects; it will go into groups and act on individual objects inside
  299    groups. If you're trying to use it without anything selected, it will
  300    remind you by a statusbar message to select some objects.
  301 
  302  Width
  303 
  304    The width of the tool's brush, in the range from 1 to 100, can be
  305    changed by the Width control in the tool's controls bar above the
  306    canvas. You can also change width by Left and Right arrow keys (same as
  307    in the Calligraphy tool) at any time (including during action) as well
  308    as Home and End. Also, as in Calligraphy tool, the visible width of the
  309    brush is independent of zoom; simply zooming in or out is often easier
  310    than adjusting the width if you want to cover a smaller or larger area
  311    of the drawing.
  312 
  313  Force
  314 
  315    The next control is Force which adjusts the power of the action, also
  316    in the range from 1 to 100. You can also change width by Up and Down
  317    arrow keys at any time (including during action).
  318 
  319    If you have a pressure-sensitive tablet and your "Use pressure" button
  320    on the right-hand end of the controls bar is on, then the force will
  321    also depend on how hard you actually press your pen into your tablet,
  322    changing in the range from zero to whatever you set in the Force
  323    control. If all you have is a mouse, then the force will be constant
  324    but still settable by the Force control.
  325 
  326  Path editing modes
  327 
  328    The Tweak tool has a number of modes, selectable by toggle buttons in
  329    the tool's Controls bar and by keyboard shortcuts. Some of these modes
  330    change the shapes of paths while others affect the colors of objects.
  331    All these modes share the Width and Force controls but otherwise are
  332    quite different. Let's look at the path editing modes first.
  333 
  334    Unlike the Node tool, to edit paths with the Tweak tool you don't need
  335    to worry about where the nodes of a path are and how to manipulate
  336    them. You just apply the tool's brush to any point, and the selected
  337    paths at that point will reshape smoothly and naturally - as if made of
  338    soft jelly - regardless of where its nodes lie. If applied to a shape
  339    or text object, the tool converts them to paths automatically.
  340 
  341    While not very useful for technical drawings, tweaking paths will be
  342    indispensable for artistic uses of Inkscape - cartoons, drawings,
  343    sketches, anime, etc. This new functionality is somewhat similar to the
  344    tools such as "Pucker" and "Bloat" in the latest versions of Adobe
  345    Illustrator.
  346 
  347    There are currently six path editing modes in the Tweak tool: Push,
  348    Shrink, Grow, Attract, Repel, and Roughen.
  349      * This default mode of the tool, Push, simply displaces the part of
  350        the path under the cursor in the direction of the drag. The path
  351        behaves like soft jelly, bending and bulging smoothly and
  352        naturally. It's an easy way to produce various irregular, lifelike,
  353        handmade-looking shapes starting from something as simple as an
  354        ellipse or a calligraphic stroke. For parallel-stroke hatching
  355        (engraving) done in the Calligraphy tool, pushing is an easy way to
  356        bend, pinch, or curve the entire hatching uniformly.
  357 
  358      * The Shrink and Grow are two opposite modes that move each point of
  359        a path in a direction perpendicular to the path's surface at the
  360        point, either inwards (Shrink) or outwards (Grow). This is similar
  361        to the Inset and Outset commands, except that the Tweak tool can
  362        act on a part of a path instead of the whole path.
  363 
  364           For example, the visible lightness/darkness of an engraving
  365           hatching may not exactly correspond to your artistic intention.
  366           Also, the ends of Calligraphy pen strokes are often far from
  367           ideal - they may be too blunt or have unsightly bends or blobs.
  368           This is where the Tweak tool may help. Select all the strokes in
  369           a hatching pattern and apply a light Shrink action where you
  370           want the lines to become thinner (and the hatching to become
  371           lighter), up until total disappearance. If you press hard,
  372           shrinking works as an eraser, so you can easily clean the
  373           strokes' ends to make them thin, sharp, and uniform. Conversely,
  374           applying Grow makes strokes wider (i.e. the hatching becomes
  375           darker).
  376 
  377           Of course, shrinking and growing are useful not only for
  378           calligraphic strokes. Same as with Push, with Shrink and Grow
  379           you can sculpt any path, spawning smooth treacle-like appendages
  380           with Inflating and carving holes with Melting. Unlike the "node
  381           sculpting" mode in the Node tool, however, this does not require
  382           adding new nodes to the shape.
  383 
  384      * The Attract and Repel modes work by moving each affected point on a
  385        path towards (Attract) or from (Repel) the cursor point. In some
  386        cases this may look similar to Shrink and Grow, but the difference
  387        is that shrinking/growing moves paths perpendicularly to the path
  388        in each point, whereas attracting/repelling moves them to or from
  389        the cursor regardless of the path shape. These modes are similar to
  390        the Pinch effect in ; you can use them for various
  391        central-symmetric distortions in parts of your paths.
  392 
  393      * The Roughen mode does exactly this: roughens the edge of the path
  394        without changing its overall shape. Slight roughening simply makes
  395        the edge crooked and uneven; strong roughening tears and explodes
  396        the edge into random blobs and splotches. Note that this operation,
  397        especially with high Fidelity, adds a lot of nodes which increases
  398        the size of your SVG document and may slow down Inkscape
  399        considerably. In particular, pushing/melting/inflating of a
  400        roughened path becomes much slower and more difficult, so it's
  401        recommended to finalize the overall shape of a path first and
  402        roughen it, if necessary, only as the final step.
  403 
  404    See the screenshot at [136][1] for a few examples of using the path
  405    editing modes of the Tweak tool.
  406 
  407  Fidelity
  408 
  409    Any tweaking of a path slightly distorts the entire path, including
  410    even those parts that you didn't touch. These distortions are similar
  411    to those that a Simplify command produces. The Fidelity value (also in
  412    the range from 1 to 100, default is 50) allows you to control the
  413    amount of these distortions. With a higher fidelity, the distortions
  414    are less noticeable, but the path may end up having a lot of nodes
  415    which inflates up the SVG size and slows down Inkscape.
  416 
  417    The best value of Fidelity depends on the nature of your artwork. If
  418    you're sculpting an amorphous blob, you can do with low fidelity of
  419    about 20. If, however, you are pushing or inflating a text string (as a
  420    single path) and want the letters outside the distorted area to remain
  421    crisp and clean, you will need to raise fidelity to 80 or more.
  422 
  423  Known problems
  424 
  425    Known problems with the path editing modes in Tweak tool:
  426     1. they don't work on open paths (an open path becomes closed if you
  427        tweak it);
  428     2. they are rather slow;
  429     3. they quickly eat memory; and
  430     4. they are sometimes buggy - thin calligraphic strokes may suddenly
  431        disappear or change their shape drastically as you're melting or
  432        inflating them.
  433 
  434    For (4), it helps to increase Fidelity. Also, you can undo the bad
  435    change and try again with less pressure on the pen - if you do your
  436    thinning in several light touches instead of one heavy press, usually
  437    you will be able to get the desired result without the buggy behavior.
  438 
  439    Also, sometimes after roughening, further tweaking of a path becomes
  440    impossible with this diagnostic:
  441  WARNING **: Shape error in ConvertToShape: directedEulerian(a) == false
  442 
  443    All these problems stem from the livarot library that we use for
  444    geometric manipulation of paths. Fortunately, livarot is scheduled for
  445    replacement by lib2geom, a new library now in development, so hopefully
  446    these issues will be addressed then.
  447 
  448  Color editing modes
  449 
  450    The Color Paint and Color Jitter modes, unlike the path editing modes,
  451    change the colors of objects instead of their shapes. Yet they share
  452    enough common features with the path editing modes to be part of the
  453    same tool: These modes also use a circular soft-edged brush controlled
  454    by the Width and Force parameters on the Controls bar and affected by
  455    the pen pressure (if you have a pressure-sensitive tablet).
  456      * Color Paint applies the style of the tool to the selected objects
  457        under the brush. The style of the tool is visible in the style
  458        swatch at the rightmost end of the tool's control bar; it can be
  459        changed by clicking on the color palette or by any other style
  460        assignment command, such as Fill and Stroke dialog. (Note: unlike
  461        all other tools, in Tweak tool in Color Paint mode you cannot
  462        assign style directly to selected objects; any style-setting
  463        command changes the tool's style instead.)
  464 
  465           The fill from the tool's style applies to the fills of the
  466           painted objects, and the stroke applies to the strokes. If the
  467           tool's style has no fill or no stroke, it won't affect fills or
  468           strokes, correspondingly. For example, if you want to color the
  469           fills of objects blue but leave their strokes untouched, assign
  470           blue fill to the tool's style (just click blue on the palette)
  471           but set its stroke to None (middle-click the Stroke swatch in
  472           the statusbar). Similarly, master opacity in the tool's style
  473           affects master opacities of the touched objects (if the O
  474           channel is on, see below).
  475 
  476           This mode allows you to literally paint over objects, shifting
  477           their colors towards the target style of the tool. For example,
  478           if you paint with yellow fill over a blue-filled object, the
  479           object will become greenish blue, then green, then yellowish
  480           green, and end up being exactly the yellow color you're painting
  481           with. This speed of this gradual transition depends on both
  482           Force parameter and pen pressure; also, objects touched by the
  483           periphery of the brush are less affected than those hit by the
  484           brush center. Overall, using this tool is very similar to a soft
  485           brush in a raster editor such as Gimp or Photoshop.
  486 
  487      * Color Jitter mode does not apply any color, but instead jitters
  488        (randomizes) the colors of the objects it touches. The force of the
  489        action determines how strong is the randomization, i.e. how far the
  490        colors deviate from the original values. This mode does not use the
  491        tool's style.
  492 
  493    Both modes work on flat fills and gradients; for gradients, the tool
  494    takes into account not only the position of the entire object with
  495    gradient, but also the position of each gradient stop relative to the
  496    brush. This means that, for example, you can change the blue color only
  497    in an object filled with blue-red gradient simply by painting over its
  498    blue end with a brush small enough to not touch the red. (Note that
  499    color tweaking does not create gradients on objects that used flat
  500    color before, but only adjusts existing gradients in the drawing.)
  501 
  502    See the screenshot at [140][2] for a few examples of using the color
  503    editing modes of the Tweak tool.
  504 
  505  Channels
  506 
  507    Color Paint and Color Jitter honor the Channels control. This control
  508    comprises the four buttons: H, S, L, and O, which allow you to turn on
  509    and off the tool's action on the object's hue, saturation, lightness,
  510    and opacity, correspondingly. For example, if you want to raise the
  511    saturation of some part of your drawing without changing the hue,
  512    select some maximum-saturation color (e.g. pure red) and turn off all
  513    Channels buttons except S. Similarly, you can replace the hues without
  514    affecting saturation or lightness (only H pressed), or lighten/darken
  515    all colors without changing their hues and saturation (only L pressed).
  516    Pressing O allows you to apply the master opacity from the tool's style
  517    to the master opacity of objects (but not fill or stroke opacity).
  518 
  519  Usage notes
  520 
  521    Color painting with Tweak tool is similar, but not exactly analogous to
  522    bitmap painting. Even though the tool itself works as a soft brush, it
  523    still applies its color to vector objects, which behave as vector
  524    objects usually do. For example, if you want to change the tint of the
  525    face in your drawing, and if a hand in the drawing is part of the same
  526    object as the face, that hand will change its tint too even if it's
  527    located far from the point you are painting. (We foresee a "fracture"
  528    command in one of the next versions of Inkscape which will help you
  529    turn a monolithic object into a mosaic of small fragments that will be
  530    then easy to paint with Tweak tool.) Still, even with this limitation,
  531    color painting is a novel way of dealing with vector drawings which
  532    allows you to quickly and intuitively make adjustments which would be
  533    awkward and slow with traditional approach.
  534 
  535    Drawings containing patterns or scatterings of small independent
  536    objects are best suited for color painting with Tweak tool. Examples
  537    include:
  538      * freehand drawings with Calligraphy pen, consisting of many separate
  539        strokes;
  540 
  541      * gradient meshes imported from Adobe Illustrator files (Inkscape
  542        renders these meshes as lattices of small polygons; while there's
  543        no direct support for gradient meshes in Inkscape yet, color
  544        painting on such lattices is almost as good);
  545 
  546      * text converted to paths and with Break Apart command applied so
  547        that each letter is a separate path;
  548 
  549      * patterns made with the Tile Clones command; note that you need to
  550        unset the fill and/or stroke on the original object and use the
  551        Color tab to assign some initial color to the clones - this will
  552        make them paintable with the Tweak tool without unlinking.
  553 
  554    Moreover, color tweaking can be useful for compositions with a few
  555    objects or even for single objects. Unlike all other color selection
  556    methods, painting with the Tweak tool implements the color mixing
  557    metaphor which is much more familiar to traditional artists than RGB
  558    sliders or even the color wheel. For example, start with a rectagle of
  559    pure blue color; then, pick different colors by Color Paint and apply
  560    light touches with minimum Force and minimum pen pressure: add a little
  561    green, a little brown, a little yellow, etc. until you have the exact
  562    hue you need. Similarly, you can whiten or blacken any hue by admixing
  563    white or black.
  564 
  565    You can also use color tweaking to add a tint, darken/lighten,
  566    saturate/desaturate, or color jitter your entire drawing. Just select
  567    all in all layers, zoom out, choose a large brush width so it covers
  568    all of the drawing, and apply a little color tweaking (with minimum
  569    Force) that will therefore affect all visible objects.
  570 
  571  Keyboard shortcuts
  572 
  573      * W, Shift+F2: switch to the Tweak tool
  574 
  575      * Shift+P: switch to the Push mode
  576 
  577      * Shift+S: switch to the Shrink mode
  578 
  579      * Shift+G: switch to the Grow mode
  580 
  581      * Shift+A: switch to the Attract mode
  582 
  583      * Shift+E: switch to the Repel mode
  584 
  585      * Shift+R: switch to the Roughen mode
  586 
  587      * Shift+C: switch to the Color Paint mode
  588 
  589      * Shift+J: switch to the Color Jitter mode
  590 
  591      * Left, Right, Home, End: change width
  592 
  593      * Up, Down: change force
  594 
  595      * mouse drag: act on selected path in the current mode
  596 
  597      * Ctrl+mouse drag: temporarily switch to Shrink (while Ctrl is down)
  598 
  599      * Shift+Ctrl+mouse drag: temporarily switch to Grow (while Shift+Ctrl
  600        is down)
  601 
  602  3D Box tool
  603 
  604    Inkscape is a two-dimensional drawing tool. However, very often it is
  605    used to create drawings or objects that appear three-dimensional. The
  606    new 3D box tool helps you create such drawings by automating the most
  607    common operation: creating a box in a given 3D perspective. The tool
  608    automatically ensures that all sides of the box lie on the
  609    corresponding perspective lines. We're not going to compete with
  610    Blender - but even simple things can go a long way.
  611 
  612    Currently in the 3D Box tool you can:
  613      * Draw a 3D box by dragging on canvas; Shift+drag without releasing
  614        the mouse button to extrude in Z direction.
  615 
  616      * Adjust any of its 3 dimensions by handles. The 4 handles on the
  617        front X/Y side resize it, the four ones on the back X/Y side
  618        expand/contract the box in Z direction. With Shift, the functions
  619        of handles on front and back sides are reversed. With Ctrl, the
  620        side-resizing handles snap to the coordinate axes or diagonals.
  621 
  622      * Move a 3D box "in perspective" by dragging its center; without
  623        modifiers, movement occurs within the XY-plane (press Ctrl to
  624        constrain the movement to the directions of the coordinate axes or
  625        diagonals), with Shift the box moves parallel to the Z-axis.
  626 
  627      * Adjust the vanishing points of a perspective by dragging them on
  628        the canvas (see below) or toggling their states; all boxes sharing
  629        this perspective are affected by a vanishing point move.
  630 
  631    When several boxes are selected, all vanishing points of their
  632    associated perspectives are shown on the canvas. If vanishing points of
  633    different perspectives coincide, they are combined in a single
  634    "dragger". Moving this dragger moves all the vanishing points
  635    simultaneously and transforms the associated boxes accordingly. Note
  636    that some non-selected boxes may also be reshaped if their perspectives
  637    share the same vanishing point. Pressing Shift while moving the dragger
  638    can be used to only transform the selected boxes, separating their
  639    perspectives from the non-selected ones'. On the other hand, when a
  640    vanishing point being dragged comes close enough to another one, both
  641    snap together and are combined in a single dragger.
  642 
  643    In SVG, a 3D box is represented as a group (svg:g) with a special
  644    extension attribute (in Inkscape's namespace); this group contains the
  645    6 quadrilateral paths representing the sides of the box. Only the 3D
  646    box tool treats this object as a box; for all other tools it is just a
  647    group, so you can select any of the paths by Ctrl+click, apply any
  648    style to it, delete it, etc. You can of course transform the entire box
  649    or any face in it using Selector or Node tools.
  650 
  651  Keyboard shortcuts
  652 
  653      * X, Shift+F4: switch to the 3D box tool
  654 
  655      * The various kinds of parentheses, namely [ ], ( ), { }, can be used
  656        to rotate infinite (i.e., parallel) perspective lines in X-, Y-,
  657        and Z-direction, respectively. Closing parentheses rotate clockwise
  658        and opening parentheses rotate counterclockwise. The angle of
  659        rotation is taken from the preferences. Pressing Alt reduces the
  660        amount of rotation to 1 screen pixel.
  661 
  662      * When the 3D box tool is active, Shift+X, Shift+Y, and Shift+Z
  663        toggle perspective lines in the corresponding direction between
  664        "converging" and "parallel".
  665 
  666  Gradient Tool
  667 
  668  Selecting multiple stops
  669 
  670    More than one gradient stop can be selected at a time. Shortcuts for
  671    working with multiple stop selections are generally modeled on the Node
  672    tool.
  673      * Add a stop to the selected stops by Shift+click.
  674      * Press Ctrl+A to select all stops in the selected objects.
  675      * Shift+drag around stops to add them to selection.
  676 
  677    Multiple selected stops:
  678      * Can be moved together by mouse drag or by arrow keys. For example,
  679        creating a linear gradient, then press Ctrl+A to select all stops
  680        and use arrow keys to move the entire gradient as a whole.
  681      * Can be deleted at the same time by pressing Del.
  682 
  683    An always up-to-date description of the current handle selection is
  684    provided in the statusbar in the Gradient tool, including the number of
  685    selected handles (and the type of the single selected handle), as well
  686    as the total number of handles and selected objects.
  687 
  688  Editing intermediate stops
  689 
  690    Intermediate stops in gradients can be added, deleted, and edited on
  691    canvas (previously this was only possible in the Gradient Editor
  692    dialog).
  693      * Stops can be added by double clicking or by Ctrl+Alt+Click on the
  694        gradient line. Also, you can drag-and-drop a color from the palette
  695        onto the gradient line to create a new stop with this color.
  696        Dropping a color on an existing stop changes the color of that
  697        stop.
  698      * When two or more adjacent stops are selected, pressing Ins adds
  699        stops in the middles of all selected stop intervals.
  700      * Intermediate stops can be mousedragged or moved by arrow keys along
  701        their gradient line, within the limits of the adjacent unselected
  702        stops (or end handles).
  703 
  704           + Dragging with Ctrl moves the selected stops snapping them to
  705             1/10 fractions of the available range.
  706           + Dragging with Alt moves the selected stops depending on how
  707             close each one is to the stop being dragged, using a smooth
  708             bell-like curve similar to the node sculpting feature in Node
  709             tool. This makes it easy to approximate different gradient
  710             profiles; for example, if you have a two-stop gradient that
  711             you want to shape according to a curve profile, select both
  712             ends of the gradient, press Ins a few times to add a number of
  713             intermediate nodes, then Alt+drag a node in the middle to
  714             smoothly profile the gradient.
  715 
  716      * Stops can also be moved by arrow keys with all the regular
  717        modifiers (Shift for 10x movement, Alt for pixel-size movement at
  718        the current zoom, Shift+Alt for 10 pixels movement at the current
  719        zoom).
  720      * Stops can be deleted by Ctrl+Alt+Click on a stop or by the Del key
  721        for all the selected stop(s).
  722 
  723           + When you delete an end stop, the nearest intermediate stop
  724             becomes the new end stop of the gradient (without moving -
  725             i.e., the gradient span becomes shorter).
  726           + When you delete an end stop and there are no intermediate
  727             stops, the object will be painted with a solid fill taken from
  728             the color & opacity of the remaining stop.
  729 
  730      * Pressing Ctrl+L with some intermediate stops selected attempts to
  731        simplify the selected portion of the gradient, removing those stops
  732        that can be removed without too much change in the way the gradient
  733        looks. In particular, new stops created by double-clicking or
  734        pressing Ins initially do not change the appearance of the
  735        gradient, so if you press Ctrl+L, all redundant stops that weren't
  736        moved or repainted since creation will be deleted.
  737 
  738  Style of gradient stops
  739 
  740      * When you have one of the gradient handles selected, its style
  741        (color and opacity) is reflected by the selected style indicator
  742        (left of the statusbar) and the Fill&Stroke dialog. Previously,
  743        opacity of a gradient handle was reflected as fill-opacity and
  744        stroke-opacity; now it is reflected as master opacity (the "O:"
  745        spinbutton in the selected style indicator, the "Master opacity"
  746        slider in Fill&Stroke). This makes it much easier to view and
  747        change opacity of gradient handles using only the selected style
  748        indicator in the statusbar.
  749 
  750           + When multiple gradient stops are selected, the selected style
  751             indicator (in the statusbar) displays and controls the
  752             averaged color and opacity of the selected stops.
  753 
  754      * When one or more gradient stops are selected, using the Copy
  755        command (Ctrl+C) copies to the clipboard the style (color and
  756        opacity) of the selected stop or the averaged style of several
  757        selected stops, not the entire object with gradient as before. This
  758        means you can now copy/paste style between stops: select the source
  759        stop(s), copy, select the destination stop(s), paste style
  760        (Ctrl+Shift+V). With several selected stops, this also allows you
  761        to easily average their colors and opacities by copying them and
  762        pasting the style back onto them. (After that, redundant gradient
  763        stops can be removed by simplification with Ctrl+L).
  764      * If the selected object(s) have gradient in fill or stroke, the
  765        selected style indicator in the bottom-left corner of the editing
  766        window now displays a live gradient preview prefixed by R or L to
  767        indicate Radial or Linear gradients (instead of displaying "L
  768        Gradient" or "R Gradient" text labels as before). Also, this and
  769        other similar widget now use italic font face to indicate None and
  770        bold to indicate Unset.
  771 
  772  Automatic duplication of gradients
  773 
  774    When copy/pasting or duplicating an object with gradient, it now
  775    automatically gets a copy of the original gradient, so modifying it
  776    does not affect the source object's gradient anymore (before, you had
  777    to press the Duplicate button on the Gradient controls bar for this).
  778    The Duplicate button is therefore removed.
  779 
  780    However, to accommodate the needs of users who have relied on sharing
  781    the same gradient definition across objects, this behavior can be
  782    optionally suppressed. The Prevent sharing of gradient definitions
  783    checkbox on the Misc tab of Inkscape Preferences is by default checked;
  784    if you uncheck it, Inkscape does not automatically copy gradient
  785    definitions for new objects, which means that copy/pasting,
  786    duplicating, pasting style, and explicit assignment of a gradient to an
  787    object via the Gradient tool controls results in a shared gradient
  788    definition, so that changing the colors or mid-stop positions of the
  789    gradient on one object (but not changing the coordinates of the end
  790    handles) affects all other objects that share the same definition.
  791 
  792  Calligraphy tool: Engraver's Toolbox
  793 
  794    Several new features were added to the Calligraphic pen to make
  795    Inkscape capable of the ancient art of line engraving. Traditional
  796    engraving is a very labour-intensive process, and while for a long time
  797    it was the only practical way of reproducing lifelike images in
  798    black-and-white print, about a century ago it was almost completely
  799    displaced by automatic halftone screens. However, line engravings have
  800    their characteristic charm, and there's no reason not to try to
  801    resurrect this art form with the help of Inkscape.
  802 
  803    A brief visual guide to the new functionality can be seen on these
  804    screenshots:
  805 
  806    http://inkscape.org/screenshots/gallery/inkscape-0.46-engraving1.png
  807 
  808    http://inkscape.org/screenshots/gallery/inkscape-0.46-engraving2.png
  809 
  810  Tracking a guide path with Ctrl
  811 
  812    One of the most common operations in line engraving is hatching (or
  813    sometimes cross-hatching when several hatching grids cross): filling a
  814    space with many parallel straight or variously curved lines (usually of
  815    varying width to represent a gradual shading). You could try to achieve
  816    a similar effect with e.g. path interpolation (blending), but it is
  817    rather cumbersome and limited; manual drawing of hatch lines, on the
  818    other hand, is tedious and nearly impossible to do uniformly. Now
  819    Inkscape provides "assisted hatching" by tracking a guide path,
  820    allowing you to hatch quickly and uniformly and at the same time giving
  821    you sufficient manual control over the process.
  822 
  823    Here's how to do this. First, select the guide path that you will
  824    track. It may be another calligraphic stroke, any path or shape, or
  825    even a letter of a text object. Then switch to Calligraphic pen, select
  826    the desired parameters (line width, angle, fixation etc.) and, before
  827    starting to draw, press Ctrl. You will see a gray track circle centered
  828    at your mouse pointer and touching the closest point on the selected
  829    guide path. (If you have no guide path selected, a statusbar message
  830    will tell you to select it.)
  831 
  832    Now move your mouse close to the guide path, so that the track circle
  833    radius is equal to the desired spacing of your hatch pattern, and start
  834    drawing along the guide path. At that moment, the radius of the circle
  835    gets locked; now the circle slides along the guide path - and the
  836    actual stroke is drawn by the center of the tracking circle, not by
  837    your mouse point. As a result, you are getting a smooth stroke going
  838    parallel to the guide path and always at the same distance from it.
  839 
  840    When the stroke is ready, release your mouse button (or lift your
  841    tablet pen) but do not let go of the Ctrl key because as long as you
  842    have it pressed, the tool remembers the hatch spacing you set when you
  843    started drawing. Now, you have just created a new stroke and, as usual
  844    with Inkscape tools, it gets selected instead of what was selected
  845    before. In our case, this means that the newly drawn stroke itself
  846    becomes the new guide path. Next, you can draw a second stroke along
  847    the first one, then a third one along the second, etc. Eventually you
  848    can fill any desired space with uniform hatching.
  849 
  850    Alternatively, if you uncheck "Select new path" in the Calligraphy tool
  851    preferences, newly created strokes will not be selected, so your
  852    original guide path will be kept selected. In this mode, Inkscape will
  853    increase the tracking distance after each created stroke so that you
  854    can create uniformly spaced hatching by tracking a single guide path.
  855 
  856    The attachment to the guide path is not absolute. If you stray your
  857    mouse pointer far enough from the guide path, you will be able to tear
  858    it off (the track circle turns from green to red) and move freely. This
  859    is intentional; this feature allows you, for example, to continue
  860    drawing a stroke past the end of a guide stroke, thus making your
  861    hatching cover a wider area than the initial guide path. Special care
  862    is taken to make such tearing off as smooth as possible and to suppress
  863    violent jerks, but this is not always possible; the general advice is
  864    to not try to hatch too fast. If jerking and unintended tearoffs still
  865    bother you, try increasing the Mass parameter.
  866 
  867    Also, special code is in place to prevent flipovers - accidental jumps
  868    to the other side of the guide path. Brief flipovers are suppressed,
  869    but if you intentionally go over to the other side and stay there,
  870    eventually Inkscape will obey and your tracking stroke will also flip
  871    over to follow you.
  872 
  873    Tracking a guide also allows some slight feedback by gradually changing
  874    the tracking distance in response to your drawing behavior. Thus, if
  875    you're consistently trying to draw closer or farther from the guide
  876    than the current tracking distance, the distance will correspondingly
  877    decrease or increase, so you will get a hatching that is slightly
  878    spacing in or out. (The effect is very slight, however, so as not to
  879    become a nuisance.) Also, note that since tracking follows the edge of
  880    the stroke, strokes of varying width (such as those tracing background,
  881    see below) will result in gradual bending of the hatching pattern as
  882    you proceed.
  883 
  884  Tracing background by stroke width
  885 
  886    There is a new toggle button on the Calligraphy tool's controls bar,
  887    Trace background. When on, the width of your pen depends on the
  888    lightness of the background under the stroke in each point, so that
  889    white translates into the minimum stoke width (1) and black translates
  890    to the maximum (which is set by the Width parameter). This can work
  891    alone or in combination with pressure sensitivity, depending on whether
  892    the "Use pressure" button is also toggled.
  893 
  894    This feature allows you to not only hatch over an imported bitmap image
  895    or any drawing, but to do so automatically reproducing the highlights
  896    and shades of the background with your strokes becoming lighter and
  897    heavier as needed.
  898 
  899  Misc features
  900 
  901      * For consistency with other drawing tools, drawing with Shift in
  902        Calligraphy tool automatically unions the newly created stroke with
  903        whatever paths were selected (and selects the result). Thus, you
  904        can do a series of overlapping Shift+strokes to create one unioned
  905        path object instead of separate objects as before.
  906 
  907      * To facilitate changing the Width parameter, the Home/End keys in
  908        Calligraphy tool switch you to the minimum (1) and maximum (100)
  909        width, correspondingly. (This is in addition to the Left/Right
  910        arrow keys that change Width by 1; remember also that you can press
  911        Alt+X, type any width, and press Enter.)
  912 
  913  Selector
  914 
  915      * A new selection mode is available: selecting by touch. In this
  916        mode, you draw a freehand path across the objects; when you release
  917        mouse button, all objects that are touched by this path get
  918        selected. This mode is very convenient in situations where you need
  919        to select objects so intermingled that selecting them by the
  920        rectangular rubberband is too difficult and so numerous that
  921        click-selecting them one by one is too tedious.
  922 
  923           To activate selecting by touch, whenever you are drawing a
  924           rubberband rectangle, just press Alt to switch it to the touch
  925           mode. The rectangle will disappear and a red touch path will be
  926           shown instead. When dragging from an empty space, you can press
  927           Alt first and then start to drag to get the touch mode (note
  928           that your selection must be empty, otherwise Alt+dragging will
  929           move the selected objects instead). To start a touch selection
  930           from a point over an object, or to add to existing selection by
  931           touching, press Shift+Alt and then start to drag.
  932 
  933      * Previously, the only way to switch selection from scale mode to
  934        rotate mode or back was to click on it, which was rather
  935        inconvenient when the selected object is in a group or under other
  936        objects. Now you can switch modes with keyboard as well by pressing
  937        Shift+S in Selector tool.
  938 
  939      * Draging the scale handles with Alt now scales selection by an
  940        integer factor, i.e. up to 2, 3, 4, etc. times the original size or
  941        down to 1/2. 1/3, 1/4, etc. of the original size (in any of the two
  942        dimensions independently), as well as to -1/3, -1/2, -1, -2, -3,
  943        etc. This way you can, for example, mirror any object around one of
  944        the edges of its box. (This replaces the old and rarely used "slow"
  945        scaling mode with Alt.)
  946 
  947      * Horizontal/vertical flipping: So far, flipping a selection made it
  948        flip within its bounding box, so that the latter remained fixed. In
  949        the move/scale mode of the selector tool, this behaviour remains
  950        unchanged. However, in rotate/shear mode flipping now happens about
  951        an (imaginary) vertical/horizontal axis through the rotation
  952        center. This is very handy, since the latter can be freely dragged
  953        around and snaps to all kinds of objects if desired.
  954 
  955  Node tool
  956 
  957      * If any of the nodes in the currently selected path is mouseovered,
  958        then horizontal/vertical flipping ('H' and 'V' keys), stepwise
  959        rotation ('[' and ']' keys) and scaling ('<' and '>' keys) now all
  960        use this specific node as center/axis. If there is no mouseovered
  961        node, the center of the bounding box is used instead (as is
  962        currently the case unconditionally). Nodes that are covered by one
  963        of their handles are also detected as mouseovered.
  964 
  965      * As a long-requested feature, two entry fields are added to the
  966        toolbar which allow precise editing of the coordinates of selected
  967        nodes.
  968 
  969  Rectangle Tool
  970 
  971      * Ctrl+dragging now also allows the creation of rectangles with sides
  972        constrained to the golden ratio (approx. 1 : 1.618034), not only
  973        integer ratios.
  974 
  975  Ellipse Tool
  976 
  977      * It is now easy to create ellipses/circles passing through
  978        particular points. Normally, the starting and ending point of the
  979        mouse drag mark the corners of the bounding box. Now the Alt
  980        modifier can be used to enlarge the ellipse so that its
  981        circumference passes through these two points.
  982 
  983      * Ctrl+Alt+drag is an exception from this rule. It creates a perfect
  984        circle whose diameter is defined by the starting and ending point
  985        of the drag.
  986 
  987  Pen/Pencil Tools
  988 
  989    These tools can now create single dots by Ctrl+click on the canvas.
  990    This creates a small circle filled with the current stroke color. The
  991    radius can be set in the Preferences of the respective tools (it is
  992    specified as a multiple of the current stroke width). Shift+Ctrl+click
  993    creates a dot twice the specified size, and Alt+Ctrl+click varies the
  994    size of the created dots randomly.
  995 
  996  Dropper Tool
  997 
  998    The shortcut 'D' is now used to toggle (not just switch to) the dropper
  999    tool - much like space is used to toggle the selector tool. That is,
 1000    pressing 'D' a second time switches back to the tool used before.
 1001 
 1002  SVG features
 1003 
 1004  The tref element
 1005 
 1006    Inkscape can now correctly open files with tref elements, and new tref
 1007    elements can be created manually in the XML editor.
 1008 
 1009    The actual character data contained in a text element can either be
 1010    embedded directly, or it can be the character content of an element
 1011    referenced by a tref.
 1012 
 1013    While the textual content from the referenced element will be stripped
 1014    of any markup before being used by the tref, the tref element can
 1015    itself have the same attributes as a tspan. In fact, when rendered, it
 1016    is as though the tref element is replaced by a tspan with the same
 1017    attributes, and the referenced character data is embedded in that
 1018    tspan.
 1019 
 1020    The property xlink:href is used to refer to another element whose
 1021    character data will be used. Any element can be referred to except an
 1022    ancestor of the tref. When any of the text contained in the referred
 1023    element changes, the tref will immediately be updated to display the
 1024    new data.
 1025 
 1026    Existing tref elements can be converted into tspan elements with Edit >
 1027    Clone > Unlink Clone. If more than one tref is contained within a
 1028    selection, all trefs will be converted into tspans. All attributes
 1029    applied to the tref will be retained in the new tspan.
 1030 
 1031    A tref element can be mixed with any other elements allowed to be
 1032    contained by a text element.
 1033 
 1034    The cloned character data rendered by the tref may not be edited, but
 1035    any characters surrounding it can be changed. Styles cannot be applied
 1036    to a subset of the cloned characters, but if all are selected, a style
 1037    can be applied to the tref.
 1038 
 1039  SVG filters
 1040 
 1041  New filters supported
 1042 
 1043      * The feBlend filter primitive gives us image blending modes, like in
 1044        many image manipulation programs. These modes are screen, multiply,
 1045        darken and lighten. There's a caveat, though: when blending an
 1046        object against an semi-transparent background, the background will
 1047        be accumulated twice, resulting in thicker objects under the
 1048        bounding box of blended object. This is a limitation of current
 1049        version of SVG format, not a bug in Inkscape.
 1050 
 1051      * The feColorMatrix filter primitive applies a matrix transformation
 1052        to colour of each rendered pixel. This allows for effects like
 1053        turning object to grayscale, modifying colour saturation and
 1054        changing colour hue.
 1055 
 1056      * The feComposite filter primitive composites two images using one of
 1057        the Porter-Duff blending modes (described in paper Compositing
 1058        Digital Images by T. Porter and T. Duff, published in SIGGRAPH '84
 1059        Conference Proceedings, Association for Computing Machinery, Volume
 1060        18, Number 3, July 1984) or the aritmetic mode described in SVG
 1061        standard. Porter-Duff blending modes are essentially logical
 1062        operations between the images. For example, xor mode shows the
 1063        areas, where either one of the objects is, but not the areas where
 1064        both of the objects are. Arithmetic mode lets you specify
 1065        coefficients k1-k4 for blending equation (result colour) = k1 *
 1066        (first input colour) * (second input colour) + k2 * (first input
 1067        colour) + k3 * (second input colour) + k4.
 1068 
 1069      * The feConvolveMatrix lets you specify a Convolution to be
 1070        applied on the image. Common effects created using convolution
 1071        matrices are blur, sharpening, embossing and edge detection.
 1072        There's a fairly good explanation and some example matrices at
 1073        www.gamedev.net/reference/programming/features/imageproc/page2
 1074        .asp. Note that while gaussian blur can be created using this
 1075        filter primitive, the special gaussian blur primitive is faster and
 1076        resolution-independent.
 1077 
 1078      * Filter primitives feDiffuseLighting and feSpecularLighting create
 1079        lighting maps for the object in input image. SVG doesn't have
 1080        concept of third dimension, so these filters use alpha channel of
 1081        input image as a height map: the more opaque given point in input
 1082        image is, the nearer spectator it is considered to be. There exists
 1083        an example for using these in Inkscape distribution, in
 1084        share/examples/lighting_effects.svg or in SVN
 1085 
 1086      * The feDisplacementMap filter primitive displaces the pixels in the
 1087        first input using the second input as a displacement map, that
 1088        shows from how far the pixel should come from. Classical examples
 1089        are whirl and pinch effects, that can be found in most image
 1090        manipulation programs and even in some screensavers, where this
 1091        kind off effect is moving around screen, twisting desktop beneath
 1092        it.
 1093 
 1094      * The feFlood filter primitive fills its region with a given color
 1095        and opacity. It can be used as an auxiliary tool, usualy in
 1096        combination with other filter primitives, in order to facilitate
 1097        some common color handling operations.
 1098 
 1099      * The feImage filter primitive allows using external images as part
 1100        of filtering chain. For example, one could use external image as a
 1101        displacement map for feDisplacementMap or as a height map for
 1102        lighting effects. Note that while SVG standard allows using other
 1103        parts of the SVG file in this filter primitive, the current
 1104        Inkscape implementation only allows external images.
 1105 
 1106      * The feMerge filter primitive composites several temporary images
 1107        inside the filter primitive to a single image. It uses normal alpha
 1108        compositing for this. This is equivalent to using several feBlend
 1109        primitives in 'normal' mode or several feComposite primitives in
 1110        'over' -mode.
 1111 
 1112      * The feMorphology filter primitive provides erode and dilate
 1113        effects, that are common in image manipulation programs. With
 1114        erode, darker and more transparent areas spread to lighter and more
 1115        opaque areas, whereas with dilate lighter and more opaque areas
 1116        spread to darker and more transparent areas. For single-colour
 1117        objects, this basically means, erode makes the object thinner and
 1118        dilate makes it thicker.
 1119 
 1120      * The feOffset filter primitive offsets the image by an user-defined
 1121        amount. For example, this is useful for drop shadows, where the
 1122        shadow is in a slightly different position than the actual object.
 1123 
 1124      * The feTurbulence filter primitive renders Perlin noise. This
 1125        kind of noise is useful in simulating several nature phenomena like
 1126        clouds, fire and smoke and in generating complex textures like
 1127        marble or granite.
 1128 
 1129    See also wiki page Filter Effects for more info on filters in
 1130    Inkscape in general.
 1131 
 1132  Filters UI
 1133 
 1134      * New dialog for creating and modifying filter effects (Object>Filter
 1135        Effects...)
 1136      * The list at the left of the dialog displays all filters currently
 1137        in the document.
 1138           + New filters can be added with the Add button beneath the list
 1139           + Right-clicking a filter for the pop-up menu allows duplicating
 1140             or removing a filter.
 1141           + Double-clicking a filter will apply it to all selected objects
 1142           + A black dot is placed next to whatever filter is applied to
 1143             the selected objects. If more than one filter is in use by
 1144             selected objects, an unfilled dot is used instead.
 1145      * The second list, at the left of the dialog, displays the filter
 1146        primitives that are contained within the currently-selected filter.
 1147           + New primitives can be added by selecting the primitive type
 1148             from the combo box beneath the list, and then pressing the Add
 1149             button.
 1150           + Right-clicking a primitive for the pop-up menu allows
 1151             duplicating or removing a primitive.
 1152           + Primitives can be rearranged by clicking and dragging any
 1153             filter in the list.
 1154           + When a filter is selected, the Settings group at the bottom of
 1155             the dialog will change to display the attributes available for
 1156             that primitive. Changing a setting results in an immediate
 1157             update to the document.
 1158           + The "in" and "in2" attributes for filters that support them
 1159             are not shown in the Settings group. These input connections
 1160             are displayed graphically in the list, under the Connections
 1161             column.
 1162                o Inputs for a particular filter are displayed as
 1163                  triangles. Depending on the primitive type, there may be
 1164                  one or two inputs (or more for Merge primitives.)
 1165                  Connections can be created by clicking on a triangle and
 1166                  dragging.
 1167                o There are six standard input types that can be used for
 1168                  any primitive input; Source Graphic, Source Alpha,
 1169                  Background Image, Background Alpha, Fill Paint, and
 1170                  Stroke Paint. These are displayed vertically on the far
 1171                  right of the list. Click and drag from an input triangle
 1172                  to one of the standard inputs to connect them.
 1173                o Primitives can also be connected to other primitives by
 1174                  clicking an input triangle and dragging upwards to
 1175                  another primitive. A primitive can only be connected to
 1176                  one higher up the list.
 1177                o Single-clicking on an input triangle will unset it,
 1178                  returning it to the default. If it is on a Merge
 1179                  primitive, the input will be deleted.
 1180                o Merge inputs have an empty input at the end. Dragging a
 1181                  connection from this input will add a new input to the
 1182                  primitive.
 1183 
 1184  Live Path Effects (LPE)
 1185 
 1186    Live path effects (not to be confused with extension effects or SVG
 1187    filters) are a new way to non-destructively modify path and shape
 1188    objects. Path effects affect the path data of an object but not its
 1189    style. The original path is preserved and can be edited directly
 1190    on-canvas, and the path effect applied to it will be updated live.
 1191 
 1192    In this version, we include several path effects that are analogous to
 1193    the corresponding extension effects (such as Path along Path effect and
 1194    Pattern along Path that replaces the extension of the same name). The
 1195    most important advantage of path effects is that they are, indeed, live
 1196    - you can still edit the original path and the effect will update in
 1197    real time (unlike the extension effects which were one-time one-way
 1198    transformations). In the future, we plan to reimplement most if not all
 1199    of path-changing extensions as live path effects.
 1200 
 1201    Live path effects were developed by Johan Engelen as part of the GSoC
 1202    2007.
 1203 
 1204  Details about operation
 1205 
 1206    The following schematic tries to explain how LPE work.
 1207    original style  ------------>  output style
 1208    original path   -->  LPE  -->  output path
 1209                          ^
 1210                          |
 1211                      parameters
 1212 
 1213    The original style and path are from the path that the effect is
 1214    applied on. The output is what is visible on screen. What is very
 1215    important to notice is that output style equals original style.
 1216 
 1217    The parameters can be paths, numbers, points, text, in principle
 1218    anything.
 1219 
 1220  Applying effects
 1221 
 1222    Path effects are applied through the Path Effects dialog (opened from
 1223    the Path menu, or by pressing Ctrl+Shift+7. This dialog is also used
 1224    for controlling the effect's parameters and for removing effects.
 1225 
 1226    When a path with a path effect applied is selected, the statusbar
 1227    description mentions that, for example "Path (4 nodes, path effect)".
 1228 
 1229    There is a special Paste Path Effect command (Ctrl+7) that can be used
 1230    to copy effects from one path to another.
 1231 
 1232  Editing effect parameters
 1233 
 1234    When switching to the node edit tool (F2), the original path can be
 1235    edited. The original path is shown as a red helper path. Normal path
 1236    operations, like simplify, still work.
 1237 
 1238    Some parameters of effects can be edited on-canvas. For example, path
 1239    parameters can be node-edited, by pressing the "edit on-canvas" button
 1240    in the Path Effects dialog. Press "7" to cycle through the different
 1241    on-canvas editable parameters. This way, one can edit the parameters
 1242    without opening the Path Effects dialog. The statusbar tells the name
 1243    of the parameters that is currently being shown.
 1244 
 1245  Available effects
 1246 
 1247  Path along path
 1248 
 1249    The Path along Path effect can curve a path along another path. When
 1250    this effect is applied to a path, it can be bend along another path
 1251    (called bend path). With the node edit tool, both the original path and
 1252    the bend path can be changed on-canvas and the result is updated live.
 1253    This provides a direct equivalent of "vector brushes" or "skeletal
 1254    strokes" features in other vector editors.
 1255 
 1256    In the effect's control panel in the Path Effects dialog, you can
 1257    select how many copies of the original path are put along the bend path
 1258    (either single or repeated) and whether it is stretched to fill the
 1259    bend path. In this dialog you'll also find a button to edit the bend
 1260    path on-canvas and a button to paste a new bend path from clipboard. A
 1261    possible workflow is this: you select and copy the new bend path to the
 1262    clipboard, then select the path you want to bend, apply the Path along
 1263    path effect, and paste the bend path with the paste button next to
 1264    'bend path'.
 1265 
 1266    Example file: live-path-effects-pathalongpath.svg
 1267 
 1268  Pattern along path
 1269 
 1270    The Pattern along Path effect can curve a path along another path. When
 1271    this effect is applied to path A (called skeleton), another path B
 1272    (called pattern) can then be passed as a parameter. The result is that
 1273    path B is bent along path A. With the node edit tool, path A can be
 1274    changed on-canvas and the result is updated live. This provides a
 1275    direct equivalent of "vector brushes" or "skeletal strokes" features in
 1276    other vector editors.
 1277 
 1278    In the effect's control panel in the Path Effects dialog, you can
 1279    select how many copies of the pattern are attached (either single or
 1280    repeated) and whether the pattern is stretched to fill the skeleton
 1281    path. You can also choose the pattern for the selected skeleton [either
 1282    directly or] by pasting it from clipboard (that is, you select and copy
 1283    to the clipboard the pattern, then select the skeleton, apply the Path
 1284    along path effect, and paste the pattern). The Scale width parameter
 1285    allows you to change the width of the pattern applied to the path.
 1286 
 1287    Example file: live-path-effects-pathalongpath.svg
 1288 
 1289  Stitch Subcurves
 1290 
 1291    The Stitch Subcurves effect connects points from two subpaths of the
 1292    path with straight line or curved segments, i.e. the stitches. It looks
 1293    a lot like the Effect Lines from Expression 3. The result is also
 1294    referred to as "String Art". For some examples of string art, see
 1295    http://members.shaw.ca/jillbritton/string_art/jbstringart.htm.
 1296 
 1297    The shape of the connecting paths can controlled by the stroke path
 1298    parameter. This could be used to draw 'hair-shaped' connecting paths
 1299    with sharp end-tips. Other controls include the number of paths, the
 1300    variation in spacing between the connecting paths (clustering) and also
 1301    whether the start and end points of the stitches should like exactly on
 1302    the original subcurves or can stray randomly around them. Finally the
 1303    width of the stroke path can be varied.
 1304 
 1305    Note that this effect can only be applied to a path with two subpaths
 1306    in it, hence 'subcurve' in the name. Use Path > Combine to create such
 1307    a path from two separate paths.
 1308 
 1309    Example file: live-path-effects-curvestitch.svg
 1310 
 1311  Gears
 1312 
 1313    The Gears effect is a toy effect. It generates a chain of
 1314    interconnected gears from the path that has the effect applied to it.
 1315    The nodes of the path define the centers of the gears. The first 3
 1316    nodes are special; the first defines the start angle of the chain, the
 1317    second defines the center of the first gear and the third knot
 1318    specifies the radius of the first gear. That is, to create a chain of 2
 1319    gears, you will need a path with 4 nodes; for 3 gears, 5 nodes, and so
 1320    on.
 1321 
 1322    Example file: live-path-effects-gears.svg
 1323 
 1324  Development of new effects
 1325 
 1326    One of the goals of the Summer of Code project was to make it easy to
 1327    create new effects. There is a framework that greatly simplifies effect
 1328    implementation; very little code is needed to get the effect hooked
 1329    into Inkscape. This leaves valuable time for the actual effect to be
 1330    implemented. See the
 1331    http://wiki.inkscape.org/wiki/index.php/MakingLivePathEffects wiki
 1332    page for an explanation of how to get started with your own effect!
 1333 
 1334  Extension effects
 1335 
 1336  Live preview
 1337 
 1338      * Live preview of effects: Using the async behavior (see below), as
 1339        soon as the parameters dialog for an effect is shown, the script is
 1340        executed in the background and the screen updates as soon as it's
 1341        finished. This can result is seemingly faster execution if no
 1342        parameters are changed. If some parameters are adjusted, the script
 1343        is restarted. This allows you to see immediately the effects of any
 1344        parameter change without pressing the OK button on the effect's
 1345        dialog.
 1346 
 1347      * Spawn Glib API: Scripting extension have been moved to the Glib
 1348        spawn API to ensure that parameters and variables aren't
 1349        interpreted by a shell. This also means that scripting extensions
 1350        are executed in a separate process asynchronously allowing the GTK
 1351        main loop to continue to execute.
 1352 
 1353      * Progress dialog: While an extension is working on a document, a
 1354        small dialog is shown allowing the user to cancel the execution.
 1355 
 1356  New and improved effects
 1357 
 1358      * The new Modify Path > Edge 3D extension creates black, grey and
 1359        white paths around a shape, then blurs and clips them for a 3D
 1360        effect.
 1361 
 1362      * The new Generate from Path > Dimensions extension creates CAD style
 1363        dimensions that are basically arrows with lengths equal to
 1364        selection's bounding box and captions representing length.
 1365 
 1366      * The new Render > Barcode extension creates a barcode.
 1367        Supported types include EAN13, EAN8, UPC-A, UPC-E, UPC-5, Code39,
 1368        Code39Ext, Code93, Code128, and RM4SCC.
 1369 
 1370      * The new Render > Gear extension creates a mechanical gear
 1371        given the number of teeth, the circular pitch (in px units), and
 1372        the pressure angle.
 1373 
 1374      * The new Render > Spirograph extension creates intricate
 1375        mathematical curves akin to the classic mechanical Spirograph
 1376        toy (see samples).
 1377 
 1378      * A group of new effects in the Text submenu performs various case
 1379        conversions on selected text objects: converting to UPPERCASE,
 1380        lowercase, Sentence case, Title Case, as well as flipping case
 1381        (switching uppercase to lowercase and vice versa) and rANdoMiZInG
 1382        cAse. If no texts are selected, the effect works on all texts in
 1383        the document.
 1384 
 1385      * Another effect in the Text submenu, Replace text, performs
 1386        search-and-replace on the selected text objects or (if nothing is
 1387        selected) on all texts in the document. Searching is case
 1388        sensitive. You can use this effect to globally delete all
 1389        occurrences of some text fragment by replacing it with empty
 1390        string. Conversely, if you search for an empty string and replace
 1391        it with some string, this string will be inserted after every
 1392        character of your text; for example, you can space out a text by
 1393        replacing in it an empty string with a single space.
 1394 
 1395      * A new effect, Replace color in the Color submenu, simply replaces
 1396        one RRGGBB-specified color to another within selection or, if
 1397        there's no selection, in the entire document. As with other effects
 1398        in that submenu, the replacement affects fill, stroke, and gradient
 1399        colors, but not colors of bitmaps.
 1400 
 1401      * The new Color > Randomize extension allows you to change the color
 1402        via hue, saturation and lightness check boxes. This is useful if
 1403        you want to colorize lots of shapes at the same time.
 1404 
 1405      * The Whirl extension uses the center of view as the center of whirl,
 1406        so you don't have to enter the center coordinates numerically.
 1407 
 1408      * The Render > Grid extension has got an extended range of grid
 1409        spacings, from 0.1 to 1000 px.
 1410 
 1411      * The Render > Function Plotter extension can now plot using polar
 1412        coordinates.
 1413 
 1414      * The Generate Template > Perfect-Bound Cover extension creates
 1415        templates for wraparound covers for perfect-bound books using US
 1416        size and paper weight measurements. This extension will resize the
 1417        document to include the width, height, spine width, and bleed
 1418        measurements that are provided to the extensions, so it should be
 1419        the first operation done before designing.
 1420 
 1421  XSLT effects
 1422 
 1423      * XSLT is now supported for input, output and effect extensions. This
 1424        is used to support the XAML file format (both import and export)
 1425        and the Adobe Illustrator SVG import which removes Adobe's stuff
 1426        from SVG.
 1427 
 1428  ImageMagick effects
 1429 
 1430    New raster operations available through the effects drop-down menu,
 1431    powered by the ImageMagick library. For any of these effects to work,
 1432    you need to have an image object selected in the drawing.
 1433      * Adaptive Threshold applies adaptive thresholding to the bitmap.
 1434        Average color of rectangle provided by width and height used as
 1435        threshold value. Use offset to apply a different threshold than the
 1436        average.
 1437 
 1438      * Add Noise adds random noise of certain types to the bitmap.
 1439 
 1440      * Blur blurs the bitmap, using radius as the amount of blur. Higher
 1441        radius means more blur. (Note that unlike the vector Gaussian blur
 1442        of objects, this bitmap blur will not extend the edges of the
 1443        image, so it may appear truncated at the edges.)
 1444 
 1445      * Channel extracts the specified channel from the bitmap.
 1446 
 1447      * Charcoal applies a charcoal drawing style to a bitmap. Radius
 1448        controls the width (or detail) of charcoal strokes. Higher radius
 1449        means lower detail. Sigma: the higher it is, the less defined the
 1450        charcoal is.
 1451 
 1452      * Colorize overlays the bitmap with a given color at a given
 1453        intensity.
 1454 
 1455      * Contrast lightly enhances the contrast (difference between lights
 1456        and darks) of a bitmap.
 1457 
 1458      * Cycle Colormap cycles the colormap of a bitmap.
 1459 
 1460      * Despeckle reduce the speckle noise in a bitmap.
 1461 
 1462      * Edge hilights edges in a bitmap.
 1463 
 1464      * Emboss embosses a bitmap, hilighting edges with 3D effect.
 1465 
 1466      * Enhance enhance a bitmap, minimizing noise.
 1467 
 1468      * Equalize equalizes a bitmap. Histogram equalization.
 1469 
 1470      * Flop mirrors a bitmap, reflecting each scanline in the horizontal
 1471        direction.
 1472 
 1473      * Gaussian Blur blurs a bitmap, more strongly than regular blur.
 1474 
 1475      * Implode sucks everything towards the center of the bitmap.
 1476 
 1477      * Level scales values falling between the given Black Point to White
 1478        Point range to the full color range.
 1479 
 1480      * Level Channel acts the same way as level but for only one channel.
 1481 
 1482      * Median Filter filters a a bitmap by replacing each pixel component
 1483        with the median color in a circular neighborhood
 1484 
 1485      * Modulate adjusts the percent hue, saturation, and brightness of a
 1486        bitmap.
 1487 
 1488      * Negate takes the inverse of a bitmap.
 1489 
 1490      * Normalize normalizes a bitmap, expanding color range to the full
 1491        possible range of color.
 1492 
 1493      * Oil Paint stylizes a bitmap so that it appears to be painted with
 1494        oils.
 1495 
 1496      * Opacity modifies the opacity channel of a bitmap.
 1497 
 1498      * Raise alters the lightness of the edges of a bitmap to create a
 1499        raised appearance, much like a frame.
 1500 
 1501      * Reduce Noise reduces noise in a bitmap by using a noise peak
 1502        elimination filter.
 1503 
 1504      * Shade shades a bitmap by simulating a distant light source
 1505 
 1506      * Sharpen sharpens a bitmap.
 1507 
 1508      * Solarize solarizes a bitmap, like overexposing photographic film.
 1509 
 1510      * Spread randomly spread pixels in a bitmap within the radius of
 1511        amount.
 1512 
 1513      * Swirl swirls the bitmap around the center point.