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
2021-08-20Cleanup: use "free_data" suffix when the argument isn't freedCampbell Barton
Avoid API misuse that caused leaks in T90791 & 2788b0261cb7d33a2f6f2978ff4f55bb4987edae.
2021-08-20Cleanup: rename BKE_mesh_free_data -> BKE_mesh_free_data_for_undoCampbell Barton
This function only makes sense for undo which doesn't initialize the meshes ID. Otherwise BKE_id_free should be used.
2021-08-20Fix T90791: Knife project leaks memory with curve/text cutterCampbell Barton
2021-08-20Cleanup: rename BKE_mesh_free -> BKE_mesh_free_dataCampbell Barton
It wasn't obvious this didn't free the memory of the mesh it's self leading to memory leaks.
2021-08-17Edit Mesh: skip unselected meshes for "Tris to Quads"Campbell Barton
Also move property assignment out of the object loop.
2021-08-17Edit Mesh: skip unselected meshes for "Set Normals from Faces"Campbell Barton
2021-08-17Edit Mesh: skip normals to vector with unselected meshes for "Delete"Campbell Barton
Meshes with unselected elements are skipped but still called BM_custom_loop_normals_to_vector_layer.
2021-08-17Edit Mesh: skip flipping custom normals for meshes with no selectionCampbell Barton
Also split out normal calculation into functions.
2021-08-17Fix memory leak in edit-mesh dissolve degenerateCampbell Barton
2021-08-13Cleanup: split BKE_mesh_calc_normals_poly function in twoCampbell Barton
Remove the 'only_face_normals' argument. - BKE_mesh_calc_normals_poly for polygon normals. - BKE_mesh_calc_normals_poly_and_vertex for poly and vertex normals. Order arguments logically: - Pair array and length arguments. - Position normal array arguments (to be filled) last.
2021-08-10Edit Mesh: multi-object edit-mode support for knife projectCampbell Barton
2021-08-10Fix T90493: Undo a knife-project operation crashesCampbell Barton
The crash occurred calling because mesh_get_eval_final in edit-mode freed all derived mesh data without tagging the object for updating. However meshes in edit-mode weren't meant to be used as knife-project source-data, adding support for multi object edit-mode caused this.
2021-08-06Cleanup: use MEM_SAFE_FREE macroCampbell Barton
2021-08-05BMesh: support laplacian smooth for n-gonsCampbell Barton
Follow the same logic already used by the modifier.
2021-08-04Make loopcut drawing consistent between gizmo and operator.Anthony Edlin
Loopcut drawing from gizmo had thicker lines because it was using line smoothing without alpha blend, compared to thin jagged lines from operator. Make the drawing anti aliased and consistent by using 3D_POLYLINE/3D_POINT shaders, and making sure alpha blending is on. Reviewed By: #eevee_viewport, fclem Differential Revision: https://developer.blender.org/D11333
2021-08-03WM: don't store selection properties typically set in the key-mapCampbell Barton
While this was already the case for the most part some selection operators stored common settings for reuse such as "toggle", "extend" & "deselect". Disabling storing these settings for later execution as it means failure to set these options in the key-map re-uses the value of the shortcut that was last called. Skip saving these settings since this is a case where reusing them isn't helpful. Resolves T90275.
2021-08-03Fix T85436: Separate by loose parts doesn't show new objectsCampbell Barton
Only the "changed" state from the last edit-object was used, this meant the operator would not perform the necessary update with multi-object edit-mode. Use "changed" & "changed_multi" naming convention.
2021-08-03Correct task ID in 00b57136e4167ef5a303b1215574bb52a22e9194Campbell Barton
2021-08-03Revert "Fix spin-gizmo not allowing click events to select vertices"Campbell Barton
This reverts commit 0b903755a9908344e9fcb4a33b4f0340abeb9386. This caused T86030, left-mouse selection override clicking, which is used for creating a full revolution.
2021-08-03Edit Mesh: Correct normal calculation for "Set From Faces"Campbell Barton
Setting normals from faces wasn't weighting the faces contribution by the corner angle, giving lop-sided results in some cases. This removes the epsilon check for CLNORS_VALID_VEC_LEN, in favor of matching the behavior of vertex normals exactly.
2021-07-30Cleanup: clang-format (re-run after v12 version bump)Campbell Barton
2021-07-22Make polls for removing mesh data layers consistentPhilipp Oeser
This was reported in T90026 for attributes, but was also true for: - UVMaps - Vertex Colors - Sculpt Vertex Colors - Face Maps For Vertex groups and Shapekeys this was already done (in that their remove poll would check if there is a vertex group or shapekey to begin with), now make this consistent across all mentioned types. Thx @vvv for the initial patch (where this was done for attributes only) ref T90026 Reviewed By: HooglyBoogly Maniphest Tasks: T90026 Differential Revision: https://developer.blender.org/D11990
2021-07-19Fix some mesh edition macro operators incorrectly setting an empty ↵Bastien Montagne
description string. No operator or macro should be missing description. But if they do, then they should use NULL pointer, and not an empty string. This behavior was already enforced (through an assert) for operators, previous commit made it the same for macros.
2021-07-13Refactor: Move vertex group names to object dataHans Goudey
This commit moves the storage of `bDeformGroup` and the active index to `Mesh`, `Lattice`, and `bGPdata` instead of `Object`. Utility functions are added to allow easy access to the vertex groups given an object or an ID. As explained in T88951, the list of vertex group names is currently stored separately per object, even though vertex group data is stored on the geometry. This tends to complicate code and cause bugs, especially as geometry is created procedurally and tied less closely to an object. The "Copy Vertex Groups to Linked" operator is removed, since they are stored on the geometry anyway. This patch leaves the object-level python API for vertex groups in place. Creating a geometry-level RNA API can be a separate step; the changes in this commit are invasive enough as it is. Note that opening a file saved in 3.0 in an earlier version means the vertex groups will not be available. Differential Revision: https://developer.blender.org/D11689
2021-07-13Cleanup: replace BKE_customdata.h in BKE_editmesh.hCampbell Barton
Only DNA_customdata_types.h is needed for BMEditMesh.
2021-07-13Undo: optimize edit-mode undoCampbell Barton
- Tag the object data instead of the object when decoding (this avoids duplicating mesh object-data on each undo-step). - Calculate face normals as part of multi-threaded tessellation. This gives ~11% speedup with 1.5x million polygons.
2021-07-13Cleanup: remove commented codeCampbell Barton
Replace with brief note in warning.
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-07Cleanup: spelling in commentsCampbell Barton
2021-07-06Cleanup: rename 'count' to 'len'Campbell Barton
Reserve the term count for values that require calculation (typically linked lists).
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-07-05Cleanup: remove unnecessary bmesh operator commentsCampbell Barton
2021-07-05Fix early return in reverse-color where continue was intendedCampbell Barton
2021-07-05BMesh: remove redundant mesh-backups from EDBM_op_* APICampbell Barton
Using BMesh operators through the edit-mesh API created a full copy of the mesh so it was possible to restore the mesh in case one of the operators raised an error. Remove support for automatic backup/restore from the EDBM_op_* API's as it adds significant overhead and was rarely used. Operators that need this can use the BMBackup API to backup & restore the mesh in case of failure. Add warning levels to BMO_error_raise so operators can report problems without it being interpreted as a request to cancel the operation. For high-poly meshes creating and freeing a full copy is an expensive operation, removing this gives a speedup of ~1.77x for most operators except for "connect_verts" / "connect_vert_pair" which still uses this functionality.
2021-07-05BMesh: remove redundant copy-on-write taggingCampbell Barton
The evaluated meshes no longer store a copy of the edit-mesh so tagging when a BMesh operator fails can be removed.
2021-07-03Cleanup: consistent use of tags: NOTE/TODO/FIXME/XXXCampbell Barton
Also use doxy style function reference `#` prefix chars when referencing identifiers.
2021-07-02Cleanup: Use const variables for object's evaluated meshHans Goudey
Generally the evaluated mesh should not be changed, since that is the job of the modifier stack. Current code is far from const correct in that regard. This commit uses a const variable for the reult of `BKE_object_get_evaluated_mesh` in some cases. The most common remaining case is retrieving a BVH tree from the mesh.
2021-07-02Cleanup: refactor edit-mesh copy functions into functionsCampbell Barton
2021-07-02Cleanup: spelling in commentsCampbell Barton
2021-06-28Fix edit-mesh random select regression in random seed usePiotr Makal
Fix regression in 9c202281287743494fd7d81a13970053bc8a33b5 that wasn't using the random seed correctly.
2021-06-26Cleanup: full sentences in comments, improve comment formattingCampbell Barton
2021-06-24Depsgraph: support flushing parameters without a full COW updateCampbell Barton
Avoid computationally expensive copying operations when only some settings have been modified. This is done by adding support for updating parameters without tagging for copy-on-write. Currently only mesh data blocks are supported, other data-blocks can be added individually. This prepares for changing values such as edit-mesh auto-smooth angle in edit-mode without duplicating all mesh-data. The benefit will only be seen when the user interface no longer tags all ID's for copy on write updates. ID_RECALC_GEOMETRY_ALL_MODES has been added to support situations where non edit-mode geometry is modified in edit-mode. While this isn't something user are likely to do, Python scripts may change the underlying mesh. Reviewed By: sergey Ref D11377
2021-06-24Cleanup: comment blocks, trailing space in commentsCampbell Barton
2021-06-24Cleanup: remove outdated/redundant commentsCampbell Barton
2021-06-23Fix T89342: Select mirror with a zero length central edge assertsCampbell Barton
2021-06-23Fix T89367: Crash running edit-mesh select_linked_pick from PythonCampbell Barton
2021-06-22Cleanup: Spelling MistakesLeon Zandman
This patch fixes many minor spelling mistakes, all in comments or console output. Mostly contractions like can't, won't, don't, its/it's, etc. Differential Revision: https://developer.blender.org/D11663 Reviewed by Harley Acheson
2021-06-22Fix T89347: Edit-mesh make planar faces doesn't update face normalsCampbell Barton
Invalid face normals were used for tessellation.
2021-06-22Fix T89345: Edit-mesh decimate doesn't update face normalsCampbell Barton
Invalid face normals were used for tessellation.
2021-06-21Fix T32214: Wireframe edge select fails with verts behind the viewCampbell Barton
This resolves a long standing bug in edge selection (picking, circle, box & lasso). Now when one of the edges vertices fails to project into screen space, the edge is clipped by the viewport to calculate an on-screen location that can be used instead. This isn't default as it may be important for the on the screen location not to be clipped by the viewport.