10 #include "Acts/Geometry/TrackingVolume.hpp"
11 #include "Acts/Geometry/TrackingGeometry.hpp"
13 #include "Acts/Surfaces/Surface.hpp"
14 #include "Acts/Geometry/GeometryContext.hpp"
31 ACTS_DEBUG(
">>Obj: Writer for TrackingGeometry object called.");
33 auto world = tGeometry.highestTrackingVolume();
34 if (world)
write(gctx, *world);
42 ACTS_DEBUG(
">>Obj: Writer for TrackingVolume object called.");
44 if (tVolume.confinedLayers()) {
45 ACTS_VERBOSE(
">>Obj: Layers are present, process them.");
47 for (
auto layer : tVolume.confinedLayers()->arrayObjects()) {
49 if (
layer->layerType() == Acts::navigation)
continue;
51 const std::string& volumeName = tVolume.volumeName();
53 std::shared_ptr<ObjSurfaceWriter> surfaceWriter =
nullptr;
54 for (
auto writer : m_cfg.surfaceWriters) {
56 auto writerName =
writer->name();
57 if (volumeName.find(writerName) != std::string::npos) {
59 surfaceWriter = std::move(
writer);
65 if (!surfaceWriter)
return;
67 surfaceWriter->
write(m_cfg.layerPrefix);
69 if (
layer->surfaceArray() && surfaceWriter) {
71 surfaceWriter->
write(m_cfg.sensitiveGroupPrefix);
73 for (
auto surface :
layer->surfaceArray()->surfaces()) {
74 if (surface) surfaceWriter->
write(gctx, *surface);
80 if (tVolume.confinedVolumes()) {
82 for (
auto volume : tVolume.confinedVolumes()->arrayObjects()) {
83 write(gctx, *volume.get());