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-10-07Cleanup: Move editmesh_undo.c to C++Hans Goudey
To allow moving mesh runtime data to C++ (D16180).
2022-10-02Cleanup: Move more files using mesh runtime data to C++Hans Goudey
In preparation for moving mesh runtime data out of DNA.
2022-09-12UV: support uv seams when computing uv islandsChris Blackbourn
An edge can be marked BM_ELEM_SEAM, which means the UV co-ordinates on either side of the edge are actually independent, even if they happen to currently have the same value. This commit optionally add support for UV Seams when computing islands. Affects UV sculpt tools, individual origins, UV stitch and changing UV selection modes etc. Required for upcoming packing refactor which requires seam support when computing islands. Differential Revision: https://developer.blender.org/D15875
2022-08-22Cleanup: match names between functions & declarationsCampbell Barton
Mostly update the declarations, in some cases rename in the function especially when the names used were inconstant with related functions.
2022-08-17UV: grab tool supports live unwrapChris Blackbourn
Differential Revision: https://developer.blender.org/D15709
2022-08-17UV: add geometry driven uv relax brushChris Blackbourn
Differential Revision: https://developer.blender.org/D15530
2022-08-14Cleanup: Move object_vgroup.c to C++Hans Goudey
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-08-08Cleanup: refactoring uvislands to prepare for python apiChris Blackbourn
Rename vert -> vertex. Add `BM_uv_element_get_head`. See also: D15598
2022-08-02Cleanup: Simplify functions for adding and removing color attributesHans Goudey
The specific functions for vertex colors and and sculpt vertex colors can be replaced by more generic attribute functions internally. Also remove a paramter from one function.
2022-08-02Cleanup: Remove unused sculpt and vertex color operatorsHans Goudey
The "Color Attributes" system from f7bbc7cdbb6cb0d2850 has replaced both "Sculpt Vertex Colors" and "Vertex Colors" in the UI. The Operators for adding and removing them are unused now. This commit does not break backwards compatibility with the Python API, it only removes the operators, which generally aren't used by addons anyway. The mesh RNA properties will be removed in 4.0 (T100153). Differential Revision: https://developer.blender.org/D15077
2022-07-13Fix T99659: Improve UV Island calculation with hidden faces.Chris Blackbourn
Simplify interface, regularize implementation and some light cleanup. See also: T79304 and D15419.
2022-07-09Weight & Vertex Paint: always respect edit mode hiding on faces.Alexander Gavrilov
In some cases it is mandatory to be able to hide parts of the mesh in order to paint certain areas. The Mask modifier doesn't work in weight paint, and edit mode hiding requires using selection, which is not always convenient. This makes the weight and vertex paint modes always respect edit mode hiding like sculpt mode. The change in behavior affects drawing and building paint PBVH. Thus it affects brushes, but not menu operators like Smooth or Normalize. In addition, this makes the Alt-H shortcut available even without any selection enabled, and implements Hide for vertex selection. Differential Revision: https://developer.blender.org/D14163
2022-05-23Cleanup: remove "texture" from ED_mesh_uv_texture_* funcitonsCampbell Barton
This name made sense when UV's and textures were stored in the same layer (MTFace & TFace).
2022-05-15Cleanup: Move three mesh editors files to C++Hans Goudey
Simplifies refactoring in D14685, allows use of better data structures.
2022-04-04Cleanup: ensure space after file named in headersCampbell Barton
Add blank lines after file references to avoid them being interpreted as doc-strings the following declarations.
2022-03-16View 3D: move picking arguments into a struct & minor refactorCampbell Barton
- Add SelectPick_Params struct to make picking logic more straightforward and easier to extend. - Use `eSelectOp` instead of booleans (extend, deselect, toggle) which were used to represent 4 states (which wasn't obvious). - Handle deselect_all when pocking instead of view3d_select_exec, de-duplicate de-selection which was already needed in when replacing the selection in picking functions. - Handle outliner update & notifiers in the picking functions instead of view3d_select_exec. - Fix particle select deselect_all option which did nothing.
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
2022-01-24Cleanup: Grammar: its self vs. itselfHans Goudey
2022-01-07Cleanup: remove redundant const qualifiers for POD typesCampbell Barton
MSVC used to warn about const mismatch for arguments passed by value. Remove these as newer versions of MSVC no longer show this warning.
2022-01-06Cleanup: spelling in commentsCampbell Barton
2021-12-13Cleanup: spelling in commentsCampbell Barton
Also move notes about where noise functions come from into the function body as it's not relavant to the public doc-string.
2021-12-08Cleanup: move public doc-strings into headers for 'editors'Campbell Barton
Ref T92709
2021-11-09Fix T92318: adding layers (UVs, ...) doesn't notify about limitPhilipp Oeser
When adding certain customdata layers (namely UVs, vertex colors and sculpt vertex colors), the user does not get notified the specific limit has been hit (blender just silently does nothing). Now inform the user [decided to not do this in poll() since it could get messy once operators are extended to operate on all selected objects, so left this as a visible error in execute() -- or from python]. Maniphest Tasks: T92318 Differential Revision: https://developer.blender.org/D13147
2021-07-13Cleanup: minor changes to edit-mesh API callsCampbell Barton
Rename: - EDBM_mesh_free -> EDBM_mesh_free_data BKE_editmesh_free -> BKE_editmesh_free_data Since this doesn't free the edit-mesh pointer. - BKE_editmesh_free_derivedmesh -> BKE_editmesh_free_derived_caches Since this no longer uses derived-mesh, match naming for the related object function BKE_object_free_derived_caches. Also remove `do_tessellate` argument from BKE_editmesh_create, since the caller can explicitly do this if it's needed, with the advantage that it can be combined with normal calculation which is faster on high-poly meshes.
2021-07-05EditMesh: extract restore logic out of EDBM_redo_state_freeCampbell Barton
Split mesh restore logic into a new function: `EDBM_redo_state_restore_and_free`.
2021-06-26Cleanup: full sentences in comments, improve comment formattingCampbell Barton
2021-06-14BMesh: support face-normal calculation in normal & looptri functionsCampbell Barton
Support calculating face normals when tessellating. When this is done before updating vertex normals it gives ~20% performance improvement. Now vertex normal calculation only needs to perform a single pass on the mesh vertices when called after tessellation. Extended versions of normal & looptri update functions have been added: - BM_mesh_calc_tessellation_ex - BM_mesh_normals_update_ex Most callers don't need to be aware of this detail by using: - BKE_editmesh_looptri_and_normals_calc - BKE_editmesh_looptri_and_normals_calc_with_partial - EDBM_update also takes advantage of this, where calling EDBM_update with calc_looptri & calc_normals enabled uses the faster normal updating logic.
2021-06-14Edit Mesh: use params arg for update function, add calc_normals argCampbell Barton
Rename function EDBM_update_generic to EDBM_update, use a parameters argument for better readability. Also add calc_normals argument, which will have benefits when calculating normals and tessellation together is optimized.
2021-03-31Cleanup: naming for edit-mesh nearest distance valuesCampbell Barton
- Don't use `r_` prefix for an argument that's also read from (this is meant for return only arguments). - Rename variables to make it clear the distance is pixels, using manhattan length measurement.
2021-03-31Fix T87080: Select shortest path fails in face modeCampbell Barton
Regression in 80cbbd2843c2358879b1a710d81a3b41e1468327. Unfortunately keeping selection picking behavior as well as supporting finding the nearest face within a radius requires an inconsistency between x-ray and back-buffer selection that doesn't work well using the current arguments. Resolve by adding an argument that causes the input distance to be ignored for back-buffer selection. This is used by selection picking but not the knife tool. This changes behavior for path-selection in face mode, which now uses a margin for back-buffer selection. From my own testing this doesn't seem to be a problem like it could be for regular selection picking.
2020-09-04Cleanup: Clang-Tidy readability-inconsistent-declaration-parameter-name fixSebastian Parborg
No functional changes
2020-09-01Fix T80224: Crash after duplicating and hiding vertices while using X Axis ↵Germano Cavalcante
Mirror The mirror map can reference a hidden vertex that is currently ignored in the transformation. Thus the mirror element array is not filled.
2020-08-07Code Style: use "#pragma once" in source directoryJacques Lucke
This replaces header include guards with `#pragma once`. A couple of include guards are not removed yet (e.g. `__RNA_TYPES_H__`), because they are used in other places. This patch has been generated by P1561 followed by `make format`. Differential Revision: https://developer.blender.org/D8466
2020-07-21UV: remove selection threshold for nearby coordinatesCampbell Barton
Internally UV selection considered close UV's to be connected. While this could be convenient in some cases, it complicates logic for more advanced selection operations that need to check when UV's should be considered part of the same vertex since simple threshold checks would give different results depending on the order of UV's tested. Users must now run "Merge by Distance" instead of relying on this selection threshold.
2020-07-02Cleanup: Remove useless duplicated linesValentin
I spotted a duplicate struct declaration, so I had to check for other duplicated as well There might be some other but i am not confident enough for deleting them this regex search for duplicate ^(.*;)$\n(\1)$ Reviewed By: JacquesLucke Differential Revision: https://developer.blender.org/D8146
2020-06-23Sculpt Vertex Colors: Initial implementationPablo Dobarro
Sculpt Vertex Colors is a painting system that runs inside sculpt mode, reusing all its tools and optimizations. This provides much better performance, easier to maintain code and more advanced features (new brush engine, filters, symmetry options, masks and face sets compatibility...). This is also the initial step for future features like vertex painting in Multires and brushes that can sculpt and paint at the same time. This commit includes: - SCULPT_UNDO_COLOR for undo support in sculpt mode - SCULPT_UPDATE_COLOR and PBVH flags and rendering - Sculpt Color API functions - Sculpt capability for sculpt tools (only enabled in the Paint Brush for now) - Rendering support in workbench (default to Sculpt Vertex Colors except in Vertex Paint) - Conversion operator between MPropCol (Sculpt Vertex Colors) and MLoopCol (Vertex Paint) - Remesher reprojection in the Voxel Remehser - Paint Brush and Smear Brush with color smoothing in alt-smooth mode - Parameters for the new brush engine (density, opacity, flow, wet paint mixing, tip scale) implemented in Sculpt Vertex Colors - Color Filter - Color picker (uses S shortcut, replaces smooth) - Color selector in the top bar Reviewed By: brecht Maniphest Tasks: T72866 Differential Revision: https://developer.blender.org/D5975
2020-06-17Cleanup: name mesh join functions using ED_{type} prefixCampbell Barton
2020-04-07Cleanup: doxy sections, move utility function to editmesh_utils.cCampbell Barton
2020-04-03Cleanup: split ED_mesh_mirror_*_table into multiple functionsCampbell Barton
Spatial & topology mirror table each used a single function taking a char as an identifier. Split these into begin/end/lookup functions.
2020-03-06Cleanup: Rename ARegion variables from ar to regionJulian Eisel
The old convention was easy to confuse with ScrArea. Part of https://developer.blender.org/T74432. This is mostly a batch rename with some manual fixing. Only single word variable names are changed, no prefixed/suffixed names. Brecht van Lommel and Campbell Barton both gave me a green light for this convention change. Also ran clan clang format on affected files.
2020-01-07Edit Mesh: pass in Mesh instead of BMEditMesh to EDBM_update_genericCampbell Barton
This avoids a list lookup in Main (recently added), passing in a mesh instead of an edit-mesh, since the mesh links to the edit-mesh.
2020-01-07BMesh: remove BMEditMesh.ob use for ED_mesh_mirror_* APICampbell Barton
2020-01-07BMesh: remove BMEditMesh.ob use for select mirrorCampbell Barton
2020-01-07BMesh: remove BMEditMesh.ob use for vert coord access, projectionCampbell Barton
2020-01-02Cleanup: quiet const warningsCampbell Barton
2020-01-02EditMesh: Improve AutoMerge with Split Edges & Facesmano-wii
Previously, compared to `Auto Merge` without `Split Edges & Faces`, `Auto Merge` with this option ignored duplicates between selected vertices. It only considered duplicates between selected vertices and unselected vertices. This is a regress and not a progress. This commit implements this behavior, so this option matches the other `Auto Merge`.
2019-12-31Transform: Individual Origins: Create islands between only selected uvs.mano-wii
Currently the islands are created depending only on the visible UVs. This can be confusing because compared to Edit Meshes, islands are created based on the selected elements. T68284 shows a case where this confusion is observed. Differential Revision: https://developer.blender.org/D6502
2019-11-27Fix T71865: Separating mesh parts breaks shape keysCampbell Barton
This was an old bug which could be caused by saving after separating. Changes from 79b703bb635e made this fail reliably. Update shape key indices when they may be used again later.
2019-11-27Add 'EDBM_selectmode_disable_multi' and use in knifeprojectPhilipp Oeser
As a followup to rB6f4e595e9ba9 and as per @campbellbarton suggestion, this adds EDBM_selectmode_disable_multi, similar to EDBM_mesh_deselect_all_multi & EDBM_mesh_deselect_all, so other similar uses don't need to be done in a loop. Also, selected_objects isn't a reliable way to handle this case - since objects can be in edit-mode & not selected, use BKE_view_layer_array_from_bases_in_edit_mode_unique_data instead Differential Revision: https://developer.blender.org/D6317