-// Copyright (C) 2014-2019 CEA/DEN, EDF R&D
+// Copyright (C) 2014-2023 CEA, EDF
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
#include <SketchPlugin_Sketch.h>
#include <SketchPlugin_SketchEntity.h>
+#include <SketchPlugin_Offset.h>
#include <ModelHighAPI_Double.h>
#include <ModelHighAPI_Interface.h>
class SketchAPI_Rectangle;
class SketchAPI_Rotation;
class SketchAPI_Translation;
+class SketchAPI_MacroMiddlePoint;
+
//--------------------------------------------------------------------------------------
typedef std::pair<std::shared_ptr<GeomAPI_Pnt2d>, ModelHighAPI_RefAttr> PointOrReference;
//--------------------------------------------------------------------------------------
std::shared_ptr<SketchAPI_Point> addPoint(const ModelHighAPI_Selection & theExternal);
/// Add point
SKETCHAPI_EXPORT
- std::shared_ptr<SketchAPI_Point> addPoint(const std::string & theExternalName);
+ std::shared_ptr<SketchAPI_Point> addPoint(const std::wstring & theExternalName);
/// Add intersection point
SKETCHAPI_EXPORT
/// Add point
SKETCHAPI_EXPORT
std::shared_ptr<SketchAPI_IntersectionPoint>
- addIntersectionPoint(const std::string & theExternalName,
+ addIntersectionPoint(const std::wstring & theExternalName,
bool theKeepResult = false);
/// Add line
std::shared_ptr<SketchAPI_Line> addLine(const ModelHighAPI_Selection & theExternal);
/// Add line
SKETCHAPI_EXPORT
- std::shared_ptr<SketchAPI_Line> addLine(const std::string & theExternalName);
+ std::shared_ptr<SketchAPI_Line> addLine(const std::wstring & theExternalName);
/// Add rectangle
SKETCHAPI_EXPORT
std::shared_ptr<SketchAPI_Rectangle> addRectangle(
const std::shared_ptr<GeomAPI_Pnt2d> & theStartPoint,
const std::shared_ptr<GeomAPI_Pnt2d> & theEndPoint);
+ /// Add rectangle
+ SKETCHAPI_EXPORT
+ std::shared_ptr<SketchAPI_Rectangle> addRectangleCentered(
+ const std::pair<std::shared_ptr<GeomAPI_Pnt2d>, ModelHighAPI_RefAttr> & theCenter,
+ const std::pair<std::shared_ptr<GeomAPI_Pnt2d>, ModelHighAPI_RefAttr> & theCorner);
- /// Add circle
+ /// Add circle.
+ /// [DEPRECATED]: use addCircleWithPoint() instead.
SKETCHAPI_EXPORT
std::shared_ptr<SketchAPI_Circle> addCircle(
double theCenterX, double theCenterY,
double theRadius);
- /// Add circle
+ /// Add circle.
+ /// [DEPRECATED]: use addCircleWithPoint() instead.
SKETCHAPI_EXPORT
std::shared_ptr<SketchAPI_Circle> addCircle(
const std::shared_ptr<GeomAPI_Pnt2d>& theCenter,
double theRadius);
- /// Add circle
+ /// Add circle.
+ /// [DEPRECATED]: use addCircleWithPoint() instead.
SKETCHAPI_EXPORT
std::shared_ptr<SketchAPI_MacroCircle> addCircle(
double theCenterX, double theCenterY,
double thePassedX, double thePassedY);
- /// Add circle
+ /// Add circle.
+ /// [DEPRECATED]: use addCircleWithPoint() instead.
SKETCHAPI_EXPORT
std::shared_ptr<SketchAPI_MacroCircle> addCircle(
const std::shared_ptr<GeomAPI_Pnt2d>& theCenterPoint,
const std::shared_ptr<GeomAPI_Pnt2d>& thePassedPoint);
- /// Add circle
+ /// Add circle.
+ /// [DEPRECATED]: use addCircleWithPoint() instead.
SKETCHAPI_EXPORT
std::shared_ptr<SketchAPI_MacroCircle> addCircle(
double theX1, double theY1,
double theX2, double theY2,
double theX3, double theY3);
- /// Add circle
+ /// Add circle.
+ /// [DEPRECATED]: use addCircleWithPoint() instead.
SKETCHAPI_EXPORT
std::shared_ptr<SketchAPI_MacroCircle> addCircle(
const std::shared_ptr<GeomAPI_Pnt2d>& thePoint1,
const std::shared_ptr<GeomAPI_Pnt2d>& thePoint2,
const std::shared_ptr<GeomAPI_Pnt2d>& thePoint3);
- /// Add circle
+ /// Add circle.
+ /// [DEPRECATED]: use addCircleWithPoint() instead.
SKETCHAPI_EXPORT
std::shared_ptr<SketchAPI_Circle> addCircle(const ModelHighAPI_Selection & theExternal);
- /// Add circle
+ /// Add circle.
+ /// [DEPRECATED]: use addCircleWithPoint() instead.
SKETCHAPI_EXPORT
- std::shared_ptr<SketchAPI_Circle> addCircle(const std::string & theExternalName);
+ std::shared_ptr<SketchAPI_Circle> addCircle(const std::wstring & theExternalName);
+
+ /// Add circle with point
+ SKETCHAPI_EXPORT
+ std::shared_ptr<SketchAPI_Circle> addCircleWithPoint(
+ double theCenterX, double theCenterY,
+ double theRadius, double theAngle);
+ /// Add circle with point
+ SKETCHAPI_EXPORT
+ std::shared_ptr<SketchAPI_Circle> addCircleWithPoint(
+ const std::shared_ptr<GeomAPI_Pnt2d>& theCenter,
+ double theRadius, double theAngle);
+ /// Add circle with point
+ SKETCHAPI_EXPORT
+ std::shared_ptr<SketchAPI_MacroCircle> addCircleWithPoint(
+ double theCenterX, double theCenterY,
+ double thePassedX, double thePassedY,
+ double theAngle);
+ /// Add circle with point
+ SKETCHAPI_EXPORT
+ std::shared_ptr<SketchAPI_MacroCircle> addCircleWithPoint(
+ const std::shared_ptr<GeomAPI_Pnt2d>& theCenterPoint,
+ const std::shared_ptr<GeomAPI_Pnt2d>& thePassedPoint,
+ double theAngle);
+ /// Add circle with point
+ SKETCHAPI_EXPORT
+ std::shared_ptr<SketchAPI_MacroCircle> addCircleWithPoint(
+ double theX1, double theY1,
+ double theX2, double theY2,
+ double theX3, double theY3,
+ double theAngle);
+ /// Add circle with point
+ SKETCHAPI_EXPORT
+ std::shared_ptr<SketchAPI_MacroCircle> addCircleWithPoint(
+ const std::shared_ptr<GeomAPI_Pnt2d>& thePoint1,
+ const std::shared_ptr<GeomAPI_Pnt2d>& thePoint2,
+ const std::shared_ptr<GeomAPI_Pnt2d>& thePoint3,
+ double theAngle);
+ /// Add circle with point
+ SKETCHAPI_EXPORT
+ std::shared_ptr<SketchAPI_Circle> addCircleWithPoint(const ModelHighAPI_Selection& theExternal);
+ /// Add circle with point
+ SKETCHAPI_EXPORT
+ std::shared_ptr<SketchAPI_Circle> addCircleWithPoint(const std::wstring& theExternalName);
/// Add arc
SKETCHAPI_EXPORT
/// Add arc
SKETCHAPI_EXPORT
- std::shared_ptr<SketchAPI_Arc> addArc(const std::string & theExternalName);
+ std::shared_ptr<SketchAPI_Arc> addArc(const std::wstring & theExternalName);
/// Add ellipse
SKETCHAPI_EXPORT
std::shared_ptr<SketchAPI_Ellipse> addEllipse(const ModelHighAPI_Selection & theExternal);
/// Add ellipse
SKETCHAPI_EXPORT
- std::shared_ptr<SketchAPI_Ellipse> addEllipse(const std::string & theExternalName);
+ std::shared_ptr<SketchAPI_Ellipse> addEllipse(const std::wstring & theExternalName);
/// Add elliptic arc
SKETCHAPI_EXPORT
std::shared_ptr<SketchAPI_EllipticArc> addEllipticArc(const ModelHighAPI_Selection & theExternal);
/// Add elliptic arc
SKETCHAPI_EXPORT
- std::shared_ptr<SketchAPI_EllipticArc> addEllipticArc(const std::string & theExternalName);
+ std::shared_ptr<SketchAPI_EllipticArc> addEllipticArc(const std::wstring & theExternalName);
/// Add B-spline
SKETCHAPI_EXPORT
SKETCHAPI_EXPORT
std::shared_ptr<SketchAPI_Projection> addProjection(
const ModelHighAPI_Selection & theExternalFeature,
- bool theKeepResult = false);
-
- /// Add projection
- SKETCHAPI_EXPORT
- std::shared_ptr<SketchAPI_Projection> addProjection(const std::string & theExternalName,
- bool theKeepResult = false);
+ bool keepResult = false,
+ bool keepRefToOriginal = true);
/// Add mirror
SKETCHAPI_EXPORT
/// Add offset
SKETCHAPI_EXPORT
- std::shared_ptr<SketchAPI_Offset> addOffset(
+ std::shared_ptr<SketchAPI_Offset> addOffset(
const std::list<std::shared_ptr<ModelAPI_Object> > & theObjects,
const ModelHighAPI_Double & theValue,
- const bool theReversed);
+ const bool theReversed = false,
+ const std::string & theJointType = SketchPlugin_Offset::JOINT_KEEP_DISTANCE(),
+ const bool theApprox = false);
/// Add translation
SKETCHAPI_EXPORT
const ModelHighAPI_RefAttr & thePoint,
const ModelHighAPI_RefAttr & theLine);
+ /// Set middle
+ SKETCHAPI_EXPORT
+ std::shared_ptr<SketchAPI_MacroMiddlePoint> setMiddlePoint(
+ const ModelHighAPI_RefAttr& theLine);
+
/// Set parallel
SKETCHAPI_EXPORT
std::shared_ptr<ModelHighAPI_Interface> setParallel(
*/
SKETCHAPI_EXPORT
SketchPtr addSketch(const std::shared_ptr<ModelAPI_Document> & thePart,
- const std::string & theExternalName);
+ const std::wstring & theExternalName);
/**\ingroup CPPHighAPI
* \brief Create Sketch feature