Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-09-05Mesh: Remove redundant custom data pointersHans Goudey
For copy-on-write, we want to share attribute arrays between meshes where possible. Mutable pointers like `Mesh.mvert` make that difficult by making ownership vague. They also make code more complex by adding redundancy. The simplest solution is just removing them and retrieving layers from `CustomData` as needed. Similar changes have already been applied to curves and point clouds (e9f82d3dc7ee, 410a6efb747f). Removing use of the pointers generally makes code more obvious and more reusable. Mesh data is now accessed with a C++ API (`Mesh::edges()` or `Mesh::edges_for_write()`), and a C API (`BKE_mesh_edges(mesh)`). The CoW changes this commit makes possible are described in T95845 and T95842, and started in D14139 and D14140. The change also simplifies the ongoing mesh struct-of-array refactors from T95965. **RNA/Python Access Performance** Theoretically, accessing mesh elements with the RNA API may become slower, since the layer needs to be found on every random access. However, overhead is already high enough that this doesn't make a noticible differenc, and performance is actually improved in some cases. Random access can be up to 10% faster, but other situations might be a bit slower. Generally using `foreach_get/set` are the best way to improve performance. See the differential revision for more discussion about Python performance. Cycles has been updated to use raw pointers and the internal Blender mesh types, mostly because there is no sense in having this overhead when it's already compiled with Blender. In my tests this roughly halves the Cycles mesh creation time (0.19s to 0.10s for a 1 million face grid). Differential Revision: https://developer.blender.org/D15488
2022-08-11Mesh: Move hide flags to generic attributesHans Goudey
This commit moves the hide status of mesh vertices, edges, and faces from the `ME_FLAG` to optional generic boolean attributes. Storing this data as generic attributes can significantly simplify and improve code, as described in T95965. The attributes are called `.hide_vert`, `.hide_edge`, and `.hide_poly`, using the attribute name semantics discussed in T97452. The `.` prefix means they are "UI attributes", so they still contain original data edited by users, but they aren't meant to be accessed procedurally by the user in arbitrary situations. They are also be hidden in the spreadsheet and the attribute list by default, Until 4.0, the attributes are still written to and read from the mesh in the old way, so neither forward nor backward compatibility are affected. This means memory requirements will be increased by one byte per element when the hide status is used. When the flags are removed completely, requirements will decrease when hiding is unused. Further notes: * Some code can be further simplified to skip some processing when the hide attributes don't exist. * The data is still stored in flags for `BMesh`, necessitating some complexity in the conversion to and from `Mesh`. * Access to the "hide" property of mesh elements in RNA is slower. The separate boolean arrays should be used where possible. Ref T95965 Differential Revision: https://developer.blender.org/D14685
2022-03-25Cleanup: use count or num instead of nbrCampbell Barton
Follow conventions from T85728.
2022-02-11File headers: SPDX License migrationCampbell Barton
Use a shorter/simpler license convention, stops the header taking so much space. Follow the SPDX license specification: https://spdx.org/licenses - C/C++/objc/objc++ - Python - Shell Scripts - CMake, GNUmakefile While most of the source tree has been included - `./extern/` was left out. - `./intern/cycles` & `./intern/atomic` are also excluded because they use different header conventions. doc/license/SPDX-license-identifiers.txt has been added to list SPDX all used identifiers. See P2788 for the script that automated these edits. Reviewed By: brecht, mont29, sergey Ref D14069
2021-12-10Cleanup: move public doc-strings into headers for various API'sCampbell Barton
Some doc-strings were skipped because of blank-lines between the doc-string and the symbol and needed to be moved manually. - Added space below non doc-string comments to make it clear these aren't comments for the symbols directly below them. - Use doxy sections for some headers. Ref T92709
2021-12-07Cleanup: move public doc-strings into headers for 'blenkernel'Campbell Barton
- Added space below non doc-string comments to make it clear these aren't comments for the symbols directly below them. - Use doxy sections for some headers. - Minor improvements to doc-strings. Ref T92709
2021-12-07Cleanup: Fix various source typosluzpaz
This is a continuation of D13462 to clean up source typos. Differential Revision: https://developer.blender.org/D13471
2021-07-20Cleanup: use single back-tick quoting in commentsCampbell Barton
While doxygen supports both, conform to our style guide. Note that single back-tick's are already used in a majority of comments.
2021-07-07Cleanup: spelling in commentsCampbell Barton
2021-07-03Cleanup: consistent use of tags: NOTE/TODO/FIXME/XXXCampbell Barton
Also use doxy style function reference `#` prefix chars when referencing identifiers.
2021-06-28Cleanup: repeated terms in code comments & error messagesCampbell Barton
2021-06-18Cleanup: replace 'unsigned in' with 'uint'Campbell Barton
2020-11-20Cleanup: spellingCampbell Barton
2020-08-07Cleanup: Blenkernel, Clang-Tidy else-after-return fixesSybren A. Stüvel
This addresses warnings from Clang-Tidy's `readability-else-after-return` rule in the `source/blender/blenkernel` module. No functional changes.
2020-07-13Clang Tidy: enable readability-non-const-parameter warningJacques Lucke
Clang Tidy reported a couple of false positives. I disabled those `NOLINTNEXTLINE`. Differential Revision: https://developer.blender.org/D8199
2020-03-19Cleanup: `make format` after SortedIncludes changeDalai Felinto
2019-08-24Fix T68807: smoothing group issuePhilipp Oeser
Showed in OBJ export. Caused by comparison mistake in rB2e91fc39ac7. Reviewers: mont29 Maniphest Task: T68807 Differential Revision: https://developer.blender.org/D5561
2019-07-10Fix broken Mesh 'calc_smooth_groups' logic.Bastien Montagne
We need to check both polygons of a manifold edge to be sure it is actually smooth... Reported by Hugo Sales (@someonewithpc) on blender.chat, thanks.
2019-07-02Cleanup: move comments onto own lines to avoid breaking linesCampbell Barton
2019-04-27Cleanup: comments (long lines) in blenkernelCampbell Barton
2019-04-22Cleanup: style, use braces for blenkernelCampbell Barton
2019-04-17ClangFormat: apply to source, most of internCampbell Barton
Apply clang format as proposed in T53211. For details on usage and instructions for migrating branches without conflicts, see: https://wiki.blender.org/wiki/Tools/ClangFormat
2019-02-18doxygen: add newline after \fileCampbell Barton
While \file doesn't need an argument, it can't have another doxy command after it.
2019-02-06Cleanup: remove redundant doxygen \file argumentCampbell Barton
Move \ingroup onto same line to be more compact and make it clear the file is in the group.
2019-02-01Cleanup: remove redundant, invalid info from headersCampbell Barton
BF-admins agree to remove header information that isn't useful, to reduce noise. - BEGIN/END license blocks Developers should add non license comments as separate comment blocks. No need for separator text. - Contributors This is often invalid, outdated or misleading especially when splitting files. It's more useful to git-blame to find out who has developed the code. See P901 for script to perform these edits.
2019-01-26Cleanup: blank lines over doxy headersCampbell Barton
2018-12-12Cleanup: use colon separator after parameterCampbell Barton
Helps separate variable names from descriptive text. Was already used in some parts of the code, double space and dashes were used elsewhere.
2018-09-24Spelling fixes in comments and descriptions, patch by luzpaz.Brecht Van Lommel
Differential Revision: https://developer.blender.org/D3719
2018-07-16Cleanup: Use const qualifier for UV vertex mapSergey Sharybin
2018-07-16Cleanup: More clear naming in UV vertex/element mappingsSergey Sharybin
Also use unsigned short for loop index within a polygon for UV vertex mapping, which matches UV element mapping.
2018-07-13Cleanup: right shift argumentsCampbell Barton
2017-10-20Cleanup: redundant castsCampbell Barton
2017-06-02Cleanup: styleCampbell Barton
2016-07-25Cleanup: debug-only variable.Bastien Montagne
2016-07-21Add BKE_mesh_calc_islands_loop_poly_uvmap and use it in new OSD UV subdiv.Bastien Montagne
Also renamed BKE_mesh_calc_islands_loop_poly_uv to BKE_mesh_calc_islands_loop_poly_edgeseam, to avoid confusion...
2016-07-21BKE mesh mapping: add new BKE_mesh_edge_loop_map_create().Bastien Montagne
Maps edges to all their pair of loops.
2016-05-21BKE Mesh mapping: add 'vert to looptri' mapping generator.Bastien Montagne
2016-03-22Mesh API: add BKE_mesh_vert_edge_vert_map_createCampbell Barton
Handy when you need to reference connected verts directly.
2015-10-04BLI_Buffer: add BLI_buffer_reinitCampbell Barton
Useful for re-using a buffer when the existing data can be thrown away.
2015-10-04BLI_Buffer: support over 2gb allocationsCampbell Barton
Also move comment to C-source and enumerate useful features.
2015-09-04Quiet warningsJulian Eisel
We had too many warnings lately... was awaiting that someone would kill them - didn't happen -> goes to my commit ratio! :P
2015-07-23Fix memory leaks mesh w/ mesh remappingCampbell Barton
2015-07-23Utility function to get poly -> looptri mappingCampbell Barton
2015-06-20Transform: UV islands were split by windingCampbell Barton
This meant front/back faces from a projection would be seen as separate islands.
2015-05-17BMesh: don't check winding for uv-vert-mapCampbell Barton
Made link-select separate front/back with projected UV's
2015-04-30Data transfer - Loop Islands Hell Fixes.Bastien Montagne
This commit fixes several issues: * island_store->items_to_islands_num was reset each time we added a new island, this is stupid! Harmless too, though, afaikt. * partial verts bvhtree (with several islands) was hugely over-allocated... * we would 'leak' in neighbor islands when geometry itself was contiguous. * best_nor_dot was used incorrectly, leading to smaller weights for better matching normal! All those fixes are related to T44522 (through personal communications with reporter).
2015-04-28Minor cleanup in comments.Bastien Montagne
2015-04-28Fix T44530 UV islands fail on subsurf after mirror modifier.Antony Riakiotakis
Caused by own commit that changed island detection code. In the case of modifiers we don't want to take winding information into account, but left the code since there are use cases (like painting) which could use this.
2015-04-09Seriously... Fix building!Bastien Montagne
2015-04-09Fix part of T44320 selecting islands can fail.Antony Riakiotakis
Issue here is simple and has been fixed in other places such as texpainting: Basically if face has different winding, do not calculate it as adjucent to the other face, even if UV is identical. This allows us to stack islands of symmetrical closed meshes on top of one another and still be able to select the two identical island halfs (provided the normals are correct of course).