Open CASCADE Technology
7.7.0
|
Describes the common behavior of surfaces in 3D space. The Geom package provides many implementations of concrete derived surfaces, such as planes, cylinders, cones, spheres and tori, surfaces of linear extrusion, surfaces of revolution, Bezier and BSpline surfaces, and so on. The key characteristic of these surfaces is that they are parameterized. Geom_Surface demonstrates: More...
#include <Geom_Surface.hxx>
Public Member Functions | |
virtual void | UReverse ()=0 |
Reverses the U direction of parametrization of <me>. The bounds of the surface are not modified. More... | |
Handle< Geom_Surface > | UReversed () const |
Reverses the U direction of parametrization of <me>. The bounds of the surface are not modified. A copy of <me> is returned. More... | |
virtual Standard_Real | UReversedParameter (const Standard_Real U) const =0 |
Returns the parameter on the Ureversed surface for the point of parameter U on <me>. More... | |
virtual void | VReverse ()=0 |
Reverses the V direction of parametrization of <me>. The bounds of the surface are not modified. More... | |
Handle< Geom_Surface > | VReversed () const |
Reverses the V direction of parametrization of <me>. The bounds of the surface are not modified. A copy of <me> is returned. More... | |
virtual Standard_Real | VReversedParameter (const Standard_Real V) const =0 |
Returns the parameter on the Vreversed surface for the point of parameter V on <me>. More... | |
virtual void | TransformParameters (Standard_Real &U, Standard_Real &V, const gp_Trsf &T) const |
Computes the parameters on the transformed surface for the transform of the point of parameters U,V on <me>. More... | |
virtual gp_GTrsf2d | ParametricTransformation (const gp_Trsf &T) const |
Returns a 2d transformation used to find the new parameters of a point on the transformed surface. More... | |
virtual void | Bounds (Standard_Real &U1, Standard_Real &U2, Standard_Real &V1, Standard_Real &V2) const =0 |
Returns the parametric bounds U1, U2, V1 and V2 of this surface. If the surface is infinite, this function can return a value equal to Precision::Infinite: instead of Standard_Real::LastReal. More... | |
virtual Standard_Boolean | IsUClosed () const =0 |
Checks whether this surface is closed in the u parametric direction. Returns true if, in the u parametric direction: taking uFirst and uLast as the parametric bounds in the u parametric direction, for each parameter v, the distance between the points P(uFirst, v) and P(uLast, v) is less than or equal to gp::Resolution(). More... | |
virtual Standard_Boolean | IsVClosed () const =0 |
Checks whether this surface is closed in the u parametric direction. Returns true if, in the v parametric direction: taking vFirst and vLast as the parametric bounds in the v parametric direction, for each parameter u, the distance between the points P(u, vFirst) and P(u, vLast) is less than or equal to gp::Resolution(). More... | |
virtual Standard_Boolean | IsUPeriodic () const =0 |
Checks if this surface is periodic in the u parametric direction. Returns true if: More... | |
virtual Standard_Real | UPeriod () const |
Returns the period of this surface in the u parametric direction. Raises if the surface is not uperiodic. More... | |
virtual Standard_Boolean | IsVPeriodic () const =0 |
Checks if this surface is periodic in the v parametric direction. Returns true if: More... | |
virtual Standard_Real | VPeriod () const |
Returns the period of this surface in the v parametric direction. raises if the surface is not vperiodic. More... | |
virtual Handle< Geom_Curve > | UIso (const Standard_Real U) const =0 |
Computes the U isoparametric curve. More... | |
virtual Handle< Geom_Curve > | VIso (const Standard_Real V) const =0 |
Computes the V isoparametric curve. More... | |
virtual GeomAbs_Shape | Continuity () const =0 |
Returns the Global Continuity of the surface in direction U and V : More... | |
virtual Standard_Boolean | IsCNu (const Standard_Integer N) const =0 |
Returns the order of continuity of the surface in the U parametric direction. Raised if N < 0. More... | |
virtual Standard_Boolean | IsCNv (const Standard_Integer N) const =0 |
Returns the order of continuity of the surface in the V parametric direction. Raised if N < 0. More... | |
virtual void | D0 (const Standard_Real U, const Standard_Real V, gp_Pnt &P) const =0 |
Computes the point of parameter 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 =0 |
Computes the point P and the first derivatives in the directions U and V at this point. Raised if the continuity of the surface 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 =0 |
Computes the point P, the first and the second derivatives in the directions U and V at this point. Raised if the continuity of the surface 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 =0 |
Computes the point P, the first,the second and the third derivatives in the directions U and V at this point. Raised if the continuity of the surface is not C2. More... | |
virtual gp_Vec | DN (const Standard_Real U, const Standard_Real V, const Standard_Integer Nu, const Standard_Integer Nv) const =0 |
Computes the derivative of order Nu in the direction U and Nv in the direction V at the point P(U, V). More... | |
gp_Pnt | Value (const Standard_Real U, const Standard_Real V) const |
Computes the point of parameter (U, V) on the surface. More... | |
virtual void | DumpJson (Standard_OStream &theOStream, Standard_Integer theDepth=-1) const override |
Dumps the content of me into the stream. More... | |
Public Member Functions inherited from Geom_Geometry | |
void | Mirror (const gp_Pnt &P) |
Performs the symmetrical transformation of a Geometry with respect to the point P which is the center of the symmetry. More... | |
void | Mirror (const gp_Ax1 &A1) |
Performs the symmetrical transformation of a Geometry with respect to an axis placement which is the axis of the symmetry. More... | |
void | Mirror (const gp_Ax2 &A2) |
Performs the symmetrical transformation of a Geometry with respect to a plane. The axis placement A2 locates the plane of the symmetry : (Location, XDirection, YDirection). More... | |
void | Rotate (const gp_Ax1 &A1, const Standard_Real Ang) |
Rotates a Geometry. A1 is the axis of the rotation. Ang is the angular value of the rotation in radians. More... | |
void | Scale (const gp_Pnt &P, const Standard_Real S) |
Scales a Geometry. S is the scaling value. More... | |
void | Translate (const gp_Vec &V) |
Translates a Geometry. V is the vector of the translation. More... | |
void | Translate (const gp_Pnt &P1, const gp_Pnt &P2) |
Translates a Geometry from the point P1 to the point P2. More... | |
virtual void | Transform (const gp_Trsf &T)=0 |
Transformation of a geometric object. This tansformation can be a translation, a rotation, a symmetry, a scaling or a complex transformation obtained by combination of the previous elementaries transformations. (see class Transformation of the package Geom). More... | |
Handle< Geom_Geometry > | Mirrored (const gp_Pnt &P) const |
Handle< Geom_Geometry > | Mirrored (const gp_Ax1 &A1) const |
Handle< Geom_Geometry > | Mirrored (const gp_Ax2 &A2) const |
Handle< Geom_Geometry > | Rotated (const gp_Ax1 &A1, const Standard_Real Ang) const |
Handle< Geom_Geometry > | Scaled (const gp_Pnt &P, const Standard_Real S) const |
Handle< Geom_Geometry > | Transformed (const gp_Trsf &T) const |
Handle< Geom_Geometry > | Translated (const gp_Vec &V) const |
Handle< Geom_Geometry > | Translated (const gp_Pnt &P1, const gp_Pnt &P2) const |
virtual Handle< Geom_Geometry > | Copy () const =0 |
Creates a new object which is a copy of this geometric object. More... | |
Public Member Functions inherited from Standard_Transient | |
Standard_Transient () | |
Empty constructor. More... | |
Standard_Transient (const Standard_Transient &) | |
Copy constructor – does nothing. More... | |
Standard_Transient & | operator= (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_Transient * | This () 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... | |
Describes the common behavior of surfaces in 3D space. The Geom package provides many implementations of concrete derived surfaces, such as planes, cylinders, cones, spheres and tori, surfaces of linear extrusion, surfaces of revolution, Bezier and BSpline surfaces, and so on. The key characteristic of these surfaces is that they are parameterized. Geom_Surface demonstrates:
Note that all surfaces must have a geometric continuity, and any surface is at least "C0". Generally, continuity is checked at construction time or when the curve is edited. Where this is not the case, the documentation makes this explicit.
Warning The Geom package does not prevent the construction of surfaces with null areas, or surfaces which self-intersect.
|
pure virtual |
Returns the parametric bounds U1, U2, V1 and V2 of this surface. If the surface is infinite, this function can return a value equal to Precision::Infinite: instead of Standard_Real::LastReal.
Implemented in Geom_BSplineSurface, Geom_BezierSurface, ShapeExtend_CompositeSurface, Geom_SurfaceOfRevolution, Geom_ConicalSurface, Geom_RectangularTrimmedSurface, Geom_Plane, Geom_ToroidalSurface, Geom_OffsetSurface, Geom_CylindricalSurface, Geom_SurfaceOfLinearExtrusion, Geom_SphericalSurface, and GeomPlate_Surface.
|
pure virtual |
Returns the Global Continuity of the surface in direction U and V :
Example: If the surface is C1 in the V parametric direction and C2 in the U parametric direction Shape = C1.
Implemented in Geom_BSplineSurface, Geom_BezierSurface, ShapeExtend_CompositeSurface, GeomPlate_Surface, Geom_RectangularTrimmedSurface, Geom_OffsetSurface, Geom_ElementarySurface, and Geom_SweptSurface.
|
pure virtual |
Computes the point of parameter U,V on the surface.
Raised only for an "OffsetSurface" if it is not possible to compute the current point.
Implemented in Geom_BSplineSurface, Geom_BezierSurface, ShapeExtend_CompositeSurface, Geom_SurfaceOfRevolution, Geom_OffsetSurface, Geom_ConicalSurface, Geom_RectangularTrimmedSurface, GeomPlate_Surface, Geom_ToroidalSurface, Geom_Plane, Geom_SphericalSurface, Geom_CylindricalSurface, and Geom_SurfaceOfLinearExtrusion.
|
pure virtual |
Computes the point P and the first derivatives in the directions U and V at this point. Raised if the continuity of the surface is not C1.
Tip: use GeomLib::NormEstim() to calculate surface normal at specified (U, V) point.
Implemented in Geom_BSplineSurface, Geom_BezierSurface, ShapeExtend_CompositeSurface, Geom_SurfaceOfRevolution, Geom_OffsetSurface, Geom_ConicalSurface, Geom_RectangularTrimmedSurface, GeomPlate_Surface, Geom_ToroidalSurface, Geom_SphericalSurface, Geom_Plane, Geom_CylindricalSurface, and Geom_SurfaceOfLinearExtrusion.
|
pure virtual |
Computes the point P, the first and the second derivatives in the directions U and V at this point. Raised if the continuity of the surface is not C2.
Implemented in Geom_BSplineSurface, Geom_BezierSurface, Geom_SurfaceOfRevolution, ShapeExtend_CompositeSurface, Geom_OffsetSurface, Geom_ConicalSurface, Geom_RectangularTrimmedSurface, GeomPlate_Surface, Geom_ToroidalSurface, Geom_SphericalSurface, Geom_Plane, Geom_CylindricalSurface, and Geom_SurfaceOfLinearExtrusion.
|
pure virtual |
Computes the point P, the first,the second and the third derivatives in the directions U and V at this point. Raised if the continuity of the surface is not C2.
Implemented in Geom_BSplineSurface, Geom_BezierSurface, Geom_SurfaceOfRevolution, ShapeExtend_CompositeSurface, Geom_OffsetSurface, Geom_ConicalSurface, Geom_RectangularTrimmedSurface, GeomPlate_Surface, Geom_ToroidalSurface, Geom_SphericalSurface, Geom_Plane, Geom_CylindricalSurface, and Geom_SurfaceOfLinearExtrusion.
|
pure 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 continuity of the surface is not CNu in the U direction or not CNv in the V direction. Raised if Nu + Nv < 1 or Nu < 0 or Nv < 0.
Implemented in Geom_BSplineSurface, Geom_BezierSurface, Geom_SurfaceOfRevolution, Geom_OffsetSurface, ShapeExtend_CompositeSurface, Geom_ConicalSurface, Geom_RectangularTrimmedSurface, GeomPlate_Surface, Geom_ToroidalSurface, Geom_SphericalSurface, Geom_Plane, Geom_SurfaceOfLinearExtrusion, and Geom_CylindricalSurface.
|
overridevirtual |
Dumps the content of me into the stream.
Reimplemented from Geom_Geometry.
Reimplemented in Geom_BSplineSurface, Geom_BezierSurface, Geom_OffsetSurface, Geom_SurfaceOfRevolution, Geom_RectangularTrimmedSurface, Geom_ConicalSurface, Geom_SurfaceOfLinearExtrusion, Geom_ToroidalSurface, Geom_SphericalSurface, Geom_Plane, Geom_CylindricalSurface, Geom_ElementarySurface, and Geom_SweptSurface.
|
pure virtual |
Returns the order of continuity of the surface in the U parametric direction. Raised if N < 0.
Implemented in Geom_BSplineSurface, Geom_BezierSurface, ShapeExtend_CompositeSurface, Geom_SurfaceOfRevolution, GeomPlate_Surface, Geom_RectangularTrimmedSurface, Geom_OffsetSurface, Geom_SurfaceOfLinearExtrusion, and Geom_ElementarySurface.
|
pure virtual |
Returns the order of continuity of the surface in the V parametric direction. Raised if N < 0.
Implemented in Geom_BSplineSurface, Geom_BezierSurface, ShapeExtend_CompositeSurface, Geom_SurfaceOfRevolution, GeomPlate_Surface, Geom_RectangularTrimmedSurface, Geom_OffsetSurface, Geom_SurfaceOfLinearExtrusion, and Geom_ElementarySurface.
|
pure virtual |
Checks whether this surface is closed in the u parametric direction. Returns true if, in the u parametric direction: taking uFirst and uLast as the parametric bounds in the u parametric direction, for each parameter v, the distance between the points P(uFirst, v) and P(uLast, v) is less than or equal to gp::Resolution().
Implemented in Geom_BSplineSurface, Geom_BezierSurface, ShapeExtend_CompositeSurface, Geom_SurfaceOfRevolution, Geom_ConicalSurface, Geom_OffsetSurface, Geom_RectangularTrimmedSurface, Geom_ToroidalSurface, Geom_Plane, Geom_CylindricalSurface, Geom_SphericalSurface, Geom_SurfaceOfLinearExtrusion, and GeomPlate_Surface.
|
pure virtual |
Checks if this surface is periodic in the u parametric direction. Returns true if:
Note: T is the parametric period in the u parametric direction.
Implemented in Geom_BSplineSurface, Geom_BezierSurface, ShapeExtend_CompositeSurface, Geom_SurfaceOfRevolution, Geom_ConicalSurface, Geom_OffsetSurface, Geom_RectangularTrimmedSurface, Geom_ToroidalSurface, Geom_Plane, Geom_CylindricalSurface, Geom_SphericalSurface, GeomPlate_Surface, and Geom_SurfaceOfLinearExtrusion.
|
pure virtual |
Checks whether this surface is closed in the u parametric direction. Returns true if, in the v parametric direction: taking vFirst and vLast as the parametric bounds in the v parametric direction, for each parameter u, the distance between the points P(u, vFirst) and P(u, vLast) is less than or equal to gp::Resolution().
Implemented in Geom_BSplineSurface, Geom_BezierSurface, ShapeExtend_CompositeSurface, Geom_SurfaceOfRevolution, Geom_ConicalSurface, Geom_OffsetSurface, Geom_RectangularTrimmedSurface, Geom_ToroidalSurface, Geom_Plane, Geom_CylindricalSurface, Geom_SphericalSurface, GeomPlate_Surface, and Geom_SurfaceOfLinearExtrusion.
|
pure virtual |
Checks if this surface is periodic in the v parametric direction. Returns true if:
Note: T is the parametric period in the v parametric direction.
Implemented in Geom_BSplineSurface, Geom_BezierSurface, Geom_SurfaceOfRevolution, ShapeExtend_CompositeSurface, Geom_ConicalSurface, Geom_OffsetSurface, Geom_RectangularTrimmedSurface, Geom_ToroidalSurface, Geom_Plane, GeomPlate_Surface, Geom_CylindricalSurface, Geom_SphericalSurface, and Geom_SurfaceOfLinearExtrusion.
|
virtual |
Returns a 2d transformation used to find the new parameters of a point on the transformed surface.
is the same point as
Where U',V' are obtained by transforming U,V with the 2d transformation returned by
This method returns an identity transformation
It can be redefined. For example on the Plane, Cylinder, Cone, Revolved and Extruded surfaces.
Reimplemented in Geom_OffsetSurface, Geom_RectangularTrimmedSurface, Geom_SurfaceOfLinearExtrusion, Geom_SurfaceOfRevolution, Geom_ConicalSurface, Geom_Plane, Geom_CylindricalSurface, and GeomPlate_Surface.
|
virtual |
Computes the parameters on the transformed surface for the transform of the point of parameters U,V on <me>.
is the same point as
Where U',V' are the new values of U,V after calling
This method does not change <U> and <V>
It can be redefined. For example on the Plane, Cylinder, Cone, Revolved and Extruded surfaces.
Reimplemented in Geom_OffsetSurface, Geom_RectangularTrimmedSurface, Geom_SurfaceOfLinearExtrusion, Geom_SurfaceOfRevolution, Geom_ConicalSurface, Geom_Plane, Geom_CylindricalSurface, and GeomPlate_Surface.
|
pure virtual |
Computes the U isoparametric curve.
Implemented in Geom_BSplineSurface, Geom_BezierSurface, Geom_SurfaceOfRevolution, ShapeExtend_CompositeSurface, Geom_ConicalSurface, Geom_OffsetSurface, Geom_RectangularTrimmedSurface, Geom_ToroidalSurface, Geom_Plane, GeomPlate_Surface, Geom_CylindricalSurface, Geom_SphericalSurface, and Geom_SurfaceOfLinearExtrusion.
|
virtual |
Returns the period of this surface in the u parametric direction. Raises if the surface is not uperiodic.
Reimplemented in Geom_OffsetSurface, Geom_RectangularTrimmedSurface, and GeomPlate_Surface.
|
pure virtual |
Reverses the U direction of parametrization of <me>. The bounds of the surface are not modified.
Implemented in Geom_BezierSurface, Geom_BSplineSurface, ShapeExtend_CompositeSurface, Geom_SurfaceOfRevolution, Geom_RectangularTrimmedSurface, Geom_OffsetSurface, Geom_Plane, Geom_SurfaceOfLinearExtrusion, Geom_ElementarySurface, and GeomPlate_Surface.
Handle< Geom_Surface > Geom_Surface::UReversed | ( | ) | const |
Reverses the U direction of parametrization of <me>. The bounds of the surface are not modified. A copy of <me> is returned.
|
pure virtual |
Returns the parameter on the Ureversed surface for the point of parameter U on <me>.
is the same point as
Implemented in Geom_BezierSurface, Geom_BSplineSurface, ShapeExtend_CompositeSurface, Geom_SurfaceOfRevolution, Geom_RectangularTrimmedSurface, Geom_ToroidalSurface, Geom_OffsetSurface, Geom_ConicalSurface, Geom_SphericalSurface, Geom_SurfaceOfLinearExtrusion, Geom_Plane, Geom_CylindricalSurface, Geom_ElementarySurface, and GeomPlate_Surface.
gp_Pnt Geom_Surface::Value | ( | const Standard_Real | U, |
const Standard_Real | V | ||
) | const |
Computes the point of parameter (U, V) on the surface.
It is implemented with D0. Tip: use GeomLib::NormEstim() to calculate surface normal at specified (U, V) point.
Raised only for an "OffsetSurface" if it is not possible to compute the current point.
|
pure virtual |
Computes the V isoparametric curve.
Implemented in Geom_BSplineSurface, Geom_BezierSurface, Geom_SurfaceOfRevolution, ShapeExtend_CompositeSurface, Geom_ConicalSurface, Geom_OffsetSurface, Geom_RectangularTrimmedSurface, Geom_ToroidalSurface, Geom_Plane, Geom_SphericalSurface, GeomPlate_Surface, Geom_CylindricalSurface, and Geom_SurfaceOfLinearExtrusion.
|
virtual |
Returns the period of this surface in the v parametric direction. raises if the surface is not vperiodic.
Reimplemented in Geom_OffsetSurface, Geom_RectangularTrimmedSurface, and GeomPlate_Surface.
|
pure virtual |
Reverses the V direction of parametrization of <me>. The bounds of the surface are not modified.
Implemented in Geom_BezierSurface, Geom_BSplineSurface, ShapeExtend_CompositeSurface, Geom_SurfaceOfRevolution, Geom_RectangularTrimmedSurface, Geom_ConicalSurface, Geom_OffsetSurface, Geom_SurfaceOfLinearExtrusion, Geom_Plane, Geom_ElementarySurface, and GeomPlate_Surface.
Handle< Geom_Surface > Geom_Surface::VReversed | ( | ) | const |
Reverses the V direction of parametrization of <me>. The bounds of the surface are not modified. A copy of <me> is returned.
|
pure virtual |
Returns the parameter on the Vreversed surface for the point of parameter V on <me>.
is the same point as
Implemented in Geom_BezierSurface, Geom_BSplineSurface, ShapeExtend_CompositeSurface, Geom_SurfaceOfRevolution, Geom_RectangularTrimmedSurface, Geom_ToroidalSurface, Geom_OffsetSurface, Geom_ConicalSurface, Geom_SurfaceOfLinearExtrusion, Geom_SphericalSurface, Geom_Plane, Geom_ElementarySurface, Geom_CylindricalSurface, and GeomPlate_Surface.