78 #ifndef SLIP_ITERATOR4D_BOX_HPP
79 #define SLIP_ITERATOR4D_BOX_HPP
114 template <
class Container4D>
124 typedef typename Container4D::pointer
pointer;
140 cont4d_(0),pos_(0),x1_(0),x2_(0),x3_(0),x4_(0),box_(0,0,0,0,0,0,0,0)
151 cont4d_(c),pos_((*c)[(b.first_front_upper_left())[0]][(b.first_front_upper_left())[1]][(b.first_front_upper_left())[2]]
152 + (b.first_front_upper_left())[3]),
153 x1_((b.first_front_upper_left())[0]),x2_((b.first_front_upper_left())[1]),x3_((b.first_front_upper_left())[2]),
154 x4_((b.first_front_upper_left())[3]),box_(b)
163 cont4d_(o.cont4d_),pos_(o.pos_),x1_(o.x1_),x2_(o.x2_),x3_(o.x3_),x4_(o.x4_),box_(o.box_)
184 this->cont4d_ = o.cont4d_;
258 this->pos_+=
static_cast<int>(cont4d_->cols()) - box_.
width() + 1 ;
260 this->pos_ = cont4d_->begin() +
261 (this->x1_ *
static_cast<int>(cont4d_->slices()) * static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
262 (this->x2_*
static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
263 (this->x3_*
static_cast<int>(cont4d_->cols())) + this->x4_;
272 this->pos_+=
static_cast<int>(cont4d_->cols())*(static_cast<int>(cont4d_->rows()) - box_.
height() + 1)
275 this->pos_ = cont4d_->begin() +
276 (this->x1_ *
static_cast<int>(cont4d_->slices()) * static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
277 (this->x2_*
static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
278 (this->x3_ *
static_cast<int>(cont4d_->cols())) + this->x4_;
289 this->pos_+=
static_cast<int>(cont4d_->cols())*(static_cast<int>(cont4d_->rows()) *
290 (static_cast<int>(cont4d_->slices()) - box_.
depth() + 1)
293 this->pos_ = cont4d_->begin() +
294 (this->x1_ *
static_cast<int>(cont4d_->slices()) * static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
295 (this->x2_*
static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
296 (this->x3_ *
static_cast<int>(cont4d_->cols())) + this->x4_;
306 this->pos_ +=
static_cast<int>(cont4d_->cols()) * (static_cast<int>(cont4d_->rows()) *
307 (static_cast<int>(cont4d_->slices()) + 1) + 1) + 1;
309 this->pos_ = cont4d_->begin() +
310 (this->x1_ *
static_cast<int>(cont4d_->slices()) * static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
311 (this->x2_*
static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
312 (this->x3_ *
static_cast<int>(cont4d_->cols())) + this->x4_;
355 this->pos_-= (
static_cast<int>(cont4d_->cols()) - box_.
width() + 1) ;
357 this->pos_ = cont4d_->begin() +
358 (this->x1_ *
static_cast<int>(cont4d_->slices()) * static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
359 (this->x2_*
static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
360 (this->x3_ *
static_cast<int>(cont4d_->cols())) + this->x4_;
369 this->pos_-= (
static_cast<int>(cont4d_->cols())*(static_cast<int>(cont4d_->rows()) - box_.
height() + 1)
370 - box_.
width() + 1) ;
372 this->pos_ = cont4d_->begin() +
373 (this->x1_ *
static_cast<int>(cont4d_->slices()) * static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
374 (this->x2_*
static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
375 (this->x3_ *
static_cast<int>(cont4d_->cols())) + this->x4_;
385 this->pos_ -= (
static_cast<int>(cont4d_->cols())*(static_cast<int>(cont4d_->rows()) *
386 (static_cast<int>(cont4d_->slices()) - box_.
depth() + 1)
389 this->pos_ = cont4d_->begin() +
390 (this->x1_ *
static_cast<int>(cont4d_->slices()) * static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
391 (this->x2_*
static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
392 (this->x3_ *
static_cast<int>(cont4d_->cols())) + this->x4_;
402 this->pos_ -=
static_cast<int>(cont4d_->cols()) * (static_cast<int>(cont4d_->rows()) *
403 (static_cast<int>(cont4d_->slices()) + 1) + 1) + 1;
405 this->pos_ = cont4d_->begin() +
406 (this->x1_ *
static_cast<int>(cont4d_->slices()) * static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
407 (this->x2_*
static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
408 (this->x3_ *
static_cast<int>(cont4d_->cols())) + this->x4_;
446 return ( (i1.cont4d_ == i2.cont4d_) && (i1.pos_ == i2.pos_)
447 && (i1.x1_ == i2.x1_) && (i1.x2_ == i2.x2_) && (i1.x3_ == i2.x3_) && (i1.x4_ == i2.x4_));
460 return ( (i1.cont4d_ != i2.cont4d_) || (i1.pos_ != i2.pos_)
461 || (i1.x1_ != i2.x1_) || (i1.x2_ != i2.x2_) || (i1.x3_ != i2.x3_) || (i1.x4_ != i2.x4_));
479 return ( i1.pos_ < i2.pos_);
535 this->x1_ += d.
dx1();
536 this->x2_ += d.
dx2();
537 this->x3_ += d.
dx3();
538 this->x4_ += d.
dx4();
539 this->pos_ = cont4d_->begin() +
540 (this->x1_ *
static_cast<int>(cont4d_->slices()) * static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
541 (this->x2_ *
static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
542 (this->x3_ *
static_cast<int>(cont4d_->cols())) + this->x4_;
558 this->x1_ -= d.
dx1();
559 this->x2_ -= d.
dx2();
560 this->x3_ -= d.
dx3();
561 this->x4_ -= d.
dx4();
562 this->pos_ = cont4d_->begin() +
563 (this->x1_ *
static_cast<int>(cont4d_->slices()) * static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
564 (this->x2_ *
static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
565 (this->x3_ *
static_cast<int>(cont4d_->cols())) + this->x4_;
612 return difference_type(
int(i1.x1_ - i2.x1_),
int(i1.x2_ - i2.x2_),
int(i1.x3_ - i2.x3_),
int(i1.x4_ - i2.x4_));
627 return (*cont4d_)[this->x1_+d.
dx1()][this->x2_+d.
dx2()][this->x3_+d.
dx3()][this->x4_+d.
dx4()];
642 return (*cont4d_)[this->x1_+ d.
dx1()][this->x2_ + d.
dx2()][this->x3_ + d.
dx3()];
657 return (*cont4d_)[this->x1_+ d.
dx1()][this->x2_ + d.
dx2()];
672 return (*cont4d_)[this->x1_+ n];
688 return (*cont4d_)[this->x1_+ n];
911 Container4D* cont4d_;
943 template <
class Container4D>
953 typedef typename Container4D::const_pointer
pointer;
954 typedef typename Container4D::const_reference
reference;
969 cont4d_(0),pos_(0),x1_(0),x2_(0),x3_(0),x4_(0),box_(0,0,0,0,0,0,0,0)
980 cont4d_(c),pos_((*c)[(b.first_front_upper_left())[0]]
981 [(b.first_front_upper_left())[1]]
982 [(b.first_front_upper_left())[2]]
983 + (b.first_front_upper_left())[3]),
984 x1_((b.first_front_upper_left())[0]),
985 x2_((b.first_front_upper_left())[1]),
986 x3_((b.first_front_upper_left())[2]),
987 x4_((b.first_front_upper_left())[3]),box_(b)
996 cont4d_(o.cont4d_),pos_(o.pos_),x1_(o.x1_),x2_(o.x2_),x3_(o.x3_),x4_(o.x4_),box_(o.box_)
1017 this->cont4d_ = o.cont4d_;
1018 this->pos_ = o.pos_;
1023 this->box_ = o.box_;
1070 this->pos_+=
static_cast<int>(cont4d_->cols()) - box_.
width() + 1 ;
1072 this->pos_ = cont4d_->begin() +
1073 (this->x1_ *
static_cast<int>(cont4d_->slices()) * static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
1074 (this->x2_*
static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
1075 (this->x3_*
static_cast<int>(cont4d_->cols())) + this->x4_;
1084 this->pos_+=
static_cast<int>(cont4d_->cols())*(static_cast<int>(cont4d_->rows()) - box_.
height() + 1)
1085 - box_.
width() + 1 ;
1087 this->pos_ = cont4d_->begin() +
1088 (this->x1_ *
static_cast<int>(cont4d_->slices()) * static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
1089 (this->x2_*
static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
1090 (this->x3_ *
static_cast<int>(cont4d_->cols())) + this->x4_;
1101 this->pos_+=
static_cast<int>(cont4d_->cols())*(static_cast<int>(cont4d_->rows()) *
1102 (static_cast<int>(cont4d_->slices()) - box_.
depth() + 1)
1105 this->pos_ = cont4d_->begin() +
1106 (this->x1_ *
static_cast<int>(cont4d_->slices()) * static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
1107 (this->x2_*
static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
1108 (this->x3_ *
static_cast<int>(cont4d_->cols())) + this->x4_;
1118 this->pos_ +=
static_cast<int>(cont4d_->cols()) * (static_cast<int>(cont4d_->rows()) *
1119 (static_cast<int>(cont4d_->slices()) + 1) + 1) + 1;
1121 this->pos_ = cont4d_->begin() +
1122 (this->x1_ *
static_cast<int>(cont4d_->slices()) * static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
1123 (this->x2_*
static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
1124 (this->x3_ *
static_cast<int>(cont4d_->cols())) + this->x4_;
1167 this->pos_-= (
static_cast<int>(cont4d_->cols()) - box_.
width() + 1) ;
1169 this->pos_ = cont4d_->begin() +
1170 (this->x1_ *
static_cast<int>(cont4d_->slices()) * static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
1171 (this->x2_*
static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
1172 (this->x3_ *
static_cast<int>(cont4d_->cols())) + this->x4_;
1181 this->pos_-= (
static_cast<int>(cont4d_->cols())*(static_cast<int>(cont4d_->rows()) - box_.
height() + 1)
1182 - box_.
width() + 1) ;
1184 this->pos_ = cont4d_->begin() +
1185 (this->x1_ *
static_cast<int>(cont4d_->slices()) * static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
1186 (this->x2_*
static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
1187 (this->x3_ *
static_cast<int>(cont4d_->cols())) + this->x4_;
1197 this->pos_ -= (
static_cast<int>(cont4d_->cols())*(static_cast<int>(cont4d_->rows()) *
1198 (static_cast<int>(cont4d_->slices()) - box_.
depth() + 1)
1201 this->pos_ = cont4d_->begin() +
1202 (this->x1_ *
static_cast<int>(cont4d_->slices()) * static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
1203 (this->x2_*
static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
1204 (this->x3_ *
static_cast<int>(cont4d_->cols())) + this->x4_;
1214 this->pos_ -=
static_cast<int>(cont4d_->cols()) * (static_cast<int>(cont4d_->rows()) *
1215 (static_cast<int>(cont4d_->slices()) + 1) + 1) + 1;
1217 this->pos_ = cont4d_->begin() +
1218 (this->x1_ *
static_cast<int>(cont4d_->slices()) * static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
1219 (this->x2_*
static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
1220 (this->x3_ *
static_cast<int>(cont4d_->cols())) + this->x4_;
1258 return ( (i1.cont4d_ == i2.cont4d_) && (i1.pos_ == i2.pos_)
1259 && (i1.x1_ == i2.x1_) && (i1.x2_ == i2.x2_) && (i1.x3_ == i2.x3_) && (i1.x4_ == i2.x4_));
1272 return ( (i1.cont4d_ != i2.cont4d_) || (i1.pos_ != i2.pos_)
1273 || (i1.x1_ != i2.x1_) || (i1.x2_ != i2.x2_) || (i1.x3_ != i2.x3_) || (i1.x4_ != i2.x4_));
1291 return ( i1.pos_ < i2.pos_);
1347 this->x1_ += d.
dx1();
1348 this->x2_ += d.
dx2();
1349 this->x3_ += d.
dx3();
1350 this->x4_ += d.
dx4();
1351 this->pos_ = cont4d_->begin() +
1352 (this->x1_ *
static_cast<int>(cont4d_->slices()) * static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
1353 (this->x2_ *
static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
1354 (this->x3_ *
static_cast<int>(cont4d_->cols())) + this->x4_;
1370 this->x1_ -= d.
dx1();
1371 this->x2_ -= d.
dx2();
1372 this->x3_ -= d.
dx3();
1373 this->x4_ -= d.
dx4();
1374 this->pos_ = cont4d_->begin() +
1375 (this->x1_ *
static_cast<int>(cont4d_->slices()) * static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
1376 (this->x2_ *
static_cast<int>(cont4d_->rows()) * static_cast<int>(cont4d_->cols())) +
1377 (this->x3_ *
static_cast<int>(cont4d_->cols())) + this->x4_;
1424 return difference_type(
int(i1.x1_ - i2.x1_),
int(i1.x2_ - i2.x2_),
int(i1.x3_ - i2.x3_),
int(i1.x4_ - i2.x4_));
1439 return (*cont4d_)[this->x1_+d.
dx1()][this->x2_+d.
dx2()][this->x3_+d.
dx3()][this->x4_+d.
dx4()];
1454 return (*cont4d_)[this->x1_+ d.
dx1()][this->x2_ + d.
dx2()][this->x3_ + d.
dx3()];
1469 return (*cont4d_)[this->x1_+ d.
dx1()][this->x2_ + d.
dx2()];
1484 return (*cont4d_)[this->x1_+ n];
1712 Container4D* cont4d_;
1725 #endif //SLIP_ITERATOR4D_BOX_HPP
iterator4d_box()
Constructs a iterator4d_box.
self operator--(int)
Postdecrement a const_iterator4d_box. Iterate to the previous location inside the Box4d...
This is some iterator to iterate a 4d container into a Box area defined by the subscripts of the 4d c...
void first_front_upper_left(slip::Point< CoordType, 4 >)
Accessor/Mutator of the first_front_upper_left point (p1) of Box4d.
self operator--(int)
Postdecrement a iterator4d_box. Iterate to the previous location inside the Box4d.
Container4D::slab_iterator slab_begin(size_type slice, size_type row, size_type col)
iterator4d_box element assignment operator.
Provides a class to modelize the difference of slip::Point2d.
void dx3(const CoordType &dx)
Accessor of the first coordinate of DPoint3d.
pointer * operator[](diff2d d) const
const_iterator4d_box element assignment operator. Equivalent to *(k + d) = t.
slip::DPoint3d< int > diff3d
pointer operator->() const
self & operator--()
Predecrement a const_iterator4d_box. Iterate to the previous location inside the Box4d.
friend bool operator<=(const self &i1, const self &i2)
<= operator.
std::random_access_iterator4d_tag iterator_category
void dx2(const CoordType &dx)
Accessor of the second coordinate of DPoint2d.
Difference of Point3D class, specialization of DPoint<CoordType,DIM> with DIM = 3.
friend bool operator!=(const self &i1, const self &i2)
Inequality operator.
CoordType depth() const
compute the depth of the Box4d (second dimension size).
self operator++(int)
Postincrement a const_iterator4d_box. Iterate to the next location inside the Box4d.
Container4D::const_slab_iterator slab_end(size_type slice, size_type row, size_type col) const
const_iterator4d_box element assignment operator.
friend bool operator==(const self &i1, const self &i2)
Equality operator.
self & operator+=(const difference_type &d)
iterator4d_box addition.
Container4D::slice_iterator slice_begin(size_type slab, size_type row, size_type col)
iterator4d_box element assignment operator.
friend difference_type operator-(const self &i1, const self &i2)
const_iterator4d_box difference operator.
slip::DPoint3d< int > diff3d
int t() const
Access to the first subscript of the current const_iterator4d_box.
pointer ** operator[](int n)
iterator4d_box element assignment operator. Equivalent to *(k + n).
self operator-(const difference_type &d)
const_iterator4d_box substraction.
friend bool operator!=(const self &i1, const self &i2)
Inequality operator.
Provides a class to tag SLIP iterators.
This is some iterator to iterate a 4d container into a Box area defined by the subscripts of the 4d c...
const pointer ** operator[](int n) const
iterator4d_box element assignment operator. Equivalent to *(k + n).
DPoint4d< int > difference_type
Container4D::const_row_iterator row_end(size_type slab, size_type slice, size_type row) const
const_iterator4d_box element assignment operator.
self operator++(int)
Postincrement a iterator4d_box. Iterate to the next location inside the Box4d.
int x4() const
Access to the fourth subscript of the current const_iterator4d_box.
int x1() const
Access to the first subscript of the current const_iterator4d_box.
Container4D::row_iterator row_begin(size_type slab, size_type slice, size_type row)
iterator4d_box element assignment operator.
friend bool operator==(const self &i1, const self &i2)
Equality operator.
Provides a class to modelize 4d points.
self & operator=(const self &o)
Assign a const_iterator4d_box.
Provides a class to modelize the difference of slip::Point3d.
Container4D::const_slice_iterator slice_end(size_type slab, size_type row, size_type col) const
const_iterator4d_box element assignment operator.
self & operator-=(const difference_type &d)
iterator4d_box substraction.
Container4D::size_type size_type
Container4D::col_iterator col_begin(size_type slab, size_type slice, size_type col)
iterator4d_box element assignment operator.
friend bool operator>=(const self &i1, const self &i2)
>= operator.
friend bool operator<=(const self &i1, const self &i2)
<= operator.
Container4D::slab_iterator slab_end(size_type slice, size_type row, size_type col)
iterator4d_box element assignment operator.
int x2() const
Access to the second subscript of the current iterator4d_box.
iterator4d_box(Container4D *c, const Box4d< int > &b)
Constructs a iterator4d_box.
friend bool operator>=(const self &i1, const self &i2)
>= operator.
void dx1(const CoordType &dx)
Accessor of the first coordinate of DPoint2d.
int j() const
Access to the fourth subscript of the current iterator4d_box.
int x3() const
Access to the third subscript of the current iterator4d_box.
void dx2(const CoordType &dx)
Accessor of the second coordinate of DPoint4d.
int i() const
Access to the third subscript of the current const_iterator4d_box.
pointer operator[](diff3d d)
iterator4d_box element assignment operator. Equivalent to *(k + d) = t.
Container4D::const_row_iterator row_begin(size_type slab, size_type slice, size_type row) const
const_iterator4d_box element assignment operator.
void dx1(const CoordType &dx)
Accessor of the first coordinate of DPoint4d.
Difference of Point4D class, specialization of DPoint<CoordType,DIM> with DIM = 4.
Container4D::const_reference reference
reference operator*()
Dereference assignment operator. Returns the element that the current iterator4d_box i point to...
Container4D::const_pointer pointer
Provides a class to modelize the difference of 4d points.
slip::DPoint2d< int > diff2d
Container4D::row_iterator row_end(size_type slab, size_type slice, size_type row)
iterator4d_box element assignment operator.
Container4D::const_slice_iterator slice_begin(size_type slab, size_type row, size_type col) const
const_iterator4d_box element assignment operator.
pointer operator[](diff3d d) const
const_iterator4d_box element assignment operator. Equivalent to *(k + d) = t.
pointer ** operator[](int n) const
const_iterator4d_box element assignment operator. Equivalent to *(k + n).
Container4D::value_type value_type
int x2() const
Access to the second subscript of the current const_iterator4d_box.
void last_back_bottom_right(slip::Point< CoordType, 4 >)
Accessor/Mutator of the last_back_bottom_right point (p2) of Box4d.
self & operator-=(const difference_type &d)
const_iterator4d_box substraction.
pointer operator->() const
void dx2(const CoordType &dx)
Accessor of the second coordinate of DPoint3d.
Difference of Point2D class, specialization of DPoint<CoordType,DIM> with DIM = 2.
Container4D::const_slab_iterator slab_begin(size_type slice, size_type row, size_type col) const
const_iterator4d_box element assignment operator.
self & operator++()
Preincrement a iterator4d_box. Iterate to the next location inside the Box4d.
self & operator++()
Preincrement a const_iterator4d_box. Iterate to the next location inside the Box4d.
Container4D::value_type value_type
void dx3(const CoordType &dx)
Accessor of the third coordinate of DPoint4d.
int x1() const
Access to the first subscript of the current iterator4d_box.
Container4D::reference reference
Container4D::size_type size_type
Container4D::const_col_iterator col_end(size_type slab, size_type slice, size_type col) const
const_iterator4d_box element assignment operator.
Container4D::col_iterator col_end(size_type slab, size_type slice, size_type col)
iterator4d_box element assignment operator.
int x4() const
Access to the fourth subscript of the current iterator4d_box.
CoordType width() const
compute the width of the Box4d (fourth dimension size).
self & operator+=(const difference_type &d)
const_iterator4d_box addition.
friend bool operator<(const self &i1, const self &i2)
< operator.
int x3() const
Access to the third subscript of the current const_iterator4d_box.
Provides a class to manipulate 4d box.
friend bool operator>(const self &i1, const self &i2)
operator.
void dx4(const CoordType &dx)
Accessor of the fourth coordinate of DPoint4d.
int j() const
Access to the fourth subscript of the current const_iterator4d_box.
self & operator--()
Predecrement a iterator4d_box. Iterate to the previous location inside the Box4d. ...
slip::DPoint2d< int > diff2d
reference operator[](difference_type d)
iterator4d_box element assignment operator. Equivalent to *(k + d) = t.
self & operator=(const self &o)
Assign a iterator4d_box.
int k() const
Access to the second subscript of the current iterator4d_box.
self operator+(const difference_type &d)
iterator4d_box addition.
friend difference_type operator-(const self &i1, const self &i2)
iterator4d_box difference operator.
CoordType duration() const
compute the duration of the Box4d (first dimension size).
int k() const
Access to the second subscript of the current const_iterator4d_box.
iterator4d_box(const self &o)
Constructs a copy of the iterator4d_box o.
const reference operator*() const
Dereference operator. Returns the element that the current iterator4d_box i point to...
self operator+(const difference_type &d)
const_iterator4d_box addition.
CoordType height() const
compute the height of the Box4d (third dimension size).
reference operator[](difference_type d) const
const_iterator4d_box element assignment operator. Equivalent to *(k + d) = t.
void dx1(const CoordType &dx)
Accessor of the first coordinate of DPoint3d.
self operator-(const difference_type &d)
iterator4d_box substraction.
std::random_access_iterator4d_tag iterator_category
friend bool operator<(const self &i1, const self &i2)
< operator.
int t() const
Access to the first subscript of the current iterator4d_box.
Container4D::pointer pointer
friend bool operator>(const self &i1, const self &i2)
operator.
pointer * operator[](diff2d d)
iterator4d_box element assignment operator. Equivalent to *(k + d) = t.
Container4D::const_col_iterator col_begin(size_type slab, size_type slice, size_type col) const
const_iterator4d_box element assignment operator.
const_iterator4d_box(Container4D *c, const Box4d< int > &b)
Constructs a const_iterator4d_box.
reference operator*() const
Dereference assignment operator. Returns the element that the current iterator4d_box i point to...
const_iterator4d_box(const self &o)
Constructs a copy of the const_iterator4d_box o.
int i() const
Access to the third subscript of the current iterator4d_box.
DPoint4d< int > difference_type
const_iterator4d_box()
Constructs a const_iterator4d_box.
Container4D::slice_iterator slice_end(size_type slab, size_type row, size_type col)
iterator4d_box element assignment operator.