Gui: Prevent whole-object highlight when picked list is enabled (#26589)
* Gui: Prevent whole-object highlight when picked list is enabled Removed the logic that forced `onTop=1` when `needPickedList()` is true in View3DInventorSelection. This was causing the entire object to be highlighted instead of just the selected sub-element when the "Picked object list" option was enabled. * Part: Remove `needPickedList` mat override to prevent rendering artifact The `needPickedList` check in `SoBrepFaceSet` was triggering unnecessary material override processing that caused face clipping artifacts when the "Picked object list" option was enabled in Selection View. This check has been removed as the picked list functionality works independently of the rendering path.
This commit is contained in:
@@ -191,10 +191,7 @@ void View3DInventorSelection::checkGroupOnTop(const SelectionChanges& Reason)
|
||||
// onTop==2 means on top only if whole object is selected,
|
||||
// onTop==3 means on top only if some sub-element is selected
|
||||
// onTop==1 means either
|
||||
if (Gui::Selection().needPickedList()) {
|
||||
onTop = 1;
|
||||
}
|
||||
else if (vp->OnTopWhenSelected.getValue()) {
|
||||
if (vp->OnTopWhenSelected.getValue()) {
|
||||
onTop = vp->OnTopWhenSelected.getValue();
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -854,20 +854,12 @@ bool SoBrepFaceSet::overrideMaterialBinding(SoGLRenderAction* action, SelContext
|
||||
|
||||
if ((mb == SoMaterialBindingElement::OVERALL
|
||||
|| (mb == SoMaterialBindingElement::PER_PART && diffuse_size >= partIndex.getNum()))
|
||||
&& ((ctx && Gui::Selection().needPickedList()) || trans0 != 0.0
|
||||
|| (ctx2 && !ctx2->colors.empty()))) {
|
||||
&& (trans0 != 0.0 || (ctx2 && !ctx2->colors.empty()))) {
|
||||
state->push();
|
||||
|
||||
packedColors.clear();
|
||||
|
||||
if (ctx && Gui::Selection().needPickedList()) {
|
||||
hasTransparency = true;
|
||||
trans_size = 1;
|
||||
if (ctx2) {
|
||||
ctx2->trans0 = trans0;
|
||||
}
|
||||
}
|
||||
else if (ctx2) {
|
||||
if (ctx2) {
|
||||
ctx2->trans0 = 0.0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user