ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
detray::cuboid_portal_generator< detector_t > Class Template Referencefinal

Generates a portal box around a volume that already contains surfaces. More...

#include <detray/builders/cuboid_portal_generator.hpp>

Inheritance diagram for detray::cuboid_portal_generator< detector_t >:
[legend]
Collaboration diagram for detray::cuboid_portal_generator< detector_t >:
[legend]

Public Member Functions

 cuboid_portal_generator (const scalar_type env)
 Use.
void clear () override
 Clear all data in the factory.
auto operator() (typename detector_t::volume_type &volume, typename detector_t::surface_lookup_container &surfaces, typename detector_t::transform_container &transforms, typename detector_t::mask_container &masks, typename detector_t::geometry_context ctx={}) -> dindex_range override
 Create minimum aabbs around all surfaces that are passed and then construct world portals from the global bounding box.
auto push_back (std::vector< surface_data< detector_t > > &&) -> void override
 Ignore inserted surfaces; this factory derives portals from the volume's existing surfaces when invoked.
void push_back (surface_data< detector_t > &&) override
 Add data to the factory.
auto size () const -> dindex override
Public Member Functions inherited from detray::surface_factory_interface< detector_t >
virtual dindex size () const =0
virtual void push_back (std::vector< surface_data< detector_t > > &&data)=0

Additional Inherited Members

Public Types inherited from detray::surface_factory_interface< detector_t >
using navigation_link = typename detector_t::surface_type::navigation_link
 Navigation link type used by surfaces produced by the factory.
Protected Member Functions inherited from detray::surface_factory_interface< detector_t >
template<typename container_t, typename... Args>
dindex insert_in_container (container_t &cont, const typename container_t::value_type value, const dindex idx, Args &&...args) const
 Insert a value in a container at a specific index.

Detailed Description

template<concepts::detector detector_t>
class detray::cuboid_portal_generator< detector_t >

Generates a portal box around a volume that already contains surfaces.

Template Parameters
detector_tthe type of detector the volume belongs to.

Constructor & Destructor Documentation

◆ cuboid_portal_generator()

template<concepts::detector detector_t>
detray::cuboid_portal_generator< detector_t >::cuboid_portal_generator ( const scalar_type env)
explicit

Use.

Parameters
envas portal envelope

Member Function Documentation

◆ clear()

template<concepts::detector detector_t>
void detray::cuboid_portal_generator< detector_t >::clear ( )
overridevirtual

Clear all data in the factory.

Implements detray::surface_factory_interface< detector_t >.

◆ operator()()

template<concepts::detector detector_t>
auto detray::cuboid_portal_generator< detector_t >::operator() ( typename detector_t::volume_type & volume,
typename detector_t::surface_lookup_container & surfaces,
typename detector_t::transform_container & transforms,
typename detector_t::mask_container & masks,
typename detector_t::geometry_context ctx = {} )->dindex_range
overridevirtual

Create minimum aabbs around all surfaces that are passed and then construct world portals from the global bounding box.

Parameters
volumethe volume the portals need to be added to.
surfacesthe surface collection to wrap and to add the portals to
transformsthe transforms of the surfaces.
masksthe masks of the surfaces.
ctxthe geometry context (not needed for portals).
Returns
The half-open range of newly appended portal surfaces.

Implements detray::surface_factory_interface< detector_t >.

◆ push_back()

template<concepts::detector detector_t>
void detray::cuboid_portal_generator< detector_t >::push_back ( surface_data< detector_t > && data)
overridevirtual

Add data to the factory.

Parameters
dataSurface record to append.

Implements detray::surface_factory_interface< detector_t >.

◆ size()

template<concepts::detector detector_t>
auto detray::cuboid_portal_generator< detector_t >::size ( ) const->dindex
override
Returns
the number of rectangle portals this factory will produce