MCPcopy Create free account
hub / github.com/Kitware/VTK / TestBSPTree

Function TestBSPTree

Filters/FlowPaths/Testing/Cxx/TestBSPTree.cxx:42–239  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

40// #define TESTING_LOOP
41
42int TestBSPTree(int argc, char* argv[])
43{
44 // Standard rendering classes
45 vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New();
46 vtkSmartPointer<vtkRenderWindow> renWin = vtkSmartPointer<vtkRenderWindow>::New();
47 vtkSmartPointer<vtkRenderWindowInteractor> iren =
48 vtkSmartPointer<vtkRenderWindowInteractor>::New();
49 renWin->AddRenderer(renderer);
50 iren->SetRenderWindow(renWin);
51
52 vtkIdType maxI = 0;
53 int bestSeed = 0;
54 for (int s = 931; s <= 931; s++)
55 {
56 renderer->RemoveAllViewProps();
57
58 //
59 // Create random point cloud
60 //
61 vtkMath::RandomSeed(s);
62 vtkSmartPointer<vtkPointSource> points = vtkSmartPointer<vtkPointSource>::New();
63 points->SetRadius(0.05);
64 points->SetNumberOfPoints(30);
65
66 //
67 // Create small sphere
68 //
69 vtkSmartPointer<vtkSphereSource> sphere = vtkSmartPointer<vtkSphereSource>::New();
70 sphere->SetRadius(0.0125);
71 sphere->SetCenter(0.0, 0.0, 0.0);
72 sphere->SetThetaResolution(16);
73 sphere->SetPhiResolution(16);
74
75 //
76 // Glyph many small spheres over point cloud
77 //
78 vtkSmartPointer<vtkGlyph3D> glyph = vtkSmartPointer<vtkGlyph3D>::New();
79 glyph->SetInputConnection(0, points->GetOutputPort(0));
80 glyph->SetSourceConnection(sphere->GetOutputPort(0));
81 glyph->SetScaling(0);
82 glyph->Update();
83
84 double bounds[6];
85 glyph->GetOutput()->GetBounds(bounds);
86 vtkBoundingBox box(bounds);
87 double tol = box.GetDiagonalLength() / 1E6;
88
89 //
90 // Intersect Ray with BSP tree full of spheres
91 //
92 vtkSmartPointer<vtkModifiedBSPTree> bspTree = vtkSmartPointer<vtkModifiedBSPTree>::New();
93 bspTree->SetDataSet(glyph->GetOutput(0));
94 bspTree->SetMaxLevel(12);
95 bspTree->SetNumberOfCellsPerNode(16);
96 bspTree->BuildLocator();
97
98 vtkSmartPointer<vtkPoints> verts = vtkSmartPointer<vtkPoints>::New();
99 vtkSmartPointer<vtkIdList> cellIds = vtkSmartPointer<vtkIdList>::New();

Callers

nothing calls this directly

Calls 15

vtkRegressionTestImageFunction · 0.85
SetThetaResolutionMethod · 0.80
SetPhiResolutionMethod · 0.80
SetVertsMethod · 0.80
AddIDMethod · 0.80
SetScaleFactorMethod · 0.80
SetMultiSamplesMethod · 0.80
GetActiveCameraMethod · 0.80
SetViewUpMethod · 0.80
RenderMethod · 0.65
NewFunction · 0.50
AddRendererMethod · 0.45

Tested by

no test coverage detected