---
title: ARGeometryElement
framework: arkit
role: symbol
role_heading: Class
path: arkit/argeometryelement
---

# ARGeometryElement

A container for index data, such as vertex indices of a face.

## Declaration

```swift
class ARGeometryElement
```

## Overview

Overview ARMeshGeometry uses geometry-elements to store face data (see faces). Each face is defined by the primitive type, for example, ARGeometryPrimitiveType.triangle. To demonstrate, an ARMeshGeometry instance with two triangle-type faces results in the following configuration: faces count = 2 faces indexCountPerPrimitive = 3 (because primitiveType is ARGeometryPrimitiveType.triangle) faces bytesPerIndex = 4 (because vertex indices are the type UInt32) The buffer’s total size in bytes = count * indexCountPerPrimitive * bytesPerIndex (which in this case, is 2 * 3 * 4 = 24 bytes)

## Topics

### Accessing Index Data

- [subscript(_:)](arkit/argeometryelement/subscript(_:).md)
- [buffer](arkit/argeometryelement/buffer.md)

### Getting Index Information

- [bytesPerIndex](arkit/argeometryelement/bytesperindex.md)
- [count](arkit/argeometryelement/count.md)
- [indexCountPerPrimitive](arkit/argeometryelement/indexcountperprimitive.md)
- [primitiveType](arkit/argeometryelement/primitivetype.md)
- [ARGeometryPrimitiveType](arkit/argeometryprimitivetype.md)

### Initializers

- [init(coder:)](arkit/argeometryelement/init(coder:).md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSCoding](foundation/nscoding.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [NSSecureCoding](foundation/nssecurecoding.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Getting Geometry Information

- [classification](arkit/armeshgeometry/classification.md)
- [ARMeshClassification](arkit/armeshclassification.md)
- [faces](arkit/armeshgeometry/faces.md)
- [normals](arkit/armeshgeometry/normals.md)
