17 #include "vtkCompositePolyDataMapper2.h" 18 #include "vtkMaskPoints.h" 22 #include "vtkPointData.h" 23 #include "vtkRenderWindow.h" 24 #include "vtkRenderWindowInteractor.h" 25 #include "vtkRenderer.h" 26 #include "vtkSmartPointer.h" 27 #include "vtkTestUtilities.h" 28 #include "vtkThreshold.h" 29 #include "vtkUnstructuredGrid.h" 40 renWin = vtkSmartPointer<vtkRenderWindow>::New();
41 iren = vtkSmartPointer<vtkRenderWindowInteractor>::New();
42 reader = vtkSmartPointer<vtkPGenericIOReader>::New();
43 haloFinder = vtkSmartPointer<vtkPANLHaloFinder>::New();
45 maskPoints = vtkSmartPointer<vtkMaskPoints>::New();
46 mapper = vtkSmartPointer<vtkCompositePolyDataMapper2>::New();
48 vtkSmartPointer<vtkRenderWindow>
renWin;
49 vtkSmartPointer<vtkRenderWindowInteractor>
iren;
50 vtkSmartPointer<vtkPGenericIOReader>
reader;
54 vtkSmartPointer<vtkCompositePolyDataMapper2>
mapper;
59 std::set<std::string> arrayNames;
60 arrayNames.insert(
"vx");
61 arrayNames.insert(
"vy");
62 arrayNames.insert(
"vz");
63 arrayNames.insert(
"id");
64 arrayNames.insert(
"fof_halo_tag");
70 std::set<std::string> arrayNames;
71 arrayNames.insert(
"fof_halo_tag");
72 arrayNames.insert(
"fof_halo_com");
73 arrayNames.insert(
"fof_halo_count");
74 arrayNames.insert(
"fof_halo_mass");
75 arrayNames.insert(
"fof_halo_mean_velocity");
76 arrayNames.insert(
"fof_velocity_dispersion");
83 arrayNames.insert(
"fof_center");
89 if (static_cast<size_t>(pd->GetNumberOfArrays()) != arrays.size())
91 std::cerr <<
"Wrong number of arrays. There should be " << arrays.size() <<
" and there are " 92 << pd->GetNumberOfArrays() << std::endl;
95 for (std::set<std::string>::iterator itr = arrays.begin(); itr != arrays.end(); ++itr)
97 if (!pd->HasArray((*itr).c_str()))
99 std::cerr <<
"Point data does not have array: " << *itr << std::endl;
108 bool findSubhalos =
false)
111 char* fname = vtkTestUtilities::ExpandDataFileName(argc, argv,
"genericio/m000.499.allparticles");
113 testObjects.
reader->SetFileName(fname);
114 testObjects.
reader->UpdateInformation();
115 testObjects.
reader->SetXAxisVariableName(
"x");
116 testObjects.
reader->SetYAxisVariableName(
"y");
117 testObjects.
reader->SetZAxisVariableName(
"z");
118 testObjects.
reader->SetPointArrayStatus(
"vx", 1);
119 testObjects.
reader->SetPointArrayStatus(
"vy", 1);
120 testObjects.
reader->SetPointArrayStatus(
"vz", 1);
121 testObjects.
reader->SetPointArrayStatus(
"id", 1);
122 testObjects.
reader->Update();
126 testObjects.
haloFinder->SetInputConnection(testObjects.
reader->GetOutputPort());
128 testObjects.
haloFinder->SetParticleMass(13070871810);
131 testObjects.
haloFinder->SetCenterFindingMode(centerFinding);
137 testObjects.
haloFinder->SetRunSubHaloFinder(1);
138 testObjects.
haloFinder->SetMinFOFSubhaloSize(7000);
139 testObjects.
haloFinder->SetMinCandidateSize(20);
148 0, 0, 0, vtkDataObject::FIELD_ASSOCIATION_POINTS,
"fof_halo_tag");
153 testObjects.
maskPoints->SetMaximumNumberOfPoints(
154 testObjects.
haloFinder->GetOutput(0)->GetNumberOfPoints());
157 testObjects.
maskPoints->SingleVertexPerCellOn();
161 testObjects.
mapper->SetInputConnection(testObjects.
maskPoints->GetOutputPort());
162 testObjects.
mapper->Update();
164 vtkNew<vtkActor> actor;
165 actor->SetMapper(testObjects.
mapper);
167 vtkNew<vtkRenderer> renderer;
168 renderer->AddActor(actor.GetPointer());
170 testObjects.
renWin->AddRenderer(renderer.GetPointer());
171 testObjects.
renWin->SetSize(300, 300);
173 testObjects.
iren->SetRenderWindow(testObjects.
renWin);
vtkSmartPointer< vtkPANLHaloFinder > haloFinder
std::set< std::string > getFirstOutputArrays()
bool pointDataHasTheseArrays(vtkPointData *pd, const std::set< std::string > &arrays)
vtkSmartPointer< vtkRenderWindowInteractor > iren
std::set< std::string > getHaloSummaryWithCenterInfoArrays()
vtkSmartPointer< vtkPGenericIOReader > reader
HaloFinderTestVTKObjects SetupHaloFinderTest(int argc, char *argv[], vtkPANLHaloFinder::CenterFindingType centerFinding=vtkPANLHaloFinder::NONE, bool findSubhalos=false)
HaloFinderTestVTKObjects()
vtkSmartPointer< vtkMaskPoints > maskPoints
std::set< std::string > getHaloSummaryArrays()
vtkSmartPointer< vtkRenderWindow > renWin
vtkSmartPointer< vtkCompositePolyDataMapper2 > mapper
vtkSmartPointer< vtkThreshold > onlyPointsInHalos