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
b1f4e2b4db
code comments: bmesh operator doxy header descriptions.
2013-03-30 08:54:50 +00:00
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
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
b27854bd47
use booleans for bmesh api.
2013-01-14 16:42:43 +00:00
4e5d5e0d84
Add 'vertex_only' option to bevel tool.
...
Right now, changing segments to > 1 doesn't do anything,
but intend to work on making that cause rounded corners.
2012-12-28 02:45:10 +00:00
dbdc76c9d0
code cleanup: make bmesh operator names more consistant since python has access to these as input arguments and return values.
...
all output values currently have ".out" suffix, this may go in the future, but for now it makes it clear in C code what are inputs and outputs.
2012-11-20 05:50:19 +00:00
48639af5f8
use input and output slots for bmesh operators, needed for the python api to get return values.
2012-11-19 14:58:31 +00:00
185cf6095e
improvements to bevel
...
- the resulting selection is now correct
internal details
- bev_rebuild_polygon() now only rebuilds polygons that are attached to a bevel vertex (was rebuilding ALL).
... need to take care we don't leave faces pointing to removed geometry, so far this works fine.
- bev_rebuild_polygon() uses stack memory for <32 size ngons to reduce allocs.
- skip hash lookup when removing bevel verts (use tag instead).
2012-11-19 02:26:59 +00:00
cdc4037f0d
bmesh: BM_verts_in_face was using bmesh operator flag which is no longer ensured to be available,
...
use internal apiflag instead, Thanks to Nicholas Bishop for spotting.
also quiet some warnings.
2012-11-19 00:54:55 +00:00
fd9dac77d1
bevel now only takes manifold edges (so it doesnt need to check for them)
2012-11-18 09:33:11 +00:00
4401ac8c9e
finish moving bevel code out of the operator dir (it works again)
2012-11-18 08:35:27 +00:00
9a74fb5b05
moving bevel to tools dir as-is to keep svn history (breaks build, will fix next).
2012-11-18 08:20:02 +00:00
c3c14f862b
use quad-strip for filling even when no segments are being added, this gives quad-loops along the bevel whereas before it made ngons.
2012-11-16 21:25:11 +00:00
6de13de7ab
more straightforward way to implement quad-strip face filling suggested by Howard Trickey,
...
also some other changes - no need to check the new loops face is larger and no longer split up the ngon more times then there are subdivisions in the face strip (now ngons will remain on both sides).
2012-11-16 21:05:27 +00:00
dc06523622
rework the bevel quad strip logic to work with ngons correctly, previously it only worked properly with triangles.
2012-11-16 14:28:37 +00:00
8928344bf7
fix for own bug in quad-stip fill method, quad strips were skewed.
2012-11-16 13:41:21 +00:00
b7dbf83d19
more minor improvements to bevel use of math functions
2012-11-16 12:33:24 +00:00
6b0c200403
code cleanup: remove unneeded normalize (face normal), and unneeded call to len_v3v3
2012-11-16 12:25:15 +00:00
3edbd1d0e2
bevel: save some memory by aligning struct members.
2012-11-16 10:15:25 +00:00
f5b356bf18
wip - alternate bevel curve calculation (still disabled)
...
now USE_ALTERNATE_ADJ works, giving more stable corners that don't flicker and glitch out as the offset changes.
The shape is not a circle though and doesnt look quite as nice as the existing method.
2012-11-16 08:12:06 +00:00
b3f6c12136
bevel: wip ifdef'd code to test an alternative method of placing corner vertices.
2012-11-15 23:21:21 +00:00
8270592fa4
code cleanup: some renaming to avoid confusion.
2012-11-15 22:32:29 +00:00
987f6a7d4f
code cleanup: move local math functions into math_geom.c, math_vector.c, no functional changes.
2012-11-15 13:24:14 +00:00
283ee53085
fix for deleting lines hanging the text editor when no markers are used, presence of markers still hangs.
...
also compiler warnings and some style edits.
2012-11-15 02:11:40 +00:00
cd8584aad5
Fix 'polygon eating' problem in bevel (bug #33141 )
...
which was due to almost-parallel lines.
2012-11-15 02:05:32 +00:00
a286afe75d
use memarena for bevel allocs
2012-11-14 11:06:58 +00:00
7295d98e07
use ghash for bevel verts, saves list lookups when getting a BMVert's BevVert
2012-11-14 10:23:38 +00:00
0163ae1701
speedup bevel by tagging verts and edges to bevel, this avoids a loop over all bevel edges for each bevel vert (can use edges-of-vert instead)
2012-11-14 10:08:39 +00:00
7c3db355b1
remove ifdef'd bevel code, current bevel works better then the previous code.
...
reduce strlen check in texttool_suggest_add()
use 'del list[:]' rather then 'list[:] = []' in python scripts which clear lists.
2012-11-14 09:45:15 +00:00
66aa7e9192
add simple quad-strip filling to bevel, use to bevel edges when 2 bevel-edges share a vertex.
...
this gives more useful topology, eg:
http://www.graphicall.org/ftp/ideasman42/bevel_strip_fill.png
2012-11-12 16:08:02 +00:00
0364a83771
fan filling didnt always work well, now only apply this when its going to work properly.
2012-11-12 12:30:58 +00:00
fbdae9ca0a
change bevel do/while loops to step the pointer in the while check, no functional changes.
2012-11-12 12:16:21 +00:00
08ec3ab64e
bevel fan fill edges meeting non selected geometry rather then making ngons which often dont triangulate nicely to follow rounded corners: http://www.graphicall.org/ftp/ideasman42/bevel_fan_fill.png
2012-11-12 11:59:28 +00:00
cf6994b910
code cleanup: spelling,
...
also initialize bmesh-bevel settings struct to zero to avoid possible uninitialized memory later.
2012-11-12 07:33:01 +00:00
0bfc92ff8e
BM_iter_as_arrayN() can now take an optional existing array argument, useful to avoid many small malloc's by passing a fixes size stack variable instead.
...
Will give some speedup to edge-split modifier and bevel.
2012-11-12 05:53:43 +00:00
428e5b7a99
bmesh bevel todo: don't loop through all faces to find faces connected to a vertex.
2012-11-12 05:29:54 +00:00
97b7154142
replace BM_edge_face_count with BM_edge_is_manifold/BM_edge_is_wire/BM_edge_is_boundary
2012-11-12 04:50:45 +00:00
744378483c
style cleanup
2012-11-12 03:41:25 +00:00
b747759698
Bevel: several bug fixes.
2012-11-12 02:52:24 +00:00
b67a297d33
Bevel: use library plane/line intersection instead of custom one.
...
Custom one had a bug, not worth tracking down.
2012-11-09 16:00:30 +00:00
eff734203f
add fallbacks for BM_vert_calc_shell_factor() and BM_vert_calc_mean_tagged_edge_length() to avoid divide by zero when a vertex has no connected geometry.
...
also style cleanup.
2012-11-09 08:28:14 +00:00
11a5c909f8
code cleanup: move shrinkwrap's benchmark macro into PIL_time.h & some minor style edits.
2012-11-09 04:01:19 +00:00
610d746c12
code cleanup: double promotion warnings with new bevel code & wrong use of NULL in cycles.
2012-11-09 03:08:02 +00:00
365935bfdd
style cleanup
2012-11-08 16:00:18 +00:00
da4441f7c5
Merge gsoc Bevel (with rounding) into trunk.
2012-11-08 15:12:21 +00:00
f70d2c65d8
rename api functions...
...
- minf, maxf, mini, maxi --> min_ff, max_ff, min_ii, max_ii
2012-10-23 13:28:22 +00:00
da9394f596
code cleanup: define sizes of vectors for function args and use C style comments
2012-10-15 09:11:17 +00:00
c9c76a9a68
add compiler hints that failing to create a bmesh face is unlikely.
2012-10-01 11:12:49 +00:00
90d215535e
add option so operators can be called with a flag, currently the only flag is to respect hidden geometry.
...
this is useful for bmesh tools that operate in object mode or for modifiers which would previously use hidden faces in some cases.
2012-07-21 00:58:02 +00:00