OCCT3D OCCT 8.0.1
OCCT documentation

Search guides and API reference

Enter at least two characters.

    Open CASCADE Technology Reference Manual 8.0.1
    FairCurve_Batten Class Reference

    Constructs curves with a constant or linearly increasing section to be used in the design of wooden or plastic battens. These curves are two-dimensional, and simulate physical splines or battens. More...

    #include <FairCurve_Batten.hxx>

    Inheritance diagram for FairCurve_Batten:

    Public Member Functions

     FairCurve_Batten (const gp_Pnt2d &P1, const gp_Pnt2d &P2, const double Height, const double Slope=0)
     Constructor with the two points and the geometrical characteristics of the batten (elastic beam) Height is the height of the deformation, and Slope is the slope value, initialized at 0. The user can then supply the desired slope value by the method, SetSlope. Other parameters are initialized as follow :
    virtual ~FairCurve_Batten ()
    void SetFreeSliding (const bool FreeSliding)
     Freesliding is initialized with the default setting false. When Freesliding is set to true and, as a result, sliding is free, the sliding factor is automatically computed to satisfy the equilibrium of the batten.
    void SetConstraintOrder1 (const int ConstraintOrder)
     Allows you to change the order of the constraint on the first point. ConstraintOrder has the default setting of 1. The following settings are available:
    void SetConstraintOrder2 (const int ConstraintOrder)
     Allows you to change the order of the constraint on the second point. ConstraintOrder is initialized with the default setting of 1. The following settings are available:
    void SetP1 (const gp_Pnt2d &P1)
     Allows you to change the location of the point, P1, and in doing so, modify the curve. Warning This method changes the angle as well as the point. Exceptions NullValue if the distance between P1 and P2 is less than or equal to the tolerance value for distance in Precision::Confusion: P1.IsEqual(P2, Precision::Confusion()). The function gp_Pnt2d::IsEqual tests to see if this is the case.
    void SetP2 (const gp_Pnt2d &P2)
     Allows you to change the location of the point, P1, and in doing so, modify the curve. Warning This method changes the angle as well as the point. Exceptions NullValue if the distance between P1 and P2 is less than or equal to the tolerance value for distance in Precision::Confusion: P1.IsEqual(P2, Precision::Confusion()). The function gp_Pnt2d::IsEqual tests to see if this is the case.
    void SetAngle1 (const double Angle1)
     Allows you to change the angle Angle1 at the first point, P1. The default setting is 0.
    void SetAngle2 (const double Angle2)
     Allows you to change the angle Angle2 at the second point, P2. The default setting is 0.
    void SetHeight (const double Height)
     Allows you to change the height of the deformation. Raises NegativeValue; – if Height <= 0 if Height <= 0.
    void SetSlope (const double Slope)
     Allows you to set the slope value, Slope.
    void SetSlidingFactor (const double SlidingFactor)
     Allows you to change the ratio SlidingFactor. This compares the length of the batten and the reference length, which is, in turn, a function of the constraints. This modification has one of the following two effects:
    virtual bool Compute (FairCurve_AnalysisCode &Code, const int NbIterations=50, const double Tolerance=1.0e-3)
     Performs the algorithm, using the arguments Code, NbIterations and Tolerance and computes the curve with respect to the constraints. Code will have one of the following values:
    double SlidingOfReference () const
     Computes the real number value for length Sliding of Reference for new constraints. If you want to give a specific length to a batten curve, use the following syntax: b.SetSlidingFactor(L / b.SlidingOfReference()) where b is the name of the batten curve object.
    bool GetFreeSliding () const
     Returns the initial free sliding value, false by default. Free sliding is generally more aesthetically pleasing than constrained sliding. However, the computation can fail with values such as angles greater than PI/2. This is because the resulting batten length is theoretically infinite.
    int GetConstraintOrder1 () const
     Returns the established first constraint order.
    int GetConstraintOrder2 () const
     Returns the established second constraint order.
    const gp_Pnt2dGetP1 () const
     Returns the established location of the point P1.
    const gp_Pnt2dGetP2 () const
     Returns the established location of the point P2.
    double GetAngle1 () const
     Returns the established first angle.
    double GetAngle2 () const
     Returns the established second angle.
    double GetHeight () const
     Returns the thickness of the lathe.
    double GetSlope () const
     Returns the established slope value.
    double GetSlidingFactor () const
     Returns the initial sliding factor.
    occ::handle< Geom2d_BSplineCurveCurve () const
     Returns the computed curve a 2d BSpline.
    virtual void Dump (Standard_OStream &o) const
     Prints on the stream o information on the current state of the object.

    Protected Member Functions

    double SlidingOfReference (const double D, const double A1, const double A2) const
    double Compute (const double D, const double A1, const double A2) const
    double Compute (const double D, const double A) const
     Returns the effective geometrical constraints at the last batten computation. This effectives values may be not equal with the wanted values if.

    Protected Attributes

    FairCurve_AnalysisCode myCode
    gp_Pnt2d OldP1
    gp_Pnt2d OldP2
    double OldAngle1
    double OldAngle2
    double OldHeight
    double OldSlope
    double OldSlidingFactor
    bool OldFreeSliding
    int OldConstraintOrder1
    int OldConstraintOrder2
    gp_Pnt2d NewP1
    gp_Pnt2d NewP2
    double NewAngle1
    double NewAngle2
    double NewHeight
    double NewSlope
    double NewSlidingFactor
    bool NewFreeSliding
    int NewConstraintOrder1
    int NewConstraintOrder2
    int Degree
    occ::handle< NCollection_HArray1< gp_Pnt2d > > Poles
    occ::handle< NCollection_HArray1< double > > Flatknots
    occ::handle< NCollection_HArray1< double > > Knots
    occ::handle< NCollection_HArray1< int > > Mults

    Detailed Description

    Constructs curves with a constant or linearly increasing section to be used in the design of wooden or plastic battens. These curves are two-dimensional, and simulate physical splines or battens.

    Constructor & Destructor Documentation

    ◆ FairCurve_Batten()

    FairCurve_Batten::FairCurve_Batten ( const gp_Pnt2d & P1,
    const gp_Pnt2d & P2,
    const double Height,
    const double Slope = 0 )

    Constructor with the two points and the geometrical characteristics of the batten (elastic beam) Height is the height of the deformation, and Slope is the slope value, initialized at 0. The user can then supply the desired slope value by the method, SetSlope. Other parameters are initialized as follow :

    • FreeSliding = False
    • ConstraintOrder1 = 1
    • ConstraintOrder2 = 1
    • Angle1 = 0
    • Angle2 = 0
    • SlidingFactor = 1 Exceptions NegativeValue if Height is less than or equal to 0. NullValue if the distance between P1 and P2 is less than or equal to the tolerance value for distance in Precision::Confusion: P1.IsEqual(P2, Precision::Confusion()). The function gp_Pnt2d::IsEqual tests to see if this is the case.

    ◆ ~FairCurve_Batten()

    virtual FairCurve_Batten::~FairCurve_Batten ( )
    virtual

    Member Function Documentation

    ◆ Compute() [1/3]

    double FairCurve_Batten::Compute ( const double D,
    const double A ) const
    protected

    Returns the effective geometrical constraints at the last batten computation. This effectives values may be not equal with the wanted values if.

    • if the value is "free"
    • in the case of incomplete computation : collapse, infinite sliding, height of batten will be negative at end points

    ◆ Compute() [2/3]

    double FairCurve_Batten::Compute ( const double D,
    const double A1,
    const double A2 ) const
    protected

    ◆ Compute() [3/3]

    virtual bool FairCurve_Batten::Compute ( FairCurve_AnalysisCode & Code,
    const int NbIterations = 50,
    const double Tolerance = 1.0e-3 )
    virtual

    Performs the algorithm, using the arguments Code, NbIterations and Tolerance and computes the curve with respect to the constraints. Code will have one of the following values:

    • OK
    • NotConverged
    • InfiniteSliding
    • NullHeight The parameters Tolerance and NbIterations control how precise the computation is, and how long it will take.

    Reimplemented in FairCurve_MinimalVariation.

    ◆ Curve()

    occ::handle< Geom2d_BSplineCurve > FairCurve_Batten::Curve ( ) const

    Returns the computed curve a 2d BSpline.

    ◆ Dump()

    virtual void FairCurve_Batten::Dump ( Standard_OStream & o) const
    virtual

    Prints on the stream o information on the current state of the object.

    Private methodes -----------------------------------—

    Reimplemented in FairCurve_MinimalVariation.

    ◆ GetAngle1()

    double FairCurve_Batten::GetAngle1 ( ) const

    Returns the established first angle.

    ◆ GetAngle2()

    double FairCurve_Batten::GetAngle2 ( ) const

    Returns the established second angle.

    ◆ GetConstraintOrder1()

    int FairCurve_Batten::GetConstraintOrder1 ( ) const

    Returns the established first constraint order.

    ◆ GetConstraintOrder2()

    int FairCurve_Batten::GetConstraintOrder2 ( ) const

    Returns the established second constraint order.

    ◆ GetFreeSliding()

    bool FairCurve_Batten::GetFreeSliding ( ) const

    Returns the initial free sliding value, false by default. Free sliding is generally more aesthetically pleasing than constrained sliding. However, the computation can fail with values such as angles greater than PI/2. This is because the resulting batten length is theoretically infinite.

    ◆ GetHeight()

    double FairCurve_Batten::GetHeight ( ) const

    Returns the thickness of the lathe.

    ◆ GetP1()

    const gp_Pnt2d & FairCurve_Batten::GetP1 ( ) const

    Returns the established location of the point P1.

    ◆ GetP2()

    const gp_Pnt2d & FairCurve_Batten::GetP2 ( ) const

    Returns the established location of the point P2.

    ◆ GetSlidingFactor()

    double FairCurve_Batten::GetSlidingFactor ( ) const

    Returns the initial sliding factor.

    ◆ GetSlope()

    double FairCurve_Batten::GetSlope ( ) const

    Returns the established slope value.

    ◆ SetAngle1()

    void FairCurve_Batten::SetAngle1 ( const double Angle1)

    Allows you to change the angle Angle1 at the first point, P1. The default setting is 0.

    ◆ SetAngle2()

    void FairCurve_Batten::SetAngle2 ( const double Angle2)

    Allows you to change the angle Angle2 at the second point, P2. The default setting is 0.

    ◆ SetConstraintOrder1()

    void FairCurve_Batten::SetConstraintOrder1 ( const int ConstraintOrder)

    Allows you to change the order of the constraint on the first point. ConstraintOrder has the default setting of 1. The following settings are available:

    • 0-the curve must pass through a point
    • 1-the curve must pass through a point and have a given tangent
    • 2-the curve must pass through a point, have a given tangent and a given curvature. The third setting is only valid for FairCurve_MinimalVariation curves. These constraints, though geometric, represent the mechanical constraints due, for example, to the resistance of the material the actual physical batten is made of.

    ◆ SetConstraintOrder2()

    void FairCurve_Batten::SetConstraintOrder2 ( const int ConstraintOrder)

    Allows you to change the order of the constraint on the second point. ConstraintOrder is initialized with the default setting of 1. The following settings are available:

    • 0-the curve must pass through a point
    • 1-the curve must pass through a point and have a given tangent
    • 2-the curve must pass through a point, have a given tangent and a given curvature. The third setting is only valid for FairCurve_MinimalVariation curves. These constraints, though geometric, represent the mechanical constraints due, for example, to the resistance of the material the actual physical batten is made of.

    ◆ SetFreeSliding()

    void FairCurve_Batten::SetFreeSliding ( const bool FreeSliding)

    Freesliding is initialized with the default setting false. When Freesliding is set to true and, as a result, sliding is free, the sliding factor is automatically computed to satisfy the equilibrium of the batten.

    ◆ SetHeight()

    void FairCurve_Batten::SetHeight ( const double Height)

    Allows you to change the height of the deformation. Raises NegativeValue; – if Height <= 0 if Height <= 0.

    ◆ SetP1()

    void FairCurve_Batten::SetP1 ( const gp_Pnt2d & P1)

    Allows you to change the location of the point, P1, and in doing so, modify the curve. Warning This method changes the angle as well as the point. Exceptions NullValue if the distance between P1 and P2 is less than or equal to the tolerance value for distance in Precision::Confusion: P1.IsEqual(P2, Precision::Confusion()). The function gp_Pnt2d::IsEqual tests to see if this is the case.

    ◆ SetP2()

    void FairCurve_Batten::SetP2 ( const gp_Pnt2d & P2)

    Allows you to change the location of the point, P1, and in doing so, modify the curve. Warning This method changes the angle as well as the point. Exceptions NullValue if the distance between P1 and P2 is less than or equal to the tolerance value for distance in Precision::Confusion: P1.IsEqual(P2, Precision::Confusion()). The function gp_Pnt2d::IsEqual tests to see if this is the case.

    ◆ SetSlidingFactor()

    void FairCurve_Batten::SetSlidingFactor ( const double SlidingFactor)

    Allows you to change the ratio SlidingFactor. This compares the length of the batten and the reference length, which is, in turn, a function of the constraints. This modification has one of the following two effects:

    • if you increase the value, it inflates the batten
    • if you decrease the value, it flattens the batten. When sliding is free, the sliding factor is automatically computed to satisfy the equilibrium of the batten. When sliding is imposed, a value is required for the sliding factor. SlidingFactor is initialized with the default setting of 1.

    ◆ SetSlope()

    void FairCurve_Batten::SetSlope ( const double Slope)

    Allows you to set the slope value, Slope.

    ◆ SlidingOfReference() [1/2]

    double FairCurve_Batten::SlidingOfReference ( ) const

    Computes the real number value for length Sliding of Reference for new constraints. If you want to give a specific length to a batten curve, use the following syntax: b.SetSlidingFactor(L / b.SlidingOfReference()) where b is the name of the batten curve object.

    ◆ SlidingOfReference() [2/2]

    double FairCurve_Batten::SlidingOfReference ( const double D,
    const double A1,
    const double A2 ) const
    protected

    Field Documentation

    ◆ Degree

    int FairCurve_Batten::Degree
    protected

    ◆ Flatknots

    occ::handle<NCollection_HArray1<double> > FairCurve_Batten::Flatknots
    protected

    ◆ Knots

    occ::handle<NCollection_HArray1<double> > FairCurve_Batten::Knots
    protected

    ◆ Mults

    occ::handle<NCollection_HArray1<int> > FairCurve_Batten::Mults
    protected

    ◆ myCode

    FairCurve_AnalysisCode FairCurve_Batten::myCode
    protected

    ◆ NewAngle1

    double FairCurve_Batten::NewAngle1
    protected

    ◆ NewAngle2

    double FairCurve_Batten::NewAngle2
    protected

    ◆ NewConstraintOrder1

    int FairCurve_Batten::NewConstraintOrder1
    protected

    ◆ NewConstraintOrder2

    int FairCurve_Batten::NewConstraintOrder2
    protected

    ◆ NewFreeSliding

    bool FairCurve_Batten::NewFreeSliding
    protected

    ◆ NewHeight

    double FairCurve_Batten::NewHeight
    protected

    ◆ NewP1

    gp_Pnt2d FairCurve_Batten::NewP1
    protected

    ◆ NewP2

    gp_Pnt2d FairCurve_Batten::NewP2
    protected

    ◆ NewSlidingFactor

    double FairCurve_Batten::NewSlidingFactor
    protected

    ◆ NewSlope

    double FairCurve_Batten::NewSlope
    protected

    ◆ OldAngle1

    double FairCurve_Batten::OldAngle1
    protected

    ◆ OldAngle2

    double FairCurve_Batten::OldAngle2
    protected

    ◆ OldConstraintOrder1

    int FairCurve_Batten::OldConstraintOrder1
    protected

    ◆ OldConstraintOrder2

    int FairCurve_Batten::OldConstraintOrder2
    protected

    ◆ OldFreeSliding

    bool FairCurve_Batten::OldFreeSliding
    protected

    ◆ OldHeight

    double FairCurve_Batten::OldHeight
    protected

    ◆ OldP1

    gp_Pnt2d FairCurve_Batten::OldP1
    protected

    ◆ OldP2

    gp_Pnt2d FairCurve_Batten::OldP2
    protected

    ◆ OldSlidingFactor

    double FairCurve_Batten::OldSlidingFactor
    protected

    ◆ OldSlope

    double FairCurve_Batten::OldSlope
    protected

    ◆ Poles

    occ::handle<NCollection_HArray1<gp_Pnt2d> > FairCurve_Batten::Poles
    protected

    The documentation for this class was generated from the following file: