MatrixWalkers Namespace Reference

Contains various iterators for matrices (see Matrix) to be used in walkOperate() and walkOperateCheckRotate(). More...


Classes

struct  RotBase
 Base structure for walkers. More...
struct  Rotation_0
 No rotation: x->, y->. More...
struct  Rotation_1_T
 Rotated 90deg\. More...
struct  Rotation_2
 Rotated 180deg\. More...
struct  Rotation_3_T
 Rotated 270deg\. More...
struct  Rotation_0_T
 No rotation, transposed: y->, x->. More...
struct  Rotation_1
 Rotated 90deg\. More...
struct  Rotation_2_T
 Rotated 180deg\. More...
struct  Rotation_3
 Rotated 270deg\. More...
struct  Rotation
 Performs manipulations with rotation codes 0-7 (dihedral group of order eight). More...
struct  Checked
 Checked_ iterator for a rectangle in a matrix, no rotation. More...
struct  CheckedImage
 Checked_ iterator for a whole QImage; no rotation, but always transposed. More...
struct  OperatorBase
 A convenience base type for operators to use with walkOperate(). More...
struct  RDSummer
 An operator computing the sum of products. More...
struct  AddMulCopy
 An operator performing a= (b+toAdd)*toMul. More...
struct  MulAddCopyChecked
 An operator performing a= b*toMul+toAdd and moving the result into [min,max] bounds. More...
struct  SumWalker
 Walker that iterates over rectangles in a matrix and returns their sums, to be constructed by makeSumWalker. More...
struct  HalfShrinkerMul
 Similar to HalfShrinker, but instead of multiplying the sums with 0.25 it uses an arbitrary number. More...
struct  AddMulCopyTo2nd
 Transformer performing an affine function. More...
struct  Assigner
 A simple assigning operator - assigns its second argument into the first one. More...
struct  SignChanger
 Transformer performing sign change. More...
struct  ReverseAssigner
 A simple assigning operator - assigns its second argument into the first one. More...
struct  HalfShrinker
 Matrix iterator performing a 2x2 to 1 shrink. More...
struct  HorizShrinker
 Matrix iterator performing a 3x3 to 1x2 shrink. More...
struct  VertShrinker
 Matrix iterator performing a 3x3 to 2x1 shrink. More...
struct  DiamShrinker
 Matrix iterator performing a shrink of a diamond (rotated sub-square) into a square, decreasing the area of used pixels to 50%. More...

Functions

template<class Checked , class Unchecked , class Operator >
Operator walkOperate (Checked checked, Unchecked unchecked, Operator oper)
 Iterates two matrix iterators and performs an action.
template<class Check , class U , class Operator >
Operator walkOperateCheckRotate (Check checked, Operator oper, MatrixSlice< U > pixels2, const Block &block2, char rotation)
 A flavour of walkOperate() choosing the right Rotation_* iterator based on rotation and constructing it from pixels2 and block2.
template<class T , class I >
Checked< T, I > makeLinearizer (T *start, I inCount, I outCount)
 Creates a Checked structure to walk a linear array as a matrix.
template<class SumT , class PixT , class I >
SumWalker< SumT, PixT, I > makeSumWalker (const SummedMatrix< SumT, PixT, I > &matrix, I x0, I y0, I inLevel, I outLevel)
 Constructs a square SumWalker on matrix starting on [x0,y0], iterating over squares of level (inLevel-outLevel) and covering a square of level outLevel.


Detailed Description

Contains various iterators for matrices (see Matrix) to be used in walkOperate() and walkOperateCheckRotate().


Function Documentation

template<class Checked , class Unchecked , class Operator >
Operator MatrixWalkers::walkOperate ( Checked  checked,
Unchecked  unchecked,
Operator  oper 
) [inline]

Iterates two matrix iterators and performs an action.

The loop is controled by the first iterator (checked) and on every corresponding pair (a,b) oper(a,b) is invoked. Returns oper.

Definition at line 252 of file matrixUtil.h.

References MatrixWalkers::RotBase< T, I >::get(), MatrixWalkers::Checked< T, I >::innerCond(), MatrixWalkers::RotBase< T, I >::innerInit(), MatrixWalkers::Rotation_0< T, I >::innerStep(), MatrixWalkers::Checked< T, I >::outerCond(), MatrixWalkers::Checked< T, I >::outerStep(), and walkOperate().

Referenced by MStdDomains::shrinkHorizontally(), MStdDomains::shrinkToDiamond(), MStdDomains::shrinkToHalf(), MStdDomains::shrinkVertically(), walkOperate(), and walkOperateCheckRotate().

Here is the call graph for this function:

Here is the caller graph for this function:


Generated on Thu Aug 6 22:33:15 2009 for Fractal Image Compressor by  doxygen 1.5.8