Open CASCADE Technology  7.6.0.dev
Public Member Functions | Protected Attributes

GeomAdaptor_Surface Class Reference

An interface between the services provided by any surface from the package Geom and those required of the surface by algorithms which use it. Creation of the loaded surface the surface is C1 by piece. More...

#include <GeomAdaptor_Surface.hxx>

Inheritance diagram for GeomAdaptor_Surface:
Inheritance graph
[legend]

Public Member Functions

 GeomAdaptor_Surface ()
 
 GeomAdaptor_Surface (const Handle< Geom_Surface > &theSurf)
 
 GeomAdaptor_Surface (const Handle< Geom_Surface > &theSurf, const Standard_Real theUFirst, const Standard_Real theULast, const Standard_Real theVFirst, const Standard_Real theVLast, const Standard_Real theTolU=0.0, const Standard_Real theTolV=0.0)
 Standard_ConstructionError is raised if UFirst>ULast or VFirst>VLast. More...
 
void Load (const Handle< Geom_Surface > &theSurf)
 
void Load (const Handle< Geom_Surface > &theSurf, const Standard_Real theUFirst, const Standard_Real theULast, const Standard_Real theVFirst, const Standard_Real theVLast, const Standard_Real theTolU=0.0, const Standard_Real theTolV=0.0)
 Standard_ConstructionError is raised if theUFirst>theULast or theVFirst>theVLast. More...
 
const Handle< Geom_Surface > & Surface () const
 
virtual Standard_Real FirstUParameter () const override
 
virtual Standard_Real LastUParameter () const override
 
virtual Standard_Real FirstVParameter () const override
 
virtual Standard_Real LastVParameter () const override
 
GeomAbs_Shape UContinuity () const override
 
GeomAbs_Shape VContinuity () const override
 
Standard_Integer NbUIntervals (const GeomAbs_Shape S) const override
 Returns the number of U intervals for continuity . May be one if UContinuity(me) >= More...
 
Standard_Integer NbVIntervals (const GeomAbs_Shape S) const override
 Returns the number of V intervals for continuity . May be one if VContinuity(me) >= More...
 
void UIntervals (TColStd_Array1OfReal &T, const GeomAbs_Shape S) const override
 Returns the intervals with the requested continuity in the U direction. More...
 
void VIntervals (TColStd_Array1OfReal &T, const GeomAbs_Shape S) const override
 Returns the intervals with the requested continuity in the V direction. More...
 
Handle< Adaptor3d_SurfaceUTrim (const Standard_Real First, const Standard_Real Last, const Standard_Real Tol) const override
 Returns a surface trimmed in the U direction equivalent of <me> between parameters <First> and <Last>. <Tol> is used to test for 3d points confusion. If <First> >= <Last> More...
 
Handle< Adaptor3d_SurfaceVTrim (const Standard_Real First, const Standard_Real Last, const Standard_Real Tol) const override
 Returns a surface trimmed in the V direction between parameters <First> and <Last>. <Tol> is used to test for 3d points confusion. If <First> >= <Last> More...
 
Standard_Boolean IsUClosed () const override
 
Standard_Boolean IsVClosed () const override
 
Standard_Boolean IsUPeriodic () const override
 
Standard_Real UPeriod () const override
 
Standard_Boolean IsVPeriodic () const override
 
Standard_Real VPeriod () const override
 
gp_Pnt Value (const Standard_Real U, const Standard_Real V) const override
 Computes the point of parameters U,V on the surface. More...
 
void D0 (const Standard_Real U, const Standard_Real V, gp_Pnt &P) const override
 Computes the point of parameters U,V on the surface. More...
 
void D1 (const Standard_Real U, const Standard_Real V, gp_Pnt &P, gp_Vec &D1U, gp_Vec &D1V) const override
 Computes the point and the first derivatives on the surface. More...
 
void D2 (const Standard_Real U, const Standard_Real V, gp_Pnt &P, gp_Vec &D1U, gp_Vec &D1V, gp_Vec &D2U, gp_Vec &D2V, gp_Vec &D2UV) const override
 Computes the point, the first and second derivatives on the surface. More...
 
void D3 (const Standard_Real U, const Standard_Real V, gp_Pnt &P, gp_Vec &D1U, gp_Vec &D1V, gp_Vec &D2U, gp_Vec &D2V, gp_Vec &D2UV, gp_Vec &D3U, gp_Vec &D3V, gp_Vec &D3UUV, gp_Vec &D3UVV) const override
 Computes the point, the first, second and third derivatives on the surface. More...
 
gp_Vec DN (const Standard_Real U, const Standard_Real V, const Standard_Integer Nu, const Standard_Integer Nv) const override
 Computes the derivative of order Nu in the direction U and Nv in the direction V at the point P(U, V). More...
 
Standard_Real UResolution (const Standard_Real R3d) const override
 Returns the parametric U resolution corresponding to the real space resolution <R3d>. More...
 
Standard_Real VResolution (const Standard_Real R3d) const override
 Returns the parametric V resolution corresponding to the real space resolution <R3d>. More...
 
virtual GeomAbs_SurfaceType GetType () const override
 Returns the type of the surface : Plane, Cylinder, Cone, Sphere, Torus, BezierSurface, BSplineSurface, SurfaceOfRevolution, SurfaceOfExtrusion, OtherSurface. More...
 
gp_Pln Plane () const override
 
gp_Cylinder Cylinder () const override
 
gp_Cone Cone () const override
 
gp_Sphere Sphere () const override
 
gp_Torus Torus () const override
 
Standard_Integer UDegree () const override
 
Standard_Integer NbUPoles () const override
 
Standard_Integer VDegree () const override
 
Standard_Integer NbVPoles () const override
 
Standard_Integer NbUKnots () const override
 
Standard_Integer NbVKnots () const override
 
Standard_Boolean IsURational () const override
 
Standard_Boolean IsVRational () const override
 
Handle< Geom_BezierSurfaceBezier () const override
 This will NOT make a copy of the Bezier Surface : If you want to modify the Surface please make a copy yourself Also it will NOT trim the surface to myU/VFirst/Last. More...
 
Handle< Geom_BSplineSurfaceBSpline () const override
 This will NOT make a copy of the BSpline Surface : If you want to modify the Surface please make a copy yourself Also it will NOT trim the surface to myU/VFirst/Last. More...
 
gp_Ax1 AxeOfRevolution () const override
 
gp_Dir Direction () const override
 
Handle< Adaptor3d_CurveBasisCurve () const override
 
Handle< Adaptor3d_SurfaceBasisSurface () const override
 
Standard_Real OffsetValue () const override
 
- Public Member Functions inherited from Adaptor3d_Surface
virtual ~Adaptor3d_Surface ()
 
- Public Member Functions inherited from Standard_Transient
 Standard_Transient ()
 Empty constructor. More...
 
 Standard_Transient (const Standard_Transient &)
 Copy constructor – does nothing. More...
 
Standard_Transientoperator= (const Standard_Transient &)
 Assignment operator, needed to avoid copying reference counter. More...
 
virtual ~Standard_Transient ()
 Destructor must be virtual. More...
 
virtual void Delete () const
 Memory deallocator for transient classes. More...
 
virtual const opencascade::handle< Standard_Type > & DynamicType () const
 Returns a type descriptor about this object. More...
 
Standard_Boolean IsInstance (const opencascade::handle< Standard_Type > &theType) const
 Returns a true value if this is an instance of Type. More...
 
Standard_Boolean IsInstance (const Standard_CString theTypeName) const
 Returns a true value if this is an instance of TypeName. More...
 
Standard_Boolean IsKind (const opencascade::handle< Standard_Type > &theType) const
 Returns true if this is an instance of Type or an instance of any class that inherits from Type. Note that multiple inheritance is not supported by OCCT RTTI mechanism. More...
 
Standard_Boolean IsKind (const Standard_CString theTypeName) const
 Returns true if this is an instance of TypeName or an instance of any class that inherits from TypeName. Note that multiple inheritance is not supported by OCCT RTTI mechanism. More...
 
Standard_TransientThis () const
 Returns non-const pointer to this object (like const_cast). For protection against creating handle to objects allocated in stack or call from constructor, it will raise exception Standard_ProgramError if reference counter is zero. More...
 
Standard_Integer GetRefCount () const
 Get the reference counter of this object. More...
 
void IncrementRefCounter () const
 Increments the reference counter of this object. More...
 
Standard_Integer DecrementRefCounter () const
 Decrements the reference counter of this object; returns the decremented value. More...
 

Protected Attributes

GeomAbs_SurfaceType mySurfaceType
 
Handle< GeomEvaluator_SurfacemyNestedEvaluator
 Calculates values of nested complex surfaces (offset surface, surface of extrusion or revolution) More...
 

Additional Inherited Members

- Public Types inherited from Standard_Transient
typedef void base_type
 Returns a type descriptor about this object. More...
 
- Static Public Member Functions inherited from Standard_Transient
static const char * get_type_name ()
 Returns a type descriptor about this object. More...
 
static const opencascade::handle< Standard_Type > & get_type_descriptor ()
 Returns type descriptor of Standard_Transient class. More...
 

Detailed Description

An interface between the services provided by any surface from the package Geom and those required of the surface by algorithms which use it. Creation of the loaded surface the surface is C1 by piece.

Polynomial coefficients of BSpline surfaces used for their evaluation are cached for better performance. Therefore these evaluations are not thread-safe and parallel evaluations need to be prevented.

Constructor & Destructor Documentation

◆ GeomAdaptor_Surface() [1/3]

GeomAdaptor_Surface::GeomAdaptor_Surface ( )
inline

◆ GeomAdaptor_Surface() [2/3]

GeomAdaptor_Surface::GeomAdaptor_Surface ( const Handle< Geom_Surface > &  theSurf)
inline

◆ GeomAdaptor_Surface() [3/3]

GeomAdaptor_Surface::GeomAdaptor_Surface ( const Handle< Geom_Surface > &  theSurf,
const Standard_Real  theUFirst,
const Standard_Real  theULast,
const Standard_Real  theVFirst,
const Standard_Real  theVLast,
const Standard_Real  theTolU = 0.0,
const Standard_Real  theTolV = 0.0 
)
inline

Standard_ConstructionError is raised if UFirst>ULast or VFirst>VLast.

Member Function Documentation

◆ AxeOfRevolution()

gp_Ax1 GeomAdaptor_Surface::AxeOfRevolution ( ) const
overridevirtual

◆ BasisCurve()

Handle< Adaptor3d_Curve > GeomAdaptor_Surface::BasisCurve ( ) const
overridevirtual

◆ BasisSurface()

Handle< Adaptor3d_Surface > GeomAdaptor_Surface::BasisSurface ( ) const
overridevirtual

Reimplemented from Adaptor3d_Surface.

◆ Bezier()

Handle< Geom_BezierSurface > GeomAdaptor_Surface::Bezier ( ) const
overridevirtual

This will NOT make a copy of the Bezier Surface : If you want to modify the Surface please make a copy yourself Also it will NOT trim the surface to myU/VFirst/Last.

Reimplemented from Adaptor3d_Surface.

Reimplemented in GeomAdaptor_SurfaceOfRevolution, and GeomAdaptor_SurfaceOfLinearExtrusion.

◆ BSpline()

Handle< Geom_BSplineSurface > GeomAdaptor_Surface::BSpline ( ) const
overridevirtual

This will NOT make a copy of the BSpline Surface : If you want to modify the Surface please make a copy yourself Also it will NOT trim the surface to myU/VFirst/Last.

Reimplemented from Adaptor3d_Surface.

Reimplemented in GeomAdaptor_SurfaceOfRevolution, and GeomAdaptor_SurfaceOfLinearExtrusion.

◆ Cone()

gp_Cone GeomAdaptor_Surface::Cone ( ) const
overridevirtual

◆ Cylinder()

gp_Cylinder GeomAdaptor_Surface::Cylinder ( ) const
overridevirtual

◆ D0()

void GeomAdaptor_Surface::D0 ( const Standard_Real  U,
const Standard_Real  V,
gp_Pnt P 
) const
overridevirtual

Computes the point of parameters U,V on the surface.

Reimplemented from Adaptor3d_Surface.

◆ D1()

void GeomAdaptor_Surface::D1 ( const Standard_Real  U,
const Standard_Real  V,
gp_Pnt P,
gp_Vec D1U,
gp_Vec D1V 
) const
overridevirtual

Computes the point and the first derivatives on the surface.

Warning : On the specific case of BSplineSurface: if the surface is cut in interval of continuity at least C1, the derivatives are computed on the current interval. else the derivatives are computed on the basis surface.

Reimplemented from Adaptor3d_Surface.

◆ D2()

void GeomAdaptor_Surface::D2 ( const Standard_Real  U,
const Standard_Real  V,
gp_Pnt P,
gp_Vec D1U,
gp_Vec D1V,
gp_Vec D2U,
gp_Vec D2V,
gp_Vec D2UV 
) const
overridevirtual

Computes the point, the first and second derivatives on the surface.

Warning : On the specific case of BSplineSurface: if the surface is cut in interval of continuity at least C2, the derivatives are computed on the current interval. else the derivatives are computed on the basis surface.

Reimplemented from Adaptor3d_Surface.

◆ D3()

void GeomAdaptor_Surface::D3 ( const Standard_Real  U,
const Standard_Real  V,
gp_Pnt P,
gp_Vec D1U,
gp_Vec D1V,
gp_Vec D2U,
gp_Vec D2V,
gp_Vec D2UV,
gp_Vec D3U,
gp_Vec D3V,
gp_Vec D3UUV,
gp_Vec D3UVV 
) const
overridevirtual

Computes the point, the first, second and third derivatives on the surface.

Warning : On the specific case of BSplineSurface: if the surface is cut in interval of continuity at least C3, the derivatives are computed on the current interval. else the derivatives are computed on the basis surface.

Reimplemented from Adaptor3d_Surface.

◆ Direction()

gp_Dir GeomAdaptor_Surface::Direction ( ) const
overridevirtual

Reimplemented from Adaptor3d_Surface.

Reimplemented in GeomAdaptor_SurfaceOfLinearExtrusion.

◆ DN()

gp_Vec GeomAdaptor_Surface::DN ( const Standard_Real  U,
const Standard_Real  V,
const Standard_Integer  Nu,
const Standard_Integer  Nv 
) const
overridevirtual

Computes the derivative of order Nu in the direction U and Nv in the direction V at the point P(U, V).

Warning : On the specific case of BSplineSurface: if the surface is cut in interval of continuity CN, the derivatives are computed on the current interval. else the derivatives are computed on the basis surface. Raised if Nu + Nv < 1 or Nu < 0 or Nv < 0.

Reimplemented from Adaptor3d_Surface.

◆ FirstUParameter()

virtual Standard_Real GeomAdaptor_Surface::FirstUParameter ( ) const
inlineoverridevirtual

◆ FirstVParameter()

virtual Standard_Real GeomAdaptor_Surface::FirstVParameter ( ) const
inlineoverridevirtual

◆ GetType()

virtual GeomAbs_SurfaceType GeomAdaptor_Surface::GetType ( ) const
inlineoverridevirtual

Returns the type of the surface : Plane, Cylinder, Cone, Sphere, Torus, BezierSurface, BSplineSurface, SurfaceOfRevolution, SurfaceOfExtrusion, OtherSurface.

Reimplemented from Adaptor3d_Surface.

Reimplemented in GeomAdaptor_SurfaceOfRevolution, and GeomAdaptor_SurfaceOfLinearExtrusion.

◆ IsUClosed()

Standard_Boolean GeomAdaptor_Surface::IsUClosed ( ) const
overridevirtual

◆ IsUPeriodic()

Standard_Boolean GeomAdaptor_Surface::IsUPeriodic ( ) const
overridevirtual

◆ IsURational()

Standard_Boolean GeomAdaptor_Surface::IsURational ( ) const
overridevirtual

◆ IsVClosed()

Standard_Boolean GeomAdaptor_Surface::IsVClosed ( ) const
overridevirtual

◆ IsVPeriodic()

Standard_Boolean GeomAdaptor_Surface::IsVPeriodic ( ) const
overridevirtual

◆ IsVRational()

Standard_Boolean GeomAdaptor_Surface::IsVRational ( ) const
overridevirtual

◆ LastUParameter()

virtual Standard_Real GeomAdaptor_Surface::LastUParameter ( ) const
inlineoverridevirtual

◆ LastVParameter()

virtual Standard_Real GeomAdaptor_Surface::LastVParameter ( ) const
inlineoverridevirtual

◆ Load() [1/2]

void GeomAdaptor_Surface::Load ( const Handle< Geom_Surface > &  theSurf)
inline

◆ Load() [2/2]

void GeomAdaptor_Surface::Load ( const Handle< Geom_Surface > &  theSurf,
const Standard_Real  theUFirst,
const Standard_Real  theULast,
const Standard_Real  theVFirst,
const Standard_Real  theVLast,
const Standard_Real  theTolU = 0.0,
const Standard_Real  theTolV = 0.0 
)
inline

Standard_ConstructionError is raised if theUFirst>theULast or theVFirst>theVLast.

◆ NbUIntervals()

Standard_Integer GeomAdaptor_Surface::NbUIntervals ( const GeomAbs_Shape  S) const
overridevirtual

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

Reimplemented from Adaptor3d_Surface.

Reimplemented in GeomAdaptor_SurfaceOfRevolution, and GeomAdaptor_SurfaceOfLinearExtrusion.

◆ NbUKnots()

Standard_Integer GeomAdaptor_Surface::NbUKnots ( ) const
overridevirtual

Reimplemented from Adaptor3d_Surface.

◆ NbUPoles()

Standard_Integer GeomAdaptor_Surface::NbUPoles ( ) const
overridevirtual

Reimplemented from Adaptor3d_Surface.

Reimplemented in GeomAdaptor_SurfaceOfLinearExtrusion.

◆ NbVIntervals()

Standard_Integer GeomAdaptor_Surface::NbVIntervals ( const GeomAbs_Shape  S) const
overridevirtual

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

Reimplemented from Adaptor3d_Surface.

Reimplemented in GeomAdaptor_SurfaceOfRevolution, and GeomAdaptor_SurfaceOfLinearExtrusion.

◆ NbVKnots()

Standard_Integer GeomAdaptor_Surface::NbVKnots ( ) const
overridevirtual

Reimplemented from Adaptor3d_Surface.

Reimplemented in GeomAdaptor_SurfaceOfRevolution.

◆ NbVPoles()

Standard_Integer GeomAdaptor_Surface::NbVPoles ( ) const
overridevirtual

Reimplemented from Adaptor3d_Surface.

Reimplemented in GeomAdaptor_SurfaceOfRevolution.

◆ OffsetValue()

Standard_Real GeomAdaptor_Surface::OffsetValue ( ) const
overridevirtual

Reimplemented from Adaptor3d_Surface.

◆ Plane()

gp_Pln GeomAdaptor_Surface::Plane ( ) const
overridevirtual

◆ Sphere()

gp_Sphere GeomAdaptor_Surface::Sphere ( ) const
overridevirtual

◆ Surface()

const Handle< Geom_Surface >& GeomAdaptor_Surface::Surface ( ) const
inline

◆ Torus()

gp_Torus GeomAdaptor_Surface::Torus ( ) const
overridevirtual

◆ UContinuity()

GeomAbs_Shape GeomAdaptor_Surface::UContinuity ( ) const
overridevirtual

◆ UDegree()

Standard_Integer GeomAdaptor_Surface::UDegree ( ) const
overridevirtual

Reimplemented from Adaptor3d_Surface.

Reimplemented in GeomAdaptor_SurfaceOfLinearExtrusion.

◆ UIntervals()

void GeomAdaptor_Surface::UIntervals ( TColStd_Array1OfReal T,
const GeomAbs_Shape  S 
) const
overridevirtual

Returns the intervals with the requested continuity in the U direction.

Reimplemented from Adaptor3d_Surface.

Reimplemented in GeomAdaptor_SurfaceOfRevolution, and GeomAdaptor_SurfaceOfLinearExtrusion.

◆ UPeriod()

Standard_Real GeomAdaptor_Surface::UPeriod ( ) const
overridevirtual

◆ UResolution()

Standard_Real GeomAdaptor_Surface::UResolution ( const Standard_Real  R3d) const
overridevirtual

Returns the parametric U resolution corresponding to the real space resolution <R3d>.

Reimplemented from Adaptor3d_Surface.

Reimplemented in GeomAdaptor_SurfaceOfRevolution, and GeomAdaptor_SurfaceOfLinearExtrusion.

◆ UTrim()

Handle< Adaptor3d_Surface > GeomAdaptor_Surface::UTrim ( const Standard_Real  First,
const Standard_Real  Last,
const Standard_Real  Tol 
) const
overridevirtual

Returns a surface trimmed in the U direction equivalent of <me> between parameters <First> and <Last>. <Tol> is used to test for 3d points confusion. If <First> >= <Last>

Reimplemented from Adaptor3d_Surface.

Reimplemented in GeomAdaptor_SurfaceOfRevolution, and GeomAdaptor_SurfaceOfLinearExtrusion.

◆ Value()

gp_Pnt GeomAdaptor_Surface::Value ( const Standard_Real  U,
const Standard_Real  V 
) const
overridevirtual

Computes the point of parameters U,V on the surface.

Reimplemented from Adaptor3d_Surface.

◆ VContinuity()

GeomAbs_Shape GeomAdaptor_Surface::VContinuity ( ) const
overridevirtual

◆ VDegree()

Standard_Integer GeomAdaptor_Surface::VDegree ( ) const
overridevirtual

Reimplemented from Adaptor3d_Surface.

Reimplemented in GeomAdaptor_SurfaceOfRevolution.

◆ VIntervals()

void GeomAdaptor_Surface::VIntervals ( TColStd_Array1OfReal T,
const GeomAbs_Shape  S 
) const
overridevirtual

Returns the intervals with the requested continuity in the V direction.

Reimplemented from Adaptor3d_Surface.

Reimplemented in GeomAdaptor_SurfaceOfRevolution, and GeomAdaptor_SurfaceOfLinearExtrusion.

◆ VPeriod()

Standard_Real GeomAdaptor_Surface::VPeriod ( ) const
overridevirtual

◆ VResolution()

Standard_Real GeomAdaptor_Surface::VResolution ( const Standard_Real  R3d) const
overridevirtual

Returns the parametric V resolution corresponding to the real space resolution <R3d>.

Reimplemented from Adaptor3d_Surface.

Reimplemented in GeomAdaptor_SurfaceOfRevolution, and GeomAdaptor_SurfaceOfLinearExtrusion.

◆ VTrim()

Handle< Adaptor3d_Surface > GeomAdaptor_Surface::VTrim ( const Standard_Real  First,
const Standard_Real  Last,
const Standard_Real  Tol 
) const
overridevirtual

Returns a surface trimmed in the V direction between parameters <First> and <Last>. <Tol> is used to test for 3d points confusion. If <First> >= <Last>

Reimplemented from Adaptor3d_Surface.

Reimplemented in GeomAdaptor_SurfaceOfRevolution, and GeomAdaptor_SurfaceOfLinearExtrusion.

Field Documentation

◆ myNestedEvaluator

Handle< GeomEvaluator_Surface > GeomAdaptor_Surface::myNestedEvaluator
protected

Calculates values of nested complex surfaces (offset surface, surface of extrusion or revolution)

◆ mySurfaceType

GeomAbs_SurfaceType GeomAdaptor_Surface::mySurfaceType
protected

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