vtkCellLinks——理解点,单元,和数据集的关系
2014-10-31 17:08 CN-Phoenix 阅读(2056) 评论(0) 编辑 收藏 举报vtkCellLinks 表示a list of Links,每个Link包含一个单元Id的列表,
列表中的单元同时在使用同一个点。
//BTX
class Link {
public:
unsigned short ncells; //列表中单元个数
vtkIdType *cells; //指向单元id的指针
};
vtkCellLinks ::BuildLinks(vtkDataSet *data)
该函数的功能就是建立上述从Point到Cells的列表
从Cell到Points的关系由vtkCell完成,它包括单元所使用的点的信息
// left public for quick computational access
vtkPoints *Points; //构成单元的Points的坐标信息
vtkIdList *PointIds; //对应Points的Id信息
同一类型的单元可以组成vtkCellArray的对象。
结构理解为:(n,id1,id2,...,idn, n,id1,id2,...,idn, ...)
n表示一个单元中包含的点的个数,id_表示单元关联的点的Id。
不同类型的多个vtkCellArray被添加到vtkCellTypes后可以构成比较复杂的数据集
如vtkPolyData,它包括主要成员变量:
vtkCellArray *Verts; //点单元集
vtkCellArray *Lines; //线单元集
vtkCellArray *Polys; //多边形单元集
vtkCellArray *Strips; //三角带单元集
// supporting structures for more complex topological operations
// built only when necessary
vtkCellTypes *Cells; //关联上述各种单元集,它是获取Cell到Points引用关系的前提
vtkCellLinks *Links; //获取Point到Cells引用关系的前提
如果要处理点和单元的引用关系,需要先初始化Cells和Links这两个变量,即调用
分别调用BuildLinks和调用BuildCells,与此相反去掉关联的函数分别为DeleteLinks和DeleteCells