Open CASCADE Technology  7.7.0
Public Member Functions
Adaptor3d_Surface Class Reference

Root class for surfaces on which geometric algorithms work. An adapted surface is an interface between the services provided by a surface and those required of the surface by algorithms which use it. A derived concrete class is provided: GeomAdaptor_Surface for a surface from the Geom package. The Surface class describes the standard behaviour of a surface for generic algorithms. More...

#include <Adaptor3d_Surface.hxx>

Inheritance diagram for Adaptor3d_Surface:
Inheritance graph
[legend]

Public Member Functions

virtual Handle< Adaptor3d_SurfaceShallowCopy () const
 Shallow copy of adaptor. More...
 
virtual Standard_Real FirstUParameter () const
 
virtual Standard_Real LastUParameter () const
 
virtual Standard_Real FirstVParameter () const
 
virtual Standard_Real LastVParameter () const
 
virtual GeomAbs_Shape UContinuity () const
 
virtual GeomAbs_Shape VContinuity () const
 
virtual Standard_Integer NbUIntervals (const GeomAbs_Shape S) const
 Returns the number of U intervals for continuity <S>. May be one if UContinuity(me) >= <S> More...
 
virtual Standard_Integer NbVIntervals (const GeomAbs_Shape S) const
 Returns the number of V intervals for continuity <S>. May be one if VContinuity(me) >= <S> More...
 
virtual void UIntervals (TColStd_Array1OfReal &T, const GeomAbs_Shape S) const
 Returns the intervals with the requested continuity in the U direction. More...
 
virtual void VIntervals (TColStd_Array1OfReal &T, const GeomAbs_Shape S) const
 Returns the intervals with the requested continuity in the V direction. More...
 
virtual Handle< Adaptor3d_SurfaceUTrim (const Standard_Real First, const Standard_Real Last, const Standard_Real Tol) const
 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...
 
virtual Handle< Adaptor3d_SurfaceVTrim (const Standard_Real First, const Standard_Real Last, const Standard_Real Tol) const
 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...
 
virtual Standard_Boolean IsUClosed () const
 
virtual Standard_Boolean IsVClosed () const
 
virtual Standard_Boolean IsUPeriodic () const
 
virtual Standard_Real UPeriod () const
 
virtual Standard_Boolean IsVPeriodic () const
 
virtual Standard_Real VPeriod () const
 
virtual gp_Pnt Value (const Standard_Real U, const Standard_Real V) const
 Computes the point of parameters U,V on the surface. Tip: use GeomLib::NormEstim() to calculate surface normal at specified (U, V) point. More...
 
virtual void D0 (const Standard_Real U, const Standard_Real V, gp_Pnt &P) const
 Computes the point of parameters U,V on the surface. More...
 
virtual void D1 (const Standard_Real U, const Standard_Real V, gp_Pnt &P, gp_Vec &D1U, gp_Vec &D1V) const
 Computes the point and the first derivatives on the surface. Raised if the continuity of the current intervals is not C1. More...
 
virtual 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
 Computes the point, the first and second derivatives on the surface. Raised if the continuity of the current intervals is not C2. More...
 
virtual 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
 Computes the point, the first, second and third derivatives on the surface. Raised if the continuity of the current intervals is not C3. More...
 
virtual gp_Vec DN (const Standard_Real U, const Standard_Real V, const Standard_Integer Nu, const Standard_Integer Nv) const
 Computes the derivative of order Nu in the direction U and Nv in the direction V at the point P(U, V). Raised if the current U interval is not not CNu and the current V interval is not CNv. Raised if Nu + Nv < 1 or Nu < 0 or Nv < 0. More...
 
virtual Standard_Real UResolution (const Standard_Real R3d) const
 Returns the parametric U resolution corresponding to the real space resolution <R3d>. More...
 
virtual Standard_Real VResolution (const Standard_Real R3d) const
 Returns the parametric V resolution corresponding to the real space resolution <R3d>. More...
 
virtual GeomAbs_SurfaceType GetType () const
 Returns the type of the surface : Plane, Cylinder, Cone, Sphere, Torus, BezierSurface, BSplineSurface, SurfaceOfRevolution, SurfaceOfExtrusion, OtherSurface. More...
 
virtual gp_Pln Plane () const
 
virtual gp_Cylinder Cylinder () const
 
virtual gp_Cone Cone () const
 
virtual gp_Sphere Sphere () const
 
virtual gp_Torus Torus () const
 
virtual Standard_Integer UDegree () const
 
virtual Standard_Integer NbUPoles () const
 
virtual Standard_Integer VDegree () const
 
virtual Standard_Integer NbVPoles () const
 
virtual Standard_Integer NbUKnots () const
 
virtual Standard_Integer NbVKnots () const
 
virtual Standard_Boolean IsURational () const
 
virtual Standard_Boolean IsVRational () const
 
virtual Handle< Geom_BezierSurfaceBezier () const
 
virtual Handle< Geom_BSplineSurfaceBSpline () const
 
virtual gp_Ax1 AxeOfRevolution () const
 
virtual gp_Dir Direction () const
 
virtual Handle< Adaptor3d_CurveBasisCurve () const
 
virtual Handle< Adaptor3d_SurfaceBasisSurface () const
 
virtual Standard_Real OffsetValue () const
 
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...
 

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

Root class for surfaces on which geometric algorithms work. An adapted surface is an interface between the services provided by a surface and those required of the surface by algorithms which use it. A derived concrete class is provided: GeomAdaptor_Surface for a surface from the Geom package. The Surface class describes the standard behaviour of a surface for generic algorithms.

The Surface can be decomposed in intervals of any continuity in U and V using the method NbIntervals. A current interval can be set. Most of the methods apply to the current interval. Warning: All the methods are virtual and implemented with a raise to allow to redefined only the methods really used.

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

◆ ~Adaptor3d_Surface()

virtual Adaptor3d_Surface::~Adaptor3d_Surface ( )
virtual

Member Function Documentation

◆ AxeOfRevolution()

virtual gp_Ax1 Adaptor3d_Surface::AxeOfRevolution ( ) const
virtual

◆ BasisCurve()

virtual Handle< Adaptor3d_Curve > Adaptor3d_Surface::BasisCurve ( ) const
virtual

◆ BasisSurface()

virtual Handle< Adaptor3d_Surface > Adaptor3d_Surface::BasisSurface ( ) const
virtual

Reimplemented in GeomAdaptor_Surface, and BRepAdaptor_Surface.

◆ Bezier()

virtual Handle< Geom_BezierSurface > Adaptor3d_Surface::Bezier ( ) const
virtual

◆ BSpline()

virtual Handle< Geom_BSplineSurface > Adaptor3d_Surface::BSpline ( ) const
virtual

◆ Cone()

virtual gp_Cone Adaptor3d_Surface::Cone ( ) const
virtual

◆ Cylinder()

virtual gp_Cylinder Adaptor3d_Surface::Cylinder ( ) const
virtual

◆ D0()

virtual void Adaptor3d_Surface::D0 ( const Standard_Real  U,
const Standard_Real  V,
gp_Pnt P 
) const
virtual

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

Reimplemented in BRepAdaptor_Surface, and GeomAdaptor_Surface.

◆ D1()

virtual void Adaptor3d_Surface::D1 ( const Standard_Real  U,
const Standard_Real  V,
gp_Pnt P,
gp_Vec D1U,
gp_Vec D1V 
) const
virtual

Computes the point and the first derivatives on the surface. Raised if the continuity of the current intervals is not C1.

Tip: use GeomLib::NormEstim() to calculate surface normal at specified (U, V) point.

Reimplemented in GeomAdaptor_Surface, and BRepAdaptor_Surface.

◆ D2()

virtual void Adaptor3d_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
virtual

Computes the point, the first and second derivatives on the surface. Raised if the continuity of the current intervals is not C2.

Reimplemented in GeomAdaptor_Surface, and BRepAdaptor_Surface.

◆ D3()

virtual void Adaptor3d_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
virtual

Computes the point, the first, second and third derivatives on the surface. Raised if the continuity of the current intervals is not C3.

Reimplemented in GeomAdaptor_Surface, and BRepAdaptor_Surface.

◆ Direction()

virtual gp_Dir Adaptor3d_Surface::Direction ( ) const
virtual

◆ DN()

virtual gp_Vec Adaptor3d_Surface::DN ( const Standard_Real  U,
const Standard_Real  V,
const Standard_Integer  Nu,
const Standard_Integer  Nv 
) const
virtual

Computes the derivative of order Nu in the direction U and Nv in the direction V at the point P(U, V). Raised if the current U interval is not not CNu and the current V interval is not CNv. Raised if Nu + Nv < 1 or Nu < 0 or Nv < 0.

Reimplemented in GeomAdaptor_Surface, and BRepAdaptor_Surface.

◆ FirstUParameter()

virtual Standard_Real Adaptor3d_Surface::FirstUParameter ( ) const
virtual

◆ FirstVParameter()

virtual Standard_Real Adaptor3d_Surface::FirstVParameter ( ) const
virtual

◆ GetType()

virtual GeomAbs_SurfaceType Adaptor3d_Surface::GetType ( ) const
virtual

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

Reimplemented in GeomAdaptor_Surface, BRepAdaptor_Surface, GeomAdaptor_SurfaceOfRevolution, and GeomAdaptor_SurfaceOfLinearExtrusion.

◆ IsUClosed()

virtual Standard_Boolean Adaptor3d_Surface::IsUClosed ( ) const
virtual

◆ IsUPeriodic()

virtual Standard_Boolean Adaptor3d_Surface::IsUPeriodic ( ) const
virtual

◆ IsURational()

virtual Standard_Boolean Adaptor3d_Surface::IsURational ( ) const
virtual

◆ IsVClosed()

virtual Standard_Boolean Adaptor3d_Surface::IsVClosed ( ) const
virtual

◆ IsVPeriodic()

virtual Standard_Boolean Adaptor3d_Surface::IsVPeriodic ( ) const
virtual

◆ IsVRational()

virtual Standard_Boolean Adaptor3d_Surface::IsVRational ( ) const
virtual

◆ LastUParameter()

virtual Standard_Real Adaptor3d_Surface::LastUParameter ( ) const
virtual

◆ LastVParameter()

virtual Standard_Real Adaptor3d_Surface::LastVParameter ( ) const
virtual

◆ NbUIntervals()

virtual Standard_Integer Adaptor3d_Surface::NbUIntervals ( const GeomAbs_Shape  S) const
virtual

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

Reimplemented in GeomAdaptor_Surface, BRepAdaptor_Surface, GeomAdaptor_SurfaceOfRevolution, and GeomAdaptor_SurfaceOfLinearExtrusion.

◆ NbUKnots()

virtual Standard_Integer Adaptor3d_Surface::NbUKnots ( ) const
virtual

Reimplemented in GeomAdaptor_Surface, and BRepAdaptor_Surface.

◆ NbUPoles()

virtual Standard_Integer Adaptor3d_Surface::NbUPoles ( ) const
virtual

◆ NbVIntervals()

virtual Standard_Integer Adaptor3d_Surface::NbVIntervals ( const GeomAbs_Shape  S) const
virtual

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

Reimplemented in GeomAdaptor_Surface, BRepAdaptor_Surface, GeomAdaptor_SurfaceOfRevolution, and GeomAdaptor_SurfaceOfLinearExtrusion.

◆ NbVKnots()

virtual Standard_Integer Adaptor3d_Surface::NbVKnots ( ) const
virtual

◆ NbVPoles()

virtual Standard_Integer Adaptor3d_Surface::NbVPoles ( ) const
virtual

◆ OffsetValue()

virtual Standard_Real Adaptor3d_Surface::OffsetValue ( ) const
virtual

Reimplemented in GeomAdaptor_Surface, and BRepAdaptor_Surface.

◆ Plane()

virtual gp_Pln Adaptor3d_Surface::Plane ( ) const
virtual

◆ ShallowCopy()

virtual Handle< Adaptor3d_Surface > Adaptor3d_Surface::ShallowCopy ( ) const
virtual

◆ Sphere()

virtual gp_Sphere Adaptor3d_Surface::Sphere ( ) const
virtual

◆ Torus()

virtual gp_Torus Adaptor3d_Surface::Torus ( ) const
virtual

◆ UContinuity()

virtual GeomAbs_Shape Adaptor3d_Surface::UContinuity ( ) const
virtual

◆ UDegree()

virtual Standard_Integer Adaptor3d_Surface::UDegree ( ) const
virtual

◆ UIntervals()

virtual void Adaptor3d_Surface::UIntervals ( TColStd_Array1OfReal T,
const GeomAbs_Shape  S 
) const
virtual

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

Reimplemented in GeomAdaptor_Surface, BRepAdaptor_Surface, GeomAdaptor_SurfaceOfRevolution, and GeomAdaptor_SurfaceOfLinearExtrusion.

◆ UPeriod()

virtual Standard_Real Adaptor3d_Surface::UPeriod ( ) const
virtual

◆ UResolution()

virtual Standard_Real Adaptor3d_Surface::UResolution ( const Standard_Real  R3d) const
virtual

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

Reimplemented in GeomAdaptor_Surface, BRepAdaptor_Surface, GeomAdaptor_SurfaceOfRevolution, and GeomAdaptor_SurfaceOfLinearExtrusion.

◆ UTrim()

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

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 in GeomAdaptor_Surface, BRepAdaptor_Surface, GeomAdaptor_SurfaceOfRevolution, and GeomAdaptor_SurfaceOfLinearExtrusion.

◆ Value()

virtual gp_Pnt Adaptor3d_Surface::Value ( const Standard_Real  U,
const Standard_Real  V 
) const
virtual

Computes the point of parameters U,V on the surface. Tip: use GeomLib::NormEstim() to calculate surface normal at specified (U, V) point.

Reimplemented in BRepAdaptor_Surface, and GeomAdaptor_Surface.

◆ VContinuity()

virtual GeomAbs_Shape Adaptor3d_Surface::VContinuity ( ) const
virtual

◆ VDegree()

virtual Standard_Integer Adaptor3d_Surface::VDegree ( ) const
virtual

◆ VIntervals()

virtual void Adaptor3d_Surface::VIntervals ( TColStd_Array1OfReal T,
const GeomAbs_Shape  S 
) const
virtual

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

Reimplemented in GeomAdaptor_Surface, BRepAdaptor_Surface, GeomAdaptor_SurfaceOfRevolution, and GeomAdaptor_SurfaceOfLinearExtrusion.

◆ VPeriod()

virtual Standard_Real Adaptor3d_Surface::VPeriod ( ) const
virtual

◆ VResolution()

virtual Standard_Real Adaptor3d_Surface::VResolution ( const Standard_Real  R3d) const
virtual

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

Reimplemented in GeomAdaptor_Surface, BRepAdaptor_Surface, GeomAdaptor_SurfaceOfRevolution, and GeomAdaptor_SurfaceOfLinearExtrusion.

◆ VTrim()

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

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 in GeomAdaptor_Surface, BRepAdaptor_Surface, GeomAdaptor_SurfaceOfRevolution, and GeomAdaptor_SurfaceOfLinearExtrusion.


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