FreePOOMA
2.4.1
|
domain3 intersect(domain1,domain2) is a global function which determines if two domains intersect with each other, and if so, what their intersection is. More...
#include "Domain/DomainTraits.h"
#include "Domain/DomainCalculus.h"
#include "Domain/NewDomain.h"
#include "Utilities/PAssert.h"
Classes | |
struct | IntersectDomainSingle< T1, T2, T3, Dim, strided > |
IntersectDomainSingle<T1,T2,T3,int Dim,bool strided>::intersect(a,b,c) finds the intersection of two domains a and b of type T1 and T2, and puts the domain intersection in c[Dim-1]. More... | |
struct | IntersectDomainSingle< T1, T2, T3, Dim, true > |
The non-unit-stride version of IntersectDomainSingle, which does extra work for the case where a or b do not have unit stride. More... | |
struct | IntersectDomain< T1, T2, T3, Dim > |
IntersectDomain implements a basic template meta-program to intersect each dimension separately of the multidimensional domains. More... | |
struct | IntersectDomain< T1, T2, T3, 1 > |
struct | IntersectReturnType< T1, T2 > |
a simple struct used to figure out the return type when intersecting types T1 and T2. More... | |
Functions | |
template<class T1 , class T2 > | |
IntersectReturnType< T1, T2 > ::Type_t | intersect (const T1 &a, const T2 &b) |
domain3 intersect(domain1,domain2) is a global function which determines if two domains intersect with each other, and if so, what their intersection is. |
domain3 intersect(domain1,domain2) is a global function which determines if two domains intersect with each other, and if so, what their intersection is.
By 'intersect', we mean the set of points which are found in BOTH domains, expressed as a new domain. If they have no points in common, this returns an empty domain. The type of domain returned is the most general domain type which can store the information from domain1 and domain2.
IntersectReturnType<T1,T2>::Type_t intersect | ( | const T1 & | a, |
const T2 & | b | ||
) | [inline] |
domain3 intersect(domain1,domain2) is a global function which determines if two domains intersect with each other, and if so, what their intersection is.
By 'intersect', we mean the set of points which are found in BOTH domains, expressed as a new domain. If they have no points in common, this returns an empty domain. The type of domain returned is the most general domain type which can store the information from domain1 and domain2. For example, if you intersect an Interval with a Range, the most general type is Range. The same rules that are used to combine domain's together are used to determine the return type.
The implementation of intersect is deferred to the IntersectDomain struct, which performs the intersection for each dimension and and's the results together.
References CTAssert.
Referenced by LeafFunctor< Engine< Dim, T, MultiPatchView< LT, PatchTag, BD > >, ExpressionApply< IntersectorTag< Intersect > > >::applyHandler(), Patch< Field< Mesh, T, MultiPatch< LTag, EngineTag > > >::make(), DynamicLayoutData::touches(), DomainLayout< Dim >::touches(), and FileSetWriter< Dim >::write().