diff options
author | Campbell Barton <ideasman42@gmail.com> | 2016-04-15 11:10:05 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2016-04-15 13:36:38 +0300 |
commit | 8ac662c77aa59c9eea5fc85c4a40546bcb1b4557 (patch) | |
tree | 82b67353779c20e41e2f3f365baf21cc209dcbea /source/blender/makesdna/DNA_scene_types.h | |
parent | e56e7bd1ec3081a13e44319a1b2793f4043d07dd (diff) |
New freehand curve drawing tool
- Access with Shift-LMB or from the 'Create' toolbar tab.
- Uses curve fitting for bezier curves, with error and corner angle options.
- Optional tablet pressure to curve radius mapping.
- Depth can use the cursor or optionally draw onto the surface,
for the entire stroke or using the stroke start.
- Stroke plane can optionally be perpendicular to, or aligned to the surface normal.
- Optional radius tapering and for start/end points.
- Supports operator redo and calling from Python.
Diffstat (limited to 'source/blender/makesdna/DNA_scene_types.h')
-rw-r--r-- | source/blender/makesdna/DNA_scene_types.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index a8f78f6bb34..1ace2b42f15 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -1266,6 +1266,40 @@ typedef enum { UNIFIED_PAINT_BRUSH_ALPHA_PRESSURE = (1 << 4) } UnifiedPaintSettingsFlags; + +typedef struct CurvePaintSettings { + char curve_type; + char flag; + char depth_mode; + char surface_plane; + int error_threshold; + float radius_min, radius_max; + float radius_taper_start, radius_taper_end; + float radius_offset; + float corner_angle; +} CurvePaintSettings; + +/* CurvePaintSettings.flag */ +enum { + CURVE_PAINT_FLAG_CORNERS_DETECT = (1 << 0), + CURVE_PAINT_FLAG_PRESSURE_RADIUS = (1 << 1), + CURVE_PAINT_FLAG_DEPTH_STROKE_ENDPOINTS = (1 << 2), +}; + +/* CurvePaintSettings.depth_mode */ +enum { + CURVE_PAINT_PROJECT_CURSOR = 0, + CURVE_PAINT_PROJECT_SURFACE = 1, +}; + +/* CurvePaintSettings.surface_plane */ +enum { + CURVE_PAINT_SURFACE_PLANE_NORMAL_VIEW = 0, + CURVE_PAINT_SURFACE_PLANE_NORMAL_SURFACE = 1, + CURVE_PAINT_SURFACE_PLANE_VIEW = 2, +}; + + /* *************************************************************** */ /* Stats */ @@ -1417,6 +1451,8 @@ typedef struct ToolSettings { /* Unified Paint Settings */ struct UnifiedPaintSettings unified_paint_settings; + struct CurvePaintSettings curve_paint_settings; + struct MeshStatVis statvis; } ToolSettings; |