32 friend class Proto::HDF5Handler;
74 inline Box (
const int* a_low,
const int* a_high) {
define(a_low, a_high); }
88 inline Box(
const Box& a_box);
97 inline void define(
const int* a_lo,
const int* a_hi);
110 inline static Box
Cube(
int a_size);
129 inline static Box
Kernel(
int a_radius);
197 inline std::size_t
size(
unsigned int a_dim)
const;
213 inline std::size_t
size()
const;
293 inline unsigned int index(
const Point& a_pt)
const;
307 inline Point operator()(
unsigned int a_idx,
unsigned int a_idy,
unsigned a_idz)
const;
334 inline Box
operator&(
const Box& a_rightBox)
const;
345 inline Box
operator+(
const Box& box)
const;
384 inline bool operator==(
const Box& a_rhsBox)
const;
387 inline bool operator!=(
const Box& a_rhsBox)
const;
396 inline bool operator<(
const Box& a_rhsBox)
const;
452 inline Box
shift(
int a_direction,
int a_offset)
const;
497 inline Box
grow(
int a_numpoints)
const;
516 inline Box
grow(
const Point& a_pt)
const;
527 inline Box
grow(
int a_dir,
int a_dist)
const;
569 inline Box
extrude(
const Point& a_dir,
int a_dist = 1)
const;
593 inline Box
extrude(
int a_dir,
int a_dist = 1,
bool a_upper =
true)
const;
602 inline Box
growHi(
int a_dir,
int a_dist)
const;
611 inline Box
growLo(
int idir,
int igrow)
const;
637 inline Box
coarsen(
unsigned int a_ratio)
const;
725 inline Box
refine(
unsigned int a_ratio)
const;
747 inline Box
edge(
const Point& a_dir,
int a_dist)
const;
762 inline Box
edge(
const Point& a_dir)
const;
787 inline Box
face(
Point a_dir,
int a_dist = 1)
const;
813 inline Box
flatten(
const int a_dir,
bool a_upper =
false)
const;
870 inline Box
adjCellLo(
int a_dir,
int a_dist)
const;
873 inline Box
adjCellHi(
int a_dir,
int a_dist)
const;
878 Box retval =
adjCellHi(a_idir, a_length);
926 inline void linearIn(
const char* a_buf);
932 inline void linearOut(
char* a_buf)
const;
938 inline void print()
const;
940 inline std::string
str()
const;
966 char dum1, dum2, dum3;
967 a_is >> dum1 >> low >> dum2 >> high >> dum3;
968 a_box =
Box(low, high);
1007 inline bool ok()
const;
1049 #endif //end include guard static Box Cube(int a_size)
Box(const int *a_low, const int *a_high)
Primitive Two-Point Constructor.
Definition: Proto_Box.H:74
bool operator!=(const BoxIterator &a_iter) const
Inequality Operator.
Definition: Proto_Box.H:1017
BoxIterator iterator
Definition: Proto_Box.H:35
ACCEL_DECORATION Point high() const
Access High Corner.
Definition: Proto_Box.H:174
Box toOrigin() const
Shift To Origin.
Box faceBox(int a_idir, const Side::LoHiSide a_side) const
Definition: Proto_Box.H:48
BoxIterator()
Default Constructor.
Definition: Proto_Box.H:995
Iterator for Boxes.
Definition: Proto_Box.H:991
LoHiSide
Side Enum.
Definition: Proto_Face.H:23
BoxIterator rend() const
Iterator Reverse End.
Box adjacent(const Point &a_dir, int a_dist) const
Adjacent Cells.
void operator &=(const Box &a_rhs)
In Place Intersection.
bool operator!=(const Box &a_rhsBox) const
Inequality Operator.
void define(const int *a_lo, const int *a_hi)
Primitive Two-Point Lazy Constructor.
std::istream & operator>>(std::istream &a_is, Box &a_box)
OStream Operator.
Definition: Proto_Box.H:962
int operator()() const
Get Index.
Definition: Proto_Box.H:1029
Low side; normal is in negative coordinate direction.
Definition: Proto_Face.H:26
ACCEL_DECORATION Point mod(const Point &a_pt) const
Modulus Function.
ACCEL_DECORATION Point operator[](unsigned int a_index) const
Access Point by Index.
Box flatten(const int a_dir, bool a_upper=false) const
Flatten.
Box adjCellLo(int a_dir, int a_dist) const
ACCEL_DECORATION unsigned int index(const Point &a_pt) const
Point to Linear Index.
ACCEL_DECORATION Point operator%(const Point &a_pt) const
Modulus Operator.
ACCEL_DECORATION bool containsPoint(const Point &a_pt) const
Contains Point Query.
Box extrude(const Point &a_dir, int a_dist=1) const
Extrude.
Point whichBoundaryContains(const Point &a_point) const
Point m_low
Point object containing the lower bounds of the Box.
Definition: Proto_Box.H:947
static ACCEL_DECORATION Point Basis(int a_dir, int a_scale=1)
Get Basis.
Box refine(const Point &a_pt) const
Anisotropic Refine Operation.
void linearOut(char *a_buf) const
Write To Buffer.
An interval in DIM dimensional space.
Definition: Proto_Box.H:29
Box face(int a_dir, Side::LoHiSide a_side, int a_dist=1) const
Face.
ACCEL_DECORATION Point operator()(unsigned int a_idx, unsigned int a_idy, unsigned a_idz) const
Box adjCellSide(int a_idir, int a_length, Side::LoHiSide a_sd) const
Definition: Proto_Box.H:876
int m_size
"Volume" of the box.
Definition: Proto_Box.H:949
Box shift(int a_direction, int a_offset) const
Shift Transformation.
static ACCEL_DECORATION unsigned int sindex(Point a_pt, Point a_low, Point a_high)
Stencil Index.
Box edge(const Point &a_dir, int a_dist) const
Edge.
Point operator*() const
Dereference Iterator.
Definition: Proto_Box.H:1023
bool onBoundary(const Point &a_p) const
Point on Boundry Query.
Box growHi(int a_dir, int a_dist) const
Grow High Side.
Box grow(int a_numpoints) const
Isotropic Grow Operation.
size_t linearSize() const
Linear Size.
Box growLo(int idir, int igrow) const
Grow Low Side.
#define ACCEL_DECORATION
Definition: Proto_Accel.H:12
Box adjCellHi(int a_dir, int a_dist) const
ACCEL_DECORATION bool empty() const
Empty Query.
Definition: Proto_Box.H:280
ACCEL_DECORATION Point low() const
Access Low Corner.
Definition: Proto_Box.H:167
int m_pos
Definition: Proto_Box.H:1045
ACCEL_DECORATION std::size_t size() const
Volumetric Size.
Box m_box
Definition: Proto_Box.H:1044
Definition: Proto_Array.H:17
ACCEL_DECORATION Point sizes() const
All Sizes.
bool operator==(const Box &a_rhsBox) const
Equality Operator.
static Box Kernel(int a_radius)
Build Kernel Box.
std::ostream & operator<<(std::ostream &stream, const Array< T, N > &arr)
Ostream operator.
Box operator &(const Box &a_rightBox) const
Intersection Operator.
Point m_high
Point object containing the upper bounds of the Box.
Definition: Proto_Box.H:948
Integer Valued Vector.
Definition: Proto_Point.H:24
BoxIterator begin() const
Iterator Begin.
Box taperCoarsen(const Point &a_ref) const
Tapered Coarsen.
BoxIterator end() const
Iterator End.
Box()
Default Constructor.
Box coarsen(unsigned int a_ratio) const
Isotropic Coarsen Operation.
void begin()
Reset Iterator.
Definition: Proto_Box.H:1004
bool operator<(const Box &a_rhsBox) const
Less Than Operator.
void linearIn(const char *a_buf)
Read From Buffer.
Point boundary(const Side::LoHiSide a_side) const
bool coarsenable(const int &a_ratio) const
(Isotropic) Coarsenable Query
Box operator+(const Box &box) const
void operator+=(const Box &box)
BoxIterator rbegin() const
Iterator Reverse Begin.
void recomputeSize()
Used to reevaluate the size of the box when it is changed.
Centering
Definition: Proto_Centering.H:7
ACCEL_DECORATION bool containsBox(const Box &a_rhs) const
Contains Box Query.