Low-level mathematical representation of an open polyline or closed polyline (= polygon).
More...
|
| bool | appendShape (const RShape &shape, bool prepend=false) |
| |
| bool | appendShapeAuto (const RShape &shape) |
| | Appends the given shape to this polyline.
|
| |
| bool | appendShapeTrim (const RShape &shape) |
| |
| void | appendVertex (const RVector &vertex, double bulge=0.0, double w1=0.0, double w2=0.0) |
| |
| void | appendVertex (double x, double y, double bulge=0.0, double w1=0.0, double w2=0.0) |
| |
| bool | autoClose (double tolerance=RS::PointTolerance) |
| |
| void | clear () |
| |
| virtual QSharedPointer< RShape > | clone () const |
| |
| QSharedPointer< RPolyline > | cloneToPolyline () const |
| |
| bool | closeTrim () |
| |
| virtual bool | contains (const RVector &point, bool borderIsInside=false, double tolerance=RS::PointTolerance) const |
| | Checks if the given point is inside this closed polygon.
|
| |
| bool | containsShape (const RShape &shape) const |
| | Checks if the given shape is completely inside this closed polygon.
|
| |
| RPolyline | convertArcToLineSegments (int segments) const |
| |
| RPolyline | convertArcToLineSegmentsLength (double segmentLength) const |
| |
| bool | convertToClosed () |
| |
| bool | convertToOpen () |
| |
| int | countSegments () const |
| |
| int | countVertices () const |
| |
| virtual double | getAngleAt (double distance, RS::From from=RS::FromStart) const |
| |
| double | getArea () const |
| |
| double | getBaseAngle () const |
| |
| virtual QList< bool > | getBoolProperties () const |
| |
| virtual RBox | getBoundingBox () const |
| |
| double | getBulgeAt (int i) const |
| |
| QList< double > | getBulges () const |
| |
| virtual QList< RVector > | getCenterPoints () const |
| |
| RVector | getCentroid () const |
| |
| int | getClosestSegment (const RVector &point) const |
| |
| int | getClosestVertex (const RVector &point) const |
| |
| QList< RVector > | getConcaveVertices () const |
| |
| QList< RVector > | getConvexVertices (bool convex=true) const |
| |
| virtual double | getDirection1 () const |
| |
| virtual double | getDirection2 () const |
| |
| virtual double | getDistanceFromStart (const RVector &p) const |
| |
| virtual QList< double > | getDistancesFromStart (const RVector &p) const |
| |
| virtual double | getDistanceTo (const RVector &point, bool limited=true, double strictRange=RMAXDOUBLE) const |
| |
| virtual QList< double > | getDoubleProperties () const |
| |
| virtual RVector | getEndPoint () const |
| |
| virtual QList< RVector > | getEndPoints () const |
| |
| double | getEndWidthAt (int i) const |
| |
| QList< double > | getEndWidths () const |
| |
| virtual QList< QSharedPointer< RShape > > | getExploded (int segments=RDEFAULT_MIN1) const |
| |
| QSharedPointer< RShape > | getFirstSegment () const |
| |
| double | getHeight () const |
| |
| QSharedPointer< RShape > | getLastSegment () const |
| |
| RVector | getLastVertex () const |
| |
| QList< RPolyline > | getLeftOutline () const |
| |
| QList< QPair< RPolyline, RPolyline > > | getLeftRightOutline () const |
| |
| virtual double | getLength () const |
| |
| double | getLengthTo (const RVector &p, bool limited=true) const |
| |
| virtual RVector | getMiddlePoint () const |
| |
| virtual QList< RVector > | getMiddlePoints () const |
| |
| RS::Orientation | getOrientation (bool implicitelyClosed=false) const |
| |
| QList< RPolyline > | getOutline () const |
| |
| virtual RVector | getPointAtPercent (double p) const |
| |
| virtual QList< RVector > | getPointCloud (double segmentLength) const |
| |
| RVector | getPointInside () const |
| |
| virtual QList< RVector > | getPointsWithDistanceToEnd (double distance, int from=RS::FromAny) const |
| |
| RPolyline | getPolygon (double segmentLength) const |
| |
| RPolyline | getPolygonHull (double angle, double tolerance, bool inner=false) const |
| |
| virtual RPolyline | getReversed () const |
| |
| QList< RPolyline > | getRightOutline () const |
| |
| QSharedPointer< RShape > | getSegmentAt (int i) const |
| |
| int | getSegmentAtDist (double dist) |
| |
| double | getSegmentsLength (int fromIndex, int toIndex) const |
| |
| 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 |
| |
| double | getStartWidthAt (int i) const |
| |
| QList< double > | getStartWidths () const |
| |
| virtual 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 |
| |
| double | getVertexAngle (int i, RS::Orientation orientation=RS::UnknownOrientation) const |
| |
| QList< double > | getVertexAngles () const |
| |
| RVector | getVertexAt (int i) const |
| |
| int | getVertexIndex (const RVector &v, double tolerance=RS::PointTolerance) const |
| |
| QList< RVector > | getVertices () const |
| |
| double | getWidth () const |
| |
| bool | hasArcSegments () const |
| |
| bool | hasWidths () const |
| |
| void | insertVertex (int index, const RVector &vertex, double bulgeBefore=0.0, double bulgeAfter=0.0) |
| |
| void | insertVertexAt (const RVector &point) |
| | Inserts a vertex at the point on the polyline closest to the given position.
|
| |
| RVector | insertVertexAtDistance (double dist) |
| |
| bool | insertVerticesAtSelfIntersections () |
| |
| bool | isArcSegmentAt (int i) const |
| |
| bool | isClosed () const |
| |
| bool | isConcave () const |
| |
| virtual bool | isDirected () const |
| |
| bool | isEmpty () const |
| |
| bool | isFlat () 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 | mirror (const RLine &axis) |
| |
| RPolyline | modifyPolylineCorner (const RShape &trimmedShape1, RS::Ending ending1, int segmentIndex1, const RShape &trimmedShape2, RS::Ending ending2, int segmentIndex2, const RShape *cornerShape=NULL) const |
| | Modifies (bevels, rounds, trims) the corner of this polyline between segmentIndex1 and segmentIndex2 at the given segment endings.
|
| |
| QList< RPolyline > | morph (const RPolyline &target, int steps, RS::Easing easing=RS::Linear, bool zLinear=true, double customFactor=RNANDOUBLE) const |
| |
| virtual bool | move (const RVector &offset) |
| |
| void | moveEndPoint (const RVector &pos) |
| |
| void | moveSegmentAt (int i, const RVector &offset) |
| |
| void | moveStartPoint (const RVector &pos) |
| |
| void | moveVertexAt (int i, const RVector &offset) |
| |
| void | normalize (double tolerance=RS::PointTolerance) |
| | Removes duplicate vertices.
|
| |
| bool | prependShape (const RShape &shape) |
| |
| void | prependVertex (const RVector &vertex, double bulge=0.0, double w1=0.0, double w2=0.0) |
| |
| bool | relocateStartPoint (const RVector &p) |
| | Relocates the start point of this closed polyline to the given point.
|
| |
| bool | relocateStartPoint (double dist) |
| |
| void | removeFirstVertex () |
| |
| void | removeLastVertex () |
| |
| void | removeVertex (int index) |
| |
| void | removeVerticesAfter (int index) |
| |
| void | removeVerticesBefore (int index) |
| |
| virtual bool | reverse () |
| |
| virtual bool | rotate (double rotation, const RVector ¢er=RDEFAULT_RVECTOR) |
| |
| RPolyline | roundAllCorners (double radius) const |
| |
| | RPolyline () |
| | Creates a polyline object without points.
|
| |
| | RPolyline (const QList< QSharedPointer< RShape > > &segments) |
| | Creates a polyline from segments (lines or arcs).
|
| |
| | RPolyline (const QList< RVector > &vertices, bool closed) |
| | Creates a polyline object with the given points.
|
| |
| virtual bool | scale (const RVector &scaleFactors, const RVector ¢er=RDEFAULT_RVECTOR) |
| |
| virtual bool | scale (double scaleFactor, const RVector ¢er=RDEFAULT_RVECTOR) |
| |
| void | setBulgeAt (int i, double b) |
| |
| void | setBulges (const QList< double > &b) |
| |
| void | setClosed (bool on) |
| | Marks the poyline as logically (explicitly) closed.
|
| |
| void | setEndWidthAt (int i, double w) |
| |
| void | setEndWidths (const QList< double > &ew) |
| |
| void | setGlobalWidth (double w) |
| |
| bool | setHeight (double v) |
| |
| void | setMinimumWidth (double w) |
| |
| bool | setOrientation (RS::Orientation orientation) |
| |
| void | setStartWidthAt (int i, double w) |
| |
| void | setStartWidths (const QList< double > &sw) |
| |
| void | setVertexAt (int i, const RVector &v) |
| |
| void | setVertices (const QList< RVector > &vertices) |
| |
| bool | setWidth (double v) |
| |
| virtual void | setZ (double z) |
| |
| bool | simplify (double tolerance=RS::PointTolerance) |
| | Simplify by attempting to skip nodes within given tolerance.
|
| |
| QList< RPolyline > | splitAtDiscontinuities (double tolerance) const |
| |
| QList< RPolyline > | splitAtSegmentTypeChange () const |
| | Splits the polyline into polylines with exclusively line or arc segments.
|
| |
| virtual bool | stretch (const RPolyline &area, const RVector &offset) |
| |
| void | stripWidths () |
| |
| bool | toLogicallyClosed (double tolerance=RS::PointTolerance) |
| | Converts this geometrically closed polyline (start == end) to a locically closed polyline.
|
| |
| bool | toLogicallyOpen () |
| | Converts this logically closed polyline to a locically open, geometrically closed polyline.
|
| |
| RPainterPath | toPainterPath (bool addOriginalShapes=false) 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) |
| |
| QList< RVector > | verifyTangency (double toleranceMin=RS::AngleTolerance, double toleranceMax=M_PI_4) |
| | Verifies the tangency of this polyline.
|
| |
| virtual | ~RPolyline () |
| |
| 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 bool | flipHorizontal () |
| |
| virtual bool | flipVertical () |
| |
| 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 |
| |
| QList< RVector > | getIntersectionPoints (const RShape &other, bool limited=true, bool same=false, bool force=false) const |
| |
| virtual QList< int > | getIntProperties () 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 | 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 |
| |
| virtual bool | isOnShape (const RVector &point, bool limited=true, double tolerance=RDEFAULT_TOLERANCE_1E_MIN4) const |
| |
| virtual bool | isValid () const |
| |
| | RShape () |
| |
| virtual QList< QSharedPointer< RShape > > | splitAt (const QList< RVector > &points) const |
| |
| 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 RPolylineProxy * | getPolylineProxy () |
| |
| static bool | hasProxy () |
| |
| static bool | isStraight (double bulge) |
| |
| static void | setPolylineProxy (RPolylineProxy *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 an open polyline or closed polyline (= polygon).
- 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