View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0029254 | Community | OCCT:Visualization | public | 2017-10-23 12:59 | 2023-08-01 15:09 |
| Reporter | BenjaminBihler | Assigned To | |||
| Priority | normal | Severity | minor | ||
| Status | new | Resolution | open | ||
| Platform | Windows | OS | VC++ 2015 | ||
| Product Version | 7.2.0 | ||||
| Target Version | Unscheduled | ||||
| Summary | 0029254: [Regression to OCCT 7.1.0] Programmatically highlighting AIS_Trihedron is not possible anymore | ||||
| Description | When an AIS_Trihedron is highlighted programmatically, its colour does not change to the chosen color. For other AIS objects highlighting works as expected. | ||||
| Steps To Reproduce | Insert the following lines into samples\qt\Tutorial\src\DocumentTut.cxx after "emit selectionChanged();" and before "fitAll();": Handle(AIS_Trihedron) trihedron = new AIS_Trihedron(new Geom_Axis2Placement(gp_Ax2())); getContext()->Display(trihedron, Standard_False); getContext()->HilightWithColor(trihedron, getContext()->HighlightStyle(), Standard_True); getContext()->HilightWithColor(AISBottle, getContext()->HighlightStyle(), Standard_True); The following includes have to be added: #include <AIS_Trihedron.hxx> #include <Geom_Axis2Placement.hxx> When drawing the bottle, the bottle is correctly highlighted but not the trihedron. This behaviour has changed since OCCT 7.1.0. | ||||
| Tags | No tags attached. | ||||
| Test case number | |||||
|
|
This is a limitation of custom highlighting API, existed long time before AIS_Trihedron modification (AIS_Trihedron::IsAutoHilight() and AIS_Trihedron::HilightSelected() are now overridden):
//! Method which draws selected owners ( for fast presentation draw )
virtual void HilightSelected (const Handle(PrsMgr_PresentationManager3d)& PM,
const SelectMgr_SequenceOfOwner& Seq);
To overcome this limitation, related API methods (e.g. SelectMgr_SelectableObject::HilightSelected()) should be modified to receive style Prs3d_Drawer as in case of Auto Hilight is turned on - see also current implementation of AIS_InteractiveContext::highlightGlobal() which just ignores passed style because HilightSelected() does not receive it:
if (!aGlobOwner->IsAutoHilight())
{
SelectMgr_SequenceOfOwner aSeq;
for (AIS_NListOfEntityOwner::Iterator aSelIter (mySelection->Objects());
aSelIter.More(); aSelIter.Next())
{
if (aSelIter.Value()->IsSameSelectable (theObj))
{
aSeq.Append (aSelIter.Value());
}
}
theObj->HilightSelected (myMainPM, aSeq); ///!<<
}
else
{
aGlobOwner->HilightWithColor (myMainPM, theStyle, aHiMode); ///!<<
}
|
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2017-10-23 12:59 | BenjaminBihler | New Issue | |
| 2017-10-23 12:59 | BenjaminBihler | Assigned To | => kgv |
| 2017-10-23 13:01 | kgv | Relationship added | related to 0027958 |
| 2017-10-23 17:08 | kgv | Relationship added | related to 0027818 |
| 2017-10-23 17:16 | kgv | Note Added: 0071719 | |
| 2017-10-23 17:17 | kgv | Note Edited: 0071719 | |
| 2017-10-23 17:17 | kgv | Note Edited: 0071719 | |
| 2019-09-04 17:50 | kgv | Target Version | 7.4.0 => 7.5.0 |
| 2020-08-28 14:25 | kgv | Target Version | 7.5.0 => 7.6.0 |
| 2021-08-24 14:13 | kgv | Target Version | 7.6.0 => 7.7.0 |
| 2022-08-17 11:59 | kgv | Target Version | 7.7.0 => 7.8.0 |
| 2022-10-19 15:47 |
|
Assigned To | kgv => vpozdyayev |
| 2023-08-01 15:09 | dpasukhi | Target Version | 7.8.0 => Unscheduled |