Open CASCADE Technology 7.8.0
|
Describes a surface of linear extrusion ("extruded surface"), e.g. a generalized cylinder. Such a surface is obtained by sweeping a curve (called the "extruded curve" or "basis") in a given direction (referred to as the "direction of extrusion" and defined by a unit vector). The u parameter is along the extruded curve. The v parameter is along the direction of extrusion. The parameter range for the u parameter is defined by the reference curve. The parameter range for the v parameter is ] - infinity, + infinity [. The position of the curve gives the origin of the v parameter. The surface is "CN" in the v parametric direction. The form of a surface of linear extrusion is generally a ruled surface (GeomAbs_RuledForm). It can be: More...
#include <Geom_SurfaceOfLinearExtrusion.hxx>
Public Member Functions | |
Geom_SurfaceOfLinearExtrusion (const Handle< Geom_Curve > &C, const gp_Dir &V) | |
V is the direction of extrusion. C is the extruded curve. The form of a SurfaceOfLinearExtrusion can be : . ruled surface (RuledForm), . a cylindrical surface if the extruded curve is a circle or a trimmed circle (CylindricalForm), . a plane surface if the extruded curve is a Line (PlanarForm). Warnings : Degenerated surface cases are not detected. For example if the curve C is a line and V is parallel to the direction of this line. | |
void | SetDirection (const gp_Dir &V) |
Assigns V as the "direction of extrusion" for this surface of linear extrusion. | |
void | SetBasisCurve (const Handle< Geom_Curve > &C) |
Modifies this surface of linear extrusion by redefining its "basis curve" (the "extruded curve"). | |
void | UReverse () override |
Changes the orientation of this surface of linear extrusion in the u parametric direction. The bounds of the surface are not changed, but the given parametric direction is reversed. Hence the orientation of the surface is reversed. In the case of a surface of linear extrusion: | |
Standard_Real | UReversedParameter (const Standard_Real U) const override |
Computes the u parameter on the modified surface, produced by reversing its u parametric direction, for any point of u parameter U on this surface of linear extrusion. In the case of an extruded surface: | |
void | VReverse () override |
Changes the orientation of this surface of linear extrusion in the v parametric direction. The bounds of the surface are not changed, but the given parametric direction is reversed. Hence the orientation of the surface is reversed. In the case of a surface of linear extrusion: | |
Standard_Real | VReversedParameter (const Standard_Real V) const override |
Computes the v parameter on the modified surface, produced by reversing its u v parametric direction, for any point of v parameter V on this surface of linear extrusion. In the case of an extruded surface VReverse returns -V. | |
void | Bounds (Standard_Real &U1, Standard_Real &U2, Standard_Real &V1, Standard_Real &V2) const override |
Returns the parametric bounds U1, U2, V1 and V2 of this surface of linear extrusion. A surface of linear extrusion is infinite in the v parametric direction, so: | |
Standard_Boolean | IsUClosed () const override |
IsUClosed returns true if the "basis curve" of this surface of linear extrusion is closed. | |
Standard_Boolean | IsVClosed () const override |
IsVClosed always returns false. | |
Standard_Boolean | IsCNu (const Standard_Integer N) const override |
IsCNu returns true if the degree of continuity for the "basis curve" of this surface of linear extrusion is at least N. Raises RangeError if N < 0. | |
Standard_Boolean | IsCNv (const Standard_Integer N) const override |
IsCNv always returns true. | |
Standard_Boolean | IsUPeriodic () const override |
IsUPeriodic returns true if the "basis curve" of this surface of linear extrusion is periodic. | |
Standard_Boolean | IsVPeriodic () const override |
IsVPeriodic always returns false. | |
Handle< Geom_Curve > | UIso (const Standard_Real U) const override |
Computes the U isoparametric curve of this surface of linear extrusion. This is the line parallel to the direction of extrusion, passing through the point of parameter U of the basis curve. | |
Handle< Geom_Curve > | VIso (const Standard_Real V) const override |
Computes the V isoparametric curve of this surface of linear extrusion. This curve is obtained by translating the extruded curve in the direction of extrusion, with the magnitude V. | |
void | D0 (const Standard_Real U, const Standard_Real V, gp_Pnt &P) const override |
Computes the point P (U, V) on the surface. The parameter U is the parameter on the extruded curve. The parametrization V is a linear parametrization, and the direction of parametrization is the direction of extrusion. If the point is on the extruded curve, V = 0.0. | |
void | D1 (const Standard_Real U, const Standard_Real V, gp_Pnt &P, gp_Vec &D1U, gp_Vec &D1V) const override |
Computes the current point and the first derivatives in the directions U and V. Raises UndefinedDerivative if the continuity of the surface is not C1. | |
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 |
— Purpose ; Computes the current point, the first and the second derivatives in the directions U and V. Raises UndefinedDerivative if the continuity of the surface is not C2. | |
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 current point, the first,the second and the third derivatives in the directions U and V. Raises UndefinedDerivative if the continuity of the surface is not C3. | |
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. Raises UndefinedDerivative if the continuity of the surface is not CNu in the u direction and CNv in the v direction. Raises RangeError if Nu + Nv < 1 or Nu < 0 or Nv < 0. | |
void | Transform (const gp_Trsf &T) override |
Applies the transformation T to this surface of linear extrusion. | |
virtual void | TransformParameters (Standard_Real &U, Standard_Real &V, const gp_Trsf &T) const override |
Computes the parameters on the transformed surface for the transform of the point of parameters U,V on <me>. | |
virtual gp_GTrsf2d | ParametricTransformation (const gp_Trsf &T) const override |
Returns a 2d transformation used to find the new parameters of a point on the transformed surface. | |
Handle< Geom_Geometry > | Copy () const override |
Creates a new object which is a copy of this surface of linear extrusion. | |
virtual void | DumpJson (Standard_OStream &theOStream, Standard_Integer theDepth=-1) const override |
Dumps the content of me into the stream. | |
Public Member Functions inherited from Geom_SweptSurface | |
GeomAbs_Shape | Continuity () const override |
returns the continuity of the surface : C0 : only geometric continuity, C1 : continuity of the first derivative all along the surface, C2 : continuity of the second derivative all along the surface, C3 : continuity of the third derivative all along the surface, G1 : tangency continuity all along the surface, G2 : curvature continuity all along the surface, CN : the order of continuity is infinite. | |
const gp_Dir & | Direction () const |
Returns the reference direction of the swept surface. For a surface of revolution it is the direction of the revolution axis, for a surface of linear extrusion it is the direction of extrusion. | |
Handle< Geom_Curve > | BasisCurve () const |
Returns the referenced curve of the surface. For a surface of revolution it is the revolution curve, for a surface of linear extrusion it is the extruded curve. | |
Public Member Functions inherited from Geom_Surface | |
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. | |
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. | |
virtual Standard_Real | UPeriod () const |
Returns the period of this surface in the u parametric direction. Raises if the surface is not uperiodic. | |
virtual Standard_Real | VPeriod () const |
Returns the period of this surface in the v parametric direction. raises if the surface is not vperiodic. | |
gp_Pnt | Value (const Standard_Real U, const Standard_Real V) const |
Computes the point of parameter (U, V) on the surface. | |
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. | |
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. | |
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). | |
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. | |
void | Scale (const gp_Pnt &P, const Standard_Real S) |
Scales a Geometry. S is the scaling value. | |
void | Translate (const gp_Vec &V) |
Translates a Geometry. V is the vector of the translation. | |
void | Translate (const gp_Pnt &P1, const gp_Pnt &P2) |
Translates a Geometry from the point P1 to the point P2. | |
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 |
Public Member Functions inherited from Standard_Transient | |
Standard_Transient () | |
Empty constructor. | |
Standard_Transient (const Standard_Transient &) | |
Copy constructor – does nothing. | |
Standard_Transient & | operator= (const Standard_Transient &) |
Assignment operator, needed to avoid copying reference counter. | |
virtual | ~Standard_Transient () |
Destructor must be virtual. | |
virtual const opencascade::handle< Standard_Type > & | DynamicType () const |
Returns a type descriptor about this object. | |
Standard_Boolean | IsInstance (const opencascade::handle< Standard_Type > &theType) const |
Returns a true value if this is an instance of Type. | |
Standard_Boolean | IsInstance (const Standard_CString theTypeName) const |
Returns a true value if this is an instance of TypeName. | |
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. | |
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. | |
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. | |
Standard_Integer | GetRefCount () const noexcept |
Get the reference counter of this object. | |
void | IncrementRefCounter () noexcept |
Increments the reference counter of this object. | |
Standard_Integer | DecrementRefCounter () noexcept |
Decrements the reference counter of this object; returns the decremented value. | |
virtual void | Delete () const |
Memory deallocator for transient classes. | |
Additional Inherited Members | |
Public Types inherited from Standard_Transient | |
typedef void | base_type |
Returns a type descriptor about this object. | |
Static Public Member Functions inherited from Standard_Transient | |
static constexpr const char * | get_type_name () |
Returns a type descriptor about this object. | |
static const opencascade::handle< Standard_Type > & | get_type_descriptor () |
Returns type descriptor of Standard_Transient class. | |
Protected Attributes inherited from Geom_SweptSurface | |
Handle< Geom_Curve > | basisCurve |
gp_Dir | direction |
GeomAbs_Shape | smooth |
Describes a surface of linear extrusion ("extruded surface"), e.g. a generalized cylinder. Such a surface is obtained by sweeping a curve (called the "extruded curve" or "basis") in a given direction (referred to as the "direction of extrusion" and defined by a unit vector). The u parameter is along the extruded curve. The v parameter is along the direction of extrusion. The parameter range for the u parameter is defined by the reference curve. The parameter range for the v parameter is ] - infinity, + infinity [. The position of the curve gives the origin of the v parameter. The surface is "CN" in the v parametric direction. The form of a surface of linear extrusion is generally a ruled surface (GeomAbs_RuledForm). It can be:
Geom_SurfaceOfLinearExtrusion::Geom_SurfaceOfLinearExtrusion | ( | const Handle< Geom_Curve > & | C, |
const gp_Dir & | V | ||
) |
V is the direction of extrusion. C is the extruded curve. The form of a SurfaceOfLinearExtrusion can be : . ruled surface (RuledForm), . a cylindrical surface if the extruded curve is a circle or a trimmed circle (CylindricalForm), . a plane surface if the extruded curve is a Line (PlanarForm). Warnings : Degenerated surface cases are not detected. For example if the curve C is a line and V is parallel to the direction of this line.
|
overridevirtual |
Returns the parametric bounds U1, U2, V1 and V2 of this surface of linear extrusion. A surface of linear extrusion is infinite in the v parametric direction, so:
Implements Geom_Surface.
|
overridevirtual |
Creates a new object which is a copy of this surface of linear extrusion.
Implements Geom_Geometry.
|
overridevirtual |
Computes the point P (U, V) on the surface. The parameter U is the parameter on the extruded curve. The parametrization V is a linear parametrization, and the direction of parametrization is the direction of extrusion. If the point is on the extruded curve, V = 0.0.
Implements Geom_Surface.
|
overridevirtual |
Computes the current point and the first derivatives in the directions U and V. Raises UndefinedDerivative if the continuity of the surface is not C1.
Implements Geom_Surface.
|
overridevirtual |
— Purpose ; Computes the current point, the first and the second derivatives in the directions U and V. Raises UndefinedDerivative if the continuity of the surface is not C2.
Implements Geom_Surface.
|
overridevirtual |
Computes the current point, the first,the second and the third derivatives in the directions U and V. Raises UndefinedDerivative if the continuity of the surface is not C3.
Implements Geom_Surface.
|
overridevirtual |
Computes the derivative of order Nu in the direction u and Nv in the direction v. Raises UndefinedDerivative if the continuity of the surface is not CNu in the u direction and CNv in the v direction. Raises RangeError if Nu + Nv < 1 or Nu < 0 or Nv < 0.
Implements Geom_Surface.
|
overridevirtual |
Dumps the content of me into the stream.
Reimplemented from Geom_SweptSurface.
|
overridevirtual |
IsCNu returns true if the degree of continuity for the "basis curve" of this surface of linear extrusion is at least N. Raises RangeError if N < 0.
Implements Geom_Surface.
|
overridevirtual |
IsCNv always returns true.
Implements Geom_Surface.
|
overridevirtual |
IsUClosed returns true if the "basis curve" of this surface of linear extrusion is closed.
Implements Geom_Surface.
|
overridevirtual |
IsUPeriodic returns true if the "basis curve" of this surface of linear extrusion is periodic.
Implements Geom_Surface.
|
overridevirtual |
IsVClosed always returns false.
Implements Geom_Surface.
|
overridevirtual |
IsVPeriodic always returns false.
Implements Geom_Surface.
|
overridevirtual |
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 a scale U by BasisCurve()->ParametricTransformation(T) V by T.ScaleFactor()
Reimplemented from Geom_Surface.
void Geom_SurfaceOfLinearExtrusion::SetBasisCurve | ( | const Handle< Geom_Curve > & | C | ) |
Modifies this surface of linear extrusion by redefining its "basis curve" (the "extruded curve").
Assigns V as the "direction of extrusion" for this surface of linear extrusion.
Applies the transformation T to this surface of linear extrusion.
Implements Geom_Geometry.
|
overridevirtual |
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 multiplies: U by BasisCurve()->ParametricTransformation(T) V by T.ScaleFactor()
Reimplemented from Geom_Surface.
|
overridevirtual |
Computes the U isoparametric curve of this surface of linear extrusion. This is the line parallel to the direction of extrusion, passing through the point of parameter U of the basis curve.
Implements Geom_Surface.
|
overridevirtual |
Changes the orientation of this surface of linear extrusion in the u parametric direction. The bounds of the surface are not changed, but the given parametric direction is reversed. Hence the orientation of the surface is reversed. In the case of a surface of linear extrusion:
Implements Geom_Surface.
|
overridevirtual |
Computes the u parameter on the modified surface, produced by reversing its u parametric direction, for any point of u parameter U on this surface of linear extrusion. In the case of an extruded surface:
Implements Geom_Surface.
|
overridevirtual |
Computes the V isoparametric curve of this surface of linear extrusion. This curve is obtained by translating the extruded curve in the direction of extrusion, with the magnitude V.
Implements Geom_Surface.
|
overridevirtual |
Changes the orientation of this surface of linear extrusion in the v parametric direction. The bounds of the surface are not changed, but the given parametric direction is reversed. Hence the orientation of the surface is reversed. In the case of a surface of linear extrusion:
Implements Geom_Surface.
|
overridevirtual |
Computes the v parameter on the modified surface, produced by reversing its u v parametric direction, for any point of v parameter V on this surface of linear extrusion. In the case of an extruded surface VReverse returns -V.
Implements Geom_Surface.