Age | Commit message (Collapse) | Author |
|
|
|
rename change/is_change/is_changed/modified -> changed
also use bools over int/short/char and once accidental float.
|
|
Another Evil Typo (r) one, you could add much more than the 8 allowed VCol layers!
Note: added some (warning-only) checks in mesh validate functions, but we still have a big issue with new cdlayer merge function, which could generate more than 8 layers of UVs or VCol... Don't know yet how to handle this situation. :(
|
|
values. from r60260
also correct some comments.
|
|
In fact, the issue was that names of mloopuv/mtespoly layers could very easily get out of sync (a simple rename was enough), while most tools (such as the UVProject modifier) expect matching layers to have the same name!
Now matching names are check on load, and renaming of a layer through RNA is guaranted to be synchronized with its counterparts.
Thanks to Brecht & Campbell for reviews.
|
|
crashes Blender
issue was mesh somehow had a mismatch of UV/texpoly layers. we may want to allow this in the future but for now sync on load just in case.
|
|
calculations) into mesh_evaluate.c.
mesh.c was over 4k lines and complex functions mixed in with general library management.
|
|
|
|
checks that every modifier gives a valid mesh (very slow) - so off by default even in debug mode.
|
|
|
|
pass in the argument to reserve the size.
|
|
|
|
|
|
remove MEM_sys_types.h which was a duplicate.
|
|
old issue, the formulas here were never quite right, should all work ok now
with byte and float images.
Some differences:
* Colors with zero alpha from the background will never have an influence, so
you don't get alpha fringes when painting over such areas. This does give
hard edges when looking at the RGB channels alone, but there's no way to
avoid that and fringes at the same time, same behavior as other painting apps.
* Add/Subtract/Multiply/Lighten/Darken now leave the alpha channel unchanged
and work only the RGB channels, again same behavior as many other apps.
* Erase/Add alpha now compensates for premultiplied float images to keep the
straight RGB colors the same.
Next: fix projection painting.
|
|
|
|
* Also fixed some more cases of "more then" -> "more than".
|
|
args.
|
|
(edges selected but nothing else).
add arg to BKE_mesh_calc_edges() so selecting newly created edges is optional.
|
|
|
|
instead use 'exec' operator on a saved file and
invoke on unsaved files.
correct missing memset --> CustomData_reset switch too.
|
|
|
|
|
|
Related on #31944: Blender crashes on switching to mesh edit mode
|
|
Added back face validation to BKE_mesh_validate_arrays.
This is needed because some addons (like OBJ importer) are reading
tessfaces and then converting them to ngons and validation of tessfaces
is needed before such a conversion.
Validation of faces would happen only if there's no polys in mesh.
|
|
with ';' like normal function.
... without this some editors dont parse the source so well.
|
|
- style - multi-line ifs move braces onto new lines.
- iterators - convert some to macros, other split up and move brace.
|
|
|
|
vertices used within the same polygon.
(which would crash otherwise)
|
|
|
|
also add code cleanup script which runs uncrustify and then undoes trailing whitespace edits (reducing diff noise)
|
|
|
|
else if's
|
|
Everything seems to work well (many tests making random changes over various meshes went good), but the code is a bit complex and hard to follow, due to the various possibilities of invalid poly/loop combinations… Code also makes more operations than previous tri/quad faces version (hence is a bit slower), but I don’t think we can do otherwise, it’s just the price for bmesh flexibility. ;)
Note: added the py script I used to make the tests, under source/tests/...
|
|
|
|
|
|
|
|
and have edge hash use unsigned ints since edge verts are unsigned ints for MEdge's
|
|
|
|
branch has run out of bits
|
|
|
|
|
|
even when do_fixes was false, also return true if any bad vertex weights were found.`
|
|
|
|
added checks to mesh.validate() so it checks for nan weights and negative groups which can crash blender.
the file in the report looks to be corrupt, but this at least can make it load.
also noticed validate was using isnan() and finite() were both used to check valid vertex locations, only finite is needed.
|
|
|
|
coordinates to zero and zero-length normals to Z-up direction.
|
|
|
|
- use NULL rather then 0 for pointers
- use static functions where possible
- add own includes to ensure func's and their declarations don't get out of sync.
|
|
|