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. More...
|
|
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 RPolyline * | clone () const |
|
bool | contains (const RVector &point, bool borderIsInside=false, double tolerance=RS::PointTolerance) const |
| Checks if the given point is inside this closed polygon. More...
|
|
bool | containsShape (const RShape &shape) const |
| Checks if the given shape is completely inside this closed polygon. More...
|
|
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 |
|
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< 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 | getPolygonHull (double angle, double tolerance, bool inner=false) const |
|
virtual RPolyline | getReversed () const |
|
QSharedPointer< RShape > | getSegmentAt (int i) const |
|
int | getSegmentAtDist (double dist) |
|
double | getSegmentsLength (int fromIndex, int toIndex) const |
|
QList< RVector > | getSelfIntersectionPoints () 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. More...
|
|
RVector | insertVertexAtDistance (double dist) |
|
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. More...
|
|
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. More...
|
|
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. More...
|
|
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. More...
|
|
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. More...
|
|
| RPolyline (const QList< QSharedPointer< RShape > > &segments) |
| Creates a polyline from segments (lines or arcs). More...
|
|
| RPolyline (const QList< RVector > &vertices, bool closed) |
| Creates a polyline object with the given points. More...
|
|
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. More...
|
|
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. More...
|
|
QList< RPolyline > | splitAtDiscontinuities (double tolerance) const |
|
QList< RPolyline > | splitAtSegmentTypeChange () const |
| Splits the polyline into polylines with exclusively line or arc segments. More...
|
|
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. More...
|
|
bool | toLogicallyOpen () |
| Converts this logically closed polyline to a locically open, geometrically closed polyline. More...
|
|
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. More...
|
|
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 |
|
| 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. More...
|
|
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". More...
|
|
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) |
|
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 > > | 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. More...
|
|
static QSharedPointer< RShape > | rayToLine (QSharedPointer< RShape > shape) |
|
static QList< QSharedPointer< RShape > > | roundAllCorners (const QList< QSharedPointer< RShape > > &shapes, double radius) |
| Round every corner of the list of given (connected) shapes with the given radius. More...
|
|
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. More...
|
|
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. More...
|
|
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