# WrapDeformer

Roblox Engine API class from Roblox Studio 0.744.0.7441077 (version-7aaa6838d36c4448).

- Inherits from, nearest first: [BaseWrap](https://rapi.sleaze.dev/classes/BaseWrap.md), [Instance](https://rapi.sleaze.dev/classes/Instance.md), [Object](https://rapi.sleaze.dev/classes/Object.md)
- Memory category: Instances
- HTML page: https://rapi.sleaze.dev/classes/WrapDeformer/
- Roblox documentation: https://create.roblox.com/docs/reference/engine/classes/WrapDeformer

Allows for the real-time deformation of a [`MeshPart`](https://rapi.sleaze.dev/classes/MeshPart.md).

## Methods

### CreateEditableMeshAsync

```luau
WrapDeformer:CreateEditableMeshAsync(): EditableMesh
```

- Tags: Yields, Capabilities: AvatarAppearance

Returns an [`EditableMesh`](https://rapi.sleaze.dev/classes/EditableMesh.md) (currently unskinned) equivalent to the deformed parent mesh.

Returns: An [`EditableMesh`](https://rapi.sleaze.dev/classes/EditableMesh.md) matching the deformed parent mesh geometry, with its `FixedSize` set to `true`.

### GetDeformedCFrameAsync

```luau
WrapDeformer:GetDeformedCFrameAsync(originalCFrame: CFrame): CFrame
```

- Tags: Yields, Capabilities: AvatarAppearance

Returns a [`CFrame`](https://rapi.sleaze.dev/index/types/CFrame.md) deformed comparably to the [`MeshPart`](https://rapi.sleaze.dev/classes/MeshPart.md).

Parameters:

- `originalCFrame`: The [`CFrame`](https://rapi.sleaze.dev/index/types/CFrame.md), expressed in the local space of the parent [`MeshPart`](https://rapi.sleaze.dev/classes/MeshPart.md), whose position is deformed.

Returns: A [`CFrame`](https://rapi.sleaze.dev/index/types/CFrame.md) in the parent [`MeshPart`](https://rapi.sleaze.dev/classes/MeshPart.md) space with its position displaced by the same deformation field applied to the parent mesh; rotation is unchanged.

### SetCageMeshContent

```luau
WrapDeformer:SetCageMeshContent(content: Content, cageOrigin: CFrame?)
```

- Tags: Capabilities: AvatarAppearance

Sets the cage mesh used to deform against a sibling [`WrapTarget`](https://rapi.sleaze.dev/classes/WrapTarget.md) cage mesh.

Parameters:

- `content`: A Roblox mesh asset ID or an [`EditableMesh`](https://rapi.sleaze.dev/classes/EditableMesh.md) reference specifying the cage mesh to deform against the sibling [`WrapTarget`](https://rapi.sleaze.dev/classes/WrapTarget.md).
- `cageOrigin`: An optional [`CFrame`](https://rapi.sleaze.dev/index/types/CFrame.md), in the parent [`MeshPart`](https://rapi.sleaze.dev/classes/MeshPart.md) space, that sets the cage's [`CageOrigin`](https://rapi.sleaze.dev/classes/BaseWrap.md). When omitted, the existing [`CageOrigin`](https://rapi.sleaze.dev/classes/BaseWrap.md) is left unchanged.

## Inherited members

- From [BaseWrap](https://rapi.sleaze.dev/classes/BaseWrap.md): `CageMeshContent`, `CageMeshId`, `CageOrigin`, `ImportOrigin`, `TemporaryCageMeshContent`, `TemporaryCageMeshId`, `CageOriginWorld`, `HSRAssetId`, `HSRContent`, `HSRData`, `HSRMeshIdData`, `ImportInProcess`, `ImportOriginWorld`, `GetCageOffset`, `GetFaces`, `GetUVs`, `GetVertices`, `IsHSRReady`, `ModifyVertices`, `VerticesModified`
- From [Instance](https://rapi.sleaze.dev/classes/Instance.md): `Archivable`, `archivable`, `Attributes`, `AttributesReplicate`, `AttributesSerialize`, `HistoryId`, `Name`, `Parent`, `PredictionMode`, `PropertyStatusStudio`, `RobloxLocked`, `SerializedOverrides`, `SourceAssetId`, `Tags`, `UniqueId`, `numExpectedDirectChildren`, `DataCost`, `Capabilities`, `DefinesCapabilities`, `IsInSandbox`, `Sandboxed`, `AddTag`, `ClearAllChildren`, `Clone`, `Destroy`, `FindFirstAncestor`, `FindFirstAncestorOfClass`, `FindFirstAncestorWhichIsA`, `FindFirstChild`, `FindFirstChildOfClass`, `FindFirstChildWhichIsA`, `FindFirstDescendant`, `GetActor`, `GetAttribute`, `GetAttributeChangedSignal`, `GetAttributes`, `GetChildren`, `GetDebugId`, `GetDescendants`, `GetFullName`, `GetStyled`, `GetStyledPropertyChangedSignal`, `GetTags`, `HasTag`, `IsAncestorOf`, `IsDescendantOf`, `IsPropertyModified`, `QueryDescendants`, `RemoveTag`, `ResetPropertyToDefault`, `SetAttribute`, `WaitForChild`, `Remove`, `children`, `clone`, `destroy`, `findFirstChild`, `getChildren`, `isDescendantOf`, `remove`, `AncestryChanged`, `AttributeChanged`, `ChildAdded`, `ChildRemoved`, `DescendantAdded`, `DescendantRemoving`, `Destroying`, `StyledPropertiesChanged`, `childAdded`
- From [Object](https://rapi.sleaze.dev/classes/Object.md): `ClassName`, `className`, `GetPropertyChangedSignal`, `IsA`, `isA`, `Changed`
