Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
Need to use the 'use_partial_connect' option in island connect,
so changed signatures of various functions to pass that into and
then down from BM_mesh_intersect (making true for intersect, false
for boolean).
Then fix bm_face_split_edgenet_partial_connect to work when
input edges are not necessarily wire, but at least not in the
face they are being connected in. That caused generalization
of core BM_vert_separate_hflag_wire (which is only used in
this one place in all Blender).
|
|
|
|
- When returning the number of items in a collection use BLI_*_len()
- Keep _size() for size in bytes.
- Keep _count() for data structures that don't store length
(hint this isn't a simple getter).
See P611 to apply instead of manually resolving conflicts.
|
|
|
|
This allows to have different macro headers without them sharing
similar names to regular C modules.
|
|
|
|
no functional changes.
|
|
Conflicts:
source/blender/editors/space_nla/nla_draw.c
source/blender/editors/space_view3d/view3d_draw.c
|
|
|
|
Eliminating this chunk of legacy GL as part of T49043.
We can introduce some sort of "debug plate" to fill this need in the future.
|
|
For simple cases bitmasks were OK, but didnt work for vert/edge, vert/edge tests.
Tag verts instead, makes logic easier to follow and gives minor speedup.
|
|
In rare cases intersect would attempt to add edges with the same vertex twice
from edge-vert / edge-edge intersections.
Solve by checking for duplicates when creating vertex-array for these types of intersections
(always under 3x comparisons, so not much overhead).
|
|
|
|
Its important to add tri-edge intersections from both sides.
|
|
|
|
We cannot use FLT_MAX as initi distance for raycast...
Renamed TRANSFORM_DIST_MAX_RAY to BVH_RAYCAST_DIST_MAX, moved it into BLI_kdopbvh,
and use in RNA raycast callbacks (and all other places using that API).
|
|
Handle these cases by temporarily disconnecting the single links to ensure isolated islands,
then link back up after.
|
|
Distinguish between line / line_segment
|
|
Possible a boolean operation edits the mesh while keeping the same number of faces.
|
|
Was selecting these edges after applying boolean,
which isnt useful since selection is supposed to be along the cuts.
|
|
|
|
For the intersect tool this made sense, but booleans can use cuts which overlap edges exactly.
|
|
Side was flipped
|
|
|
|
Needed for editmode use
|
|
Works much the same as intersect operator,
expose as a new operator since for users its quite different.
Access from face menu.
Internally, this adds boolean args to BM_mesh_intersect function.
|
|
Support cutting many outlines into a single face (creating edges between isolated regions).
|
|
In practice this hardly ever happened.
|
|
Avoid double lookup on insertion ghash
|
|
|
|
We had too many warnings lately... was awaiting that someone would kill them - didn't happen -> goes to my commit ratio! :P
|
|
The callback checks if 2 nodes intersect (not just their AABB).
Advantages:
- theres no need to allocate overlaps which are later ignored.
- expensive intersection tests will run multi-threaded.
Currently only used for Python API.
|
|
Did quite a few checks not to tag bad splits (which wasn't working perfectly)
Instead rely on BM_vert_separate not to create invalid geometry.
|
|
|
|
|
|
Splitting non-manifold edges could produce duplicate edges.
|
|
|
|
|
|
BLI_array.h is for resizing array macros, where as array_utils can operate on any arrays.
|
|
|
|
|
|
|
|
|
|
Sorting verts along an edge wasn't working reliably.
|
|
|
|
Reported and patch by jensverwiebe (jens verwiebe).
|
|
Modeling tool to cut intersections into geometry (like boolean, without calculating inside/outside).
Faces are split along intersections, leaving new edges selected.
Access from Face menu.
|