Commit Graph

894 Commits

Author SHA1 Message Date
ae8327dbf3 Mask: add option to detect self intersections 2014-02-13 19:12:28 +11:00
b3afbcab8f ListBase API: add utility api funcs for clearing and checking empty 2014-02-08 06:24:05 +11:00
37026b12ec Code cleanup: use bool for static methods 2014-02-05 22:36:15 +11:00
8b1731e13d Scanfill: skip checks for loose edges when they can't occur
Only editmesh needs this, text, curves, masks - can all skip this check
2014-02-04 02:57:27 +11:00
fed1b8b16d Code cleanup: suffix vars to make obvious they are squared 2014-02-03 02:46:45 +11:00
b4ae05e4db BMesh: optimize lookups for triangle fill 2014-02-02 17:09:38 +11:00
c4345a808c Smallhash: add reserve option to avoid resizing when size is known 2014-02-02 17:08:26 +11:00
933c2b0521 BMesh: collapse_uvs - avoid clearing and flagging for every cd-layer 2014-01-22 17:16:38 +11:00
63ccb26303 Code Cleanup: spelling 2014-01-17 17:35:03 +11:00
477a84a738 BMesh: minor optimization for remove doubles
- replace heap allocation with stack for small arrays.
- remove edge-lookup when its already known.
2014-01-17 17:21:41 +11:00
7df8452d1a BMesh: add bmesh delete functions that dont depend on operator flags 2014-01-17 14:55:06 +11:00
38e683cbb1 Fix T38217: Fix glitch adding Monkey with view align
added an option so view-align can default to a different axis.
2014-01-16 23:54:04 +11:00
af93ebcb50 Code Cleanup: style and redundant casts 2014-01-16 19:15:53 +11:00
5611fb6a32 Fix T38186: mesh inset didn't follow edge directions for flat surfaces
also improve evenness when the inset direction wasn't exactly between both edges,
2014-01-14 09:48:59 +11:00
49aa701645 Add profile control parameter to Bevel.
Parameter controls concavity / convexity.
    <.25 means: concave inward
    .25 means: straight slanted
    >.25 means: concave outward
    .5 means: circular (the default)
    1 means: straight along original sides
For now, there is a hard lower limit of .15
because more work is needed to get decent
results in the range below that.

The profile is actually a superellipse, and the
parameter is 1/4 of the exponent in the implicit equation
for a superellipse, except at the extreme values of 0 and 1.
2014-01-08 07:40:01 -05:00
3ffba79ac6 Fix for own recent commit 2013-12-24 18:56:07 +11:00
04a902965e BMesh optimize face splitting by taking loops rather then verts
- add BM_vert_pair_share_face
- add BM_loop_is_adjacent
- remove BM_verts_connect
2013-12-24 11:13:58 +11:00
01acc2a7dc EditMesh: wireframe tool, add offset and vgroup support (not used yet) 2013-12-22 06:54:37 +11:00
6ea13cf217 Editmesh: skip allocating a face array for recalc-normals 2013-12-16 01:28:07 +11:00
c33fb00c28 Fix for triangulate and beauty-fill
- could crash if triangulate attempted to create an existing face.

- tagging edges to rotate was unreliable, don't do this anymore.
  now check if edge is in the array passed to the beauty function.
2013-12-02 11:49:18 +11:00
aa3933b411 Fix own regression - adding a grid had rotated face.
some scripts depended on uv's default values
2013-11-29 10:15:26 +11:00
46cc02c5cd Correct fix for T37617, (own recent regression) 2013-11-26 07:13:34 +11:00
1768bd2c33 Fix T37617: "Add plane" was adding a 2*2 grid
Was a regression from rBaa3c06b41ca9, hope this time all things are OK again (note the X/Y subdivision values still are different than before (-1 for same result), but imho they make more sense this way).
2013-11-25 21:01:22 +01:00
63caaa2b12 Code Cleanup: rename vars for detecting change to be more consistent
rename change/is_change/is_changed/modified -> changed
also use bools over int/short/char and once accidental float.
2013-11-26 06:39:14 +11:00
aa3c06b41c Fix T37573: Adding grid primitive slow for many subdivisions 2013-11-25 20:35:56 +11:00
2b4c68b902 CMake Build: option to compile without opennl/superlu. 2013-11-25 15:36:19 +11:00
1decd824f3 Code Cleanup: use math functions and reduce View3d axis drawing into a loop 2013-11-24 21:26:16 +11:00
283f43d31a Fix T37559: Crash dissolving vertices in some situations 2013-11-22 19:42:14 +11:00
4c42e73a9d Fix T37399: Crash with wireframe (wasn't clearing edge tag) 2013-11-19 16:45:21 +11:00
7fc1088164 Fix [#37388] Grid fill crashes blender in specific situation.
With some geometries, we can have a valid first path, without being able to find a valid second one, added needed check.
2013-11-11 14:29:01 +00:00
bfb9cefccb Added options for how bevel amount is measured.
Now there is an 'Offset Type' dropdown on tool
shelf with types:
Offset - current method, offset of new edge
  from old along sliding face
Width - width of new bevel face (if segments=1)
Depth - amount a chamfering plane moves down
  from original edge
Percent - percent of way sliding edges move
  along their adjacent edges

The different options mainly are useful when
beveling more than one edge at once.

Leaving as a TODO to put these in the modifier,
as doing that has more permanent effects so
want to let users shake out problems with this
first.
2013-11-10 12:31:57 +00:00
ec32964194 code cleanup: warnings 2013-11-03 05:19:55 +00:00
Dalai Felinto
a7b44c82e5 Triangulate Modifier: using different ngon and quad methods
Quads: Beauty, Fixed, Fixed Alternate, Shortest Diagonal
Ngons: Beauty, Scanfill

* Shortest Diagonal is the default method in the modifier (popular
  elsewhere), but beauty is the default in Ctrl+T).

* Remove the need for output slot and beauty operator to be called
after Clt+T

Patch with collaborations and reviewed by Campbell Barton
2013-10-29 02:42:51 +00:00
7c8c49a34a style cleanup 2013-10-21 23:35:08 +00:00
f12ac5b23f fix [#37100] Segfault when I rotate an edge 2013-10-16 05:24:55 +00:00
Dalai Felinto
859dfccb58 beautify: passing edge/face flags as arguments
no functional change, just preparing the ground for the beautify in
triangulate modifier changes.
2013-10-16 03:24:50 +00:00
Dalai Felinto
fe93d4a3d8 split operators/bmo_beautify.c into tools/bmesh_beautify.c
This is a proper design if we want to use the beautify routine elsewhere
(e.g., in the triangulate modifier)
2013-10-16 03:24:38 +00:00
Dalai Felinto
54be5f2cf5 fix [#37058] 2.69 RC1: Symmetrize directions are all reverse 2013-10-13 05:45:29 +00:00
afab39b9d6 code cleanup: use const's for static arrays 2013-10-10 20:22:17 +00:00
590f58d455 code cleanup: redundant includes and add minor comments. 2013-10-08 20:18:38 +00:00
51f7f82a42 fix crash in editmesh edge-dissolve, when 2 faces shared multiple edges, freed edges would be checked. 2013-10-03 15:29:08 +00:00
6b2e563924 yet another instance dissolve deletes verts it loops over. 2013-10-03 10:50:03 +00:00
6d1dba7c37 overlapping faces made join-triangles fail, check for this case and silently ignore them. 2013-10-03 10:29:53 +00:00
253e9fb041 addition to r60523 missed using BM_ITER_MESH_MUTABLE in one place. 2013-10-03 08:02:32 +00:00
5b5bc63396 fix [#36923] Merge / Delete vertices crashes for some meshes
add BM_ITER_MESH_MUTABLE which steps before entering the for() loop body and prevents the assert from complaining about removing mesh data while iterating as well as the crash.

this was done in quite a few areas, more may turn up.
2013-10-03 07:06:56 +00:00
0959482acb fix [#36913] GHASH_FLAG_ALLOW_DUPES assert and crash in Edge Collapse 2013-10-02 04:12:06 +00:00
b21b24573d lots of operator descriptions were incorrectly copy/pasted.
update some descriptions, others were removed and operators tagged as internal.

add a script to detect duplicate operator descriptions.
2013-09-30 05:50:41 +00:00
9096b3a14e fix [#36211] bridge edge loops joining vertecies that are far away
for bridge use a different beautify method when edge loops have non-matching loop count (simple face-angle comparison).
2013-09-17 23:23:32 +00:00
dd628ab4ed comments and more logical var names for bm_edge_calc_rotate_beauty(), (make it easier to see whats going on) 2013-09-17 22:48:08 +00:00
ec2464ac5f code cleanup: unnecessary shadowing and some minor pep8 edits. 2013-09-12 19:51:31 +00:00