Difference between revisions of "Lib2geom"
Jump to navigation
Jump to search
m (Minor markup tweaks) |
|||
Line 1: | Line 1: | ||
== 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
WorkingWith2GeomFAQ: real-life questions answered about using 2Geom
in real code
lib2geom py2geom: Python bindings to 2geom
. With this you can use the power of 2geom
in Python scripts.