本文整理汇总了C++中Visualizer::Show方法的典型用法代码示例。如果您正苦于以下问题:C++ Visualizer::Show方法的具体用法?C++ Visualizer::Show怎么用?C++ Visualizer::Show使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Visualizer
的用法示例。
在下文中一共展示了Visualizer::Show方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main()
{
constexpr int nSamples = 512;
SimpleSphere sphere("Visualizer Sphere", 15., 20., 0., 2 * PI / 3., PI / 4., PI / 6.);
AOS3D<Precision> points(nSamples);
for (int i = 0; i < nSamples; ++i) {
Vector3D<Precision> sample;
do {
sample = volumeUtilities::SamplePoint(Vector3D<Precision>(20, 20, 20));
} while (!sphere.Contains(sample));
points.set(i, sample);
}
points.resize(nSamples);
Visualizer visualizer;
visualizer.AddVolume(sphere);
visualizer.AddPoints(points);
visualizer.Show();
return 0;
}
示例2: main
int main(int argc, char *argv[])
{
OPTION_INT(ntracks, 10000);
OPTION_INT(nreps, 3);
OPTION_STRING(geometry, "navBench");
OPTION_STRING(logvol, "world");
OPTION_DOUBLE(bias, 0.8f);
#ifdef VECGEOM_ROOT
OPTION_BOOL(vis, false);
#endif
// default values used above are always printed. If help true, stop now, so user will know which options
// are available, and what the default values are.
OPTION_BOOL(help, false);
if (help) return 0;
if (geometry.compare("navBench") == 0) {
const VPlacedVolume *world = SetupGeometry();
#ifdef VECGEOM_ROOT
// Exporting to ROOT file
RootGeoManager::Instance().ExportToROOTGeometry(world, "navBench.root");
RootGeoManager::Instance().Clear();
#endif
}
// Now try to read back in. This is needed to make comparisons to VecGeom easily,
// since it builds VecGeom geometry based on the ROOT geometry and its TGeoNodes.
#ifdef VECGEOM_ROOT
auto rootgeom = geometry + ".root";
RootGeoManager::Instance().set_verbose(0);
RootGeoManager::Instance().LoadRootGeometry(rootgeom.c_str());
#endif
#ifdef VECGEOM_GEANT4
auto g4geom = geometry + ".gdml";
G4GeoManager::Instance().LoadG4Geometry(g4geom.c_str());
#endif
// Visualization
#ifdef VECGEOM_ROOT
if (vis) { // note that visualization block returns, excluding the rest of benchmark
Visualizer visualizer;
const VPlacedVolume *world = GeoManager::Instance().GetWorld();
world = GeoManager::Instance().FindPlacedVolume(logvol.c_str());
visualizer.AddVolume(*world);
Vector<Daughter> const *daughters = world->GetLogicalVolume()->GetDaughtersp();
for (size_t i = 0; i < daughters->size(); ++i) {
VPlacedVolume const *daughter = (*daughters)[i];
Transformation3D const &trf1 = *(daughter->GetTransformation());
visualizer.AddVolume(*daughter, trf1);
// Vector<Daughter> const* daughters2 = daughter->GetLogicalVolume()->daughtersp();
// for(int ii=0; ii<daughters2->size(); ++ii) {
// VPlacedVolume const* daughter2 = (*daughters2)[ii];
// Transformation3D const& trf2 = *(daughter2->transformation());
// Transformation3D comb = trf1;
// comb.MultiplyFromRight(trf2);
// visualizer.AddVolume(*daughter2, comb);
// }
}
visualizer.Show();
return 0;
}
#endif
std::cout << "\n*** Validating VecGeom navigation...\n";
const LogicalVolume *startVolume = GeoManager::Instance().GetWorld()->GetLogicalVolume();
if (logvol.compare("world") != 0) {
startVolume = GeoManager::Instance().FindLogicalVolume(logvol.c_str());
}
std::cout << "NavigationBenchmark: logvol=<" << logvol << ">, startVolume=<"
<< (startVolume ? startVolume->GetLabel() : "NULL") << ">\n";
if (startVolume) std::cout << *startVolume << "\n";
// prepare tracks to be used for validation
int np = Min(ntracks, 1000); // no more than 1000 points used for validation
SOA3D<Precision> points(np);
SOA3D<Precision> dirs(np);
SOA3D<Precision> locpts(np);
vecgeom::volumeUtilities::FillGlobalPointsAndDirectionsForLogicalVolume(startVolume, locpts, points, dirs, bias, np);
Precision *maxSteps = (Precision *)vecCore::AlignedAlloc(32, sizeof(Precision) * np);
for (int i = 0; i < np; ++i)
maxSteps[i] = 10. * RNG::Instance().uniform();
// Must be validated before being benchmarked
bool ok = validateVecGeomNavigation(np, points, dirs, maxSteps);
if (!ok) {
std::cout << "VecGeom validation failed." << std::endl;
return 1;
}
std::cout << "VecGeom validation passed." << std::endl;
// on mic.fnal.gov CPUs, loop execution takes ~70sec for ntracks=10M
while (ntracks <= 10000) {
//.........这里部分代码省略.........