X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketchAPI%2FSketchAPI_BSpline.h;h=377a7b65dd0d89c79c2aaa27e81cc503af3c3f3f;hb=bb4ab20a1f03f936d4d8511eb9e9733ee965bb72;hp=70370ad0ba6ae1ad43ebc8cc918cad61e6cdff3b;hpb=a4461306d16531c21f019477c95101e370e551de;p=modules%2Fshaper.git diff --git a/src/SketchAPI/SketchAPI_BSpline.h b/src/SketchAPI/SketchAPI_BSpline.h index 70370ad0b..377a7b65d 100644 --- a/src/SketchAPI/SketchAPI_BSpline.h +++ b/src/SketchAPI/SketchAPI_BSpline.h @@ -28,9 +28,11 @@ #include #include +#include + +#include +#include -class ModelHighAPI_Double; -class ModelHighAPI_Integer; class ModelHighAPI_Selection; /// \class SketchAPI_BSpline @@ -43,51 +45,26 @@ public: SKETCHAPI_EXPORT explicit SketchAPI_BSpline(const std::shared_ptr& theFeature); - /// Constructor with values. - SKETCHAPI_EXPORT SketchAPI_BSpline( - const std::shared_ptr& theFeature, - const std::list >& thePoles, - const std::list& theWeights = std::list()); - - /// Constructor with values. - SKETCHAPI_EXPORT SketchAPI_BSpline( - const std::shared_ptr& theFeature, - const int theDegree, - const std::list >& thePoles, - const std::list& theWeights = std::list(), - const std::list& theKnots = std::list(), - const std::list& theMults = std::list()); - - /// Constructor with external. - SKETCHAPI_EXPORT - SketchAPI_BSpline(const std::shared_ptr& theFeature, - const ModelHighAPI_Selection& theExternal); - - /// Constructor with external. - SKETCHAPI_EXPORT - SketchAPI_BSpline(const std::shared_ptr& theFeature, - const std::string& theExternalName); - /// Destructor. SKETCHAPI_EXPORT virtual ~SketchAPI_BSpline(); INTERFACE_8(SketchPlugin_BSpline::ID(), - poles, SketchPlugin_BSpline::POLES_ID(), + poles, SketchPlugin_BSplineBase::POLES_ID(), GeomDataAPI_Point2DArray, /** B-spline poles */, - weights, SketchPlugin_BSpline::WEIGHTS_ID(), + weights, SketchPlugin_BSplineBase::WEIGHTS_ID(), ModelAPI_AttributeDoubleArray, /** B-spline weights */, - knots, SketchPlugin_BSpline::KNOTS_ID(), + knots, SketchPlugin_BSplineBase::KNOTS_ID(), ModelAPI_AttributeDoubleArray, /** B-spline knots */, - multiplicities, SketchPlugin_BSpline::MULTS_ID(), + multiplicities, SketchPlugin_BSplineBase::MULTS_ID(), ModelAPI_AttributeIntArray, /** Knots multiplicities */, - degree, SketchPlugin_BSpline::DEGREE_ID(), + degree, SketchPlugin_BSplineBase::DEGREE_ID(), ModelAPI_AttributeInteger, /** B-spline degree */, startPoint, SketchPlugin_BSpline::START_ID(), GeomDataAPI_Point2D, /** First pole of B-spline */, endPoint, SketchPlugin_BSpline::END_ID(), GeomDataAPI_Point2D, /** Last pole of B-spline */, - external, SketchPlugin_BSpline::EXTERNAL_ID(), + external, SketchPlugin_BSplineBase::EXTERNAL_ID(), ModelAPI_AttributeSelection, /** External */) /// Set by poles and weights. @@ -108,10 +85,6 @@ public: SKETCHAPI_EXPORT void setByExternal(const ModelHighAPI_Selection& theExternal); - /// Set by external name. - SKETCHAPI_EXPORT - void setByExternalName(const std::string& theExternalName); - /// Generate list of construction points coincident with B-spline poles SKETCHAPI_EXPORT std::list > controlPoles( @@ -128,6 +101,9 @@ public: SKETCHAPI_EXPORT virtual void dump(ModelHighAPI_Dumper& theDumper) const; +protected: + SketchAPI_BSpline(const std::shared_ptr& theFeature, bool theInitialize); + private: /// Initialize start and end points of B-spline and apply internal coincidence /// constraint to keep them on the corresponding pole. @@ -155,4 +131,24 @@ private: /// Pointer on B-spline object. typedef std::shared_ptr BSplinePtr; + + +/// \class SketchAPI_BSplinePeriodic +/// \ingroup CPPHighAPI +/// \brief Interface for BSplinePeriodic feature. +class SketchAPI_BSplinePeriodic : public SketchAPI_BSpline +{ +public: + /// Constructor without values. + SKETCHAPI_EXPORT + explicit SketchAPI_BSplinePeriodic(const std::shared_ptr& theFeature); + + /// Destructor. + SKETCHAPI_EXPORT + virtual ~SketchAPI_BSplinePeriodic() {} + + static std::string ID() { return SketchPlugin_BSplinePeriodic::ID(); } + virtual std::string getID() { return SketchPlugin_BSplinePeriodic::ID(); } +}; + #endif // SketchAPI_BSpline_H_