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:
@@ -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