3152419e7e
Add missing check for multires interpolation
2015-11-05 06:03:26 +11:00
020fdeb760
Cleanup: de-duplicate quad_coord & resolve_quad_uv_v2
2015-11-04 04:01:15 +11:00
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
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
58d65dd976
Cleanup: use cross_v2v2 function
2015-07-01 16:37:05 +10:00
e5e73ccc90
Math Lib: rename fill_*, to copy_*
...
matching convention for fixed length api, eg: copy_v3_fl
2015-05-05 17:08:29 +10:00
43616918f3
Cleanup: const correctness
2015-04-28 23:15:48 +10:00
89f5a09ab4
Cleanup: use 8 space indent for multi-line args
2015-04-25 20:15:20 +10:00
ced19783fd
Fix mismatch (missing 'const' to mactch funcs declarations).
...
Was breaking windows compile, reported by bdancer over IRC, thanks.
Also, quite some annoying 'unused vars' warnings (debug-only vars).
2015-02-23 13:57:02 +01:00
7c03ef295b
CustomData: const correctness
2015-02-23 16:17:16 +11:00
64b328f22b
Edge/Vert Slide: avoid redundant loop angle calls
...
No need to calculate loop angle for each layer
2015-02-23 15:44:28 +11:00
bc876f9ea4
Error in last commit
...
Accidentally left in malloc/free
2015-02-23 15:40:43 +11:00
5a372dbd89
Fix error in recent vert/edge-slide commits
...
`CustomData_bmesh_interp_n` was expecting the 'dest' arg not to have its offset applied.
This was a bit confusing since the source args have it applied,
and in some cases we only have the destination with the offset.
2015-02-23 13:57:06 +11:00
d580c90469
CustomData: const correctness for interp()
2015-02-23 13:54:33 +11:00
58652301de
Vert/Edge Slide: better UV interpolation
...
Ignore faces which the sliding vert is outside of.
2015-02-16 18:49:18 +11:00
29e19cecd8
BMesh: avoid ugly macro for loop interpolation
...
Compiler optimizes to practically the same output
2015-02-13 11:06:16 +11:00
2d1e072686
UV Island support for vertex & edge slide
...
This ensures slide with `Correct UVs` enabled, keeps UV's (any loop custom-data) contiguous.
Adds 2 key functions `BM_vert_loop_groups_data_layer_create` and `BM_vert_loop_groups_data_layer_merge`
They work by collecting matching loop custom-data around the vertices loop-fan,
and merging the custom-data after edits are made.
Thanks to @mont29 for review!
2015-02-11 21:30:13 +11:00
d0bd474375
Custom Data API: redundant pointer-to-pointer arg
2014-09-24 18:50:29 +10:00
5e3e095e2e
Code Cleanup: use const
2014-07-12 09:09:24 +10:00
4ca67869cc
Code cleanup: remove unused includes
...
Opted to keep includes if they are used indirectly (even if removing is possible).
2014-05-01 04:47:51 +10:00
b6e967be63
Code cleanup: const args and arrays
2014-04-27 08:56:54 +10:00
88a0fe5f1b
Code cleanup: use 'const' for arrays (bmesh)
2014-04-27 00:25:16 +10:00
b3972aeea0
Math Lib: optimize axis_dominant_v3_to_m3, approx 6x speedup
...
build the matrix directly rather then calculating with axis/angle
also remove unused function calc_poly_plane
2014-04-16 21:07:28 +10:00
ac07046e55
BMesh: optimize quad_coord, avoid duplicate sqrt calls
2014-03-28 15:25:02 +11:00
37026b12ec
Code cleanup: use bool for static methods
2014-02-05 22:36:15 +11:00
fc39e895e9
Style Cleanup: whitespace
2014-01-12 22:27:55 +11:00
1300721d57
add asserts to ensure face normal is up to date.
2013-07-29 09:12:23 +00:00
4982f200fa
move alloca define into its own header since its not related to BLI_array
2013-07-28 10:38:25 +00:00
c098557240
fix [ #36100 ] bevel lost selection
...
interpolating loop was copying face attributes including selection, checked all users of this function and its safe to remove the call (which is bad to begin with).
2013-07-11 14:21:50 +00:00
b36999b2f7
bm_loop_interp_mdisps was doing multiple lookups in the same pointer in a nested loop. only need one, also avoid multiple layer lookups with mdisp calculation/smoothing
2013-07-11 01:28:27 +00:00
cda5770160
code cleanup: also fix crash in GPU_state_print(). and confine to debug mode builds.
2013-06-13 11:59:28 +00:00
e895c8302e
Use OpenMP threads in bm_loop_interp_mdisps
...
Gives approx 2x speedup on my laptop on such operations
as mesh subdivision in edit mode. Desktops with fancier
CPUs could benefit even more.
Thanks Campbell for review!
2013-06-11 09:14:39 +00:00
8ac2fee57a
minor speedup for bmesh - add CustomData_bmesh_free_block_data(), use
...
when the block would be immediately allocated again.
2013-05-08 13:00:25 +00:00
1edf56e7a5
fix [ #35150 ] Crash when bmesh operation called from within a Panel draw()
...
accessing a bmesh from python would reallocate all customdata layers.
add an assert to BM_data_layer_free(), when its called unnecessarily since its reallocating all layers.
2013-04-29 20:21:19 +00:00
c68ae745b6
interpolate verts as well as loops for inset.
...
- add vertex option to BM_face_interp_from_face, also expose via python.
2013-04-10 23:25:44 +00:00
634dfcdecc
fix for fix: re-activating buttons to fix [ #33466 ], meant the icon didn't get refreshed immediately.
2013-04-08 00:32:32 +00:00
b1ac23c5bd
Mesh Tool,
...
inset interpolation now works for 'inset_region', enabled by default.
Example:
http://www.graphicall.org/ftp/ideasman42/inset_interpolation_new.png
2013-04-07 11:41:37 +00:00
b4e7e7efd6
improve bmesh face interpolation - transforming verts into the faces plane rather then using dominant axis or calculating in 3d with interp_weights_poly_v3().
2013-04-07 02:10:15 +00:00
93ac968db3
code cleanup: include order
2013-04-05 17:56:54 +00:00
347e2b6cb0
code cleanup: make bmesh var names more consistent
2013-03-09 17:12:24 +00:00
b27854bd47
use booleans for bmesh api.
2013-01-14 16:42:43 +00:00
c3b5c726c7
* Fix for #31581 . The issue was that we scaled the face prior to
...
projecting it. The original paper suggests to simply interpolate between
the two points of an edge if the distance of the point to that edge is
smaller than a threshold.
* Fixed both 3D and 2D code to utilize this. Possibly other places in
blender where this scaling is done will have to be adjusted.
* Changed vertex interpolation to use 2D interpolation, since it already
did projection on plane and 2d calculations are faster.
* Also added notifier on hard recalc when uvcalc_transfor_correction is
used. Results in instant feedback on UV editor when edge sliding.
2013-01-07 21:42:40 +00:00
fb989c2a65
code cleanup: don't alloca zero size and remove paranoid NULL checks (checked all uses and there not needed).
2012-12-24 14:59:15 +00:00
71730f26d7
replace BLI_array_fixedstack_declare with() new macro BLI_array_alloca() which uses stack memory always and doesn't need to be freed explicitly.
2012-12-11 15:10:19 +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
a1856a38f6
minor improvement to vector api use, replace add, multiply by 0.5 with mid_v3_v3v3
2012-10-30 14:22:49 +00:00
e5a31eff37
code cleanup: use squared length for comparisons and is_zero_v# rather then checking length == 0.
2012-10-25 23:04:33 +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
7deb8d8a26
code cleanup: spelling
2012-10-20 20:36:51 +00:00
0d5d2146eb
code cleanup: make shape key api names consistent with our new convention.
2012-09-19 10:12:07 +00:00