# `GSFont masterRangesFor:masters:customParameters:internMin:internDefault:internMax:externMin:externDefault:externMax:mastersIntern:mastersExtern:defaultMaster:error:`

*Type Method*

Calculates internal and external coordinate ranges for font axes and masters.

## Declaration

```swift
class func masterRanges(for axes: [GSAxis], masters: [GSFontMaster], customParameters: [GSCustomParameter], internMin: UnsafeMutablePointer<CGFloat>, internDefault: UnsafeMutablePointer<CGFloat>?, internMax: UnsafeMutablePointer<CGFloat>, externMin: UnsafeMutablePointer<CGFloat>, externDefault: UnsafeMutablePointer<CGFloat>?, externMax: UnsafeMutablePointer<CGFloat>, mastersIntern: UnsafeMutablePointer<UnsafeMutablePointer<CGFloat>?>?, mastersExtern: UnsafeMutablePointer<UnsafeMutablePointer<CGFloat>?>?, defaultMaster: GSFontMaster?) throws
```

```objc
+ (BOOL) masterRangesFor:(NSArray<GSAxis *> *) axes masters:(NSArray<GSFontMaster *> *) masters customParameters:(NSArray<GSCustomParameter *> *) customParameters internMin:(CGFloat *) internMin internDefault:(CGFloat *) internDefault internMax:(CGFloat *) internMax externMin:(CGFloat *) externMin externDefault:(CGFloat *) externDefault externMax:(CGFloat *) externMax mastersIntern:(CGFloat **) mastersIntern mastersExtern:(CGFloat **) mastersExtern defaultMaster:(GSFontMaster *) defaultMaster error:(NSError **) error;
```

```python
masterRangesFor_masters_customParameters_internMin_internDefault_internMax_externMin_externDefault_externMax_mastersIntern_mastersExtern_defaultMaster_error_(axes: list[GSAxis], masters: list[GSFontMaster], customParameters: list[GSCustomParameter], internMin: float, internDefault: float, internMax: float, externMin: float, externDefault: float, externMax: float, defaultMaster: GSFontMaster) -> tuple[bool, float, float, NSError]
```

## Parameters

- `axes` — The axes that define the order of the output values.
- `masters` — The masters that contribute to the ranges.
- `customParameters` — The custom parameters that can contribute virtual locations.
- `defaultMaster` — The master whose coordinates are written to the default buffers.
- `error` — On output, a pointer to an error object that describes why the method failed, or `nil` if no error occurred. If you are not interested in the error information, pass `nil` for this parameter.

## Return Value

`YES` when the ranges could be calculated.

## Discussion

All output buffers must contain one value per axis, in axis order. When master buffers are provided, each per-axis buffer must contain one value per master. Virtual Master and Duplicate Master custom parameters can contribute to the ranges.

## See Also

### Master Locations

- [`GSFont masterNearestToPosition:`](/Core/GlyphsCore/GSFont/masterNearestToPosition:) — Returns the master nearest to an internal design-space position.
- [`GSFont masterNearestToPosition:glyph:`](/Core/GlyphsCore/GSFont/masterNearestToPosition:glyph:) — Returns the master or Intermediate layer nearest to an internal design-space position.
- [`GSFont masterAtPosition:`](/Core/GlyphsCore/GSFont/masterAtPosition:) — Returns the master at an internal design-space position.
- [`GSFont masterRangesInternMin:internDefault:internMax:externMin:externDefault:externMax:mastersIntern:mastersExtern:defaultMaster:error:`](/Core/GlyphsCore/GSFont/masterRangesInternMin:internDefault:internMax:externMin:externDefault:externMax:mastersIntern:mastersExtern:defaultMaster:error:) — Calculates internal and external coordinate ranges for the font axes.

