Oriented converter of a pair of integers to a sole index. More...
#include <SMESH_Indexer.hxx>
Public Types | |
enum | OriFlags { NO_TRSF = 0 , REV_X = 1 , REV_Y = 2 , SWAP_XY = 4 , MAX_ORI = REV_X|REV_Y|SWAP_XY } |
< transformation types More... | |
Public Member Functions | |
SMESH_OrientedIndexer (const SMESH_Indexer &indexer, const int oriFlags=NO_TRSF) | |
Return index by XY. More... | |
size_t | operator() (size_t x, size_t y) const |
Return index for a corner. More... | |
size_t | corner (bool xMax, bool yMax) const |
size_t | xSize () const |
size_t | ySize () const |
void | set (size_t xSize, size_t ySize) |
set size More... | |
size_t | size () const |
Data Fields | |
size_t | _xSize |
size_t | _ySize |
Private Types | |
typedef SMESH_Indexer | TFather |
typedef void(* | TFun) (size_t &x, size_t &y) |
Static Private Member Functions | |
static void | lazy (size_t &, size_t &) |
static void | reverse (size_t &x, size_t &size) |
static void | swap (size_t &x, size_t &y) |
Private Attributes | |
TFun | _xRevFun |
TFun | _yRevFun |
TFun | _swapFun |
size_t | _xSizeOriented |
size_t | _ySizeOriented |
Oriented converter of a pair of integers to a sole index.
Allows virtual transformation of an 1D array viewed as 2D one. Possible transformations are inverse in one or two directions and exchange of the directions. Any combination of these transformations is allowed.
The following code picks up a transformation such that two known array items appear in desired positions:
|
private |
|
private |
SMESH_OrientedIndexer::SMESH_OrientedIndexer | ( | const SMESH_Indexer & | indexer, |
const int | oriFlags = NO_TRSF |
||
) |
Return index by XY.
References _xSizeOriented, and _ySizeOriented.
size_t SMESH_OrientedIndexer::corner | ( | bool | xMax, |
bool | yMax | ||
) | const |
|
staticprivate |
size_t SMESH_OrientedIndexer::operator() | ( | size_t | x, |
size_t | y | ||
) | const |
Return index for a corner.
References SMESH_Indexer::_xSize, SMESH_Indexer::_ySize, and SMESH_Indexer::operator()().
|
staticprivate |
References SMESH_Indexer::size().
|
inherited |
set size
References SMESH_Indexer::_xSize, and SMESH_Indexer::_ySize.
|
inherited |
References SMESH_Indexer::_xSize, and SMESH_Indexer::_ySize.
|
staticprivate |
size_t SMESH_OrientedIndexer::xSize | ( | ) | const |
References _xSizeOriented.
size_t SMESH_OrientedIndexer::ySize | ( | ) | const |
References _ySizeOriented.
|
private |
|
private |
|
inherited |
Referenced by corner(), SMESH_Indexer::operator()(), operator()(), SMESH_Indexer::set(), and SMESH_Indexer::size().
|
private |
Referenced by SMESH_OrientedIndexer(), and xSize().
|
private |
|
inherited |
Referenced by corner(), operator()(), SMESH_Indexer::set(), and SMESH_Indexer::size().
|
private |
Referenced by SMESH_OrientedIndexer(), and ySize().