This differential implements the function BKE_gpencil_stroke_perimeter_ex and an operator (GPENCIL_OT_stroke_to_perimeter) that uses it.
The BKE function returns a flat x, y, z float array representing the points on the perimeter of the stroke.
Here is a video, showing the operator in action:
- The algorithm does not take the line_change stroke thickness adjustment in the layer settings into account.
- Running the operator on multiple strokes at once freezes blender.
- Code needs to be refactored to be rebased onto greasepencil-refactor
- F6 menu does not pop up
- End caps don't have the right thickness
- Inner miter on corners does not take the thickness of points into account
These tests were done on a ThinkPad E580 running Ubuntu 18.04.3 LTS.
We can clearly see the O(n) runtime of the algorithm.