Commit Graph

1116 Commits

Author SHA1 Message Date
Campbell Barton
69cdddd4cf Fix error in recent check for duplicate tris 2015-11-25 11:28:25 +11:00
Campbell Barton
daa90de3fd Cleanup: shadowing (bmesh) 2015-11-23 17:40:10 +11:00
Campbell Barton
86cb772eb7 Cleanup: variable names, ascii diagram 2015-11-20 08:22:44 +11:00
Campbell Barton
410ca0ed92 Recent change to bmesh_jekv caused assert
Note that the mesh was valid, this just stops the radial check from failing.
2015-11-20 08:22:44 +11:00
Bastien Montagne
29d9140fce Fix T46804: Crash using triangulate modifier on a specific mesh.
Issues was again the ugly hack of swapping last generated tri with original face
we use in BMesh triangulate code - here it could lead in some rare case to have
invalid face pointer in doubles list.
2015-11-19 22:02:22 +01:00
Bastien Montagne
8bdb884289 Fix related to T46804 - BMesh validate code would use invalid pointers after checking them!
Note that this does not fix the issue reported in T46804, juts makes it crash later down in code...
2015-11-19 20:42:46 +01:00
Campbell Barton
b1c4d21e2e BMesh: support splitting edge-loops when expanding 2015-11-19 22:52:17 +11:00
Campbell Barton
9c044b4773 BMesh: new API call to collapse an edge
Existing collapse functions were strict regarding the number of verts sharing an edge.
BM_edge_collapse allows any edge to be passed in without first having to manipulate geometry.
2015-11-19 22:52:17 +11:00
Campbell Barton
93fb07fbd5 BMesh: bmesh_jekv check for degenerate faces
Move check for degenerate faces from BM_vert_collapse_faces into bmesh_jekv.
2015-11-19 22:52:17 +11:00
Campbell Barton
b8c40d47e0 Cleanup: remove unused bmesh iterator 2015-11-19 22:13:35 +11:00
Campbell Barton
7a09d15ade Cleanup: comments/style 2015-11-06 05:34:05 +11:00
Campbell Barton
0f769afe07 Fix T46692: Triangulate creates duplicate faces
Caused a crash in dyntopo.
2015-11-06 01:13:23 +11:00
Campbell Barton
ebb2a78c7a Error in last commit 2015-11-05 22:25:09 +11:00
Campbell Barton
3863660c37 Fix face creation using incorrect loop-custom-data
Custom-data on newly created face data was often rotated.

Now the API doesn't copy data from adjacent loops when creating faces.
Most functions were already overwriting this anyway.

Since such decisions are better made at a higher level, now it's the responsibility of the caller.
2015-11-05 20:19:09 +11:00
Campbell Barton
534c0af4d3 Fix BMesh memory leak w/ multires data 2015-11-05 19:07:22 +11:00
Campbell Barton
23344bca6c BMesh: triangulate & poke - multires data support 2015-11-05 17:40:33 +11:00
Campbell Barton
ce49c70956 BMesh: generalize logic for quad/ngon triangulate
Avoid having 2 different code-paths for face triangulation.
2015-11-05 08:19:05 +11:00
Campbell Barton
3152419e7e Add missing check for multires interpolation 2015-11-05 06:03:26 +11:00
Campbell Barton
020fdeb760 Cleanup: de-duplicate quad_coord & resolve_quad_uv_v2 2015-11-04 04:01:15 +11:00
Campbell Barton
268538853c Correct error in recent commit 2015-11-04 00:01:41 +11:00
Campbell Barton
bed91b623f Edge/Vert slide: improve multires interpolation
Need to re-interpolate the entire face, not just the connected loop.

Also add BM_face_interp_multires()
2015-11-03 20:38:23 +11:00
Campbell Barton
f75d6c4a8f BMesh: add BM_loop_interp_multires_ex which takes cached vars
Avoid recalculating face centers (for each loop) when interpolating multires.
2015-11-03 18:28:13 +11:00
Campbell Barton
77e223ddd5 BMesh: inline vert-loop iteration for normal calc
Calculating normals is called often (sculpting for eg),
so avoid using high-level iterator here.
2015-11-03 17:46:09 +11:00
Campbell Barton
ac7abb55d7 Cleanup: use 'const' for BMesh checking funcs 2015-11-03 17:06:56 +11:00
Campbell Barton
073ae9c572 Fix flip normals w/ multires
Needs Z axis flip to maintain the shape.
2015-11-03 15:50:59 +11:00
Campbell Barton
5f0f861b1d BMesh: avoid mdisp lookups (minor optimization) 2015-11-03 15:50:52 +11:00
Campbell Barton
56bcda8bc6 Fix BMesh selection flushing w/ mixed modes
Fix for T46494 wasn't working properly when de-selecting faces,
adjacent faces would remain selected but have unselected edges.

Logic here is admittedly rather fragile since it relies on both
selection functions and flushing afterwards.
2015-11-02 17:04:29 +11:00
Campbell Barton
df61c50ffa Fix T46651: Select linked crash w/ wire seam edges 2015-10-31 17:10:22 +11:00
Campbell Barton
afe3b55483 Cleanup: warning & whitespace 2015-10-26 22:22:30 +11:00
Campbell Barton
f53a21747c Fix T46494: Can't de-select a face w/ mixed modes 2015-10-15 19:57:51 +11:00
Brecht Van Lommel
b098609186 Fix various compiler warnings. 2015-10-10 17:35:30 +02:00
Campbell Barton
e4e8e359a1 BMesh: maintain select-history when sorting 2015-10-07 15:40:32 +11:00
Campbell Barton
605a2c8490 Cleanup: warning, style 2015-09-21 06:59:50 +10:00
Campbell Barton
09e40a4956 Cleanup: spelling 2015-09-14 02:22:22 +10:00
Howard Trickey
10c93a582b Check for no-op edge separates to quiet asserts when inset individual.
This causes no change in behavior, since code was alreadying doing
a no-op in bmesh_edge_separate if the edge is a boundary.
But it tripped an assert, annoying in debug builds.
We want to leave assert in bmesh_edge_separate in case callers
expect there to be separate loops after this always.
So putting test in caller.
(Same worry about bmesh_urmv_loop? I checked callers and they
appear OK to me - they deal with the no-op return.)
2015-09-03 10:42:16 -04:00
Campbell Barton
9304df5182 Fix T45939: Crash w/ BMesh.*.sort() 2015-09-01 16:07:34 +10:00
Campbell Barton
6db978f6d1 BMesh: add asserts for BMesh sort ghash lookups 2015-09-01 15:43:49 +10:00
Campbell Barton
a7b349d03c Cleanup: redundant cast 2015-09-01 15:01:13 +10:00
Campbell Barton
2e2dc9b9e3 Refactor translation code out of blenfont
- Add blentranslation `BLT_*` module.
- moved & split `BLF_translation.h` into (`BLT_translation.h`, `BLT_lang.h`).
- moved `BLF_*_unifont` functions from `blf_translation.c` to new source file `blf_font_i18n.c`.
2015-08-18 07:01:26 +10:00
Campbell Barton
fdc8b12726 Cleanup: whitespace, unused var 2015-08-06 13:03:07 +10:00
Campbell Barton
a7442bef59 Fix selecting linked edges 2015-08-05 20:24:27 +10:00
Campbell Barton
49f88326af Docs: doxy cleanup/minor edits 2015-08-01 12:37:52 +10:00
Campbell Barton
03f00eb91d Docs: doxy corrections 2015-07-31 23:44:37 +10:00
Campbell Barton
32157d8d01 Triangulate wasn't clearing arena after each use 2015-07-29 12:01:55 +10:00
Campbell Barton
1d9fbdc9a0 Fix T45455: Select linked issue w/ hidden faces 2015-07-21 12:02:11 +10:00
Campbell Barton
bf6ac302cd Correct own error w/ recent changes to triangulate 2015-07-20 16:12:30 +10:00
Campbell Barton
2cffd6649b Match face tessellation order in edimode
add a negated version of axis_dominant_v3_to_m3
2015-07-14 22:29:31 +10:00
Howard Trickey
12aff8d783 Add 'loop slide' option to bevel. See T45260
Current behavior of bevel is to 'loop slide' along unbeveled edges
when possible, but this produces uneven bevel widths sometimes,
so this option lets user choose between having the loop slide effect
or having more even bevel widths. Trying it out with default being
'no loop slide', so different from current behavior. May reverse this
choice later, depending on user reactions.
2015-07-05 09:53:17 -04:00
Campbell Barton
58d65dd976 Cleanup: use cross_v2v2 function 2015-07-01 16:37:05 +10:00
Campbell Barton
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