# `GSGlyph decomposeSpecialComponents:`

*Instance Method*

Decomposes components requiring layer-specific interpolation across each layer group.

## Declaration

```swift
func decomposeSpecialComponents(keepingSmartComponents keepSmart: Bool) -> Bool
```

```objc
- (BOOL) decomposeSpecialComponents:(BOOL) keepSmart;
```

```python
decomposeSpecialComponents_(keepSmart: bool) -> bool
```

## Parameters

- `keepSmart` — Whether Smart Components with piece settings remain components when no other condition requires decomposition.

## Return Value

Whether any layer group contained a component requiring decomposition.

## Discussion

This includes components with a keep-weight setting or component master identifier. Smart Components with piece settings are also decomposed unless they are retained explicitly. Layers in a group must use compatible shape ordering. Corresponding shape indexes are decomposed throughout each layer group to preserve interpolation compatibility. Component anchors are materialized, and automatic alignment is disabled for remaining components.

## See Also

### Components

- [`GSGlyph hasComponents`](/Core/GlyphsCore/GSGlyph/hasComponents) — Whether any stored layer directly contains a component.
- [`GSGlyph hasColorsInComponents`](/Core/GlyphsCore/GSGlyph/hasColorsInComponents) — Whether the first shape of the first font master layer is a component whose glyph uses a color-layer format.

