Dalai Felinto
1b18e15802
Sanitize use of BLI_iterator
...
We now initialize iter.valid as true as part of the main iterator (and manually
when using via Python). And we don't even bother setting iter->current to NULL
if it's invalid. Let's stick to using iter->valid only.
2017-11-07 14:08:34 -02:00
Dalai Felinto
f16199d479
Fix jumps-dependent-on-uninitialized-variable for iterators
...
We cannot have iter->valid unitialized, but we need to be sure it is set to true on begin.
Bug found by Sergey Sharybin.
2017-11-07 12:50:42 -02:00
Sergey Sharybin
e0a6582b40
Fix iterator usage from C++ code
...
Old code was not supported by GCC, see some details and progress
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55606
2017-11-02 17:58:59 +01:00
Campbell Barton
4a85089abe
Merge branch 'master' into blender2.8
2017-11-02 15:45:19 +11:00
Campbell Barton
765e28948e
Cleanup: code style
2017-11-02 15:09:11 +11:00
Alexander Gavrilov
8bdc391c54
Implement a new automatic handle algorithm to produce smooth F-Curves.
...
The legacy algorithm only considers two adjacent points when computing
the bezier handles, which cannot produce satisfactory results. Animators
are often forced to manually adjust all curves.
The new approach instead solves a system of equations to trace a cubic spline
with continuous second derivative through the whole segment of auto points,
delimited at ends by keyframes with handles set by other requirements.
This algorithm also adjusts Vector handles that face ordinary bezier keyframes
to achieve zero acceleration at the Vector keyframe, instead of simply pointing
it at the adjacent point.
Original idea and implementation by Benoit Bolsee <benoit.bolsee@online.be >;
code mostly rewritten to improve code clarity and extensibility.
Reviewers: aligorith
Differential Revision: https://developer.blender.org/D2884
2017-11-01 21:57:39 +03:00
Dalai Felinto
16f06e9dc9
Introduce "skip" in BLI_Iterator struct
...
This helps iterators prevent recursion.
2017-10-30 19:34:46 -02:00
Sybren A. Stüvel
7530c54c3c
Merge branch 'master' into blender2.8
2017-10-29 15:14:04 +01:00
Campbell Barton
512b879241
BLI_heap: add validation check, improve tests
...
Also minor readability changes, avoid running both heap_up/down
gives minor speedup too.
2017-10-29 18:23:33 +11:00
Campbell Barton
bd0d41059f
Cleanup: move docs out of header
2017-10-29 16:08:10 +11:00
Campbell Barton
4518c0f3e8
Cleanup: const args
2017-10-29 15:47:10 +11:00
Campbell Barton
3425732926
BLI_heap: minor changes to the API
...
Recent addition of 'reinsert' didn't match logic for ghash API.
Rename to BLI_heap_node_value_update,
also add BLI_heap_insert_or_update since it's a common operation.
2017-10-29 15:47:06 +11:00
Campbell Barton
336885beba
Use BLI_heap_reinsert for decimate and beautify
...
Improves performance for high poly meshes,
~70% faster for decimate, only ~10% for beautify.
2017-10-29 05:28:00 +11:00
Campbell Barton
4af1af70ad
BLI_hash: add BLI_heap_reinsert
...
Allows avoiding remove/insert calls.
2017-10-29 04:42:58 +11:00
Campbell Barton
fdae9e1e03
BLI_array_store: correct hashing single bytes
...
The single byte version of hash_data was casting from unsigned char
instead of signed.
This didn't cause any errors since the result of each aren't compared.
Even so, better keep them matching.
2017-10-28 18:28:55 +11:00
Campbell Barton
8ac69ff9dc
Cleanup: use uint type in BLI
2017-10-28 17:48:45 +11:00
Clément Foucault
660eea8cf4
BLI_rand : add BLI_halton_3D
2017-10-27 22:49:15 +02:00
Julian Eisel
147f9585db
Merge branch 'master' into blender2.8
2017-10-23 00:04:20 +02:00
Campbell Barton
6dfe4cbc6b
Polyfill Beautify: half-edge optimization
...
Was using an edge hash for triangle -> edge lookups,
updating triangle indices for each edge-rotation.
Replace this with half-edge which can rotate edges much more simply,
writing triangles back once the solution has been calculated.
Gives ~33% speedup in own tests.
2017-10-23 01:40:03 +11:00
Campbell Barton
c45b8a65b4
Merge branch 'master' into blender2.8
2017-10-20 14:14:44 +11:00
Campbell Barton
959a58da9e
Cleanup: redundant casts
2017-10-20 14:03:22 +11:00
Campbell Barton
0ffa64a45f
Merge branch 'master' into blender2.8
2017-10-17 14:06:49 +11:00
Campbell Barton
99520e3f92
Cleanup: use 'e' prefix for enum typedefs
...
Convention was only followed loosely,
apply to DNA where changes aren't likely to conflict.
(Skipped ModifierType for eg).
2017-10-17 13:49:20 +11:00
Campbell Barton
adfbf276a1
Cleanup: style, duplicate includes
2017-10-07 15:57:14 +11:00
Campbell Barton
ea606a7847
Merge branch 'master' into blender28
2017-10-06 21:25:33 +11:00
Campbell Barton
3df139c530
Cleanup: Math lib naming (use v3 suffix)
2017-10-06 21:06:38 +11:00
Campbell Barton
c454d816a9
Cleanup: style
2017-10-06 16:56:41 +11:00
Sergey Sharybin
2bfa061a15
Merge branch 'master' into blender2.8
...
Notes:
- Changes in paint_vertex.c were simple to merge, mainly related on passing
evaluation context.
- Conflicts in EditDM and drawmesh.c are solved using code from blender2.8
branch. Those areas are deprecated and not to be used in final release.
However, it's possible that some reference code from master is lost, so
keep attention when adding alpha support for vertex painting.
2017-10-03 12:59:06 +05:00
Campbell Barton
deb16defd5
Math Lib: distance to AABB
...
Original code by @mano-wii, modified for general use.
2017-10-02 22:07:39 +11:00
Andrea Weikert
ba67d94258
Compile fixes for MSVC:
...
* missing include for uint typedef
* macro syntax error
Reviewers: campbellbarton, fclem
Reviewed By: fclem
Differential Revision: https://developer.blender.org/D2863
2017-10-01 15:34:12 +02:00
Campbell Barton
e3fe8128e4
Merge branch 'master' into blender2.8
2017-09-29 19:55:00 +10:00
Campbell Barton
5a1954a5cb
Drop platform support for Solaris & AIX
...
These platforms didn't see maintenance in years.
This commit just removes ifdef's & cmake check.
2017-09-29 19:16:34 +10:00
Campbell Barton
9bd40cbce1
Merge branch 'master' into blender2.8
2017-09-27 11:18:23 +10:00
Campbell Barton
43b4913051
Math Lib: Add non-clamped round_* functions
...
Replace iroundf with round_fl_to_int, add other types
2017-09-27 11:13:03 +10:00
Clément Foucault
47e6d53c8a
BLI_rand : Add new low-discrepency sequences generator
2017-09-26 20:54:27 +02:00
Campbell Barton
24b083c8f3
Merge branch 'master' into blender2.8
2017-09-26 14:52:21 +10:00
Campbell Barton
aba2f8ea67
Beauty fill was skipping small faces
2017-09-26 12:59:23 +10:00
Campbell Barton
e40e29cd38
Fix T52871: beauty fill error
...
Only lock tri's facing different directions.
Needed because scanfill creates zero area faces.
2017-09-26 12:14:46 +10:00
Campbell Barton
293dc4e084
Revert "Fix T52871: BLI_polyfill_beautify_quad_rotate_calc_ex was mistakenly considering the state as degenerated"
...
This reverts commit a8f11f5422 .
Result is no longer symmetrical, will investigate a different fix.
2017-09-26 12:14:04 +10:00
Sergey Sharybin
98ba302f70
Merge branch 'master' into blender2.8
2017-09-25 18:57:43 +05:00
Germano
a8f11f5422
Fix T52871: BLI_polyfill_beautify_quad_rotate_calc_ex was mistakenly considering the state as degenerated
2017-09-23 12:59:02 -03:00
Campbell Barton
851228766e
Merge branch 'master' into blender2.8
2017-09-20 16:10:40 +10:00
Campbell Barton
f680e42a4c
Correct test ifdef in polyfill
2017-09-20 04:57:48 +10:00
Campbell Barton
16355d545b
Fix T52834: Polyfill2D fails with co-linear edges
2017-09-20 04:29:04 +10:00
Sergey Sharybin
af170839af
Merge branch 'master' into blender2.8
2017-09-19 21:08:14 +05:00
Campbell Barton
495d3c8dd7
CMake: update for renamed headers
2017-09-19 20:26:07 +10:00
Campbell Barton
7b95243240
BLI_utildefines_iter: Use for iteration helpers
2017-09-19 20:22:24 +10:00
Campbell Barton
60956397ca
Cleanup: BLI_utildefines prefix for header-only libs
...
This allows to have different macro headers without them sharing
similar names to regular C modules.
2017-09-19 20:16:05 +10:00
Campbell Barton
36f5972ed0
Avoid bias when calculating quad split direction
...
Some error checks weren't being done in both directions
when calculating the best split direction for a quad.
2017-09-19 15:10:52 +10:00
Campbell Barton
533ec46efb
Merge branch 'master' into blender2.8
2017-09-18 23:56:19 +10:00