mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-16 10:08:36 +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:
parent
73e403b8c6
commit
e2aba8ebf3
@ -348,6 +348,7 @@ Handle(Prs3d_Presentation) SelectMgr_SelectableObject::GetHilightPresentation (c
|
|||||||
{
|
{
|
||||||
myHilightPrs = new Prs3d_Presentation (theMgr->StructureManager());
|
myHilightPrs = new Prs3d_Presentation (theMgr->StructureManager());
|
||||||
myHilightPrs->SetTransformPersistence (TransformPersistence());
|
myHilightPrs->SetTransformPersistence (TransformPersistence());
|
||||||
|
myHilightPrs->SetClipPlanes (myClipPlanes);
|
||||||
}
|
}
|
||||||
|
|
||||||
return myHilightPrs;
|
return myHilightPrs;
|
||||||
@ -364,6 +365,7 @@ Handle(Prs3d_Presentation) SelectMgr_SelectableObject::GetSelectPresentation (co
|
|||||||
{
|
{
|
||||||
mySelectionPrs = new Prs3d_Presentation (theMgr->StructureManager());
|
mySelectionPrs = new Prs3d_Presentation (theMgr->StructureManager());
|
||||||
mySelectionPrs->SetTransformPersistence (TransformPersistence());
|
mySelectionPrs->SetTransformPersistence (TransformPersistence());
|
||||||
|
mySelectionPrs->SetClipPlanes (myClipPlanes);
|
||||||
}
|
}
|
||||||
|
|
||||||
return mySelectionPrs;
|
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
|
//function : updateSelection
|
||||||
//purpose : Sets update status FULL to selections of the object. Must be
|
//purpose : Sets update status FULL to selections of the object. Must be
|
||||||
|
@ -198,6 +198,9 @@ protected:
|
|||||||
myGlobalSelMode = theMode > 0 ? theMode : 0;
|
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);
|
Standard_EXPORT virtual void updateSelection (const Standard_Integer theMode);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
20
tests/bugs/vis/bug29947
Normal file
20
tests/bugs/vis/bug29947
Normal 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
|
Loading…
x
Reference in New Issue
Block a user