Page MenuHome

Pinning data (mesh, curve, grease pencil, lattice) makes certain tabs disappear (vertex groups, shapekeys facemaps)
Confirmed, NormalPublicKNOWN ISSUE

Description

System Information
Operating system: Microsoft 10
Graphics card:GeForce GTX 10606GB

Blender Version
Broken: 2.93
Worked: don't know

in the properties editor, in object data properties, the pin toggle hides vertex groups and shapekeys

Exact steps for others to reproduce the error
-select default cube
-go to properties editor
-press object data properties tab
-press the pin button

Event Timeline

Philipp Oeser (lichtwerk) changed the task status from Needs Triage to Confirmed.Thu, Jul 22, 10:16 AM
Philipp Oeser (lichtwerk) claimed this task.

Confirmed, will check

Same is true for Face Maps.

When pinned, these panels look for an object in context (not a mesh) -- but when a mesh is pinned there is no object in context
Reason being:

  • Vertex groups are still tied to object (rather than mesh) from the python API side (even after rB3b6ee8cee708: Refactor: Move vertex group names to object data there is no mesh.vertex_groups)
  • Face Maps are still tied to object (rather than mesh) from the python API side
  • Shapekey python API is also partially tied to object (rather than mesh), see ob.active_shape_key / ob.use_shape_key_edit_mode / ob.show_only_shape_key

Also: even almost all operators acting on the stuff still visible atm. (UV Maps, Vertex Colors, Attributes, ...) are disfunctional (they are also polling for a context object rather than mesh).
So in essence, the whole object data properties tab in the Properties Editor is disfunctional when a mesh is pinned.
There is an exception though: the operators acting on Custom Split Normals work well with pinned meshes as they query ED_mesh_context(C) (rather than ED_object_context(C) and then getting the mesh from there)

So I assume this leaves us with following TODOs:

  • [1] tweak/add the python API to make relevant Vertex group / Shapekey / Face Maps stuff available from mesh (rather than object)
  • [2] make according operators get context mesh directly (rather than getting object first and then its data)
Philipp Oeser (lichtwerk) changed the task status from Confirmed to Needs Information from Developers.Thu, Jul 22, 11:21 AM
Philipp Oeser (lichtwerk) removed Philipp Oeser (lichtwerk) as the assignee of this task.

Eh, totally forgot that this is not only about mesh, but instead vertex groups / shapekeys can be on lattices, curves, etc...
So not sure if it is really worth tweaking the API that much (it would sort of have to be duplicated to all of those types...)
Also ED_mesh_context(C) would not be enough, we'd need to have ED_curve_context(C), ED_lattice_context(C) etc as well

Hm, I think this needs more thinking on my side and/or some input from module devs.

Vertex Groups
I think the solution is to add a new API for vertex groups on meshes (without the object). It can work like the attribute API, so it can just take an ID and use the relevant functions like BKE_id_defgroup_list_get.

We would need that for mesh, grease pencil, and lattices.

Others

  • Shape keys will still be object based for the foreseeable future, as far as I can tell.
  • Face maps, honestly I don't even know why they're in Blender.
  • For other attributes, it seems the poll functions can be fixed.
  • For other attributes, it seems the poll functions can be fixed.

poll and exec both need tweaks

Philipp Oeser (lichtwerk) changed the task status from Needs Information from Developers to Confirmed.Fri, Jul 23, 1:04 PM
Philipp Oeser (lichtwerk) changed the subtype of this task from "Report" to "Known Issue".

Would assume this is a Known Issue for now.

Philipp Oeser (lichtwerk) renamed this task from toggle pin ID makes vertex groups and shapekeys tabs disappear to Pinning data (mesh, curve, grease pencil, lattice) makes certain tabs disappear (vertex groups, shapekeys facemaps).Fri, Jul 23, 1:07 PM