6bdff7e2ad
fix [ #36481 ] When "Rip Edge" cannot be completed, Blender crashes weirdly
2013-08-19 10:00:17 +00:00
47c23750e8
style cleanup: indent/whitespace
2013-08-19 01:48:44 +00:00
763bce4d64
bmesh api internal changes
...
- optimize BM_face_exists_overlap_subset(), dont check faces smaller then the vert array, don't initialize overlap flag unless its needed.
- BM_face_exists_overlap had incorrect check (currently function is unused so no harm done)
2013-08-17 13:32:56 +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
723eaa36ce
fix own error in BM_mesh_calc_edge_groups() was clearning wrong dirty-index flag.
...
also remove unused transform defines.
2013-08-14 08:14:50 +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
4982f200fa
move alloca define into its own header since its not related to BLI_array
2013-07-28 10:38:25 +00:00
2d2f5f59d7
dyn-topo: maintain materials for new faces.
...
also minor optimization for BM_edge_in_face(), check edges radial loops rather then the faces edges
since normally there are 0-2 faces attached to an edge compared to 3+ edges in a face.
2013-07-24 19:58:16 +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
7db1d6556d
code cleanup: add break statements in switch ()'s, (even at the last case).
2013-07-21 08:16:37 +00:00
14ab39c5e0
minor improvements
...
- calc normals only check flag when needed.
- keymap, dont get name unless its needed.
- keymap, avoid property lookup.
- idprop debug print, include pointer, helpful for troubleshooting.
2013-07-09 00:13:17 +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
73ee226647
fix for incorrect edge slide interpolation at loop endpoings with ngons.
2013-04-19 10:04:23 +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
a7b83837db
fix for crash when using BM_face_calc_tessellation(), its not ensured that all tris will be filled in.
...
(effected knife project and laplacian smooth).
2013-03-16 14:18:32 +00:00
87919be4f6
fix for own bad mistake using alloca in a loop, also knife project wasnt selecting correctly.
2013-03-15 13:18:35 +00:00
25e579c631
fix for minor glitch in recent addition to create faces from partial selections.
...
BM_edge_exists() would return an edge if both verts passed match, now assert instead.
2013-03-13 14:54:47 +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
347e2b6cb0
code cleanup: make bmesh var names more consistent
2013-03-09 17:12:24 +00:00
b9554c86dc
fix null pointer dereference in BM_edge_is_contiguous() (own code).
2013-03-08 03:07:32 +00:00
2005f7c6c0
style cleanup: also some typos
2013-02-11 00:49:00 +00:00
4528405597
add BM_edge_is_contiguous(), check for python api.
2013-02-04 10:14:31 +00:00
0510735f4e
fix BM_loop_calc_face_tangent for concave face corners, caused a bug in wire-frame operator.
2013-02-03 09:44:37 +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
71730f26d7
replace BLI_array_fixedstack_declare with() new macro BLI_array_alloca() which uses stack memory always and doesn't need to be freed explicitly.
2012-12-11 15:10:19 +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
0bfc92ff8e
BM_iter_as_arrayN() can now take an optional existing array argument, useful to avoid many small malloc's by passing a fixes size stack variable instead.
...
Will give some speedup to edge-split modifier and bevel.
2012-11-12 05:53:43 +00:00
d22c5d4341
update to python api Gotcha docs to reflect changes to the api. also add a section about modifying linked library data.
2012-11-12 03:23:47 +00:00
89845f280f
fix [ #33142 ] Ctrl LMB higher selection mode in edit mode sometimes selects extra elements
2012-11-11 23:33:59 +00:00
6cdb555e6e
bmesh refactor - rename some of the BM_****_share_****_count() functions to BM_***_share_check()
...
some of these were only returning a boolean, others returned a count even though only a boolean was needed.
split some of the functions in two as well where check/count are both needed.
2012-11-09 14:52:05 +00:00
eff734203f
add fallbacks for BM_vert_calc_shell_factor() and BM_vert_calc_mean_tagged_edge_length() to avoid divide by zero when a vertex has no connected geometry.
...
also style cleanup.
2012-11-09 08:28:14 +00:00
617a73c573
code cleanup: unused defines & some formatting.
2012-11-08 06:46:10 +00:00
3d7104c37a
correct assertion
2012-10-30 06:25:23 +00:00
656b884387
fix for extruding edges giving incorrect (swapped) loop data for new faces.
2012-10-28 16:17:20 +00:00
d20128bbbc
fix for BM_edge_other_loop() not working right (own error in recent commit), and add new function BM_vert_step_fan_loop() for stepping around the loops of a face fan with manifold edges.
2012-10-20 16:48:04 +00:00