Node

阅读时间约 1 分钟

Node继承自Item,所以,Item上面的方法在Node实例中都可以调用。

lock()

3.1.4 版本新增

锁定当前节点,锁定节点后,该节点不再响应拖动节点的事件。

提示锁定节点后,拖动画布和缩放画布的操作依然对该节点有效,如果想在锁定节点后,不响应拖动画布和缩放的事件,需要自定义拖动画布和缩放的 Behavior,具体可参考锁定节点不响应拖动画布的事件【todo】和锁定节点不响应缩放事件【todo】。

用法

  1. const node = graph.findById('node');
  2. node.lock();

unlock()

3.1.4 版本新增

解锁锁定的节点。

用法

  1. const node = graph.findById('node');
  2. node.unlock();

hasLocked()

3.1.4 版本新增

检测节点是否处于锁定状态。

返回值

  • 返回值类型:boolean;
  • 返回 true 表示当前解锁处于锁定状态,否则表示未锁定。

用法

  1. const node = graph.findById('node');
  2. const hasLocked = node.hasLocked();

getEdges()

获取与当前节点有关联的所有边。

返回值

  • 返回值类型:Edge[];
  • 返回边实例的集合。

用法

  1. // 获取与node关联的所有边
  2. const edges = node.getEdges();

getInEdges()

获取与当前节点关联的所有入边。

返回值

  • 返回值类型:Edge[];
  • 返回入边实例的集合。

用法

  1. // 获取与node关联的所有入边
  2. const edges = node.getInEdges();

getOutEdges()

获取与当前节点关联的所有出边。

返回值

  • 返回值类型:Edge[];
  • 返回出边实例的集合。

用法

  1. // 获取与node关联的所有出边
  2. const edges = node.getOutEdges();

getAnchorPoints()

获取节点上面定义的锚点。

返回值

  • 返回值类型:array;
  • 返回值的数据结构:
  1. [
  2. (0: {
  3. x: 100,
  4. y: 105,
  5. index: 0,
  6. }),
  7. (1: {
  8. x: 200,
  9. y: 105,
  10. index: 1,
  11. }),
  12. ];

用法

  1. // 获取定义在节点上的锚点数据
  2. const anchor = node.getAnchorPoints();

getLinkPoint(point)

获取距离指定坐标最近的一个锚点。

参数

名称类型是否必选描述
pointobjecttrue节点外部的一个点,用于计算交点及最近的锚点

返回值

  • 返回值类型:object;
  • 返回值表示连接点的坐标(x, y),如果没有合适的锚点和连接点,则返回中心点。

用法

  1. const point = {
  2. x: 100,
  3. y: 105,
  4. };
  5. // 获取连接点
  6. const linkPoint = node.getLinkPoint(point);

getLinkPointByAnchor(index)

根据锚点索引获取连接点的x、y坐标。

参数

名称类型是否必选描述
indexnumbertrue锚点的索引

返回值

  • 返回值类型:object;
  • 返回值表示连接点的坐标(x, y)。

用法

  1. // 获取定义在节点上的第一个锚点
  2. const anchor = node.getLinkPointByAnchor(0);

addEdge(edge)

添加指定的边到当前节点上。

参数

名称类型是否必选描述
edgeEdgetrueEdge实例

用法

  1. const edge = new Edge({
  2. // TODO
  3. });
  4. node.addEdge(edge);

removeEdge(edge)

移除与当前节点相关的指定边。

参数

名称类型是否必选描述
edgeEdgetrueEdge实例

用法

  1. const edge = node.removeEdge(edge); // TODO