// Activate individual repaintng if this is a part of compsolid
ResultCompSolidPtr aCompSolid = ModelAPI_Tools::compSolidOwner(myResult);
- //SetAutoHilight(aCompSolid.get() == NULL);
+ SetAutoHilight(aCompSolid.get() == NULL);
}
aDeflection, myDrawer->HLRAngle(), 9, 500);
for (aSelection->Init(); aSelection->More(); aSelection->Next()) {
- Handle(SelectMgr_EntityOwner) anOwner
- = Handle(SelectMgr_EntityOwner)::DownCast (aSelection->Sensitive()->BaseSensitive()->OwnerId());
+ Handle(SelectMgr_EntityOwner) anOwner =
+ Handle(SelectMgr_EntityOwner)::DownCast(aSelection->Sensitive()->BaseSensitive()->OwnerId());
anOwner->Set(this);
}
return;
void ModuleBase_ResultPrs::HilightSelected(const Handle(PrsMgr_PresentationManager3d)& thePM,
const SelectMgr_SequenceOfOwner& theOwners)
{
- if (hasCompSolidSelectionMode()) {
- TopoDS_Shape aShape = getSelectionShape();
- Handle( Prs3d_Presentation ) aSelectionPrs = GetSelectPresentation( thePM );
- aSelectionPrs->Clear();
-
- StdPrs_WFDeflectionShape::Add(aSelectionPrs, aShape, myDrawer);
-
- aSelectionPrs->SetDisplayPriority(9);
- aSelectionPrs->Highlight(Aspect_TOHM_COLOR, aSelectionPrs->HighlightColor());
- aSelectionPrs->Display();
- thePM->Highlight(this);
- } else {
- Handle(SelectMgr_EntityOwner) anOwner;
- for (int i = 1; i <= theOwners.Length(); i++) {
- anOwner = theOwners.Value(i);
- if (!anOwner->IsSelected()) { // anOwner is not selected
- anOwner->SetSelected(true);
- AIS_Selection::Select(anOwner);
- }
+ Handle(SelectMgr_EntityOwner) anOwner;
+ Handle(ModuleBase_BRepOwner) aCompOwner;
+ for (int i = 1; i <= theOwners.Length(); i++) {
+ anOwner = theOwners.Value(i);
+ aCompOwner = Handle(ModuleBase_BRepOwner)::DownCast(anOwner);
+ if (aCompOwner.IsNull())
+ anOwner->Hilight(thePM);
+ else {
+ TopoDS_Shape aShape = aCompOwner->Shape();
+ Handle( Prs3d_Presentation ) aSelectionPrs = GetSelectPresentation( thePM );
+ aSelectionPrs->Clear();
+
+ StdPrs_WFDeflectionShape::Add(aSelectionPrs, aShape, myDrawer);
+
+ aSelectionPrs->SetDisplayPriority(9);
+ aSelectionPrs->Highlight(Aspect_TOHM_COLOR, aSelectionPrs->HighlightColor());
+ aSelectionPrs->Display();
+ thePM->Highlight(this);
}
}
}
const Quantity_NameOfColor theColor,
const Handle(SelectMgr_EntityOwner)& theOwner)
{
- TopoDS_Shape aShape = getSelectionShape();
+ Handle(StdSelect_BRepOwner) aOwner = Handle(StdSelect_BRepOwner)::DownCast(theOwner);
+ if (aOwner.IsNull())
+ return;
+
+ TopoDS_Shape aShape = aOwner->Shape();
if (!aShape.IsNull()) {
thePM->Color(this, theColor);
QObjectPtrList aFeatures;
Handle(AIS_InteractiveContext) aContext = myWorkshop->viewer()->AISContext();
if (!aContext.IsNull()) {
- for (aContext->InitSelected(); aContext->MoreSelected(); aContext->NextSelected()) {
- Handle(AIS_InteractiveObject) anIO = aContext->SelectedInteractive();
- ObjectPtr aResult = myWorkshop->displayer()->getObject(anIO);
- if (aResult)
- aFeatures.append(aResult);
+ QList<ModuleBase_ViewerPrs> aPresentations = selection()->getSelected(ModuleBase_ISelection::Viewer);
+ foreach(ModuleBase_ViewerPrs aPrs, aPresentations) {
+ if (aPrs.object().get())
+ aFeatures.append(aPrs.object());
}
}
bool aBlocked = myWorkshop->objectBrowser()->blockSignals(true);