- if(isSkipSelf)
- return false;
- }*/
-
- /*GeomShapePtr aGShape = GeomShapePtr();
- const TopoDS_Shape& aTDSShape = thePrs.shape();
- // if only result is selected, an empty shape is set to the model
- if (aTDSShape.IsNull()) {
- //aSelectionListAttr->append(aResult, GeomShapePtr());
- }
- else {
- aGShape = std::shared_ptr<GeomAPI_Shape>(new GeomAPI_Shape());
- //GeomShapePtr aShape(new GeomAPI_Shape());
- aGShape->setImpl(new TopoDS_Shape(aTDSShape));
- // We can not select a result of our feature
- if (aGShape->isEqual(aResult->shape())) {
- //aSelectionListAttr->append(aResult, GeomShapePtr());
- aGShape = GeomShapePtr();
- }
- else {
- //aSelectionListAttr->append(aResult, aShape);
- }
- }*/
-
- GeomShapePtr aGShape = myWorkshop->selection()->getShape(thePrs);
- setObject(aResult, aGShape);
- return true;
-}
-
-//********************************************************************
-bool PartSet_WidgetMultiSelector::setObject(const ObjectPtr& theSelectedObject,
- const GeomShapePtr& theShape)
-{
- ObjectPtr aSelectedObject = theSelectedObject;
- GeomShapePtr aShape = theShape;
-
- FeaturePtr aSelectedFeature = ModelAPI_Feature::feature(aSelectedObject);
- //if (aSelectedFeature == myFeature) // In order to avoid selection of the same object
- // return false;
-
- // Do check using of external feature
- std::shared_ptr<SketchPlugin_Feature> aSPFeature =
- std::dynamic_pointer_cast<SketchPlugin_Feature>(aSelectedFeature);
-
- // Do check that we can use external feature
- if ((aSPFeature.get() != NULL) && aSPFeature->isExternal() && (!myExternalObjectMgr->useExternal()))
- return false;
-
- if (aSPFeature.get() == NULL && aShape.get() != NULL && !aShape->isNull() && myExternalObjectMgr->useExternal()) {
- if (myIsInVaildate)
- aSelectedObject = myExternalObjectMgr->externalObjectValidated(theSelectedObject, theShape, sketch());
- else
- aSelectedObject = myExternalObjectMgr->externalObject(theSelectedObject, theShape, sketch());