# `GSPath primitiveRepresentation`

*Instance Method*

A path tracing the same outline using primitive node types and connections.

## Declaration

```swift
func primitiveRepresentation() -> GSPath
```

```objc
- (GSPath *) primitiveRepresentation;
```

```python
primitiveRepresentation() -> GSPath
```

## Discussion

- Node types are limited to `GSNodeTypeLine`, `GSNodeTypeCubicCurve`, `GSNodeTypeQuadraticCurve`, and `GSNodeTypeOffCurve`.
- Connections are limited to `GSNodeConnectionSharp` and `GSNodeConnectionSmooth`.
- Path components (corners, caps, segments, brushes) are decomposed.

Returns `self` when the path is already primitive.

## See Also

### Representations

- [`GSPath bezierPath`](/Core/GlyphsCore/GSPath/bezierPath) — An AppKit drawing path for the path.
- [`GSPath expandedStroke`](/Core/GlyphsCore/GSPath/expandedStroke) — Stroke outlines built from the path stroke attributes.
- [`GSPath flattenedPath`](/Core/GlyphsCore/GSPath/flattenedPath) — A path with path components expanded into outline nodes.
- [`GSPath removeOutsideOverlaps:`](/Core/GlyphsCore/GSPath/removeOutsideOverlaps:) — Removes outside overlaps at sharp line corners.
- [`GSPath decomposeCorner:`](/Core/GlyphsCore/GSPath/decomposeCorner:) — Replaces a corner, cap, segment, brush, or head hint with outline geometry.
- [`GSPath convertSpecialToBezier`](/Core/GlyphsCore/GSPath/convertSpecialToBezier) — A cubic path representation with special curve types converted to Bezier curves.
- [`GSPath primitiveRepresentationSecondaryPen:`](/Core/GlyphsCore/GSPath/primitiveRepresentationSecondaryPen:) — Paths tracing the same outline using primitive node types and connections.
- [`GSPath.isPrimitive`](/Core/GlyphsCore/GSPath/isPrimitive) — Whether the path already uses primitive node types and connections.

