Open CASCADE Technology  6.5.4
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions
Geom2d_TrimmedCurve Class Reference

Defines a portion of a curve limited by two values of
parameters inside the parametric domain of the curve.
The trimmed curve is defined by:
More...

#include <Geom2d_TrimmedCurve.hxx>

Inheritance diagram for Geom2d_TrimmedCurve:
Inheritance graph
[legend]

Public Member Functions

 Geom2d_TrimmedCurve (const Handle< Geom2d_Curve > &C, const Standard_Real U1, const Standard_Real U2, const Standard_Boolean Sense=Standard_True)
 Creates a trimmed curve from the basis curve C limited between
U1 and U2.

. U1 can be greater or lower than U2.
. The returned curve is oriented from U1 to U2.
. If the basis curve C is periodic there is an ambiguity
because two parts are available. In this case by default
the trimmed curve has the same orientation as the basis
curve (Sense = True). If Sense = False then the orientation
of the trimmed curve is opposite to the orientation of the
basis curve C.
If the curve is closed but not periodic it is not possible
to keep the part of the curve including the junction point
(except if the junction point is at the beginning or
at the end of the trimmed curve) because you could lose the
fundamental characteristics of the basis curve which are
used for example to compute the derivatives of the trimmed
curve. So for a closed curve the rules are the same as for
a open curve.
Warnings :
In this package the entities are not shared. The TrimmedCurve is
built with a copy of the curve C. So when C is modified the
TrimmedCurve is not modified
Warnings :
If is periodic, parametrics bounds of the TrimmedCurve,
can be different to [<U1>;<U2>}, if <U1> or <U2> are not in the
principal period.
Include :
For more explanation see the scheme given with this class.
Raises ConstructionError the C is not periodic and U1 or U2 are out of
the bounds of C.
Raised if U1 = U2.

void Reverse ()
 Changes the direction of parametrization of <me>. The first and
the last parametric values are modified. The "StartPoint"
of the initial curve becomes the "EndPoint" of the reversed
curve and the "EndPoint" of the initial curve becomes the
"StartPoint" of the reversed curve.
Example - If the trimmed curve is defined by:

Standard_Real ReversedParameter (const Standard_Real U) const
 Returns the parameter on the reversed curve for
the point of parameter U on <me>.

returns UFirst + ULast - U

void SetTrim (const Standard_Real U1, const Standard_Real U2, const Standard_Boolean Sense=Standard_True)
 Changes this trimmed curve, by redefining the
parameter values U1 and U2, which limit its basis curve.
Note: If the basis curve is periodic, the trimmed curve
has the same orientation as the basis curve if Sense
is true (default value) or the opposite orientation if Sense is false.
Warning
If the basis curve is periodic, the bounds of the
trimmed curve may be different from U1 and U2 if the
parametric origin of the basis curve is within the arc
of the trimmed curve. In this case, the modified
parameter will be equal to U1 or U2 plus or minus the period.
Exceptions
Standard_ConstructionError if:

Handle_Geom2d_Curve BasisCurve () const
 Returns the basis curve.
Warning
This function does not return a constant reference.
Consequently, any modification of the returned value
directly modifies the trimmed curve.

GeomAbs_Shape Continuity () const
 Returns the global continuity of the basis curve of this trimmed curve.
C0 : only geometric continuity,
C1 : continuity of the first derivative all along the Curve,
C2 : continuity of the second derivative all along the Curve,
C3 : continuity of the third derivative all along the Curve,
CN : the order of continuity is infinite.

Standard_Boolean IsCN (const Standard_Integer N) const
 --- Purpose
Returns True if the order of continuity of the
trimmed curve is N. A trimmed curve is at least "C0" continuous.
Warnings :
The continuity of the trimmed curve can be greater than
the continuity of the basis curve because you consider
only a part of the basis curve.
//! Raised if N < 0.

gp_Pnt2d EndPoint () const
 Returns the end point of <me>. This point is the
evaluation of the curve for the "LastParameter".

Standard_Real FirstParameter () const
 Returns the value of the first parameter of <me>.
The first parameter is the parameter of the "StartPoint"
of the trimmed curve.

Standard_Boolean IsClosed () const
 Returns True if the distance between the StartPoint and
the EndPoint is lower or equal to Resolution from package
gp.

Standard_Boolean IsPeriodic () const
 Returns true if the basis curve of this trimmed curve is periodic.

virtual Standard_Real Period () const
 Returns the period of the basis curve of this trimmed curve.
Exceptions
Standard_NoSuchObject if the basis curve is not periodic.

Standard_Real LastParameter () const
 Returns the value of the last parameter of <me>.
The last parameter is the parameter of the "EndPoint" of the
trimmed curve.

gp_Pnt2d StartPoint () const
 Returns the start point of <me>.
This point is the evaluation of the curve from the
"FirstParameter".
//! value and derivatives
Warnings :
The returned derivatives have the same orientation as the
derivatives of the basis curve.

void D0 (const Standard_Real U, gp_Pnt2d &P) const
 If the basis curve is an OffsetCurve sometimes it is not
possible to do the evaluation of the curve at the parameter
U (see class OffsetCurve).

void D1 (const Standard_Real U, gp_Pnt2d &P, gp_Vec2d &V1) const
 Raised if the continuity of the curve is not C1.

void D2 (const Standard_Real U, gp_Pnt2d &P, gp_Vec2d &V1, gp_Vec2d &V2) const
 Raised if the continuity of the curve is not C2.

void D3 (const Standard_Real U, gp_Pnt2d &P, gp_Vec2d &V1, gp_Vec2d &V2, gp_Vec2d &V3) const
 Raised if the continuity of the curve is not C3.

gp_Vec2d DN (const Standard_Real U, const Standard_Integer N) const
 For the point of parameter U of this trimmed curve,
computes the vector corresponding to the Nth derivative.
Warning
The returned derivative vector has the same
orientation as the derivative vector of the basis curve,
even if the trimmed curve does not have the same
orientation as the basis curve.
Exceptions
Standard_RangeError if N is less than 1.
//! geometric transformations

void Transform (const gp_Trsf2d &T)
 Applies the transformation T to this trimmed curve.
Warning The basis curve is also modified.

virtual Standard_Real TransformedParameter (const Standard_Real U, const gp_Trsf2d &T) const
 Returns the parameter on the transformed curve for
the transform of the point of parameter U on <me>.

me->Transformed(T)->Value(me->TransformedParameter(U,T))

is the same point as

me->Value(U).Transformed(T)

This methods calls the basis curve method.

virtual Standard_Real ParametricTransformation (const gp_Trsf2d &T) const
 Returns a coefficient to compute the parameter on
the transformed curve for the transform of the
point on <me>.

Transformed(T)->Value(U * ParametricTransformation(T))

is the same point as

Value(U).Transformed(T)

This methods calls the basis curve method.

Handle_Geom2d_Geometry Copy () const
 Creates a new object, which is a copy of this trimmed curve.


Detailed Description


Constructor & Destructor Documentation


Member Function Documentation

Handle_Geom2d_Curve Geom2d_TrimmedCurve::BasisCurve ( ) const

Implements Geom2d_Curve.

Handle_Geom2d_Geometry Geom2d_TrimmedCurve::Copy ( ) const [virtual]

Implements Geom2d_Geometry.

void Geom2d_TrimmedCurve::D0 ( const Standard_Real  U,
gp_Pnt2d P 
) const [virtual]

Implements Geom2d_Curve.

void Geom2d_TrimmedCurve::D1 ( const Standard_Real  U,
gp_Pnt2d P,
gp_Vec2d V1 
) const [virtual]

Implements Geom2d_Curve.

void Geom2d_TrimmedCurve::D2 ( const Standard_Real  U,
gp_Pnt2d P,
gp_Vec2d V1,
gp_Vec2d V2 
) const [virtual]

Implements Geom2d_Curve.

void Geom2d_TrimmedCurve::D3 ( const Standard_Real  U,
gp_Pnt2d P,
gp_Vec2d V1,
gp_Vec2d V2,
gp_Vec2d V3 
) const [virtual]

Implements Geom2d_Curve.

Implements Geom2d_Curve.

Implements Geom2d_BoundedCurve.

Implements Geom2d_Curve.

Implements Geom2d_Curve.

Implements Geom2d_Curve.

Implements Geom2d_Curve.

Implements Geom2d_Curve.

Reimplemented from Geom2d_Curve.

virtual Standard_Real Geom2d_TrimmedCurve::Period ( ) const [virtual]

Reimplemented from Geom2d_Curve.

  • a basis curve whose parameter range is [ 0.,1. ], and
  • the two trim values U1 (first parameter) and U2 (last parameter),
    the reversed trimmed curve is defined by:
  • the reversed basis curve, whose parameter range is still [ 0.,1. ], and
  • the two trim values 1. - U2 (first parameter)
    and 1. - U1 (last parameter).

Implements Geom2d_Curve.

Implements Geom2d_Curve.

  • the basis curve is not periodic, and either U1 or U2
    are outside the bounds of the basis curve, or
  • U1 is equal to U2.

Implements Geom2d_BoundedCurve.

Implements Geom2d_Geometry.

Reimplemented from Geom2d_Curve.


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