#include <QGIViewDimension.h>

Public Types

enum  { Type = QGraphicsItem::UserType + 106 }
 
- Public Types inherited from TechDrawGui::QGIView
enum  { Type = QGraphicsItem::UserType + 101 }
 

Public Slots

void datumLabelDragFinished (void)
 
void datumLabelDragged (bool ctrl)
 
void hover (bool state)
 
void onPrettyChanged (int state)
 
void select (bool state)
 
void updateDim ()
 
- Public Slots inherited from TechDrawGui::QGIView
virtual void onSourceChange (TechDraw::DrawView *newParent)
 

Public Member Functions

virtual QRectF boundingRect () const override
 
virtual void drawBorder () override
 
virtual QGIDatumLabel * getDatumLabel (void)
 
QString getLabelText (void)
 
virtual void paint (QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget=0) override
 
virtual QColor prefNormalColor (void)
 
 QGIViewDimension ()
 
virtual void setGroupSelection (bool b) override
 
void setNormalColorAll (void)
 
void setPrettyNormal (void)
 
void setPrettyPre (void)
 
void setPrettySel (void)
 
void setViewPartFeature (TechDraw::DrawViewDimension *obj)
 
int type () const override
 
virtual void updateView (bool update=false) override
 
 ~QGIViewDimension ()=default
 
- Public Member Functions inherited from TechDrawGui::QGIView
virtual void addArbitraryItem (QGraphicsItem *qgi)
 
void alignTo (QGraphicsItem *, const QString &alignment)
 
virtual void drawCaption (void)
 
QGIViewClip * getClipGroup (void)
 
virtual QColor getCurrentColor (void)
 
virtual bool getFrameState (void)
 
MDIViewPage * getMDIViewPage (void) const
 
virtual QColor getNormalColor (void)
 
virtual QColor getPreColor (void)
 
double getScale (void)
 
virtual QColor getSelectColor (void)
 
virtual QColor getSettingColor (void)
 
const char * getViewName () const
 
const std::string getViewNameAsString () const
 
TechDraw::DrawView * getViewObject () const
 
virtual void isVisible (bool state)
 
virtual bool isVisible (void)
 
void makeMark (Base::Vector3d v, QColor c=Qt::red)
 
void makeMark (double x, double y, QColor c=Qt::red)
 
void makeMark (QPointF p, QColor c=Qt::red)
 
virtual void mousePressEvent (QGraphicsSceneMouseEvent *event) override
 
 QGIView ()
 
virtual void removeChild (QGIView *child)
 
virtual void rotateView (void)
 
void setLocked (bool b)
 
virtual void setSettingColor (QColor c)
 
void setViewFeature (TechDraw::DrawView *obj)
 
virtual void toggleCache (bool state)
 
int type () const override
 
virtual ~QGIView ()
 
void setPosition (qreal x, qreal y)
 Methods to ensure that Y-Coordinates are orientated correctly. More...
 
qreal getY ()
 
bool isInnerView ()
 
void isInnerView (bool state)
 
double getYInClip (double y)
 

Protected Member Functions

void arrowPositionsToFeature (const Base::Vector2d positions[]) const
 
bool constructDimensionArc (const Base::Vector2d &arcCenter, double arcRadius, double endAngle, double startRotation, double handednessFactor, double jointRotation, const Base::BoundBox2d &labelRectangle, int arrowCount, int standardStyle, bool flipArrows, std::vector< std::pair< double, bool >> &outputMarking) const
 
bool constructDimensionLine (const Base::Vector2d &targetPoint, double lineAngle, double startPosition, double jointPosition, const Base::BoundBox2d &labelRectangle, int arrowCount, int standardStyle, bool flipArrows, std::vector< std::pair< double, bool >> &outputMarking) const
 
void draw () override
 
void drawAngle (TechDraw::DrawViewDimension *dimension, ViewProviderDimension *viewProvider) const
 
void drawArrows (int count, const Base::Vector2d positions[], double angles[], bool flipped) const
 
void drawDiameter (TechDraw::DrawViewDimension *dimension, ViewProviderDimension *viewProvider) const
 
void drawDimensionArc (QPainterPath &painterPath, const Base::Vector2d &arcCenter, double arcRadius, double endAngle, double startRotation, double jointAngle, const Base::BoundBox2d &labelRectangle, int arrowCount, int standardStyle, bool flipArrows) const
 
void drawDimensionLine (QPainterPath &painterPath, const Base::Vector2d &targetPoint, double lineAngle, double startPosition, double jointPosition, const Base::BoundBox2d &labelRectangle, int arrowCount, int standardStyle, bool flipArrows) const
 
void drawDistance (TechDraw::DrawViewDimension *dimension, ViewProviderDimension *viewProvider) const
 
void drawDistanceExecutive (const Base::Vector2d &startPoint, const Base::Vector2d &endPoint, double lineAngle, const Base::BoundBox2d &labelRectangle, int standardStyle, int renderExtent, bool flipArrows) const
 
void drawMultiArc (QPainterPath &painterPath, const Base::Vector2d &arcCenter, double arcRadius, const std::vector< std::pair< double, bool >> &drawMarking) const
 
void drawMultiLine (QPainterPath &painterPath, const Base::Vector2d &lineOrigin, double lineAngle, const std::vector< std::pair< double, bool >> &drawMarking) const
 
void drawRadius (TechDraw::DrawViewDimension *dimension, ViewProviderDimension *viewProvider) const
 
void drawRadiusExecutive (const Base::Vector2d &centerPoint, const Base::Vector2d &midPoint, double radius, double endAngle, double startRotation, const Base::BoundBox2d &labelRectangle, double centerOverhang, int standardStyle, int renderExtent, bool flipArrow) const
 
void drawSingleArc (QPainterPath &painterPath, const Base::Vector2d &arcCenter, double arcRadius, double startAngle, double endAngle) const
 
void drawSingleLine (QPainterPath &painterPath, const Base::Vector2d &lineOrigin, double lineAngle, double startPosition, double endPosition) const
 
Base::Vector3d findIsoDir (Base::Vector3d ortho)
 find the closest isometric axis given an ortho vector More...
 
Base::Vector3d findIsoExt (Base::Vector3d isoDir)
 find the iso extension direction corresponding to an iso dist direction More...
 
Base::Vector2d getAsmeRefJointPoint (const Base::BoundBox2d &labelRectangle, bool right) const
 
Base::Vector2d getAsmeRefOutsetPoint (const Base::BoundBox2d &labelRectangle, bool right) const
 
Base::Vector2d getIsoRefJointPoint (const Base::BoundBox2d &labelRectangle, bool right) const
 
Base::Vector2d getIsoRefOutsetPoint (const Base::BoundBox2d &labelRectangle, bool right) const
 
QString getPrecision (void)
 
virtual QVariant itemChange (GraphicsItemChange change, const QVariant &value) override
 
virtual void mouseReleaseEvent (QGraphicsSceneMouseEvent *event) override
 
void resetArrows (void) const
 
virtual void setPens (void)
 
virtual void setSvgPens (void)
 
- Protected Member Functions inherited from TechDrawGui::QGIView
virtual QRectF customChildrenBoundingRect (void) const
 
void dumpRect (const char *text, QRectF r)
 
Base::Reference< ParameterGrp > getParmGroupCol (void)
 
QGIView * getQGIVByName (std::string name)
 
virtual void hoverEnterEvent (QGraphicsSceneHoverEvent *event) override
 
virtual void hoverLeaveEvent (QGraphicsSceneHoverEvent *event) override
 

Static Protected Member Functions

static int compareAngleStraightness (double straightAngle, double leftAngle, double rightAngle, double leftStrikeFactor, double rightStrikeFactor)
 
static double computeArcStrikeFactor (const Base::BoundBox2d &labelRectangle, const Base::Vector2d &arcCenter, double arcRadius, const std::vector< std::pair< double, bool >> &drawMarking)
 
static Base::Vector2d computeExtensionLinePoints (const Base::Vector2d &originPoint, const Base::Vector2d &linePoint, double hintAngle, double overhangSize, double gapSize, Base::Vector2d &startPoint)
 
static double computeLineAndLabelAngles (const Base::Vector2d &rotationCenter, const Base::Vector2d &labelCenter, double lineLabelDistance, double &lineAngle, double &labelAngle)
 
static double computeLineStrikeFactor (const Base::BoundBox2d &labelRectangle, const Base::Vector2d &lineOrigin, double lineAngle, const std::vector< std::pair< double, bool >> &drawMarking)
 
static Base::Vector2d computePerpendicularIntersection (const Base::Vector2d &linePoint, const Base::Vector2d &perpendicularPoint, double lineAngle)
 
static double getAnglePlacementFactor (double testAngle, double endAngle, double startRotation)
 
static double getIsoStandardLinePlacement (double labelAngle)
 
static double normalizeStartPosition (double &startPosition, double &lineAngle)
 
static double normalizeStartRotation (double &startRotation)
 

Protected Attributes

QGIArrow * aHead1
 
QGIArrow * aHead2
 
QGIDatumLabel * datumLabel
 
QGIDimLines * dimLines
 
bool hasHover
 
double m_lineWidth
 
- Protected Attributes inherited from TechDrawGui::QGIView
QHash< QString, QGraphicsItem * > alignHash
 
QGCustomBorder * m_border
 
QBrush m_brush
 
QGICaption * m_caption
 
QColor m_colCurrent
 
QColor m_colNormal
 
QColor m_colPre
 
QColor m_colSel
 
QColor m_colSetting
 
QPen m_decorPen
 
QFont m_font
 
bool m_innerView
 
QGCustomLabel * m_label
 
QGCustomImage * m_lock
 
bool m_locked
 
double m_lockHeight
 
double m_lockWidth
 
QPen m_pen
 
std::string viewName
 
TechDraw::DrawView * viewObj
 

Additional Inherited Members

- Static Public Member Functions inherited from TechDrawGui::QGIView
static int calculateFontPixelSize (double sizeInMillimetres)
 
static int calculateFontPixelWidth (const QFont &font)
 
static double getDimFontSize (void)
 
static QGVPage * getGraphicsView (TechDraw::DrawView *dv)
 
static QString getPrefFont (void)
 
static double getPrefFontSize (void)
 
static Gui::ViewProvider * getViewProvider (App::DocumentObject *obj)
 
- Public Attributes inherited from TechDrawGui::QGIView
boost::signals2::signal< void(QGIView *, QPointF)> signalSelectPoint
 
- Static Public Attributes inherited from TechDrawGui::QGIView
static const double DefaultFontSizeInMM = 5.0
 

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
Type 

Constructor & Destructor Documentation

◆ QGIViewDimension()

◆ ~QGIViewDimension()

TechDrawGui::QGIViewDimension::~QGIViewDimension ( )
default

Member Function Documentation

◆ arrowPositionsToFeature()

void QGIViewDimension::arrowPositionsToFeature ( const Base::Vector2d  positions[]) const
protected

◆ boundingRect()

QRectF QGIViewDimension::boundingRect ( ) const
overridevirtual

◆ compareAngleStraightness()

int QGIViewDimension::compareAngleStraightness ( double  straightAngle,
double  leftAngle,
double  rightAngle,
double  leftStrikeFactor,
double  rightStrikeFactor 
)
staticprotected

◆ computeArcStrikeFactor()

double QGIViewDimension::computeArcStrikeFactor ( const Base::BoundBox2d &  labelRectangle,
const Base::Vector2d &  arcCenter,
double  arcRadius,
const std::vector< std::pair< double, bool >> &  drawMarking 
)
staticprotected

Referenced by drawAngle().

◆ computeExtensionLinePoints()

Base::Vector2d QGIViewDimension::computeExtensionLinePoints ( const Base::Vector2d &  originPoint,
const Base::Vector2d &  linePoint,
double  hintAngle,
double  overhangSize,
double  gapSize,
Base::Vector2d &  startPoint 
)
staticprotected

◆ computeLineAndLabelAngles()

double QGIViewDimension::computeLineAndLabelAngles ( const Base::Vector2d &  rotationCenter,
const Base::Vector2d &  labelCenter,
double  lineLabelDistance,
double &  lineAngle,
double &  labelAngle 
)
staticprotected

◆ computeLineStrikeFactor()

double QGIViewDimension::computeLineStrikeFactor ( const Base::BoundBox2d &  labelRectangle,
const Base::Vector2d &  lineOrigin,
double  lineAngle,
const std::vector< std::pair< double, bool >> &  drawMarking 
)
staticprotected

◆ computePerpendicularIntersection()

Base::Vector2d QGIViewDimension::computePerpendicularIntersection ( const Base::Vector2d &  linePoint,
const Base::Vector2d &  perpendicularPoint,
double  lineAngle 
)
staticprotected

◆ constructDimensionArc()

bool QGIViewDimension::constructDimensionArc ( const Base::Vector2d &  arcCenter,
double  arcRadius,
double  endAngle,
double  startRotation,
double  handednessFactor,
double  jointRotation,
const Base::BoundBox2d &  labelRectangle,
int  arrowCount,
int  standardStyle,
bool  flipArrows,
std::vector< std::pair< double, bool >> &  outputMarking 
) const
protected

◆ constructDimensionLine()

bool QGIViewDimension::constructDimensionLine ( const Base::Vector2d &  targetPoint,
double  lineAngle,
double  startPosition,
double  jointPosition,
const Base::BoundBox2d &  labelRectangle,
int  arrowCount,
int  standardStyle,
bool  flipArrows,
std::vector< std::pair< double, bool >> &  outputMarking 
) const
protected

◆ datumLabelDragFinished

◆ datumLabelDragged

void QGIViewDimension::datumLabelDragged ( bool  ctrl)
slot

References draw().

Referenced by QGIViewDimension().

◆ draw()

◆ drawAngle()

◆ drawArrows()

◆ drawBorder()

void QGIViewDimension::drawBorder ( )
overridevirtual

Reimplemented from TechDrawGui::QGIView.

◆ drawDiameter()

void QGIViewDimension::drawDiameter ( TechDraw::DrawViewDimension *  dimension,
ViewProviderDimension *  viewProvider 
) const
protected

◆ drawDimensionArc()

void QGIViewDimension::drawDimensionArc ( QPainterPath &  painterPath,
const Base::Vector2d &  arcCenter,
double  arcRadius,
double  endAngle,
double  startRotation,
double  jointAngle,
const Base::BoundBox2d &  labelRectangle,
int  arrowCount,
int  standardStyle,
bool  flipArrows 
) const
protected

◆ drawDimensionLine()

void QGIViewDimension::drawDimensionLine ( QPainterPath &  painterPath,
const Base::Vector2d &  targetPoint,
double  lineAngle,
double  startPosition,
double  jointPosition,
const Base::BoundBox2d &  labelRectangle,
int  arrowCount,
int  standardStyle,
bool  flipArrows 
) const
protected

◆ drawDistance()

◆ drawDistanceExecutive()

◆ drawMultiArc()

void QGIViewDimension::drawMultiArc ( QPainterPath &  painterPath,
const Base::Vector2d &  arcCenter,
double  arcRadius,
const std::vector< std::pair< double, bool >> &  drawMarking 
) const
protected

References drawSingleArc().

Referenced by drawDimensionArc().

◆ drawMultiLine()

void QGIViewDimension::drawMultiLine ( QPainterPath &  painterPath,
const Base::Vector2d &  lineOrigin,
double  lineAngle,
const std::vector< std::pair< double, bool >> &  drawMarking 
) const
protected

References drawSingleLine().

Referenced by drawDimensionLine().

◆ drawRadius()

◆ drawRadiusExecutive()

◆ drawSingleArc()

void QGIViewDimension::drawSingleArc ( QPainterPath &  painterPath,
const Base::Vector2d &  arcCenter,
double  arcRadius,
double  startAngle,
double  endAngle 
) const
protected

References Base::Vector2d::x, and Base::Vector2d::y.

Referenced by drawMultiArc().

◆ drawSingleLine()

void QGIViewDimension::drawSingleLine ( QPainterPath &  painterPath,
const Base::Vector2d &  lineOrigin,
double  lineAngle,
double  startPosition,
double  endPosition 
) const
protected

References Base::Vector2d::FromPolar().

Referenced by drawMultiLine().

◆ findIsoDir()

Base::Vector3d QGIViewDimension::findIsoDir ( Base::Vector3d  ortho)
protected

find the closest isometric axis given an ortho vector

References Base::Vector3< _Precision >::GetAngle().

◆ findIsoExt()

Base::Vector3d QGIViewDimension::findIsoExt ( Base::Vector3d  isoDir)
protected

find the iso extension direction corresponding to an iso dist direction

References Base::Console(), TechDrawGui::QGIView::getViewObject(), Base::Vector3< _Precision >::IsEqual(), and Base::ConsoleSingleton::Message().

◆ getAnglePlacementFactor()

double QGIViewDimension::getAnglePlacementFactor ( double  testAngle,
double  endAngle,
double  startRotation 
)
staticprotected

Referenced by drawRadiusExecutive().

◆ getAsmeRefJointPoint()

Base::Vector2d QGIViewDimension::getAsmeRefJointPoint ( const Base::BoundBox2d &  labelRectangle,
bool  right 
) const
protected

◆ getAsmeRefOutsetPoint()

Base::Vector2d QGIViewDimension::getAsmeRefOutsetPoint ( const Base::BoundBox2d &  labelRectangle,
bool  right 
) const
protected

◆ getDatumLabel()

virtual QGIDatumLabel* TechDrawGui::QGIViewDimension::getDatumLabel ( void  )
virtual

◆ getIsoRefJointPoint()

Base::Vector2d QGIViewDimension::getIsoRefJointPoint ( const Base::BoundBox2d &  labelRectangle,
bool  right 
) const
protected

◆ getIsoRefOutsetPoint()

Base::Vector2d QGIViewDimension::getIsoRefOutsetPoint ( const Base::BoundBox2d &  labelRectangle,
bool  right 
) const
protected

◆ getIsoStandardLinePlacement()

double QGIViewDimension::getIsoStandardLinePlacement ( double  labelAngle)
staticprotected

◆ getLabelText()

◆ getPrecision()

QString TechDrawGui::QGIViewDimension::getPrecision ( void  )
protected

◆ hover

void QGIViewDimension::hover ( bool  state)
slot

References draw(), and hasHover.

Referenced by QGIViewDimension().

◆ itemChange()

QVariant QGIViewDimension::itemChange ( GraphicsItemChange  change,
const QVariant &  value 
)
overrideprotectedvirtual

◆ mouseReleaseEvent()

void QGIViewDimension::mouseReleaseEvent ( QGraphicsSceneMouseEvent *  event)
overrideprotectedvirtual

Reimplemented from TechDrawGui::QGIView.

◆ normalizeStartPosition()

double QGIViewDimension::normalizeStartPosition ( double &  startPosition,
double &  lineAngle 
)
staticprotected

◆ normalizeStartRotation()

double QGIViewDimension::normalizeStartRotation ( double &  startRotation)
staticprotected

Referenced by drawAngle(), and drawDimensionArc().

◆ onPrettyChanged

void QGIViewDimension::onPrettyChanged ( int  state)
slot

◆ paint()

void QGIViewDimension::paint ( QPainter *  painter,
const QStyleOptionGraphicsItem *  option,
QWidget *  widget = 0 
)
overridevirtual

Reimplemented from TechDrawGui::QGIView.

References setPens(), and setSvgPens().

◆ prefNormalColor()

◆ resetArrows()

void QGIViewDimension::resetArrows ( void  ) const
protected

◆ select

void QGIViewDimension::select ( bool  state)
slot

Referenced by QGIViewDimension().

◆ setGroupSelection()

void QGIViewDimension::setGroupSelection ( bool  b)
overridevirtual

Reimplemented from TechDrawGui::QGIView.

References aHead1, aHead2, datumLabel, and dimLines.

◆ setNormalColorAll()

◆ setPens()

void QGIViewDimension::setPens ( void  )
protectedvirtual

◆ setPrettyNormal()

void QGIViewDimension::setPrettyNormal ( void  )

◆ setPrettyPre()

void QGIViewDimension::setPrettyPre ( void  )

◆ setPrettySel()

void QGIViewDimension::setPrettySel ( void  )

◆ setSvgPens()

void QGIViewDimension::setSvgPens ( void  )
protectedvirtual

◆ setViewPartFeature()

◆ type()

int TechDrawGui::QGIViewDimension::type ( ) const
override

◆ updateDim

◆ updateView()

Member Data Documentation

◆ aHead1

◆ aHead2

◆ datumLabel

◆ dimLines

◆ hasHover

bool TechDrawGui::QGIViewDimension::hasHover
protected

Referenced by hover().

◆ m_lineWidth

double TechDrawGui::QGIViewDimension::m_lineWidth
protected

The documentation for this class was generated from the following files:
  • src/Mod/TechDraw/Gui/QGIViewDimension.h
  • src/Mod/TechDraw/Gui/QGIViewDimension.cpp