[vtkusers] Adopt an example
Andy Bauer
andy.bauer at kitware.com
Sun Aug 8 16:16:07 EDT 2010
Hi David,
I was checking out the broken vtkKdTree example at
http://www.vtk.org/Wiki/VTK/Examples/Broken/vtkKdTree_BuildLocator_ClosestPointand
it seems that the BuildLocator() method was more intended for use as
an
ordering of cells by centroid so that they can be order by a viewing
direction. I'm not sure what was intended for this example but it shouldn't
be used as an example of a point locator. In any case, below is something
you may want to put on the wiki. I'll leave it up to you to decide how it
should go in.
Andy
=========================
The BuildLocator() method in vtkKdTree can be used to order cells from a
viewing direction. The vtkKdTree region Ids are returned
from the ViewOrderAllRegions() method sorted from front to back in the
specified direction.
==ClosestPoint.cxx==
<source lang="cpp">
#include <vtkSmartPointer.h>
#include <vtkSphereSource.h>
#include <vtkIntArray.h>
#include <vtkKdTree.h>
int main(int argc, char *argv[])
{
// Create a polydata source
vtkSmartPointer<vtkSphereSource> sphere =
vtkSmartPointer<vtkSphereSource>::New();
sphere->SetThetaResolution(30);
sphere->SetPhiResolution(40);
//Create the tree
vtkSmartPointer<vtkKdTree> kDTree =
vtkSmartPointer<vtkKdTree>::New();
//kDTree->SetNumberOfRegionsOrMore(3);
kDTree->AddDataSet(sphere->GetOutput());
kDTree->BuildLocator();
// Order the cells based on a viewing direction
double direction[3] = {2, 1, 0};
vtkSmartPointer<vtkIntArray> cellOrder =
vtkSmartPointer<vtkIntArray>::New();
kDTree->ViewOrderAllRegionsInDirection(direction, cellOrder);
cout << "Order of vtkKdTree regions is:\n";
for(vtkIdType
i=0;i<cellOrder->GetNumberOfTuples()*cellOrder->GetNumberOfComponents();i++)
{
cout << cellOrder->GetValue(i) << endl;
}
return EXIT_SUCCESS;
}
</source>
==CMakeLists.txt==
<source lang="cmake">
cmake_minimum_required(VERSION 2.6)
PROJECT(KDTree)
FIND_PACKAGE(VTK REQUIRED)
INCLUDE(${VTK_USE_FILE})
ADD_EXECUTABLE(ClosestPoint ClosestPoint.cxx)
TARGET_LINK_LIBRARIES(ClosestPoint vtkHybrid)
</source>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20100808/c7675e77/attachment.htm>
More information about the vtkusers
mailing list