|
| 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 |
| |
| 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 |
| |
| QList< RVector > | getSelfIntersectionPoints (double tolerance=RS::PointTolerance) const |
| | Finds some self intersection points of splines.
|
| |
| virtual RShape::Type | getShapeType () const |
| |
| virtual RS::Side | getSideOfPoint (const RVector &point) const |
| |
| virtual RVector | getStartPoint () 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 |
| |
| QSharedPointer< RShape > | getTransformed (const QTransform &transform) const |
| |
| virtual RS::Ending | getTrimEnd (const RVector &trimPoint, const RVector &clickPoint) |
| |
| 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 ¢er=RDEFAULT_RVECTOR) |
| |
| | 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) |
| |
| virtual bool | scale (const RVector &scaleFactors, const RVector ¢er=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 |
| |
| QList< RSpline > | splitAtParams (const QList< double > ¶ms) 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.
|
| |
| void | dump () const |
| |
| virtual bool | equals (const RShape &other, double tolerance=RS::PointTolerance) const |
| |
| virtual QList< RVector > | filterOnShape (const QList< RVector > &pointList, bool limited=true, double tolerance=RDEFAULT_TOLERANCE_1E_MIN4) const |
| |
| virtual double | getAngleAtPercent (double p) const |
| |
| virtual double | getAngleAtPoint (const RVector &pos) const |
| |
| virtual QList< RVector > | getArcReferencePoints () const |
| |
| virtual RVector | getClosestPointOnShape (const RVector &p, bool limited=true, double strictRange=RMAXDOUBLE) const |
| |
| virtual QList< double > | getDistancesFromStart (const RVector &p) const |
| |
| virtual double | getDistanceTo (const RVector &point, bool limited=true, double strictRange=RMAXDOUBLE) const |
| |
| QList< RVector > | getIntersectionPoints (const RShape &other, bool limited=true, bool same=false, bool force=false) const |
| |
| virtual double | getMaxDistanceTo (const QList< RVector > &points, bool limited=true, double strictRange=RMAXDOUBLE) const |
| |
| virtual QList< QSharedPointer< RShape > > | getOffsetShapes (double distance, int number, RS::Side side, const RVector &position=RVector::invalid) |
| |
| virtual RVector | getPointAtPercent (double p) const |
| |
| virtual RVector | getPointOnShape () const |
| |
| virtual RVector | getPointWithDistanceToEnd (double distance) const |
| |
| virtual RVector | getPointWithDistanceToStart (double distance) const |
| |
| virtual RVector | getVectorFromEndpointTo (const RVector &point) const |
| |
| virtual bool | intersectsWith (const RShape &other, bool limited=true) const |
| |
| | RShape () |
| |
| virtual bool | scale (double scaleFactor, const RVector ¢er=RVector()) |
| |
| virtual bool | stretch (const RBox &area, const RVector &offset) |
| |
| virtual void | to2D () |
| | Flattens this shape to the X/Y plane.
|
| |
| virtual | ~RShape () |
| |
| virtual | ~RExplodable () |
| |
|
| 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) |
| |
| static const RExplodable * | castToExplodable (const RShape *shape) |
| |
| static QSharedPointer< RShape > | ellipseToArcCircleEllipse (const REllipse &ellipse) |
| |
| static int | getErrorCode () |
| |
| static QList< RVector > | getIntersectionPoints (const RShape &shape1, const RShape &shape2, bool limited=true, bool same=false, bool force=false) |
| |
| static QList< RVector > | getIntersectionPointsAA (const RArc &arc1, const RArc &arc2, bool limited=true) |
| |
| static QList< RVector > | getIntersectionPointsAC (const RArc &arc1, const RCircle &circle2, bool limited=true) |
| |
| static QList< RVector > | getIntersectionPointsAE (const RArc &arc1, const REllipse &ellipse2, bool limited=true) |
| |
| static QList< RVector > | getIntersectionPointsAS (const RArc &arc1, const RSpline &spline2, bool limited=true) |
| |
| static QList< RVector > | getIntersectionPointsAT (const RArc &arc1, const RTriangle &triangle2, bool limited=true) |
| |
| static QList< RVector > | getIntersectionPointsAX (const RArc &arc1, const RExplodable &explodable2, bool limited=true) |
| |
| static QList< RVector > | getIntersectionPointsCC (const RCircle &circle1, const RCircle &circle2) |
| |
| static QList< RVector > | getIntersectionPointsCE (const RCircle &circle1, const REllipse &ellipse2) |
| |
| static QList< RVector > | getIntersectionPointsCS (const RCircle &circle1, const RSpline &spline2, bool limited=true) |
| |
| static QList< RVector > | getIntersectionPointsCX (const RCircle &circle1, const RExplodable &explodable2, bool limited=true) |
| |
| static QList< RVector > | getIntersectionPointsEE (const REllipse &ellipse1, const REllipse &ellipse2) |
| | Based on "Hughes and Chraibi (2011-2012), Calculating Ellipse Overlap Areas".
|
| |
| static QList< RVector > | getIntersectionPointsEE (const REllipse &ellipse1, const REllipse &ellipse2, bool limited) |
| |
| static QList< RVector > | getIntersectionPointsES (const REllipse &ellipse1, const RSpline &spline2, bool limited=true) |
| |
| static QList< RVector > | getIntersectionPointsEX (const REllipse &ellipse1, const RExplodable &explodable2, bool limited=true) |
| |
| static QList< RVector > | getIntersectionPointsLA (const RLine &line1, const RArc &arc2, bool limited1, bool limited2) |
| |
| static QList< RVector > | getIntersectionPointsLA (const RLine &line1, const RArc &arc2, bool limited=true) |
| |
| static QList< RVector > | getIntersectionPointsLC (const RLine &line1, const RCircle &circle2, bool limited=true) |
| |
| static QList< RVector > | getIntersectionPointsLE (const RLine &line1, const REllipse &ellipse2, bool limited1, bool limited2) |
| |
| static QList< RVector > | getIntersectionPointsLE (const RLine &line1, const REllipse &ellipse2, bool limited=true) |
| |
| static QList< RVector > | getIntersectionPointsLL (const RLine &line1, const RLine &line2, bool limited1, bool limited2) |
| |
| static QList< RVector > | getIntersectionPointsLL (const RLine &line1, const RLine &line2, bool limited=true) |
| |
| static QList< RVector > | getIntersectionPointsLS (const RLine &line1, const RSpline &spline2, bool limited=true) |
| |
| static QList< RVector > | getIntersectionPointsLT (const RLine &line1, const RTriangle &triangle2, bool limited1, bool limited2) |
| |
| static QList< RVector > | getIntersectionPointsLT (const RLine &line1, const RTriangle &triangle2, bool limited=true) |
| |
| static QList< RVector > | getIntersectionPointsLX (const RLine &line1, const RExplodable &explodable2, bool limited=true) |
| |
| static QList< RVector > | getIntersectionPointsSS (const RSpline &spline1, const RSpline &spline2, bool limited=true, bool same=false, double tolerance=RS::PointTolerance) |
| |
| static QList< RVector > | getIntersectionPointsSX (const RSpline &spline1, const RExplodable &explodable2, bool limited) |
| |
| static QList< RVector > | getIntersectionPointsXX (const RExplodable &explodable1, const RExplodable &explodable2, bool limited=true, bool same=false) |
| |
| static QList< QSharedPointer< RShape > > | getOffsetArcs (const RShape &shape, double distance, int number, RS::Side side, const RVector &position=RVector::invalid) |
| |
| static QList< QSharedPointer< RShape > > | getOffsetLines (const RShape &shape, double distance, int number, RS::Side side, const RVector &position=RVector::invalid) |
| |
| static QList< QSharedPointer< RShape > > | getOrderedShapes (const QList< QSharedPointer< RShape > > &shapes) |
| |
| static QList< RPolyline > | getPolylines (const QList< QSharedPointer< RShape > > &shapes) |
| |
| static QList< QSharedPointer< RShape > > | getReversedShapeList (const QList< QSharedPointer< RShape > > &shapes) |
| |
| static RShapeProxy * | getShapeProxy () |
| |
| static bool | hasProxy () |
| |
| static bool | isArcShape (const RShape &s) |
| |
| static bool | isCircleShape (const RShape &s) |
| |
| static bool | isEllipseShape (const RShape &s) |
| |
| static bool | isFullEllipseShape (const RShape &s) |
| |
| static bool | isLineShape (const RShape &s) |
| |
| static bool | isPointShape (const RShape &s) |
| |
| static bool | isPolylineShape (const RShape &s) |
| |
| static bool | isRayShape (const RShape &s) |
| |
| static bool | isSplineShape (const RShape &s) |
| |
| static bool | isTriangleShape (const RShape &s) |
| |
| static bool | isXLineShape (const RShape &s) |
| |
| static bool | order (QList< QList< QSharedPointer< RShape > > > &boundary) |
| | Orders the given list of loops into a list of closed loops in which all shapes are connected end to start point.
|
| |
| static QSharedPointer< RShape > | rayToLine (QSharedPointer< RShape > shape) |
| |
| static QList< QSharedPointer< RShape > > | roundCorners (const QList< QSharedPointer< RShape > > &shapes, double radius) |
| | Round every corner of the list of given (connected) shapes with the given radius.
|
| |
| static QList< QSharedPointer< RShape > > | roundShapes (const QSharedPointer< RShape > shape1, const RVector &clickPos1, const QSharedPointer< RShape > shape2, const RVector &clickPos2, bool trim, bool samePolyline, double radius, const RVector &pos) |
| | Rounds the given shape1 against shape2.
|
| |
| static QSharedPointer< RShape > | scaleArc (const RShape &shape, const RVector &scaleFactors, const RVector ¢er=RDEFAULT_RVECTOR) |
| |
| static void | setShapeProxy (RShapeProxy *p) |
| |
| static QSharedPointer< RShape > | transformArc (const RShape &shape, RShapeTransformation &transformation) |
| |
| static QList< QSharedPointer< RShape > > | trim (const RShape &trimShape, const RVector &trimClickPos, const RShape &limitingShape, const RVector &limitingClickPos, bool trimBoth, bool samePolyline) |
| | Trims a shape to another or two shapes to each other.
|
| |
| static QSharedPointer< RShape > | xLineToRay (QSharedPointer< RShape > shape) |
| |
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:\nThis class is available in script environments.\n
- Shared Pointer Support:\nObjects can be used in QSharedPointer.\n
- Copyable:\nObjects are cleaned up automatically by the garbage collector of the script engine.\n
- Stream Operator:\nObject has a stream operator to present itself as string, for example when using toString() in a script.\n