X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketchAPI%2FSketchAPI_BSpline.h;fp=src%2FSketchAPI%2FSketchAPI_BSpline.h;h=377a7b65dd0d89c79c2aaa27e81cc503af3c3f3f;hb=ad093343c313ca7883863b06bcad4b220e8910fb;hp=a72b2690a3a2640c6a5140faf12776eb5b043841;hpb=250dd8079a224b8f6789244e29e4c72c051dd1b0;p=modules%2Fshaper.git diff --git a/src/SketchAPI/SketchAPI_BSpline.h b/src/SketchAPI/SketchAPI_BSpline.h index a72b2690a..377a7b65d 100644 --- a/src/SketchAPI/SketchAPI_BSpline.h +++ b/src/SketchAPI/SketchAPI_BSpline.h @@ -28,6 +28,7 @@ #include #include +#include #include #include @@ -44,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. @@ -109,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( @@ -129,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. @@ -156,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_