Campbell Barton
a28e014313
BMesh: Add API call BM_face_calc_point_in_face
...
Was local to knife code, but this is generally useful.
2015-11-27 22:08:16 +11:00
Campbell Barton
6483575b35
Fix error with intersect handling split-wire edges
2015-11-26 13:16:45 +11:00
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
Brecht Van Lommel
d28431a648
OpenNL: make the API thread safe by always passing context.
...
Previously two laplacian smooth or deform modifiers executing
simultaneously could crash.
2015-11-22 22:49:43 +01:00
Brecht Van Lommel
47ce2d7bef
OpenNL: significantly simplify code using Eigen / STL.
2015-11-22 22:49:03 +01:00
Campbell Barton
d47fbece51
BMesh: improve face-path-picking w/ tri-fans
...
Face paths including triangle-fans would often be avoided because
the face center and edge would 'zig-zag'.
Resolve using wighted face center and picking an edge-point between face centers.
2015-11-21 10:12: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
Campbell Barton
c7c3f09269
Recent edits to grid-fill removed edgeloop flip
2015-11-20 07:30:16 +11: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
d573bb4f66
BMesh: support for grid-fill non uniform grids
2015-11-19 22:52:17 +11: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
c2c11debe5
BMesh: simplify calculating grid edge loops
2015-11-18 21:41:06 +11:00
Campbell Barton
22931f2f9f
BMesh: symmetry aware decimate
...
Support for decimating while maintaining symmetry on a single axis.
2015-11-18 10:52:00 +11:00
Campbell Barton
a3530b35bd
Fix T46784: Connect vertices (follow up)
...
Another fix for a slightly different case from the original report, to give better orientation.
Vertex normals influence on the orientation is now scaled by the alignment with the cut direction.
Also use face normal instead of loop normal which can be unreliable when the corners edges are co-linear.
2015-11-17 14:36:22 +11:00
Campbell Barton
e38a80d5f6
Fix T46784: Connect vertices uses odd orientation
...
Use connected faces to calculate the paths orientation
when normals are aligned with the direction.
2015-11-16 15:21:22 +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
92ab3ba385
Fix T46648: Recalculate normals fails
...
Certain shapes could trick the inside/outside test.
An edge between 2 planar faces could be selected for detecting face-flipping (which failed).
While this could be prevented by skipping those edges,
use a method which searches for the outer most face-loop, then check it faces the center.
2015-10-31 13:52:28 +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
b333a7570f
Cleanup: spelling
2015-10-07 15:02:06 +11:00
Campbell Barton
123b64f818
BMesh: improved smooth subdivision
...
Instead of offsetting along normals, smooth positions are now
calculated on a sphere defined by the vertices and their normals.
This removes visible seams along original edges, which were common previously.
2015-10-05 00:03:10 +11:00
Campbell Barton
74a2fa3095
BLI_Buffer: add BLI_buffer_reinit
...
Useful for re-using a buffer when the existing data can be thrown away.
2015-10-04 14:29:27 +11:00
Campbell Barton
605a2c8490
Cleanup: warning, style
2015-09-21 06:59:50 +10:00
Campbell Barton
e9dd060102
Doc: remove todo's from BMesh code
...
These were out of date and better have outside the source.
Also clarify BMLoop description.
2015-09-18 16:40:55 +10:00
Campbell Barton
09e40a4956
Cleanup: spelling
2015-09-14 02:22:22 +10:00