C ++中顶点/边的VTK自定义ID

时间:2013-06-17 18:25:12

标签: c++ vtk

请原谅我,因为我对VTK C ++很新,但是我开始对它进行处理,但我想我不确定从这里开始。

我正在制作图表,当你选择顶点和边时,它会显示哪些被选中(我用this教程作为起点)。它做得非常好,除了使用我给每个顶点给出的标签,它只是使用它创建的顺序(或说默认值)。我做了一点研究,看到你可以使用一个谱系ID数组作为顶点(我不知道边缘,但我一步一步),这将作为自定义ID,但我无法想象如何实现这一点。

所以我想我的主要问题是:
- 我可以为以后可以参考的每个顶点制作自定义ID吗?
- 我也可以用边缘做这个吗?
- 我该如何解决这个问题?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

  1. 查看vtk文档,vtkGraph类有2个方法GetVertexData ()GetEdgeData (),它们返回vtkDataSetAttributes的实例。该类允许将vtkAbstractArray(vtkIdType数组,字符串数组......等)设置为PedigreeIds。您可以从图表中填充此数组,并将您的谱系id设置在所需顶点的相同位置,以“标记”顶点(或边缘)。

  2. 其他解决方案是创建一个关联数组,如std::map<vtkIdType, vtkIdType>,其ID为关键字,顶点ID关联为值。它允许您从选择的ID中获取图表中的“真实”ID。

  3. 您可以更改一个顶点的Id,但必须使用它来检查其他边,更改引用并设置您选择的新ID,查找和修改链接的每个顶点/边可能会很昂贵修改后的身份证。

  4. 您可以使用与顶点关联的vtkGraphLayoutView类为表示设置一些标签,但它不是Graph实例的内部标签,而是用于渲染。它不应该用于“重新标记”ID。

  5. 我没有测试任何这些解决方案。我希望它会有所帮助。