Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:10:55

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/Navigation/NavigationStream.hpp"
0013 #include "Acts/Surfaces/BoundaryTolerance.hpp"
0014 #include "Acts/Utilities/Delegate.hpp"
0015 
0016 namespace Acts {
0017 
0018 class NavigationStream;
0019 class Logger;
0020 
0021 /// Struct that serves as the argument to the navigation delegate.
0022 /// It is not supposed to be used as an lvalue.
0023 struct NavigationArguments {
0024   Vector3 position;
0025   Vector3 direction;
0026 
0027   BoundaryTolerance tolerance = BoundaryTolerance::None();
0028 };
0029 
0030 /// Central alias for the navigation delegate. This type is owning to support
0031 /// (type-erased) navigation delegate chains (i.e. multiple policies).
0032 using NavigationDelegate = OwningDelegate<void(
0033     const NavigationArguments&, AppendOnlyNavigationStream&, const Logger&)>;
0034 
0035 }  // namespace Acts