35 Bitmap& Image,
unsigned int Row,
unsigned int Column)
38 if (not Image.ValidIndex(Row, Column))
40 Index =
static_cast<uint_least32_t
>(Image.MakeIndex(Row, Column));
65 unsigned int Row,
unsigned int Column) noexcept
67 NumberOfNeighbours = 0;
68 if (Neighbour [NumberOfNeighbours].SetLink(Image, Row - 1, Column - 1))
70 if (Neighbour [NumberOfNeighbours].SetLink(Image, Row - 1, Column))
72 if (Neighbour [NumberOfNeighbours].SetLink(Image, Row - 1, Column + 1))
74 if (Neighbour [NumberOfNeighbours].SetLink(Image, Row, Column - 1))
76 if (Neighbour [NumberOfNeighbours].SetLink(Image, Row, Column + 1))
78 if (Neighbour [NumberOfNeighbours].SetLink(Image, Row + 1, Column - 1))
80 if (Neighbour [NumberOfNeighbours].SetLink(Image, Row + 1, Column))
82 if (Neighbour [NumberOfNeighbours].SetLink(Image, Row + 1, Column + 1))
114 Bitmap& Image,
register const uint8_t* ColorPointer,
116 register const uint_least32_t
117 OrthogonalAttraction [UINT8_MAX + 1],
register const
118 uint_least32_t DiagonalAttraction [UINT8_MAX + 1])
121 register unsigned int Index;
126 OrthogonalAttraction: DiagonalAttraction)
127 [abs(ColorPointer [PixelIndex] -
128 ColorPointer [
Neighbour [Index].Index])];
145 register unsigned int Color;
166 register unsigned int Color;
211 unsigned int Column)
const noexcept
214 assert(Column <
Width);
238 if (FirstIndex >= SecondIndex)
239 FirstIndex -= SecondIndex;
241 FirstIndex = SecondIndex - FirstIndex;
242 return FirstIndex == 1 or FirstIndex ==
Width;
266 uint_fast32_t Divisor) noexcept
268 return (Dividend + Divisor / 2) / Divisor;
293 unsigned int Size) noexcept
298 return static_cast<uint_fast32_t
>(Buffer [0]) bitor
299 (
static_cast<uint_fast32_t
>(Buffer [1]) <<
302 return static_cast<uint_fast32_t
>(Buffer [0]) bitor
303 (
static_cast<uint_fast32_t
>(Buffer [1]) <<
305 (
static_cast<uint_fast32_t
>(Buffer [2]) <<
306 (CHAR_BIT * 2)) bitor
307 (
static_cast<uint_fast32_t
>(Buffer [3]) <<
338 unsigned int Size) noexcept
341 Buffer [0] =
static_cast<uint8_t
>(Value);
342 Buffer [1] =
static_cast<uint8_t
>(Value >> CHAR_BIT);
345 Buffer [2] =
static_cast<uint8_t
>(Value >> (CHAR_BIT * 2));
346 Buffer [3] =
static_cast<uint8_t
>(Value >> (CHAR_BIT * 3));
471 (CHAR_BIT *
sizeof(uint32_t)) *
sizeof(uint32_t);
492 NUMBER_OF_GENERATORS + 1]) noexcept
494 register unsigned int Index;