#include "Domain/DomainTraits.h"
#include "Utilities/PAssert.h"
Classes | |
struct | DomainTraits< Interval< Dim > > |
DomainTraits<Interval<Dim>>: The specialization of DomainTraits for Interval, for dimensions greater than one. More... | |
struct | DomainTraits< Interval< 1 > > |
DomainTraits<Interval<1>>: The specialization of DomainTraits for Interval, for dimension == 1. More... | |
struct | DomainChangeDim< Interval< Dim1 >, Dim2 > |
DomainChangeDim<T, int> is used to convert from a domain of one dimension to another dimension (the second template parameter). More... |
It defines the general behavior of Interval, including its typedef and static data characteristics, how to store data for a Interval, etc. It is used by the Domain base class of Interval to implement most of the public interface.
DomainTraits<Interval<Dim>> stores the characteristics and much of the implementation details for Interval domain objects. An Interval represents a sequence of numbers [a, a+1, ... b], with a hard-coded stride of +1. Thus, it is unit-strided, but not necessarily single-valued.
A general version of DomainTraits<Interval<Dim>> is defined here, which only includes the basic information to make Interval<Dim> look like an array of Interval<1> objects. DomainTraits<Interval<1>> is a more specific specialization which provides most of the necessary interface information for items which need to know about Interval. Since most of the interface for a domain object is only available for 1D versions of that domain object, the Interval<1> specialization defines more interface functions than the Interval<Dim> case.