本文整理汇总了C++中vtkSmartPointer::FindPointsWithinRadius方法的典型用法代码示例。如果您正苦于以下问题:C++ vtkSmartPointer::FindPointsWithinRadius方法的具体用法?C++ vtkSmartPointer::FindPointsWithinRadius怎么用?C++ vtkSmartPointer::FindPointsWithinRadius使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类vtkSmartPointer
的用法示例。
在下文中一共展示了vtkSmartPointer::FindPointsWithinRadius方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
void mitk::UnstructuredGridClusteringFilter::ExpandCluster(int id, vtkIdList *pointIDs, vtkPoints* cluster, vtkPoints* inpPoints)
{
std::vector<int> x;
x.push_back(id);
cluster->InsertNextPoint(inpPoints->GetPoint(id)); //add P to cluster C
clusterMember[id] = true;
vtkSmartPointer<vtkPoints> neighbours = vtkSmartPointer<vtkPoints>::New(); //same N as in other function
inpPoints->GetPoints(pointIDs,neighbours);
for(int i=0; i<pointIDs->GetNumberOfIds();i++) //for each point P' in N
{
if(!visited[pointIDs->GetId(i)]) //if P' is not visited
{
visited[pointIDs->GetId(i)] = true; //mark P' as visited
vtkSmartPointer<vtkIdList> idList = vtkSmartPointer<vtkIdList>::New(); //represent N'
pLocator->FindPointsWithinRadius(m_eps, inpPoints->GetPoint(pointIDs->GetId(i)), idList); //N' = D.regionQuery(P', eps)
if(idList->GetNumberOfIds() >= m_MinPts) //if sizeof(N') >= MinPts
{
for(int j=0; j<idList->GetNumberOfIds();j++) //N = N joined with N'
{
if(idList->GetId(j)<inpPoints->GetNumberOfPoints())//a litte bit hacked ?!
{
pointIDs->InsertNextId(idList->GetId(j));
}
}
}
}
if(!clusterMember[pointIDs->GetId(i)]) //if P' is not yet member of any cluster
{
if(pointIDs->GetId(i)<inpPoints->GetNumberOfPoints()){
clusterMember[pointIDs->GetId(i)] = true;
x.push_back(pointIDs->GetId(i));
cluster->InsertNextPoint(inpPoints->GetPoint(pointIDs->GetId(i))); //add P' to cluster C
}
}
}
clustersPointsIDs.push_back(x);
}