ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Acts::MultiNavigationPolicy Class Referencefinal

Combined navigation policy that calls all contained other navigation policies. More...

#include <Acts/Navigation/MultiNavigationPolicy.hpp>

Inheritance diagram for Acts::MultiNavigationPolicy:
[legend]
Collaboration diagram for Acts::MultiNavigationPolicy:
[legend]

Public Member Functions

template<typename... Policies>
 MultiNavigationPolicy (std::unique_ptr< Policies >... policies)
 Constructor from multiple unique_ptr policies.
 MultiNavigationPolicy (std::vector< std::unique_ptr< INavigationPolicy > > &&policies)
 Constructor from a vector of navigation policies.
void connect (NavigationDelegate &delegate) const override
 Connect this policy to a navigation delegate.
std::span< const std::unique_ptr< INavigationPolicy > > policies () const
 Access the contained navigation policies.
void visit (const std::function< void(const INavigationPolicy &)> &visitor) const override
 Visit this policy first, and then all child policies one by one.
Public Member Functions inherited from Acts::INavigationPolicy
virtual ~INavigationPolicy ()=default
 Virtual destructor so policies can be held through this base class.

Additional Inherited Members

Static Public Member Functions inherited from Acts::INavigationPolicy
static void noopInitializeCandidates (const GeometryContext &, const NavigationArguments &, const AppendOnlyNavigationStream &, const Logger &)
 Noop update function that is suitable as a default for default navigation delegates.
Protected Member Functions inherited from Acts::INavigationPolicy
template<NavigationPolicyConcept T>
void connectDefault (NavigationDelegate &delegate) const
 Internal helper function for derived classes that conform to the concept and have a conventional updateState method.

Detailed Description

Combined navigation policy that calls all contained other navigation policies.

This class manages multiple navigation policies and executes them sequentially to populate the navigation stream with candidates.

Constructor & Destructor Documentation

◆ MultiNavigationPolicy() [1/2]

template<typename... Policies>
Acts::MultiNavigationPolicy::MultiNavigationPolicy ( std::unique_ptr< Policies >... policies)
explicit

Constructor from multiple unique_ptr policies.

Template Parameters
PoliciesThe types of the navigation policies
Parameters
policiesUnique pointers to navigation policies

◆ MultiNavigationPolicy() [2/2]

Acts::MultiNavigationPolicy::MultiNavigationPolicy ( std::vector< std::unique_ptr< INavigationPolicy > > && policies)
explicit

Constructor from a vector of navigation policies.

Parameters
policiesVector of unique pointers to navigation policies

Member Function Documentation

◆ connect()

void Acts::MultiNavigationPolicy::connect ( NavigationDelegate & delegate) const
overridevirtual

Connect this policy to a navigation delegate.

Parameters
delegateThe navigation delegate to connect to

Implements Acts::INavigationPolicy.

◆ policies()

std::span< const std::unique_ptr< INavigationPolicy > > Acts::MultiNavigationPolicy::policies ( ) const

Access the contained navigation policies.

Returns
Span of const unique pointers to the navigation policies

◆ visit()

void Acts::MultiNavigationPolicy::visit ( const std::function< void(const INavigationPolicy &)> & visitor) const
overridevirtual

Visit this policy first, and then all child policies one by one.

Parameters
visitorThe function to call for each policy

Reimplemented from Acts::INavigationPolicy.