- FeaturePtr aFeature = myWorkshop->displayer()->getFeature(anIO);
- if (aPrsFeatures.find(aFeature) != aPrsFeatures.end())
- continue;
+ Handle(AIS_InteractiveObject) anIO = aContext->SelectedInteractive();
+ aPrs.setInteractive(anIO);
+
+ ObjectPtr aFeature = aDisplayer->getObject(anIO);
+ if (aPrsFeatures.find(aFeature) == aPrsFeatures.end()) {
+ aPrs.setFeature(aFeature);
+ aPrsFeatures.insert(aFeature);
+ }
+ if (aContext->HasOpenedContext()) {
+ TopoDS_Shape aShape = aContext->SelectedShape();
+ if (!aShape.IsNull() && (aShape.ShapeType() != theShapeTypeToSkip))
+ aPrs.setShape(aShape);
+ }