17 #include "vtkCompositePolyDataMapper2.h" 18 #include "vtkMaskPoints.h" 20 #include "vtkPANLHaloFinder.h" 21 #include "vtkPGenericIOReader.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" 37 renWin = vtkSmartPointer< vtkRenderWindow >::New();
38 iren = vtkSmartPointer< vtkRenderWindowInteractor >::New();
39 reader = vtkSmartPointer< vtkPGenericIOReader >::New();
40 haloFinder = vtkSmartPointer< vtkPANLHaloFinder >::New();
42 maskPoints = vtkSmartPointer< vtkMaskPoints >::New();
43 mapper = vtkSmartPointer< vtkCompositePolyDataMapper2 >::New();
45 vtkSmartPointer< vtkRenderWindow >
renWin;
46 vtkSmartPointer< vtkRenderWindowInteractor >
iren;
47 vtkSmartPointer< vtkPGenericIOReader >
reader;
51 vtkSmartPointer< vtkCompositePolyDataMapper2 >
mapper;
56 std::set< std::string > arrayNames;
57 arrayNames.insert(
"vx");
58 arrayNames.insert(
"vy");
59 arrayNames.insert(
"vz");
60 arrayNames.insert(
"id");
61 arrayNames.insert(
"fof_halo_tag");
67 std::set< std::string > arrayNames;
68 arrayNames.insert(
"fof_halo_tag");
69 arrayNames.insert(
"fof_halo_com");
70 arrayNames.insert(
"fof_halo_count");
71 arrayNames.insert(
"fof_halo_mass");
72 arrayNames.insert(
"fof_halo_mean_velocity");
73 arrayNames.insert(
"fof_velocity_dispersion");
80 arrayNames.insert(
"fof_center");
86 if (static_cast<size_t>(pd->GetNumberOfArrays()) != arrays.size())
88 std::cerr <<
"Wrong number of arrays. There should be " << arrays.size()
89 <<
" and there are " << pd->GetNumberOfArrays() << std::endl;
92 for (std::set< std::string >::iterator itr = arrays.begin();
93 itr != arrays.end(); ++itr)
95 if (!pd->HasArray((*itr).c_str()))
97 std::cerr <<
"Point data does not have array: " << *itr << std::endl;
105 int argc,
char* argv[],
106 vtkPANLHaloFinder::CenterFindingType centerFinding = vtkPANLHaloFinder::NONE,
107 bool findSubhalos =
false)
111 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);
149 0,0,0,vtkDataObject::FIELD_ASSOCIATION_POINTS,
"fof_halo_tag");
155 testObjects.
maskPoints->SetMaximumNumberOfPoints(
156 testObjects.
haloFinder->GetOutput(0)->GetNumberOfPoints());
159 testObjects.
maskPoints->SingleVertexPerCellOn();
163 testObjects.
mapper->SetInputConnection(testObjects.
maskPoints->GetOutputPort());
164 testObjects.
mapper->Update();
166 vtkNew< vtkActor > actor;
167 actor->SetMapper(testObjects.
mapper);
169 vtkNew< vtkRenderer > renderer;
170 renderer->AddActor(actor.GetPointer());
172 testObjects.
renWin->AddRenderer(renderer.GetPointer());
173 testObjects.
renWin->SetSize(300,300);
175 testObjects.
iren->SetRenderWindow(testObjects.
renWin);
vtkSmartPointer< vtkRenderWindow > renWin
std::set< std::string > getFirstOutputArrays()
vtkSmartPointer< vtkPGenericIOReader > reader
std::set< std::string > getHaloSummaryArrays()
vtkSmartPointer< vtkMaskPoints > maskPoints
bool pointDataHasTheseArrays(vtkPointData *pd, const std::set< std::string > &arrays)
std::set< std::string > getHaloSummaryWithCenterInfoArrays()
vtkSmartPointer< vtkRenderWindowInteractor > iren
HaloFinderTestVTKObjects SetupHaloFinderTest(int argc, char *argv[], vtkPANLHaloFinder::CenterFindingType centerFinding=vtkPANLHaloFinder::NONE, bool findSubhalos=false)
vtkSmartPointer< vtkThreshold > onlyPointsInHalos
HaloFinderTestVTKObjects()
vtkSmartPointer< vtkPANLHaloFinder > haloFinder
vtkSmartPointer< vtkCompositePolyDataMapper2 > mapper