LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
lar::util::Vector3DComparison< RealType > Struct Template Reference

Class comparing 2D vectors. More...

#include "RealComparisons.h"

Public Types

using Comp_t = RealComparisons< RealType >
 Type of base value comparer. More...
 
using Comp2D_t = Vector2DComparison< typename Comp_t::Value_t >
 Type of 2D vector comparer. More...
 

Public Member Functions

constexpr Vector3DComparison (Comp_t const &comparer)
 Copy the specified comparison. More...
 
 Vector3DComparison (Comp_t &&comparer)
 Steal the specified comparison. More...
 
constexpr Vector3DComparison (RealType threshold)
 Use the specified threshold. More...
 
constexpr Comp_t comp () const
 Returns the base value comparer. More...
 
constexpr Comp2D_t comp2D () const
 Returns the 2D vector comparer. More...
 
template<typename Vect >
constexpr bool zero (Vect const &v) const
 Returns whether the specified vector is null (within tolerance). More...
 
template<typename Vect >
constexpr bool nonZero (Vect const &v) const
 Returns whether the specified vector is not null (within tolerance). More...
 
template<typename VectA , typename VectB >
constexpr bool equal (VectA const &a, VectB const &b) const
 Returns whether the specified vectors match (within tolerance). More...
 
template<typename VectA , typename VectB >
constexpr bool nonEqual (VectA const &a, VectB const &b) const
 Returns whether the specified vectors do not match (within tolerance). More...
 

Private Attributes

Comp2D_t comparer
 

Detailed Description

template<typename RealType>
struct lar::util::Vector3DComparison< RealType >

Class comparing 2D vectors.

Definition at line 193 of file RealComparisons.h.

Member Typedef Documentation

template<typename RealType >
using lar::util::Vector3DComparison< RealType >::Comp2D_t = Vector2DComparison<typename Comp_t::Value_t>

Type of 2D vector comparer.

Definition at line 199 of file RealComparisons.h.

template<typename RealType >
using lar::util::Vector3DComparison< RealType >::Comp_t = RealComparisons<RealType>

Type of base value comparer.

Definition at line 196 of file RealComparisons.h.

Constructor & Destructor Documentation

template<typename RealType >
constexpr lar::util::Vector3DComparison< RealType >::Vector3DComparison ( Comp_t const &  comparer)
inline

Copy the specified comparison.

Definition at line 202 of file RealComparisons.h.

template<typename RealType >
lar::util::Vector3DComparison< RealType >::Vector3DComparison ( Comp_t &&  comparer)
inline

Steal the specified comparison.

Definition at line 205 of file RealComparisons.h.

205 : comparer(std::move(comparer)) {}
template<typename RealType >
constexpr lar::util::Vector3DComparison< RealType >::Vector3DComparison ( RealType  threshold)
inline

Use the specified threshold.

Definition at line 208 of file RealComparisons.h.

208 : comparer(threshold) {}

Member Function Documentation

template<typename RealType >
constexpr Comp_t lar::util::Vector3DComparison< RealType >::comp ( ) const
inline

Returns the base value comparer.

Definition at line 211 of file RealComparisons.h.

211 { return comp2D().comp(); }
constexpr Comp_t comp() const
Returns the basic value comparer.
constexpr Comp2D_t comp2D() const
Returns the 2D vector comparer.
template<typename RealType >
constexpr Comp2D_t lar::util::Vector3DComparison< RealType >::comp2D ( ) const
inline

Returns the 2D vector comparer.

Definition at line 214 of file RealComparisons.h.

214 { return comparer; }
template<typename RealType >
template<typename VectA , typename VectB >
constexpr bool lar::util::Vector3DComparison< RealType >::equal ( VectA const &  a,
VectB const &  b 
) const
inline

Returns whether the specified vectors match (within tolerance).

Definition at line 232 of file RealComparisons.h.

233  {
234  return comp2D().equal(a, b) && comp().equal(a.Z(), b.Z());
235  }
constexpr bool equal(VectA const &a, VectB const &b) const
Returns whether the specified vectors match (within tolerance).
constexpr Comp_t comp() const
Returns the base value comparer.
constexpr Comp2D_t comp2D() const
Returns the 2D vector comparer.
constexpr bool equal(Value_t a, Value_t b) const
Returns whether a and b are no farther than the threshold.
template<typename RealType >
template<typename VectA , typename VectB >
constexpr bool lar::util::Vector3DComparison< RealType >::nonEqual ( VectA const &  a,
VectB const &  b 
) const
inline

Returns whether the specified vectors do not match (within tolerance).

Definition at line 239 of file RealComparisons.h.

References lar::util::RealComparisons< RealType >::equal().

240  {
241  return !equal(a, b);
242  }
constexpr bool equal(VectA const &a, VectB const &b) const
Returns whether the specified vectors match (within tolerance).
template<typename RealType >
template<typename Vect >
constexpr bool lar::util::Vector3DComparison< RealType >::nonZero ( Vect const &  v) const
inline

Returns whether the specified vector is not null (within tolerance).

Definition at line 225 of file RealComparisons.h.

References lar::util::RealComparisons< RealType >::zero().

226  {
227  return !zero(v);
228  }
constexpr bool zero(Vect const &v) const
Returns whether the specified vector is null (within tolerance).
template<typename RealType >
template<typename Vect >
constexpr bool lar::util::Vector3DComparison< RealType >::zero ( Vect const &  v) const
inline

Returns whether the specified vector is null (within tolerance).

Definition at line 218 of file RealComparisons.h.

219  {
220  return comp2D().zero(v) && comp().zero(v.Z());
221  }
constexpr bool zero(Value_t value) const
Returns whether the value is no farther from 0 than the threshold.
constexpr Comp_t comp() const
Returns the base value comparer.
constexpr bool zero(Vect const &v) const
Returns whether the specified vector is null (within tolerance).
constexpr Comp2D_t comp2D() const
Returns the 2D vector comparer.

Member Data Documentation

template<typename RealType >
Comp2D_t lar::util::Vector3DComparison< RealType >::comparer
private

Definition at line 245 of file RealComparisons.h.


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