Release Notes: The canvas now has printing support when compiled with GTK+ enabled. The media setup can be associated to the canvas so this data can be accessed to provide a consistent behavior between different backends. The demo program can now render the drawing to an SVG file. Generated files are stored in the user document directory. Incomplete entities now fail gracefully instead of complaining for insufficient data. This provides an easy way to implement optional machinings: the optional groove in the adg-demo program is working by leveraging this feature.
Release Notes: The portability of the build system has been improved: the tarball now builds out of the box on FreeBSD, OpenSolaris, MinGW32, and GNU/Linux. The adg-demo program has been rewritten from scratch to provide a nice example of what the ADG should be used for. The rendering has been cleaned up and the model-view interaction now works: changing the data modifies the drawing. The project tree has been rearranged into three different subprojects: CPML (mathematical stuff above Cairo), ADG (the canvas above CPML) and ADG-GTK (user interface helpers above ADG and GTK+). Support for glade has been added.
Release Notes: The build system has made a huge step toward portability: the requirements are less restrictive and the overall implementation is cleaner and quite well defined. The API has been exercised by API-Sanity-Autotest, which helped to discover some problems; check out issue #23 for more details. A test framework based on GLib 2.16 has been added. It is still under development, but fully working. The CPML API has been cleaned up by using an internal struct of function pointers to delegate the job to the different primitives. The public symbols have been reduced from 105 to 70.
Release Notes: The quote of linear dimensions can be freely positioned using the AdgDim:pos property. By default, ADG keeps the quote inside the extension lines if there is enough room, and otherwise displaces it to the "pos" coordinates. A document describing how to contribute to the project has been added. A general description of the API conventions used is also provided. There are many bugfixes and a lot of code clean up. A bug in the installation has been solved, and support for pkg-config has been added. This will probably be the last release of the 0.5 branch.
Release Notes: AdgTable now provides a generic tabular entity customizable with AdgTableStyle. It supports unlimited rows with independent cells. Some new special entities, such as AdgLogo (the official ADG logo) and AdgProjection (showing the drawing projection scheme) have been implemented. A bare title block entity, AdgTitleBlock, is now available: it is allowed to set its cells' content either by using string values or custom entities. AdgAlignment is a container entity that allows you to translate its content of a custom factor of its extents: so any entity can now be right aligned or centered.
Release Notes: AdgRDim, a new entity to quote radial dimensions, is now available. Several classes to manage hatches have been implemented: AdgHatch is the entity to be added to the canvas, AdgFillStyle the abstract layer above cairo_pattern_t, and AdgRuledFill is an AdgFillStyle implementation generating a series of parallel lines with custom spacing and angle. The AdgModel now supports named pairs: any coordinates can be set explicitly (as before) or as a reference to a pair set by the model. The AdgPoint helper class is the object used to manage this relationship.
Release Notes: AdgADim, a new entity to quote angular dimensions, has been implemented. The linear dimensions now accept the "outside" property to reflect the arrows around the extension lines. By default, the value will be computed at runtime depending on the quote size and the available space. The new AdgEdges model can be used to programmatically build a serie of vertical lines expressing the edges of another model. This can be used on symmetrical shapes, often met in turned parts. The entities now actively respond to extents requests, so it is possible to get the necessary space before rendering them.
Release Notes: The new AdgMarker abstract class has been added to provide a common ancestor to marker entities. AdgArrow is its first implementation. The rendering customization is now provided by AdgDress, an index that virtualizes the underlying AdgStyle. This allows some advanced operation, such as overriding a style in a specific branch of the entity hierarchy. The deprecated AdgContext class has been removed. The AdgPath class has been split into the AdgTrail and AdgPath classes. The former provides low level access to CpmlPath. AdgLDim internally uses a private AdgTrail to render base and extension lines.
Release Notes: The old paper-model matrix approach has been superseded by a cleaner approach based on global/local maps. This resulted in a great code complexity reduction. Parent-child relationship is no longer tied to AdgContainer: dependencies between arbitrary AdgEntity objects are now allowed. AdgDim internally uses four AdgToyText objects to render the quote. This has been made possible by the new parent-child API. A bunch of classes, most notably AdgRotable, AdgTranslatable, and AdgPoint, have been superseded by the new global/local map approach and have been removed from the project.
Release Notes: Higher level operators, such as chamfer and fillet, can now be used in the path definition. They do not yet work for Bézier curves, but the infrastructure is in place. A Gtk+ widget for easily showing the canvas has been implemented. It is based on GtkDrawingArea and provides some interaction through the mouse, such as zooming and panning. The CPML library has been enriched with the missing functions needed by the above new features. Now it has the ..._length() and ..._near_pos() families of functions.