Commit Graph

965 Commits

Author SHA1 Message Date
5ca7c85e10 Particle editmode: add mouse independent "Select Linked" operator
The current "Select Linked" operator works based on mouse position and
makes no sense to call from the menus and was removed in rBdd9dfadaac9b.

This patch adds an operator independent from mouse position that just
selects all keys to a corresponding point (and adds back menu entries,
adds keymap entry).

The original operator is renamed to 'select_linked_pick' internally
(this is now more in line to how "Select Linked" works for meshes,
curves etc)

Differential Revision: https://developer.blender.org/D6823
2020-02-14 11:37:17 +01:00
9aae62a59b Particles: remove unused sel_col and nosel_col from
CacheEditrPathsIterData and PTCacheEdit

Followup to 80cecee5b7.

ref D6725
2020-02-12 19:17:19 +01:00
80cecee5b7 Fix T68788: Particle Edit Mode Hair vertex doesn't follow vertex theme
color

Selection and grooming only ever happens on hair keys (vertices), so
makes sense to use that theme color.

Sidenote: `CacheEditrPathsIterData` and `PTCacheEdit` have `sel_col` and
`nosel_col`, these can go, will do in a separate commit.

Maniphest Tasks: T68788

Differential Revision: https://developer.blender.org/D6725
2020-02-12 19:03:28 +01:00
56116bbdf4 Cleanup/refactor: Rename BKE_library files to BKE_lib.
Note that `BKE_library.h`/`library.c` were renamed to
`BKE_lib_id.h`/`lib_id.c` to avoid having a too generic name here.

Part of T72604.
2020-02-10 13:00:42 +01:00
86e24ea10c Fluid: Fixes for fluid guiding
Fluid guiding functionality was broken in the bake / read cache loop in fluid.c. Committing this to the release branch as otherwise fluid guiding would not have worked as expected (i.e. not at all).
2020-02-09 17:15:41 +01:00
93a46f7d08 Fluid: Improved baking progress bar UI
The baking progress bar now uses the entire notification space in the UI. Before, old reports could still be visible when a bake job got started. This had the disadvantage that those message got frozen too with the bake UI freeze.
2020-02-04 21:36:18 +01:00
33317b4647 Fluid: Fixes for flow objects and initial velocities
This commit cleans up the flow emission code (i.e. the code that determines where flow is generated). It also addresses an issue with initial velocities.

Related issues (that might be fixed through this commit) are: T73422, T72949
2020-01-29 19:21:52 +01:00
2e4fbd327f Fix T72216 Copied Particles not refreshing in the viewport
The depsgraph was not tagged for relations update after the copy, which
means it was incomplete and thus didn't update the copied particle sim.
2020-01-21 15:30:07 +01:00
ef9e278b67 Cleanup: unused warnings 2020-01-16 16:25:12 +11:00
588f2d2944 Fix T72970: [Mantaflow] When changing the domain settings, the current frame of the scene is set to 1 2020-01-15 18:55:40 +01:00
7e20d6930d Fluid: Additional fix for relative cache paths 2020-01-15 16:32:39 +01:00
f7fa6cd1da Fluid: Additional fix for relative cache paths
Added missing conversion from relative to absolute paths.
2020-01-15 16:28:43 +01:00
5f8b290eb8 Fluid: Fix for relative cache paths
Relative paths in the cache are no longer converted into absolute paths automatically.
2020-01-15 16:28:25 +01:00
75f82d28e3 Fix T72235: crash entering particle editmode with non-valid PTCacheEdit psys pointer
Caused by own rBe02ecd599bdc.
Can happen with e.g. cloth.

Also fixes T59583

Maniphest Tasks: T72235, T59583

Differential Revision: https://developer.blender.org/D6547
2020-01-08 13:33:46 +01:00
ecfb7eab0c Fix (unreported) hair particle 'Delete Edit' missing children hair
updates in particle editmode

Particles themselves were cleared correctly but this was not tagging
batch cache dirty.

Might move this to a utility function later [since it is used in more
places], but that is for after going over some more reports...

Reviewers: sergey

Differential Revision: https://developer.blender.org/D5925
2019-12-19 20:59:11 +01:00
0647232ac5 Fix particle editmode undo not doing proper updates when child particles
are visible

Not freeing PTCacheEdit and tagging batch cache dirty on undo will have
a couple of consequences. This patch fixes:
- crash deleting a particle, then undo
- basically any edit (combing, ...), then undo will leave child hairs
untouched
- adding hairs (through mirror, add tool, ...), then undo will leave
'orphaned' child hairs

See also D5755 for a related discussion

Fixes the crasher mentioned in T69000

Might move this to a utility function later [since it is used in more
places], but that is for after going over some more reports...

Reviewers: sergey

Differential Revision: https://developer.blender.org/D5912
2019-12-19 20:58:22 +01:00
ca277d7d60 Cleanup: renaming guiding -> guide
The term guide makes sense on it's own in this context.
2019-12-17 14:00:19 +11:00
d61d68a310 Cleanup: remove redundant string initialization
Fixed sized strings are always initialized & this is not done
elsewhere before calling BLI_path_join.

Remove since it's not needed and makes it read as if the function
might not initialize the output argument.
2019-12-17 12:11:28 +11:00
814a11be59 Cleanup: use snake case variable & function names 2019-12-17 12:04:57 +11:00
7e15638cce Cleanup: style, always use braces 2019-12-17 09:53:25 +11:00
bcd38b398c Cleanup: remove contributors, license begin/end & doxy file argument
This had already been removed for all source files,
recent patches re-introduced them.
2019-12-17 09:27:01 +11:00
11e4eafd9b Cleanup: compiler warnings 2019-12-17 09:12:03 +11:00
831b85efb2 Cleanup: clang-format 2019-12-17 08:58:43 +11:00
79c3e8db26 Fix linking errors WITH_MOD_FLUID=OFF 2019-12-17 08:47:06 +11:00
d27ccf990c Mantaflow [Part 6]: Updates in /blender/source
A collection of smaller changes that are required in the /blender/source files. A lot of them are also due to variable renaming.

Reviewed By: sergey

Maniphest Tasks: T59995

Differential Revision: https://developer.blender.org/D3855
2019-12-16 16:37:01 +01:00
829a83262f Mantaflow [Part 7]: Added bake configuration
Similarly to physics_fluid.c (in same directory) which handled the baking process for Elbeem, there is now physics_manta.c which handles it for Mantaflow.

There are two types of jobs: one for baking and another for freeing. The generic jobs will be used to bake / free specific parts of the simulation (e.g. bake mesh, free particles, etc.).

The jobs are only being used in the "modular" cache mode where the simulation has to be baked in parts.

Reviewed By: sergey

Maniphest Tasks: T59995

Differential Revision: https://developer.blender.org/D3856
2019-12-16 16:33:54 +01:00
00e9241d49 Cleanup: header guards 2019-12-10 11:06:38 +11:00
9054b83402 Cleanup depsgraph access in particle_edit.c
'PE_set_data' / 'PE_set_view3d_data' would give us a depsgraph already,
so use it.

Also fix access to PEData->depsgraph without calling 'PE_set_data' prior.

Addresses concern raised in rBcf2c09002fae.

Reviewed By: sergey

Differential Revision: https://developer.blender.org/D6067
2019-10-17 13:17:05 +02:00
bebdb6c824 Fix assert when deleting a RBW constraint object.
Side-reported in T70505.

Code did not ensure deleted object was removed from the RBW constraints
collection, leading to some invalid status (object in constraints
collection but without relevant contraints data).

Also fixed another issue - code deleting RBW objects would try to remove
any constraint one using it as target, in a very bad and broken way,
since you cannot iterate over objects of a collection while removing
some... Now instead just NULLify relevant pointers... I hope it works,
otherwise we'll have to take a different approach.

Needless to stress again how weak the whole RBW code is in general, and
regarding same object being used by RBW in more than one scene in particular,
that is known broken situation anyway.
2019-10-04 18:57:14 +02:00
01c824ac88 Revert "UI: use correct singular and plural nouns in report messages"
Convention is to use (s) postfix for cases where there can be one or multiple,
so stay consistent with that.

This reverts commit 3e8276311e.
2019-10-02 12:54:56 +02:00
Yevgeny Makarov
3e8276311e UI: use correct singular and plural nouns in report messages
Differential Revision: https://developer.blender.org/D5729
2019-10-01 20:18:48 +02:00
a6a0a09197 Cleanup: spelling 2019-09-30 17:07:05 +10:00
7ac581cb1b Cleanup: clang format for particle loop macros
See https://developer.blender.org/D5903

Reviewers: JacquesLucke
2019-09-26 17:55:51 +02:00
db4571f3c3 Fix T68645: Hair Particle Edit - Particle Mirror crash when children are
visible in the viewport

Seems to be an issue of not correctly freeing the PTCacheEdit (see
T68645 for details), after discussion with sergey we went with the quick
and dirty fix to free the path cache early for now. Other solution of
freeing it in 'psys_cache_paths' for the non-evaluated psys [which would
also fix the particle delete, then undo crash from T69000] needs more
deep investigation and, possibly, reconsideration.

Reviewers: sergey

Maniphest Tasks: T68645

Differential Revision: https://developer.blender.org/D5755
2019-09-26 17:35:17 +02:00
cf2c09002f Fix T69488: Hair particles: rekey disolves the hair then crashes
Caused by rB914427afd512.

Since above commit 'pe_get_current' checks for an active depsgraph. This
caused the skipping of handling
`PT_CACHE_EDIT_UPDATE_PARTICLE_FROM_EVAL`for everything calling
`PE_get_current` (this passes a NULL depsgraph as opposed to
`PE_create_current`). So we now pass a depsgraph here as well...

Note there are two RNA cases where we pass NULL, namely
- rna_ParticleEdit_editable_get
- rna_ParticleEdit_hair_get
I guess these should be fine though (no functional change to current
master)

Reviewers: sergey

Maniphest Tasks: T69488

Differential Revision: https://developer.blender.org/D5752
2019-09-26 17:27:43 +02:00
e02ecd599b Fix T70259: Hair particle point selection if 'use_fade_time' is set
If fade_time is used, particles would be flagged PEK_HIDE (depending on
time settings), but since this is not respected in drawing in 2.8 yet
the user would have no indication of them keys being hidden.
Also doing this for hair doesnt make much sense anyways...

Reviewers: jacqueslucke

Maniphest Tasks: T70259

Differential Revision: https://developer.blender.org/D5901
2019-09-26 15:01:06 +02:00
39d855f8f3 Fix particle lasso selecting non-visible keys
Even though hidden/faded keys are not supported in drawing in 2.8 yet,
the selection tools should not be able to select non-visible keys.

Spotted while looking into T70259

Reviewers: JacquesLucke

Differential Revision: https://developer.blender.org/D5902
2019-09-26 14:41:36 +02:00
383c4ba3d8 Fix excessive dependency graph evaluation while painting strokes
Particularly noticeable when vertex painting with a subsurf modifier.

In some cases every sculpt or paint stroke step would evaluate the dependency
graph. This should only happen for redraws. Now more selectively choose if the
dependency graph should be evaluated to initialize the view context. Doing it
in the view context evaluation is somewhat hidden, now it's more explicit.

Differential Revision: https://developer.blender.org/D5844
2019-09-18 18:19:27 +02:00
f9beb1bef1 Fix (unreported) missing viewport update deleting a particle
If children hairs were displayed in particle editmode, these would not
update when a particle was deleted.

Reviewers: sergey

Differential Revision: https://developer.blender.org/D5840
2019-09-18 17:19:33 +02:00
0547a77536 Cleanup: use const args, variables 2019-09-14 08:12:53 +10:00
2cec4af124 Fix T69582: Empties no longer support Rigid Body Constraints
This is caused by rB1342d1879e12 and would also break the whole
"Connect" workflow [which relies on empties]

Reviewers: mont29, brecht

Maniphest Tasks: T69582

Differential Revision: https://developer.blender.org/D5772
2019-09-12 11:24:23 +02:00
9bb6058489 Cleanup: typo/spelling 2019-09-11 11:29:45 +02:00
bf6e05562c Fix assert hiding selected particles
was trying to get a boolean with RNA_enum_get (instead of
RNA_boolean_get)

Spotted while looking into T69680, T69432
2019-09-10 11:31:40 +02:00
0b2d1badec Cleanup: use post increment/decrement
When the result isn't used, prefer post increment/decrement
(already used nearly everywhere in Blender).
2019-09-08 00:23:25 +10:00
4608220c9b Fix (unreported) 'Duplicate Particle System' operator not ensuring
unique name

This was leading to equally named particle systems, causing problems
later on.
Spotted while looking into T67958.

Reviewers: brecht

Differential Revision: https://developer.blender.org/D5632
2019-08-30 14:07:59 +02:00
6eadd40597 Cleanup: redundant struct declarations 2019-08-25 16:45:47 +10:00
a1aa4a2597 RNA: Cleanup PointerRNA struct
The old layout of `PointerRNA` was confusing for historic reasons:
```
typedef struct PointerRNA {
  struct {
    void *data;
  } id;

  struct StructRNA *type;
  void *data;
} PointerRNA;
```

This patch updates it to:
```
typedef struct PointerRNA {
  struct ID *owner_id;
  struct StructRNA *type;
  void *data;
} PointerRNA;
```

Throughout the code base `id.data` was replaced with `owner_id`.
Furthermore, many explicit pointer type casts were added which
were implicit before. Some type casts to `ID *` were removed.

Reviewers: brecht, campbellbarton

Differential Revision: https://developer.blender.org/D5558
2019-08-23 09:52:12 +02:00
1342d1879e Fix T52551: undo causes crash after enabling a new rigid body when scene uses a referenced rigid body world.
Poll functions were not correct here, we cannot make objects part of
rigidbody sim if the RB collection is a linked one...
2019-08-08 17:20:39 +02:00
2425401a59 Cleanup: spelling 2019-08-04 12:51:44 +10:00
05226e1512 Fix T68122: Settings for Select root and Select tip in particle edit mode are missing
Do not hide the redo window for root/tip select anymore.
2019-08-02 16:03:26 +02:00