|
QCAD
Open Source 2D CAD
|
Go to the documentation of this file.
20 #ifndef RSPLINEENTITY_H
21 #define RSPLINEENTITY_H
32 #define RDEFAULT_MIN1 -1
98 virtual QPair<QVariant, RPropertyAttributes>
getProperty(
100 bool humanReadable =
false,
bool noAttributes =
false,
bool showOnRequest =
false);
117 void setShape(
const RSpline& s);
120 return data.isValid();
124 return data.getTDelta();
128 return data.getTMin();
132 return data.getTMax();
136 return data.getTAtPoint(point);
140 return data.getTAtDistance(distance);
144 return data.getDegree();
148 return data.getDirection1();
152 return data.getDirection2();
156 return data.getTrimEnd(trimPoint, clickPoint);
160 return data.trimStartPoint(trimPoint, clickPoint, extend);
163 return data.trimEndPoint(trimPoint, clickPoint, extend);
167 return data.splitAtPoints(points);
170 return data.splitAtParams(params);
174 return data.getTangentAtStart();
178 return data.getTangentAtEnd();
182 return data.isClosed();
186 return data.isGeometricallyClosed(tolerance);
190 return data.isPeriodic();
194 data.appendControlPoint(point);
198 data.appendFitPoint(point);
202 data.prependFitPoint(point);
206 data.insertFitPointAt(point);
210 data.removeFitPointAt(point);
214 data.setPeriodic(on);
218 return data.getControlPoints();
222 return data.getControlPointsWrapped();
226 return data.countControlPoints();
230 return data.getControlPointAt(
i);
234 return data.getFitPoints();
238 return data.hasFitPoints();
242 return data.countFitPoints();
246 return data.getFitPointAt(
i);
250 return data.getKnotVector();
254 return data.getActualKnotVector();
258 return data.getWeights();
266 return data.getLength();
270 return data.getPointAt(t);
274 return data.getPointAtDistance(distance);
278 return data.getAngleAt(distance, from);
282 return data.getStartPoint();
286 return data.getEndPoint();
290 return data.setStartPoint(sp);
294 return data.setEndPoint(ep);
298 return data.toPolyline(segments);
302 return data.approximateWithArcs(tolerance, radiusLimit);
306 return data.reverse();
310 return data.getSideOfPoint(point);
316 return data.getExploded(segments);
320 data.simplify(tolerance);
324 return data.getBezierSegments(queryBox);
346 virtual void print(QDebug dbg)
const;
static RPropertyTypeId PropertyTotalLength
Definition: RSplineEntity.h:79
QList< double > getKnotVector() const
Definition: RSplineEntity.h:249
int getDegree() const
Definition: RSplineEntity.h:143
RVector getFitPointAt(int i) const
Definition: RSplineEntity.h:245
static RPropertyTypeId PropertyDegree
Definition: RSplineEntity.h:67
double getDirection2() const
Definition: RSplineEntity.h:151
static RPropertyTypeId PropertyStartTangentZ
Definition: RSplineEntity.h:72
bool isClosed() const
Definition: RSplineEntity.h:181
void insertFitPointAt(const RVector &point)
Definition: RSplineEntity.h:205
Copyright (c) 2011-2018 by Andrew Mustun.
Definition: RSplineData.h:39
RVector getTangentAtStart() const
Definition: RSplineEntity.h:173
static RPropertyTypeId PropertyEndTangentX
Definition: RSplineEntity.h:74
static RPropertyTypeId PropertyProtected
Definition: RSplineEntity.h:47
bool isValid() const
Definition: RSplineEntity.h:119
static RPropertyTypeId PropertyLinetypeScale
Definition: RSplineEntity.h:53
Copyright (c) 2011-2018 by Andrew Mustun.
Definition: RSpline.h:54
static RPropertyTypeId PropertyLayer
Definition: RSplineEntity.h:51
RVector getPointAt(double t) const
Definition: RSplineEntity.h:269
void appendControlPoint(const RVector &point)
Definition: RSplineEntity.h:193
RPolyline approximateWithArcs(double tolerance, double radiusLimit=RDEFAULT_MIN1) const
Definition: RSplineEntity.h:301
static RPropertyTypeId PropertyControlPointNX
Definition: RSplineEntity.h:59
void removeFitPointAt(const RVector &point)
Definition: RSplineEntity.h:209
static RPropertyTypeId PropertyEndTangentZ
Definition: RSplineEntity.h:76
static RPropertyTypeId PropertyBlock
Definition: RSplineEntity.h:50
Side
Side used for side of a point relative to an entity (right hand or left hand side)
Definition: RS.h:205
QList< RVector > getControlPoints() const
Definition: RSplineEntity.h:217
static const double PointTolerance
Copyright (c) 2011-2018 by Andrew Mustun.
Definition: RS.h:699
Represents a 3d vector (x/y/z).
Definition: RVector.h:46
Ending
Entity ending.
Definition: RS.h:215
@ FromStart
Definition: RS.h:264
int i
Copyright (c) 2011-2018 by Andrew Mustun.
Definition: autostart.js:49
bool reverse()
Definition: RSplineEntity.h:305
QList< double > getWeights() const
Definition: RSplineEntity.h:257
QList< RSpline > splitAtParams(const QList< double > ¶ms) const
Definition: RSplineEntity.h:169
void prependFitPoint(const RVector &point)
Definition: RSplineEntity.h:201
RVector getTangentAtEnd() const
Definition: RSplineEntity.h:177
RSplineData data
Definition: RSplineEntity.h:349
Spline entity.
Definition: RSplineEntity.h:42
static RPropertyTypeId PropertyLineweight
Definition: RSplineEntity.h:54
#define QCADENTITY_EXPORT
Definition: entity_global.h:10
virtual void exportEntity(RExporter &e, bool preview=false, bool forceSelected=false) const =0
Exports the entity to the given exporter.
static RPropertyTypeId PropertyType
Definition: RSplineEntity.h:49
QList< RVector > getControlPointsWrapped() const
Definition: RSplineEntity.h:221
QList< RSpline > splitAtPoints(const QList< RVector > &points) const
Definition: RSplineEntity.h:166
static RPropertyTypeId PropertyFitPointNX
Definition: RSplineEntity.h:62
static RPropertyTypeId PropertyFitPointNY
Definition: RSplineEntity.h:63
RS::Ending getTrimEnd(const RVector &trimPoint, const RVector &clickPoint)
Definition: RSplineEntity.h:155
Base class for all entity classes.
Definition: REntity.h:65
QList< RSpline > getBezierSegments(const RBox &queryBox=RDEFAULT_RBOX) const
Definition: RSplineEntity.h:323
static RPropertyTypeId PropertyDrawOrder
Definition: RSplineEntity.h:57
Q_DECLARE_METATYPE(RMath *)
double getTMin() const
Definition: RSplineEntity.h:127
static RPropertyTypeId PropertyControlPointNY
Definition: RSplineEntity.h:60
double getAngleAt(double distance, RS::From from=RS::FromStart) const
Definition: RSplineEntity.h:277
bool hasFitPoints() const
Definition: RSplineEntity.h:237
RVector getControlPointAt(int i) const
Definition: RSplineEntity.h:229
void appendFitPoint(const RVector &point)
Definition: RSplineEntity.h:197
static void init()
Definition: REntity.cpp:88
virtual void print(QDebug dbg) const
Stream operator for QDebug.
Definition: REntity.cpp:455
Copyright (c) 2011-2018 by Andrew Mustun.
Definition: RPropertyTypeId.h:59
RS::Side getSideOfPoint(const RVector &point) const
Definition: RSplineEntity.h:309
bool isGeometricallyClosed(double tolerance=RS::PointTolerance) const
Definition: RSplineEntity.h:185
void simplify(double tolerance)
Definition: RSplineEntity.h:319
QList< RVector > getFitPoints() const
Definition: RSplineEntity.h:233
double getTAtPoint(const RVector &point) const
Definition: RSplineEntity.h:135
bool trimStartPoint(const RVector &trimPoint, const RVector &clickPoint=RVector::invalid, bool extend=false)
Definition: RSplineEntity.h:159
double getDirection1() const
Definition: RSplineEntity.h:147
Abstract base class for exporters.
Definition: RExporter.h:72
virtual bool setProperty(RPropertyTypeId propertyTypeId, const QVariant &value, RTransaction *transaction=NULL)
Sets the given property to the given value.
Definition: REntity.cpp:323
A graphics document contains and owns entities, layers, user coordinate systems, variables,...
Definition: RDocument.h:72
double getTDelta() const
Definition: RSplineEntity.h:123
virtual RSplineData & getData()
Definition: RSplineEntity.h:109
double getTMax() const
Definition: RSplineEntity.h:131
static RPropertyTypeId PropertyUseEndTangent
Definition: RSplineEntity.h:73
QList< double > getActualKnotVector() const
Definition: RSplineEntity.h:253
static QSet< RPropertyTypeId > getStaticPropertyTypeIds()
Definition: RSplineEntity.h:88
virtual const RSplineData & getData() const
Definition: RSplineEntity.h:113
static RPropertyTypeId PropertyLength
Definition: RSplineEntity.h:78
static RPropertyTypeId PropertyKnotN
Definition: RSplineEntity.h:65
static RPropertyTypeId PropertyPeriodic
Definition: RSplineEntity.h:66
bool isPeriodic() const
Definition: RSplineEntity.h:189
static RPropertyTypeId PropertyEndTangentY
Definition: RSplineEntity.h:75
static RPropertyTypeId PropertyStartTangentX
Definition: RSplineEntity.h:70
virtual RSplineEntity * clone() const
Definition: RSplineEntity.h:92
RVector getEndPoint() const
Definition: RSplineEntity.h:285
virtual int getComplexity() const
Definition: REntity.h:659
static RPropertyTypeId PropertyStartTangentY
Definition: RSplineEntity.h:71
int countControlPoints() const
Definition: RSplineEntity.h:225
bool trimEndPoint(const RVector &trimPoint, const RVector &clickPoint=RVector::invalid, bool extend=false)
Definition: RSplineEntity.h:162
static RPropertyTypeId PropertyLinetype
Definition: RSplineEntity.h:52
static RPropertyTypeId PropertyUseStartTangent
Definition: RSplineEntity.h:69
static RPropertyTypeId PropertyCustom
Copyright (c) 2011-2018 by Andrew Mustun.
Definition: RSplineEntity.h:45
RVector getStartPoint() const
Definition: RSplineEntity.h:281
virtual QPair< QVariant, RPropertyAttributes > getProperty(RPropertyTypeId &propertyTypeId, bool humanReadable=false, bool noAttributes=false, bool showOnRequest=false)
Definition: REntity.cpp:230
#define RDEFAULT_RBOX
Definition: RBox.h:32
RVector getPointAtDistance(double distance) const
Definition: RSplineEntity.h:273
Transaction implementation.
Definition: RTransaction.h:74
static QSet< RPropertyTypeId > getPropertyTypeIds(const std::type_info &classInfo, RPropertyAttributes::Option=RPropertyAttributes::NoOptions)
Gets all property type IDs that where registered for the given class.
Definition: RPropertyTypeId.cpp:273
void setEndPoint(const RVector &ep)
Definition: RSplineEntity.h:293
double getLength() const
Definition: RSplineEntity.h:265
QList< QSharedPointer< RShape > > getExploded(int segments=RDEFAULT_MIN1) const
Definition: RSplineEntity.h:315
Represents a box e.g.
Definition: RBox.h:43
void setUndone(bool on)
Definition: RObject.cpp:77
RPolyline toPolyline(int segments) const
Definition: RSplineEntity.h:297
virtual void setUndone(bool on)
Definition: RSplineEntity.h:104
static RPropertyTypeId PropertyControlPointNZ
Definition: RSplineEntity.h:61
static const RVector invalid
invalid vector
Definition: RVector.h:322
From
End used to specify from which end of a shape to measure a distance.
Definition: RS.h:263
static RPropertyTypeId PropertyHandle
Definition: RSplineEntity.h:46
Low-level mathematical representation of an open polyline or closed polyline (= polygon).
Definition: RPolyline.h:49
double getTAtDistance(double distance) const
Definition: RSplineEntity.h:139
static RPropertyTypeId PropertyFitPointNZ
Definition: RSplineEntity.h:64
#define RDEFAULT_MIN1
Definition: RSplineEntity.h:32
void setPeriodic(bool on)
Definition: RSplineEntity.h:213
static RPropertyTypeId PropertyDisplayedColor
Definition: RSplineEntity.h:56
static RPropertyTypeId PropertyWorkingSet
Definition: RSplineEntity.h:48
void setStartPoint(const RVector &sp)
Definition: RSplineEntity.h:289
int countFitPoints() const
Definition: RSplineEntity.h:241
static RPropertyTypeId PropertyColor
Definition: RSplineEntity.h:55