20 #ifndef GEOMALGOAPI_SHAPEAPI_H
21 #define GEOMALGOAPI_SHAPEAPI_H
23 #include <GeomAPI_Ax1.h>
24 #include <GeomAPI_Ax2.h>
25 #include <GeomAPI_Edge.h>
26 #include <GeomAPI_Pnt.h>
27 #include <GeomAPI_Shape.h>
29 #include <GeomAlgoAPI_Exception.h>
32 #pragma warning(disable : 4290)
49 static std::shared_ptr<GeomAPI_Shape> makeBox(
const double theDx,
const double theDy,
56 static std::shared_ptr<GeomAPI_Shape> makeBox(std::shared_ptr<GeomAPI_Pnt> theFirstPoint,
57 std::shared_ptr<GeomAPI_Pnt> theSecondPoint);
64 static std::shared_ptr<GeomAPI_Shape> makeCylinder(std::shared_ptr<GeomAPI_Pnt> theBasePoint,
65 std::shared_ptr<GeomAPI_Edge> theEdge,
double theRadius,
double theHeight);
73 static std::shared_ptr<GeomAPI_Shape> makeCylinder(std::shared_ptr<GeomAPI_Pnt> theBasePoint,
74 std::shared_ptr<GeomAPI_Edge> theEdge,
double theRadius,
double theHeight,
80 static std::shared_ptr<GeomAPI_Shape> makeCylinder(
double theRadius,
double theHeight);
86 static std::shared_ptr<GeomAPI_Shape> makeCylinder(
double theRadius,
double theHeight,
92 static std::shared_ptr<GeomAPI_Shape> makeSphere(std::shared_ptr<GeomAPI_Pnt> theCenterPoint,
97 static std::shared_ptr<GeomAPI_Shape> makeSphere(
double theRadius);
104 static std::shared_ptr<GeomAPI_Shape> makeTorus(std::shared_ptr<GeomAPI_Pnt> theBasePoint,
105 std::shared_ptr<GeomAPI_Edge> theEdge,
double theRadius,
double theRingRadius);
110 static std::shared_ptr<GeomAPI_Shape> makeTorus(
double theRadius,
double theRingRadius);
118 static std::shared_ptr<GeomAPI_Shape> makeCone(std::shared_ptr<GeomAPI_Pnt> theBasePoint,
119 std::shared_ptr<GeomAPI_Edge> theEdge,
double theBaseRadius,
120 double theTopRadius,
double theHeight);
126 static std::shared_ptr<GeomAPI_Shape> makeCone(
double theBaseRadius,
double theTopRadius,
134 static std::shared_ptr<GeomAPI_Shape> makeTranslation(
135 std::shared_ptr<GeomAPI_Shape> theSourceShape,
136 std::shared_ptr<GeomAPI_Ax1> theAxis,
137 const double theDistance);
145 static std::shared_ptr<GeomAPI_Shape> makeTranslation(
146 std::shared_ptr<GeomAPI_Shape> theSourceShape,
156 static std::shared_ptr<GeomAPI_Shape> makeTranslation(
157 std::shared_ptr<GeomAPI_Shape> theSourceShape,
158 std::shared_ptr<GeomAPI_Pnt> theStartPoint,
159 std::shared_ptr<GeomAPI_Pnt> theEndPoint);
166 static std::shared_ptr<GeomAPI_Shape> makeRotation(
167 std::shared_ptr<GeomAPI_Shape> theSourceShape,
168 std::shared_ptr<GeomAPI_Ax1> theAxis,
169 const double theAngle);
177 static std::shared_ptr<GeomAPI_Shape> makeRotation(
178 std::shared_ptr<GeomAPI_Shape> theSourceShape,
179 std::shared_ptr<GeomAPI_Pnt> theCenterPoint,
180 std::shared_ptr<GeomAPI_Pnt> theStartPoint,
181 std::shared_ptr<GeomAPI_Pnt> theEndPoint);
186 static std::shared_ptr<GeomAPI_Shape> makeSymmetry(
187 std::shared_ptr<GeomAPI_Shape> theSourceShape,
188 std::shared_ptr<GeomAPI_Pnt> thePoint);
193 static std::shared_ptr<GeomAPI_Shape> makeSymmetry(
194 std::shared_ptr<GeomAPI_Shape> theSourceShape,
195 std::shared_ptr<GeomAPI_Ax1> theAxis);
200 static std::shared_ptr<GeomAPI_Shape> makeSymmetry(
201 std::shared_ptr<GeomAPI_Shape> theSourceShape,
202 std::shared_ptr<GeomAPI_Ax2> thePlane);
208 static std::shared_ptr<GeomAPI_Shape> makeScale(
209 std::shared_ptr<GeomAPI_Shape> theSourceShape,
210 std::shared_ptr<GeomAPI_Pnt> theCenterPoint,
211 const double theScaleFactor);
219 static std::shared_ptr<GeomAPI_Shape> makeScale(
220 std::shared_ptr<GeomAPI_Shape> theSourceShape,
221 std::shared_ptr<GeomAPI_Pnt> theCenterPoint,
222 const double theScaleFactorX,
223 const double theScaleFactorY,
224 const double theScaleFactorZ);
232 static std::shared_ptr<GeomAPI_Shape> makeMultiTranslation(
233 std::shared_ptr<GeomAPI_Shape> theSourceShape,
234 std::shared_ptr<GeomAPI_Ax1> theAxis,
235 const double theStep,
236 const int theNumber);
248 static std::shared_ptr<GeomAPI_Shape> makeMultiTranslation(
249 std::shared_ptr<GeomAPI_Shape> theSourceShape,
250 std::shared_ptr<GeomAPI_Ax1> theFirstAxis,
251 const double theFirstStep,
252 const int theFirstNumber,
253 std::shared_ptr<GeomAPI_Ax1> theSecondAxis,
254 const double theSecondStep,
255 const int theSecondNumber);
261 static std::shared_ptr<GeomAPI_Shape> makeMultiRotation(
262 std::shared_ptr<GeomAPI_Shape> theSourceShape,
263 std::shared_ptr<GeomAPI_Ax1> theAxis,
264 const int theNumber);
271 static std::shared_ptr<GeomAPI_Shape> makeMultiRotation(
272 std::shared_ptr<GeomAPI_Shape> theSourceShape,
273 std::shared_ptr<GeomAPI_Ax1> theAxis,
274 const double theStep,
275 const int theNumber);
285 static std::shared_ptr<GeomAPI_Shape> makeConeSegment(
286 const double theRMin1,
287 const double theRMax1,
288 const double theRMin2,
289 const double theRMax2,
291 const double theStartPhi,
292 const double theDeltaPhi);
Definition: GeomAlgoAPI_ShapeAPI.h:42
Allows to access the direct API.