QCAD
Open Source 2D CAD
|
Copyright (c) 2011-2018 by Andrew Mustun. More...
#include <RDimensionData.h>
Public Member Functions | |
void | adjustExtensionLineFixLength (RLine &extLine1, RLine &extLine2, bool addDimExe=true) const |
virtual bool | clickReferencePoint (const RVector &referencePoint) |
Called when user clicks a reference point. More... | |
QString | formatAngleLabel (double textAngle) const |
QString | formatLabel (double distance) const |
virtual QList< QSharedPointer< RShape > > | getArrow (const RVector &position, double direction) const |
virtual QString | getAutoLabel () const |
virtual RBox | getBoundingBox (bool ignoreEmpty=false) const |
RVector | getDefinitionPoint () const |
double | getDimasz () const |
QString | getDimBlockName () const |
QSharedPointer< RBlockReferenceEntity > | getDimensionBlockReference () const |
QList< QSharedPointer< RShape > > | getDimensionLineShapes (const RVector &p1, const RVector &p2, bool arrow1, bool arrow2) const |
Creates a dimensioning line (line with one, two or no arrows). More... | |
double | getDimexe () const |
double | getDimexo () const |
double | getDimgap () const |
double | getDimScale (bool fromDocument=true) const |
double | getDimtxt () const |
virtual double | getDistanceTo (const RVector &point, bool limited=true, double range=0.0, bool draft=false, double strictRange=RMAXDOUBLE) const |
double | getExtLineFixLength () const |
QString | getFontName () const |
double | getLinearFactor () const |
double | getLineSpacingFactor () const |
RS::TextLineSpacingStyle | getLineSpacingStyle () const |
virtual double | getMeasuredValue () const |
virtual QString | getMeasurement (bool resolveAutoMeasurement=true) const |
virtual RVector | getPointOnEntity () const |
virtual QList< RRefPoint > | getReferencePoints (RS::ProjectionRenderingHint hint=RS::RenderTop) const |
QString | getText () const |
double | getTextAngle () const |
RTextData & | getTextData () const |
RVector | getTextPosition () const |
virtual RS::EntityType | getType () const |
bool | hasCustomTextPosition () const |
bool | hasDimensionBlockReference () const |
bool | hasSpaceForArrows () const |
void | initTextData () const |
Initializes the text data of the text label of this dimension. More... | |
virtual bool | intersectsWith (const RShape &shape) const |
bool | isArrow1Flipped () const |
bool | isArrow2Flipped () 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. More... | |
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. More... | |
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 textAngle) | |
RDimensionData (RDocument *document=NULL) | |
Copyright (c) 2011-2018 by Andrew Mustun. More... | |
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 | setDimBlockName (const QString &bn) |
void | setDimScale (double f) |
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 | setUpperTolerance (const QString &t) |
virtual void | update () const |
Entities can reimplement this function to invalidate any internal cache (mark the entity as dirty). More... | |
virtual void | updateTextData () const |
bool | useArchTick () const |
Public Member Functions inherited from REntityData | |
virtual const RShape * | castToConstShape () const |
virtual RShape * | castToShape () |
virtual bool | cloneOnChange () const |
Reimplement to force clone on change in transactions. More... | |
void | copyAttributesFrom (const REntityData &entityData, bool copyBlockId=true) |
virtual bool | flipHorizontal () |
virtual bool | flipVertical () |
virtual QList< RVector > | getArcReferencePoints (const RBox &queryBox=RDEFAULT_RBOX) const |
RBlock::Id | getBlockId () const |
QString | getBlockName () const |
virtual QList< RBox > | getBoundingBoxes (bool ignoreEmpty=false) const |
virtual QList< RVector > | getCenterPoints (const RBox &queryBox=RDEFAULT_RBOX) const |
virtual RVector | getClosestPointOnEntity (const RVector &point, double range=RNANDOUBLE, bool limited=true) const |
virtual QSharedPointer< RShape > | getClosestShape (const RVector &pos, double range=RNANDOUBLE, bool ignoreComplex=false) const |
virtual RColor | getColor () const |
virtual RColor | getColor (bool resolve, const QStack< REntity * > &blockRefStack) const |
virtual RColor | getColor (const RColor &unresolvedColor, const QStack< 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) const |
virtual RPolyline | getHull (double offset) const |
virtual QList< RRefPoint > | getInternalReferencePoints (RS::ProjectionRenderingHint hint=RS::RenderTop) const |
Can be overwritten to return internal, resolved reference points. More... | |
virtual QList< RVector > | getIntersectionPoints (const REntityData &other, bool limited=true, bool same=false, const RBox &queryBox=RDEFAULT_RBOX, bool ignoreComplex=true) const |
virtual QList< RVector > | getIntersectionPoints (const RShape &shape, bool limited=true, const RBox &queryBox=RDEFAULT_RBOX, bool ignoreComplex=true) const |
RLayer::Id | getLayerId () const |
QString | getLayerName () const |
virtual RLinetype::Id | getLinetypeId () const |
virtual RLinetype::Id | getLinetypeId (bool resolve, const QStack< REntity * > &blockRefStack) const |
virtual RLinetypePattern | getLinetypePattern () const |
virtual double | getLinetypeScale () const |
virtual RLineweight::Lineweight | getLineweight () const |
virtual RLineweight::Lineweight | getLineweight (bool resolve, const QStack< REntity * > &blockRefStack) const |
double | getLineweightInUnits (const QStack< REntity * > &blockRefStack) const |
virtual QList< RVector > | getMiddlePoints (const RBox &queryBox=RDEFAULT_RBOX) const |
RObject::Id | getParentId () const |
virtual QList< RVector > | getPointsWithDistanceToEnd (double distance, int from=RS::FromAny, const RBox &queryBox=RDEFAULT_RBOX) const |
virtual QList< QSharedPointer< RShape > > | getShapes (const RBox &queryBox=RDEFAULT_RBOX, bool ignoreComplex=false, bool segment=false) 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. More... | |
virtual bool | scale (double scaleFactor, const RVector ¢er=RDEFAULT_RVECTOR) |
void | setAutoUpdatesBlocked (bool on) |
virtual void | setBlockId (RBlock::Id blockId) |
void | setColor (const RColor &color) |
void | setDocument (RDocument *document) |
virtual void | setDrawOrder (int drawOrder) |
Sets the draw order of this entity. More... | |
virtual void | setLayerId (RLayer::Id layerId) |
void | setLayerName (const QString &layerName) |
virtual void | setLinetypeId (RLinetype::Id linetypeId) |
Sets the linetype of this entity to the given linetype ID. More... | |
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. More... | |
virtual void | setSelectedWorkingSet (bool on) |
Selects or deselects this entity for addition to the current working set. More... | |
void | setUpdatesEnabled (bool on) |
Enables / disables cache updates. More... | |
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. More... | |
virtual void | to2D () |
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. More... | |
RBox | boundingBox |
double | defaultAngle |
RVector | definitionPoint |
Definition point. More... | |
QString | dimBlockName |
Dimension text color. More... | |
double | dimLineLength |
double | dimScaleOverride |
bool | dirty |
bool | extLineFix |
double | extLineFixLength |
QString | fontName |
Dimension font name. More... | |
RS::HAlign | halign |
Horizontal alignment. More... | |
double | linearFactor |
double | lineSpacingFactor |
Line spacing factor. More... | |
RS::TextLineSpacingStyle | lineSpacingStyle |
Line spacing style. More... | |
QString | lowerTolerance |
Lower tolerance limit. More... | |
QString | text |
Text string entered explicitly by user or null or "<>" for the actual measurement or " " (one blank space) for suppressing the text. More... | |
double | textAngle |
Rotation angle of dimension text away from default orientation. More... | |
RTextData | textData |
RVector | textPositionCenter |
Middle point of dimension text. More... | |
RVector | textPositionSide |
Middle point of dimension text when automatically moved to the side for lack of space. More... | |
QString | upperTolerance |
Upper tolerance limit. More... | |
RS::VAlign | valign |
Vertical alignment. More... | |
Protected Attributes inherited from REntityData | |
bool | autoUpdatesBlocked |
Block auto updates is true during imports, undo and redo. More... | |
RBlock::Id | blockId |
RColor | color |
RDocument * | document |
int | drawOrder |
RLayer::Id | layerId |
RLinetype::Id | linetypeId |
double | linetypeScale |
RLineweight::Lineweight | lineweight |
RObject::Id | parentId |
bool | selectionStatus |
bool | selectionStatusWorkingSet |
bool | updatesEnabled |
Friends | |
class | RDimensionEntity |
Additional Inherited Members | |
Static Public Member Functions inherited from REntityData | |
static int | getDefaultDrawOrder () |
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. Base class for dimension entity data classes.
|
protected |
RDimensionData::RDimensionData | ( | RDocument * | document = NULL | ) |
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 | angle | ||
) |
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. |
angle | Rotation angle of dimension text away from default orientation. |
void RDimensionData::adjustExtensionLineFixLength | ( | RLine & | extLine1, |
RLine & | extLine2, | ||
bool | addDimExe = true |
||
) | const |
|
virtual |
Called when user clicks a reference point.
Reimplemented from REntityData.
QString RDimensionData::formatAngleLabel | ( | double | textAngle | ) | const |
QString RDimensionData::formatLabel | ( | double | distance | ) | const |
|
virtual |
|
inlinevirtual |
Reimplemented in RDimArcLengthData, RDimOrdinateData, RDimRotatedData, RDimDiametricData, RDimRadialData, RDimAngularData, and RDimAlignedData.
|
virtual |
Reimplemented from REntityData.
Reimplemented in RDimRotatedData, RDimAlignedData, and RDimOrdinateData.
|
inline |
double RDimensionData::getDimasz | ( | ) | const |
|
inline |
QSharedPointer< RBlockReferenceEntity > RDimensionData::getDimensionBlockReference | ( | ) | const |
QList< QSharedPointer< RShape > > RDimensionData::getDimensionLineShapes | ( | const RVector & | p1, |
const RVector & | p2, | ||
bool | arrow1, | ||
bool | arrow2 | ||
) | const |
Creates a dimensioning line (line with one, two or no arrows).
double RDimensionData::getDimexe | ( | ) | const |
double RDimensionData::getDimexo | ( | ) | const |
double RDimensionData::getDimgap | ( | ) | const |
double RDimensionData::getDimScale | ( | bool | fromDocument = true | ) | const |
double RDimensionData::getDimtxt | ( | ) | const |
|
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.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlinevirtual |
Reimplemented in RDimArcLengthData, RDimOrdinateData, RDimRotatedData, RDimDiametricData, RDimRadialData, RDimAngularData, and RDimAlignedData.
|
virtual |
Reimplemented in RDimArcLengthData.
|
virtual |
Reimplemented from REntityData.
|
virtual |
Implements REntityData.
Reimplemented in RDimArcLengthData, RDimAngular2LData, RDimOrdinateData, RDimAngular3PData, RDimDiametricData, RDimRadialData, RDimRotatedData, RDimAngularData, and RDimAlignedData.
|
inline |
|
inline |
|
inline |
|
inlinevirtual |
Reimplemented from REntityData.
Reimplemented in RDimAngular2LData, RDimAngular3PData, RDimArcLengthData, RDimRotatedData, RDimAlignedData, RDimAngularData, RDimLinearData, RDimOrdinateData, RDimDiametricData, and RDimRadialData.
bool RDimensionData::hasCustomTextPosition | ( | ) | const |
bool RDimensionData::hasDimensionBlockReference | ( | ) | const |
bool RDimensionData::hasSpaceForArrows | ( | ) | const |
void 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.
|
virtual |
Reimplemented from REntityData.
|
inline |
|
inline |
|
inline |
|
virtual |
Reimplemented from REntityData.
Reimplemented in RDimAngular2LData, RDimAngular3PData, RDimArcLengthData, RDimRotatedData, RDimAngularData, RDimLinearData, RDimOrdinateData, RDimDiametricData, and RDimRadialData.
|
virtual |
Reimplemented from REntityData.
Reimplemented in RDimAngular2LData, RDimAngular3PData, RDimArcLengthData, RDimRotatedData, RDimAngularData, RDimLinearData, RDimOrdinateData, RDimDiametricData, and RDimRadialData.
|
virtual |
Reimplemented from REntityData.
Reimplemented in RDimArcLengthData, RDimAngular2LData, RDimOrdinateData, RDimAngular3PData, RDimLinearData, RDimRotatedData, RDimDiametricData, and RDimRadialData.
|
virtual |
Moves this entity by the given offset.
Reimplemented from REntityData.
Reimplemented in RDimArcLengthData, RDimAngular2LData, RDimOrdinateData, RDimAngular3PData, RDimLinearData, RDimDiametricData, 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 RDimArcLengthData, RDimAngular2LData, RDimOrdinateData, RDimAngular3PData, RDimLinearData, RDimDiametricData, RDimRadialData, RDimRotatedData, RDimAngularData, and RDimAlignedData.
|
virtual |
Reimplemented from REntityData.
Reimplemented in RDimArcLengthData, RDimAngular2LData, RDimOrdinateData, RDimAngular3PData, RDimLinearData, RDimRotatedData, RDimDiametricData, and RDimRadialData.
Reimplemented from REntityData.
Reimplemented in RDimArcLengthData, RDimAngular2LData, RDimOrdinateData, RDimAngular3PData, RDimLinearData, RDimDiametricData, and RDimRadialData.
|
virtual |
Reimplemented from REntityData.
|
inline |
|
inline |
void RDimensionData::setCustomTextPosition | ( | bool | on | ) |
|
inlinevirtual |
Reimplemented in RDimLinearData.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
virtual |
Entities can reimplement this function to invalidate any internal cache (mark the entity as dirty).
Reimplemented from REntityData.
|
virtual |
Reimplemented in RDimLinearData, and RDimDiametricData.
bool RDimensionData::useArchTick | ( | ) | const |
|
friend |
|
protected |
|
mutableprotected |
|
protected |
|
mutableprotected |
|
mutableprotected |
True if the textPosition should be automatically calculated.
|
mutableprotected |
|
mutableprotected |
|
mutableprotected |
Definition point.
|
mutableprotected |
|
mutableprotected |
|
protected |
|
mutableprotected |
|
protected |
|
protected |
|
protected |
Dimension font name.
|
protected |
Horizontal alignment.
|
protected |
|
protected |
Line spacing factor.
|
protected |
Line spacing style.
|
protected |
Lower tolerance limit.
|
protected |
Text string entered explicitly by user or null or "<>" for the actual measurement or " " (one blank space) for suppressing the text.
|
protected |
Rotation angle of dimension text away from default orientation.
|
mutableprotected |
|
mutableprotected |
Middle point of dimension text.
|
mutableprotected |
Middle point of dimension text when automatically moved to the side for lack of space.
|
protected |
Upper tolerance limit.
|
protected |
Vertical alignment.