Automatic Drawing Generation 0.9.2

Automatic Drawing Generation is a GObject-based library that provides a non-interactive Cairo canvas specifically designed for generating technical drawings. It is intended to be used by software developers to integrate mass customization applications or to supersede parametric CAD workflows.

Tags gtk cad cairo canvas 2d 2d drafting c lua developers manufacturing
License GNU LGPL
State beta

Recent Releases

0.9.227 Mar 2019 04:05 minor feature: Adg: take the absolute value when computing sizes . Adg: make hidden lines less spaced. . Build: update gtk-doc makefile. . Include libpangoft2 in the installer. . Adg: allow negative limits-spacing. . Doc typo. . Adg: in tolerance layout. . Adg: add missing constructors to AdgDash. . Adg: add AdgCanvas:factor property. . Adg: add adg_canvas_get_margins(). . Adg: add adg_canvas_get_paddings(). . Adg: do not unref weak reference in destruction. . Doc: substitute copy paste dash with standard minus. . Adg: set default critical angle to 1 degree. . Doc: improve doc grammar. . Adg: add spacing handling to AdgPangoStyle. . Build: wrong source in test-style. . Build: provide fallback to be able to build with old cairo releases. . Adg: allow floats in scale components. . Include missing file in.gitignore. . Typo (s/throught/through/). . Adg: typo in adg_round docblock. . Cpml: add and test cpml_angle_distance. . Adg: quote alignment on AdgRDim. . Doc: update copyright line for 2019. . Adg: avoid invalid access to private data. . Adg: adg_dim_get_dim_style(). . Adg: use G_PRIVATE_ADD and friends. . Test: avoid testing global scaling on AdgLDim. . I18n: update italian translation. . Adg: cosmetic remove of double ;;. . Adg: GTK2 building. . Docs: update TODO.xml. . Build: sync Makefile.am.gtk-doc with gtk-doc.make. . Adg: remove no more relevant backward workarounds. . Doc: doc to improve gtk-doc coverage. . Doc: add docblock to AdgGtkLayoutClass. . Doc: typo (Paper instead of Page). . Build: typo in gtkdoc makefile. . Revert "doc: add docblock to AdgGtkLayoutClass". . Doc: remove reference to unexistent adg-cairo-fallback section. . Build: docs are built in builddir. . Build: conditional include adg-canvas.h. . Doc: update NEWS. . Build: bump version to 0.9.2.
0.9.128 Apr 2017 07:45 minor feature: Build: remove obsolete configure-win 32,64 script. Build: add copyright helper script. Doc: update copyright line for 2017. Adg: do not force wrong type on adg_path_append_cairo_path. Build: make distcheck for gobject-introspection. Cpml: dump argument type. Adg: reverse arc rendering. Tests: for new adg_path_arc(). Cpml: cosmetic changes for CpmlLine. Cpml: add cpml_primitive_type() API. Cpml: return only real intersections between primitives and segments. Cpml: rename curve test internal functions for consistency. Tests: add basic CpmlArc testing. Tests: check cpml_arc_to_curves() with different n_curves. Cpml: add intersection circle-line. Tests: CPML tests for TravisCI. Adg: new adg_path_append_trail() API. Adg: do not warn on adg_trail_put_segment out of range. Adg: reflect all the segments. Adg: set segment as out paramenter in adg_trail_put_segment(). Adg: apply AdgEdges on multisegment paths. Adg: new API adg_trail_n_segments(). Adg: start from the last segment when reflecting. Test: adg_trail_n_segments() with a single segment path. Test: use conversion macros when testing AdgTrail. Adg: change behavior of AdgEdges. Adg: properly handle multisegment paths in adg_path_reflect(). Adg: new API adg_path_join(). Test: protect /adg/path/method/line-to against common crashes. Adg: add floating entity concept and API. Adg: set AdgTitleBlock floating by default. Adg: add AdgDimStyle:rounding. Adg: new API adg_path_remove_primitive(). Adg: improve adg_path_remove_primitive() behavior. Adg: round angular dimensions to 3 digits. Adg: update cp whenever a path rescan occurs. Adg: provide example on how to customize a style. Adg: new API adg_object_clone(). Adg: new API adg_style_clone(). Adg: drop custom dimension dresses. Demo: update to latest changes. Adg: add geometry handling to AdgDim. Adg: add wrappers for common geometry notices. Adg: modernize geometry computation for linear dimensions. Adg: modernize geometry computation for angular dimensions. Adg: modernize
0.9.003 Jan 2017 08:05 minor feature: Doc: correct typo in NEWS. Build: share dist flags. Build: initial import of build/build-win 32,64 . Build: rename USRDIR to HOSTPRE. Build: include Lua support in the NSIS installer. Cpml: cast to int in primitive to avoid clang warning. Build: enable GTK+2 and GTK+3 build testing in TravisCI. Build: GTK+3 is called libgtk-3-dev in TravisCI. Build: use INTROSPECTION_ GIRDIR,TYPELIBDIR . Build: make cairo-gobject requirement optional. Doc: introspection clean up. Adg: add DECIMALS property to AdgDimStyle. Adg: implement DECIMALS in AdgLDim. Tests: use adg_assert_isapprox where relevant. Demo: remove gtk_adjustment_value_changed(). Tests: update tracker URL. Tests: ref_sink before unref a GtkWidget. Tests: improve GTK+ testing for GTK+3. Build: move fallback code on its own. Adg: type of va_start last parameter. Adg: refactor AdgPath code for calculating primitive length. Adg: reduce complexity of REMAPPED macro in AdgPath. Tests: add new test on AdgPath.has_current_point. Adg: use GPtrArray in adg_path_append_valist. Tests: improve adg_path_reflect() testing. Tests: test also adg_model_set_named_pair_explicit(). Adg: set AdgDimStyle:decimals to 2 by default. Adg: 0 is a valid value for AdgDimStyle:decimals. Adg: default value initialization of AdgDimStyle:decimals. Adg: use AdgDimStyle:decimals in AdgADim. Adg: add AdgDimStyle:number-arguments property. Adg: implement adg_dim_style_format(). Adg: default AdgDimStyle values. Adg: add adg_dim_get_text() helper method. Tests: include adg_dim_set_limits(). Adg: use adg_dim_get_text() where relevant. Adg: new ADG_DRESS_DIMENSION_ANGULAR dress. Tests: include adg_rdim_new_full_from_model(). Tests: add required casting to test-adim. Adg: new ADG_DRESS_DIMENSION_RADIUS dress. Doc: add installation instructions to README.md. Adg: remove space between R and the quote in AdgRDim. Adg: new ADG_DRESS_DIMENSION_DIAMETER dress. Build: raise GLib dependency to 2.14.0. Adg: new adg_single_strchr() API. Adg: doc typo in AdgThreeState
0.8.008 Mar 2015 11:45 minor feature: 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 subject to those checks because by design it is not supposed to be sane.
0.7.624 Jan 2015 07:05 minor feature: 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. The adg_canvas_export() function can save a canvas to a file in one command. It needs a patched gobject-introspection though: see bug #743364. The localization infrastructure has been improved up to the point gettextize and intltool are no more required.
0.7.512 Jan 2015 11:29 cleanup: 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. The source code has been revamped to minimize the warnings raised by new versions of gcc, gtk-doc and gobject-introspection. The internal sources have been refactored to handle GTK+2 and GTK+3 differences with the same codebase.