3.5-git
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, 2, 2, 2 > Class Template Reference

A class for polygon–polygon intersection in 2d space. More...

#include <dumux/geometry/geometryintersection.hh>

Description

template<class Geometry1, class Geometry2, class Policy>
class Dumux::GeometryIntersection< Geometry1, Geometry2, Policy, 2, 2, 2 >

A class for polygon–polygon intersection in 2d 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==2, int > = 0>
static bool intersection (const Geometry1 &geo1, const Geometry2 &geo2, Intersection &intersection)
 Colliding two polygons. More...
 
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 two polygons. 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 two polygons. More...
 

Member Typedef Documentation

◆ ctype

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

◆ Intersection

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

◆ Point

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

Member Function Documentation

◆ intersection() [1/3]

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

Colliding two polygons.

Note
First we find the vertex candidates for the intersection region as follows: Add polygon vertices that are inside the other polygon Add intersections of polygon edges Remove duplicate points from the list Compute the convex hull polygon Return a triangulation of that polygon as intersection
Parameters
geo1/geo2The geometries to intersect
intersectionContainer to store the corner points of the polygon (as convex hull)
Note
This overload is used when polygon like intersections are seeked

◆ intersection() [2/3]

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, 2, 2, 2 >::intersection ( const Geometry1 &  geo1,
const Geometry2 &  geo2,
Intersection intersection 
)
inlinestatic

Colliding two polygons.

Parameters
geo1/geo2The geometries to intersect
intersectionContainer to store the corners of intersection segment
Note
this overload is used when segment-like intersections are seeked
Todo:
implement this query

◆ intersection() [3/3]

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, 2, 2, 2 >::intersection ( const Geometry1 &  geo1,
const Geometry2 &  geo2,
Intersection intersection 
)
inlinestatic

Colliding two polygons.

Parameters
geo1/geo2The geometries to intersect
intersectionThe intersection point
Note
this overload is used when point-like intersections are seeked
Todo:
implement this query

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