Salome HOME
Task 2.12. New entities: ellipses and arcs of ellipses (issue #3003)
[modules/shaper.git] / src / SketchAPI / SketchAPI_Sketch.h
1 // Copyright (C) 2014-2019  CEA/DEN, EDF R&D
2 //
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License, or (at your option) any later version.
7 //
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 // Lesser General Public License for more details.
12 //
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 //
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 //
19
20 #ifndef SRC_SKETCHAPI_SKETCHAPI_SKETCH_H_
21 #define SRC_SKETCHAPI_SKETCHAPI_SKETCH_H_
22
23 //--------------------------------------------------------------------------------------
24 #include "SketchAPI.h"
25
26 #include <list>
27
28 #include <SketchPlugin_Sketch.h>
29 #include <SketchPlugin_SketchEntity.h>
30
31 #include <ModelHighAPI_Interface.h>
32 #include <ModelHighAPI_Macro.h>
33 //--------------------------------------------------------------------------------------
34 class ModelAPI_CompositeFeature;
35 class ModelAPI_Object;
36 class ModelHighAPI_Double;
37 class ModelHighAPI_Integer;
38 class ModelHighAPI_RefAttr;
39 class ModelHighAPI_Reference;
40 class ModelHighAPI_Selection;
41 class SketchAPI_Arc;
42 class SketchAPI_MacroArc;
43 class SketchAPI_Circle;
44 class SketchAPI_MacroCircle;
45 class SketchAPI_Ellipse;
46 class SketchAPI_MacroEllipse;
47 class SketchAPI_IntersectionPoint;
48 class SketchAPI_Line;
49 class SketchAPI_Mirror;
50 class SketchAPI_Point;
51 class SketchAPI_Projection;
52 class SketchAPI_Rectangle;
53 class SketchAPI_Rotation;
54 class SketchAPI_Translation;
55 //--------------------------------------------------------------------------------------
56 /**\class SketchAPI_Sketch
57  * \ingroup CPPHighAPI
58  * \brief Interface for Sketch feature
59  */
60 class SketchAPI_Sketch : public ModelHighAPI_Interface
61 {
62 public:
63   /// Constructor without values
64   SKETCHAPI_EXPORT
65   explicit SketchAPI_Sketch(const std::shared_ptr<ModelAPI_Feature> & theFeature);
66   /// Constructor with values
67   SKETCHAPI_EXPORT
68   SketchAPI_Sketch(const std::shared_ptr<ModelAPI_Feature> & theFeature,
69                    const std::shared_ptr<GeomAPI_Ax3> & thePlane);
70   /// Constructor with values
71   SKETCHAPI_EXPORT
72   SketchAPI_Sketch(const std::shared_ptr<ModelAPI_Feature> & theFeature,
73                    const ModelHighAPI_Selection & theExternal);
74   /// Constructor with values
75   SKETCHAPI_EXPORT
76   SketchAPI_Sketch(const std::shared_ptr<ModelAPI_Feature> & theFeature,
77                    std::shared_ptr<ModelAPI_Object> thePlaneObject);
78   /// Destructor
79   SKETCHAPI_EXPORT
80   virtual ~SketchAPI_Sketch();
81
82   INTERFACE_7(SketchPlugin_Sketch::ID(),
83               origin, SketchPlugin_Sketch::ORIGIN_ID(),
84               GeomDataAPI_Point, /** Origin point */,
85               dirX, SketchPlugin_Sketch::DIRX_ID(),
86               GeomDataAPI_Dir, /** Direction of X */,
87               normal, SketchPlugin_Sketch::NORM_ID(),
88               GeomDataAPI_Dir, /** Normal */,
89               features, SketchPlugin_Sketch::FEATURES_ID(),
90               ModelAPI_AttributeRefList, /** Features */,
91               external, SketchPlugin_SketchEntity::EXTERNAL_ID(),
92               ModelAPI_AttributeSelection, /** External */,
93               solverError, SketchPlugin_Sketch::SOLVER_ERROR(),
94               ModelAPI_AttributeString, /** Solver error */,
95               solverDOF, SketchPlugin_Sketch::SOLVER_DOF(),
96               ModelAPI_AttributeString, /** Solver DOF */
97   )
98
99   /// Set plane
100   SKETCHAPI_EXPORT
101   void setPlane(const std::shared_ptr<GeomAPI_Ax3> & thePlane);
102
103   /// Change sketch plane
104   SKETCHAPI_EXPORT
105   void setPlane(const ModelHighAPI_Selection & thePlane,
106                 bool theRemoveExternalDependency = false);
107
108   /// Set external
109   SKETCHAPI_EXPORT
110   void setExternal(const ModelHighAPI_Selection & theExternal);
111
112   /// Set external
113   SKETCHAPI_EXPORT
114   void setExternal(std::shared_ptr<ModelAPI_Object> thePlaneObject);
115
116   /// Change order of sketch results (faces)
117   SKETCHAPI_EXPORT
118   void changeFacesOrder(const std::list<std::list<ModelHighAPI_Selection> >& theFaces);
119
120   /// List points not connected by constraints with other sketch entitites
121   SKETCHAPI_EXPORT
122   std::list< std::shared_ptr<SketchAPI_Point> > getFreePoints();
123
124   /// Add point
125   SKETCHAPI_EXPORT
126   std::shared_ptr<SketchAPI_Point> addPoint(
127       double theX, double theY);
128   /// Add point
129   SKETCHAPI_EXPORT
130   std::shared_ptr<SketchAPI_Point> addPoint(
131       const std::shared_ptr<GeomAPI_Pnt2d> & thePoint);
132   /// Add point
133   SKETCHAPI_EXPORT
134   std::shared_ptr<SketchAPI_Point> addPoint(const ModelHighAPI_Selection & theExternal);
135   /// Add point
136   SKETCHAPI_EXPORT
137   std::shared_ptr<SketchAPI_Point> addPoint(const std::string & theExternalName);
138
139   /// Add intersection point
140   SKETCHAPI_EXPORT
141   std::shared_ptr<SketchAPI_IntersectionPoint>
142     addIntersectionPoint(const ModelHighAPI_Selection & theExternal,
143                          bool theKeepResult = false);
144   /// Add point
145   SKETCHAPI_EXPORT
146   std::shared_ptr<SketchAPI_IntersectionPoint>
147     addIntersectionPoint(const std::string & theExternalName,
148                          bool theKeepResult = false);
149
150   /// Add line
151   SKETCHAPI_EXPORT
152   std::shared_ptr<SketchAPI_Line> addLine(
153       double theX1, double theY1, double theX2, double theY2);
154   /// Add line
155   SKETCHAPI_EXPORT
156   std::shared_ptr<SketchAPI_Line> addLine(
157       const std::shared_ptr<GeomAPI_Pnt2d> & theStartPoint,
158       const std::shared_ptr<GeomAPI_Pnt2d> & theEndPoint);
159   /// Add line
160   SKETCHAPI_EXPORT
161   std::shared_ptr<SketchAPI_Line> addLine(const ModelHighAPI_Selection & theExternal);
162   /// Add line
163   SKETCHAPI_EXPORT
164   std::shared_ptr<SketchAPI_Line> addLine(const std::string & theExternalName);
165
166   /// Add rectangle
167   SKETCHAPI_EXPORT
168   std::shared_ptr<SketchAPI_Rectangle> addRectangle(
169       double theX1, double theY1, double theX2, double theY2);
170   /// Add rectangle
171   SKETCHAPI_EXPORT
172   std::shared_ptr<SketchAPI_Rectangle> addRectangle(
173       const std::shared_ptr<GeomAPI_Pnt2d> & theStartPoint,
174       const std::shared_ptr<GeomAPI_Pnt2d> & theEndPoint);
175
176   /// Add circle
177   SKETCHAPI_EXPORT
178   std::shared_ptr<SketchAPI_Circle> addCircle(
179       double theCenterX, double theCenterY,
180       double theRadius);
181   /// Add circle
182   SKETCHAPI_EXPORT
183   std::shared_ptr<SketchAPI_Circle> addCircle(
184       const std::shared_ptr<GeomAPI_Pnt2d>& theCenter,
185       double theRadius);
186   /// Add circle
187   SKETCHAPI_EXPORT
188   std::shared_ptr<SketchAPI_MacroCircle> addCircle(
189       double theCenterX, double theCenterY,
190       double thePassedX, double thePassedY);
191   /// Add circle
192   SKETCHAPI_EXPORT
193   std::shared_ptr<SketchAPI_MacroCircle> addCircle(
194       const std::shared_ptr<GeomAPI_Pnt2d>& theCenterPoint,
195       const std::shared_ptr<GeomAPI_Pnt2d>& thePassedPoint);
196   /// Add circle
197   SKETCHAPI_EXPORT
198   std::shared_ptr<SketchAPI_MacroCircle> addCircle(
199       double theX1, double theY1,
200       double theX2, double theY2,
201       double theX3, double theY3);
202   /// Add circle
203   SKETCHAPI_EXPORT
204   std::shared_ptr<SketchAPI_MacroCircle> addCircle(
205       const std::shared_ptr<GeomAPI_Pnt2d>& thePoint1,
206       const std::shared_ptr<GeomAPI_Pnt2d>& thePoint2,
207       const std::shared_ptr<GeomAPI_Pnt2d>& thePoint3);
208   /// Add circle
209   SKETCHAPI_EXPORT
210   std::shared_ptr<SketchAPI_Circle> addCircle(const ModelHighAPI_Selection & theExternal);
211   /// Add circle
212   SKETCHAPI_EXPORT
213   std::shared_ptr<SketchAPI_Circle> addCircle(const std::string & theExternalName);
214
215   /// Add arc
216   SKETCHAPI_EXPORT
217   std::shared_ptr<SketchAPI_Arc> addArc(
218       double theCenterX, double theCenterY,
219       double theStartX, double theStartY,
220       double theEndX, double theEndY,
221       bool theInversed);
222
223   /// Add arc
224   SKETCHAPI_EXPORT
225   std::shared_ptr<SketchAPI_Arc> addArc(
226       const std::shared_ptr<GeomAPI_Pnt2d>& theCenter,
227       const std::shared_ptr<GeomAPI_Pnt2d>& theStart,
228       const std::shared_ptr<GeomAPI_Pnt2d>& theEnd,
229       bool theInversed);
230
231   /// Add arc
232   SKETCHAPI_EXPORT
233   std::shared_ptr<SketchAPI_MacroArc> addArc(
234       double theStartX, double theStartY,
235       double theEndX, double theEndY,
236       double thePassedX, double thePassedY);
237
238   /// Add arc
239   SKETCHAPI_EXPORT
240   std::shared_ptr<SketchAPI_MacroArc> addArc(
241       const std::shared_ptr<GeomAPI_Pnt2d>& theStart,
242       const std::shared_ptr<GeomAPI_Pnt2d>& theEnd,
243       const std::shared_ptr<GeomAPI_Pnt2d>& thePassed);
244
245   /// Add transversal/tangent arc
246   SKETCHAPI_EXPORT
247   std::shared_ptr<SketchAPI_MacroArc> addArc(
248       const ModelHighAPI_RefAttr& theConnectedPoint,
249       double theEndX, double theEndY,
250       bool theInversed,
251       bool theTransversal = false);
252
253   /// Add transversal/tangent arc
254   SKETCHAPI_EXPORT
255   std::shared_ptr<SketchAPI_MacroArc> addArc(
256       const ModelHighAPI_RefAttr& theConnectedPoint,
257       const std::shared_ptr<GeomAPI_Pnt2d>& theEnd,
258       bool theInversed,
259       bool theTransversal = false);
260
261   /// Add arc
262   SKETCHAPI_EXPORT
263   std::shared_ptr<SketchAPI_Arc> addArc(const ModelHighAPI_Selection & theExternal);
264
265   /// Add arc
266   SKETCHAPI_EXPORT
267   std::shared_ptr<SketchAPI_Arc> addArc(const std::string & theExternalName);
268
269   /// Add ellipse
270   SKETCHAPI_EXPORT
271   std::shared_ptr<SketchAPI_Ellipse> addEllipse(
272       double theCenterX, double theCenterY,
273       double theFocusX, double theFocusY,
274       double theMinorRadius);
275   /// Add ellipse
276   SKETCHAPI_EXPORT
277   std::shared_ptr<SketchAPI_Ellipse> addEllipse(
278       const std::shared_ptr<GeomAPI_Pnt2d>& theCenter,
279       const std::shared_ptr<GeomAPI_Pnt2d>& theFocus,
280       double theRadius);
281   /// Add ellipse
282   SKETCHAPI_EXPORT
283   std::shared_ptr<SketchAPI_MacroEllipse> addEllipse(
284       double thePoint1X, double thePoint1Y,
285       double thePoint2X, double thePoint2Y,
286       double thePassedX, double thePassedY,
287       bool isPoint1Center = true);
288   /// Add ellipse
289   SKETCHAPI_EXPORT
290   std::shared_ptr<SketchAPI_MacroEllipse> addEllipse(
291       const std::pair<std::shared_ptr<GeomAPI_Pnt2d>, ModelHighAPI_RefAttr>& thePoint1,
292       const std::pair<std::shared_ptr<GeomAPI_Pnt2d>, ModelHighAPI_RefAttr>& thePoint2,
293       const std::pair<std::shared_ptr<GeomAPI_Pnt2d>, ModelHighAPI_RefAttr>& thePassedPoint,
294       bool isPoint1Center = true);
295   /// Add ellipse
296   SKETCHAPI_EXPORT
297   std::shared_ptr<SketchAPI_Ellipse> addEllipse(const ModelHighAPI_Selection & theExternal);
298   /// Add ellipse
299   SKETCHAPI_EXPORT
300   std::shared_ptr<SketchAPI_Ellipse> addEllipse(const std::string & theExternalName);
301
302   /// Add projection
303   SKETCHAPI_EXPORT
304   std::shared_ptr<SketchAPI_Projection> addProjection(
305       const ModelHighAPI_Selection & theExternalFeature,
306       bool theKeepResult = false);
307
308   /// Add projection
309   SKETCHAPI_EXPORT
310   std::shared_ptr<SketchAPI_Projection> addProjection(const std::string & theExternalName,
311                                                       bool theKeepResult = false);
312
313   /// Add mirror
314   SKETCHAPI_EXPORT
315   std::shared_ptr<SketchAPI_Mirror> addMirror(
316       const ModelHighAPI_RefAttr & theMirrorLine,
317       const std::list<std::shared_ptr<ModelAPI_Object> > & theObjects);
318
319   /// Add translation
320   SKETCHAPI_EXPORT
321   std::shared_ptr<SketchAPI_Translation> addTranslation(
322       const std::list<std::shared_ptr<ModelAPI_Object> > & theObjects,
323       const ModelHighAPI_RefAttr & thePoint1,
324       const ModelHighAPI_RefAttr & thePoint2,
325       const ModelHighAPI_Integer & theNumberOfObjects,
326       bool theFullValue = false);
327
328   /// Add rotation
329   SKETCHAPI_EXPORT
330   std::shared_ptr<SketchAPI_Rotation> addRotation(
331       const std::list<std::shared_ptr<ModelAPI_Object> > & theObjects,
332       const ModelHighAPI_RefAttr & theCenter,
333       const ModelHighAPI_Double & theAngle,
334       const ModelHighAPI_Integer & theNumberOfObjects,
335       bool theFullValue = false,
336       bool theReversed  = false);
337
338   /// Add split
339   SKETCHAPI_EXPORT
340   std::shared_ptr<ModelHighAPI_Interface> addSplit(
341       const ModelHighAPI_Reference& theFeature,
342       const std::shared_ptr<GeomAPI_Pnt2d>& thePositionPoint);
343
344   /// Add trim
345   SKETCHAPI_EXPORT
346   std::shared_ptr<ModelHighAPI_Interface> addTrim(
347       const ModelHighAPI_Reference& theFeature,
348       const std::shared_ptr<GeomAPI_Pnt2d>& thePositionPoint);
349
350   /// Set angle
351   SKETCHAPI_EXPORT
352   std::shared_ptr<ModelHighAPI_Interface> setAngle(
353       const ModelHighAPI_RefAttr & theLine1,
354       const ModelHighAPI_RefAttr & theLine2,
355       const ModelHighAPI_Double & theValue);
356
357   /// Set complementary angle
358   SKETCHAPI_EXPORT
359   std::shared_ptr<ModelHighAPI_Interface> setAngleComplementary(
360       const ModelHighAPI_RefAttr & theLine1,
361       const ModelHighAPI_RefAttr & theLine2,
362       const ModelHighAPI_Double & theValue);
363
364   /// Set backward angle (= 360 - angle)
365   SKETCHAPI_EXPORT
366   std::shared_ptr<ModelHighAPI_Interface> setAngleBackward(
367       const ModelHighAPI_RefAttr & theLine1,
368       const ModelHighAPI_RefAttr & theLine2,
369       const ModelHighAPI_Double & theValue);
370
371   /// Set coincident
372   SKETCHAPI_EXPORT
373   std::shared_ptr<ModelHighAPI_Interface> setCoincident(
374       const ModelHighAPI_RefAttr & thePoint1,
375       const ModelHighAPI_RefAttr & thePoint2);
376
377   /// Set collinear
378   SKETCHAPI_EXPORT
379   std::shared_ptr<ModelHighAPI_Interface> setCollinear(
380       const ModelHighAPI_RefAttr & theLine1,
381       const ModelHighAPI_RefAttr & theLine2);
382
383   /// Set distance
384   SKETCHAPI_EXPORT
385   std::shared_ptr<ModelHighAPI_Interface> setDistance(
386       const ModelHighAPI_RefAttr & thePoint,
387       const ModelHighAPI_RefAttr & thePointOrLine,
388       const ModelHighAPI_Double & theValue,
389       bool isSigned = false);
390
391   /// Set signed distance
392   SKETCHAPI_EXPORT
393   std::shared_ptr<ModelHighAPI_Interface> setSignedDistance(
394       const ModelHighAPI_RefAttr & thePoint,
395       const ModelHighAPI_RefAttr & thePointOrLine,
396       const ModelHighAPI_Double & theValue);
397
398   /// Set unsigned distance
399   SKETCHAPI_EXPORT
400   std::shared_ptr<ModelHighAPI_Interface> setUnsignedDistance(
401       const ModelHighAPI_RefAttr & thePoint,
402       const ModelHighAPI_RefAttr & thePointOrLine,
403       const ModelHighAPI_Double & theValue);
404
405   /// Set horizontal distance
406   SKETCHAPI_EXPORT
407   std::shared_ptr<ModelHighAPI_Interface> setHorizontalDistance(
408       const ModelHighAPI_RefAttr & thePoint1,
409       const ModelHighAPI_RefAttr & thePoint2,
410       const ModelHighAPI_Double & theValue);
411
412   /// Set vertical distance
413   SKETCHAPI_EXPORT
414   std::shared_ptr<ModelHighAPI_Interface> setVerticalDistance(
415       const ModelHighAPI_RefAttr & thePoint1,
416       const ModelHighAPI_RefAttr & thePoint2,
417       const ModelHighAPI_Double & theValue);
418
419   /// Set equal
420   SKETCHAPI_EXPORT
421   std::shared_ptr<ModelHighAPI_Interface> setEqual(
422       const ModelHighAPI_RefAttr & theObject1,
423       const ModelHighAPI_RefAttr & theObject2);
424
425   /// Set fillet
426   SKETCHAPI_EXPORT
427   std::shared_ptr<ModelHighAPI_Interface> setFillet(
428       const ModelHighAPI_RefAttr & thePoint);
429
430   /// Set fillet with additional radius constraint
431   SKETCHAPI_EXPORT
432   std::shared_ptr<ModelHighAPI_Interface> setFilletWithRadius(
433       const ModelHighAPI_RefAttr & thePoint,
434       const ModelHighAPI_Double & theRadius);
435
436   /// Set fixed
437   SKETCHAPI_EXPORT
438   std::shared_ptr<ModelHighAPI_Interface> setFixed(
439       const ModelHighAPI_RefAttr & theObject);
440
441   /// Set horizontal
442   SKETCHAPI_EXPORT
443   std::shared_ptr<ModelHighAPI_Interface> setHorizontal(
444       const ModelHighAPI_RefAttr & theLine);
445
446   /// Set length
447   SKETCHAPI_EXPORT
448   std::shared_ptr<ModelHighAPI_Interface> setLength(
449       const ModelHighAPI_RefAttr & theLine,
450       const ModelHighAPI_Double & theValue);
451
452   /// Set middle
453   SKETCHAPI_EXPORT
454   std::shared_ptr<ModelHighAPI_Interface> setMiddlePoint(
455       const ModelHighAPI_RefAttr & thePoint,
456       const ModelHighAPI_RefAttr & theLine);
457
458   /// Set parallel
459   SKETCHAPI_EXPORT
460   std::shared_ptr<ModelHighAPI_Interface> setParallel(
461       const ModelHighAPI_RefAttr & theLine1,
462       const ModelHighAPI_RefAttr & theLine2);
463
464   /// Set perpendicular
465   SKETCHAPI_EXPORT
466   std::shared_ptr<ModelHighAPI_Interface> setPerpendicular(
467       const ModelHighAPI_RefAttr & theLine1,
468       const ModelHighAPI_RefAttr & theLine2);
469
470   /// Set radius
471   SKETCHAPI_EXPORT
472   std::shared_ptr<ModelHighAPI_Interface> setRadius(
473       const ModelHighAPI_RefAttr & theCircleOrArc,
474       const ModelHighAPI_Double & theValue);
475
476   /// Set tangent
477   SKETCHAPI_EXPORT
478   std::shared_ptr<ModelHighAPI_Interface> setTangent(
479       const ModelHighAPI_RefAttr & theLine,
480       const ModelHighAPI_RefAttr & theCircle);
481
482   /// Set vertical
483   SKETCHAPI_EXPORT
484   std::shared_ptr<ModelHighAPI_Interface> setVertical(
485       const ModelHighAPI_RefAttr & theLine);
486
487   /// Set constraint value
488   SKETCHAPI_EXPORT
489   void setValue(
490       const std::shared_ptr<ModelHighAPI_Interface> & theConstraint,
491       const ModelHighAPI_Double & theValue);
492
493   /// Move point or sketch feature
494   SKETCHAPI_EXPORT
495   void move(const ModelHighAPI_RefAttr& theMovedEntity,
496             const std::shared_ptr<GeomAPI_Pnt2d>& theTargetPoint);
497
498   /// Move point or sketch feature
499   SKETCHAPI_EXPORT
500   void move(const ModelHighAPI_RefAttr& theMovedEntity,
501             double theTargetX, double theTargetY);
502
503   SKETCHAPI_EXPORT
504   std::shared_ptr<GeomAPI_Pnt2d> to2D(const std::shared_ptr<GeomAPI_Pnt>& thePoint);
505
506   // TODO(spo): rename to selectFaces() or faces() (or add faces() -> list to SWIG)
507   /// Select face
508   SKETCHAPI_EXPORT
509   std::list<ModelHighAPI_Selection> selectFace() const;
510
511   /// Dump wrapped feature
512   SKETCHAPI_EXPORT
513   virtual void dump(ModelHighAPI_Dumper& theDumper) const;
514
515 protected:
516   std::shared_ptr<ModelAPI_CompositeFeature> compositeFeature() const;
517
518 };
519
520 //! Pointer on Sketch object
521 typedef std::shared_ptr<SketchAPI_Sketch> SketchPtr;
522
523 /**\ingroup CPPHighAPI
524  * \brief Create Sketch feature
525  */
526 SKETCHAPI_EXPORT
527 SketchPtr addSketch(const std::shared_ptr<ModelAPI_Document> & thePart,
528                     const std::shared_ptr<GeomAPI_Ax3> & thePlane);
529
530 /**\ingroup CPPHighAPI
531  * \brief Create Sketch feature
532  */
533 SKETCHAPI_EXPORT
534 SketchPtr addSketch(const std::shared_ptr<ModelAPI_Document> & thePart,
535                     const ModelHighAPI_Selection & theExternal);
536
537 /**\ingroup CPPHighAPI
538  * \brief Create Sketch feature
539  */
540 SKETCHAPI_EXPORT
541 SketchPtr addSketch(const std::shared_ptr<ModelAPI_Document> & thePart,
542                     const std::string & theExternalName);
543
544 /**\ingroup CPPHighAPI
545  * \brief Create Sketch feature
546  */
547 SKETCHAPI_EXPORT
548 SketchPtr addSketch(const std::shared_ptr<ModelAPI_Document> & thePart,
549                     std::shared_ptr<ModelAPI_Object> thePlaneObject);
550
551 //--------------------------------------------------------------------------------------
552 //--------------------------------------------------------------------------------------
553 #endif /* SRC_SKETCHAPI_SKETCHAPI_SKETCH_H_ */