Campbell Barton
7c7b7302d3
Math Lib: use variable length args for mul_serie_m3,m4 (instead of trailing NULL's)
2014-07-20 14:01:42 +10:00
Campbell Barton
00b29156e0
Defines: replace ELEM3-16 with ELEM(...), that can take varargs
2014-07-20 01:33:40 +10:00
Campbell Barton
a04a8039f0
Code cleanup
2014-07-18 11:55:59 +10:00
Howard Trickey
70453c578d
Fix T34664: bevel face material can be set in tool and modifier.
...
Now the bevel tool, modifier, and internal operator have a material
slot # parameter that the user can set. If left at default of -1,
behavior is as current -- bevel face material is taken from the
closest original face (this may be ambiguous). If material slot
is >= 0, it gives the material slot index number for the material
to use.
2014-07-17 09:20:22 -04:00
Campbell Barton
1ce15f8efa
Fix for bmesh_vert_separate adding to visithash multiple times
2014-07-17 17:46:55 +10:00
Campbell Barton
ebd04f581d
Correct error in recelty added BM_face_split_edgenet
...
Was copying UV's to unrelated faces
2014-07-17 17:12:32 +10:00
Campbell Barton
eebeb55bf2
BMesh: use compiler attributes for queries, structure
2014-07-17 08:20:04 +10:00
Campbell Barton
58659fc207
BMesh: Add BM_vert_pair_share_face_check
...
Use to assert if BM_vert_splice is used incorrectly
2014-07-17 08:20:04 +10:00
Campbell Barton
d4726c9a40
BMesh: optimize BM_vert_splice to avoid getting a loop array first
2014-07-16 16:42:32 +10:00
Campbell Barton
3b81aae5c1
BMesh: avoid redundant normalize comparing angles
2014-07-14 14:22:15 +10:00
Campbell Barton
d9f39257f4
Math Lib: add compare_len_squared_v3v3 from paint branch
2014-07-14 11:55:38 +10:00
Campbell Barton
cfbc495b8d
BMesh: minor speedup to BM_face_split_edgenet
2014-07-13 13:53:08 +10:00
Campbell Barton
15a6911dd1
BMesh: remove error check on radial loops and consistent naming
2014-07-13 12:58:08 +10:00
Campbell Barton
c04f301fc3
Replace BLI_SMALLSTACK_FREE with fake user (quiet warnings in msvc)
2014-07-12 16:48:52 +10:00
Campbell Barton
5e3e095e2e
Code Cleanup: use const
2014-07-12 09:09:24 +10:00
Campbell Barton
9327816593
Correct error in BM_face_split_edgenet when no faces are split
2014-07-12 08:44:19 +10:00
Bastien Montagne
db1ab7b150
Fix potential bug in loop normals code.
...
Even if we cannot use computed lnor, we still have to empty the fan stack of lnors!
2014-07-11 19:52:43 +02:00
Campbell Barton
78d38a9033
BLI_array: avoid mixing terms count/length
2014-07-11 15:30:42 +10:00
Campbell Barton
48abc65c39
BMesh: new face splitting function BM_face_split_edgenet
...
This takes a face and an edge-net, splitting the face into regions
defined by the edge-net.
2014-07-11 10:29:53 +10:00
Campbell Barton
f4484daed3
Correct IS_EMPTY macro
...
also prevent reading from BM_ELEM_API_FLAG_ get/setters
2014-07-09 07:53:43 +10:00
Campbell Barton
f32079d4b9
BLI_stackdefines
...
Bounds check the stack while debugging, also add STACK_PEEK
2014-06-29 05:57:48 +10:00
Campbell Barton
beedb0b274
BMesh: more edits to vertex dissolve, handle mixing wire edges with faces better
2014-06-27 22:06:49 +10:00
Campbell Barton
d6ab81809e
BMesh: tweaks to dissolve, remove wire edges before other calculations
...
also avoid feedback loop when checking topology giving nondeterministic results.
2014-06-27 20:28:36 +10:00
Campbell Barton
e947dd8cd7
BMesh: add BM_vert_is_edge_pair(), faster then checking (BM_vert_edge_count(v) == 2)
2014-06-27 20:28:32 +10:00
Campbell Barton
c3deb16c16
BMesh: add ability not to delete vertex when collapsing
2014-06-27 20:28:02 +10:00
Campbell Barton
07a5caad5f
BMesh: use slightly faster method of stepping over edge-disks
2014-06-27 20:28:02 +10:00
Campbell Barton
2aca720bff
Fix T40813: Dissolve verts with adjacent regions, removes the dividing edge
2014-06-27 05:39:39 +10:00
Campbell Barton
0ea7302349
Fix for dissolve faces iterating over verts while removing
2014-06-26 23:29:45 +10:00
Campbell Barton
0529766f32
Use api function for flipping button list & rename to BLI_listbase_reverse
2014-06-25 19:33:35 +10:00
Campbell Barton
c5ccbacdaa
move STACK_* macros into BLI_stackdefines.h
2014-06-25 00:01:33 +10:00
Bastien Montagne
b82e84f179
BMesh: we actually can set loop indices too while converting from Mesh to BMesh...
2014-06-23 16:21:53 +02:00
Campbell Barton
3a75381505
Apply fix for T40745 to extrude_face_region too
2014-06-23 00:12:06 +10:00
Campbell Barton
728041019e
Editmesh: extruding end-point verts now maintains edge-direction
...
Resolves T40745, where faces from extruded edges had flipped normals.
2014-06-22 18:41:07 +10:00
Campbell Barton
f2a0062042
Use ARRAY_SIZE to replace (sizeof(a) / sizeof(*a))
2014-06-17 02:47:57 +10:00
Howard Trickey
b5213b2dea
Fix T40007 Bevel tool resets after getting to 1.
...
If the side of a beveled edge hit another vertex, the offset
amount reset to zero. This was the result of commit rB1582dd5e4d7c
which clamped the amount to zero to avoid creating spikes with
obtuse angles. Now we clamp the amount to the closest end of
the edge to where the amount wants to be.
Also fixes the first part of T40365.
2014-06-14 17:47:44 -04:00
Campbell Barton
d6287b213b
BLI_gsqueue: use size_t for elem_size (was casting all over)
2014-06-15 03:49:25 +10:00
Campbell Barton
b54793ef02
Editmesh: remove redundant normal calculation call for subdivide
2014-06-14 17:55:07 +10:00
Campbell Barton
19b1da2b7b
Polyfill2d: avoid calculating polygon winding (its known in all cases)
2014-06-14 08:21:52 +10:00
Campbell Barton
365ff66987
GSet, GHash: Add BLI_gset_add, since its common to add members to a set
...
also rename BLI_edgeset_reinsert -> BLI_edgeset_add, in this case its the same.
2014-06-14 00:47:12 +10:00
Campbell Barton
9f0466fb6b
Quiet double promotion warning & ws edit
2014-06-13 02:22:40 +10:00
Howard Trickey
8c2b5ffb11
Fix Bevel bug T39746, small scale gives flat profile.
...
With very small meshes or very small bevel amounts, the bevel
profile would be flat even if a round one was requested.
Problem was that the code was checking the length of a cross
product for closeness to zero to test coplanarity. Needed
to normalize things before making that test to account for scale.
2014-06-12 10:22:10 -04:00
Howard Trickey
84767a29f1
Fix Bevel multisegment profile bugs T39184, T37502 and last part of T40365.
...
When doing a 'weld' type join where there are two non-beveled edges
in the same plane one beveled one but not the other, then there
should be a curved profile; bug was creating a straight one.
2014-06-10 11:21:52 -04:00
Campbell Barton
c6ea6e368b
BMesh: avoid recursion for BM_mesh_edgenet, runs out stack memory on large nets
2014-06-08 22:20:03 +10:00
Campbell Barton
d53ed58c57
BMesh: avoid OpenMP use for low poly meshes (counting selection)
...
also use schedule(static) for simple for loops.
2014-06-06 23:54:15 +10:00
Campbell Barton
0b0bac846c
Fix T40508: Calculating normals crashes
2014-06-06 11:27:09 +10:00
Campbell Barton
8355955058
Avoid openmp sections in BM_mesh_elem_index_ensure
2014-06-05 18:50:10 +10:00
Campbell Barton
6f47d054ff
Code cleanup: mixup hflag/htype
2014-06-05 18:37:53 +10:00
Campbell Barton
df94a773b6
BMesh: avoid using OpenMP when nothing to do
...
Gave slowdown drawing on high poly meshes
2014-06-05 08:13:55 +10:00
Howard Trickey
d504b325fb
Fix T37618 Bevel mismatched offsets and bad profile plane.
...
Used a different technique to resolve "impossible" offset cases
that makes more consistency. Also changed the plane in which
the profile lies for the case with only one beveled edge and
more than 3 other edges.
2014-05-30 16:07:45 -04:00
Howard Trickey
6bde9a52f9
Fix T39174 Bevel didn't maintain edge attributes.
...
When rebuilding the polygons that touch bevel-involved vertices,
need to copy the edge attributes from corresponding original edges.
Special treatment of corner segments, to maintain continuity of
smooth and seam attributes.
Another fix: if have four meeting edges, two opposite ones beveled
and the other two not, propgate the non-beveled-edges attributes
across the line that joins them (perpendicular to the bevel).
2014-05-29 07:32:16 -04:00