- std::shared_ptr<GeomAPI_Edge> anEdge;
- std::shared_ptr<ModelAPI_AttributeSelection> anObjRef =
- selection(FeaturesPlugin_MultiRotation::AXIS_ANGULAR_ID());
- if(anObjRef && anObjRef->value() && anObjRef->value()->isEdge()) {
- anEdge = std::shared_ptr<GeomAPI_Edge>(new GeomAPI_Edge(anObjRef->value()));
- } else if (anObjRef && !anObjRef->value() && anObjRef->context() &&
- anObjRef->context()->shape() && anObjRef->context()->shape()->isEdge()) {
- anEdge = std::shared_ptr<GeomAPI_Edge>(new GeomAPI_Edge(anObjRef->context()->shape()));
- }
- if(anEdge) {
- anAxis = std::shared_ptr<GeomAPI_Ax1>(new GeomAPI_Ax1(anEdge->line()->location(),
- anEdge->line()->direction()));
- }
-
- // Getting number of copies int he angular direction.
- int nbAngular =
- integer(FeaturesPlugin_MultiRotation::NB_COPIES_ANGULAR_ID())->value();
-
- if (nbAngular <=0) {
- std::string aFeatureError = "Multirotation builder ";
- aFeatureError+=":: the number of copies for the angular direction is null or negative.";
- setError(aFeatureError);