---
title: MDLSubmeshTopology
framework: modelio
role: symbol
role_heading: Class
path: modelio/mdlsubmeshtopology
---

# MDLSubmeshTopology

A description of how a submesh’s index buffer data is arranged and how that arrangement should be used to produce the submesh’s intended 3D shape.

## Declaration

```swift
class MDLSubmeshTopology
```

## Overview

Overview Model I/O creates topology objects when importing assets containing non-uniform index buffers (that is, index buffers not composed of a single primitive type such as triangles or quads). You can also use topology objects (or load assets from file formats supporting topology information) to describe models for surface subdivision, identifying which edges or vertices remain sharp or become smooth when you use the newSubdividedMesh(_:submeshIndex:subdivisionLevels:) method.

## Topics

### Identifying Faces

- [faceTopology](modelio/mdlsubmeshtopology/facetopology.md)
- [faceCount](modelio/mdlsubmeshtopology/facecount.md)

### Identifying Creases

- [edgeCreaseIndices](modelio/mdlsubmeshtopology/edgecreaseindices.md)
- [edgeCreases](modelio/mdlsubmeshtopology/edgecreases.md)
- [edgeCreaseCount](modelio/mdlsubmeshtopology/edgecreasecount.md)
- [vertexCreaseIndices](modelio/mdlsubmeshtopology/vertexcreaseindices.md)
- [vertexCreases](modelio/mdlsubmeshtopology/vertexcreases.md)
- [vertexCreaseCount](modelio/mdlsubmeshtopology/vertexcreasecount.md)

### Identifying Holes

- [holes](modelio/mdlsubmeshtopology/holes.md)
- [holeCount](modelio/mdlsubmeshtopology/holecount.md)

### Initializers

- [init(submesh:)](modelio/mdlsubmeshtopology/init(submesh:).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)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### 3D Asset Basics

- [MDLAsset](modelio/mdlasset.md)
- [MDLObject](modelio/mdlobject.md)
- [MDLTransform](modelio/mdltransform.md)
- [MDLMesh](modelio/mdlmesh.md)
- [MDLSubmesh](modelio/mdlsubmesh.md)
- [MDLNamed](modelio/mdlnamed.md)
