EBGeometry
Compact, header-only C++ library for fast evaluation of signed distance functions
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
EBGeometry::TriangleSoAT< T, W >::LaneSource< V > Struct Template Reference

The triangle accessor TriangleDistance::signedDistance() reads lanes [m_offset, m_offset + lanes of V) through: V = T reads one lane, V = SIMD::Pack<T, N> loads N lanes (m_offset a multiple of N, so the loads are aligned). More...

#include <EBGeometry_TriangleSoA.hpp>

Collaboration diagram for EBGeometry::TriangleSoAT< T, W >::LaneSource< V >:
Collaboration graph
[legend]

Public Member Functions

V fetch (const T *a_lanes) const noexcept
 One value per lane, from the array starting at a_lanes.
 
TriangleDistance::Vec3V< V > vertex (const size_t a_k) const noexcept
 Vertex position.
 
TriangleDistance::Vec3V< V > normal () const noexcept
 Face normal.
 
TriangleDistance::Vec3V< V > vertexNormal (const size_t a_k) const noexcept
 Vertex pseudonormal.
 
TriangleDistance::Vec3V< V > edgeNormal (const size_t a_k) const noexcept
 Edge pseudonormal.
 

Public Attributes

const TriangleSoAT * m_group
 The group.
 
size_t m_offset
 First lane.
 

Detailed Description

template<class T, size_t W>
template<class V>
struct EBGeometry::TriangleSoAT< T, W >::LaneSource< V >

The triangle accessor TriangleDistance::signedDistance() reads lanes [m_offset, m_offset + lanes of V) through: V = T reads one lane, V = SIMD::Pack<T, N> loads N lanes (m_offset a multiple of N, so the loads are aligned).

Template Parameters
VScalar or pack type.

Member Function Documentation

◆ edgeNormal()

template<class T , size_t W>
template<class V >
TriangleDistance::Vec3V< V > EBGeometry::TriangleSoAT< T, W >::LaneSource< V >::edgeNormal ( const size_t  a_k) const
inlinenoexcept

Edge pseudonormal.

Parameters
[in]a_kEdge, 0 to 2.
Returns
Its lanes.

◆ fetch()

template<class T , size_t W>
template<class V >
V EBGeometry::TriangleSoAT< T, W >::LaneSource< V >::fetch ( const T *  a_lanes) const
inlinenoexcept

One value per lane, from the array starting at a_lanes.

Parameters
[in]a_lanesW values.
Returns
The value (or pack of values) at m_offset.

◆ normal()

template<class T , size_t W>
template<class V >
TriangleDistance::Vec3V< V > EBGeometry::TriangleSoAT< T, W >::LaneSource< V >::normal ( ) const
inlinenoexcept

Face normal.

Returns
Its lanes.

◆ vertex()

template<class T , size_t W>
template<class V >
TriangleDistance::Vec3V< V > EBGeometry::TriangleSoAT< T, W >::LaneSource< V >::vertex ( const size_t  a_k) const
inlinenoexcept

Vertex position.

Parameters
[in]a_kVertex, 0 to 2.
Returns
Its lanes.

◆ vertexNormal()

template<class T , size_t W>
template<class V >
TriangleDistance::Vec3V< V > EBGeometry::TriangleSoAT< T, W >::LaneSource< V >::vertexNormal ( const size_t  a_k) const
inlinenoexcept

Vertex pseudonormal.

Parameters
[in]a_kVertex, 0 to 2.
Returns
Its lanes.

The documentation for this struct was generated from the following file: