1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-03 17:56:21 +03:00

0029947: Visualization - SelectMgr_SelectableObject::GetSelectPresentation() should copy object clipping planes

Methods SelectMgr_SelectableObject::GetHilightPresentation(), ::GetSelectPresentation() and ::UpdateClipping()
have been corrected to copy clipping planes of the object into highlighting and selection presentations.
This commit is contained in:
kgv 2018-07-11 15:52:02 +03:00 committed by bugmaster
parent 73e403b8c6
commit e2aba8ebf3
3 changed files with 42 additions and 0 deletions

View File

@ -348,6 +348,7 @@ Handle(Prs3d_Presentation) SelectMgr_SelectableObject::GetHilightPresentation (c
{
myHilightPrs = new Prs3d_Presentation (theMgr->StructureManager());
myHilightPrs->SetTransformPersistence (TransformPersistence());
myHilightPrs->SetClipPlanes (myClipPlanes);
}
return myHilightPrs;
@ -364,6 +365,7 @@ Handle(Prs3d_Presentation) SelectMgr_SelectableObject::GetSelectPresentation (co
{
mySelectionPrs = new Prs3d_Presentation (theMgr->StructureManager());
mySelectionPrs->SetTransformPersistence (TransformPersistence());
mySelectionPrs->SetClipPlanes (myClipPlanes);
}
return mySelectionPrs;
@ -428,6 +430,23 @@ void SelectMgr_SelectableObject::SetZLayer (const Graphic3d_ZLayerId theLayerId)
}
}
//=======================================================================
//function : UpdateClipping
//purpose :
//=======================================================================
void SelectMgr_SelectableObject::UpdateClipping()
{
PrsMgr_PresentableObject::UpdateClipping();
if (!mySelectionPrs.IsNull())
{
mySelectionPrs->SetClipPlanes (myClipPlanes);
}
if (!myHilightPrs.IsNull())
{
myHilightPrs->SetClipPlanes (myClipPlanes);
}
}
//=======================================================================
//function : updateSelection
//purpose : Sets update status FULL to selections of the object. Must be

View File

@ -198,6 +198,9 @@ protected:
myGlobalSelMode = theMode > 0 ? theMode : 0;
}
//! Update clipping planes state.
Standard_EXPORT virtual void UpdateClipping() Standard_OVERRIDE;
Standard_EXPORT virtual void updateSelection (const Standard_Integer theMode);
protected:

20
tests/bugs/vis/bug29947 Normal file
View File

@ -0,0 +1,20 @@
puts "============="
puts "0029947: Visualization - SelectMgr_SelectableObject::GetSelectPresentation() should copy object clipping planes"
puts "============="
pload MODELING VISUALIZATION XDE
vclear
vinit View1
vaxo
meshfromstl m [locate_data_file shape.stl]
vfit
vdisplay -dispMode 2 m
vselmode m 8 1
vselect 160 170 320 370
if { [vreadpixel 230 260 rgb name] == "BLACK" } { puts "Error" }
vclipplane c -set m -equation 0 1 0 4
if { [vreadpixel 230 260 rgb name] != "BLACK" } { puts "Error" }
vmoveto 75 172
if { [vreadpixel 70 170 rgb name] != "BLACK" } { puts "Error" }
vdump ${imagedir}/${casename}.png