22 std::vector<actsvg::svg::object> sheets;
26 volume._name = cOptions.
name;
34 volume._surfaces = surfaces;
35 volume._surface_grid =
grid;
36 volume._grid_associations = associations;
40 actsvg::svg::object module_sheet;
41 actsvg::svg::object grid_sheet;
42 actsvg::svg::object xy_layer;
43 actsvg::svg::object zr_layer;
49 module_sheet = actsvg::display::endcap_sheet(
50 cOptions.
name +
"_modules", volume, {800, 800},
51 actsvg::display::e_module_info);
54 grid_sheet = actsvg::display::endcap_sheet(cOptions.
name +
"_grid",
56 actsvg::display::e_grid_info);
59 if (cOptions.moduleInfo) {
60 module_sheet = actsvg::display::barrel_sheet(
61 cOptions.name +
"_modules", volume, {800, 800},
62 actsvg::display::e_module_info);
64 if (cOptions.gridInfo) {
65 grid_sheet = actsvg::display::barrel_sheet(cOptions.name +
"_grid",
67 actsvg::display::e_grid_info);
72 actsvg::views::z_r z_r_view;
73 actsvg::views::x_y x_y_view;
75 if (
layer.surfaceArray() !=
nullptr) {
78 xy_layer._id = cOptions.
name +
"_xy_view";
81 zr_layer._id = cOptions.name +
"_zr_view";
86 for (
const auto& sf :
layer.surfaceArray()->surfaces()) {
96 actsvg::proto::surface<std::vector<Acts::Vector3>> projSurface;
97 projSurface._vertices = sf->polyhedronRepresentation(
gctx, 1
u).vertices;
99 if (phi >= cOptions.phiRange[0] and phi <= cOptions.phiRange[1]) {
104 if (z >= cOptions.zRange[0] and z <= cOptions.zRange[1]) {
110 avgRadius /=
layer.surfaceArray()->surfaces().size();
113 if (cOptions.labelProjection) {
114 ActsScalar xEnd = avgRadius * std::cos(cOptions.labelGauge);
115 ActsScalar yEnd = avgRadius * std::sin(cOptions.labelGauge);
116 xy_layer.add_object(
measure(0., 0., xEnd, yEnd,
"r", avgRadius,
"mm"));
121 sheets.push_back(module_sheet);
122 sheets.push_back(grid_sheet);
123 sheets.push_back(xy_layer);
124 sheets.push_back(zr_layer);