Difference between revisions of "Exploring Livarot"

From Inkscape Wiki
Jump to navigation Jump to search
Line 6: Line 6:
 
# Path Simplification
 
# Path Simplification
 
# Path Flattening
 
# Path Flattening
 +
 +
===How's it typically used?===
 +
# Creating a livarot <code>Path</code> object by using Inkscape’s functions such as <code>Path_for_item</code> or <code>Path_for_pathvector</code>. These functions just store path descriptions inside the <code>Path</code> object. Such as <code>moveTo</code>,<code>lineTo</code>, <code>cubicTo</code>, etc. These are just instructions.
 +
# Calling <code>path-&gt;Convert</code> or <code>path-&gt;ConvertWithBackData</code>. Given a threshold value, these functions create a polygon that approximates the path descriptions given in step 1. The smaller the threshold value, the better the approximation. This approximation is the fundamental tool of livarot that gives it the ability to do things like path boolean operations.
 +
# Calling <code>path-&gt;Fill(shape, ...)</code> . This creates a directed graph structure from the approximated polygon. A directed graph just has points connected by edges.
 +
# Calling <code>shape-&gt;ConvertToShape(shape_input, ...)</code>. This function converts the graph created earlier, to a polygon without any self-intersections or duplicate points. It is one of the most important functions of livarot. It also takes a fill rule as the argument.
 +
# Here whatever actual function you wanna perform is called. If you’re tweaking, you would call <code>shape-&gt;MakeTweak</code>, if you’re performing outset/inset, you’d call <code>shape-&gt;MakeOffset</code>. Similar functions exist for boolean operations.
 +
# Calling <code>shape-&gt;ConvertToForme(path)</code>. This converts the shape object back to a path whose SVG description you can grab and put in the XML tree.

Revision as of 08:01, 23 March 2020

Why is it being used?

  1. Tweak Tool
  2. Path Offsetting
  3. Boolean Operations
  4. Flowing Text
  5. Path Simplification
  6. Path Flattening

How's it typically used?

  1. Creating a livarot Path object by using Inkscape’s functions such as Path_for_item or Path_for_pathvector. These functions just store path descriptions inside the Path object. Such as moveTo,lineTo, cubicTo, etc. These are just instructions.
  2. Calling path->Convert or path->ConvertWithBackData. Given a threshold value, these functions create a polygon that approximates the path descriptions given in step 1. The smaller the threshold value, the better the approximation. This approximation is the fundamental tool of livarot that gives it the ability to do things like path boolean operations.
  3. Calling path->Fill(shape, ...) . This creates a directed graph structure from the approximated polygon. A directed graph just has points connected by edges.
  4. Calling shape->ConvertToShape(shape_input, ...). This function converts the graph created earlier, to a polygon without any self-intersections or duplicate points. It is one of the most important functions of livarot. It also takes a fill rule as the argument.
  5. Here whatever actual function you wanna perform is called. If you’re tweaking, you would call shape->MakeTweak, if you’re performing outset/inset, you’d call shape->MakeOffset. Similar functions exist for boolean operations.
  6. Calling shape->ConvertToForme(path). This converts the shape object back to a path whose SVG description you can grab and put in the XML tree.