Age | Commit message (Collapse) | Author |
|
|
|
Thanks Howard for double-checking!
|
|
|
|
When there is an odd number of segments, bevel has an ambiguous
choice as to which side face to use to copy face attributes from
and to use for UV (and other loops that have math function) interpolation.
We used to make choice arbitrarily, which led to visually inconsistent
results. Now there is tie-breaking code, face with lexicographic lowest
value in vector with these elements:
(1) connected component (in math-layer space) id
(2) selected (0) vs unselected (1)
(3) material index
(4,5,6): z,x,y components of face center, in that order.
|
|
|
|
This will allow the easier addition of a constant radius mode in the
future and some changes in the UI to mirror the recent similar change
from "Only Vertices" to the "Affect" enum.
|
|
This mode is like Percent, but measures absolute distance along
adjacent edges instead of a percentage.
So, for example, if you use this mode with 2 segments and profile=1,
you will see the length that the bevel moves along unbeveled edges
between beveled ones will match the value specified.
Many users seem to expect this behavior, even though it means the
bevel width is uneven, so this option is for them.
|
|
This is related to T76659.
This just renames data type names to `CD_PROP_STRING`, `CD_PROP_FLOAT`
and `CD_PROP_INT32`. It makes them a bit more specific and removes
unnecessary abbreviations.
Reviewers: brecht
Differential Revision: https://developer.blender.org/D7980
|
|
|
|
Don't use the cube corner special case when the offsets are different
for the three edges involved. The generic VMesh for this situation isn't
perfect, but it's much better than a failed cube corner VMesh.
Tests pass.
|
|
|
|
|
|
|
|
|
|
- Use 'BKE_object_defgroup' prefix for object functions.
- Rename 'defvert_verify_index' to 'defvert_ensure_index'
since this adds the group if it isn't found.
|
|
When beveling architectural objects like baseboards or crown mouldings that
may consist of multiple islands, it's useful if the orientation is at least
conistent.
This changes the arbitrary decision of how the orientation should start at a
chain beginning to use the highest side of the profile in the Z direction.
Reviewed By: howardt
Differential Revision: https://developer.blender.org/D6946
|
|
Also changed signature of bevel function to take integer
for segments instead of float, which is just wrong.
|
|
|
|
Needed to protect against a case where clamp overlap limited
the offset to approximately zero, and the snap-to-pipe code
would therefore encounter an almost degenerate profile and
fail in matrix inversion.
|
|
Remove old / trivial print statements and drawing code.
Reviewed By: howardt
Differential Revision: https://developer.blender.org/D6661
|
|
Profile calculation now happens in a single pass rather than being spread
throughout the process. This means each profile will only be calculated a
single time.
Reviewed By: howardt
Differential Revision: https://developer.blender.org/D6658
|
|
offset_meet creates offset lines that can't be directly intersected, so
the average of the points on each offset line is 'dropped' onto the
faces around the beveled vertex, which can depend on where
the loop starts.
This fix skips faces with the same normals as the "in plane" faces from
build_boundary.
Reviewed By: howardt
Differential Revision: https://developer.blender.org/D6521
|
|
Also correct some outdated symbol references,
add missing 'name' commands.
|
|
|
|
The calculation of pro_super_r rounded to a non-exact float,
so put in rounding code for the special cases.
|
|
The code changes for custom bevels did not recalculated profiles
in certain non-custom-profile cases after projection plane moves.
|
|
One of the corrections from last cleanup was wrong.
|
|
|
|
Custom profiles in bevel allows the profile curve to be controlled by
manually placed control points. Orientation is regularized along
groups of edges, and the 'pipe case' is updated. This commit includes
many updates to comments and changed variable names as well.
A 'cutoff' vertex mesh method is added to bevel in addition to the
existing grid fill option for replacing vertices.
The UI of the bevel modifier and tool are updated and unified.
Also, a 'CurveProfile' widget is added to BKE for defining the profile
in the interface, which may be useful in other situations.
Many thanks to Howard, my mentor for this GSoC project.
Reviewers: howardt, campbellbarton
Differential Revision: https://developer.blender.org/D5516
|
|
Needed to null terminate list of chain to process width adjustments on.
|
|
T68035 by @luzpaz
|
|
The special case test for cube-like corner did not work if normals
are flipped.
|
|
The test for whether or not this was a "pipe" neglected to use
fabsf() around a dot result.
|
|
|
|
Automated using clang-tidy.
|
|
|
|
The previous fix to the spike bug T64582 was not really right.
This fixes that one properly and restores the desired curving
profile in the bug's example.
|
|
Code for extending sharp edges assumes ADJ pattern and this
example uses TRI_FAN pattern. This change doesn't fix TRI_FAN
mark sharp bug at least won't infinite loop any more.
|
|
The code to move the profile plane needed to not do that in
a few more cases.
|
|
Code fix from George Vogiatzis (Gvgeo), via D4811.
Needed to initalize vert_axis.
|
|
Prepare for enabling ReflowComments.
|
|
From D4719 by George Vogiatzis (Gvgeo).
|
|
|
|
Add braces for modules already using braces almost everywhere.
|
|
Apply clang format as proposed in T53211.
For details on usage and instructions for migrating branches
without conflicts, see:
https://wiki.blender.org/wiki/Tools/ClangFormat
|
|
Some iterations in bevel were over a hash table, which leads
to possibly different results run-to-run, especially when
loop_slide is enabled. Changed those iters to go over all verts
of BMesh, which leads to consistent order run-to-run.
|
|
|
|
|
|
Mostly functions wrapping args, not confirming to our style guide.
|
|
|