Mechanics of Defect Evolution Library
Loading...
Searching...
No Matches
model::SegmentSegmentDistance< dim > Struct Template Reference

#include <SegmentSegmentDistance.h>

Collaboration diagram for model::SegmentSegmentDistance< dim >:

Public Types

typedef Eigen::Matrix< double, dim, 1 > VectorDim
typedef Eigen::Matrix< long double, dim, 1 > VectorDimLD
typedef std::tuple< VectorDim, double, double > IntersectionPointType
typedef std::deque< IntersectionPointType > IntersectionContainerType

Public Member Functions

std::pair< long double, long double > step4U (const long double &T) const
std::pair< long double, long double > step4 (const long double &U) const
std::pair< long double, long double > step3 (const long double &T) const
std::pair< long double, long double > step2 () const
std::pair< long double, long double > getTU () const
 SegmentSegmentDistance (const VectorDim &A0, const VectorDim &B0, const VectorDim &C0, const VectorDim &D0, const double &degeneracyValue_in=0.0)
IntersectionContainerType intersectionSegment () const
bool isIntersecting (const double tolerance=FLT_EPSILON) const

Static Public Member Functions

static long double limitRange (const long double &v)

Public Attributes

const VectorDimLD A
const VectorDimLD B
const VectorDimLD C
const VectorDimLD D
const double degeneracyValue
const VectorDimLD d1
const VectorDimLD d2
const VectorDimLD d12
const long double R
const long double S1
const long double S2
const long double D1
const long double D2
const long double den
const std::pair< long double, long double > tu
const long double t
const long double u
const long double dMin
const VectorDim x0
const VectorDim x1

Static Public Attributes

static constexpr double tol =100*DBL_EPSILON

Detailed Description

template<int dim>
struct model::SegmentSegmentDistance< dim >

Class template which computes the distance between two lines segments in dimension dim. Algorithm adapted from V. LUMELSKY. ON FAST COMPUTATION OF DISTANCE BETWEEN LINE SEGMENTS. Information Processing Letters 21 (1985) 55-61.

Definition at line 26 of file SegmentSegmentDistance.h.

Member Typedef Documentation

◆ IntersectionContainerType

template<int dim>
typedef std::deque<IntersectionPointType> model::SegmentSegmentDistance< dim >::IntersectionContainerType

Definition at line 34 of file SegmentSegmentDistance.h.

◆ IntersectionPointType

template<int dim>
typedef std::tuple<VectorDim,double,double> model::SegmentSegmentDistance< dim >::IntersectionPointType

Definition at line 33 of file SegmentSegmentDistance.h.

◆ VectorDim

template<int dim>
typedef Eigen::Matrix<double,dim,1> model::SegmentSegmentDistance< dim >::VectorDim

Definition at line 29 of file SegmentSegmentDistance.h.

◆ VectorDimLD

template<int dim>
typedef Eigen::Matrix<long double,dim,1> model::SegmentSegmentDistance< dim >::VectorDimLD

Definition at line 31 of file SegmentSegmentDistance.h.

Constructor & Destructor Documentation

◆ SegmentSegmentDistance()

template<int dim>
model::SegmentSegmentDistance< dim >::SegmentSegmentDistance ( const VectorDim & A0,
const VectorDim & B0,
const VectorDim & C0,
const VectorDim & D0,
const double & degeneracyValue_in = 0.0 )
Parameters
[in]Astart point of first segment
[in]Bend point of first segment
[in]Cstart point of second segment
[in]Dend point of second segment

Definition at line 109 of file SegmentSegmentDistance.cpp.

Member Function Documentation

◆ getTU()

template<int dim>
std::pair< long double, long double > model::SegmentSegmentDistance< dim >::getTU ( ) const

Definition at line 80 of file SegmentSegmentDistance.cpp.

◆ intersectionSegment()

template<int dim>
SegmentSegmentDistance< dim >::IntersectionContainerType model::SegmentSegmentDistance< dim >::intersectionSegment ( ) const

Definition at line 144 of file SegmentSegmentDistance.cpp.

◆ isIntersecting()

template<int dim>
bool model::SegmentSegmentDistance< dim >::isIntersecting ( const double tolerance = FLT_EPSILON) const

Definition at line 206 of file SegmentSegmentDistance.cpp.

◆ limitRange()

template<int dim>
long double model::SegmentSegmentDistance< dim >::limitRange ( const long double & v)
static

Definition at line 23 of file SegmentSegmentDistance.cpp.

◆ step2()

template<int dim>
std::pair< long double, long double > model::SegmentSegmentDistance< dim >::step2 ( ) const

Definition at line 72 of file SegmentSegmentDistance.cpp.

◆ step3()

template<int dim>
std::pair< long double, long double > model::SegmentSegmentDistance< dim >::step3 ( const long double & T) const

Definition at line 57 of file SegmentSegmentDistance.cpp.

◆ step4()

template<int dim>
std::pair< long double, long double > model::SegmentSegmentDistance< dim >::step4 ( const long double & U) const

Compute t from eq. (10) and limit by eq. (12)

Definition at line 49 of file SegmentSegmentDistance.cpp.

◆ step4U()

template<int dim>
std::pair< long double, long double > model::SegmentSegmentDistance< dim >::step4U ( const long double & T) const

Compute t from eq. (10) and limit by eq. (12)

Definition at line 41 of file SegmentSegmentDistance.cpp.

Member Data Documentation

◆ A

template<int dim>
const VectorDimLD model::SegmentSegmentDistance< dim >::A

Definition at line 63 of file SegmentSegmentDistance.h.

◆ B

template<int dim>
const VectorDimLD model::SegmentSegmentDistance< dim >::B

Definition at line 64 of file SegmentSegmentDistance.h.

◆ C

template<int dim>
const VectorDimLD model::SegmentSegmentDistance< dim >::C

Definition at line 65 of file SegmentSegmentDistance.h.

◆ D

template<int dim>
const VectorDimLD model::SegmentSegmentDistance< dim >::D

Definition at line 66 of file SegmentSegmentDistance.h.

◆ D1

template<int dim>
const long double model::SegmentSegmentDistance< dim >::D1

Definition at line 76 of file SegmentSegmentDistance.h.

◆ d1

template<int dim>
const VectorDimLD model::SegmentSegmentDistance< dim >::d1

Definition at line 69 of file SegmentSegmentDistance.h.

◆ d12

template<int dim>
const VectorDimLD model::SegmentSegmentDistance< dim >::d12

Definition at line 71 of file SegmentSegmentDistance.h.

◆ D2

template<int dim>
const long double model::SegmentSegmentDistance< dim >::D2

Definition at line 77 of file SegmentSegmentDistance.h.

◆ d2

template<int dim>
const VectorDimLD model::SegmentSegmentDistance< dim >::d2

Definition at line 70 of file SegmentSegmentDistance.h.

◆ degeneracyValue

template<int dim>
const double model::SegmentSegmentDistance< dim >::degeneracyValue

Definition at line 67 of file SegmentSegmentDistance.h.

◆ den

template<int dim>
const long double model::SegmentSegmentDistance< dim >::den

Definition at line 78 of file SegmentSegmentDistance.h.

◆ dMin

template<int dim>
const long double model::SegmentSegmentDistance< dim >::dMin

Definition at line 83 of file SegmentSegmentDistance.h.

◆ R

template<int dim>
const long double model::SegmentSegmentDistance< dim >::R

Definition at line 73 of file SegmentSegmentDistance.h.

◆ S1

template<int dim>
const long double model::SegmentSegmentDistance< dim >::S1

Definition at line 74 of file SegmentSegmentDistance.h.

◆ S2

template<int dim>
const long double model::SegmentSegmentDistance< dim >::S2

Definition at line 75 of file SegmentSegmentDistance.h.

◆ t

template<int dim>
const long double model::SegmentSegmentDistance< dim >::t

Definition at line 81 of file SegmentSegmentDistance.h.

◆ tol

template<int dim>
double model::SegmentSegmentDistance< dim >::tol =100*DBL_EPSILON
staticconstexpr

Definition at line 36 of file SegmentSegmentDistance.h.

◆ tu

template<int dim>
const std::pair<long double,long double> model::SegmentSegmentDistance< dim >::tu

Definition at line 80 of file SegmentSegmentDistance.h.

◆ u

template<int dim>
const long double model::SegmentSegmentDistance< dim >::u

Definition at line 82 of file SegmentSegmentDistance.h.

◆ x0

template<int dim>
const VectorDim model::SegmentSegmentDistance< dim >::x0

Definition at line 84 of file SegmentSegmentDistance.h.

◆ x1

template<int dim>
const VectorDim model::SegmentSegmentDistance< dim >::x1

Definition at line 85 of file SegmentSegmentDistance.h.


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