File indexing completed on 2025-01-18 09:10:53
0001
0002
0003
0004
0005
0006
0007
0008
0009 #pragma once
0010
0011 #include "Acts/Geometry/BlueprintNode.hpp"
0012 #include "Acts/Geometry/GeometryContext.hpp"
0013 #include "Acts/Geometry/PortalShell.hpp"
0014 #include "Acts/Geometry/TrackingVolume.hpp"
0015
0016 namespace Acts {
0017
0018
0019
0020
0021
0022
0023
0024
0025 class StaticBlueprintNode : public BlueprintNode {
0026 public:
0027
0028
0029 explicit StaticBlueprintNode(std::unique_ptr<TrackingVolume> volume);
0030
0031
0032
0033
0034 const std::string& name() const override;
0035
0036
0037
0038
0039 Volume& build(const BlueprintOptions& options, const GeometryContext& gctx,
0040 const Logger& logger = Acts::getDummyLogger()) override;
0041
0042
0043 PortalShellBase& connect(
0044 const BlueprintOptions& options, const GeometryContext& gctx,
0045 const Logger& logger = Acts::getDummyLogger()) override;
0046
0047
0048 void finalize(const BlueprintOptions& options, const GeometryContext& gctx,
0049 TrackingVolume& parent,
0050 const Logger& logger = Acts::getDummyLogger()) override;
0051
0052 virtual StaticBlueprintNode& setNavigationPolicyFactory(
0053 std::shared_ptr<NavigationPolicyFactory> navigationPolicyFactory);
0054
0055 const NavigationPolicyFactory* navigationPolicyFactory() const;
0056
0057 protected:
0058 void addToGraphviz(std::ostream& os) const override;
0059
0060 std::unique_ptr<TrackingVolume> m_volume;
0061
0062 std::unique_ptr<PortalShellBase> m_shell;
0063
0064 std::shared_ptr<NavigationPolicyFactory> m_navigationPolicyFactory;
0065 };
0066
0067 }