23 #ifndef RANGOARRAY3D_H 24 #define RANGOARRAY3D_H 26 #include "utility/matrices/RangoIndice.h" 39 : layer_range(rcp), row_range(rf),column_range(rc) {}
41 : layer_range(iLayer,iLayer), row_range(rf),column_range(rc) {}
43 : layer_range(rcp), row_range(iRow, iRow),column_range(rc) {}
45 : layer_range(rcp), row_range(rf),column_range(col,col) {}
49 size_t getNumberOfLayers(
void)
const 50 {
return row_range.Size(); }
51 size_t getNumberOfRows(
void)
const 52 {
return row_range.Size(); }
53 size_t getNumberOfColumns(
void)
const 54 {
return column_range.Size(); }
55 size_t Size(
void)
const 56 {
return getNumberOfLayers()*getNumberOfRows()*getNumberOfColumns(); }
57 bool Vacio(
void)
const;
59 {
return layer_range; }
61 {
return layer_range; }
67 {
return column_range; }
69 {
return column_range; }
79 inline static const char &Separador(
void)
80 {
return RangoIndice::Separador(); }
81 void Clip(
const size_t &cpmax,
const size_t &fmax,
const size_t &cmax);
84 void Print(std::ostream &os)
const;
89 std::ostream &operator<<(std::ostream &os,
const Array3dRange &rango);
93 Array3dRange::Array3dRange(
const TTZ &ttz)
94 : layer_range(1,ttz.getNumberOfLayers()), row_range(1,ttz.getNumberOfRows()),column_range(1,ttz.getNumberOfColumns()) {}
size_t Dimension(void) const
Return la dimensión del rango 80,1,2 ó 3).
Definition: Array3dRange.cc:30
bool Vacio(void) const
Return verdadero si el rango no contiene ningún índice.
Definition: Array3dRange.cc:26
bool isConstantJLayer(void) const
Return verdadero si los indices que varían son los I y K.
Definition: Array3dRange.cc:65
bool isKRow(void) const
Return verdadero si el único índice que varía es el K.
Definition: Array3dRange.cc:54
bool isJRow(void) const
Return verdadero si el único índice que varía es el J.
Definition: Array3dRange.cc:47
void Print(std::ostream &os) const
Imprime el rango.
Definition: Array3dRange.cc:73
bool isConstantILayer(void) const
Return verdadero si los indices que varían son los J y K.
Definition: Array3dRange.cc:61
bool isIRow(void) const
Return verdadero si el único índice que varía es el I.
Definition: Array3dRange.cc:40
bool isConstantKLayer(void) const
Return verdadero si los indices que varían son los I y J.
Definition: Array3dRange.cc:69
Rangos de variación de tres índices, se emplea en BoxConstRef.
Definition: Array3dRange.h:32
void Clip(const size_t &cpmax, const size_t &fmax, const size_t &cmax)
Reduce los valores del rango de manera que ambos sean menores que los que se pasan como parámetro...
Definition: Array3dRange.cc:78
void Intersec(const Array3dRange &)
Assigns to this one the intersection of both ranges.
Definition: Array3dRange.cc:86
Rango de variación de un índice, se emplea en BoxConstRef.
Definition: RangoIndice.h:30