User:Filedescriptor/Work/grease pencil curves
Grease Pencil Curves
Background
Curves were first introduced to the grease pencil workflow with the Google Summer of Code 2020 project: Editing grease pencil strokes using curves. The goal of this project was to create a tool that would allow the user to select strokes, edit them with beziér curve handles, and then confirm the action. During development, the tool evolved into its own mode: Curve Edit Mode. The feature made it into Blender 2.92 (see the release notes for more information).
Techincal Documentation
File structure
Here are some of the most important files and functions related to curves in grease pencil.
- Operators that are specific to grease pencil curves like "Set Handle Type" are located in
blender/source/blender/editors/gpencil/gpencil_edit_curve.c
. - Blender kernel functions related to grease pencil curves can be found in
blender/source/blender/blenkernel/intern/gpencil_curve.c
. This is for example where the functions for curve <-> stroke conversion are located. - The DNA structs for the curve data are declared in
blender/source/blender/makesdna/DNA_gpencil_types.h
and are calledbGPDcurve
for the curve andbGPDcurve_point
for the individual points. The handles are stored as aBezTriple
. Instead of defining the curve segments the "traditional" way with 4 control points, Blender stores the handle itself (1 control point and 2 handles from the previous and the next curve segment).