理解VTK中point(点)、cell(单元)、和dataset(数据集)的关系
(2014-11-10 11:11:16)
标签:
itvtk |
分类: VTK |
1、从Point到Cells的关系由vtkCellLinks 完成:
vtkCellLinks 表示a list of Links,每个Link包含一个单元Id的列表,列表中的各单元同时在使用同一个点。
//BTX
class Link {
public:
unsigned short ncells; //列表中单元个数
vtkIdType *cells;
};
vtkCellLinks ::BuildLinks(vtkDataSet *data)//该函数的功能就是建立上述从Point到Cells的列表
2、从Cell到Points的关系由vtkCell完成,它包括单元所使用的点的信息:
// left public for quick computational access
vtkPoints *Points; //构成单元的Points的坐标信息
vtkIdList *PointIds; //对应Points的Id信息
其结构可理解为:(n,id1,id2,...,idn, n,id1,id2,...,idn, ...),n表示一个单元包含的点的个数,id?表示单元所关联的点的Id。
4、不同类型的多个vtkCellArray被添加到vtkCellTypes后就可以构成比较复杂的数据集,如vtkPolyData:
它包括主要成员变量:
vtkCellArray *Verts; //点单元集
vtkCellArray *Lines; //线单元集
vtkCellArray *Polys; //多边形单元集
vtkCellArray *Strips;
// supporting structures for more complex topological
operations
// built only when necessary
vtkCellTypes *Cells;
vtkCellLinks *Links;
因此,如果要处理点和单元的引用关系,需要先初始化Cells和Links这两个变量,即分别调用BuildLinks和调用
BuildCells,与此相反去掉关联的函数分别为DeleteLinks和DeleteCells。