20 #ifndef SketchPlugin_MacroBSpline_H_
21 #define SketchPlugin_MacroBSpline_H_
23 #include <ModelAPI_IReentrant.h>
25 #include "SketchPlugin.h"
27 #include "SketchPlugin_SketchEntity.h"
29 #include <GeomAPI_IPresentable.h>
45 inline static const std::string&
ID()
47 static const std::string
ID(
"SketchMacroBSpline");
55 static const std::string
ID(
"poles");
62 static const std::string
ID(
"poles_ref");
69 static const std::string
ID(
"weights");
76 static const std::string
ID(
"need_control_poly");
81 SKETCHPLUGIN_EXPORT
virtual const std::string&
getKind()
91 virtual AISObjectPtr
getAISObject(AISObjectPtr thePrevious);
94 SKETCHPLUGIN_EXPORT
virtual void execute();
98 SKETCHPLUGIN_EXPORT
virtual bool isMacro()
const {
return true;};
109 FeaturePtr createBSplineFeature();
112 static void createControlPolygon(FeaturePtr theBSpline,
114 std::list<FeaturePtr>& thePoles);
117 void constraintsForPoles(
const std::list<FeaturePtr>& thePoles);
120 static FeaturePtr createAuxiliaryPole(std::shared_ptr<GeomDataAPI_Point2DArray> theBSplinePoles,
121 const int thePoleIndex);
123 static void createAuxiliarySegment(std::shared_ptr<GeomDataAPI_Point2DArray> theBSplinePoles,
124 const int thePoleIndex1,
125 const int thePoleIndex2);
127 static void assignDefaultNameForAux(FeaturePtr theAuxFeature,
128 std::shared_ptr<GeomDataAPI_Point2DArray> theBSplinePoles,
129 const int thePoleIndex1,
130 const int thePoleIndex2 = -1);
135 std::list<double> myKnots;
136 std::list<int> myMultiplicities;
150 inline static const std::string&
ID()
152 static const std::string
ID(
"SketchMacroBSplinePeriodic");
157 SKETCHPLUGIN_EXPORT
virtual const std::string&
getKind()
Circle in 2D.
Definition: GeomAPI_Circ2d.h:37
A class which defines an interface of object which is able to create its own presentation.
Definition: GeomAPI_IPresentable.h:29
2D point defined by two coordinates
Definition: GeomAPI_Pnt2d.h:36
Attribute that contains array of 2D point coordinates.
Definition: GeomDataAPI_Point2DArray.h:34
Base class for B-spline curves in the sketch.
Definition: SketchPlugin_BSplineBase.h:31
Feature for creation of the new B-spline curve in sketch as an interpolation or an approximation of a...
Definition: SketchPlugin_CurveFitting.h:37
Feature for creation of the new periodic B-spline in Sketch.
Definition: SketchPlugin_MacroBSpline.h:147
SketchPlugin_MacroBSplinePeriodic()
Use plugin manager for features creation.
Definition: SketchPlugin_MacroBSpline.h:163
static const std::string & ID()
B-spline macro feature kind.
Definition: SketchPlugin_MacroBSpline.h:150
virtual const std::string & getKind()
Returns the kind of a feature.
Definition: SketchPlugin_MacroBSpline.h:157
Feature for creation of the new B-spline in Sketch.
Definition: SketchPlugin_MacroBSpline.h:42
SketchPlugin_MacroBSpline()
Use plugin manager for features creation.
Definition: SketchPlugin_MacroBSpline.cpp:57
virtual void execute()
Creates a new part document if needed.
Definition: SketchPlugin_MacroBSpline.cpp:84
static const std::string & ID()
B-spline macro feature kind.
Definition: SketchPlugin_MacroBSpline.h:45
virtual const std::string & getKind()
Returns the kind of a feature.
Definition: SketchPlugin_MacroBSpline.h:81
virtual bool isPreviewNeeded() const
Returns true if preview update during the edition needed.
Definition: SketchPlugin_MacroBSpline.h:100
static const std::string & WEIGHTS_ID()
list of B-spline weights
Definition: SketchPlugin_MacroBSpline.h:67
static const std::string & REF_POLES_ID()
list of references of B-spline poles
Definition: SketchPlugin_MacroBSpline.h:60
virtual AISObjectPtr getAISObject(AISObjectPtr thePrevious)
Returns the AIS preview.
Definition: SketchPlugin_MacroBSpline.cpp:198
virtual bool isMacro() const
Reimplemented from ModelAPI_Feature::isMacro().
Definition: SketchPlugin_MacroBSpline.h:98
virtual void initAttributes()
Request for initialization of data model of the feature: adding all attributes.
Definition: SketchPlugin_MacroBSpline.cpp:71
static const std::string & POLES_ID()
list of B-spline poles
Definition: SketchPlugin_MacroBSpline.h:53
static const std::string & CONTROL_POLYGON_ID()
flag attribute whether control polygon is need to be created
Definition: SketchPlugin_MacroBSpline.h:74
Sketch Entity for creation of the new feature in PartSet.
Definition: SketchPlugin_SketchEntity.h:45