Loading...
Searching...
No Matches
juce::EdgeTable Class Reference

## Detailed Description

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

See also
  Path, Graphics

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

- juce_graphics/geometry/juce_EdgeTable.h

## Public Member Functions

| EdgeTable (Rectangle< int > clipLimits, const Path &pathToAdd, const AffineTransform &transform)
| Creates an edge table containing a path.
| EdgeTable (Rectangle< int > rectangleToAdd)
| Creates an edge table containing a rectangle.
| EdgeTable (Rectangle< float > rectangleToAdd)
| Creates an edge table containing a rectangle.
| EdgeTable (const RectangleList< int > &rectanglesToAdd)
| Creates an edge table containing a rectangle list.
| EdgeTable (const RectangleList< float > &rectanglesToAdd)
| Creates an edge table containing a rectangle list.
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.
void | optimiseTable ()
| Reduces the amount of space the table has allocated.
template<class EdgeTableIterationCallback>
void | iterate (EdgeTableIterationCallback &iterationCallback) const noexcept
| Iterates the lines in the table, for rendering.

## Constructors and Destructors

## EdgeTable() [1/5]

juce::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

Referenced by clipToEdgeTable().

## EdgeTable() [2/5]

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

explicit

Creates an edge table containing a rectangle.

## EdgeTable() [3/5]

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

explicit

Creates an edge table containing a rectangle.

## EdgeTable() [4/5]

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

explicit

Creates an edge table containing a rectangle list.

## EdgeTable() [5/5]

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

explicit

Creates an edge table containing a rectangle list.

## Member Functions

## clipToRectangle()

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

## excludeRectangle()

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

## clipToEdgeTable()

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

References EdgeTable().

## clipLineToMask()

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

References x, and y.

## isEmpty()

bool juce::EdgeTable::isEmpty | ( |  | ) |

noexcept

## getMaximumBounds()

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

inline noexcept

References getMaximumBounds().

Referenced by getMaximumBounds().

## translate()

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

noexcept

## multiplyLevels()

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

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

## optimiseTable()

void juce::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 juce::EdgeTable::iterate | ( | EdgeTableIterationCallback & | iterationCallback | ) | const

inline 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;
  x
  float x
  Definition juce_UnityPluginInterface.h:197
  y
  float float y
  Definition juce_UnityPluginInterface.h:197
  (these don't necessarily have to be 'const', but it might help it go faster)

References juce::isPositiveAndBelow(), jassert, x, and y.

### Purchase

Get JUCE

### Discover

What's New in JUCE Features

### Learn

Documentaion Tutorials Made with JUCE Resources

### Support

JUCE Forum Newsletter Archive

### About

Contact Us JUCE Legal JUCE Licensing FAQ

### Events

Audio Developer Conference
© Raw Material Software Limited