Campbell Barton
fe766d9c7a
BMesh: don't alloc zero sized select elem array
2016-05-26 15:56:12 +10:00
Campbell Barton
ede742917a
Correct BM_iter_mesh_bitmap_from_filter return
2016-05-14 04:49:42 +10:00
Campbell Barton
689e45284b
Recent bmesh face-join caused regression (T48407)
2016-05-12 16:11:42 +10:00
Campbell Barton
a46d930d8b
BMesh: add BMW_ISLAND_MANIFOLD
...
An island walker that only walks over manifold edges.
2016-05-12 05:59:59 +10:00
Campbell Barton
f6948083e9
BMesh Island Walker: use direct loop access
2016-05-12 05:30:20 +10:00
Campbell Barton
135064c45e
BMesh: remove exception from face-join function
...
Callers need to check for NULL, if we need to know exact cause it could be a return arg.
2016-05-12 04:42:45 +10:00
Campbell Barton
1b003511be
BMesh: boundary walker, skip non-manifold loops
...
Instead of setting an exception, treat non-manifold edges as boundaries.
2016-05-12 04:39:01 +10:00
Campbell Barton
674bf2fe58
BMesh: add check for manifold loop
2016-05-12 04:37:36 +10:00
Campbell Barton
4a135ad2b7
BMesh: correct fix for face-join removing attached faces
2016-05-11 20:12:52 +10:00
Campbell Barton
e525a06800
BMesh: only remove loose geometry when joining faces
...
Joining faces could remove faces that happened to share an edge that would normally be removed.
2016-05-11 02:47:38 +10:00
Campbell Barton
e0e7d94f79
Fix error introduced by removing faces before executing bridge
...
Commit 86abddc9 , caused an error when the face-region included boundary edges.
Since removing the faces first, caused the edges along the boundaries to be removed.
Add support for deleting faces and internal edges, that keeps boundaries.
2016-05-09 16:21:00 +10:00
Campbell Barton
bc1a7d9283
Cleanup: warnings
...
Values set but not used
2016-05-06 16:49:25 +10:00
Campbell Barton
4aaafcbc45
Fix for fix, sorry for the noise
2016-05-06 05:46:07 +10:00
Campbell Barton
2812a8f7eb
Missed last commit
2016-05-06 05:42:33 +10:00
Campbell Barton
7122b05ac3
Correct own mistake int recent transform API edits
...
Need to return number of enabled elements.
2016-05-06 05:40:07 +10:00
Germano Cavalcante
0b5a0d8412
Transform/Snap: EditMesh/BKE_bvhutils API improvements
...
Separate the creation of trees from EditMesh from the creation of trees from DerivedMesh.
This was meant to simplify the API, but didn't work out so well.
`bvhtree_from_mesh_*` actually is working as `bvhtree_from_derivedmesh_*`.
This is inconsistent with the trees created from EditMesh. Since for create them does not use the DerivedMesh.
In such cases the dm is being used only to cache the tree in the struct DerivedMesh. What is immediately released once
bvhtree is being used in functions that change(tag) the DM cleaning the cache.
- Use a filter function so users of SnapObjectContext can define how edit-mesh elements are handled.
- Remove em_evil.
- bvhtree of EditMesh is now really cached in the snap functions.
- Code becomes organized and easier to maintain.
This is an important patch for future improvements in snapping functions.
2016-05-06 05:01:51 +10:00
Campbell Barton
e30f0427a5
Fix error in BM_face_exists_overlap_subset
...
Was re-using loop index, thanks to @bzztploink for spotting!
2016-05-05 01:35:09 +10:00
Campbell Barton
6d0cae56e8
Fix T48290: Hook fails after deleting geometry
...
Now CD_SHAPEKEY_INDEX customdata is stored in edit-mode when hooks and vertex parents are used.
This also fixes a bug where undo would loose key-index data.
Move to structs for BM_mesh_bm_to/from_me to avoid passing many argument, which mostly aren't used.
2016-04-29 23:39:50 +10:00
Campbell Barton
b5ce2bbef7
BMesh: when multiple vertices have the same key-index, use the first
...
Simple error case where many vertices share an original index,
now use the first match instead of the last.
2016-04-29 21:52:09 +10:00
Campbell Barton
d3344ca7b1
Minor optimization to bmesh shape key conversion
...
Avoid linked linked loop and custom-data lookups per vertex,
use a table of shape-keys with array offsets instead.
2016-04-29 15:02:04 +10:00
Campbell Barton
83b5f0268e
Fix T48012: Knife Project crash
2016-04-01 06:27:35 +11:00
Campbell Barton
2683dd8b93
Docs: add missing bmesh.ops descriptions
2016-03-20 19:40:03 +11:00
Sergey Sharybin
d042962025
Cleanup some warnings
2016-03-15 14:16:16 +05:00
Campbell Barton
b9ae96dc12
Cleanup: move MDisps flipping to own function
2016-03-14 15:33:54 +11:00
Campbell Barton
66043cc6c1
Fix T47788: Symmetrize flips multi-res data
...
Symmetrize was unusable with multi-res data,
add an option for the bmesh operator not to flip the multi-res depth.
2016-03-14 14:21:16 +11:00
Campbell Barton
0bcbbb1ee3
Fix T47749: Crash subdividing wire edge w/ mdisps
2016-03-11 10:32:56 +11:00
Campbell Barton
5fd0c1ed3f
BMesh: avoid assert dissolving degenerate faces
...
For dissolving 2-sided faces, theres no need to check they are valid before removal.
2016-03-06 17:25:56 +11:00
Campbell Barton
4e500101a7
Cleanup: quiet -Wcomma, cast to void where needed
2016-03-05 09:16:12 +11:00
Mike Erwin
a1d7f67d81
cleanup: spelling / typos
...
no functional changes
2016-01-28 00:30:50 -05:00
Campbell Barton
f5604af464
Cleanup: use BM_mesh_* prefix for BMesh functions
2016-01-14 13:00:11 +11:00
Bastien Montagne
c6c223ade6
Fix T47164: [Scene.raycast] - True result when it should be False.
...
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).
2016-01-12 10:09:00 +01:00
Campbell Barton
0ded953eea
Cleanup: warning/spelling
2016-01-09 22:56:43 +11:00
Campbell Barton
3afa72b6c7
BMesh: BM_loop_share_edge_check utility func
2015-12-27 22:39:22 +11:00
Campbell Barton
0d7d317755
BMesh: add checks for duplicates in a face
...
These could go un-noticed, causing errors later on.
2015-12-26 15:34:55 +11:00
Campbell Barton
77c3ecf88c
BMesh: check at least 2 edges in each loops vert
...
Also no need to check twice
2015-12-26 15:34:55 +11:00
Campbell Barton
5cd1b530c8
Cleanup: use enum for bmesh_elem_check
2015-12-25 02:10:00 +11:00
Campbell Barton
4a356d767b
BMesh: BM_verts_from_edges utility function
2015-12-24 20:30:02 +11:00
Campbell Barton
6732da8340
Fix weld edges into faces - eternal loop
...
Would happen with complex edge-nets mixed with faces.
2015-12-24 03:36:00 +11:00
Campbell Barton
44b593ae2d
Add BM_vert_edge_pair utility function
2015-12-23 16:08:23 +11:00
Campbell Barton
b51f730b0c
Fix error in BM_vert_is_edge_pair
...
Returned true for verts with a single edge.
2015-12-23 16:08:20 +11:00
Campbell Barton
a9c881f6a3
BMesh: store stackdepth as an index
...
Avoids -1 all over.
2015-12-22 16:41:01 +11:00
Campbell Barton
b6a49eb949
BMesh: add BM_face_share_vert_check/count
2015-12-17 18:06:05 +11:00
Campbell Barton
d7723df846
BMesh: partial-connection could make duplicate edges
...
Avoiding to make duplicate edges is too involved, do a remove-duplicates pass at the end instead.
2015-12-17 18:03:46 +11:00
Campbell Barton
88191f7fa3
BMesh: support connecting single-edge island links
...
Handle these cases by temporarily disconnecting the single links to ensure isolated islands,
then link back up after.
2015-12-17 05:13:57 +11:00
Campbell Barton
8b1b320c9f
BMesh: utility function to split off wire edges
2015-12-17 05:02:14 +11:00
Campbell Barton
189032c724
Correct error in last boolean commit
...
Side was flipped
2015-12-12 13:15:09 +11:00
Campbell Barton
8cd7b42877
BMesh: Add option to use BMesh boolean modifier
...
This uses a bmesh-intersection, BLI_kdtree and watertight intersections to perform boolean operations.
For now keep both BMesh and Carve booleans usable at once for testing & bug reports,
however we plan to phase out Carve by next release.
2015-12-11 20:24:39 +11:00
Campbell Barton
d70e0b6654
BMesh: Boolean as an edit-mode tool
...
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.
2015-12-11 17:54:42 +11:00
Campbell Barton
9f3ed82f35
Correct error in recent commit w/ hole-filling
...
edge-groups weren't being sorted with 2d-coords applied.
2015-12-11 16:18:24 +11:00
Campbell Barton
c593855b29
BMesh: hole support for intersect tool
...
Support cutting many outlines into a single face (creating edges between isolated regions).
2015-12-11 12:01:22 +11:00