Open CASCADE Technology Reference Manual 8.0.0
Loading...
Searching...
No Matches
Public Member Functions
Blend_SurfRstFunction Class Referenceabstract

Deferred class for a function used to compute a blending surface between a surface and a pcurve on an other Surface, using a guide line. The vector <X> used in Value, Values and Derivatives methods may be the vector of the parametric coordinates U,V, W of the extremities of a section on the surface and the curve. More...

#include <Blend_SurfRstFunction.hxx>

Inheritance diagram for Blend_SurfRstFunction:
Inheritance graph
[legend]

Public Member Functions

int NbVariables () const override=0
 Returns 3 (default value). Can be redefined.
 
int NbEquations () const override=0
 returns the number of equations of the function.
 
bool Value (const math_Vector &X, math_Vector &F) override=0
 computes the values <F> of the Functions for the variable <X>. Returns True if the computation was done successfully, False otherwise.
 
bool Derivatives (const math_Vector &X, math_Matrix &D) override=0
 returns the values <D> of the derivatives for the variable <X>. Returns True if the computation was done successfully, False otherwise.
 
bool Values (const math_Vector &X, math_Vector &F, math_Matrix &D) override=0
 returns the values <F> of the functions and the derivatives <D> for the variable <X>. Returns True if the computation was done successfully, False otherwise.
 
void Set (const double Param) override=0
 Sets the value of the parameter along the guide line. This determines the plane in which the solution has to be found.
 
void Set (const double First, const double Last) override=0
 Sets the bounds of the parametric interval on the guide line. This determines the derivatives in these values if the function is not Cn.
 
void GetTolerance (math_Vector &Tolerance, const double Tol) const override=0
 Returns in the vector Tolerance the parametric tolerance for each variable. Tol is the tolerance used in 3d space.
 
void GetBounds (math_Vector &InfBound, math_Vector &SupBound) const override=0
 Returns in the vector InfBound the lowest values allowed for each variable. Returns in the vector SupBound the greatest values allowed for each of the 3 variables.
 
bool IsSolution (const math_Vector &Sol, const double Tol) override=0
 Returns true if Sol is a zero of the function. Tol is the tolerance used in 3d space. The computation is made at the current value of the parameter on the guide line.
 
double GetMinimalDistance () const override
 Returns the minimal Distance between two extremities of calculated sections.
 
const gp_PntPnt1 () const override
 Returns the point on the first support.
 
const gp_PntPnt2 () const override
 Returns the point on the second support.
 
virtual const gp_PntPointOnS () const =0
 Returns the point on the surface.
 
virtual const gp_PntPointOnRst () const =0
 Returns the point on the curve.
 
virtual const gp_Pnt2dPnt2dOnS () const =0
 Returns U,V coordinates of the point on the surface.
 
virtual const gp_Pnt2dPnt2dOnRst () const =0
 Returns U,V coordinates of the point on the curve on surface.
 
virtual double ParameterOnRst () const =0
 Returns parameter of the point on the curve.
 
virtual bool IsTangencyPoint () const =0
 Returns True when it is not possible to compute the tangent vectors at PointOnS and/or PointOnRst.
 
virtual const gp_VecTangentOnS () const =0
 Returns the tangent vector at PointOnS, in 3d space.
 
virtual const gp_Vec2dTangent2dOnS () const =0
 Returns the tangent vector at PointOnS, in the parametric space of the first surface.
 
virtual const gp_VecTangentOnRst () const =0
 Returns the tangent vector at PointOnC, in 3d space.
 
virtual const gp_Vec2dTangent2dOnRst () const =0
 Returns the tangent vector at PointOnRst, in the parametric space of the second surface.
 
virtual bool Decroch (const math_Vector &Sol, gp_Vec &NS, gp_Vec &TgS) const =0
 Enables implementation of a criterion of decrochage specific to the function.
 
bool IsRational () const override=0
 Returns if the section is rational.
 
double GetSectionSize () const override=0
 Returns the length of the maximum section.
 
void GetMinimalWeight (NCollection_Array1< double > &Weigths) const override=0
 Compute the minimal value of weight for each poles of all sections.
 
int NbIntervals (const GeomAbs_Shape S) const override=0
 Returns the number of intervals for continuity . May be one if Continuity(me) >=
 
void Intervals (NCollection_Array1< double > &T, const GeomAbs_Shape S) const override=0
 Stores in <T> the parameters bounding the intervals of continuity .
 
void GetShape (int &NbPoles, int &NbKnots, int &Degree, int &NbPoles2d) override=0
 
void GetTolerance (const double BoundTol, const double SurfTol, const double AngleTol, math_Vector &Tol3d, math_Vector &Tol1D) const override=0
 Returns the tolerance to reach in approximation to respect BoundTol error at the Boundary AngleTol tangent error at the Boundary SurfTol error inside the surface.
 
void Knots (NCollection_Array1< double > &TKnots) override=0
 
void Mults (NCollection_Array1< int > &TMults) override=0
 
bool Section (const Blend_Point &P, NCollection_Array1< gp_Pnt > &Poles, NCollection_Array1< gp_Vec > &DPoles, NCollection_Array1< gp_Pnt2d > &Poles2d, NCollection_Array1< gp_Vec2d > &DPoles2d, NCollection_Array1< double > &Weigths, NCollection_Array1< double > &DWeigths) override=0
 Used for the first and last section The method returns true if the derivatives are computed, otherwise it returns false.
 
bool Section (const Blend_Point &P, NCollection_Array1< gp_Pnt > &Poles, NCollection_Array1< gp_Vec > &DPoles, NCollection_Array1< gp_Vec > &D2Poles, NCollection_Array1< gp_Pnt2d > &Poles2d, NCollection_Array1< gp_Vec2d > &DPoles2d, NCollection_Array1< gp_Vec2d > &D2Poles2d, NCollection_Array1< double > &Weigths, NCollection_Array1< double > &DWeigths, NCollection_Array1< double > &D2Weigths) override=0
 Used for the first and last section The method returns true if the derivatives are computed, otherwise it returns false.
 
void Section (const Blend_Point &P, NCollection_Array1< gp_Pnt > &Poles, NCollection_Array1< gp_Pnt2d > &Poles2d, NCollection_Array1< double > &Weigths) override=0
 
- Public Member Functions inherited from Blend_AppFunction
virtual void Resolution (const int IC2d, const double Tol, double &TolU, double &TolV) const =0
 
double Parameter (const Blend_Point &P) const
 Returns the parameter of the point P. Used to impose the parameters in the approximation.
 
- Public Member Functions inherited from math_FunctionSet
virtual int GetStateNumber ()
 Returns the state of the function corresponding to the latestcall of any methods associated with the function. This function is called by each of the algorithms described later which define the function Integer Algorithm::StateNumber(). The algorithm has the responsibility to call this function when it has found a solution (i.e. a root or a minimum) and has to maintain the association between the solution found and this StateNumber. Byu default, this method returns 0 (which means for the algorithm: no state has been saved). It is the responsibility of the programmer to decide if he needs to save the current state of the function and to return an Integer that allows retrieval of the state.
 
virtual ~math_FunctionSet ()
 

Detailed Description

Deferred class for a function used to compute a blending surface between a surface and a pcurve on an other Surface, using a guide line. The vector <X> used in Value, Values and Derivatives methods may be the vector of the parametric coordinates U,V, W of the extremities of a section on the surface and the curve.

Member Function Documentation

◆ Decroch()

virtual bool Blend_SurfRstFunction::Decroch ( const math_Vector & Sol,
gp_Vec & NS,
gp_Vec & TgS ) const
pure virtual

Enables implementation of a criterion of decrochage specific to the function.

Implemented in BRepBlend_SurfRstConstRad, and BRepBlend_SurfRstEvolRad.

◆ Derivatives()

bool Blend_SurfRstFunction::Derivatives ( const math_Vector & X,
math_Matrix & D )
overridepure virtual

returns the values <D> of the derivatives for the variable <X>. Returns True if the computation was done successfully, False otherwise.

Implements Blend_AppFunction.

Implemented in BRepBlend_SurfRstConstRad, and BRepBlend_SurfRstEvolRad.

◆ GetBounds()

void Blend_SurfRstFunction::GetBounds ( math_Vector & InfBound,
math_Vector & SupBound ) const
overridepure virtual

Returns in the vector InfBound the lowest values allowed for each variable. Returns in the vector SupBound the greatest values allowed for each of the 3 variables.

Implements Blend_AppFunction.

Implemented in BRepBlend_SurfRstConstRad, and BRepBlend_SurfRstEvolRad.

◆ GetMinimalDistance()

double Blend_SurfRstFunction::GetMinimalDistance ( ) const
overridevirtual

Returns the minimal Distance between two extremities of calculated sections.

Implements Blend_AppFunction.

Reimplemented in BRepBlend_SurfRstConstRad, and BRepBlend_SurfRstEvolRad.

◆ GetMinimalWeight()

void Blend_SurfRstFunction::GetMinimalWeight ( NCollection_Array1< double > & Weigths) const
overridepure virtual

Compute the minimal value of weight for each poles of all sections.

Implements Blend_AppFunction.

Implemented in BRepBlend_SurfRstConstRad, and BRepBlend_SurfRstEvolRad.

◆ GetSectionSize()

double Blend_SurfRstFunction::GetSectionSize ( ) const
overridepure virtual

Returns the length of the maximum section.

Implements Blend_AppFunction.

Implemented in BRepBlend_SurfRstConstRad, and BRepBlend_SurfRstEvolRad.

◆ GetShape()

void Blend_SurfRstFunction::GetShape ( int & NbPoles,
int & NbKnots,
int & Degree,
int & NbPoles2d )
overridepure virtual

◆ GetTolerance() [1/2]

void Blend_SurfRstFunction::GetTolerance ( const double BoundTol,
const double SurfTol,
const double AngleTol,
math_Vector & Tol3d,
math_Vector & Tol1D ) const
overridepure virtual

Returns the tolerance to reach in approximation to respect BoundTol error at the Boundary AngleTol tangent error at the Boundary SurfTol error inside the surface.

Implements Blend_AppFunction.

Implemented in BRepBlend_SurfRstConstRad, and BRepBlend_SurfRstEvolRad.

◆ GetTolerance() [2/2]

void Blend_SurfRstFunction::GetTolerance ( math_Vector & Tolerance,
const double Tol ) const
overridepure virtual

Returns in the vector Tolerance the parametric tolerance for each variable. Tol is the tolerance used in 3d space.

Implements Blend_AppFunction.

Implemented in BRepBlend_SurfRstConstRad, and BRepBlend_SurfRstEvolRad.

◆ Intervals()

void Blend_SurfRstFunction::Intervals ( NCollection_Array1< double > & T,
const GeomAbs_Shape S ) const
overridepure virtual

Stores in <T> the parameters bounding the intervals of continuity .

The array must provide enough room to accommodate for the parameters. i.e. T.Length() > NbIntervals()

Implements Blend_AppFunction.

Implemented in BRepBlend_SurfRstConstRad, and BRepBlend_SurfRstEvolRad.

◆ IsRational()

bool Blend_SurfRstFunction::IsRational ( ) const
overridepure virtual

Returns if the section is rational.

Implements Blend_AppFunction.

Implemented in BRepBlend_SurfRstConstRad, and BRepBlend_SurfRstEvolRad.

◆ IsSolution()

bool Blend_SurfRstFunction::IsSolution ( const math_Vector & Sol,
const double Tol )
overridepure virtual

Returns true if Sol is a zero of the function. Tol is the tolerance used in 3d space. The computation is made at the current value of the parameter on the guide line.

Implements Blend_AppFunction.

Implemented in BRepBlend_SurfRstConstRad, and BRepBlend_SurfRstEvolRad.

◆ IsTangencyPoint()

virtual bool Blend_SurfRstFunction::IsTangencyPoint ( ) const
pure virtual

Returns True when it is not possible to compute the tangent vectors at PointOnS and/or PointOnRst.

Implemented in BRepBlend_SurfRstConstRad, and BRepBlend_SurfRstEvolRad.

◆ Knots()

void Blend_SurfRstFunction::Knots ( NCollection_Array1< double > & TKnots)
overridepure virtual

◆ Mults()

void Blend_SurfRstFunction::Mults ( NCollection_Array1< int > & TMults)
overridepure virtual

◆ NbEquations()

int Blend_SurfRstFunction::NbEquations ( ) const
overridepure virtual

returns the number of equations of the function.

Implements Blend_AppFunction.

Implemented in BRepBlend_SurfRstConstRad, and BRepBlend_SurfRstEvolRad.

◆ NbIntervals()

int Blend_SurfRstFunction::NbIntervals ( const GeomAbs_Shape S) const
overridepure virtual

Returns the number of intervals for continuity . May be one if Continuity(me) >=

Implements Blend_AppFunction.

Implemented in BRepBlend_SurfRstConstRad, and BRepBlend_SurfRstEvolRad.

◆ NbVariables()

int Blend_SurfRstFunction::NbVariables ( ) const
overridepure virtual

Returns 3 (default value). Can be redefined.

Implements Blend_AppFunction.

Implemented in BRepBlend_SurfRstConstRad, and BRepBlend_SurfRstEvolRad.

◆ ParameterOnRst()

virtual double Blend_SurfRstFunction::ParameterOnRst ( ) const
pure virtual

Returns parameter of the point on the curve.

Implemented in BRepBlend_SurfRstConstRad, and BRepBlend_SurfRstEvolRad.

◆ Pnt1()

const gp_Pnt & Blend_SurfRstFunction::Pnt1 ( ) const
overridevirtual

Returns the point on the first support.

Implements Blend_AppFunction.

◆ Pnt2()

const gp_Pnt & Blend_SurfRstFunction::Pnt2 ( ) const
overridevirtual

Returns the point on the second support.

Implements Blend_AppFunction.

◆ Pnt2dOnRst()

virtual const gp_Pnt2d & Blend_SurfRstFunction::Pnt2dOnRst ( ) const
pure virtual

Returns U,V coordinates of the point on the curve on surface.

Implemented in BRepBlend_SurfRstConstRad, and BRepBlend_SurfRstEvolRad.

◆ Pnt2dOnS()

virtual const gp_Pnt2d & Blend_SurfRstFunction::Pnt2dOnS ( ) const
pure virtual

Returns U,V coordinates of the point on the surface.

Implemented in BRepBlend_SurfRstConstRad, and BRepBlend_SurfRstEvolRad.

◆ PointOnRst()

virtual const gp_Pnt & Blend_SurfRstFunction::PointOnRst ( ) const
pure virtual

Returns the point on the curve.

Implemented in BRepBlend_SurfRstConstRad, and BRepBlend_SurfRstEvolRad.

◆ PointOnS()

virtual const gp_Pnt & Blend_SurfRstFunction::PointOnS ( ) const
pure virtual

Returns the point on the surface.

Implemented in BRepBlend_SurfRstConstRad, and BRepBlend_SurfRstEvolRad.

◆ Section() [1/3]

void Blend_SurfRstFunction::Section ( const Blend_Point & P,
NCollection_Array1< gp_Pnt > & Poles,
NCollection_Array1< gp_Pnt2d > & Poles2d,
NCollection_Array1< double > & Weigths )
overridepure virtual

◆ Section() [2/3]

bool Blend_SurfRstFunction::Section ( const Blend_Point & P,
NCollection_Array1< gp_Pnt > & Poles,
NCollection_Array1< gp_Vec > & DPoles,
NCollection_Array1< gp_Pnt2d > & Poles2d,
NCollection_Array1< gp_Vec2d > & DPoles2d,
NCollection_Array1< double > & Weigths,
NCollection_Array1< double > & DWeigths )
overridepure virtual

Used for the first and last section The method returns true if the derivatives are computed, otherwise it returns false.

Implements Blend_AppFunction.

Implemented in BRepBlend_SurfRstConstRad, and BRepBlend_SurfRstEvolRad.

◆ Section() [3/3]

bool Blend_SurfRstFunction::Section ( const Blend_Point & P,
NCollection_Array1< gp_Pnt > & Poles,
NCollection_Array1< gp_Vec > & DPoles,
NCollection_Array1< gp_Vec > & D2Poles,
NCollection_Array1< gp_Pnt2d > & Poles2d,
NCollection_Array1< gp_Vec2d > & DPoles2d,
NCollection_Array1< gp_Vec2d > & D2Poles2d,
NCollection_Array1< double > & Weigths,
NCollection_Array1< double > & DWeigths,
NCollection_Array1< double > & D2Weigths )
overridepure virtual

Used for the first and last section The method returns true if the derivatives are computed, otherwise it returns false.

Implements Blend_AppFunction.

Implemented in BRepBlend_SurfRstConstRad, and BRepBlend_SurfRstEvolRad.

◆ Set() [1/2]

void Blend_SurfRstFunction::Set ( const double First,
const double Last )
overridepure virtual

Sets the bounds of the parametric interval on the guide line. This determines the derivatives in these values if the function is not Cn.

Implements Blend_AppFunction.

Implemented in BRepBlend_SurfRstConstRad, and BRepBlend_SurfRstEvolRad.

◆ Set() [2/2]

void Blend_SurfRstFunction::Set ( const double Param)
overridepure virtual

Sets the value of the parameter along the guide line. This determines the plane in which the solution has to be found.

Implements Blend_AppFunction.

Implemented in BRepBlend_SurfRstConstRad, and BRepBlend_SurfRstEvolRad.

◆ Tangent2dOnRst()

virtual const gp_Vec2d & Blend_SurfRstFunction::Tangent2dOnRst ( ) const
pure virtual

Returns the tangent vector at PointOnRst, in the parametric space of the second surface.

Implemented in BRepBlend_SurfRstConstRad, and BRepBlend_SurfRstEvolRad.

◆ Tangent2dOnS()

virtual const gp_Vec2d & Blend_SurfRstFunction::Tangent2dOnS ( ) const
pure virtual

Returns the tangent vector at PointOnS, in the parametric space of the first surface.

Implemented in BRepBlend_SurfRstConstRad, and BRepBlend_SurfRstEvolRad.

◆ TangentOnRst()

virtual const gp_Vec & Blend_SurfRstFunction::TangentOnRst ( ) const
pure virtual

Returns the tangent vector at PointOnC, in 3d space.

Implemented in BRepBlend_SurfRstConstRad, and BRepBlend_SurfRstEvolRad.

◆ TangentOnS()

virtual const gp_Vec & Blend_SurfRstFunction::TangentOnS ( ) const
pure virtual

Returns the tangent vector at PointOnS, in 3d space.

Implemented in BRepBlend_SurfRstConstRad, and BRepBlend_SurfRstEvolRad.

◆ Value()

bool Blend_SurfRstFunction::Value ( const math_Vector & X,
math_Vector & F )
overridepure virtual

computes the values <F> of the Functions for the variable <X>. Returns True if the computation was done successfully, False otherwise.

Implements Blend_AppFunction.

Implemented in BRepBlend_SurfRstConstRad, and BRepBlend_SurfRstEvolRad.

◆ Values()

bool Blend_SurfRstFunction::Values ( const math_Vector & X,
math_Vector & F,
math_Matrix & D )
overridepure virtual

returns the values <F> of the functions and the derivatives <D> for the variable <X>. Returns True if the computation was done successfully, False otherwise.

Implements Blend_AppFunction.

Implemented in BRepBlend_SurfRstConstRad, and BRepBlend_SurfRstEvolRad.


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