FreePOOMA  2.4.1
Public Types | Public Member Functions
Engine< Dim, T, BrickView > Class Template Reference

Engine<T,Dim,BrickView> (aka BrickView-Engine) More...

#include <BrickEngine.h>

Inheritance diagram for Engine< Dim, T, BrickView >:
Inheritance graph
[legend]
Collaboration diagram for Engine< Dim, T, BrickView >:
Collaboration graph
[legend]

List of all members.

Public Types

enum  { dimensions = Dim }
enum  { hasDataObject = true }
enum  { dynamic = false }
enum  { zeroBased = true }
enum  { multiPatch = false }
typedef Engine< Dim, T, BrickViewThis_t
typedef Engine< Dim, T, BrickViewEngine_t
typedef Pooma::BrickViewBase< Dim > Base_t
typedef Base_t::Domain_t Domain_t
typedef DomainLayout< Dim > Layout_t
typedef T Element_t
typedef T & ElementRef_t
typedef BrickView Tag_t

Public Member Functions

 Engine ()
 Default constructor is required for containers.
 Engine (const This_t &model)
 Copy constructor performs a SHALLOW copy:
 Engine (const This_t &model, const EngineConstructTag &)
 Constructor used by MultiPatchView subsetting.
DataBlockPtr< T > dataBlock ()
 Return the DataBlockPtr. See comments in BrickEngine above.
const DataBlockPtr< T > & dataBlock () const
Pooma::DataObject_tdataObject () const
 Provide access to the data object.
Subsetting Constructors.

A BrickView-Engine is a strided, brick-shaped view of a Brick-Engine.

Thus we write constructors to build BrickViews from Brick-Engines and all types of brick-shaped Domains.

template<class DT >
 Engine (const Engine< Dim, T, Brick > &e, const Domain< Dim, DT > &dom)
 Build a BrickView from Brick and a domain like an Interval<Dim> or Range<Dim>.
template<int Dim2>
 Engine (const Engine< Dim2, T, Brick > &e, const SliceRange< Dim2, Dim > &dom)
 Build a BrickView from Brick and a SliceRange<Dim2,Dim>.
template<int Dim2>
 Engine (const Engine< Dim2, T, Brick > &e, const SliceInterval< Dim2, Dim > &dom)
 Build a BrickView from Brick and a SliceInterval<Dim2,Dim>.
template<class DT >
 Engine (const This_t &e, const Domain< Dim, DT > &d)
 Build a BrickView from another BrickView and a domain like an Interval<Dim> or Range<Dim>.
template<class DT >
 Engine (const Engine< Dim, T, BrickViewU > &e, const Domain< Dim, DT > &d)
 Engine (const This_t &e, const INode< Dim > &inode)
 Build a BrickView from another BrickView and an INode.
 Engine (const Engine< Dim, T, BrickViewU > &e, const INode< Dim > &inode)
template<int ODim>
 Engine (const Engine< ODim, T, BrickView > &e, const SliceRange< ODim, Dim > &dom)
 Build a BrickView from another BrickView and a SliceRange<ODim,Dim>.
template<int ODim>
 Engine (const Engine< ODim, T, BrickViewU > &e, const SliceRange< ODim, Dim > &dom)
template<int ODim>
 Engine (const Engine< ODim, T, BrickView > &e, const SliceInterval< ODim, Dim > &dom)
 Build a BrickView from another BrickView and a SliceRange<ODim,Dim>.
template<int ODim>
 Engine (const Engine< ODim, T, BrickViewU > &e, const SliceInterval< ODim, Dim > &dom)
 Engine (const Engine< Dim, T, CompressibleBrick > &)
 Build a BrickView-Engine from a compressible brick.
 Engine (const Engine< Dim, T, CompressibleBrickView > &)
 ~Engine ()
This_toperator= (const This_t &model)
 Assigment is shallow, to be consistent with copy.
Element_t read (const Loc< Dim > &loc) const
 Element access via Loc.
ElementRef_t operator() (const Loc< Dim > &loc) const
Element_t read (int i1) const
 Element access via ints for speed.
Element_t read (int i1, int i2) const
Element_t read (int i1, int i2, int i3) const
Element_t read (int i1, int i2, int i3, int i4) const
Element_t read (int i1, int i2, int i3, int i4, int i5) const
Element_t read (int i1, int i2, int i3, int i4, int i5, int i6) const
Element_t read (int i1, int i2, int i3, int i4, int i5, int i6, int i7) const
ElementRef_t operator() (int i1) const
ElementRef_t operator() (int i1, int i2) const
ElementRef_t operator() (int i1, int i2, int i3) const
ElementRef_t operator() (int i1, int i2, int i3, int i4) const
ElementRef_t operator() (int i1, int i2, int i3, int i4, int i5) const
ElementRef_t operator() (int i1, int i2, int i3, int i4, int i5, int i6) const
ElementRef_t operator() (int i1, int i2, int i3, int i4, int i5, int i6, int i7) const

Detailed Description

template<int Dim, class T>
class Engine< Dim, T, BrickView >

Engine<T,Dim,BrickView> (aka BrickView-Engine)

A BrickView-Engine is an Engine that manages a view of a Brick-Engine. See Engine<Dim,T,Brick> for details.

Template Parameters:

The Domain of this engine is an Interval<Dim>, which is a tensor product of Dim 1-D intervals. For BrickView-Engines, these intervals will all be 0-based (i.e. [0..N0]x[0..N1] etc.).

Note that this is NOT the domain of the underlying data storage, but rather it is the domain as presented to the outside world.


Member Typedef Documentation

template<int Dim, class T >
typedef Engine<Dim,T,BrickView> Engine< Dim, T, BrickView >::This_t

Reimplemented from Pooma::BrickViewBase< Dim >.

template<int Dim, class T >
typedef Engine<Dim,T,BrickView> Engine< Dim, T, BrickView >::Engine_t
template<int Dim, class T >
typedef Pooma::BrickViewBase<Dim> Engine< Dim, T, BrickView >::Base_t
template<int Dim, class T >
typedef Base_t::Domain_t Engine< Dim, T, BrickView >::Domain_t

Reimplemented from Pooma::BrickViewBase< Dim >.

template<int Dim, class T >
typedef DomainLayout<Dim> Engine< Dim, T, BrickView >::Layout_t

Reimplemented from Pooma::BrickViewBase< Dim >.

template<int Dim, class T >
typedef T Engine< Dim, T, BrickView >::Element_t
template<int Dim, class T >
typedef T& Engine< Dim, T, BrickView >::ElementRef_t
template<int Dim, class T >
typedef BrickView Engine< Dim, T, BrickView >::Tag_t

Member Enumeration Documentation

template<int Dim, class T >
anonymous enum
Enumerator:
dimensions 
template<int Dim, class T >
anonymous enum
Enumerator:
hasDataObject 
template<int Dim, class T >
anonymous enum
Enumerator:
dynamic 
template<int Dim, class T >
anonymous enum
Enumerator:
zeroBased 
template<int Dim, class T >
anonymous enum
Enumerator:
multiPatch 

Constructor & Destructor Documentation

template<int Dim, class T >
Engine< Dim, T, BrickView >::Engine ( ) [inline]

Default constructor is required for containers.

template<int Dim, class T >
Engine< Dim, T, BrickView >::Engine ( const This_t model) [inline]

Copy constructor performs a SHALLOW copy:

template<int Dim, class T >
Engine< Dim, T, BrickView >::Engine ( const This_t model,
const EngineConstructTag  
) [inline]

Constructor used by MultiPatchView subsetting.

template<int Dim, class T >
template<class DT >
Engine< Dim, T, BrickView >::Engine ( const Engine< Dim, T, Brick > &  e,
const Domain< Dim, DT > &  dom 
) [inline]

Build a BrickView from Brick and a domain like an Interval<Dim> or Range<Dim>.

References Engine< Dim, T, Brick >::dataBlock(), RefCountedBlockPtr< T, BoundsChecked, Controller >::isAtBeginning(), and PAssert.

template<int Dim, class T >
template<int Dim2>
Engine< Dim, T, BrickView >::Engine ( const Engine< Dim2, T, Brick > &  e,
const SliceRange< Dim2, Dim > &  dom 
) [inline]

Build a BrickView from Brick and a SliceRange<Dim2,Dim>.

References PAssert.

template<int Dim, class T >
template<int Dim2>
Engine< Dim, T, BrickView >::Engine ( const Engine< Dim2, T, Brick > &  e,
const SliceInterval< Dim2, Dim > &  dom 
) [inline]

Build a BrickView from Brick and a SliceInterval<Dim2,Dim>.

References PAssert.

template<int Dim, class T >
template<class DT >
Engine< Dim, T, BrickView >::Engine ( const This_t e,
const Domain< Dim, DT > &  d 
) [inline]

Build a BrickView from another BrickView and a domain like an Interval<Dim> or Range<Dim>.

template<int Dim, class T >
template<class DT >
Engine< Dim, T, BrickView >::Engine ( const Engine< Dim, T, BrickViewU > &  e,
const Domain< Dim, DT > &  d 
) [inline]
template<int Dim, class T >
Engine< Dim, T, BrickView >::Engine ( const This_t e,
const INode< Dim > &  inode 
) [inline]

Build a BrickView from another BrickView and an INode.

template<int Dim, class T >
Engine< Dim, T, BrickView >::Engine ( const Engine< Dim, T, BrickViewU > &  e,
const INode< Dim > &  inode 
) [inline]
template<int Dim, class T >
template<int ODim>
Engine< Dim, T, BrickView >::Engine ( const Engine< ODim, T, BrickView > &  e,
const SliceRange< ODim, Dim > &  dom 
) [inline]

Build a BrickView from another BrickView and a SliceRange<ODim,Dim>.

template<int Dim, class T >
template<int ODim>
Engine< Dim, T, BrickView >::Engine ( const Engine< ODim, T, BrickViewU > &  e,
const SliceRange< ODim, Dim > &  dom 
) [inline]
template<int Dim, class T >
template<int ODim>
Engine< Dim, T, BrickView >::Engine ( const Engine< ODim, T, BrickView > &  e,
const SliceInterval< ODim, Dim > &  dom 
) [inline]

Build a BrickView from another BrickView and a SliceRange<ODim,Dim>.

template<int Dim, class T >
template<int ODim>
Engine< Dim, T, BrickView >::Engine ( const Engine< ODim, T, BrickViewU > &  e,
const SliceInterval< ODim, Dim > &  dom 
) [inline]
template<int Dim, class T >
Engine< Dim, T, BrickView >::Engine ( const Engine< Dim, T, CompressibleBrick > &  model) [explicit]
template<int Dim, class T >
Engine< Dim, T, BrickView >::Engine ( const Engine< Dim, T, CompressibleBrickView > &  model) [explicit]
template<int Dim, class T >
Engine< Dim, T, BrickView >::~Engine ( ) [inline]

Member Function Documentation

template<int Dim, class T >
This_t& Engine< Dim, T, BrickView >::operator= ( const This_t model) [inline]

Assigment is shallow, to be consistent with copy.

template<int Dim, class T >
Element_t Engine< Dim, T, BrickView >::read ( const Loc< Dim > &  loc) const [inline]

Element access via Loc.

template<int Dim, class T >
ElementRef_t Engine< Dim, T, BrickView >::operator() ( const Loc< Dim > &  loc) const [inline]
template<int Dim, class T >
Element_t Engine< Dim, T, BrickView >::read ( int  i1) const [inline]

Element access via ints for speed.

References CTAssert.

template<int Dim, class T >
Element_t Engine< Dim, T, BrickView >::read ( int  i1,
int  i2 
) const [inline]

References CTAssert.

template<int Dim, class T >
Element_t Engine< Dim, T, BrickView >::read ( int  i1,
int  i2,
int  i3 
) const [inline]

References CTAssert.

template<int Dim, class T >
Element_t Engine< Dim, T, BrickView >::read ( int  i1,
int  i2,
int  i3,
int  i4 
) const [inline]

References CTAssert.

template<int Dim, class T >
Element_t Engine< Dim, T, BrickView >::read ( int  i1,
int  i2,
int  i3,
int  i4,
int  i5 
) const [inline]

References CTAssert.

template<int Dim, class T >
Element_t Engine< Dim, T, BrickView >::read ( int  i1,
int  i2,
int  i3,
int  i4,
int  i5,
int  i6 
) const [inline]

References CTAssert.

template<int Dim, class T >
Element_t Engine< Dim, T, BrickView >::read ( int  i1,
int  i2,
int  i3,
int  i4,
int  i5,
int  i6,
int  i7 
) const [inline]

References CTAssert.

template<int Dim, class T >
ElementRef_t Engine< Dim, T, BrickView >::operator() ( int  i1) const [inline]

References CTAssert.

template<int Dim, class T >
ElementRef_t Engine< Dim, T, BrickView >::operator() ( int  i1,
int  i2 
) const [inline]

References CTAssert.

template<int Dim, class T >
ElementRef_t Engine< Dim, T, BrickView >::operator() ( int  i1,
int  i2,
int  i3 
) const [inline]

References CTAssert.

template<int Dim, class T >
ElementRef_t Engine< Dim, T, BrickView >::operator() ( int  i1,
int  i2,
int  i3,
int  i4 
) const [inline]

References CTAssert.

template<int Dim, class T >
ElementRef_t Engine< Dim, T, BrickView >::operator() ( int  i1,
int  i2,
int  i3,
int  i4,
int  i5 
) const [inline]

References CTAssert.

template<int Dim, class T >
ElementRef_t Engine< Dim, T, BrickView >::operator() ( int  i1,
int  i2,
int  i3,
int  i4,
int  i5,
int  i6 
) const [inline]

References CTAssert.

template<int Dim, class T >
ElementRef_t Engine< Dim, T, BrickView >::operator() ( int  i1,
int  i2,
int  i3,
int  i4,
int  i5,
int  i6,
int  i7 
) const [inline]

References CTAssert.

template<int Dim, class T >
DataBlockPtr<T> Engine< Dim, T, BrickView >::dataBlock ( ) [inline]

Return the DataBlockPtr. See comments in BrickEngine above.

template<int Dim, class T >
const DataBlockPtr<T>& Engine< Dim, T, BrickView >::dataBlock ( ) const [inline]
template<int Dim, class T >
Pooma::DataObject_t* Engine< Dim, T, BrickView >::dataObject ( ) const [inline]

Provide access to the data object.

This should really be a reference instead of a pointer.


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