- // Getting angles.
- double aFromAngle = real(FeaturesPlugin_Revolution::FROM_ANGLE_ID())->value();
- double aToAngle = real(FeaturesPlugin_Revolution::TO_ANGLE_ID())->value();
+ // Getting bounding planes.
+ std::shared_ptr<GeomAPI_Shape> aToShape;
+ std::shared_ptr<GeomAPI_Shape> aFromShape;
+
+ if(string(CREATION_METHOD())->value() == "ByPlanesAndOffsets") {
+ anObjRef = selection(TO_OBJECT_ID());
+ if(anObjRef.get() != NULL) {
+ aToShape = std::dynamic_pointer_cast<GeomAPI_Shape>(anObjRef->value());
+ if(aToShape.get() == NULL && anObjRef->context().get() != NULL) {
+ aToShape = anObjRef->context()->shape();
+ }
+ }
+ anObjRef = selection(FROM_OBJECT_ID());
+ if(anObjRef.get() != NULL) {
+ aFromShape = std::dynamic_pointer_cast<GeomAPI_Shape>(anObjRef->value());
+ if(aFromShape.get() == NULL && anObjRef->context().get() != NULL) {
+ aFromShape = anObjRef->context()->shape();
+ }
+ }
+ }