![]() |
QCAD
Open Source 2D CAD
|
Base class for dimension entity data classes. More...
#include <RDimensionData.h>
Public Member Functions | |
void | adjustExtensionLineFixLength (RLine &extLine1, RLine &extLine2, bool addDimExe=true) const |
void | clearStyleOverrides () |
virtual bool | clickReferencePoint (const RVector &referencePoint) |
Called when user clicks a reference point. | |
QString | formatAngleLabel (double textAngle) const |
QString | formatLabel (double distance) const |
virtual QString | getAutoLabel () const |
bool | getBoolOverride (RS::KnownVariable key) const |
virtual RBox | getBoundingBox (bool ignoreEmpty=false) const |
RColor | getColorOverride (RS::KnownVariable key) const |
RVector | getDefinitionPoint () const |
int | getDimadec () const |
double | getDimasz () const |
int | getDimaunit () const |
int | getDimazin () const |
int | getDimblk () const |
QString | getDimblkName () const |
QString | getDimBlockName () const |
RColor | getDimclrt () const |
int | getDimdec () const |
double | getDimdli () const |
int | getDimdsep () const |
QSharedPointer< RBlockReferenceEntity > | getDimensionBlockReference () const |
double | getDimexe () const |
double | getDimexo () const |
double | getDimgap () const |
int | getDimjust () const |
double | getDimlfac () const |
int | getDimlunit () const |
double | getDimscale () const |
int | getDimtad () const |
bool | getDimtih () const |
double | getDimtsz () const |
double | getDimtxt () const |
bool | getDimXBool (RS::KnownVariable key) const |
RColor | getDimXColor (RS::KnownVariable key) const |
double | getDimXDouble (RS::KnownVariable key) const |
int | getDimXInt (RS::KnownVariable key) const |
QVariant | getDimXVariant (RS::KnownVariable key) const |
int | getDimzin () const |
virtual double | getDistanceTo (const RVector &point, bool limited=true, double range=0.0, bool draft=false, double strictRange=RMAXDOUBLE) const |
double | getDoubleOverride (RS::KnownVariable key) const |
double | getExtLineFixLength () const |
QString | getFontName () const |
int | getIntOverride (RS::KnownVariable key) const |
double | getLinearFactor () const |
double | getLineSpacingFactor () const |
RS::TextLineSpacingStyle | getLineSpacingStyle () const |
QString | getLowerTolerance () const |
virtual double | getMeasuredValue () const |
virtual QString | getMeasurement (bool resolveAutoMeasurement=true) const |
RDimStyleData | getOverrides () const |
virtual RVector | getPointOnEntity () const |
virtual QList< RRefPoint > | getReferencePoints (RS::ProjectionRenderingHint hint=RS::RenderTop) const |
virtual QList< QSharedPointer< RShape > > | getShapes (const RBox &queryBox=RDEFAULT_RBOX, bool ignoreComplex=false, bool segment=false, QList< RObject::Id > *entityIds=NULL) const |
QString | getText () const |
RTextData & | getTextData (bool noRender=false) const |
Creates a dimensioning line (line with one, two or no arrows). | |
virtual RVector | getTextPosition () const |
double | getTextRotation () const |
virtual RS::EntityType | getType () const |
QString | getUpperTolerance () const |
QVariant | getVariantOverride (RS::KnownVariable key) const |
bool | hasCustomTextPosition () const |
bool | hasDimensionBlockReference () const |
bool | hasOverride (RS::KnownVariable key) const |
bool | hasOverrides () const |
bool | hasSpaceForArrows () const |
RTextData & | initTextData () const |
Initializes the text data of the text label of this dimension. | |
virtual bool | intersectsWith (const RShape &shape) const |
bool | isArrow1Flipped () const |
bool | isArrow2Flipped () const |
bool | isDimXScaled (RS::KnownVariable var) const |
bool | isExtLineFix () const |
virtual bool | isSane () const |
virtual bool | isValid () const |
virtual bool | mirror (const RLine &axis) |
virtual bool | move (const RVector &offset) |
Moves this entity by the given offset. | |
virtual bool | moveReferencePoint (const RVector &referencePoint, const RVector &targetPoint, Qt::KeyboardModifiers modifiers=Qt::NoModifier) |
Moves the given reference point to the given target point or does nothing if this entity has no reference point as the given location. | |
RDimensionData (const RVector &definitionPoint, const RVector &textPositionCenter, RS::VAlign valign, RS::HAlign halign, RS::TextLineSpacingStyle lineSpacingStyle, double lineSpacingFactor, const QString &text, const QString &fontName, double textRotation) | |
RDimensionData (RDocument *document=NULL) | |
Copyright (c) 2011-2018 by Andrew Mustun. | |
void | render () const |
virtual bool | rotate (double rotation, const RVector ¢er) |
virtual bool | scale (const RVector &scaleFactors, const RVector ¢er) |
virtual void | scaleVisualProperties (double scaleFactor) |
void | setArrow1Flipped (bool on) |
void | setArrow2Flipped (bool on) |
void | setCustomTextPosition (bool on) |
virtual void | setDefinitionPoint (const RVector &p) |
void | setDimadec (int v) |
void | setDimasz (double v) |
void | setDimaunit (int v) |
void | setDimazin (int v) |
void | setDimBlockName (const QString &bn) |
void | setDimclrt (const RColor &v) |
void | setDimdec (int v) |
void | setDimdli (double v) |
void | setDimdsep (int v) |
void | setDimexe (double v) |
void | setDimexo (double v) |
void | setDimgap (double v) |
void | setDimlfac (double f) |
void | setDimlunit (int l) |
void | setDimscale (double f) |
void | setDimtad (int v) |
void | setDimtih (bool v) |
void | setDimtsz (double t) |
void | setDimtxt (double t) |
void | setDimXBool (RS::KnownVariable key, bool v) |
void | setDimXColor (RS::KnownVariable key, const RColor &v) |
void | setDimXDouble (RS::KnownVariable key, double v) |
void | setDimXInt (RS::KnownVariable key, int v) |
void | setDimXVariant (RS::KnownVariable key, const QVariant &v) |
void | setDimzin (int v) |
void | setExtLineFix (bool on) |
void | setExtLineFixLength (double v) |
void | setFontName (const QString &fn) |
void | setLinearFactor (double f) |
void | setLowerTolerance (const QString &t) |
void | setText (const QString &t) |
void | setTextPosition (const RVector &p) |
void | setTextRotation (double r) |
void | setUpperTolerance (const QString &t) |
virtual void | to2D () |
virtual void | update () const |
Entities can reimplement this function to invalidate any internal cache (mark the entity as dirty). | |
void | updateArrowPos1 (const RVector &p) const |
void | updateArrowPos2 (const RVector &p) const |
void | updateBoundingBox (const RBox &box) const |
void | updateShapes (const QList< QSharedPointer< RShape > > &s) const |
void | updateTextData (const RTextData &d) const |
void | updateTextPositionCenter (const RVector &p) const |
void | updateTextPositionSide (const RVector &p) const |
bool | useArchTick () const |
![]() | |
virtual const RShape * | castToConstShape () const |
virtual RShape * | castToShape () |
virtual bool | cloneOnChange () const |
Reimplement to force clone on change in transactions. | |
void | copyAttributesFrom (const REntityData &entityData, bool copyBlockId=true) |
virtual bool | flipHorizontal () |
virtual bool | flipVertical () |
virtual QList< RVector > | getArcReferencePoints (const RBox &queryBox=RDEFAULT_RBOX) const |
bool | getAutoUpdatesBlocked () const |
RObject::Id | getBlockId () const |
QString | getBlockName () const |
virtual QList< RBox > | getBoundingBoxes (bool ignoreEmpty=false) const |
virtual QList< RVector > | getCenterPoints (const RBox &queryBox=RDEFAULT_RBOX, QList< RObject::Id > *subEntityIds=NULL) const |
virtual RVector | getClosestPointOnEntity (const RVector &point, double range=RNANDOUBLE, bool limited=true, RObject::Id *subEntityId=NULL) const |
virtual QSharedPointer< RShape > | getClosestShape (const RVector &pos, double range=RNANDOUBLE, bool ignoreComplex=false, RObject::Id *subEntityId=NULL) const |
RObject::Id | getClosestSubEntityId (const RVector &pos, double range, bool ignoreComplex) const |
Convenience function for scripts. | |
virtual RColor | getColor () const |
virtual RColor | getColor (bool resolve, const QStack< QSharedPointer< REntity > > &blockRefStack) const |
virtual RColor | getColor (const RColor &unresolvedColor, const QStack< QSharedPointer< REntity > > &blockRefStack) const |
virtual RColor | getDisplayColor () |
RDocument * | getDocument () |
const RDocument * | getDocument () const |
virtual int | getDrawOrder () const |
virtual QList< RVector > | getEndPoints (const RBox &queryBox=RDEFAULT_RBOX, QList< RObject::Id > *subEntityIds=NULL) const |
virtual RPolyline | getHull (double offset) const |
virtual QList< RRefPoint > | getInternalReferencePoints (RS::ProjectionRenderingHint hint=RS::RenderTop, QList< RObject::Id > *subEntityIds=NULL) const |
Can be overwritten to return internal, resolved reference points. | |
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 |
virtual QList< RVector > | getIntersectionPoints (const RShape &shape, bool limited=true, const RBox &queryBox=RDEFAULT_RBOX, bool ignoreComplex=true) const |
RObject::Id | getLayerId () const |
QString | getLayerName () const |
virtual RObject::Id | getLinetypeId () const |
virtual RObject::Id | getLinetypeId (bool resolve, const QStack< QSharedPointer< REntity > > &blockRefStack) const |
virtual RLinetypePattern | getLinetypePattern () const |
virtual double | getLinetypeScale () const |
virtual RLineweight::Lineweight | getLineweight () const |
virtual RLineweight::Lineweight | getLineweight (bool resolve, const QStack< QSharedPointer< REntity > > &blockRefStack) const |
double | getLineweightInUnits (const QStack< QSharedPointer< REntity > > &blockRefStack) const |
virtual QList< RVector > | getMiddlePoints (const RBox &queryBox=RDEFAULT_RBOX, QList< RObject::Id > *subEntityIds=NULL) const |
RObject::Id | getParentId () const |
virtual QList< RVector > | getPointsWithDistanceToEnd (double distance, int from=RS::FromAny, const RBox &queryBox=RDEFAULT_RBOX, QList< RObject::Id > *subEntityIds=NULL) const |
virtual RVector | getVectorTo (const RVector &point, bool limited=true, double strictRange=RMAXDOUBLE) const |
virtual bool | isInside (const RBox &box) const |
virtual bool | isOnEntity (const RVector &point, bool limited=true, double tolerance=RDEFAULT_TOLERANCE_1E_MIN4) const |
virtual bool | isPointType () const |
virtual bool | isSelected () const |
virtual bool | isSelectedWorkingSet () const |
virtual bool | isUpdatesEnabled () const |
virtual bool | mirror (const RVector &axis1, const RVector &axis2) |
REntityData (RDocument *document=NULL) | |
Copyright (c) 2011-2018 by Andrew Mustun. | |
virtual bool | scale (double scaleFactor, const RVector ¢er=RDEFAULT_RVECTOR) |
void | setAutoUpdatesBlocked (bool on) |
virtual void | setBlockId (RObject::Id blockId) |
void | setColor (const RColor &color) |
void | setDocument (RDocument *document) |
virtual void | setDrawOrder (int drawOrder) |
Sets the draw order of this entity. | |
virtual void | setLayerId (RObject::Id layerId) |
void | setLayerName (const QString &layerName) |
virtual void | setLinetypeId (RObject::Id linetypeId) |
Sets the linetype of this entity to the given linetype ID. | |
virtual void | setLinetypePattern (const RLinetypePattern &p) |
virtual void | setLinetypeScale (double linetypeScale) |
void | setLineweight (RLineweight::Lineweight lineweight) |
virtual void | setParentId (RObject::Id parentId) |
virtual void | setSelected (bool on) |
Selects or deselects this entity. | |
virtual void | setSelectedWorkingSet (bool on) |
Selects or deselects this entity for addition to the current working set. | |
void | setUpdatesEnabled (bool on) |
Enables / disables cache updates. | |
virtual void | setZ (double z) |
virtual bool | stretch (const RPolyline &area, const RVector &offset) |
Stretches the end points of this entity that are inside area by offset. | |
virtual | ~REntityData () |
Protected Member Functions | |
RDimensionData (RDocument *document, const RDimensionData &data) | |
Protected Attributes | |
bool | arrow1Flipped |
RVector | arrow1Pos |
bool | arrow2Flipped |
RVector | arrow2Pos |
bool | autoTextPos |
True if the textPosition should be automatically calculated. | |
RBox | boundingBox |
double | defaultAngle |
RVector | definitionPoint |
Definition point. | |
QString | dimBlockName |
Dimension text color. | |
double | dimLineLength |
bool | dirty |
bool | extLineFix |
double | extLineFixLength |
QString | fontName |
Dimension font name. | |
RS::HAlign | halign |
Horizontal alignment. | |
double | lineSpacingFactor |
Line spacing factor. | |
RS::TextLineSpacingStyle | lineSpacingStyle |
Line spacing style. | |
QString | lowerTolerance |
Lower tolerance limit. | |
RDimStyleData | overrides |
QList< QSharedPointer< RShape > > | shapes |
QString | text |
Text string entered explicitly by user or null or "<>" for the actual measurement or " " (one blank space) for suppressing the text. | |
RTextData | textData |
RVector | textPositionCenter |
Middle point of dimension text. | |
RVector | textPositionSide |
Middle point of dimension text when automatically moved to the side for lack of space. | |
double | textRotation |
Rotation angle of dimension text away from default orientation. | |
QString | upperTolerance |
Upper tolerance limit. | |
RS::VAlign | valign |
Vertical alignment. | |
![]() | |
bool | autoUpdatesBlocked |
Block auto updates is true during imports, undo and redo. | |
RObject::Id | blockId |
RColor | color |
RDocument * | document |
int | drawOrder |
RObject::Id | layerId |
RObject::Id | linetypeId |
double | linetypeScale |
RLineweight::Lineweight | lineweight |
RObject::Id | parentId |
bool | selectionStatus |
bool | selectionStatusWorkingSet |
bool | updatesEnabled |
Friends | |
class | RDimensionEntity |
Additional Inherited Members | |
![]() | |
static int | getDefaultDrawOrder () |
Base class for dimension entity data classes.
|
protected |
Copyright (c) 2011-2018 by Andrew Mustun.
All rights reserved.
This file is part of the QCAD project.
QCAD is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
QCAD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with QCAD.
RDimensionData::RDimensionData | ( | const RVector & | definitionPoint, |
const RVector & | textPosition, | ||
RS::VAlign | valign, | ||
RS::HAlign | halign, | ||
RS::TextLineSpacingStyle | lineSpacingStyle, | ||
double | lineSpacingFactor, | ||
const QString & | text, | ||
const QString & | style, | ||
double | textRotation ) |
definitionPoint | Definition point. |
textPosition | Middle point of dimension text. |
valign | Vertical alignment. |
halign | Horizontal alignment. |
lineSpacingStyle | Line spacing style. |
lineSpacingFactor | Line spacing factor. |
text | Text string entered explicitly by user or null or "<>" for the actual measurement or " " (one blank space). for suppressing the text. |
style | Dimension style name. |
textRotation | Rotation angle of dimension text away from default orientation. |
void RDimensionData::adjustExtensionLineFixLength | ( | RLine & | extLine1, |
RLine & | extLine2, | ||
bool | addDimExe = true ) const |
|
inline |
Called when user clicks a reference point.
Reimplemented from REntityData.
QString RDimensionData::formatAngleLabel | ( | double | textAngle | ) | const |
QString RDimensionData::formatLabel | ( | double | distance | ) | const |
|
inlinevirtual |
Reimplemented in RDimAlignedData, RDimAngularData, RDimArcLengthData, RDimDiametricData, RDimOrdinateData, RDimRadialData, and RDimRotatedData.
bool RDimensionData::getBoolOverride | ( | RS::KnownVariable | key | ) | const |
Reimplemented from REntityData.
Reimplemented in RDimOrdinateData, RDimAlignedData, and RDimRotatedData.
RColor RDimensionData::getColorOverride | ( | RS::KnownVariable | key | ) | const |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
QString RDimensionData::getDimblkName | ( | ) | const |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
QSharedPointer< RBlockReferenceEntity > RDimensionData::getDimensionBlockReference | ( | ) | const |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
bool RDimensionData::getDimXBool | ( | RS::KnownVariable | key | ) | const |
RColor RDimensionData::getDimXColor | ( | RS::KnownVariable | key | ) | const |
double RDimensionData::getDimXDouble | ( | RS::KnownVariable | key | ) | const |
int RDimensionData::getDimXInt | ( | RS::KnownVariable | key | ) | const |
QVariant RDimensionData::getDimXVariant | ( | RS::KnownVariable | key | ) | const |
|
inline |
|
virtual |
limited | Limit lines, arcs at end points, otherwise the orthogonal distance to the unlimited line / circle is returned. |
range | This is returned for solid filled entities (solid filled or dense hatches, text entities) if the point is on the entity and the distance would be zero. |
draft | Calculate based on draft mode representation of the entity. |
strictRange | If limited, this is the maximum range from either end point of the entity. Zero to only return distances that are strictly orthogonal to the entity. |
Reimplemented from REntityData.
double RDimensionData::getDoubleOverride | ( | RS::KnownVariable | key | ) | const |
|
inline |
|
inline |
int RDimensionData::getIntOverride | ( | RS::KnownVariable | key | ) | const |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlinevirtual |
Reimplemented in RDimAlignedData, RDimAngularData, RDimArcLengthData, RDimDiametricData, RDimOrdinateData, RDimRadialData, and RDimRotatedData.
|
virtual |
Reimplemented in RDimArcLengthData.
|
inline |
|
virtual |
Reimplemented from REntityData.
|
virtual |
Implements REntityData.
Reimplemented in RDimAlignedData, RDimAngular2LData, RDimAngular3PData, RDimAngularData, RDimArcLengthData, RDimDiametricData, RDimOrdinateData, RDimRadialData, and RDimRotatedData.
|
inlinevirtual |
queryBox | Limit returned shapes to query box |
ignoreComplex | Ignore complex shapes and explode those into simple shapes |
segment | Split up splines into spline segments |
Reimplemented from REntityData.
|
inline |
Creates a dimensioning line (line with one, two or no arrows).
|
inlinevirtual |
|
inline |
|
inlinevirtual |
Reimplemented from REntityData.
Reimplemented in RDimAlignedData, RDimAngular2LData, RDimAngular3PData, RDimAngularData, RDimArcLengthData, RDimDiametricData, RDimLinearData, RDimOrdinateData, RDimRadialData, and RDimRotatedData.
|
inline |
QVariant RDimensionData::getVariantOverride | ( | RS::KnownVariable | key | ) | const |
bool RDimensionData::hasCustomTextPosition | ( | ) | const |
bool RDimensionData::hasDimensionBlockReference | ( | ) | const |
|
inline |
|
inline |
bool RDimensionData::hasSpaceForArrows | ( | ) | const |
RTextData & RDimensionData::initTextData | ( | ) | const |
Initializes the text data of the text label of this dimension.
The text data is created at 0/0 at an angle or 0. Moving the label to the right position at the right angle is up to the particular dimension implementation.
Reimplemented from REntityData.
|
inline |
|
inline |
|
inline |
|
inline |
|
virtual |
Reimplemented from REntityData.
Reimplemented in RDimAngular2LData, RDimAngular3PData, RDimAngularData, RDimArcLengthData, RDimDiametricData, RDimLinearData, RDimOrdinateData, RDimRadialData, and RDimRotatedData.
|
virtual |
Reimplemented from REntityData.
Reimplemented in RDimAlignedData, RDimAngular2LData, RDimAngular3PData, RDimAngularData, RDimArcLengthData, RDimDiametricData, RDimLinearData, RDimOrdinateData, RDimRadialData, and RDimRotatedData.
Reimplemented from REntityData.
Reimplemented in RDimAngular2LData, RDimAngular3PData, RDimArcLengthData, RDimDiametricData, RDimLinearData, RDimOrdinateData, RDimRadialData, and RDimRotatedData.
Moves this entity by the given offset.
Reimplemented from REntityData.
Reimplemented in RDimAngular2LData, RDimAngular3PData, RDimArcLengthData, RDimDiametricData, RDimLinearData, RDimOrdinateData, and RDimRadialData.
|
virtual |
Moves the given reference point to the given target point or does nothing if this entity has no reference point as the given location.
Implements REntityData.
Reimplemented in RDimAlignedData, RDimAngular2LData, RDimAngular3PData, RDimAngularData, RDimArcLengthData, RDimDiametricData, RDimLinearData, RDimOrdinateData, RDimRadialData, and RDimRotatedData.
void RDimensionData::render | ( | ) | const |
Reimplemented from REntityData.
Reimplemented in RDimAngular2LData, RDimAngular3PData, RDimArcLengthData, RDimDiametricData, RDimLinearData, RDimOrdinateData, RDimRadialData, and RDimRotatedData.
Reimplemented from REntityData.
Reimplemented in RDimAngular2LData, RDimAngular3PData, RDimArcLengthData, RDimDiametricData, RDimLinearData, RDimOrdinateData, and RDimRadialData.
|
virtual |
Reimplemented from REntityData.
|
inline |
|
inline |
void RDimensionData::setCustomTextPosition | ( | bool | on | ) |
Reimplemented in RDimLinearData.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
void RDimensionData::setDimXBool | ( | RS::KnownVariable | key, |
bool | v ) |
void RDimensionData::setDimXColor | ( | RS::KnownVariable | key, |
const RColor & | v ) |
void RDimensionData::setDimXDouble | ( | RS::KnownVariable | key, |
double | v ) |
void RDimensionData::setDimXInt | ( | RS::KnownVariable | key, |
int | v ) |
void RDimensionData::setDimXVariant | ( | RS::KnownVariable | key, |
const QVariant & | v ) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
virtual |
Reimplemented from REntityData.
Reimplemented in RDimAlignedData, RDimAngular2LData, RDimAngular3PData, RDimArcLengthData, RDimDiametricData, RDimLinearData, RDimOrdinateData, and RDimRadialData.
|
virtual |
Entities can reimplement this function to invalidate any internal cache (mark the entity as dirty).
Reimplemented from REntityData.
|
inline |
|
friend |
|
protected |
|
mutableprotected |
|
protected |
|
mutableprotected |
|
mutableprotected |
True if the textPosition should be automatically calculated.
|
mutableprotected |
|
mutableprotected |
|
mutableprotected |
Definition point.
|
mutableprotected |
|
mutableprotected |
|
mutableprotected |
|
protected |
|
protected |
|
protected |
Dimension font name.
|
protected |
Horizontal alignment.
|
protected |
Line spacing factor.
|
protected |
Line spacing style.
|
protected |
Lower tolerance limit.
|
protected |
|
mutableprotected |
|
protected |
Text string entered explicitly by user or null or "<>" for the actual measurement or " " (one blank space) for suppressing the text.
|
mutableprotected |
|
mutableprotected |
Middle point of dimension text.
|
mutableprotected |
Middle point of dimension text when automatically moved to the side for lack of space.
|
protected |
Rotation angle of dimension text away from default orientation.
|
protected |
Upper tolerance limit.
|
protected |
Vertical alignment.