Commit Graph

302 Commits

Author SHA1 Message Date
f8d040cb70 T60701: GP using cutter tool on stroke with vertex group crashes blender 2019-01-21 11:03:09 +01:00
fc6aac3916 GP: Create materials when separate active layer
The materials were not created when used the active layer option of the separate operator.
2019-01-18 10:53:14 +01:00
88a80fcec8 Cleanup: commas at the end of enums
Without this clang-format may wrap them onto a single line.
2019-01-16 00:03:03 +11:00
b8e8c0e325 Cleanup: comment line length (editors)
Prevents clang-format wrapping text before comments.
2019-01-15 23:30:31 +11:00
8c3bd1eda1 Cleanup: style 2019-01-15 10:36:52 +11:00
9390b2e645 Cleanup: compiler warnings 2019-01-14 11:42:28 +11:00
bb9c9d0eaa GP: New Cutter, Constraints and Segment selection
This commit groups a set of new tools that were tested in grease pencil object branch before moving to master. We decide to do all the development in a separated branch because it could break master during days or weeks before the new tools were ready to deploy.

The commit includes:

- New Cutter tool to trim strokes and help cleaning up drawings.

- New set of constraints and guides to draw different types of shapes. All the credits for this development goes to Charlie Jolly (@charlie), thanks for your help!

- Segment selection mode to select strokes between intersections.

- New operator to change strokes cap mode.

- New option to display only keyframed frames. This option is very important when fill strokes with color.

- Multiple small fixes and tweaks.

Thanks to @pepeland and @mendio for their ideas, tests, reviews and support.

Note: Still pending the final icons for Cutter in Toolbar and Segment Selection in Topbar. @billreynish could help us here?
2019-01-11 19:21:56 +01:00
4d795cee49 Fix T60015: snap to grid - snaps only to largest increment
Caused by rBc7a96651dfa4 when trying to remove all uses of the deprecated `rv3d->gridview`.
2018-12-31 13:45:20 -02:00
fdc726eb61 GP: Rename GP_STROKE_RECALC_CACHE to GP_STROKE_RECALC_GEOMETRY
The GP_STROKE_RECALC_CACHE identifier was changed to GP_STROKE_RECALC_GEOMETRY because the previous name was confusing and could be confused with the recalculation of the Draw Manager cache.
2018-12-28 08:48:37 +01:00
1158b9f73a Cleanup: First batch of UI messages fixes (typos, final points...).
Also contains some code typo fixes (mostly, adtaptative -> adaptive,
former is nearly innexistant in English, let's stick to simple valid
words ;) ).
2018-12-23 22:03:43 +01:00
ab144437e2 Fix T59579: Grease Pencil copy buffer loses material information 2018-12-19 22:57:03 +01:00
780f0f646d GP: Rename CTX and OB modes
Part of T59335.
2018-12-14 16:52:12 +01:00
dd4c87cd04 Merge branch 'master' into blender2.8 2018-12-14 11:09:42 +11:00
aa3c4b4cb6 Missed last commit 2018-12-14 11:06:34 +11:00
dfa3e0ae81 Fix compiler error 2018-12-14 09:54:34 +11:00
c7a31bad9f GP: Add Subdivide Smooth option 2018-12-13 23:31:57 +01:00
7d3b1cdd7d GP: New Smooth operator
Smooth a stroke, in edit mode, similar how mesh operator works with meshes.
2018-12-13 19:49:13 +01:00
79312c1912 Depsgraph: Remove duplicated sets of recalc/update flags
There were at least three copies of those:

- OB_RECALC* family of flags, which are rudiment of an old
  dependency graph system.
- PSYS_RECALC* which were used by old dependency graph system
  as a separate set since the graph itself did not handle
  particle systems.
- DEG_TAG_* which was used to tag IDs.

Now there is a single set, which defines what can be tagged
and queried for an update. It also has some aggregate flags
to make queries simpler.

Lets once and for all solve the madness of those flags, stick
to a single set, which will not overlap with anything or require
any extra conversion.

Technically, shouldn't be measurable user difference, but some
of the agregate flags for few dependency graph components did
change.

Fixes T58632: Particle don't update rotation settings
2018-12-07 11:37:38 +01:00
7493848008 3D View: remove 3D cursor
Use 3D cursor from the scene (was previously used for local-view).
2018-11-26 14:02:09 +11:00
d2e473f01c GP: Reorganize Reproject options
The options depend of drawing mode and this was very strange. Now, the options are listed in the menu.
2018-11-20 16:29:33 +01:00
d7f55c4ff5 Cleanup: comment block tabs 2018-11-14 17:10:56 +11:00
c2dc5dfa0d GP: Fix wrong fill after subdivide 2018-11-13 17:09:28 +01:00
3437cd9ac2 Cleanup: add arg to GP_EDITABLE_STROKES macro
Without this, we use arguments defined in the macro
making code hard to read.
2018-11-13 15:07:10 +11:00
b6ad300a13 Fix T57713: Object not selecteable after separate strokes
The object was duplicated in Edit mode.
2018-11-12 10:09:10 +01:00
2fdd80ba1d GP: Use same name when duplicate datablock 2018-11-11 14:31:23 +01:00
2f44ea68d3 Cleanup: style 2018-11-10 09:27:20 +11:00
64ec05b64d Cleanup: remove some useless BKE_library and BKE_main includes.
Makes it simpler to make some changes...

Also fix order of some includes (use alphabetical please).
2018-11-07 20:58:54 +01:00
1b928c2d9a Paint: add tool offset & mode to runtime data
It was getting too impractical to call BKE_paint_brush_tool_info
which needed to lookup the scene pointers.

Now each store tool offset and brush mode in 'Paint.runtime'
2018-11-05 16:18:43 +11:00
8b31f6fb21 Paint: add BKE_paint_ensure to initialize toolsettings
Each mode had its own logic for initializing paint structs,
move to a single function.

Also remove "BKE_brush_get_gpencil_paint", entering grease pencil
mode is responsible for ensuring the data is created.
2018-11-05 15:31:25 +11:00
5cfcee8c39 GP: Reorganize Canvas Grid
Now the grid is always controlled by the topbar selector and not in the canvas panel. To have two places to define orientation was confuse.

The orientation by default (no lock) is always to view plane.
2018-11-04 13:00:37 +01:00
888a0735ee Tool System: validate tool slots when setting modes
Needed for entering paint modes on new scenes.
2018-11-03 16:52:06 +11:00
bbc5571093 Cleanup: trailing space w/ slash, right shift 2018-10-12 10:36:45 +11:00
58adc58661 Merge branch 'master' into blender2.8 2018-09-27 15:49:59 +02:00
9df3467b4e GP: Add const to variable 2018-09-25 20:23:55 +02:00
add8e1c018 GP: Add keymap 1 and 2 for select mode 2018-09-20 11:56:59 +02:00
066afa2198 Fix T56707: Assert changing grease pencil modes 2018-09-07 13:41:31 +10:00
2dff0c99c0 Fix T56686: Crash when copy and paste Annotations
Annotations are not designed to edit, copy or paste, so the operators must be disabled.

By design annotations can only be added or deleted, but not edited.

Still pending clean the pie menus, but this will be done during UI cleanup.
2018-09-04 17:16:36 +02:00
ff59553dc9 GP: Cleanup function parameter
There was a mix of enum parameters and int/bool values.
2018-09-03 10:14:13 +02:00
ae57383648 Cleanup: comment blocks 2018-09-02 18:28:27 +10:00
961881495f GP: Undo previous Subdivide edit operator and reformat code
The previous commit reusing the subdivide modifier code was not taking in account the selected points, so the subdivide was wrong.
2018-08-30 13:45:12 +02:00
5e66791b86 Cleanup: warnings 2018-08-30 20:48:00 +10:00
0845b1c8c8 GP: Improve Subdivide and Simplify
Now the weights are managed in the operators.

The subdivide operator and modifier code have been replaced with a shared function.

Some cleanup also.
2018-08-30 11:11:47 +02:00
0efecba957 Merge branch 'master' into blender2.8 2018-08-30 01:38:16 +10:00
9a9b1e9884 GP: Revert replace custom function by standard API
Using custom api breaks material at object level
2018-08-28 08:18:09 +02:00
b14360507e Cleanup: warnings 2018-08-28 10:53:35 +10:00
9195b5b3b1 GP: Replace custom function by standard API
Replace BKE_gpencil_get_material_index by BKE_object_material_slot_find_index
2018-08-27 23:16:02 +02:00
c7a96651df Fix unreported: the gridview is no longer computed, so the snapping functions have to use the actual grid scale. 2018-08-27 11:40:48 -03:00
1948681440 GP: Reduce weight paint data memory footprint
Before, the weight data array was created always, but now only is added when a weight value is assigned.

This change was suggested by algorithm, and both agreed it was good idea.
2018-08-26 16:40:06 +02:00
01973290a9 Fix T56498: Segment fault when change parameter of one operator after undo.
You cannot store ID (or any other data) pointers accross undo’s/redo’s, those
are reading .blend file and hence invalidating all pointers!

Not that happy with this fix, code is rather convoluted and not elegant
at all, but cannot think of a better solution, so will do for now.

Also found and fixed another 'str ghash used for int keys' case...
2018-08-23 08:46:07 +02:00
118251a2a8 GP: Add OPTYPE_USE_EVAL_DATA flag in paste to avoid undo crash 2018-08-22 13:44:17 +02:00