Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-04-29Fix T86799: Boolean crashes duplicating object with "Fast" solverCampbell Barton
BMesh intersect could leave invalid items in the selection list, causing a crash. The list is now cleared since boolean is such a destructive operation, it's unlikely the selection order would be useful. Thanks to @lukastoenne for finding the root cause.
2021-04-29Fix build error: use of unintialized variableWannes Malfait
Differential Revision: https://developer.blender.org/D11115
2021-04-29Fix T87863: Bisect fails when edges of an N-gon lie on the planeCampbell Barton
Logic for bisect handled edges in the face crossing the plane, but not concave N-gons containing multiple edges that lie on the plane.
2021-04-12Fix T87259: Un-Subdivide creates duplicate facesCampbell Barton
Add argument to BM_vert_collapse_faces to remove any faces that become duplicate as result of the collapse.
2021-04-09Cleanup: use our own code style for doxy-gen comment blocksCampbell Barton
2021-04-02Cleanup: Remove unecessary C API for direct mesh booleanHans Goudey
The main goal here is to remove the need for a C API to the code in `mesh_boolean_convert.cc`. This is achieved by moving `MOD_boolean.c` to C++ and making the necessary changes for it to compile. On top of that there are some other slight simplifications possible to the direct mesh boolean code: it doesn't need to copy the material remaps, and the modifier code can use some other C++ types directly.
2021-03-20Bevel code: add a null pointer check.Howard Trickey
2021-03-18Cleanup: spellingCampbell Barton
2021-03-08Speedup for usual non-manifold exact boolean case.Howard Trickey
The commit rB6f63417b500d that made exact boolean work on meshes with holes (like Suzanne) unfortunately dramatically slowed things down on other non-manifold meshes that don't have holes and didn't need the per-triangle insideness test. This adds a hole_tolerant parameter, false by default, that the user can enable to get good results on non-manifold meshes with holes. Using false for this parameter speeds up the time from 90 seconds to 10 seconds on an example with 1.2M triangles.
2021-02-28Fix T86082 Bevel messed up UVs on some multisegment bevels.Howard Trickey
When polygons around a bevel are rebuilt, sometimes UVs are merged around a new vertex in the case of the face opposite a single edge being beveled on a 3-edge vertex. This should not have been done if any of the edges at that vertex were a seam.
2021-02-13Cleanup: macro hygiene, use parenthesis around operatorsCampbell Barton
2021-02-09Cleanup: spellingCampbell Barton
2021-02-07Fix T84493 et al: New Boolean on Suzanne.Howard Trickey
While Boolean is not guaranteed to work if the operands are not volume-enclosing (technically: PWN - piecewise constant winding number), it needs to do something in those cases. This change makes more cases meet user expectations in T84493, T64544, T83403, T82642 (though very slow on that one). The original new boolean code used "generalized winding number" for this fallback; replaced this with code that uses raycasting. Raycasting would have been faster, but for unfortunately also switchd to per-triangle tests rather than per-patch tests since it is possible (e.g., with Suzanne) to have patches that are both inside and outside the other shape. That can make it much slower in some cases, sadly.
2021-02-05Cleanup: correct spelling in commentsCampbell Barton
2021-01-30Fix T84465 Bevel Percent and Absolute when limit type is Weight.Howard Trickey
The previous fix to the width modes Percent and Absolute did not take into account that with limit mode Weight, the amount needs to be scaled by the bevel weight of the beveled edge in question. (Sometimes there are two beveled edges in question, in which case an average is used.)
2021-01-24Cleanup: spellingCampbell Barton
2021-01-20Cleanup: remove extra in trailing asteriskCampbell Barton
Comment blocks not conforming to convention.
2021-01-13Cleanup: spellingCampbell Barton
2020-12-14Fix T83725 Inconsistent vertex group between exact and fast boolean.Howard Trickey
This makes the exact boolean have zero weights for any vertex groups on any newly created vertices, which is what the fast solver does. The exact boolean solver was interpolating vertex data when interpolating loop data in newly created faces. Not sure why I chose that. The Fast boolean solver doesn't do that, so I stopped doing it too.
2020-12-05Add more timing hooks for boolean.Howard Trickey
2020-11-24Speedups for new boolean. Better hash function for verts.Howard Trickey
The existing hash function didn't work well with Set's method of masking to the lower bits, because many verts have zeros in the lower bits. Also, replaced VectorSet with Set for Vert deduping.
2020-11-17Merge branch 'blender-v2.91-release'Campbell Barton
2020-11-17BMesh: support for comparing loops when calculating face-groupsCampbell Barton
Add an optional callback to check source/destination loops for BM_mesh_calc_face_groups. This is needed so it can be used to calculate UV islands.
2020-11-12Merge branch 'blender-v2.91-release'Howard Trickey
2020-11-12Fix T80475, bad bevel: side vertex in bad plane in some cases.Howard Trickey
Needed a better normal to for plane to offset into when there are non in-plane edges between two beveled edges. It was using the vertex normal, which is just wrong. Differential Revision: https://developer.blender.org/D9508
2020-11-09Cleanup: Clang-tidy, inconsistent parameter nameAnkit Meel
readability-inconsistent-declaration-parameter-name
2020-11-09Cleanup: fix some clang tidy issuesJacques Lucke
2020-11-08Fix T81651, exact boolean modifier incorrect if operand hidden.Howard Trickey
The code was trying to ignore hidden geometry when doing boolean, which is correct when used as a tool, but not when a modifier. Added a "keep_hidden" argument to bmesh_boolean to distinguish the two cases. Also fixed a bug when the tool is used with hidden geometry that is attached to unhidden geometry that is deleted by the operation.
2020-11-08Fix T81651, exact boolean modifier incorrect if operand hidden.Howard Trickey
The code was trying to ignore hidden geometry when doing boolean, which is correct when used as a tool, but not when a modifier. Added a "keep_hidden" argument to bmesh_boolean to distinguish the two cases. Also fixed a bug when the tool is used with hidden geometry that is attached to unhidden geometry that is deleted by the operation.
2020-11-07Cleanup: Clang-tidy, modernize-concat-nested-namespacesAnkit Meel
2020-11-06Cleanup: Clang-Tidy modernize-use-nullptrSybren A. Stüvel
Replace `NULL` with `nullptr` in C++ code. No functional changes.
2020-11-06Cleanup: Use descriptive variable namesHans Goudey
2020-11-06Cleanup: use ELEM macroCampbell Barton
2020-11-03Cleanup: Use typedef for bevel angle kind enumHans Goudey
This makes debugging slightly easier, and makes the code slightly more explicit about its intentions.
2020-11-03Merge branch 'blender-v2.91-release'Hans Goudey
2020-11-03Fix T82120: Arc miter bevel creates miters on straight edgesHans Goudey
In some situations where two beveled edges were very close to in-line but not quite straight, bevel would build a miter when it shouldn't. The code that chose whether to use a miter at each vertex was slightly incorrect. For outer miters there is a check for 3 or more selected edges, but an inner miter can still be useful with only two beveled edges at a vertex, so we can't use that here. Instead I changed the check for in-line edges to run before determining whether the angle is reflex or not. The logic ends up a bit more straightforward as well. This doesn't completely remove the rather strange looking triangle vertex meshes at each corner, but it does make it stable when locations are slightly adjusted. The only other place this `edges_angle_kind` function was used is for profile=1.0 vertex meshes. I tested and made sure that still works well. Differential Revision: https://developer.blender.org/D9420
2020-10-27Cleanup: use over-line for doxy commentsCampbell Barton
Follow our code style for doxygen sections.
2020-10-24Fix T81884, clamping with percent, addendum.Howard Trickey
The previous fix forgot the case where there is an intermediate edge and everything isn't in one plane.
2020-10-24Fix T81884, clamping with percent, addendum.Howard Trickey
The previous fix forgot the case where there is an intermediate edge and everything isn't in one plane. Differential Revision: https://developer.blender.org/D9336
2020-10-19Spelling: Apart Versus A PartHarley Acheson
Corrects incorrect usages of the fragment 'apart of' when 'a part of' was required. Differential Revision: https://developer.blender.org/D9245 Reviewed by Campbell Barton
2020-10-19Spelling: Then Versus ThanHarley Acheson
Corrects incorrect usages of the words 'then' and 'than'. Differential Revision: https://developer.blender.org/D9246 Reviewed by Campbell Barton
2020-10-19Spelling: It's Versus ItsHarley Acheson
Corrects incorrect usage of contraction for 'it is', when possessive 'its' was required. Differential Revision: https://developer.blender.org/D9250 Reviewed by Campbell Barton
2020-10-19Silence an unused variable warning in bmesh_bevel.c.Howard Trickey
2020-10-19Cleanup: clang tidyJacques Lucke
2020-10-18Fix Bevel percent mode, and clamping for it too (T79898).Howard Trickey
The code for Bevel's percent (and absolute) modes were pretty bogus. It assumed, like the rest of the modes, that the offset lines are parallel to the beveled edge. Which is not true for these modes, though it accidentally works sometimes if the legs are equilength. Also the clamping code for those modes was completey wrong. It is too hard to really fix the clamping code for absolute mode, but it is a little better now. Percent mode clamping is fixed.
2020-10-10Cleanup: use C comments for descriptive textCampbell Barton
Follow our code style guide by using C-comments for text descriptions.
2020-09-30Cleanup: convert gforge task ID's to phabricator formatValentin
Cleanup old tracker task format to the new. e.g: [#34039] to T34039 Ref D8718
2020-09-13Apply patch D8816, from Zachary(AFWS) for collection boolean operand.Howard Trickey
Also added code so that exact solver does the whole collection at once. This patch allows users to use a collection (as an alternative to Object) for the boolean modifier operand, and therefore get rid of a long modifier stack.
2020-09-07Add a Self option to the Exact boolean modifier. Fixes T52425.Howard Trickey
With this option, self-intersections in either or both operands will be handled properly (if both sides are piecewise winding number constant, and maybe some other cases too). In the Boolean tool, this flag was there already but the code forced a unary operation in that case; this commit corrects it to make a binary operation. This flag makes the code slower, which is why it is an option and not an always-on thing.
2020-09-04Cleanup: Clang-Tidy readability-inconsistent-declaration-parameter-name fixSebastian Parborg
No functional changes