Difference between revisions of "Release notes/0.47"

From Inkscape Wiki
Jump to navigation Jump to search
Line 23: Line 23:


* 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).
* 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).
* '''Spiro splines''' are a novel way of defining curvilinear paths <a href="http://www.levien.com/spiro/">developed by Raph Levien</a>. Recently, Spiro support was added to the FontForge font editor, and now it is available in Inkscape too. It takes some getting used to, but for certain tasks Spiros have a clear advantage over Bezier curves.
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 acquires the minimum possible curvature to satisfy the requirement. As such, it feels quite natural and the resulting path is very smooth - with the kind of smoothness you can only achieve with Beziers only after much tweaking.
To create a Spiro path, select any path and assign the "Spiro spline" 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:
* Smooth nodes (those with two collinear Bezier handles) become curve points of the Spiro path; such points bend the curve but must remain smooth. Note that the length or direction of the Bezier handles of the source path is ignored; the only thing that matters is that the node is smooth.
* Cusp nodes of the source path become corner points of the Spiro path. Between two corner points, the path is always a straight line.
* Half-smooth nodes - those with one Bezier handle collinear with a straight line segment on the other hand - become "left" or "right" 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.
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 cusp (diamond-shaped) node has collinear handles, it will become a curve point of the Spiro path. For creating half-smooth nodes, use Ctrl+dragging of the node 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.
Unfortunately, some configurations of points do not converge and produce wild loop and spirals. According to Raph, "The spline solver in this release is _not_ numerically robust. When you start drawing random points, you'll quickly run into divergence. However, "sensible" plates based on real fonts usually converge." Avoid too sharp changes in direction between points. Hopefully, the robustness of the algorithm will be improved in future releases.


==New features==
==New features==

Revision as of 09:16, 12 April 2008

Inkscape 0.47

(not released yet)

Tools

Node tool

  • [helper path display, flashing - johan]
  • 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).
  • Snapping has been improved (more details in Snapping below)
  • 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).

Calligraphy tool

Added 4 preset buttons for dip, pen, brush and reed in the toolbox. Clicking one button sets the calligraphic tool with the matching presets.

Live path effects

Notable bug fixes and effect changes

We try to refrain from changing the behavior of LPE's, because it will change graphics in old files. But when an effect is really broken, we have to fix it.

  • 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.

New effects

[new: sketch, von koch, knot]

  • 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).
  • Spiro splines are a novel way of defining curvilinear paths <a href="http://www.levien.com/spiro/">developed by Raph Levien</a>. Recently, Spiro support was added to the FontForge font editor, and now it is available in Inkscape too. It takes some getting used to, but for certain tasks Spiros have a clear advantage over Bezier curves.

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 acquires the minimum possible curvature to satisfy the requirement. As such, it feels quite natural and the resulting path is very smooth - with the kind of smoothness you can only achieve with Beziers only after much tweaking.

To create a Spiro path, select any path and assign the "Spiro spline" 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:

  • Smooth nodes (those with two collinear Bezier handles) become curve points of the Spiro path; such points bend the curve but must remain smooth. Note that the length or direction of the Bezier handles of the source path is ignored; the only thing that matters is that the node is smooth.
  • Cusp nodes of the source path become corner points of the Spiro path. Between two corner points, the path is always a straight line.
  • Half-smooth nodes - those with one Bezier handle collinear with a straight line segment on the other hand - become "left" or "right" 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.

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 cusp (diamond-shaped) node has collinear handles, it will become a curve point of the Spiro path. For creating half-smooth nodes, use Ctrl+dragging of the node 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.

Unfortunately, some configurations of points do not converge and produce wild loop and spirals. According to Raph, "The spline solver in this release is _not_ numerically robust. When you start drawing random points, you'll quickly run into divergence. However, "sensible" plates based on real fonts usually converge." Avoid too sharp changes in direction between points. Hopefully, the robustness of the algorithm will be improved in future releases.

New features

  • 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.
  • A new command, Remove path effect removes any path effects from all selected objects, going recursively into groups if necessary.
  • 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.
  • Live path effects can now be assigned to the sides of a 3D box (use Ctrl+click to select individual sides).
  • 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.
  • Path type parameters can now link to existing shapes and text, like clones do. Now it is possible to use text as input for the Pattern Along Path effect for example!

Live Path Effect for groups

LPE can now be assigned to a group. For most LPE, the effect is applied recursively but for Bend Path the result is more powerful : the distortion applies on the whole group.

  • Original path of the group can as usual be edited by double-clicking.
  • It applies recursively, this means that a LPE can be assigned to groups of groups
  • The Effect can be applied definitively with "Convert Object to path"

Import/Export

Corel DRAW files import

Now Inkscape can import more Corel DRAW files of following types:

  • Corel DRAW Compressed Exchange files (CCX)
  • Corel DRAW 7-X4 Template files (CDT)
  • Corel DRAW Presentation Exchange files (CMX)

Text objects are not supported as of UniConvertor 1.1.1.

sK1 files import

Inkscape uses UniConvertor to import sK1 files. Text objects are not supported as of UniConvertor 1.1.1.

CGM import

Inkscape uses UniConvertor to import Computer Graphics Metafile (CGM) files. Text objects are not supported as of UniConvertor 1.1.1.

PDF export

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 "Export drawing, not page" 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 "Limit export to the object with ID" 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).

The same capabilities are available from the command line by using --export-area-drawing and --export-id=ID parameters with --export-pdf (previously, they only worked for PNG export).

Extension effects

New and improved effects

  • The new Text > Convert to Braille extension recodes English (or just Latin letters) text to Braille code created for visually impaired people.
  • The new Render > Alphabet Soup extension is a vector rework of Matt Chrisholm's GPLed script [1]. Alphabet Soup randomly mashes glyph-elements together to make exotic looking text.

SVG output

Optimized CSS properties

As a file size optimization, Inkscape does not write into SVG some of the stroke properties if the object has stroke:none and some of the fill properties when it has fill:none. 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.

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.

Specifically, if stroke:none, the following properties do not get written to SVG:

stroke-width
stroke-linecap
stroke-linejoin
stroke-miterlimit
stroke-opacity
stroke-dasharray
stroke-dashoffset

Note that this does not include marker properties, which means you can still have markers on a path without visible stroke.

If fill:none, the following properties do not get written to SVG:

fill-opacity
fill-rule

Optimized path data

In this version, the size of the path data written in the d= attribute of path elements is reduced by about 10%. Inkscape generates the shortest possible path strings by avoiding repeated operators and using relative coordinates (when it helps).

This is controlled by the following attributes in group id="svgoutput" in your preferences.xml file:

  • allowrelativecoordinates (default 1) to switch relative coordinates on (1) or off (0)
  • forcerepeatcommands (default 0) to force repeating operators (1) or allow use of the more compact representation without repeated operators (0)

User interface

Filters can be disabled

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 "normal" and "outline" view modes.

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.

Native file dialogs for Windows

The windows builds of inkscape now have Windows-native file dialogs to keep consistency with other windows applications.

Clipboard enhancements

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.

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.

Masks and clipping paths

[editable in node tool - johan]

Stroke width changeable by dragging

[bbyak]

Enhanced Tablet Support

Input device tool switching

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.

Extended input device configuration

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.

Additionally hardware setup itself has been separated from general settings to allow for easier dynamic switching of settings appropriate to the task at hand.

Dropper tool

The confusing icons on buttons in the controls bar of the Dropper tool (pick/assign opacity) are replaced by text labels.

Grids, guides, snapping

Guides

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).

Snapping

Snapping has been implemented or improved in these areas:

  • 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.
  • The object snapper now also allows to snap to the page border

Notable bug fixes

  • 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 "Filter general settings" tab of the Filter Effects dialog.
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 export area; this means that you can now export a blurred object to bitmap without any clipping of the blur.

Previous releases