Commit Graph

793 Commits

Author SHA1 Message Date
Campbell Barton
ae0e356de6 improve beauty-fill tool for non-flat triangles.
Project the triangle pair into 2d coords before measuring.

before/after - http://www.graphicall.org/ftp/ideasman42/beauty_fill_fix.png

note: I committed this r54403 but it caused eternal looping so I reverted for 2.66 release.
ran extensive tests and its not giving problems so re-applying this improvement.
2013-03-26 01:49:55 +00:00
Campbell Barton
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
Campbell Barton
0eee4021c9 fix [#34603] ALT-F fails, freezes, CPU=100%
The way beauty fill was working was too fragile and prone to eternal loops,
Solution used is to is to store previous states and ensure edges don't get rotated back into those.

Also added an optimization to avoid testing the same edge rotation many times - using edge tags to only re-test edge rotations around areas that have been modified.
2013-03-26 00:29:57 +00:00
Campbell Barton
f9b1494158 internal changes to beautify fill, use an array of edges that can be rotated, rather then looping over all edges each time. 2013-03-25 23:21:16 +00:00
Campbell Barton
6f9f1399a0 code cleanup: operator headers 2013-03-25 22:40:11 +00:00
Campbell Barton
be780cb4a6 code cleanup: move beautify into its own file (more changes coming) 2013-03-25 22:04:12 +00:00
Campbell Barton
1b4c9e1ad4 beautify fill: skip testing invalid cases (2 triangles that _don't_ have 4 unique verts between them). 2013-03-25 04:48:30 +00:00
Campbell Barton
e1a54214bb code cleanup:
- remove unused defines.
- quiet some shadow warnings.
- bevel, ifdef out some asserts that are too common.
- style
2013-03-25 02:41:30 +00:00
Campbell Barton
dad7afa1af code cleanup: remove double call to BKE_node_instance_key(), rename ruler (lots of tools are 3d :)), and redundant assignment. 2013-03-21 14:16:55 +00:00
Campbell Barton
655ed9cc7f style cleanup 2013-03-18 11:44:56 +00:00
Campbell Barton
3dababa7ec code cleanup: name mesh functions more consistently, also use bools for mesh args. 2013-03-17 19:55:10 +00:00
Campbell Barton
0d0291f6e1 code cleanup: incorrect sized array args, remove some redundant code. 2013-03-17 10:26:23 +00:00
Campbell Barton
baf3bb37a9 - ghost-sdl builds again.
- without python builds without warnings.
- replace MAXFLOAT -> FLT_MAX in some areas, MAXFLOAT overflows (lager then float range).
- add cmake option WITH_GCC_MUDFLAP to enable libmudflap use.
2013-03-16 20:49:46 +00:00
Campbell Barton
7ec47aa864 code cleanup: shadowing 2013-03-16 14:33:32 +00:00
Campbell Barton
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
Campbell Barton
db77fdc6ff fix for own mistake in using alloca in a loop, replace with BLI_buffer 2013-03-16 00:41:32 +00:00
Campbell Barton
d9c9209608 code cleanup: quiet some -Wshadow warnings, mix of obvious mistakes and harmless global/local naming conflict. 2013-03-15 22:55:10 +00:00
Campbell Barton
40bfce6616 use bool for knife, also scons tab/space mix. 2013-03-15 19:00:21 +00:00
Campbell Barton
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
Campbell Barton
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
Howard Trickey
604bdb7f45 Fix bevel modifier bug #34611, limit bevel amount needed.
This is a quick fix that perhaps overestimates the point
of first geometry collision, but at least for now it should
allow models that used the old modifier and a too-big
bevel amount to not look awful.

The correct solution to this problem is much more involved
and I'll get to it later.
2013-03-13 14:08:12 +00:00
Campbell Barton
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
Campbell Barton
56771becd0 code cleanup: remove bmesh subdivide header, all definitions can be included in bmo_subdivide.c.
also only initialize random numbers when fractal option is set.
2013-03-13 05:33:23 +00:00
Campbell Barton
ee3d910f8f code cleanup: quiet struct gcc warnings, also use more conventional names for bmesh dissolve. 2013-03-12 08:50:02 +00:00
Campbell Barton
8661e820f9 bmesh: dissolve, avoid unnecessary loop in test_extra_verts(), also minor code cleanup. 2013-03-12 05:48:30 +00:00
Campbell Barton
539d7d460d bmesh: maintain active face when dissolving. 2013-03-12 05:36:43 +00:00
Campbell Barton
660be3da39 use gcc warning -Wredundant-decls, exposes some odd/duplicate declarations which have been removed. 2013-03-11 20:27:38 +00:00
Campbell Barton
f9f7070336 add STREQ macro (commonly used macro like CLAMP, MAX2, STRINGIFY). Use for some areas of the python api, bmesh. 2013-03-10 06:18:03 +00:00
Campbell Barton
347e2b6cb0 code cleanup: make bmesh var names more consistent 2013-03-09 17:12:24 +00:00
Campbell Barton
06b3d4f7bb code cleanup:
- use BM_ITER_* macros in more places.
- avoid sign int conversion when calling EDBM_backbuf_check()
2013-03-09 16:19:07 +00:00
Campbell Barton
c56b39c0e4 bmesh operator 'contextual_create' wasn't flagging single faces that were created (caused glitch in some cases with recent create-select functionality). 2013-03-09 14:42:10 +00:00
Campbell Barton
6a59f71d04 bmesh: face creation from a single selected vertex/edge, now extends the selection along wire/boundary edges and makes a face.
Selection is specifically so you can continuously fill in holes by tapping the Fkey.

Similar functionality to the F2 addon, however the mouse location isn't used.
2013-03-09 14:14:20 +00:00
Campbell Barton
221a383366 use 'bool' for BLI_/BKE_ functions. 2013-03-09 05:35:49 +00:00
Campbell Barton
ddddb7bab1 code cleanup: favor braces when blocks have mixed brace use. 2013-03-09 03:46:30 +00:00
Campbell Barton
c36f20a7d2 style cleanup 2013-03-08 04:00:06 +00:00
Campbell Barton
b9554c86dc fix null pointer dereference in BM_edge_is_contiguous() (own code). 2013-03-08 03:07:32 +00:00
Campbell Barton
0d5b028d43 patch [#34103] use boolean in path functions and add comments.
path_util_1.patch from Lawrence D'Oliveiro (ldo)
2013-03-04 19:27:51 +00:00
Gaia Clary
d17a8639e4 Added typecasts to keep c++ from reporting errors 2013-03-02 12:16:23 +00:00
Campbell Barton
0ac07404ba style cleanup: braces with multi-line statements, also add some comments. 2013-03-01 14:47:06 +00:00
Howard Trickey
0a6e8a41b9 Enable new bevel tool code in bevel modifier.
Now modifier takes a segments parameter.
Bevel edge weights will multiply the overall amount.
For vertex-only, you can give a vertex group name,
and the weights in that will multiply the overall amount.
2013-02-21 17:29:35 +00:00
Campbell Barton
ac6e44887e code cleanup: remove references to old bevel code (which has been removed for a while) 2013-02-21 17:13:25 +00:00
Campbell Barton
f6f0ec6dfc increase openmp limit for release so low poly meshes don't use openmp threads (which can be slow) 2013-02-20 15:34:31 +00:00
Sergey Sharybin
fdb25a1d27 Fix #34249: collapse edges crash blender with a specific mesh
OpenMP block was using shared variable, which for sure leads to
threading issues.
2013-02-19 09:51:32 +00:00
Campbell Barton
098e4234b1 minor change to own recent commit with transform fcurve centers and some style edits and typo corrections. 2013-02-19 02:30:02 +00:00
Campbell Barton
b6a60fc6b8 revert own commit, caused regression - hanging on triangulation [#34214].
Postponing further changes for now, too risky before release when unexpected cases can cause eternal loop.
2013-02-13 03:20:30 +00:00
Campbell Barton
2005f7c6c0 style cleanup: also some typos 2013-02-11 00:49:00 +00:00
Campbell Barton
555bcc3298 add beauty option for triangle fill since you might want to use the initial scanfill result. 2013-02-09 15:49:20 +00:00
Campbell Barton
5e05d67436 improve beauty-fill tool for non-flat triangles.
Project the triangle pair into 2d coords before measuring.

before/after - http://www.graphicall.org/ftp/ideasman42/beauty_fill_fix.png
2013-02-09 08:16:13 +00:00
Campbell Barton
d03befd0db fix for is_quad_convex_v3(), getting the dominant axis wasn't accurate enough in some cases and would make beauty fill fail.
now rotate the coords before calculation.
2013-02-09 07:59:56 +00:00
Campbell Barton
c30fb009cc problem with own changes to triabgulate: calling beauty fill directly would re-allocate the faces which mean't triangulates output slots pointers became invalid. (noticed when using from py api) 2013-02-06 15:57:12 +00:00