|
| template<typename track_t, typename nav_state_t, typename context_t> |
| constexpr void | init (const track_t &track, nav_state_t &navigation, const navigation::config &cfg, const context_t &ctx, const bool resolve_overstepping=false) const |
| | Helper method to initialize a volume.
|
| template<typename track_t, typename nav_state_t, typename context_t> |
| constexpr bool | update (const track_t &track, nav_state_t &navigation, const navigation::config &cfg, const context_t &ctx) const |
| | Complete update of the navigation flow.
|
template<typename navigator_impl_t>
class detray::navigator_base< navigator_impl_t >
Navigation base class - interface towards the propagator.
The navigator is initialized around a detector object, but is itself agnostic to the detectors's object/primitive types. Within a detector volume, the navigatior will perform a local navigation based on the geometry acceleration structure(s) that are provided by the volume. Once the local navigation is resolved, it moves to the next volume by a portal. To this end, it requires a link to the [next] navigation volume in every candidate that is computed by intersection from the detector objects: A module surface must link back to its mother volume, while a portal surface links to the next volume in the direction of the track.
The navigation state is set up by an init() call and then runs an update() after the track state changed.
- Template Parameters
-
| navigator_impl_t | implementation of the navigation update |
template<typename navigator_impl_t>
template<typename track_t, typename nav_state_t, typename context_t>
Complete update of the navigation flow.
Restores 'full trust' state to the candidates cache and checks whether the track stepped onto a portal and a volume switch is due. If so, or when the previous update according to the given trust level failed to restore trust, it performs a complete reinitialization of the navigation.
- Template Parameters
-
| track_t | type of track, needs to provide pos() and dir() methods |
- Parameters
-
| track | access to the track parameters |
| navigation | State to update after the track changes. |
| cfg | the navigation configuration |
| ctx | the geometry context |
- Returns
- a heartbeat to indicate if the navigation is still alive