Difference between revisions of "Lib2geom"

From Inkscape Wiki
Jump to navigation Jump to search
m (Minor markup tweaks)
Line 1: Line 1:
I’ve started this page on the Inkscape Wiki to help the <code>lib2geom</code> team with some developer documentation. As this material matures it can be moved to the “Developer Documentation” section of the wiki instead of where it currently resides. (2006-09-01 Scott Huey)
 
== What is lib2geom? ==
 
[https://gitlab.com/inkscape/lib2geom lib2geom] (2Geom in private life) was initially a library developed for Inkscape, but it can provide a robust computational geometry framework for any application. It is not a rendering library, instead concentrating on high level algorithms such as computing arc length.
 
 
=== Quick Feature List ===
 
 
(not complete)
 
* C++
* Functional programming style.
* Points
* Efficient affine transformations
* Rectangles
* Convex Hulls
* Bounded error
* General purpose paths:
** Exact elliptical arcs
** Area
** Centroid and bending moments
* Path Locations:
** Determination of special spots (e.g. maximum curvature)
** Splitting
** Point, tangent, curvature at location
** Efficient arc length and inverse arc length
* Path algebra:
** Computations such as offset curves can be written with their mathematical definition and still get a bounded error, efficient curve. (preliminary trials indicate offset done this way out performs the method used in Inkscape)
* Arbitrary distortion (with bounded error):
** Mesh distorts
** Computational distorts such as the GIMP's 'vortex' plugin
** 3d mapping (perspective, flag, sphere)
* Exact boolean ops (elliptic arcs remain elliptic arcs)
* Efficient 2d database
* Implicit function plotting
* NURBs input and output
* Tunable path simplification
* PDoF constraint system for CAD/CAGD
 
 


[[lib2geom Goals]]
[[lib2geom Goals]]

Revision as of 00:21, 12 November 2018

What is lib2geom?

lib2geom (2Geom in private life) was initially a library developed for Inkscape, but it can provide a robust computational geometry framework for any application. It is not a rendering library, instead concentrating on high level algorithms such as computing arc length.


Quick Feature List

(not complete)

  • C++
  • Functional programming style.
  • Points
  • Efficient affine transformations
  • Rectangles
  • Convex Hulls
  • Bounded error
  • General purpose paths:
    • Exact elliptical arcs
    • Area
    • Centroid and bending moments
  • Path Locations:
    • Determination of special spots (e.g. maximum curvature)
    • Splitting
    • Point, tangent, curvature at location
    • Efficient arc length and inverse arc length
  • Path algebra:
    • Computations such as offset curves can be written with their mathematical definition and still get a bounded error, efficient curve. (preliminary trials indicate offset done this way out performs the method used in Inkscape)
  • Arbitrary distortion (with bounded error):
    • Mesh distorts
    • Computational distorts such as the GIMP's 'vortex' plugin
    • 3d mapping (perspective, flag, sphere)
  • Exact boolean ops (elliptic arcs remain elliptic arcs)
  • Efficient 2d database
  • Implicit function plotting
  • NURBs input and output
  • Tunable path simplification
  • PDoF constraint system for CAD/CAGD


lib2geom Goals

lib2geom FAQ

WorkingWith2GeomFAQ: real-life questions answered about using 2Geom in real code

lib2geom SVN Repository Guide

lib2geom py2geom: Python bindings to 2geom. With this you can use the power of 2geom in Python scripts.