![]() |
|
|||
File indexing completed on 2025-07-09 07:49:36
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 <cstddef> 0012 #include <string> 0013 0014 namespace Acts { 0015 0016 class Portal; 0017 class TrackingVolume; 0018 class GeometryContext; 0019 0020 /// @class PortalShellBase 0021 /// The portal shell of a volume is the set of portals that describes 0022 /// connections "outside" of the volume. Which boundary surfaces of a volume are 0023 /// included in the shell depends on the volume. Portal shells are only used 0024 /// during geometry construction, and are not part of the final geometry 0025 /// description. 0026 /// 0027 /// This class is the base class for all portal shells 0028 class PortalShellBase { 0029 public: 0030 /// Virtual destructor 0031 virtual ~PortalShellBase() = default; 0032 0033 /// Fill the open slots of the shell with a @c TrivialPortalLink 0034 /// to the given @p volume. 0035 /// @param volume The volume to connect 0036 virtual void fill(TrackingVolume& volume) = 0; 0037 0038 /// Get the number of portals in the shell. This number depends on the volume 0039 /// type 0040 /// @return The number of portals in the shell 0041 virtual std::size_t size() const = 0; 0042 0043 /// Instruct the shell to register the portals with the volume, handing over 0044 /// shared ownership in the process. 0045 /// @note The target volume depends on the shell type, e.g. composite shells 0046 /// like the @c CylinerStackPortalShell register portals to the *correct* 0047 /// volumes. 0048 virtual void applyToVolume() = 0; 0049 0050 /// Check if a portal is *valid*, e.g. if non of the portals has two 0051 /// unconnected sides. 0052 /// @return True if the shell is valid, false otherwise 0053 virtual bool isValid() const = 0; 0054 0055 /// Get a label for the portal shell for debugging purposes 0056 /// @return A label for the portal shell 0057 virtual std::string label() const = 0; 0058 }; 0059 0060 } // namespace Acts
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |