0d4cca6593
Fix edge/vert slide UV-correct & zero length edges
...
When calculating loop angle weighting, skip overlapping vertices.
2015-06-24 09:54:23 +10:00
d3cc7419a3
BMesh: add BM_edge_pair_share_face_by_len
2015-05-19 23:51:57 +10:00
3aa4a0e787
BMesh: add UV delimit for select-linked, dissolve
2015-05-16 12:21:31 +10:00
22bbd1c512
BMesh: improve rip tool /w mon-manifold verts
...
Can now rip from multiple fans (mixed single faces or larger regions)
Also add BM_vert_is_manifold_region which only checks if a vert has disconnected fans.
2015-05-05 07:22:35 +10:00
d33314393e
BMesh: use const for API calls
2015-04-26 17:19:51 +10:00
89f5a09ab4
Cleanup: use 8 space indent for multi-line args
2015-04-25 20:15:20 +10:00
690b90f1e2
BMesh: minor optimization counting adjacent data
...
add BM_***_count_is_over(), _count_is_equal()
Useful if we only want to know if the count is a smaller value.
2015-04-12 17:38:14 +10:00
7df60becb9
BMesh: Add extended BM_vert_calc_edge_angle that takes a fallback value
2015-03-06 18:45:00 +11:00
8cd106f12a
minor edits to last commit
2015-02-02 19:21:26 +11:00
64124ba904
BMesh: tool to ensure all faces are convex
...
Access from Mesh -> Cleanup
2015-02-02 09:23:44 +11:00
fd75796afe
cleanup: use const
2015-02-02 01:23:08 +11:00
bd00770715
Cleanup: consistent arg order in bmesh
2015-01-14 01:36:03 +11:00
aab4f2b762
cleanup: redundant casts & const cast correctness
2015-01-01 23:42:28 +11:00
591eb27efa
BMesh: check for loop side-of-loop & side-of-edge
2014-11-21 14:16:35 +01:00
1ddfe6676d
BMesh: shrink/fatten faces-normals in face mode
...
nice for solid-modeling, gives better results for partial selections.
2014-11-13 16:41:56 +01:00
b7174c9320
Fix connect-vertices failing for concave ngons
...
Also add:
- generic callback for bmesh elements.
- ability to pass an existing array to a bmesh operator.
2014-11-02 00:09:14 +01:00
eebeb55bf2
BMesh: use compiler attributes for queries, structure
2014-07-17 08:20:04 +10:00
58659fc207
BMesh: Add BM_vert_pair_share_face_check
...
Use to assert if BM_vert_splice is used incorrectly
2014-07-17 08:20:04 +10:00
e947dd8cd7
BMesh: add BM_vert_is_edge_pair(), faster then checking (BM_vert_edge_count(v) == 2)
2014-06-27 20:28:32 +10:00
bdf477d19a
BMesh: add check to BM_vert_pair_share_face to allow adjacent loops
...
Add BM_vert_pair_share_face_by_angle to avoid selecting concave splits.
2014-05-13 16:49:57 +10:00
caf8684b50
EditMesh: Support contracting the selection as well as extending
...
This allows for holding ctrl while switching from face->edge modes to
select an edge-ring.
2014-03-17 00:25:34 +11:00
04a902965e
BMesh optimize face splitting by taking loops rather then verts
...
- add BM_vert_pair_share_face
- add BM_loop_is_adjacent
- remove BM_verts_connect
2013-12-24 11:13:58 +11:00
63a2cc2ab7
BMesh API: make simple, low level functions inline
2013-12-23 16:03:07 +11:00
ab9fabdfc6
BMesh API: optionally pass fallback to BM_edge_calc_face_angle functions
2013-12-14 23:25:28 +11:00
6bdff7e2ad
fix [ #36481 ] When "Rip Edge" cannot be completed, Blender crashes weirdly
2013-08-19 10:00:17 +00:00
19d3e230e6
improved BM_face_copy_shared to copy from more possible connected loops and add filter function (not used yet).
2013-08-18 11:44:51 +00:00
1677758e45
new bmesh queries BM_face_exists_overlap, BM_face_exists_overlap_subset
...
the subset version of the function checks if any faces has all its verts in the given array.
also made some additions to linklist functions (arena and pool versions of append).
2013-08-16 13:02:34 +00:00
4770848871
code cleanup: bmesh use 'const' for query functions.
2013-08-03 16:37:23 +00:00
31761f5e5b
code cleanup: replace bmesh_radial_face_find -> BM_edge_in_face
2013-08-03 15:30:57 +00:00
cdc315a69b
bmesh optimization (noted as todo), avoid recalculating normal every time BM_face_legal_splits() runs,
...
assume normal is valid (assert when its not).
2013-07-29 06:04:09 +00:00
57ce6d1470
old todo, rotate around individual origins now supports connected face/edge islands.
...
previously this gave very odd/annoying results, see bug reports [#36134 ], [#35419 ]
2013-07-22 14:50:38 +00:00
7398c49776
add support for BM_mesh_calc_face_groups to use vertex connectivity (not currently used yet)
2013-07-22 08:12:50 +00:00
27734f5bec
fix/improve normal calculation, noticed when checking on the previous bugfix.
...
- normals depended on the meshes rotation, so you could rotate Suzzane and in some cases one of the eye normals would be flipped.
- normals depended on the meshes placement in relation to the meshes center, now find the outer most face by each face-island center.
2013-07-08 13:30:11 +00:00
0ff22044cd
Support for bridge tool subdivisions, smoothing and shape along the profile.
...
also added the underlying subdivision as a standalone operator in the edge menu, named: subdivide edge-ring.
http://www.graphicall.org/ftp/ideasman42/bridge_subd.png
2013-05-23 06:19:04 +00:00
c838b2d2a7
bmesh api: add 'is_boundary' attribute to verts.
2013-05-14 02:56:24 +00:00
0ffde4fae3
expose bmesh volume calculation to python api (use for print toolbox addon).
2013-05-07 00:00:32 +00:00
34f9932418
simple optimization, replace BM_face_other_edge_loop() with BM_loop_other_edge_loop() in situations where the loop is known this avoids a lookup.
2013-04-19 01:02:58 +00:00
5aee8b1487
py api, bmesh
...
- add BMEdge.calc_face_angle_signed() which gives a negative angle for for concave edges.
- add BMEdge.is_convex
2013-04-04 18:22:01 +00:00
32f63f6b4c
misc minor changes
...
- make it clear that navmesh visualize option only works in path mode.
- use 2 decimal places for motion-blur shutter speed (user request).
- use 'const' for some bmesh functions.
2013-03-26 01:46:12 +00:00
0488af00fe
fix for crash with laplacian smooth when unselected ngons were used, volume calculation assumed unselected face were not ngons.
...
- added convenience function BM_face_calc_tessellation() to get triangles from an ngon.
- expose volume function as BM_mesh_calc_volume().
2013-03-13 06:32:08 +00:00
4528405597
add BM_edge_is_contiguous(), check for python api.
2013-02-04 10:14:31 +00:00
1f21efdeac
fix [ #34073 ] Combined EdgeLoop slides weirdly on even try
...
concave check on co-linear edges could fail, avoid by using the loop-direction + face normal.
2013-02-03 06:09:29 +00:00
69585591d6
Correct fix for r54164, the testcase I was using worked but different edge slide examples didn't.
...
Edge slide needed to check for concave ngons too.
add BM_loop_is_convex() and expose to python too.
2013-01-29 03:25:47 +00:00
2b7db66edf
optimize BM_face_exists(), was doing a lot of redundant checks.
2013-01-14 18:37:58 +00:00
b27854bd47
use booleans for bmesh api.
2013-01-14 16:42:43 +00:00
827f9aa737
rename BM_edge_calc_squared_length -> BM_edge_calc_length_squared, matching len_v3, len_squared_v3
2012-12-31 02:40:15 +00:00
2d39e46414
Add BM_edge_calc_squared_length() query function
...
Same as BM_edge_calc_length(), but avoids square root for cases where
only comparison is needed.
2012-12-30 18:22:21 +00:00
bb26d80ad8
code cleanup and move alternate shell calculation method into its own function: BM_vert_calc_shell_factor_ex
2012-12-14 16:10:46 +00:00
cf2c459325
Fix #33285 : loop cut is not supposed to cut through triangles/ngons, but it
...
still happened when the loop would go all the way around the mesh with just one
triangle/ngon inbetween to close the loop.
2012-11-26 06:59:59 +00:00
cdc4037f0d
bmesh: BM_verts_in_face was using bmesh operator flag which is no longer ensured to be available,
...
use internal apiflag instead, Thanks to Nicholas Bishop for spotting.
also quiet some warnings.
2012-11-19 00:54:55 +00:00