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

A class for polygon–polygon intersections in 3d space.

#include <dumux/geometry/geometryintersection.hh>

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

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.
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.
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.

Member Typedef Documentation

◆ ctype

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

◆ Intersection

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

◆ Point

template<class Geometry1, class Geometry2, class Policy>
using Dumux::GeometryIntersection< Geometry1, Geometry2, Policy, 3, 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==0, int > = 0>
bool Dumux::GeometryIntersection< Geometry1, Geometry2, Policy, 3, 2, 2 >::intersection ( const Geometry1 & geo1,
const Geometry2 & geo2,
Intersection & intersection )
inlinestatic
Parameters
geo1/geo2The geometries to intersect
intersectionThe intersection point
Note
this overload is used when point-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>
bool Dumux::GeometryIntersection< Geometry1, Geometry2, Policy, 3, 2, 2 >::intersection ( const Geometry1 & geo1,
const Geometry2 & geo2,
Intersection & intersection )
inlinestatic
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

◆ intersection() [3/3]

template<class Geometry1, class Geometry2, class Policy>
template<class P = Policy, std::enable_if_t< P::dimIntersection==2, int > = 0>
bool Dumux::GeometryIntersection< Geometry1, Geometry2, Policy, 3, 2, 2 >::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 of first polygon that are inside the second polygon Add intersections of polygon edges Remove duplicate points from the list Compute the convex hull polygon
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

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