|
NeighborCode Class Reference
|
 |
Encapsulation of direction management for the 8-neighborhood.
More...
#include <vigra/pixelneighborhood.hxx>
|
enum | Direction {
Error = -1,
East = 0,
NorthEast,
North,
NorthWest,
West,
SouthWest,
South,
SouthEast,
DirectionCount,
CausalFirst = NorthEast,
CausalLast = West,
AntiCausalFirst = SouthWest,
AntiCausalLast = East
} |
|
Detailed Description
Encapsulation of direction management for the 8-neighborhood.
This helper class allows the transformation between Freeman chain codes (East = 0, NorthEast = 1 etc.) and the corresponding Diff2D instances and back.
You can either use the chain codes by explicit qualification:
or you can fix 8-neighborhood by importing the entire namespace in your function:
using namespace EightNeighborhood;
If you want to pass 8-neighborhood codes as a template parameter, use the class EightNeighborhood::NeighborCode.
#include <vigra/pixelneighborhood.hxx>
Namespace: vigra::EightNeighborhood
The number of valid neighbors if the current center is at the image border.
The valid direction codes when the center is at the image border. index must be in the range 0...nearBorderDirectionCount(b)-1
.
Transform direction code into corresponding Diff2D offset. (note: there is no bounds checking on the code you pass.)
static Diff2D const& diff |
( |
int |
code | ) |
|
|
static |
Equivalent to diff(static_cast<Direction>(code)). (note: there is no bounds checking on the code you pass.)
Get the relative offset from one neighbor to the other. For example, relativeDiff(East, West) == Diff2D(-2,0)
. (note: there is no bounds checking on the code you pass.)
static Diff2D const& relativeDiff |
( |
int |
fromCode, |
|
|
int |
toCode |
|
) |
| |
|
static |
Equivalent to relativeDiff(static_cast<Direction>(fromCode), static_cast<Direction>(toCode)). (note: there is no bounds checking on the code you pass.)
static int dX |
( |
int |
code | ) |
|
|
static |
static int dY |
( |
int |
code | ) |
|
|
static |
Transform 4-neighborhood code into 8-neighborhood code.
Transform Diff2D offset into corresponding direction code. The code Direction::Error
will be returned if diff
is not in the 8-neighborhood.
Check whether a code refers to a diagonal direction. Useful if you want to abstract the differences between 4- and 8-neighborhood.
static Diff2D const& right |
( |
| ) |
|
|
static |
Offset to the right neighbor
static Diff2D const& topRight |
( |
| ) |
|
|
static |
Offset to the topRight neighbor
Offset to the top neighbor
static Diff2D const& topLeft |
( |
| ) |
|
|
static |
Offset to the topLeft neighbor
Offset to the left neighbor
static Diff2D const& bottomLeft |
( |
| ) |
|
|
static |
Offset to the bottomLeft neighbor
static Diff2D const& bottom |
( |
| ) |
|
|
static |
Offset to the bottom neighbor
static Diff2D const& bottomRight |
( |
| ) |
|
|
static |
Offset to the bottomRight neighbor
Offset to the east neighbor
static Diff2D const& northEast |
( |
| ) |
|
|
static |
Offset to the northEast neighbor
static Diff2D const& north |
( |
| ) |
|
|
static |
Offset to the north neighbor
static Diff2D const& northWest |
( |
| ) |
|
|
static |
Offset to the northWest neighbor
Offset to the west neighbor
static Diff2D const& southWest |
( |
| ) |
|
|
static |
Offset to the southWest neighbor
static Diff2D const& south |
( |
| ) |
|
|
static |
Offset to the south neighbor
static Diff2D const& southEast |
( |
| ) |
|
|
static |
Offset to the southEast neighbor
The documentation for this class was generated from the following file: