Commit Graph

302 Commits

Author SHA1 Message Date
Campbell Barton
620d674b85 fix error in recently added symmetrize rewrite, verts already on the aligned to the mirror-plane would not be welded. 2013-08-23 13:27:44 +00:00
Campbell Barton
6f4b79d5af edits to new symmetrize tool
- snap axis-aligned verts to the center.
- expose the threshold for detecting if a vertex is on the axis.
2013-08-23 05:32:43 +00:00
Campbell Barton
77fa1aaab5 modify closest_to_plane_v3 not to use point-normal form. 2013-08-23 05:15:12 +00:00
Campbell Barton
6cba2b8d73 move bmesh tools into their own include,
changes to tool args would rebuild far too many files and these are mainly by modifiers outside of bmesh.
2013-08-23 04:22:07 +00:00
Campbell Barton
e97f979f73 new bmesh operator bisect_plane, cuts a mesh in half, takes a user defined plane as an argument, handles concave ngons which need multiple cuts. 2013-08-22 17:56:08 +00:00
Campbell Barton
9470754fd3 bmesh api cleanup, face creation args now accept an example face (as with vertex and edge),
also replace BM_face_create_quad_tri_v with BM_face_create_verts
2013-08-21 07:51:47 +00:00
Campbell Barton
8937a8b839 use BM_CREATE_NOP arg rather then zero, with pointer and bool args in either side in some cases it gets a bit confusing.
also correct edge-rotate where bool->flag conversion worked by accident.
2013-08-21 05:39:46 +00:00
Campbell Barton
6bdff7e2ad fix [#36481] When "Rip Edge" cannot be completed, Blender crashes weirdly 2013-08-19 10:00:17 +00:00
Campbell Barton
2060bb114a correct uninitialized var, worked by accident. 2013-08-19 00:39:28 +00:00
Campbell Barton
c5e14f62a6 bmesh improvements to face creation.
* fill-holes operator now takes advantage of new edge-net fill, works in many more cases then it did before.

* face-create that uses edge-net now initializes the normals based on surrounding geometry, only running normal calculation if there are no connected faces for a reference.
2013-08-18 15:14:55 +00:00
Brecht Van Lommel
a2541508ac Fix a few compiler warnings reported by clang. 2013-08-18 14:15:51 +00:00
Campbell Barton
5fafc222f0 style cleanup 2013-08-17 08:21:40 +00:00
Campbell Barton
ef8ea14f45 rewrite edgenet fill bmesh operator.
previous code created faces with mixed face-flipping and could get very slow,
test with ~60,000 edges here hung my system for over 2min (didnt wait for it to finish), new code executes in about 1 second.

new code doesn't attempt to flip faces correctly, its quite involved to do so, especially when the new faces are not created adjacent to eachother.
so simpler to calculate normals afterwards.
2013-08-16 14:18:54 +00:00
Campbell Barton
7d67261a7b fix bug with editmesh rip, active edge could be left on the unselected side of the edge loops. 2013-08-14 09:14:33 +00:00
Campbell Barton
49411a6e37 fix own regression, rip tool wasn't handling selection. 2013-08-13 01:00:07 +00:00
Campbell Barton
00b39c4e5b code cleanup: more confusion with 0/NULL/false 2013-08-07 03:55:21 +00:00
Campbell Barton
26f52fb441 bmesh: improve limited dissolve result
iteratively dissolve the best edge/vert, updating the heap as the dissolve runs.
2013-08-03 21:01:42 +00:00
Campbell Barton
4982f200fa move alloca define into its own header since its not related to BLI_array 2013-07-28 10:38:25 +00:00
Campbell Barton
3270031660 correct problem with limited-dissolve not leaving the selection correctly (caused by BM_elem_attrs_copy no longer dealing with selection) 2013-07-25 06:05:44 +00:00
Campbell Barton
e50c37d90f code cleanup: remove deprecated bevel code (unused since 2.64) 2013-07-23 14:28:19 +00:00
Howard Trickey
b2a0255539 Fix bevel when there is a gap in faces around vertex.
Fixes bug #35927 (Vertex Bevel bug) but even edge
bevel didn't work on the example there. Problem
was with forming the proper ccw ordering of edges
around the bevel.
Also appears to fix bug #35582 (Bevel, weird results).
2013-07-11 13:29:52 +00:00
Howard Trickey
0a006cce9c Fix bevel bugs 34445 and 35109, copying over edge data.
The bugs were about not respecting edge smoothness and
not respecting edge crease.  This change copies the
edge attributes from a beveled edge to the two outside
edges of the bevel.
2013-07-08 13:02:21 +00:00
Howard Trickey
2e7776b95a Fix bevel crash bug 35990. Sometimes no face to interpolate from. 2013-07-03 20:52:31 +00:00
Campbell Barton
4848ca09c0 style cleanup 2013-07-02 20:36:52 +00:00
Howard Trickey
994a937a97 Fix Bevel bug #34321, making bevel keep UVs contiguous when possible. 2013-07-02 13:18:56 +00:00
Campbell Barton
fad1da062d correct typos in comments. 2013-06-25 22:58:23 +00:00
Campbell Barton
998101763a correct for own regressions when refactoring select-path, was using heap popmin incorrectly. 2013-06-19 19:59:49 +00:00
Campbell Barton
48fd740096 edit-mesh improvements to select shortest path
- Ctrl+RMB only worked for edges & faces
- Menu item 'Select Shortest Path' only worked for vertices.

Now Ctrl+RMB works for vertices and the menu item works for verts/edges/faces (depending on the current selection).
2013-06-04 01:23:51 +00:00
Campbell Barton
790e9d9fa0 fix [#35311] Planar Decimate / Limited Dissolve fails to merge some adjacent faces
optionally limit by face flipping, also added support to delimit by material and edge crease.
2013-06-03 05:07:16 +00:00
Campbell Barton
5e347c4f71 code cleanup: typos 2013-05-26 12:02:29 +00:00
Campbell Barton
7222d654b2 code cleanup: typo and stop manpage turning '$' into italic. 2013-05-25 02:21:50 +00:00
Howard Trickey
834c6ca316 Fix bug #35450, bevel make large spikes sometimes.
Needed special case for when beveled edge is
antiparallel to an adjacent edge.
2013-05-24 13:13:05 +00:00
Campbell Barton
1fe7657b4f code cleanup: avoid unneeded normalizations when joining tris -> quads, also correct assert with edge-collapse-decimate. 2013-04-21 13:10:05 +00:00
Campbell Barton
6da961775f code cleanup: rename BKE_tessmesh -> BKE_editmesh, rename EditDerivedBMesh.tc -> em. ('tc' is odd name which isn't used elsewhere). 2013-04-13 20:31:52 +00:00
Campbell Barton
e8d532f1dd style cleanup 2013-03-31 03:28:46 +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
7ec47aa864 code cleanup: shadowing 2013-03-16 14:33:32 +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
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
347e2b6cb0 code cleanup: make bmesh var names more consistent 2013-03-09 17:12:24 +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
2005f7c6c0 style cleanup: also some typos 2013-02-11 00:49:00 +00:00
Campbell Barton
e7cead0994 own recent change to triangulate bmesh operator stopped filling in mapping slot 'face_map.out', not used by blender its self but useful for scripts, enable this again. 2013-02-05 11:30:50 +00:00
Campbell Barton
9d713688ba code cleanup: warnings 2013-02-04 16:20:39 +00:00
Campbell Barton
518bfbb1c9 style cleanup 2013-02-02 04:58:03 +00:00
Howard Trickey
7d3c6b2760 Fix bevel bug #33906, unwanted distortion with skewed meshes.
The code for making a rounded profile edge at a vertex needed
a special case for when that profile is on the third face
(the one not touched by the beveled edge) when only one edge
is beveled and the three faces are not orthogonal.
2013-01-31 12:54:06 +00:00
Campbell Barton
4e7b18876c style cleanup 2013-01-30 21:17:38 +00:00
Campbell Barton
f02f491ed0 correction to r54188, also don't attempt to triangulate triangles. 2013-01-29 20:49:40 +00:00
Campbell Barton
2b875a947f skip calculating the normal for each face when triangulating, all callers make sure its valid. also remove some commented code (more then one generation of bmesh old). 2013-01-29 15:05:23 +00:00
Campbell Barton
37489d71c7 Triangulate modifier no longer uses bmesh operator api call, instead add a BM_mesh_triangulate() function. Gives ~2x speedup in my tests on an optimized build. 2013-01-29 10:31:05 +00:00