24 int type()
const override
61 void setEndPointType(Orientations o, EndPointType epType);
62 EndPointType getEndPointType(Orientations o)
const;
64 int getEndPointSize()
const;
65 void setEndPointSize(
int v);
67 void setLinkLineStyle(LinkLineStyle s);
68 LinkLineStyle getLinkLineStyle()
const;
71 void setLinePen(
const QPen& p);
72 QPen getLinePen()
const;
75 virtual QRectF updateBoundingRect();
78 void setBezierControlScale(qreal rate = 0.25);
79 qreal getBezierControlScale()
const;
82 virtual void setStartScenePosition(
const QPointF& scenepostion);
83 QPointF getStartScenePosition()
const;
86 virtual void setEndScenePosition(
const QPointF& scenepostion);
87 QPointF getEndScenePosition()
const;
89 QPainterPath getLinkLinePainterPath()
const;
91 QPainterPath getEndPointPainterPath(Orientations epType)
const;
93 void updateEndPoint();
95 virtual void paint(QPainter* painter,
const QStyleOptionGraphicsItem* option, QWidget* widget =
nullptr)
override;
97 virtual void paintLinkLine(QPainter* painter,
98 const QStyleOptionGraphicsItem* option,
100 const QPainterPath& linkPath);
102 virtual void paintEndPoint(QPainter* painter,
103 const QStyleOptionGraphicsItem* option,
104 const QPointF& pStart,
105 EndPointType etStart,
106 const QPainterPath& startPainterPath,
109 const QPainterPath& endPainterPath,
110 const QPainterPath& linkPath);
112 virtual QRectF boundingRect()
const override;
113 virtual QPainterPath shape()
const override;
116 virtual QPainterPath generateLinePainterPath(
const QPointF& fromPoint,
117 const QPointF& toPoint,
118 LinkLineStyle linestyle = LinkLineStraight);
120 virtual QPainterPath generateEndPointPainterPath(EndPointType epType,
int size);
123 virtual bool willCompleteLink();
125 virtual bool saveToXml(QDomDocument* doc, QDomElement* parentElement,
const QVersionNumber& ver)
const override;
126 virtual bool loadFromXml(
const QDomElement* parentElement,
const QVersionNumber& ver)
override;
128 void setScenePos(
const QPointF& p);
129 void setScenePos(qreal x, qreal y);
133 static qreal pointLength(
const QPointF& a,
const QPointF& b);
136 static QPointF elongation(
const QPointF& orgPoint,
AspectDirection d, qreal externLen);
145 static bool isPointInFront(
const QPointF& p1,
AspectDirection d1,
const QPointF& p2);
153 static AspectDirection relativeDirectionOfPoint(
const QPointF& p1,
const QPointF& p2);
155 static QPointF calcPainterPathEndPoint(
const QPainterPath& path,
156 bool fromStart =
true,
157 qreal distanceMaxPx = 18.0,
164 void setStartPosition(
const QPointF& p);
165 const QPointF& getStartPosition()
const;
168 void setEndPosition(
const QPointF& p);
169 const QPointF& getEndPosition()
const;
171 virtual QPen getPainterPen(
const QStyleOptionGraphicsItem* option)
const;
173 virtual QPainterPath generateLinkLineBezierPainterPath(
const QPointF& fromPos,
175 const QPointF& toPos,
178 virtual QPainterPath generateLinkLineStraightPainterPath(
const QPointF& fromPos,
const QPointF& toPos);
180 virtual QPainterPath generateLinkLineKnucklePainterPath(
const QPointF& fromPos,
182 const QPointF& toPos,