Difference between revisions of "Lib2geom"

From Inkscape Wiki
Jump to: navigation, 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.