Open CASCADE Technology
7.5.0

This class is used to approximate or interpolate a BSplineSurface passing through an Array2 of points, with a given continuity. Describes functions for building a BSpline surface which approximates or interpolates a set of points. A PointsToBSplineSurface object provides a framework for: More...
#include <GeomAPI_PointsToBSplineSurface.hxx>
Public Member Functions  
GeomAPI_PointsToBSplineSurface ()  
Constructs an empty algorithm for approximation or interpolation of a surface. Use: More...  
GeomAPI_PointsToBSplineSurface (const TColgp_Array2OfPnt &Points, const Standard_Integer DegMin=3, const Standard_Integer DegMax=8, const GeomAbs_Shape Continuity=GeomAbs_C2, const Standard_Real Tol3D=1.0e3)  
Approximates a BSpline Surface passing through an array of Points. The resulting BSpline will have the following properties: 1 his degree will be in the range [Degmin,Degmax] 2 his continuity will be at least <Continuity> 3 the distance from the point <Points> to the BSpline will be lower to Tol3D. More...  
GeomAPI_PointsToBSplineSurface (const TColgp_Array2OfPnt &Points, const Approx_ParametrizationType ParType, const Standard_Integer DegMin=3, const Standard_Integer DegMax=8, const GeomAbs_Shape Continuity=GeomAbs_C2, const Standard_Real Tol3D=1.0e3)  
Approximates a BSpline Surface passing through an array of Points. The resulting BSpline will have the following properties: 1 his degree will be in the range [Degmin,Degmax] 2 his continuity will be at least <Continuity> 3 the distance from the point <Points> to the BSpline will be lower to Tol3D. More...  
GeomAPI_PointsToBSplineSurface (const TColgp_Array2OfPnt &Points, const Standard_Real Weight1, const Standard_Real Weight2, const Standard_Real Weight3, const Standard_Integer DegMax=8, const GeomAbs_Shape Continuity=GeomAbs_C2, const Standard_Real Tol3D=1.0e3)  
Approximates a BSpline Surface passing through an array of points using variational smoothing algorithm, which tries to minimize additional criterium: Weight1*CurveLength + Weight2*Curvature + Weight3*Torsion. More...  
GeomAPI_PointsToBSplineSurface (const TColStd_Array2OfReal &ZPoints, const Standard_Real X0, const Standard_Real dX, const Standard_Real Y0, const Standard_Real dY, const Standard_Integer DegMin=3, const Standard_Integer DegMax=8, const GeomAbs_Shape Continuity=GeomAbs_C2, const Standard_Real Tol3D=1.0e3)  
Approximates a BSpline Surface passing through an array of Points. More...  
void  Init (const TColgp_Array2OfPnt &Points, const Standard_Integer DegMin=3, const Standard_Integer DegMax=8, const GeomAbs_Shape Continuity=GeomAbs_C2, const Standard_Real Tol3D=1.0e3) 
Approximates a BSpline Surface passing through an array of Point. The resulting BSpline will have the following properties: 1 his degree will be in the range [Degmin,Degmax] 2 his continuity will be at least <Continuity> 3 the distance from the point <Points> to the BSpline will be lower to Tol3D. More...  
void  Interpolate (const TColgp_Array2OfPnt &Points, const Standard_Boolean thePeriodic=Standard_False) 
Interpolates a BSpline Surface passing through an array of Point. The resulting BSpline will have the following properties: 1 his degree will be 3. 2 his continuity will be C2. More...  
void  Interpolate (const TColgp_Array2OfPnt &Points, const Approx_ParametrizationType ParType, const Standard_Boolean thePeriodic=Standard_False) 
Interpolates a BSpline Surface passing through an array of Point. The resulting BSpline will have the following properties: 1 his degree will be 3. 2 his continuity will be C2. More...  
void  Init (const TColStd_Array2OfReal &ZPoints, const Standard_Real X0, const Standard_Real dX, const Standard_Real Y0, const Standard_Real dY, const Standard_Integer DegMin=3, const Standard_Integer DegMax=8, const GeomAbs_Shape Continuity=GeomAbs_C2, const Standard_Real Tol3D=1.0e3) 
Approximates a BSpline Surface passing through an array of Points. More...  
void  Interpolate (const TColStd_Array2OfReal &ZPoints, const Standard_Real X0, const Standard_Real dX, const Standard_Real Y0, const Standard_Real dY) 
Interpolates a BSpline Surface passing through an array of Points. More...  
void  Init (const TColgp_Array2OfPnt &Points, const Approx_ParametrizationType ParType, const Standard_Integer DegMin=3, const Standard_Integer DegMax=8, const GeomAbs_Shape Continuity=GeomAbs_C2, const Standard_Real Tol3D=1.0e3, const Standard_Boolean thePeriodic=Standard_False) 
Approximates a BSpline Surface passing through an array of Point. The resulting BSpline will have the following properties: 1 his degree will be in the range [Degmin,Degmax] 2 his continuity will be at least <Continuity> 3 the distance from the point <Points> to the BSpline will be lower to Tol3D. More...  
void  Init (const TColgp_Array2OfPnt &Points, const Standard_Real Weight1, const Standard_Real Weight2, const Standard_Real Weight3, const Standard_Integer DegMax=8, const GeomAbs_Shape Continuity=GeomAbs_C2, const Standard_Real Tol3D=1.0e3) 
Approximates a BSpline Surface passing through an array of point using variational smoothing algorithm, which tries to minimize additional criterium: Weight1*CurveLength + Weight2*Curvature + Weight3*Torsion. More...  
const Handle< Geom_BSplineSurface > &  Surface () const 
Returns the approximate BSpline Surface. More...  
operator Handle< Geom_BSplineSurface > () const  
Standard_Boolean  IsDone () const 
This class is used to approximate or interpolate a BSplineSurface passing through an Array2 of points, with a given continuity. Describes functions for building a BSpline surface which approximates or interpolates a set of points. A PointsToBSplineSurface object provides a framework for:
There is accordance between parametrization of result surface S(U, V) and indexes of array Points(i, j): first index corresponds U parameter of surface, second  V parameter of surface. So, points of any jth column Points(*, j) represent any V isoline of surface, points of any ith row Point(i, *) represent any U isoline of surface.
For each sampling point parameters U, V are calculated according to type of parametrization, which can be Approx_ChordLength, Approx_Centripetal or Approx_IsoParametric. Default value is Approx_ChordLength. For ChordLength parametrisation U(i) = U(i1) + P(i).Distance(P(i1)), For Centripetal type U(i) = U(i1) + Sqrt(P(i).Distance(P(i1))). Centripetal type can get better result for irregular distances between points.
Approximation and interpolation algorithms can build periodical surface along U direction, which corresponds colums of array Points(i, j), if corresponding parameter (thePeriodic, see comments below) of called methods is set to True. Algorithm uses first row Points(1, *) as periodic boundary, so to avoid getting wrong surface it is necessary to keep distance between corresponding points of first and last rows of Points: Points(1, *) != Points(Upper, *).
GeomAPI_PointsToBSplineSurface::GeomAPI_PointsToBSplineSurface  (  ) 
Constructs an empty algorithm for approximation or interpolation of a surface. Use:
GeomAPI_PointsToBSplineSurface::GeomAPI_PointsToBSplineSurface  (  const TColgp_Array2OfPnt &  Points, 
const Standard_Integer  DegMin = 3 , 

const Standard_Integer  DegMax = 8 , 

const GeomAbs_Shape  Continuity = GeomAbs_C2 , 

const Standard_Real  Tol3D = 1.0e3 

) 
Approximates a BSpline Surface passing through an array of Points. The resulting BSpline will have the following properties: 1 his degree will be in the range [Degmin,Degmax] 2 his continuity will be at least <Continuity> 3 the distance from the point <Points> to the BSpline will be lower to Tol3D.
GeomAPI_PointsToBSplineSurface::GeomAPI_PointsToBSplineSurface  (  const TColgp_Array2OfPnt &  Points, 
const Approx_ParametrizationType  ParType,  
const Standard_Integer  DegMin = 3 , 

const Standard_Integer  DegMax = 8 , 

const GeomAbs_Shape  Continuity = GeomAbs_C2 , 

const Standard_Real  Tol3D = 1.0e3 

) 
Approximates a BSpline Surface passing through an array of Points. The resulting BSpline will have the following properties: 1 his degree will be in the range [Degmin,Degmax] 2 his continuity will be at least <Continuity> 3 the distance from the point <Points> to the BSpline will be lower to Tol3D.
GeomAPI_PointsToBSplineSurface::GeomAPI_PointsToBSplineSurface  (  const TColgp_Array2OfPnt &  Points, 
const Standard_Real  Weight1,  
const Standard_Real  Weight2,  
const Standard_Real  Weight3,  
const Standard_Integer  DegMax = 8 , 

const GeomAbs_Shape  Continuity = GeomAbs_C2 , 

const Standard_Real  Tol3D = 1.0e3 

) 
Approximates a BSpline Surface passing through an array of points using variational smoothing algorithm, which tries to minimize additional criterium: Weight1*CurveLength + Weight2*Curvature + Weight3*Torsion.
GeomAPI_PointsToBSplineSurface::GeomAPI_PointsToBSplineSurface  (  const TColStd_Array2OfReal &  ZPoints, 
const Standard_Real  X0,  
const Standard_Real  dX,  
const Standard_Real  Y0,  
const Standard_Real  dY,  
const Standard_Integer  DegMin = 3 , 

const Standard_Integer  DegMax = 8 , 

const GeomAbs_Shape  Continuity = GeomAbs_C2 , 

const Standard_Real  Tol3D = 1.0e3 

) 
Approximates a BSpline Surface passing through an array of Points.
The points will be constructed as follow: P(i,j) = gp_Pnt( X0 + (i1)*dX , Y0 + (j1)*dY , ZPoints(i,j) )
The resulting BSpline will have the following properties: 1 his degree will be in the range [Degmin,Degmax] 2 his continuity will be at least <Continuity> 3 the distance from the point <Points> to the BSpline will be lower to Tol3D 4 the parametrization of the surface will verify: S>Value( U, V) = gp_Pnt( U, V, Z(U,V) );
void GeomAPI_PointsToBSplineSurface::Init  (  const TColgp_Array2OfPnt &  Points, 
const Standard_Integer  DegMin = 3 , 

const Standard_Integer  DegMax = 8 , 

const GeomAbs_Shape  Continuity = GeomAbs_C2 , 

const Standard_Real  Tol3D = 1.0e3 

) 
Approximates a BSpline Surface passing through an array of Point. The resulting BSpline will have the following properties: 1 his degree will be in the range [Degmin,Degmax] 2 his continuity will be at least <Continuity> 3 the distance from the point <Points> to the BSpline will be lower to Tol3D.
void GeomAPI_PointsToBSplineSurface::Init  (  const TColStd_Array2OfReal &  ZPoints, 
const Standard_Real  X0,  
const Standard_Real  dX,  
const Standard_Real  Y0,  
const Standard_Real  dY,  
const Standard_Integer  DegMin = 3 , 

const Standard_Integer  DegMax = 8 , 

const GeomAbs_Shape  Continuity = GeomAbs_C2 , 

const Standard_Real  Tol3D = 1.0e3 

) 
Approximates a BSpline Surface passing through an array of Points.
The points will be constructed as follow: P(i,j) = gp_Pnt( X0 + (i1)*dX , Y0 + (j1)*dY , ZPoints(i,j) )
The resulting BSpline will have the following properties: 1 his degree will be in the range [Degmin,Degmax] 2 his continuity will be at least <Continuity> 3 the distance from the point <Points> to the BSpline will be lower to Tol3D 4 the parametrization of the surface will verify: S>Value( U, V) = gp_Pnt( U, V, Z(U,V) );
void GeomAPI_PointsToBSplineSurface::Init  (  const TColgp_Array2OfPnt &  Points, 
const Approx_ParametrizationType  ParType,  
const Standard_Integer  DegMin = 3 , 

const Standard_Integer  DegMax = 8 , 

const GeomAbs_Shape  Continuity = GeomAbs_C2 , 

const Standard_Real  Tol3D = 1.0e3 , 

const Standard_Boolean  thePeriodic = Standard_False 

) 
Approximates a BSpline Surface passing through an array of Point. The resulting BSpline will have the following properties: 1 his degree will be in the range [Degmin,Degmax] 2 his continuity will be at least <Continuity> 3 the distance from the point <Points> to the BSpline will be lower to Tol3D.
void GeomAPI_PointsToBSplineSurface::Init  (  const TColgp_Array2OfPnt &  Points, 
const Standard_Real  Weight1,  
const Standard_Real  Weight2,  
const Standard_Real  Weight3,  
const Standard_Integer  DegMax = 8 , 

const GeomAbs_Shape  Continuity = GeomAbs_C2 , 

const Standard_Real  Tol3D = 1.0e3 

) 
Approximates a BSpline Surface passing through an array of point using variational smoothing algorithm, which tries to minimize additional criterium: Weight1*CurveLength + Weight2*Curvature + Weight3*Torsion.
void GeomAPI_PointsToBSplineSurface::Interpolate  (  const TColgp_Array2OfPnt &  Points, 
const Standard_Boolean  thePeriodic = Standard_False 

) 
Interpolates a BSpline Surface passing through an array of Point. The resulting BSpline will have the following properties: 1 his degree will be 3. 2 his continuity will be C2.
void GeomAPI_PointsToBSplineSurface::Interpolate  (  const TColgp_Array2OfPnt &  Points, 
const Approx_ParametrizationType  ParType,  
const Standard_Boolean  thePeriodic = Standard_False 

) 
Interpolates a BSpline Surface passing through an array of Point. The resulting BSpline will have the following properties: 1 his degree will be 3. 2 his continuity will be C2.
void GeomAPI_PointsToBSplineSurface::Interpolate  (  const TColStd_Array2OfReal &  ZPoints, 
const Standard_Real  X0,  
const Standard_Real  dX,  
const Standard_Real  Y0,  
const Standard_Real  dY  
) 
Interpolates a BSpline Surface passing through an array of Points.
The points will be constructed as follow: P(i,j) = gp_Pnt( X0 + (i1)*dX , Y0 + (j1)*dY , ZPoints(i,j) )
The resulting BSpline will have the following properties: 1 his degree will be 3 2 his continuity will be C2. 4 the parametrization of the surface will verify: S>Value( U, V) = gp_Pnt( U, V, Z(U,V) );
Standard_Boolean GeomAPI_PointsToBSplineSurface::IsDone  (  )  const 
GeomAPI_PointsToBSplineSurface::operator Handle< Geom_BSplineSurface >  (  )  const 
const Handle< Geom_BSplineSurface >& GeomAPI_PointsToBSplineSurface::Surface  (  )  const 
Returns the approximate BSpline Surface.