Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-10-30 07:54:53

0001 // This file is part of the ACTS project.
0002 //
0003 // Copyright (C) 2016 CERN for the benefit of the ACTS project
0004 //
0005 // This Source Code Form is subject to the terms of the Mozilla Public
0006 // License, v. 2.0. If a copy of the MPL was not distributed with this
0007 // file, You can obtain one at https://mozilla.org/MPL/2.0/.
0008 
0009 #pragma once
0010 
0011 #include "Acts/Definitions/Algebra.hpp"
0012 #include "Acts/Geometry/GeometryContext.hpp"
0013 #include "Acts/Geometry/GeometryHierarchyMap.hpp"
0014 #include "ActsPlugins/ActSVG/IndexedSurfacesSvgConverter.hpp"
0015 #include "ActsPlugins/ActSVG/SvgUtils.hpp"
0016 #include <actsvg/meta.hpp>
0017 
0018 #include <tuple>
0019 #include <vector>
0020 
0021 namespace Acts {
0022 
0023 class SurfaceArray;
0024 
0025 }  // namespace Acts
0026 
0027 namespace ActsPlugins::Svg::SurfaceArrayConverter {
0028 
0029 /// Nested options struct
0030 struct Options {
0031   /// Hierarchy map of styles
0032   Acts::GeometryHierarchyMap<Style> surfaceStyles;
0033   /// The Grid converter options
0034   GridConverter::Options gridOptions;
0035 };
0036 
0037 /// Convert a surface array into needed constituents
0038 ///
0039 /// @param gtcx is the geometry context of the conversion call
0040 /// @param surfaceArray is the surface to convert
0041 /// @param cOptions the conversion options
0042 ///
0043 /// @note the type of view is auto-generated from the binning information,
0044 ///       it transforms the surface array into an indexed array of surfaces
0045 ///       and then uses these proto objects, one can thus directly use the
0046 ///       view function of the indexed surface grid
0047 ///
0048 /// @return a collection of proto surface object and a grid, and associations
0049 ProtoIndexedSurfaceGrid convert(const Acts::GeometryContext& gctx,
0050                                 const Acts::SurfaceArray& surfaceArray,
0051                                 const Options& cOptions = Options());
0052 
0053 }  // namespace ActsPlugins::Svg::SurfaceArrayConverter