<!--
{
  "availability" : [
    "iOS: 18.4.0 -",
    "iPadOS: 18.4.0 -",
    "macCatalyst: -",
    "macOS: 15.4.0 -",
    "tvOS: 18.4.0 -",
    "visionOS: 2.4.0 -",
    "watchOS: 11.4.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "hvf",
  "identifier" : "/documentation/hvf/CompositeWriter",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "hvf"
    ],
    "preciseIdentifier" : "s:3hvf15CompositeWriterP"
  },
  "title" : "CompositeWriter"
}
-->

# CompositeWriter

Protocol for creating a Composite part for rendering or to build an HVGL table

```
protocol CompositeWriter
```

## Topics

### Instance Properties

[`var axisCount: Int`](/documentation/hvf/CompositeWriter/axisCount)

The number of axes the part has

[`var extremumCSCAxisValues: [Float]`](/documentation/hvf/CompositeWriter/extremumCSCAxisValues)

The axis values for extrema, in CSC sparse matrix format

[`var extremumCSCColumnStarts: [UInt16]`](/documentation/hvf/CompositeWriter/extremumCSCColumnStarts)

The CSC column starts for extremum axis values
The columns correspond to the axis extrema, with minimum first, then maximum

[`var extremumCSCRowIndices: [UInt16]`](/documentation/hvf/CompositeWriter/extremumCSCRowIndices)

The CSC row indices for the extremum axis values

[`var extremumRotationIndices: [CompositeExtremumIndex]`](/documentation/hvf/CompositeWriter/extremumRotationIndices)

The row/column indices for extremum rotations, ascending by row/column

[`var extremumRotations: [Float]`](/documentation/hvf/CompositeWriter/extremumRotations)

The corresponding extremum rotations

[`var extremumTranslationIndices: [CompositeExtremumIndex]`](/documentation/hvf/CompositeWriter/extremumTranslationIndices)

The row/column indices for extremum translations, ascending by row/column

[`var extremumTranslations: [CompositeSubpartTranslation]`](/documentation/hvf/CompositeWriter/extremumTranslations)

The corresponding extremum translations

[`var masterCSCAxisValues: [Float]`](/documentation/hvf/CompositeWriter/masterCSCAxisValues)

The axis values for the master, corresponding to the row indices

[`var masterCSCRowIndices: [UInt16]`](/documentation/hvf/CompositeWriter/masterCSCRowIndices)

The row indices for the master axis values, ascending order

[`var masterRotationIndices: [UInt16]`](/documentation/hvf/CompositeWriter/masterRotationIndices)

The row indices for master rotations, ascending

[`var masterRotations: [Float]`](/documentation/hvf/CompositeWriter/masterRotations)

The corresponding master rotations, in radians, counterclockwise

[`var masterTranslationIndices: [UInt16]`](/documentation/hvf/CompositeWriter/masterTranslationIndices)

The row indices for master translations, ascending

[`var masterTranslations: [CompositeSubpartTranslation]`](/documentation/hvf/CompositeWriter/masterTranslations)

The corresponding master translations

[`var maximumExtremumCount: Int`](/documentation/hvf/CompositeWriter/maximumExtremumCount)

The largest number of axis extrema of any part in the structure tree

[`var subpartCount: Int`](/documentation/hvf/CompositeWriter/subpartCount)

The number of subparts the part has

[`var subparts: [CompositeSubpart]`](/documentation/hvf/CompositeWriter/subparts)

The composite’s subparts

[`var totalAxisCount: Int`](/documentation/hvf/CompositeWriter/totalAxisCount)

The total number of axes in the composite’s structure tree (including its own)

[`var totalPartCount: Int`](/documentation/hvf/CompositeWriter/totalPartCount)

The total number of parts in the composite’s structure tree (including its own)

### Instance Methods

[`func column(axis: Int, extremum: AxisExtremum) -> Int`](/documentation/hvf/CompositeWriter/column(axis:extremum:))

Convenience for computing matrix column

[`func finalize() -> Bool`](/documentation/hvf/CompositeWriter/finalize())

Call when done writing the Composite

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)