20#ifndef RPOLYLINEDATA_H
21#define RPOLYLINEDATA_H
35#define RDEFAULT_MIN1 -1
73 virtual void setZ(
double z) {
330 virtual QList<QSharedPointer<RShape> >
getShapes(
const RBox& queryBox =
RDEFAULT_RBOX,
bool ignoreComplex =
false,
bool segment =
false, QList<RObject::Id>* entityIds =
NULL)
const;
333 const REntityData& other,
bool limited =
true,
bool same =
false,
342 void setElevation(
double v);
343 double getElevation()
const;
#define RDEFAULT_RBOX
Definition RBox.h:35
#define RDEFAULT_MIN1
Copyright (c) 2011-2018 by Andrew Mustun.
Definition RExplodable.h:30
#define RNANDOUBLE
Definition RMath.h:74
Q_DECLARE_METATYPE(RMath *)
#define RMAXDOUBLE
Definition RMath.h:66
#define M_PI_4
Definition RMath.h:46
#define RDEFAULT_RVECTOR
Definition RVector.h:38
int i
Copyright (c) 2011-2018 by Andrew Mustun.
Definition autostart.js:32
Represents a box e.g.
Definition RBox.h:46
A graphics document contains and owns entities, layers, user coordinate systems, variables,...
Definition RDocument.h:78
Base class for all entity data classes.
Definition REntityData.h:65
virtual QList< RVector > getCenterPoints(const RBox &queryBox=RDEFAULT_RBOX, QList< RObject::Id > *subEntityIds=NULL) const
Definition REntityData.cpp:443
virtual QList< RVector > getMiddlePoints(const RBox &queryBox=RDEFAULT_RBOX, QList< RObject::Id > *subEntityIds=NULL) const
Definition REntityData.cpp:413
virtual QList< RBox > getBoundingBoxes(bool ignoreEmpty=false) const
Definition REntityData.h:160
virtual bool flipHorizontal()
Definition REntityData.cpp:729
virtual double getDistanceTo(const RVector &point, bool limited=true, double range=0.0, bool draft=false, double strictRange=RMAXDOUBLE) const
Definition REntityData.cpp:299
virtual QList< RVector > getIntersectionPoints(const REntityData &other, bool limited=true, bool same=false, const RBox &queryBox=RDEFAULT_RBOX, bool ignoreComplex=true, QList< QPair< RObject::Id, RObject::Id > > *entityIds=NULL) const
Definition REntityData.cpp:601
virtual bool moveReferencePoint(const RVector &referencePoint, const RVector &targetPoint, Qt::KeyboardModifiers modifiers=Qt::NoModifier)=0
Moves the given reference point to the given target point or does nothing if this entity has no refer...
virtual bool intersectsWith(const RShape &shape) const
Definition REntityData.cpp:582
virtual QList< RVector > getPointsWithDistanceToEnd(double distance, int from=RS::FromAny, const RBox &queryBox=RDEFAULT_RBOX, QList< RObject::Id > *subEntityIds=NULL) const
Definition REntityData.cpp:487
virtual bool flipVertical()
Definition REntityData.cpp:733
virtual bool mirror(const RLine &axis)
Definition REntityData.cpp:715
virtual QList< RVector > getArcReferencePoints(const RBox &queryBox=RDEFAULT_RBOX) const
Definition REntityData.cpp:474
virtual QList< RRefPoint > getReferencePoints(RS::ProjectionRenderingHint hint=RS::RenderTop) const =0
virtual RBox getBoundingBox(bool ignoreEmpty=false) const
Definition REntityData.cpp:313
virtual QList< RVector > getEndPoints(const RBox &queryBox=RDEFAULT_RBOX, QList< RObject::Id > *subEntityIds=NULL) const
Definition REntityData.cpp:383
virtual QList< QSharedPointer< RShape > > getShapes(const RBox &queryBox=RDEFAULT_RBOX, bool ignoreComplex=false, bool segment=false, QList< RObject::Id > *entityIds=NULL) const
Definition REntityData.h:111
virtual RVector getVectorTo(const RVector &point, bool limited=true, double strictRange=RMAXDOUBLE) const
Definition REntityData.cpp:551
Low-level mathematical representation of a line.
Definition RLine.h:41
Extended painter path with a z-level and a pen.
Definition RPainterPath.h:48
Stores and manages all data that defines the geometry and appearance of a polyline entity.
Definition RPolylineData.h:46
double getDirection2() const
Definition RPolylineData.h:218
void prependVertex(const RVector &vertex, double bulge=0.0, double w1=0.0, double w2=0.0)
Definition RPolylineData.h:178
bool hasWidths() const
Definition RPolylineData.h:290
void insertVertex(int index, const RVector &vertex)
Definition RPolylineData.h:182
bool toLogicallyClosed(double tolerance=RS::PointTolerance)
Definition RPolylineData.h:258
virtual RVector getVectorTo(const RVector &point, bool limited=true, double strictRange=RMAXDOUBLE) const
Definition RPolylineData.h:97
virtual bool flipHorizontal()
Definition RPolylineData.h:118
QList< double > getEndWidths() const
Definition RPolylineData.h:306
virtual bool move(const RVector &offset)
Moves this entity by the given offset.
Definition RPolylineData.h:103
void setClosed(bool on)
Definition RPolylineData.h:242
double getEndWidthAt(int i) const
Definition RPolylineData.h:286
bool relocateStartPoint(const RVector &p)
Definition RPolylineData.h:234
virtual QList< RVector > getArcReferencePoints(const RBox &queryBox=RDEFAULT_RBOX) const
Definition RPolylineData.h:88
virtual QList< RVector > getCenterPoints(const RBox &queryBox=RDEFAULT_RBOX, QList< RObject::Id > *subEntityIds=NULL) const
Definition RPolylineData.h:85
RPolyline getPolylineShape() const
Definition RPolylineData.h:150
virtual bool mirror(const RVector &axis1, const RVector &axis2)
Definition RPolylineData.h:115
void simplify(double angleTolerance)
Definition RPolylineData.h:318
bool polylineGen
Definition RPolylineData.h:346
virtual QList< RVector > getEndPoints(const RBox &queryBox=RDEFAULT_RBOX, QList< RObject::Id > *subEntityIds=NULL) const
Definition RPolylineData.h:70
void setStartWidthAt(int i, double w)
Definition RPolylineData.h:274
virtual QList< RVector > getIntersectionPoints(const RShape &shape, bool limited=true, const RBox &queryBox=RDEFAULT_RBOX, bool ignoreComplex=true) const
Definition RPolylineData.h:94
bool isValid() const
Definition RPolylineData.h:67
RPainterPath toPainterPath() const
Definition RPolylineData.h:314
virtual bool rotate(double rotation, const RVector ¢er=RDEFAULT_RVECTOR)
Definition RPolylineData.h:106
int countSegments() const
Definition RPolylineData.h:194
virtual bool mirror(const RLine &axis)
Definition RPolylineData.h:112
virtual void to2D()
Definition RPolylineData.h:76
bool toLogicallyOpen()
Definition RPolylineData.h:262
QList< double > getStartWidths() const
Definition RPolylineData.h:298
void removeVertex(int index)
Definition RPolylineData.h:190
bool autoClose()
Definition RPolylineData.h:254
bool getPolylineGen() const
Definition RPolylineData.h:339
void appendVertex(const RVector &vertex, double bulge=0.0, double w1=0.0, double w2=0.0)
Definition RPolylineData.h:174
QList< RVector > verifyTangency(double toleranceMin=RS::AngleTolerance, double toleranceMax=M_PI_4)
Definition RPolylineData.h:326
bool relocateStartPoint(double dist)
Definition RPolylineData.h:238
RS::Orientation getOrientation(bool implicitelyClosed=false) const
Definition RPolylineData.h:266
virtual bool intersectsWith(const RShape &shape) const
Definition RPolylineData.h:100
void setPolylineGen(bool on)
Definition RPolylineData.h:336
virtual RBox getBoundingBox(bool ignoreEmpty=false) const
Definition RPolylineData.h:79
virtual RS::EntityType getType() const
Definition RPolylineData.h:63
double getStartWidthAt(int i) const
Definition RPolylineData.h:278
void removeLastVertex()
Definition RPolylineData.h:186
bool reverse()
Definition RPolylineData.h:222
void setEndWidthAt(int i, double w)
Definition RPolylineData.h:282
bool isClosed() const
Definition RPolylineData.h:246
RVector getVertexAt(int i) const
Definition RPolylineData.h:166
bool isGeometricallyClosed(double tolerance=RS::PointTolerance) const
Definition RPolylineData.h:250
virtual bool stretch(const RPolyline &area, const RVector &offset)
Stretches the end points of this entity that are inside area by offset.
Definition RPolylineData.h:124
QSharedPointer< RShape > getSegmentAt(int i) const
Definition RPolylineData.h:198
QList< QSharedPointer< RShape > > getExploded(int segments=RDEFAULT_MIN1) const
Definition RPolylineData.h:310
void setStartWidths(const QList< double > &sw)
Definition RPolylineData.h:294
void setVertexAt(int i, const RVector &v)
Definition RPolylineData.h:170
virtual double getDistanceTo(const RVector &point, bool limited=true, double range=0.0, bool draft=false, double strictRange=RMAXDOUBLE) const
Definition RPolylineData.h:137
void normalize(double tolerance=RS::PointTolerance)
Definition RPolylineData.h:158
void setGlobalWidth(double w)
Definition RPolylineData.h:270
virtual bool flipVertical()
Definition RPolylineData.h:121
virtual QList< RVector > getMiddlePoints(const RBox &queryBox=RDEFAULT_RBOX, QList< RObject::Id > *subEntityIds=NULL) const
Definition RPolylineData.h:82
virtual bool scale(const RVector &scaleFactors, const RVector ¢er=RDEFAULT_RVECTOR)
Definition RPolylineData.h:109
RVector getStartPoint() const
Definition RPolylineData.h:230
virtual RShape * castToShape()
Definition RPolylineData.h:133
void setEndWidths(const QList< double > &ew)
Definition RPolylineData.h:302
double getDirection1() const
Definition RPolylineData.h:214
virtual QList< RVector > getPointsWithDistanceToEnd(double distance, int from=RS::FromAny, const RBox &queryBox=RDEFAULT_RBOX, QList< RObject::Id > *subEntityIds=NULL) const
Definition RPolylineData.h:91
void clear()
Definition RPolylineData.h:154
double getBulgeAt(int i) const
Definition RPolylineData.h:202
RVector getEndPoint() const
Definition RPolylineData.h:226
QList< RVector > getVertices() const
Definition RPolylineData.h:162
void setBulgeAt(int i, double b)
Definition RPolylineData.h:206
RPolyline roundAllCorners(double radius)
Definition RPolylineData.h:322
virtual void setZ(double z)
Definition RPolylineData.h:73
double getVertexAngle(int i, RS::Orientation orientation=RS::UnknownOrientation) const
Definition RPolylineData.h:210
Polyline entity.
Definition RPolylineEntity.h:44
Low-level mathematical representation of an open polyline or closed polyline (= polygon).
Definition RPolyline.h:50
bool relocateStartPoint(const RVector &p)
Relocates the start point of this closed polyline to the given point.
Definition RPolyline.cpp:1074
void clear()
Definition RPolyline.cpp:119
RVector getVertexAt(int i) const
Definition RPolyline.cpp:573
void setClosed(bool on)
Marks the poyline as logically (explicitly) closed.
Definition RPolyline.cpp:777
double getBulgeAt(int i) const
Definition RPolyline.cpp:634
double getEndWidthAt(int i) const
Definition RPolyline.cpp:730
bool toLogicallyOpen()
Converts this logically closed polyline to a locically open, geometrically closed polyline.
Definition RPolyline.cpp:830
void removeLastVertex()
Definition RPolyline.cpp:504
virtual bool reverse()
Definition RPolyline.cpp:1947
virtual bool stretch(const RPolyline &area, const RVector &offset)
Definition RPolyline.cpp:1984
void removeVertex(int index)
Definition RPolyline.cpp:519
void setBulgeAt(int i, double b)
Definition RPolyline.cpp:642
void setEndWidthAt(int i, double w)
Definition RPolyline.cpp:723
QSharedPointer< RShape > getSegmentAt(int i) const
Definition RPolyline.cpp:1199
void appendVertex(const RVector &vertex, double bulge=0.0, double w1=0.0, double w2=0.0)
Definition RPolyline.cpp:394
virtual double getDirection1() const
Definition RPolyline.cpp:1456
RS::Orientation getOrientation(bool implicitelyClosed=false) const
Definition RPolyline.cpp:879
virtual bool mirror(const RLine &axis)
Definition RPolyline.cpp:1936
void insertVertex(int index, const RVector &vertex, double bulgeBefore=0.0, double bulgeAfter=0.0)
Definition RPolyline.cpp:420
void setGlobalWidth(double w)
Definition RPolyline.cpp:699
void setEndWidths(const QList< double > &ew)
Definition RPolyline.cpp:764
bool simplify(double tolerance=RS::PointTolerance)
Simplify by attempting to skip nodes within given tolerance.
Definition RPolyline.cpp:2059
QList< RVector > getVertices() const
Definition RPolyline.cpp:569
virtual bool rotate(double rotation, const RVector ¢er=RDEFAULT_RVECTOR)
Definition RPolyline.cpp:1868
virtual void setZ(double z)
Definition RPolyline.cpp:85
void setStartWidthAt(int i, double w)
Definition RPolyline.cpp:708
double getStartWidthAt(int i) const
Definition RPolyline.cpp:715
int countSegments() const
Definition RPolyline.cpp:1185
bool toLogicallyClosed(double tolerance=RS::PointTolerance)
Converts this geometrically closed polyline (start == end) to a locically closed polyline.
Definition RPolyline.cpp:803
bool hasWidths() const
Definition RPolyline.cpp:738
QList< RVector > verifyTangency(double toleranceMin=RS::AngleTolerance, double toleranceMax=M_PI_4)
Verifies the tangency of this polyline.
Definition RPolyline.cpp:2071
void setStartWidths(const QList< double > &sw)
Definition RPolyline.cpp:756
virtual bool move(const RVector &offset)
Definition RPolyline.cpp:1861
virtual RVector getEndPoint() const
Definition RPolyline.cpp:1410
RPolyline roundAllCorners(double radius) const
Definition RPolyline.cpp:2311
virtual double getDirection2() const
Definition RPolyline.cpp:1465
bool isGeometricallyClosed(double tolerance=RS::PointTolerance) const
Definition RPolyline.cpp:792
QList< double > getEndWidths() const
Definition RPolyline.cpp:768
virtual QList< QSharedPointer< RShape > > getExploded(int segments=RDEFAULT_MIN1) const
Definition RPolyline.cpp:1137
RPainterPath toPainterPath(bool addOriginalShapes=false) const
Definition RPolyline.cpp:1018
void setVertexAt(int i, const RVector &v)
Definition RPolyline.cpp:604
virtual RVector getStartPoint() const
Definition RPolyline.cpp:1402
void normalize(double tolerance=RS::PointTolerance)
Removes duplicate vertices.
Definition RPolyline.cpp:133
void prependVertex(const RVector &vertex, double bulge=0.0, double w1=0.0, double w2=0.0)
Definition RPolyline.cpp:409
double getVertexAngle(int i, RS::Orientation orientation=RS::UnknownOrientation) const
Definition RPolyline.cpp:669
virtual double getDistanceTo(const RVector &point, bool limited=true, double strictRange=RMAXDOUBLE) const
Definition RPolyline.cpp:1802
virtual bool scale(double scaleFactor, const RVector ¢er=RDEFAULT_RVECTOR)
Definition RPolyline.cpp:1878
bool isClosed() const
Definition RPolyline.cpp:784
QList< double > getStartWidths() const
Definition RPolyline.cpp:760
Represents a reference point of an entity.
Definition RRefPoint.h:18
Orientation
Definition RS.h:700
@ UnknownOrientation
Definition RS.h:701
@ FromAny
Start or end.
Definition RS.h:374
EntityType
Entity types used for property handling / filtering.
Definition RS.h:227
@ EntityPolyline
Polyline.
Definition RS.h:252
ProjectionRenderingHint
Sets the current rendering hint for exports.
Definition RS.h:293
@ RenderTop
Definition RS.h:294
static const double PointTolerance
Copyright (c) 2011-2018 by Andrew Mustun.
Definition RS.h:920
static const double AngleTolerance
Definition RS.h:921
Interface for geometrical shape classes.
Definition RShape.h:72
virtual bool isValid() const
Definition RShape.h:92
virtual void to2D()
Flattens this shape to the X/Y plane.
Definition RShape.h:158
Represents a 3d vector (x/y/z).
Definition RVector.h:47
#define QCADENTITY_EXPORT
Definition entity_global.h:10
#define NULL
Definition opennurbs_system.h:256