MultipleMaster (Java SE 22 & JDK 22)
Description: declaration: module: java.desktop, package: java.awt.font, interface: MultipleMaster
Keywords: java.awt.font.MultipleMaster interface

Module java.desktop
Package java.awt.font

# Interface MultipleMaster

public interface MultipleMaster
The `MultipleMaster` interface represents Type 1 Multiple Master fonts. A particular `Font` object can implement this interface.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Font`
  `deriveMMFont(float[] axes)`
  Creates a new instance of a multiple master font based on the design axis values contained in the specified array.
  `Font`
  `deriveMMFont(float[] glyphWidths, float avgStemWidth, float typicalCapHeight, float typicalXHeight, float italicAngle)`
  Creates a new instance of a multiple master font based on detailed metric information.
  `float[]`
  `getDesignAxisDefaults()`
  Returns an array of default design values for each axis.
  `String[]`
  `getDesignAxisNames()`
  Returns the name for each design axis.
  `float[]`
  `getDesignAxisRanges()`
  Returns an array of design limits interleaved in the form [from→to] for each axis.
  `int`
  `getNumDesignAxes()`
  Returns the number of multiple master design controls.

- ## Method Details

  - ### getNumDesignAxes

    int getNumDesignAxes()
    Returns the number of multiple master design controls. Design axes include things like width, weight and optical scaling.
    Returns:
      the number of multiple master design controls

  - ### getDesignAxisRanges

    float[] getDesignAxisRanges()
    Returns an array of design limits interleaved in the form [from→to] for each axis. For example, design limits for weight could be from 0.1 to 1.0. The values are returned in the same order returned by `getDesignAxisNames`.
    Returns:
      an array of design limits for each axis.

  - ### getDesignAxisDefaults

    float[] getDesignAxisDefaults()
    Returns an array of default design values for each axis. For example, the default value for weight could be 1.6. The values are returned in the same order returned by `getDesignAxisNames`.
    Returns:
      an array of default design values for each axis.

  - ### getDesignAxisNames

    String[] getDesignAxisNames()
    Returns the name for each design axis. This also determines the order in which the values for each axis are returned.
    Returns:
      an array containing the names of each design axis.

  - ### deriveMMFont

    Font deriveMMFont(float[] axes)
    Creates a new instance of a multiple master font based on the design axis values contained in the specified array. The size of the array must correspond to the value returned from `getNumDesignAxes` and the values of the array elements must fall within limits specified by `getDesignAxesLimits`. In case of an error, `null` is returned.
    Parameters:
      `axes` - an array containing axis values
    Returns:
      a `Font` object that is an instance of `MultipleMaster` and is based on the design axis values provided by `axes`.

  - ### deriveMMFont

    Font deriveMMFont(float[] glyphWidths, float avgStemWidth, float typicalCapHeight, float typicalXHeight, float italicAngle)
    Creates a new instance of a multiple master font based on detailed metric information. In case of an error, `null` is returned.
    Parameters:
      `glyphWidths` - an array of floats representing the desired width of each glyph in font space
      `avgStemWidth` - the average stem width for the overall font in font space
      `typicalCapHeight` - the height of a typical upper case char
      `typicalXHeight` - the height of a typical lower case char
      `italicAngle` - the angle at which the italics lean, in degrees counterclockwise from vertical
    Returns:
      a `Font` object that is an instance of `MultipleMaster` and is based on the specified metric information.