C3D Kernel  104598
Classes | Functions
Two-Dimensional uv-Curves
Geometric Objects
Collaboration diagram for Two-Dimensional uv-Curves:

Classes

class  MbArc
 Elliptical arc in two-dimensional space. More...
class  MbBezier
 Bezier spline in two-dimensional space. More...
class  MbCharacterCurve
 Functionally defined two-dimensional curve. More...
class  MbContour
 Contour in two-dimensional space. More...
class  MbContourWithBreaks
 Contour with breaks. More...
class  MbCosinusoid
 Cosinusoid in two-dimensional space. More...
class  MbCubicSpline
 Cubic spline in two-dimensional space. More...
class  MbHermit
 Composite Hermite cubic spline in two-dimensional space. More...
class  MbLine
 Line in two-dimensional space. More...
class  MbLineSegment
 Line segment in two-dimensional space. More...
class  MbNurbs
 NURBS curve in two-dimensional space. More...
class  MbOffsetCurve
 Offset extended curve. More...
class  MbPointCurve
 The curve degenerated to a point. More...
class  MbPolyCurve
 Curve in two-dimensional space, defined by points. More...
class  MbPolyline
 Polyline in two-dimensional space. More...
class  MbReparamCurve
 Reparametrized curve in two-dimensional space. More...
class  MbTrimmedCurve
 Trimmed curve in two-dimensional space. More...
class  MbCurve
 Curve in two-dimensional space. More...

Functions

bool CreateOffsetElliptic (const MbArc &curve, double rad, RPArray< MbCurve > &segments, size_t &count, bool setArcLimits=false)
 Creation of the offset curve (arc) of ellipse with different semiaxes subject to self-intersections.
void EllipticWrite (writer &out, const MbArc *curve)
 Writes to the stream for older versions.
void TrimmedWrite (writer &out, const MbTrimmedCurve *curve)
 Writes to the stream for older versions.

Functions for working in the curve's domain.

Functions PointOn, FirstDer, SecondDer, ThirdDer,... correct parameter when it is out of domain bounds. The exception is MbLine (line).

virtual void MbCurve::PointOn (double &t, MbCartPoint &p) const =0
 Calculate a point on the curve.
virtual void MbCurve::FirstDer (double &t, MbVector &v) const =0
 Calculate first derivative.
virtual void MbCurve::SecondDer (double &t, MbVector &v) const =0
 Calculate second derivative.
virtual void MbCurve::ThirdDer (double &t, MbVector &v) const =0
 Calculate third derivative.
void MbCurve::Tangent (double &t, MbVector &v) const
 Calculate tangent vector (normalized).
void MbCurve::Tangent (double &t, MbDirection &d) const
 Calculate tangent vector (normalized).
void MbCurve::Normal (double &t, MbVector &v) const
 Calculate main normal vector (normalized).
void MbCurve::Normal (double &t, MbDirection &d) const
 Calculate main normal vector (normalized).

Functions for working inside and outside the curve's domain.

Functions _PointOn, _FirstDer, _SecondDer, _ThirdDer,... do not correct parameter when it is out of domain bounds. When parameter is out of domain bounds, an unclosed curve is extended by tangent vector at corresponding end point in general case. The exceptions are arcs of ellipse and arcs of circle - they are extended according to their equations.

virtual void MbCurve::_PointOn (double t, MbCartPoint &p) const
 Calculate point at curve and its extension.
virtual void MbCurve::_FirstDer (double t, MbVector &v) const
 Calculate first derivative at curve and its extension.
virtual void MbCurve::_SecondDer (double t, MbVector &v) const
 Calculate second derivative at curve and its extension.
virtual void MbCurve::_ThirdDer (double t, MbVector &v) const
 Calculate third derivative at curve and its extension.
void MbCurve::_Tangent (double t, MbVector &v) const
 Calculate tangent vector (normalized).
void MbCurve::_Tangent (double t, MbDirection &d) const
 Calculate tangent vector (normalized).
void MbCurve::_Normal (double t, MbVector &v) const
 Calculate main normal vector (normalized) at curve and its extension.
void MbCurve::_Normal (double t, MbDirection &d) const
 Calculate main normal vector (normalized) at curve and its extension.
virtual void MbCurve::Explore (double &t, bool ext, MbCartPoint &pnt, MbVector &fir, MbVector *sec, MbVector *thir) const
 Calculate point and derivatives of object for given parameter.

Function Documentation

bool CreateOffsetElliptic ( const MbArc curve,
double  rad,
RPArray< MbCurve > &  segments,
size_t &  count,
bool  setArcLimits = false 
)

Creation of the offset curve (arc) of ellipse with different semiaxes subject to self-intersections.
Not for (arc of) a circle - exits with flag true but constructs nothing.

void EllipticWrite ( writer out,
const MbArc curve 
)

Writes to the stream for older versions.

void TrimmedWrite ( writer out,
const MbTrimmedCurve curve 
)

Writes to the stream for older versions.

virtual void MbCurve::PointOn ( double &  t,
MbCartPoint p 
) const [pure virtual]

Correct parameter when getting out of domain bounds and calculate a point on the curve.

Parameters:
[in]t- Curve parameter.
[out]p- A point on the curve.

Implemented in MbArc, MbBezier, MbCharacterCurve, MbContour, MbCosinusoid, MbCubicSpline, MbHermit, MbLine, MbLineSegment, MbNurbs, MbOffsetCurve, MbPointCurve, MbPolyCurve, MbPolyline, MbProjCurve, MbReparamCurve, and MbTrimmedCurve.

virtual void MbCurve::_PointOn ( double  t,
MbCartPoint p 
) const [virtual]

Calculate a point on the curve including the outside area determination parameter.

Parameters:
[in]t- Curve parameter.
[out]p- A point on the curve.

Reimplemented in MbArc, MbContour, MbCosinusoid, MbHermit, MbLine, MbLineSegment, MbOffsetCurve, MbPointCurve, MbProjCurve, MbReparamCurve, and MbTrimmedCurve.

virtual void MbCurve::Explore ( double &  t,
bool  ext,
MbCartPoint pnt,
MbVector fir,
MbVector sec,
MbVector thir 
) const [virtual]

Values of point and derivatives are calculated on parameter area and on extended curve.

Parameters:
[in]t- Parameter.
[in]ext- On parameters area (false), on extended curve (true).
[out]pnt- Point.
[out]fir- Derivative with respect to t.
[out]sec- Second derivative with respect to t, if not NULL.
[out]thir- Third derivative with respect to t, if not NULL.

Reimplemented in MbArc, MbBezier, MbCharacterCurve, MbContour, MbCosinusoid, MbCubicSpline, MbHermit, MbLine, MbLineSegment, MbNurbs, MbOffsetCurve, MbPointCurve, MbPolyCurve, MbPolyline, MbProjCurve, MbReparamCurve, and MbTrimmedCurve.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines