+ //===============================================================================================
+ std::shared_ptr<GeomAPI_Shape> GeomAlgoAPI_ShapeAPI::makeSymmetry(
+ std::shared_ptr<GeomAPI_Shape> theSourceShape,
+ std::shared_ptr<GeomAPI_Ax1> theAxis) throw (GeomAlgoAPI_Exception)
+ {
+ GeomAlgoAPI_Symmetry aSymmetryAlgo(theSourceShape, theAxis);
+ return runAlgo(aSymmetryAlgo);
+ }
+
+ //===============================================================================================
+ std::shared_ptr<GeomAPI_Shape> GeomAlgoAPI_ShapeAPI::makeSymmetry(
+ std::shared_ptr<GeomAPI_Shape> theSourceShape,
+ std::shared_ptr<GeomAPI_Ax2> thePlane) throw (GeomAlgoAPI_Exception)
+ {
+ GeomAlgoAPI_Symmetry aSymmetryAlgo(theSourceShape, thePlane);
+ return runAlgo(aSymmetryAlgo);
+ }
+
+ //===============================================================================================
+ std::shared_ptr<GeomAPI_Shape> GeomAlgoAPI_ShapeAPI::makeScale(
+ std::shared_ptr<GeomAPI_Shape> theSourceShape,
+ std::shared_ptr<GeomAPI_Pnt> theCenterPoint,
+ const double theScaleFactor) throw (GeomAlgoAPI_Exception)
+ {
+ GeomAlgoAPI_Scale aScaleAlgo(theSourceShape, theCenterPoint, theScaleFactor);
+ return runAlgo(aScaleAlgo);
+ }
+
+ //===============================================================================================
+ std::shared_ptr<GeomAPI_Shape> GeomAlgoAPI_ShapeAPI::makeScale(
+ std::shared_ptr<GeomAPI_Shape> theSourceShape,
+ std::shared_ptr<GeomAPI_Pnt> theCenterPoint,
+ const double theScaleFactorX,
+ const double theScaleFactorY,
+ const double theScaleFactorZ) throw (GeomAlgoAPI_Exception)
+ {
+ GeomAlgoAPI_Scale aScaleAlgo(theSourceShape, theCenterPoint,
+ theScaleFactorX, theScaleFactorY, theScaleFactorZ);
+ return runAlgo(aScaleAlgo);
+ }
+
+ //===============================================================================================
+ std::shared_ptr<GeomAPI_Shape> GeomAlgoAPI_ShapeAPI::makeMultiTranslation(
+ std::shared_ptr<GeomAPI_Shape> theSourceShape,
+ std::shared_ptr<GeomAPI_Ax1> theAxis,
+ const double theStep,
+ const int theNumber) throw (GeomAlgoAPI_Exception)
+ {
+ if (!theAxis) {
+ std::string aError = "Multitranslation builder ";
+ aError+=":: the first axis is not valid";
+ throw GeomAlgoAPI_Exception(aError);
+ }
+
+ if (theNumber <=0) {
+ std::string aError = "Multitranslation builder ";
+ aError+=":: the number of copies for the first direction is null or negative.";
+ throw GeomAlgoAPI_Exception(aError);