EdgeTable Class Reference
juce_graphics » geometry

A table of horizontal scan-line segments - used for rasterising Paths. More...

## Public Member Functions

| EdgeTable (Rectangle< int > clipLimits, const Path &pathToAdd, const AffineTransform &transform)
| Creates an edge table containing a path. More...
| EdgeTable (Rectangle< int > rectangleToAdd)
| Creates an edge table containing a rectangle. More...
| EdgeTable (Rectangle< float > rectangleToAdd)
| Creates an edge table containing a rectangle. More...
| EdgeTable (const RectangleList< int > &rectanglesToAdd)
| Creates an edge table containing a rectangle list. More...
| EdgeTable (const RectangleList< float > &rectanglesToAdd)
| Creates an edge table containing a rectangle list. More...
| EdgeTable (const EdgeTable &)
| Creates a copy of another edge table. More...
EdgeTable & | operator= (const EdgeTable &)
| Copies from another edge table. More...
| ~EdgeTable ()
| Destructor. More...
void | clipToRectangle (Rectangle< int > r)
void | excludeRectangle (Rectangle< int > r)
void | clipToEdgeTable (const EdgeTable &)
void | clipLineToMask (int x, int y, const uint8 *mask, int maskStride, int numPixels)
bool | isEmpty () noexcept
const Rectangle< int > & | getMaximumBounds () const noexcept
void | translate (float dx, int dy) noexcept
void | multiplyLevels (float factor)
| Scales all the alpha-levels in the table by the given multiplier. More...
void | optimiseTable ()
| Reduces the amount of space the table has allocated. More...
template<class EdgeTableIterationCallback >
void | iterate (EdgeTableIterationCallback &iterationCallback) const noexcept
| Iterates the lines in the table, for rendering. More...

## Detailed Description

A table of horizontal scan-line segments - used for rasterising Paths.

See also
  Path, Graphics

## Constructor & Destructor Documentation

## EdgeTable() [1/6]

EdgeTable::EdgeTable | ( | Rectangle< int > | clipLimits,
|  | const Path & | pathToAdd,
|  | const AffineTransform & | transform
| ) |  |

Creates an edge table containing a path.

A table is created with a fixed vertical range, and only sections of the path which lie within this range will be added to the table.

Parameters

  clipLimits | only the region of the path that lies within this area will be added
  pathToAdd | the path to add to the table
  transform | a transform to apply to the path being added

## EdgeTable() [2/6]

EdgeTable::EdgeTable | ( | Rectangle< int > | rectangleToAdd | ) |

explicit

Creates an edge table containing a rectangle.

## EdgeTable() [3/6]

EdgeTable::EdgeTable | ( | Rectangle< float > | rectangleToAdd | ) |

explicit

Creates an edge table containing a rectangle.

## EdgeTable() [4/6]

EdgeTable::EdgeTable | ( | const RectangleList< int > & | rectanglesToAdd | ) |

explicit

Creates an edge table containing a rectangle list.

## EdgeTable() [5/6]

EdgeTable::EdgeTable | ( | const RectangleList< float > & | rectanglesToAdd | ) |

explicit

Creates an edge table containing a rectangle list.

## EdgeTable() [6/6]

EdgeTable::EdgeTable | ( | const EdgeTable & |  | ) |

Creates a copy of another edge table.

## ~EdgeTable()

EdgeTable::~EdgeTable | ( |  | ) |

Destructor.

## Member Function Documentation

## operator=()

EdgeTable& EdgeTable::operator= | ( | const EdgeTable & |  | ) |

Copies from another edge table.

## clipToRectangle()

void EdgeTable::clipToRectangle | ( | Rectangle< int > | r | ) |

## excludeRectangle()

void EdgeTable::excludeRectangle | ( | Rectangle< int > | r | ) |

## clipToEdgeTable()

void EdgeTable::clipToEdgeTable | ( | const EdgeTable & |  | ) |

## clipLineToMask()

void EdgeTable::clipLineToMask | ( | int | x,
|  | int | y,
|  | const uint8 * | mask,
|  | int | maskStride,
|  | int | numPixels
| ) |  |

## isEmpty()

bool EdgeTable::isEmpty | ( |  | ) |

noexcept

## getMaximumBounds()

const Rectangle<int>& EdgeTable::getMaximumBounds | ( |  | ) | const

noexcept

## translate()

void EdgeTable::translate | ( | float | dx,
|  | int | dy
| ) |  |

noexcept

## multiplyLevels()

void EdgeTable::multiplyLevels | ( | float | factor | ) |

Scales all the alpha-levels in the table by the given multiplier.

## optimiseTable()

void EdgeTable::optimiseTable | ( |  | ) |

Reduces the amount of space the table has allocated.

This will shrink the table down to use as little memory as possible - useful for read-only tables that get stored and re-used for rendering.

## iterate()

template<class EdgeTableIterationCallback >

void EdgeTable::iterate | ( | EdgeTableIterationCallback & | iterationCallback | ) | const

noexcept

Iterates the lines in the table, for rendering.

This function will iterate each line in the table, and call a user-defined class to render each pixel or continuous line of pixels that the table contains.

Parameters

  iterationCallback

  this templated class must contain the following methods:
  inline void setEdgeTableYPos (int y);
  inline void handleEdgeTablePixel (int x, int alphaLevel) const;
  inline void handleEdgeTablePixelFull (int x) const;
  inline void handleEdgeTableLine (int x, int width, int alphaLevel) const;
  inline void handleEdgeTableLineFull (int x, int width) const;
  (these don't necessarily have to be 'const', but it might help it go faster)

References isPositiveAndBelow(), and jassert.

The documentation for this class was generated from the following file:

- juce_EdgeTable.h