Age | Commit message (Collapse) | Author |
|
|
|
Surrounding includes with an 'extern "C"' block is not necessary anymore.
Also that made it harder to add any C++ code to some headers, or include headers
that have "optional" C++ code like `MEM_guardedalloc.h`.
I tested compilation on linux and windows (and got help from @LazyDodo).
If this still breaks compilation due to some linker error, the header containing
the symbol in question is probably missing an 'extern "C"' block.
Differential Revision: https://developer.blender.org/D7653
|
|
|
|
|
|
|
|
|
|
|
|
It occurred when an edge was collapsed into a vert that was not part of it.
This is common when the distance for merging is relatively large.
|
|
It occurred when an edge was collapsed into a vert that was not part of it.
This is common when the distance for merging is relatively large.
|
|
|
|
|
|
|
|
|
|
|
|
While it might be handy to have type-less functionality which is
similar to how C++ math is implemented it can not be easily achieved
with just preprocessor in a way which does not have side-effects on
wrong usage.
There macros where often used on a non-trivial expression, and there
was at least one usage where it was causing an actual side effect/bug
on Windows (see change around square_f(sh[index++]) in studiolight.c).
For such cases it is handy to have a function which is guaranteed to
have zero side-effects. The motivation behind actually removing the
macros is that there is already a way to do similar calculation. Also,
not having such macros is a way to guarantee that its usage is not
changed in a way which have side-effects and that it's not used as an
inspiration for cases where it should not be used.
Differential Revision: https://developer.blender.org/D7051
|
|
- 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.
|
|
When a vertex between two edges is being collapsed,
it's important that edges between delimiting faces use the
angle between edges without scaling it down.
While faces with different materials wont ever be merged into a single
face, all the detail between the two faces may be removed.
|
|
|
|
|
|
- Replace 'unsigned' used on it's own with 'uint'.
- Replace 'unsigned const char' with 'const uchar'.
|
|
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.
|
|
|
|
For optimization.
|
|
`lambda_a` made it more restricted than it should be.
|
|
|
|
Differential Revision: https://developer.blender.org/D6626
|
|
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
|
|
|
|
Prevents regression in unit tests.
|
|
In the Auto Merge & Split feature, multithreading was only used to
find duplicates between vertex and another vertex.
But with this patch, multithreading is now used to find intersections
etween edge and edge and between edge and vertex.
In my tests I noticed a performance improvement of around 180%
(0.017151 secs to 0.009373 secs)
Differential Revision: https://developer.blender.org/D6528
|
|
|
|
Also collapsed edges are no longer used in the overlap test.
This greatly improves peformanse for cases where the distance tested is
relatively large.
|
|
Previously, compared to `Auto Merge` without `Split Edges & Faces`,
`Auto Merge` with this option ignored duplicates between selected
vertices. It only considered duplicates between selected vertices and
unselected vertices.
This is a regress and not a progress.
This commit implements this behavior, so this option matches the other
`Auto Merge`.
|
|
No functional changes.
Allows more performance control and is important for Weld Modifier.
|
|
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
|
|
|
|
|
|
Along with the new utility `BM_vert_weld_linked_wire_edges_into_linked_faces`
|
|
Actual issue is with triangle beautify,
avoid precision error by scaling the epsilon
by the face area when it's over 1
The mesh in the report was very large (approx 2000 on each side),
causing precision issues with a fixed epsilon.
|
|
Needed to null terminate list of chain to process width adjustments on.
|