Selection Use Cases

From K-3D

Jump to: navigation, search

Overview

Doing some "thinking out loud" on selection:

  • We assume that the visible_selection flag has been removed, and that a new property in MeshInstance controls whether component selections are shown or not.
  • We assume that selection_weight defaults to 0.0 for components (currently it defaults to 1.0).
  • Note in cases 3.3 and 4.3 that interactive deselections by the user must be encoded as explicit deselections - that is, they cannot be encoded as ignore selections even though the default weight is 0.0. This is so upstream selections can be overridden.
Step Action Selection Mode Pipeline Modifier1 Selection Modifier2 Selection MeshInstance Selection MeshInstance Visibility Notes
Use case 1: apply a modifier in object mode
1 object source -> sink explicit ignore all hide component selection The mesh instance selection doesn't matter because the selection state of components isn't drawn anyway.
2 apply modifier object source -> modifier1 -> sink explicit select all explicit ignore all hide component selection The modifier1 selection must explicitly select everything, since components have a default selection weight of 0.0.
Use case 2: apply a modifier in object mode with upstream selection
1 object source -> modifier1 -> sink contains explicit selections, or the modifier alters the selection explicit ignore all hide component selection The mesh instance selection doesn't matter because the selection state of components isn't drawn anyway.
2 apply modifier object source -> modifier1 -> modifier2 -> sink unchanged explicit select all explicit ignore all hide component selection The modifier2 selection must explicitly select everything, since its inputs could be in any state.
Use case 3: apply a modifier in component mode
1 object source -> sink <doesn't matter> hide component selection
2 change mode component source -> sink explicit ignore all show component selection
3 apply modifier component source -> modifier1 -> sink explicit selections & deselections explicit ignore all show component selection The mesh instance selection must be set to "explicit ignore all" so the upstream selection is still visible.
Use case 4: apply a modifier in component mode with upstream selection
1 object source -> modifier1 -> sink Contains explicit selections, or the modifier alters the selection. explicit ignore all hide component selection
2 change mode component source -> modifier1 -> sink unchanged explicit ignore all show component selection The mesh instance selection must be set to explicit ignore all, so the upstream selection can become visible.
3 apply modifier component source -> modifier1 -> modifier2 -> sink unchanged explicit selections & deselections explicit ignore all show component selection The mesh instance selection must be set to explicit ignore all, so the upstream selection remains visible.
Personal tools