- if (PartSet_Tools::isConstraintFeature(theFeature->getKind())) {
- aModes.clear();
- aModes.push_back(AIS_DSM_Text);
- aModes.push_back(AIS_DSM_Line);
- }
- else {
- aModes.push_back(AIS_Shape::SelectionMode((TopAbs_ShapeEnum)TopAbs_VERTEX));
- aModes.push_back(AIS_Shape::SelectionMode((TopAbs_ShapeEnum)TopAbs_EDGE));
+ FeaturePtr aFeature = boost::dynamic_pointer_cast<ModelAPI_Feature>(theFeature);
+ if (aFeature && PartSet_Tools::isConstraintFeature(aFeature->getKind())) {
+ aModes.push_back(AIS_DSM_Text);
+ aModes.push_back(AIS_DSM_Line);
+ } else {
+ aModes.push_back(AIS_Shape::SelectionMode((TopAbs_ShapeEnum) TopAbs_VERTEX));
+ aModes.push_back(AIS_Shape::SelectionMode((TopAbs_ShapeEnum) TopAbs_EDGE));