DAWorkbench 0.0.1
DAWorkbench API
载入中...
搜索中...
未找到
DANodeLinkPoint.h
1#ifndef DANODELINKPOINT_H
2#define DANODELINKPOINT_H
3#include "DAWorkFlowAPI.h"
4#include <QtCore/qglobal.h>
5#include <QDebug>
6#include "DAGraphicsViewGlobal.h"
7namespace DA
8{
12class DAWORKFLOW_API DANodeLinkPoint
13{
14public:
18 enum Way
19 {
21 Output
22 };
23
25 DANodeLinkPoint(const QPointF& p, const QString& n, Way w = Output, AspectDirection d = AspectDirection::East);
26 bool isValid() const;
27 bool isInput() const;
28 bool isOutput() const;
29 // 沿着点和伸出方向延伸externLen长度后的点
30 QPointF elongation(int externLen);
31 // 判断两个方向是否平行
32 static bool isDirectionParallel(AspectDirection d1, AspectDirection d2);
33 // 判断两个方向是否相对,也就是东对西,南对北就是相对,相对必定平行
34 static bool isDirectionOpposite(AspectDirection d1, AspectDirection d2);
35 // 顺着点1的方向看,点2是否在前面
36 static bool isPointInFront(const QPointF& p1, AspectDirection d1, const QPointF& p2);
37 // 点是否会相遇
38 static bool isPointCanMeet(const QPointF& p1, AspectDirection d1, const QPointF& p2, AspectDirection d2);
39 // 针对平行点线,沿着方向移动可以接近,此函数只对平行点线有用
40 static bool isParallelPointApproachInDirection(const QPointF& p1, AspectDirection d1, const QPointF& p2, AspectDirection d2);
41 // 翻转方向
42 static AspectDirection oppositeDirection(AspectDirection d);
43 // 返回点1相对点2的位置
44 static AspectDirection relativeDirectionOfPoint(const QPointF& p1, const QPointF& p2);
45 // 模糊比较
46 static bool fuzzyCompare(const QPointF& p1, const QPointF& p2);
47 // 不对位置方向(显示属性)进行判断,仅判断方法、属性
48 bool isEqualWayName(const DANodeLinkPoint& other) const;
49
50public:
51 QPointF position;
52 QString name;
55};
56
57DAWORKFLOW_API uint qHash(const DANodeLinkPoint& key, uint seed);
58
59// 使用ADL发现操作符的能力。避免不同命名空间中的不一致。
60// DANodeLinkPoint 的操作符,为了可以适用map hash set
61DAWORKFLOW_API bool operator==(const DANodeLinkPoint& a, const DANodeLinkPoint& b);
62DAWORKFLOW_API bool operator==(const DANodeLinkPoint& a, const QString& b);
63DAWORKFLOW_API bool operator<(const DANodeLinkPoint& a, const DANodeLinkPoint& b);
64DAWORKFLOW_API QDebug operator<<(QDebug dbg, const DANodeLinkPoint& a);
65
66} // end of namespace DA
67
68Q_DECLARE_METATYPE(DA::DANodeLinkPoint)
69
70#endif // FCNODELINKPOINT_H
用于表征连节点信息的数据
Definition DANodeLinkPoint.h:13
QString name
连接点名字
Definition DANodeLinkPoint.h:52
Way way
连接点的属性,是输入还是输出
Definition DANodeLinkPoint.h:53
AspectDirection direction
连接点引线的伸出方向(用于绘制连线的时候指定方向)
Definition DANodeLinkPoint.h:54
QPointF position
连接点相对DAAbstractNodeGraphicsItem的位置
Definition DANodeLinkPoint.h:51
Way
节点的方法
Definition DANodeLinkPoint.h:19
@ Input
输入节点
Definition DANodeLinkPoint.h:20
序列化类都是带异常的,使用中需要处理异常
Definition AppMainWindow.cpp:44
AspectDirection
方向
Definition DAGraphicsViewGlobal.h:33