MantisBT
Mantis Bug Tracker Workflow

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0029254Community[OCCT] OCCT:Visualizationpublic2017-10-23 12:592017-10-23 17:18
ReporterBenjaminBihler 
Assigned Tokgv 
PrioritynormalSeverityminor 
StatusnewResolutionopen 
PlatformWindowsOSVC++ 2015OS Version64 bit
Product Version[OCCT] 7.2.0 
Target Version[OCCT] 7.4.0*Fixed in Version 
Summary0029254: [Regression to OCCT 7.1.0] Programmatically highlighting AIS_Trihedron is not possible anymore
DescriptionWhen 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 ReproduceInsert 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.
TagsNo tags attached.
Test case number
Attached Files

- Relationships
related to 0027958closedbugmaster Open CASCADE Visualization, AIS_Trihedron - add shaded presentation option 
related to 0027818closedkgv Open CASCADE Visualization - provide an interface to define highlight presentation properties 

-  Notes
(0071719)
kgv (developer)
2017-10-23 17:16
edited on: 2017-10-23 17:17

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); ///!<<
  }



- Issue History
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 View Revisions
2017-10-23 17:17 kgv Note Edited: 0071719 View Revisions


Copyright © 2000 - 2018 MantisBT Team
Powered by Mantis Bugtracker