version 3.10.0
Loading...
Searching...
No Matches
Dumux::GeometryIntersection< Geometry1, Geometry2, Policy, 3, 3, 3 > Class Template Reference

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

#include <dumux/geometry/geometryintersection.hh>

Inheritance diagram for Dumux::GeometryIntersection< Geometry1, Geometry2, Policy, 3, 3, 3 >:

Public Types

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

Static Public Member Functions

template<class P = Policy, std::enable_if_t< P::dimIntersection==3, int > = 0>
static bool intersection (const Geometry1 &geo1, const Geometry2 &geo2, Intersection &intersection)
 Colliding two convex polyhedra.
 
template<class P = Policy, std::enable_if_t< P::dimIntersection !=3, int > = 0>
static bool intersection (const Geometry1 &geo1, const Geometry2 &geo2, Intersection &intersection)
 Colliding segment and convex polyhedron.
 
static bool intersection (const Geometry1 &geo1, const Geometry2 &geo2, Intersection &intersection)
 Determine if the two geometries intersect and compute the intersection geometry.
 

Member Typedef Documentation

◆ ctype [1/2]

using Dumux::GeometryIntersection< Geometry1, Geometry2, Policy, dimworld, dim1, dim2 >::ctype

◆ ctype [2/2]

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

◆ Intersection [1/2]

using Dumux::GeometryIntersection< Geometry1, Geometry2, Policy, dimworld, dim1, dim2 >::Intersection

◆ Intersection [2/2]

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

◆ Point [1/2]

using Dumux::GeometryIntersection< Geometry1, Geometry2, Policy, dimworld, dim1, dim2 >::Point

◆ Point [2/2]

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

Member Function Documentation

◆ intersection() [1/3]

static bool Dumux::GeometryIntersection< Geometry1, Geometry2, Policy, dimworld, dim1, dim2 >::intersection ( const Geometry1 & geo1,
const Geometry2 & geo2,
Intersection & intersection )
inlinestatic

◆ intersection() [2/3]

template<class Geometry1, class Geometry2, class Policy>
template<class P = Policy, std::enable_if_t< P::dimIntersection==3, int > = 0>
static bool Dumux::GeometryIntersection< Geometry1, Geometry2, Policy, 3, 3, 3 >::intersection ( const Geometry1 & geo1,
const Geometry2 & geo2,
Intersection & intersection )
inlinestatic
Note
First we find the vertex candidates for the intersection region as follows: Add vertices that are inside the other geometry for both geometries Add all intersection points of edges (codim 2) with the other tetrahedron's faces triangle Remove duplicate points from the list Return a triangulation of the polyhedron formed by the convex hull of the point cloud
Parameters
geo1/geo2The geometries to intersect
intersectionContainer to store the corner points of the polygon (as convex hull)
Note
This overload is used when polyhedron-like intersections are seeked

◆ intersection() [3/3]

template<class Geometry1, class Geometry2, class Policy>
template<class P = Policy, std::enable_if_t< P::dimIntersection !=3, int > = 0>
static bool Dumux::GeometryIntersection< Geometry1, Geometry2, Policy, 3, 3, 3 >::intersection ( const Geometry1 & geo1,
const Geometry2 & geo2,
Intersection & intersection )
inlinestatic
Parameters
geo1/geo2The geometries to intersect
intersectionContainer to store the intersection result

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