mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-19 13:40:49 +03:00
0027818: Visualization - provide an interface to define highlight presentation properties
- introduces a wrapper for setting up highlight properties: Graphic3d_HighlightStyle; - API of all methods that use highlight or selection color is changed to deal with Graphic3d_HighlightStyle; - highlight in shading mode now supports transparency, implemented via blending; - transparency for selection can also be set, but implementing custom entity owners with additional presentation on application level; - methods PrsMgr_PresentationManager::Highlight, PrsMgr_PresentationManager::BoundBox that highlight object with hard-coded color are removed; - deprecated methods of SelectMgr_EntityOwner, that use presentation manager's highlight method, were removed; - methods of IsHilighted AIS context with selection color checks were replaced; - added API to store dynamic and selection highlight to Prs3d_Drawer class; - customization of dynamic and selection highlight for particular objects is now available through SelectMgr_SelectableObject::HilightAttributes(); - AIS_InteractiveContext highlight methods were updated to support individual highlight styles of interactive objects; - introduced new command - vselprops, that allows to customize global selection and highlight properties like autoactivation, pixel tolerance and colors; - Draw Harness commands vautoactivatesel and vselprecision were removed, use vselprops instead; - fixed bug in command's parser; - test case for issue #27818
This commit is contained in:
@@ -52,11 +52,9 @@ namespace
|
||||
|
||||
Standard_Boolean IsHilighted (const Handle(PrsMgr_PresentationManager)& PM,const Standard_Integer aMode) const;
|
||||
|
||||
void Hilight (const Handle(PrsMgr_PresentationManager)& PM,const Standard_Integer aMode);
|
||||
|
||||
void HilightWithColor (const Handle(PrsMgr_PresentationManager3d)& PM,
|
||||
const Quantity_NameOfColor aColor,
|
||||
const Standard_Integer aMode);
|
||||
void HilightWithColor (const Handle(PrsMgr_PresentationManager3d)& thePM,
|
||||
const Handle(Graphic3d_HighlightStyle)& theStyle,
|
||||
const Standard_Integer theMode);
|
||||
|
||||
void Unhilight (const Handle(PrsMgr_PresentationManager)& PM, const Standard_Integer aMode);
|
||||
|
||||
@@ -103,36 +101,23 @@ Standard_Boolean SelectMgr_AssemblyEntityOwner::IsHilighted (const Handle(PrsMgr
|
||||
return Standard_False;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : Hilight
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void SelectMgr_AssemblyEntityOwner::Hilight (const Handle(PrsMgr_PresentationManager)& PM,
|
||||
const Standard_Integer aMode)
|
||||
{
|
||||
if (HasSelectable())
|
||||
{
|
||||
PM->Highlight (myAssembly, aMode);
|
||||
}
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : HilightWithColor
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void SelectMgr_AssemblyEntityOwner::HilightWithColor (const Handle(PrsMgr_PresentationManager3d)& PM,
|
||||
const Quantity_NameOfColor aColor,
|
||||
const Standard_Integer aMode)
|
||||
void SelectMgr_AssemblyEntityOwner::HilightWithColor (const Handle(PrsMgr_PresentationManager3d)& thePM,
|
||||
const Handle(Graphic3d_HighlightStyle)& theStyle,
|
||||
const Standard_Integer theMode)
|
||||
{
|
||||
if (HasSelectable())
|
||||
{
|
||||
if (IsAutoHilight())
|
||||
{
|
||||
PM->Color (myAssembly, aColor, aMode);
|
||||
thePM->Color (myAssembly, theStyle, theMode);
|
||||
}
|
||||
else
|
||||
{
|
||||
myAssembly->HilightOwnerWithColor (PM, aColor, this);
|
||||
myAssembly->HilightOwnerWithColor (thePM, theStyle, this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user