Menu

Automatic Drawing Generation / News: Recent posts

ADG canvas 0.9.4 released

ADG is a GObject-based library that provides a non-interactive cairo canvas specifically designed for generating technical drawings. More details can be found on the ADG home page.

  • Allow to build the ADG project with meson. This is a major feature that allows to modernize part of the codebase and speed up the building process. The legacy autotools code will be kept around for some time, but meson is the preferred one.
  • Drop Travis code integration and switch to GitLab. Thanks for the fish Travis, but the new model is not that opensource friendly.
  • New API (adg_canvas_export_data) that returns the data as a memory chunk instead of writing it to a file. This is a requirement for adg-openresty.
  • Update documentation building to latest gtk-doc changes.
  • Improve uninstalled detection at runtime: the adg-demo-uninstalled hack is no longer needed.
  • Fix g_memdup vulnerability.
Posted by Nicola Fontana 2022-02-14

ADG canvas 0.9.3 released

ADG is a GObject-based library that provides a non-interactive cairo canvas specifically designed for generating technical drawings. More details can be found on the ADG home page.

  • Get rid of deprecated code, specifically G_TYPE_INSTANCE_GET_PRIVATE (deprecated since 2.58) and GParameter (deprecated since 2.54 because that type is not introspectable).
  • Use g_object_new_with_properties where available and provide fallback code for older glib-object code.
  • Fix a long standing bug on table cell desctruction, resulting in a core dump when trying to destroy cells with duplicate names.
  • Fix test units. On recent GTK releases the code crashes when creating a widget without X server: just skip GTK tests when gtk > 3.10.8.
  • Allow to build the compilation database, used by language servers used for example to add semantic features to editors (e.g.: coc-vim).
  • Minor docs improvements.
Posted by Nicola Fontana 2020-06-23 Labels: release adg canvas bugfix refactoring cleanup

ADG canvas 0.9.2 released

ADG is a GObject-based library that provides a non-interactive cairo canvas specifically designed for generating technical drawings. More details can be found on the ADG home page.

  • Allow negative values in spacing options so text can be squeezed in less space than line height (useful on e.g. limits).
  • Proper bindings for AdgDash have been provided, so now line styles can be customized outside of the C world.
  • Floating values are now accepted as scale arguments, so "4.2:1" or "2:3.2" are now perfectly valid scale strings.
  • The private data handling has been modernized by leveraging the latest APIs provided by GLib. Private accessors and workarounds have been definitely removed. Because of this, _glib-2.38.0 _is now required.
  • Many minor bugs have been squashed in this release.
Posted by Nicola Fontana 2019-03-26 Labels: release adg canvas dash spacing scaling bugfix cleanup

ADG canvas 0.9.1 released

ADG is a GObject-based library that provides a non-interactive cairo canvas specifically designed for generating technical drawings. More details can be found on the ADG home page.

  • Entities can now be "floating". When an entity is floating (the
    default is not), its extents does not concur on increasing the extents
    of its own container.
  • A new path method (adg_path_append_trail) allows to append an
    AdgTrail to an AdgPath, also importing the named pairs.
  • Styles can be cloned with a single API call (adg_style_clone). This
    greatly simplifies the way one can customize the styles.
  • Custom dimension dresses introduced in 0.9.0 have been dropped to
    favor custom styles.
  • Working directly on the primitives of an AdgPath has been improved:
    some new APIs have been added on this regard (cpml_primitive_type,
    adg_trail_n_segments and adg_path_remove_primitive).
  • The reflect operation of AdgPath has been heavily tested and improved:
    now you can reflect a multisegment path without issues.
  • Similarly, the AdgEdge entity has been tested and improved and now
    can be applied on multisegment paths.
  • A new API (adg_path_join) allows to join all the segments inside the
    path into a single segment.
  • AdgDim now has a "rounding" property.
  • Some annotation bugs have been fixed, so the bindings of those APIs
    now work correctly (adg_path_arc, cpml_primitive_dump,
    adg_path_append_cairo_path and adg_trail_put_segment).
Posted by Nicola Fontana 2017-04-27 Labels: release adg canvas primitive reflection join floating rounding

ADG canvas 0.9.0 released

ADG is a GObject-based library that provides a non-interactive cairo canvas specifically designed for generating technical drawings. More details can be found on the ADG home page.

  • Three new dresses have been added to address different quote types: ADG_DRESS_DIMENSION_ANGULAR (that formats numbers in sexagesimal units, bound by default to AdgADim instances), ADG_DRESS_DIMENSION_RADIUS (that prefixes values with R, bound to AdgRDim instances) and ADG_DRESS_DIMENSION_DIAMETER (that prefixes the value with a diameter symbol).
  • The text generation algorithm has been greatly improved. The AdgDimStyle object now has 3 specific properties dedicated to the formatting of quotes: number-format, number-arguments
    and decimals. This allows, among other things, to properly render sexagesimal angles.
  • Some enum type has been converted to int on public APIs. enum variables cannot precede ellipsis arguments: the last non ellipsis argument will be promoted to int and if the enum is not the same size (it could happen!) bad things will happen.
  • A backward compatibility bug that prevented out of the box building of the project on old platforms has been fixed.
  • The testing provided by Travis-CI has been improved by building for GTK+2 and GTK+3 by using both gcc and clang.
  • The Windows installer now includes Lua support. To be able to have that enabled by default, gobject introspection has been ported to Windows.
Posted by Nicola Fontana 2016-12-31 Labels: release adg canvas quote dimension text sexagesimal format

ADG canvas 0.8.0 released

ADG is a GObject-based library that provides a non-interactive cairo canvas specifically designed for generating technical drawings. More details can be found on the ADG home page.

  • The code shared by tests has been moved on an internal library
    (libadgtest) shared by both CPML and ADG.
  • The test coverage is now checked by leveraging the Coveralls service provided by GitHub. The percentage has been raised from 53% to 94%.
  • A fistful of bugs found while improving the test coverage has been corrected, most notably cpml_extents_is_inside(), cpml_segment_reverse() and some intersection algorithm.
  • Children widgets now own weak references to parents, avoiding the circular dependency introduced by strong references.
  • The overall sanity of the ADG library has been improved by adding additional checks where needed. The CPML library is not affected because by design it is not supposed to be sane.
Posted by Nicola Fontana 2015-03-07 Labels: release adg canvas test testing coverage coveralls

ADG canvas 0.7.6 released

ADG is a GObject-based library that provides a non-interactive cairo canvas specifically designed for generating technical drawings. More details can be found on the ADG home page.

Page margins and paddings are now managed consistently across the different surfaces and their behavior has been documented.

The NSIS script for generating the Windows installers has been subject to many improvements: it can now optionally install ADG and CPML manuals (either in HTML and in PDF format) and the localization data (only italian for now). It should also handle the application icons properly.... read more

Posted by Nicola Fontana 2015-01-23 Labels: release adg canvas i18n nsis

ADG canvas 0.7.5 released

ADG is a GObject-based library that provides a non-interactive cairo canvas specifically designed for generating technical drawings. More details can be found on the ADG home page.

The algorithm to use for offsetting Bézier curves is now selectable by calling the non-reentrant cpml_curve_offset_algorithm() function.

A new offsetting algorithm BAIOCA has been implemented. It tries to minimize the error between the offset curve and the ideal offset point on evenly spaced t values.... read more

Posted by Nicola Fontana 2014-12-09 Labels: release adg canvas baioca bézier offset

ADG canvas 0.7.4 released

ADG is a GObject-based library that provides a non-interactive cairo canvas specifically designed for generating technical drawings. More details can be found on the ADG home page.

Improved documentation: the API reference manual is now kept in sync with the online documentation by using a dedicated SilverStripe module. This really simplifies the maintenance burden of the doc.... read more

Posted by Nicola Fontana 2013-08-15

ADG canvas 0.7.3 released

ADG is a GObject-based library that provides a non-interactive cairo canvas specifically designed for generating technical drawings. More details can be found on the ADG home page.

The project has been adapted to adg-lua in order to be able to publish an on-line web demo on a standard LAMP server.

The compatibility of the project with outdated system has been improved in order to be able to install it on old web servers.... read more

Posted by Nicola Fontana 2013-04-07 Labels: adg web demo lua php adg-lua adg-web

ADG canvas 0.7.2 released

ADG is a GObject-based library that provides a non-interactive cairo canvas specifically designed for generating technical drawings. More details can be found on the ADG home page.

Out of the box bindings are now fully working: the adg-demo program provided by adg-lua is in par with the official adg-demo in C.

AdgDress is inherited from GEnum instead of being a handcrafted solution. A lot of specialized code have been removed, so the mapping between numbers and names in bindings is automatic.... read more

Posted by Nicola Fontana 2013-03-25 Labels: adg lua lgi adg-demo bindings gobject introspection

ADG canvas 0.7.1 released

ADG is a GObject-based library that provides a non-interactive cairo canvas specifically designed for generating technical drawings. More details can be found on the ADG home page.

Out of the box support for LGI (dynamic Lua bindings based on GObject introspection) is now provided upstream and effectively used for testing APIs. The introspection support has been improved, some APIs (AdgPoint related methods above all) have been protected against NULL and some bugs raised by the bindings work have been corrected.... read more

Posted by Nicola Fontana 2013-03-14

ADG canvas 0.7.0 released

ADG is a GObject-based library that provides a non-interactive cairo canvas specifically designed for generating technical drawings. More details can be found on http://adg.entidi.com/

The autoscaling feature is now available: a serie of predefined scale factors are applied until the proper one is found. The demo program autoscales the drawing on a right click on the drawing area.

The introspection support has been improved, making now possible to have LGI (Lua) bindings working out of the box. The typedef hack has been dropped in favour of a private forwarder header.... read more

Posted by Nicola Fontana 2013-02-16

ADG canvas 0.6.6 released

ADG is a GObject-based library that provides a non-interactive cairo canvas specifically designed for generating technical drawings. More details can be found on http://adg.entidi.com/

The project has been ported to GTK+3 also on Windows platforms. The helper scripts now build only GTK+3 installers.

The recent porting of Fedora mingw packages to archlinux made possible to generate for the first time a win64 installer.... read more

Posted by Nicola Fontana 2012-10-22

ADG canvas 0.6.5 released

ADG is a GObject-based library that provides a non-interactive cairo canvas specifically designed for generating technical drawings. More details can be found on http://adg.entidi.com

Some missing documentation files that prevented the proper build
adg-0.6.4.tar.bz2 have been included in the distribution package.
No other relevant changes from 0.6.4.

Posted by Nicola Fontana 2012-03-26

ADG canvas 0.6.4 released

ADG is a GObject-based library that provides a non-interactive cairo canvas specifically designed for generating technical drawings. Here it is a non-exhaustive list of closed issues:

http://dev.entidi.com/p/adg/issues/label/392/closed/

The Lua bindings, based on lgob, are now availabe as a separated project (adg-lua). The glue code is automatically generated by using GObject introspection.

The build system can detect and use GTK+3 and gladeui-2.0 if found. GTK+2 and gladeui-1.0 are still available and can be forced at configure time.... read more

Posted by Nicola Fontana 2012-03-24

ADG canvas 0.6.3 released

ADG is a GObject-based library that provides a non-interactive cairo canvas specifically designed for generating technical drawings. Here it is a non-exhaustive list of closed issues:

http://dev.entidi.com/p/adg/issues/label/103/closed/

The text manipulation logic has been moved inside the AdgTextual interface and a new entity based on pango (AdgText) has been added. Also AdgToyText implements AdgTextual so all the text entities are now interchangeable.... read more

Posted by Nicola Fontana 2011-03-20

ADG canvas 0.6.2 released

ADG is a GObject-based library that provides a non-interactive cairo canvas specifically designed for generating technical drawings. Here it is a non-exhaustive list of closed issues:

http://dev.entidi.com/p/adg/issues/label/102/closed/

The localization infrastructure has been added and tested by adding
the italian translation.

The AdgGtkArea widget is now capable of interactively change zoom
and pan in global space by dragging and/or rotating the wheel while
keeping the shift pressed.... read more

Posted by Nicola Fontana 2011-01-09

ADG canvas 0.6.1 released

ADG is a GObject-based library that provides a non-interactive cairo canvas specifically designed for generating technical drawings. Here it is a non-exhaustive list of closed issues:

http://dev.entidi.com/p/adg/issues/label/43/closed/

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.... read more

Posted by Nicola Fontana 2010-07-05

ADG canvas 0.6.0 released

ADG is a GObject-based library that provides a non-interactive cairo canvas specifically designed for generating technical drawings. This is a major release providing a lot of new features, so any feedback will be appreciated:

http://dev.entidi.com/p/adg/issues/label/39/closed/

The portability of the build system has been improved: the ADG project now builds out of the box on FreeBSD, OpenSolaris, MinGW32 and some GNU/Linux distribution (arch linux, slackware, ubuntu).... read more

Posted by Nicola Fontana 2010-05-07

ADG canvas 0.5.6 released

ADG is a GObject-based library that provides a non-interactive cairo canvas specifically designed for generating technical drawings. This is a transitional release before the 0.6.0 one because the introduced changes are becoming too much.

http://dev.entidi.com/p/adg/

The build system has done a huge step toward portability: the requirements are less restrictive and the overall implementation is cleaner and quite well defined.... read more

Posted by Nicola Fontana 2010-02-21

ADG canvas 0.5.5 released

ADG is a GObject-based library that provides a non-interactive cairo canvas specifically designed for generating technical drawings. The details on the closed issues can be found in the official ADG tracker:

http://dev.entidi.com/p/adg/issues/label/35/closed/

In the following, the most notable improvements introduced by this new release.

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, otherwise displaces it to the "pos" coordinates.... read more

Posted by Nicola Fontana 2010-01-19

ADG canvas 0.5.4 released

ADG is a GObject-based library that provides a non-interactive cairo canvas specifically designed for generating technical drawings. This is the first release driven by the development tracker:

http://dev.entidi.com/p/adg/

and it will probably be the last one of the 0.5 branch. A lot of new features have been implemented, the most notable ones follow.

AdgTable now provides a generic tabular entity customizable with
AdgTableStyle. It supports unlimited rows with independent cells.... read more

Posted by Nicola Fontana 2009-11-22

ADG canvas 0.5.3 released

Automatic Drawing Generation (ADG) is GObject-based library that provides a non-interactive cairo canvas specifically designed for generating technical drawings. The current release is focused on implementing new features, above all the hatch entity.

http://adg.entidi.com/api/view/AdgHatch.html

In the following, the complete list of new features introduced by this release.

AdgRDim, a new entity to quote radial dimensions, is now available.... read more

Posted by Nicola Fontana 2009-10-19

ADG canvas 0.5.2 released

Automatic Drawing Generation is GObject-based library that provides a non-interactive Cairo canvas specifically designed for generating technical drawings. The current release is focused on implementing new features, above all the angular dimensions.

http://adg.entidi.com/api/view/AdgADim.html

Other than the new AdgADim entity, other features have been added.

The linear dimensions now accept the "outside" property to reflect the arrows in reference to the extension lines. By default, the value of this property is undefined and will be computed runtime depending on the quote size and the available space.... read more

Posted by Nicola Fontana 2009-10-01