Intersect.h File Reference

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"

Include dependency graph for Intersect.h:

This graph shows which files directly or indirectly include this file:


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.

Detailed Description

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.


Function Documentation

template<class T1 , class T2 >
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().


Generated on Wed Mar 16 06:17:47 2011 for FreePOOMA by  doxygen 1.5.9