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

All Methods Instance Methods Abstract Methods
`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 Detail

#### 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.