-bool PartSet_Tools::isAxisSelected(const ObjectPtr& theObject)
-{
- bool isAxis = false;
- ResultPtr aRes = std::dynamic_pointer_cast<ModelAPI_Result>(theObject);
- if (aRes.get()) {
- // check if result belongs to external feature
- // in this case we should use as a result reference of external feature
- FeaturePtr aResFeature = ModelAPI_Feature::feature(aRes);
- std::shared_ptr<SketchPlugin_Feature> aSPFeature =
- std::dynamic_pointer_cast<SketchPlugin_Feature>(aResFeature);
- if (aSPFeature.get() && aSPFeature->isExternal()) {
- AttributeSelectionPtr aAttr = aResFeature->selection(
- SketchPlugin_SketchEntity::EXTERNAL_ID());
- if (aAttr) { /// check if the result is Axis
- ResultPtr anExternalRes = std::dynamic_pointer_cast<ModelAPI_Result>(aAttr->context());
- FeaturePtr aResFeature = ModelAPI_Feature::feature(anExternalRes);
- isAxis = aResFeature->getKind() == "Axis"; //ConstructionPlugin_Axis::ID()
- }
- }
- }
- return isAxis;
-}
-