Page MenuHome

Multi-Object-Mode: Operators that need refactor on their logic
Open, NormalPublic

Description

Some operators are working for multiple-object editing however are still not fully benefiting from it.
The most common case is that the operator works but only if all the objects have the same transformation matrix.

  • MESH_OT_select_similar (SIMEDGE_FACE_ANGLE, SIMFACE_AREA, SIMFACE_PERIMETER). rB0c1934f3c2d
  • MESH_OT_knife_project and MESH_OT_knife_tool.

Need to convert the code from screen space to world space. More details on D3637.

  • UV_OT_weld (UV_STRAIGHTEN, UV_STRAIGHTEN_X, UV_STRAIGHTEN_Y).

The current logic to determine the first and last selected vertex is not very compatible with multi-object. We should be able to select vertices from different objects, and use their position to determine the line extremes.

  • LATTICE_OT_flip

The axis need to be in world space, not local space.

Need to calculate direction taking scale into consideration.

Event Timeline

Not sure if LATTICE_OT_flip should be really using a global axis instead of local one. If you have two objects for example, flipping on a global x-axis would effectively mean flipping each object on local axis, and then swap the position of the two objects.

The image shows an example of two flipped lattices on the global axis. Note how the origins of the two objects have been swapped, since flipping happened in edit mode.

I think this is not desired, so LATTICE_OT_flip should probably be kept as it is. In case this behavior is desired, then it can be done in object mode, e.g. scale by -1.

You are assuming the objects are not rotated, which is not always the case.

My point was that the objects might get translated in an undesired way, because flipping happens in edit mode.

So maybe at least give the user a choice? e.g. by taking into account the pivot point (median point or individual origins) as we did with snap selection to cursor?