Skip to content

RSpline

Class in Math Module
Header: #include <src/core/math/RSpline.h>
Inherits: RShape, RExplodable
Inherited by: RSplineData

Low-level mathematical representation of a spline.

The spline may be defined by its control points or by its fit points but not both.

Scriptable: This class is available in script environments.

Shared Pointer Support: Objects can be used in QSharedPointer.

Copyable: Objects are cleaned up automatically by the garbage collector of the script engine.

Stream Operator: Object has a stream operator to present itself as string, for example when using toString() in a script.

RSpline()
Creates a spline object without controlPoints.
RSpline(const QList< RVector > &controlPoints, int degree)
Creates a spline object with the given control points and degree.
RSpline(const RSpline &other)
void appendControlPoint(const RVector &point)
Disabled for splines (bad performance).
void appendControlPoints(const QList< RVector > &points)
Appends the given control points.
void appendFitPoint(const RVector &point)
Appends a fit point.
void appendKnot(double k)
RPolyline approximateWithArcs(double tolerance, double radiusLimit=RDEFAULT_MIN1) const
virtual QSharedPointer< RShape > clone() const
QSharedPointer< RSpline > cloneToSpline() const
void copySpline(const RSpline &other)
int countControlPoints() const
int countFitPoints() const
virtual bool flipHorizontal()
virtual bool flipVertical()
QList< double > getActualKnotVector() const
virtual double getAngleAt(double distance, RS::From from=RS::FromStart) const
double getAngleAtT(double t) const
QList< RSpline > getBezierSegments(const RBox &queryBox=RDEFAULT_RBOX) const
virtual QList< bool > getBoolProperties() const
virtual RBox getBoundingBox() const
virtual QList< RVector > getCenterPoints() const
RVector getControlPointAt(int i) const
QList< RVector > getControlPoints() const
QList< RVector > getControlPointsWrapped() const
int getDegree() const
virtual double getDirection1() const
virtual double getDirection2() const
QList< RVector > getDiscontinuities() const
double getDistanceAtT(double t) const
virtual double getDistanceFromStart(const RVector &p) const
virtual QList< double > getDoubleProperties() const
virtual RVector getEndPoint() const
virtual QList< RVector > getEndPoints() const
virtual QList< QSharedPointer< RShape > > getExploded(int segments=RDEFAULT_MIN1) const
QList< QSharedPointer< RShape > > getExplodedBezier(int segments) const
QList< QSharedPointer< RShape > > getExplodedWithSegmentLength(double segmentLength) const
RVector getFitPointAt(int i) const
QList< RVector > getFitPoints() const
virtual QList< int > getIntProperties() const
QList< double > getKnotVector() const
virtual double getLength() const
virtual RVector getMiddlePoint() const
virtual QList< RVector > getMiddlePoints() const
int getOrder() const
RVector getPointAt(double t) const
RVector getPointAtDistance(double distance) const
virtual QList< RVector > getPointCloud(double segmentLength) const
virtual QList< RVector > getPointsWithDistanceToEnd(double distance, int from=RS::FromAny) const
QList< RSpline > getSegments(const QList< RVector > &points) const
virtual QList< RVector > getSelfIntersectionPoints(double tolerance=RS::PointTolerance) const
virtual RShape::Type getShapeType() const
virtual RS::Side getSideOfPoint(const RVector &point) const
virtual RVector getStartPoint() const
RSpline getSubSpline(double t1, double t2) const
RVector getTangentAtEnd() const
RVector getTangentAtStart() const
double getTAtDistance(double distance) const
double getTAtPoint(const RVector &point) const
double getTDelta() const
double getTMax() const
double getTMin() const
virtual QSharedPointer< RShape > getTransformed(const QTransform &transform) const
virtual RS::Ending getTrimEnd(const RVector &trimPoint, const RVector &clickPoint)
QList< double > getTsAtPoint(const RVector &point, double tolerance=RS::PointTolerance) const
virtual QList< RVector > getVectorProperties() const
virtual RVector getVectorTo(const RVector &point, bool limited=true, double strictRange=RMAXDOUBLE) const
QList< double > getWeights() const
bool hasFitPoints() const
void insertFitPointAt(const RVector &point)
Inserts a fit point at the point on the spline closest to the given position.
void insertFitPointAt(double t, const RVector &point)
bool isClosed() const
virtual bool isDirected() const
bool isDirty() const
bool isGeometricallyClosed(double tolerance=RS::PointTolerance) const
virtual bool isInterpolated() const
Reimplement and return true if this shape relies on interpolation for geometrical operations such as finding intersection points.
virtual bool isOnShape(const RVector &point, bool limited=true, double tolerance=RDEFAULT_TOLERANCE_1E_MIN4) const
bool isPeriodic() const
virtual bool isValid() const
virtual bool mirror(const RLine &axis)
virtual bool move(const RVector &offset)
RSpline & operator=(const RSpline &other)
void prependFitPoint(const RVector &point)
Prepends a fit point.
void removeFirstFitPoint()
Removes the first fit point.
void removeFitPointAt(const RVector &point)
void removeLastControlPoint()
Removes the last control point.
void removeLastFitPoint()
Removes the last fit point.
virtual bool reverse()
virtual bool rotate(double rotation, const RVector &center=RDEFAULT_RVECTOR)
virtual bool scale(const RVector &scaleFactors, const RVector &center=RDEFAULT_RVECTOR)
void setControlPoints(const QList< RVector > &points)
Sets the control points of this spline.
void setDegree(int d)
Sets the degree of this spline (2 or 3 for control point defined spline, 3 for fit point defined spline).
void setEndPoint(const RVector &v)
void setFitPoints(const QList< RVector > &points)
Sets the fit points.
void setKnotVector(const QList< double > &knots)
Sets the knot vector manually.
void setPeriodic(bool on)
void setStartPoint(const RVector &v)
void setTangentAtEnd(const RVector &t)
Sets the end tangent.
void setTangentAtStart(const RVector &t)
Sets the start tangent.
void setTangents(const RVector &start, const RVector &end)
Sets the start and end tangents.
void setWeights(QList< double > &w)
virtual void setZ(double z)
RSpline simplify(double tolerance)
virtual QList< QSharedPointer< RShape > > splitAt(const QList< RVector > &points) const
Splits this spline at the given points.
QList< RSpline > splitAtParams(const QList< double > &params) const
QList< RSpline > splitAtPoints(const QList< RVector > &points) const
virtual bool stretch(const RPolyline &area, const RVector &offset)
RPolyline toPolyline(int segments) const
virtual bool trimEndPoint(const RVector &trimPoint, const RVector &clickPoint=RVector::invalid, bool extend=false)
virtual bool trimEndPoint(double trimDist)
virtual bool trimStartPoint(const RVector &trimPoint, const RVector &clickPoint=RVector::invalid, bool extend=false)
virtual bool trimStartPoint(double trimDist)
void unsetTangentAtEnd()
Clears the valud of the end tangent.
void unsetTangentAtStart()
Clears the valud of the start tangent.
void unsetTangents()
Clears the valud of the start and end tangents.
void update() const
void updateFromControlPoints() const
void updateFromFitPoints() const
Closes this spline and makes it periodic if it isn’t already.
void updateTangentsPeriodic()
Updates the tangents at the start and end to make the spline periodic.
static RSpline createBezierFromSmallArc(double r, double a1, double a2)
Cubic bezier approximation of a circular arc centered at the origin, from (radians) a1 to a2, where a2-a1 < pi/2.
static QList< RSpline > createSplinesFromArc(const RArc &arc)
static RSplineProxy * getSplineProxy()
static bool hasProxy()
static void setSplineProxy(RSplineProxy *p)
QList< RVector > controlPoints
Getter function for this property: getControlPoints.
int degree
Getter function for this property: getDegree.
bool dirty
QList< RVector > fitPoints
Getter function for this property: getFitPoints.
QList< double > knotVector
Getter function for this property: getKnotVector.
bool periodic
Closed periodic flag.
RVector tangentEnd
Unit vector end tangent.
RVector tangentStart
Unit vector start tangent.
bool updateInProgress
QList< double > weights
Getter function for this property: getWeights.
void appendToExploded(const RLine &line) const
void invalidate() const
virtual void print(QDebug dbg) const
void updateBoundingBox() const
Updates the internal bounding box.
void updateInternal() const
RBox boundingBox
ON_NurbsCurve curve
QList< QSharedPointer< RShape > > exploded
double length
static RSplineProxy * splineProxy

RSpline::RSpline()

Creates a spline object without controlPoints.

RSpline::RSpline(const QList< RVector > &controlPoints, int degree)

Creates a spline object with the given control points and degree.

RSpline::RSpline(const RSpline &other)

void RSpline::appendControlPoint(const RVector &point)

Disabled for splines (bad performance).

20120223: Re-enabled, seems to perform OK, needed by some users. Appends a control point.

void RSpline::appendControlPoints(const QList< RVector > &points)

Appends the given control points.

void RSpline::appendFitPoint(const RVector &point)

Appends a fit point.

void RSpline::appendKnot(double k)

RPolyline RSpline::approximateWithArcs(double tolerance, double radiusLimit=RDEFAULT_MIN1) const

const

virtual QSharedPointer< RShape > RSpline::clone() const

virtual inline const

Reimplemented from clone.

QSharedPointer< RSpline > RSpline::cloneToSpline() const

inline const

void RSpline::copySpline(const RSpline &other)

int RSpline::countControlPoints() const

const

Returns: Number of control points.

int RSpline::countFitPoints() const

const

Returns: Number of fit points.

virtual bool RSpline::flipHorizontal()

virtual

Reimplemented from flipHorizontal.

Reimplemented in flipHorizontal.

virtual bool RSpline::flipVertical()

virtual

Reimplemented from flipVertical.

Reimplemented in flipVertical.

QList< double > RSpline::getActualKnotVector() const

const

virtual double RSpline::getAngleAt(double distance, RS::From from=RS::FromStart) const

virtual const

Returns: Angle on the entity at the given distance from the start point.

Reimplemented from getAngleAt.

Reimplemented in getAngleAt.

double RSpline::getAngleAtT(double t) const

const

Returns: Tangent angle at the given spline parameter.

QList< RSpline > RSpline::getBezierSegments(const RBox &queryBox=RDEFAULT_RBOX) const

const

Returns: List of bezier spline segments which together represent this curve.

virtual QList< bool > RSpline::getBoolProperties() const

virtual const

Reimplemented from getBoolProperties.

virtual RBox RSpline::getBoundingBox() const

virtual const

Returns: The bounding box of this shape.

Reimplemented from getBoundingBox.

virtual QList< RVector > RSpline::getCenterPoints() const

virtual const

Returns: The center point(s) of this shape.

Reimplemented from getCenterPoints.

RVector RSpline::getControlPointAt(int i) const

const

QList< RVector > RSpline::getControlPoints() const

const

Returns: Control points.

QList< RVector > RSpline::getControlPointsWrapped() const

const

Returns: Control points of internal spline representation (may be closed).

int RSpline::getDegree() const

const

Returns: Degree of this spline.

virtual double RSpline::getDirection1() const

virtual const

Returns: Tangent angle of spline at start point.

Reimplemented from getDirection1.

Reimplemented in getDirection1.

virtual double RSpline::getDirection2() const

virtual const

Returns: Tangent angle of spline at end point.

Reimplemented from getDirection2.

Reimplemented in getDirection2.

QList< RVector > RSpline::getDiscontinuities() const

const

double RSpline::getDistanceAtT(double t) const

const

virtual double RSpline::getDistanceFromStart(const RVector &p) const

virtual const

Returns: Distance of given point to start point of shape along shape.

Parameters:

  • p: Point (assumed to be on shape).

Reimplemented from getDistanceFromStart.

virtual QList< double > RSpline::getDoubleProperties() const

virtual const

Reimplemented from getDoubleProperties.

virtual RVector RSpline::getEndPoint() const

virtual const

Reimplemented from getEndPoint.

Reimplemented in getEndPoint.

virtual QList< RVector > RSpline::getEndPoints() const

virtual const

Returns: The end point(s) of this shape.

Reimplemented from getEndPoints.

virtual QList< QSharedPointer< RShape > > RSpline::getExploded(int segments=RDEFAULT_MIN1) const

virtual const

Returns: List of RLines describing this spline.

Reimplemented from getExploded.

QList< QSharedPointer< RShape > > RSpline::getExplodedBezier(int segments) const

const

Returns: exploded spline, treated as one spline segment, typically only used for bezier spline segments (degree+1 control points).

QList< QSharedPointer< RShape > > RSpline::getExplodedWithSegmentLength(double segmentLength) const

const

RVector RSpline::getFitPointAt(int i) const

const

QList< RVector > RSpline::getFitPoints() const

const

Returns: Fit points.

virtual QList< int > RSpline::getIntProperties() const

virtual const

Reimplemented from getIntProperties.

QList< double > RSpline::getKnotVector() const

const

Returns: Knot vector, internally calculated and updated.

virtual double RSpline::getLength() const

virtual const

Returns: The total length of this shape if applicable or NaN if not.

Reimplemented from getLength.

Reimplemented in getLength.

virtual RVector RSpline::getMiddlePoint() const

virtual const

Reimplemented from getMiddlePoint.

virtual QList< RVector > RSpline::getMiddlePoints() const

virtual const

Returns: The middle point(s) of this shape.

Reimplemented from getMiddlePoints.

int RSpline::getOrder() const

const

Returns: Order of this spline (=degree+1).

RVector RSpline::getPointAt(double t) const

const

Returns: Point on spline at given position t (0..1).

RVector RSpline::getPointAtDistance(double distance) const

const

virtual QList< RVector > RSpline::getPointCloud(double segmentLength) const

virtual const

Reimplemented from getPointCloud.

virtual QList< RVector > RSpline::getPointsWithDistanceToEnd(double distance, int from=RS::FromAny) const

virtual const

Returns: All points on this shape with the given distance to an endpoint.

Reimplemented from getPointsWithDistanceToEnd.

QList< RSpline > RSpline::getSegments(const QList< RVector > &points) const

const

virtual QList< RVector > RSpline::getSelfIntersectionPoints(double tolerance=RS::PointTolerance) const

virtual const

Returns: The points at which this spline crosses itself.

Requires a spline proxy (QCAD Professional): crossings between different bezier segments of the spline as well as loops inside a single bezier segment are found, the points at which consecutive segments meet are not reported. Used for snapping and for splitting a spline that crosses itself into simple pieces (see splitAt). Without a proxy, no points are returned.

Reimplemented from getSelfIntersectionPoints.

virtual RShape::Type RSpline::getShapeType() const

virtual inline const

Reimplemented from getShapeType.

virtual RS::Side RSpline::getSideOfPoint(const RVector &point) const

virtual const

Reimplemented from getSideOfPoint.

virtual RVector RSpline::getStartPoint() const

virtual const

Reimplemented from getStartPoint.

Reimplemented in getStartPoint.

RSpline RSpline::getSubSpline(double t1, double t2) const

const

Returns: Sub spline of this spline from parameter t1 to parameter t2 or an invalid spline on error. Computed from the internal, non-rational NURBS representation (weights are not considered, consistent with getPointAt, getExploded, etc.).

RVector RSpline::getTangentAtEnd() const

const

Returns: The end tangent.

RVector RSpline::getTangentAtStart() const

const

Returns: The start tangent.

double RSpline::getTAtDistance(double distance) const

const

double RSpline::getTAtPoint(const RVector &point) const

const

double RSpline::getTDelta() const

const

double RSpline::getTMax() const

const

double RSpline::getTMin() const

const

virtual QSharedPointer< RShape > RSpline::getTransformed(const QTransform &transform) const

virtual const

Reimplemented from getTransformed.

virtual RS::Ending RSpline::getTrimEnd(const RVector &trimPoint, const RVector &clickPoint)

virtual

Parameters:

  • trimPoint: Trim start point or end point to this coordinate.
  • clickPoint: Point that was clicked by user.

Reimplemented from getTrimEnd.

Reimplemented in getTrimEnd.

QList< double > RSpline::getTsAtPoint(const RVector &point, double tolerance=RS::PointTolerance) const

const

Returns: New spline that covers this spline from d1 to d2, where d1 and d2 are distances from the start point of this spline.

Returns: All parameters at which this spline passes through the given point (closer than the given tolerance), in ascending order. A spline that crosses itself passes through the intersection point twice and thus yields two parameters for it; for any other point on the spline a single parameter is returned. Points that the spline does not pass through yield no parameter at all. Unlike getTAtPoint this is not limited to a single (arbitrary) parameter for points the spline passes through more than once.

Requires a spline proxy (QCAD Professional), see RSplineProxy::getTsAtPoint.

virtual QList< RVector > RSpline::getVectorProperties() const

virtual const

Reimplemented from getVectorProperties.

virtual RVector RSpline::getVectorTo(const RVector &point, bool limited=true, double strictRange=RMAXDOUBLE) const

virtual const

Returns: Shortest vector from this shape to the given point.

Parameters:

  • point: the given point
  • limited: If false, the shape is treated as an unlimited shape that extends in a logical way. For example an unlimited line for a line, full circle for an arc or a plane for a triangle.

Reimplemented from getVectorTo.

Reimplemented in getVectorTo.

QList< double > RSpline::getWeights() const

const

Returns: Knot weights, internally calculated and updated.

bool RSpline::hasFitPoints() const

const

Returns: True if this spline has fit points and is therefore defined by its fit points, false otherwise.

void RSpline::insertFitPointAt(const RVector &point)

Inserts a fit point at the point on the spline closest to the given position.

void RSpline::insertFitPointAt(double t, const RVector &point)

bool RSpline::isClosed() const

const

Returns: True if this spline is closed, i.e. start point and end point are very close to each other.

virtual bool RSpline::isDirected() const

virtual inline const

Reimplemented from isDirected.

bool RSpline::isDirty() const

inline const

bool RSpline::isGeometricallyClosed(double tolerance=RS::PointTolerance) const

const

virtual bool RSpline::isInterpolated() const

virtual inline const

Reimplement and return true if this shape relies on interpolation for geometrical operations such as finding intersection points.

E.g. splines.

Reimplemented from isInterpolated.

virtual bool RSpline::isOnShape(const RVector &point, bool limited=true, double tolerance=RDEFAULT_TOLERANCE_1E_MIN4) const

virtual const

Returns: true if the given point is on this shape.

Reimplemented from isOnShape.

bool RSpline::isPeriodic() const

const

Returns: True if this spline is periodic, i.e. closed and ‘smooth’ where start and end connect. The tangents at the start point and end point are nearly identical.

virtual bool RSpline::isValid() const

virtual const

Reimplemented from isValid.

Reimplemented in isValid.

virtual bool RSpline::mirror(const RLine &axis)

virtual

Reimplemented from mirror.

Reimplemented in mirror.

virtual bool RSpline::move(const RVector &offset)

virtual

Reimplemented from move.

Reimplemented in move.

RSpline & RSpline::operator=(const RSpline &other)

void RSpline::prependFitPoint(const RVector &point)

Prepends a fit point.

void RSpline::removeFirstFitPoint()

Removes the first fit point.

void RSpline::removeFitPointAt(const RVector &point)

void RSpline::removeLastControlPoint()

Removes the last control point.

Parameters:

  • upd: Update internal spline representation.

void RSpline::removeLastFitPoint()

Removes the last fit point.

virtual bool RSpline::reverse()

virtual

Reimplemented from reverse.

Reimplemented in reverse.

virtual bool RSpline::rotate(double rotation, const RVector &center=RDEFAULT_RVECTOR)

virtual

Reimplemented from rotate.

Reimplemented in rotate.

virtual bool RSpline::scale(const RVector &scaleFactors, const RVector &center=RDEFAULT_RVECTOR)

virtual

Reimplemented from scale.

Reimplemented in scale.

void RSpline::setControlPoints(const QList< RVector > &points)

Sets the control points of this spline.

void RSpline::setDegree(int d)

Sets the degree of this spline (2 or 3 for control point defined spline, 3 for fit point defined spline).

void RSpline::setEndPoint(const RVector &v)

void RSpline::setFitPoints(const QList< RVector > &points)

Sets the fit points.

void RSpline::setKnotVector(const QList< double > &knots)

Sets the knot vector manually.

Mainly for importing ready data.

void RSpline::setPeriodic(bool on)

void RSpline::setStartPoint(const RVector &v)

void RSpline::setTangentAtEnd(const RVector &t)

Sets the end tangent.

void RSpline::setTangentAtStart(const RVector &t)

Sets the start tangent.

void RSpline::setTangents(const RVector &start, const RVector &end)

Sets the start and end tangents.

void RSpline::setWeights(QList< double > &w)

virtual void RSpline::setZ(double z)

virtual

Reimplemented from setZ.

Reimplemented in setZ.

RSpline RSpline::simplify(double tolerance)

virtual QList< QSharedPointer< RShape > > RSpline::splitAt(const QList< RVector > &points) const

virtual const

Splits this spline at the given points.

A point that the spline passes through more than once (a point where the spline crosses itself) splits the spline at every pass: a spline that crosses itself once is split into three pieces at the intersection point, none of which crosses itself. Requires a spline proxy (QCAD Professional), see RSplineProxy::splitAt.

Reimplemented from splitAt.

QList< RSpline > RSpline::splitAtParams(const QList< double > &params) const

const

QList< RSpline > RSpline::splitAtPoints(const QList< RVector > &points) const

const

virtual bool RSpline::stretch(const RPolyline &area, const RVector &offset)

virtual

Reimplemented from stretch.

Reimplemented in stretch.

RPolyline RSpline::toPolyline(int segments) const

const

virtual bool RSpline::trimEndPoint(const RVector &trimPoint, const RVector &clickPoint=RVector::invalid, bool extend=false)

virtual

Parameters:

  • trimPoint: Trim start point or end point to this coordinate.
  • clickPoint: Point that was clicked by user.
  • extend: True if the shape is to be extended. Used for polylines to determine that the last segment has to be trimmed even if another segment was clicked.

Reimplemented from trimEndPoint.

Reimplemented in trimEndPoint.

virtual bool RSpline::trimEndPoint(double trimDist)

virtual inline

Reimplemented from trimEndPoint.

virtual bool RSpline::trimStartPoint(const RVector &trimPoint, const RVector &clickPoint=RVector::invalid, bool extend=false)

virtual

Parameters:

  • trimPoint: Trim start point or end point to this coordinate.
  • clickPoint: Point that was clicked by user.
  • extend: True if the shape is to be extended. Used for polylines to determine that the first segment has to be trimmed even if another segment was clicked.

Reimplemented from trimStartPoint.

Reimplemented in trimStartPoint.

virtual bool RSpline::trimStartPoint(double trimDist)

virtual inline

Reimplemented from trimStartPoint.

void RSpline::unsetTangentAtEnd()

Clears the valud of the end tangent.

The end tangent is calculated and updated internally if not set manually.

void RSpline::unsetTangentAtStart()

Clears the valud of the start tangent.

The start tangent is calculated and updated internally if not set manually.

void RSpline::unsetTangents()

Clears the valud of the start and end tangents.

The tangents are calculated and updated internally if not set manually.

void RSpline::update() const

const

void RSpline::updateFromControlPoints() const

const

void RSpline::updateFromFitPoints() const

const

Closes this spline and makes it periodic if it isn’t already.

Updates the internal spline data from fitPoints. Degree is always corrected to 3rd degree.

void RSpline::updateTangentsPeriodic()

Updates the tangents at the start and end to make the spline periodic.

static RSpline RSpline::createBezierFromSmallArc(double r, double a1, double a2)

static

Cubic bezier approximation of a circular arc centered at the origin, from (radians) a1 to a2, where a2-a1 < pi/2.

The arc’s radius is r.

Returns an spline approximation.

This algorithm is based on the approach described in: A. Riškus, “Approximation of a Cubic Bezier Curve by Circular Arcs and Vice Versa,” Information Technology and Control, 35(4), 2006 pp. 371-378.

static QList< RSpline > RSpline::createSplinesFromArc(const RArc &arc)

static

Returns: List of splines which approximate the given arc.

static RSplineProxy * RSpline::getSplineProxy()

static inline

Non-Scriptable: This function is not available in script environments.

static bool RSpline::hasProxy()

static inline

static void RSpline::setSplineProxy(RSplineProxy *p)

static

Non-Scriptable: This function is not available in script environments.

QList<RVector> RSpline::controlPoints

Getter function for this property: getControlPoints.

Setter function for this property: setControlPoints

int RSpline::degree

Getter function for this property: getDegree.

Setter function for this property: setDegree

bool RSpline::dirty

QList<RVector> RSpline::fitPoints

Getter function for this property: getFitPoints.

Setter function for this property: setFitPoints

QList<double> RSpline::knotVector

Getter function for this property: getKnotVector.

bool RSpline::periodic

Closed periodic flag.

RVector RSpline::tangentEnd

Unit vector end tangent.

RVector RSpline::tangentStart

Unit vector start tangent.

bool RSpline::updateInProgress

QList<double> RSpline::weights

Getter function for this property: getWeights.

Setter function for this property: setWeights

void RSpline::appendToExploded(const RLine &line) const

const protected

void RSpline::invalidate() const

const protected

virtual void RSpline::print(QDebug dbg) const

virtual const protected

Reimplemented from print.

void RSpline::updateBoundingBox() const

const protected

Updates the internal bounding box.

void RSpline::updateInternal() const

const protected

RBox RSpline::boundingBox

private

ON_NurbsCurve RSpline::curve

private

QList<QSharedPointer<RShape> > RSpline::exploded

private

double RSpline::length

private

static RSplineProxy * RSpline::splineProxy = NULL

static private