3.4
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Public Types | Static Public Member Functions | List of all members
Dumux::GeometryIntersection< Geometry1, Geometry2, Policy, 3, 3, 1 > Class Template Reference

A class for polyhedron–segment intersection in 3d space. More...

#include <dumux/geometry/geometryintersection.hh>

Description

template<class Geometry1, class Geometry2, class Policy>
class Dumux::GeometryIntersection< Geometry1, Geometry2, Policy, 3, 3, 1 >

A class for polyhedron–segment intersection in 3d space.

Public Types

using ctype = typename Policy::ctype
 
using Point = typename Policy::Point
 
using Intersection = typename Policy::Intersection
 

Static Public Member Functions

template<class P = Policy, std::enable_if_t< P::dimIntersection==1, int > = 0>
static bool intersection (const Geometry1 &geo1, const Geometry2 &geo2, Intersection &intersection)
 Colliding segment and convex polyhedron. More...
 
template<class P = Policy, std::enable_if_t< P::dimIntersection==0, int > = 0>
static bool intersection (const Geometry1 &geo1, const Geometry2 &geo2, Intersection &intersection)
 Colliding segment and convex polyhedron. More...
 

Member Typedef Documentation

◆ ctype

template<class Geometry1 , class Geometry2 , class Policy >
using Dumux::GeometryIntersection< Geometry1, Geometry2, Policy, 3, 3, 1 >::ctype = typename Policy::ctype

◆ Intersection

template<class Geometry1 , class Geometry2 , class Policy >
using Dumux::GeometryIntersection< Geometry1, Geometry2, Policy, 3, 3, 1 >::Intersection = typename Policy::Intersection

◆ Point

template<class Geometry1 , class Geometry2 , class Policy >
using Dumux::GeometryIntersection< Geometry1, Geometry2, Policy, 3, 3, 1 >::Point = typename Policy::Point

Member Function Documentation

◆ intersection() [1/2]

template<class Geometry1 , class Geometry2 , class Policy >
template<class P = Policy, std::enable_if_t< P::dimIntersection==1, int > = 0>
static bool Dumux::GeometryIntersection< Geometry1, Geometry2, Policy, 3, 3, 1 >::intersection ( const Geometry1 &  geo1,
const Geometry2 &  geo2,
Intersection intersection 
)
inlinestatic

Colliding segment and convex polyhedron.

Note
Algorithm based on the one from "Real-Time Collision Detection" by Christer Ericson, published by Morgan Kaufmann Publishers, (c) 2005 Elsevier Inc. Basis is the theorem that for any two non-intersecting convex polyhedrons a separating plane exists.
Parameters
geo1/geo2The geometries to intersect
intersectionIf the geometries collide intersection holds the corner points of the intersection object in global coordinates.
Note
This overload is used when segment-like intersections are seeked.

◆ intersection() [2/2]

template<class Geometry1 , class Geometry2 , class Policy >
template<class P = Policy, std::enable_if_t< P::dimIntersection==0, int > = 0>
static bool Dumux::GeometryIntersection< Geometry1, Geometry2, Policy, 3, 3, 1 >::intersection ( const Geometry1 &  geo1,
const Geometry2 &  geo2,
Intersection intersection 
)
inlinestatic

Colliding segment and convex polyhedron.

Note
Algorithm based on the one from "Real-Time Collision Detection" by Christer Ericson, published by Morgan Kaufmann Publishers, (c) 2005 Elsevier Inc. Basis is the theorem that for any two non-intersecting convex polyhedrons a separating plane exists.
Parameters
geo1/geo2The geometries to intersect
intersectionIf the geometries collide intersection holds the corner points of the intersection object in global coordinates.
Note
This overload is used when point-like intersections are seeked.

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