20#ifndef RTEXTBASEDDATA_H
21#define RTEXTBASEDDATA_H
77 DimensionLabel = 0x008,
82 Q_DECLARE_FLAGS(TextFlags, TextFlag)
97 double lineSpacingFactor,
99 const QString& fontName,
122 return (flags & flag) == flag;
126 return !text.isNull();
128 virtual bool isSane()
const;
131 QList<RVector> getRotatedBoundingBox()
const;
133 double getWidth()
const;
134 double getHeight()
const;
142 return QList<RVector>();
146 return QList<RVector>();
150 return QList<RVector>();
158 return QList<RVector>();
161 virtual double getDistanceTo(
const RVector& point,
bool limited =
true,
double range = 0.0,
bool draft =
false,
double strictRange =
RMAXDOUBLE)
const;
172 this->position = position;
180 return alignmentPoint;
184 this->alignmentPoint = alignmentPoint;
187 void setText(
const QString& text);
193 void setFontName(
const QString& fontName);
200 this->fontFile = fontFile;
204 return getFlag(Bold);
213 return getFlag(Italic);
226 this->textHeight = h;
243 this->verticalAlignment = valign;
248 return this->verticalAlignment;
252 this->horizontalAlignment = halign;
257 return this->horizontalAlignment;
261 this->drawingDirection = drawingDirection;
266 return drawingDirection;
270 this->lineSpacingStyle = lineSpacingStyle;
275 return lineSpacingStyle;
279 if (lineSpacingFactor<0) {
282 this->lineSpacingFactor = lineSpacingFactor;
287 return lineSpacingFactor;
304 this->xScale = xScale;
318 return getFlag(Simple);
322 setFlag(Backward, isSimple() && on);
327 return isSimple() && getFlag(Backward);
331 setFlag(UpsideDown, isSimple() && on);
336 return isSimple() && getFlag(UpsideDown);
340 setFlag(DimensionLabel, on);
345 return getFlag(DimensionLabel);
354 setFlag(Highlighted, on);
358 return getFlag(Highlighted);
375 virtual QString getRenderedText(
bool escapeUnicode =
false)
const;
376 virtual QString getPlainText()
const;
377 virtual QString getEscapedText(
bool escapeUnicode =
false)
const;
378 static QString escapeUnicode(
const QString& str);
379 virtual QFont getMainFont()
const;
381 virtual void update(
bool layout)
const;
385 virtual bool isDirty()
const;
388 virtual QList<QSharedPointer<RShape> >
getShapes(
const RBox& queryBox =
RDEFAULT_RBOX,
bool ignoreComplex =
false,
bool segment =
false, QList<RObject::Id>* entityIds =
NULL)
const;
389 virtual QList<QSharedPointer<RShape> > getExploded()
const;
394 Q_UNUSED(ignoreComplex)
395 return QSharedPointer<RShape>();
400 QList<RTextLayout> getTextLayouts()
const;
402 QList<RTextBasedData> getSimpleTextBlocks();
409 return textProxy!=
NULL;
416 if (textProxy!=
NULL) {
429 static QString toEscapedText(
const QTextDocument& textDocument,
const RColor& initialColor,
double fontHeightFactor=1.0,
bool simpleText =
false);
430 static QString toRichText(
const QString& escapedText,
const QFont& mainFont,
double fontHeightFactor=1.0);
#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
QCADCORE_EXPORT QDebug operator<<(QDebug dbg, const RTextBasedData &t)
Definition RTextBasedData.cpp:1098
Represents a box e.g.
Definition RBox.h:46
Color.
Definition RColor.h:43
This class provides some static methods for printing debugging information to stderr.
Definition RDebug.h:66
A graphics document contains and owns entities, layers, user coordinate systems, variables,...
Definition RDocument.h:78
DXF support tools, mainly for QCAD 2 DXF imports.
Definition RDxfServices.h:46
Base class for all entity data classes.
Definition REntityData.h:65
virtual void setSelected(bool on)
Selects or deselects this entity.
Definition REntityData.h:198
virtual RVector getClosestPointOnEntity(const RVector &point, double range=RNANDOUBLE, bool limited=true, RObject::Id *subEntityId=NULL) const
Definition REntityData.cpp:517
virtual void to2D()
Definition REntityData.cpp:342
virtual bool isSane() const
Definition REntityData.h:100
virtual bool move(const RVector &offset)
Moves this entity by the given offset.
Definition REntityData.cpp:675
virtual bool flipHorizontal()
Definition REntityData.cpp:729
virtual RVector getPointOnEntity() const
Definition REntityData.cpp:372
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 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 bool flipVertical()
Definition REntityData.cpp:733
virtual bool mirror(const RLine &axis)
Definition REntityData.cpp:715
virtual bool rotate(double rotation, const RVector ¢er=RDEFAULT_RVECTOR)
Definition REntityData.cpp:685
virtual QList< RRefPoint > getReferencePoints(RS::ProjectionRenderingHint hint=RS::RenderTop) const =0
virtual RBox getBoundingBox(bool ignoreEmpty=false) const
Definition REntityData.cpp:313
virtual void update() const
Entities can reimplement this function to invalidate any internal cache (mark the entity as dirty).
Definition REntityData.h:415
virtual bool scale(const RVector &scaleFactors, const RVector ¢er=RDEFAULT_RVECTOR)
Definition REntityData.cpp:695
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
Copyright (c) 2011-2018 by Andrew Mustun.
Definition RFontList.h:34
Low-level mathematical representation of a line.
Definition RLine.h:41
Math functions.
Definition RMath.h:88
Abstract base class for all objects.
Definition RObject.h:64
Extended painter path with a z-level and a pen.
Definition RPainterPath.h:48
Interface for entity data classes that can deliver painter paths.
Definition RPainterPathSource.h:40
virtual QList< RPainterPath > getPainterPaths(bool draft=false, double pixelSizeHint=RDEFAULT_MIN1) const =0
Low-level mathematical representation of an open polyline or closed polyline (= polygon).
Definition RPolyline.h:50
Represents a reference point of an entity.
Definition RRefPoint.h:18
@ FromAny
Start or end.
Definition RS.h:374
VAlign
Vertical alignments.
Definition RS.h:332
EntityType
Entity types used for property handling / filtering.
Definition RS.h:227
@ EntityTextBased
Any text based entity (text, attribute def, attribute)
Definition RS.h:258
TextLineSpacingStyle
Line spacing style for texts.
Definition RS.h:363
HAlign
Horizontal alignments.
Definition RS.h:342
ProjectionRenderingHint
Sets the current rendering hint for exports.
Definition RS.h:293
@ RenderTop
Definition RS.h:294
TextDrawingDirection
Text drawing direction.
Definition RS.h:354
Interface for geometrical shape classes.
Definition RShape.h:72
Stores and manages all data that defines the geometry and appearance of a text based entity (text,...
Definition RTextBasedData.h:68
QString fontName
Definition RTextBasedData.h:445
double angle
Definition RTextBasedData.h:447
QString getFontFile() const
Definition RTextBasedData.h:195
virtual ~RTextBasedData()
Definition RTextBasedData.h:104
virtual QList< RVector > getMiddlePoints(const RBox &queryBox=RDEFAULT_RBOX) const
Definition RTextBasedData.h:144
bool gotDraft
Definition RTextBasedData.h:456
double getTextWidth() const
Width of the text box used for line wrapping.
Definition RTextBasedData.h:233
void setHAlign(RS::HAlign halign)
Definition RTextBasedData.h:251
RS::VAlign getVAlign() const
Definition RTextBasedData.h:247
RS::TextLineSpacingStyle lineSpacingStyle
Definition RTextBasedData.h:443
double height
Definition RTextBasedData.h:451
double getAngle() const
Definition RTextBasedData.h:295
bool isItalic() const
Definition RTextBasedData.h:212
QString getFontName() const
Definition RTextBasedData.h:189
bool isBackward() const
Definition RTextBasedData.h:326
RS::HAlign getHAlign() const
Definition RTextBasedData.h:256
void setAngle(double angle)
Definition RTextBasedData.h:290
void setItalic(bool on)
Definition RTextBasedData.h:216
RS::VAlign verticalAlignment
Definition RTextBasedData.h:440
void setBold(bool on)
Definition RTextBasedData.h:207
QList< RTextLayout > textLayouts
Definition RTextBasedData.h:457
bool isHighlighted() const
Definition RTextBasedData.h:357
RBox boundingBox
Definition RTextBasedData.h:453
void setVAlign(RS::VAlign valign)
Definition RTextBasedData.h:242
virtual QList< RVector > getCenterPoints(const RBox &queryBox=RDEFAULT_RBOX) const
Definition RTextBasedData.h:148
double textWidth
Definition RTextBasedData.h:439
void setTextHeight(double h)
Definition RTextBasedData.h:225
virtual bool isValid() const
Definition RTextBasedData.h:125
RVector getPosition() const
Definition RTextBasedData.h:167
virtual QString getText() const
Definition RTextBasedData.h:372
QString fontFile
Definition RTextBasedData.h:446
void setHighlighted(bool on)
Definition RTextBasedData.h:353
void setDimensionLabel(bool on)
Definition RTextBasedData.h:339
TextFlags flags
Definition RTextBasedData.h:449
bool getFlag(RTextBasedData::TextFlag flag) const
Definition RTextBasedData.h:121
void setFontFile(const QString &fontFile)
Definition RTextBasedData.h:199
RVector getAlignmentPoint() const
Definition RTextBasedData.h:179
RS::TextDrawingDirection getDrawingDirection() const
Definition RTextBasedData.h:265
bool isDimensionLabel() const
Definition RTextBasedData.h:344
virtual QSharedPointer< RShape > getClosestShape(const RVector &pos, double range=RNANDOUBLE, bool ignoreComplex=false) const
Definition RTextBasedData.h:391
double lineSpacingFactor
Definition RTextBasedData.h:444
double getTextHeight() const
Definition RTextBasedData.h:221
double width
Definition RTextBasedData.h:452
TextFlag
Definition RTextBasedData.h:72
QString text
Definition RTextBasedData.h:435
void setDrawingDirection(RS::TextDrawingDirection drawingDirection)
Definition RTextBasedData.h:260
static RTextProxy * textProxy
Copyright (c) 2011-2018 by Andrew Mustun.
Definition RTextBasedData.h:460
virtual void update() const
Entities can reimplement this function to invalidate any internal cache (mark the entity as dirty).
Definition RTextBasedData.h:382
RVector position
Definition RTextBasedData.h:436
bool isUpsideDown() const
Definition RTextBasedData.h:335
virtual QList< RVector > getEndPoints(const RBox &queryBox=RDEFAULT_RBOX) const
Definition RTextBasedData.h:140
double getLineSpacingFactor() const
Definition RTextBasedData.h:286
void setBackward(bool on)
Definition RTextBasedData.h:321
void setAlignmentPoint(const RVector &alignmentPoint)
Definition RTextBasedData.h:183
void setUpsideDown(bool on)
Definition RTextBasedData.h:330
double getXScale() const
Definition RTextBasedData.h:308
virtual RS::EntityType getType() const
Definition RTextBasedData.h:110
void setTextWidth(double w)
Definition RTextBasedData.h:237
void setLineSpacingStyle(RS::TextLineSpacingStyle lineSpacingStyle)
Definition RTextBasedData.h:269
void setPosition(const RVector &position)
Definition RTextBasedData.h:171
void setSimple(bool on)
Definition RTextBasedData.h:312
RS::HAlign horizontalAlignment
Definition RTextBasedData.h:441
void setSelected(bool on)
Selects or deselects this entity.
Definition RTextBasedData.h:348
bool isBold() const
Definition RTextBasedData.h:203
virtual QList< RVector > getPointsWithDistanceToEnd(double distance, int from=RS::FromAny, const RBox &queryBox=RDEFAULT_RBOX) const
Definition RTextBasedData.h:152
double xScale
Definition RTextBasedData.h:448
RS::TextDrawingDirection drawingDirection
Definition RTextBasedData.h:442
static void setTextProxy(RTextProxy *p)
Definition RTextBasedData.h:415
RS::TextLineSpacingStyle getLineSpacingStyle() const
Definition RTextBasedData.h:274
void setLineSpacingFactor(double lineSpacingFactor)
Definition RTextBasedData.h:278
static RTextProxy * getTextProxy()
Definition RTextBasedData.h:425
bool isSimple() const
Definition RTextBasedData.h:317
void setXScale(double xScale)
Definition RTextBasedData.h:299
void setFlag(RTextBasedData::TextFlag flag, bool on=true)
Definition RTextBasedData.h:114
QList< RPainterPath > painterPaths
Definition RTextBasedData.h:454
static bool hasProxy()
Definition RTextBasedData.h:408
double textHeight
Definition RTextBasedData.h:438
static RS::EntityType getRtti()
Definition RTextBasedData.h:106
RVector alignmentPoint
Definition RTextBasedData.h:437
bool dirty
Definition RTextBasedData.h:455
Text entity.
Definition RTextBasedEntity.h:38
Copyright (c) 2011-2018 by Andrew Mustun.
Definition RTextLayout.h:37
Proxy for advanced text functionality.
Definition RTextProxy.h:36
Renders formatted text into painter paths.
Definition RTextRenderer.h:41
Conversion methods for units.
Definition RUnit.h:43
Represents a 3d vector (x/y/z).
Definition RVector.h:47
#define QCADCORE_EXPORT
Definition core_global.h:10
#define NULL
Definition opennurbs_system.h:256