EditableMesh
Stores editable mesh geometry, attributes, bones, and generated render data.
Properties
| Property | Type | Default |
|---|---|---|
FixedSize | boolean | false |
SkinningEnabled | boolean | false |
Name | string | "EditableMesh" |
Functions
`buildRawGeometry`
`notifyLinkedMeshParts`
`instance:AddVertex`
Adds a vertex position to the mesh and returns its vertex id.
`instance:AddNormal`
Adds a normal vector to the mesh and returns its normal id.
`instance:AddUV`
Adds a UV coordinate to the mesh and returns its UV id.
`instance:AddColor`
Adds a vertex color and alpha value to the mesh and returns its color id.
`instance:AddTriangle`
Adds a triangular face from three vertex ids and returns its face id.
`instance:SetPosition`
Updates the stored position for an existing vertex.
`instance:GetPosition`
Returns the stored position for a vertex, or the zero vector when missing.
`instance:SetNormal`
Updates an existing normal vector and marks the mesh dirty.
`instance:GetNormal`
Returns a normal vector by id, or nil when missing.
`instance:SetUV`
Updates an existing UV coordinate and marks the mesh dirty.
`instance:GetUV`
Returns a UV coordinate by id, or nil when missing.
`instance:SetColor`
Updates an existing color entry.
`instance:SetColorAlpha`
Updates the alpha value for an existing color entry.
`instance:GetColor`
Returns a color by id, or nil when missing.
`instance:GetColorAlpha`
Returns a color alpha value by id, or nil when missing.
`instance:SetVertexFaceColor`
Assigns a color id to a vertex corner on a specific face.
`instance:SetVertexFaceNormal`
Assigns a normal id to a vertex corner on a specific face.
`instance:SetVertexFaceUV`
Assigns a UV id to a vertex corner on a specific face.
`instance:GetVertexFaceColor`
Returns the color id assigned to a vertex corner on a face, or 0 when unset.
`instance:GetVertexFaceNormal`
Returns the normal id assigned to a vertex corner on a face, or 0 when unset.
`instance:GetVertexFaceUV`
Returns the UV id assigned to a vertex corner on a face, or 0 when unset.
`instance:GetVertices`
Returns all vertex ids currently stored in the mesh.
`instance:GetNormals`
Returns all normal ids currently stored in the mesh.
`instance:GetUVs`
Returns all UV ids currently stored in the mesh.
`instance:GetColors`
Returns all color ids currently stored in the mesh.
`instance:GetFaces`
Returns all face ids currently stored in the mesh.
`instance:GetFaceVertices`
Returns the three vertex ids used by a face.
`instance:SetFaceColors`
Assigns color ids to the three corners of a face.
`instance:SetFaceNormals`
Assigns normal ids to the three corners of a face.
`instance:SetFaceUVs`
Assigns UV ids to the three corners of a face.
`instance:GetFaceColors`
Returns the three color ids assigned to a face.
`instance:GetFaceNormals`
Returns the three normal ids assigned to a face.
`instance:GetFaceUVs`
Returns the three UV ids assigned to a face.
`instance:RemoveFace`
Removes a face from the mesh and marks geometry dirty.
`instance:RemoveUnused`
Placeholder for removing unused mesh data; currently returns an empty list.
`instance:IdDebugString`
Returns a debug string for an internal mesh id.
`instance:FindClosestVertex`
Returns the id of the vertex nearest to the given point.
`instance:FindVerticesWithinSphere`
Returns vertex ids whose positions are inside or on a sphere.
`instance:GetCenter`
Returns the average position of all vertices.
`instance:GetSize`
Returns the axis-aligned bounding box size of the mesh vertices.
`instance:GetAdjacentFaces`
Returns faces that share an edge with the given face.
`instance:GetAdjacentVertices`
Returns vertices connected to the given vertex by any face.
`instance:GetVertexFaces`
Returns face ids that reference the given vertex.
`instance:AddBone`
Adds a bone definition and returns its bone id.
`instance:GetBones`
Returns all bone ids currently stored in the mesh.
`instance:GetBoneName`
Returns the name assigned to a bone, or an empty string when missing.
`instance:GetBoneCFrame`
Returns the local CFrame assigned to a bone.
`instance:GetBoneIsVirtual`
Returns whether a bone is marked as virtual.
`instance:GetBoneParent`
Returns the parent bone id for a bone, or 0 when none is set.
`instance:GetBoneByName`
Returns the first bone id matching the given name, or 0 when not found.
`instance:SetBoneName`
Updates the name assigned to an existing bone.
`instance:SetBoneCFrame`
Updates the local CFrame assigned to an existing bone.
`instance:SetBoneIsVirtual`
Marks an existing bone as virtual or non-virtual.
`instance:SetBoneParent`
Updates the parent bone id assigned to an existing bone.
`instance:RemoveBone`
Removes a bone definition by id.
`instance:SetVertexBones`
Assigns influencing bone ids to a vertex.
`instance:SetVertexBoneWeights`
Assigns bone weights to a vertex.
`instance:GetVertexBones`
Returns the influencing bone ids assigned to a vertex.
`instance:GetVertexBoneWeights`
Returns the bone weights assigned to a vertex.
`instance:Triangulate`
Builds renderable mesh data from the current faces, vertices, and attributes.
`instance:FlushIfDirty`
Rebuilds mesh data only when geometry has changed.
`instance:ApplyUVProjection`
Creates planar UVs for vertices along an axis and assigns them to each face corner.
`instance:RecalculateNormals`
Recomputes face corner normals from the current geometry.
`instance:MergeVertices`
Computes a welded vertex remap using the given merge tolerance.
`instance:GetFacesWithColor`
Returns face ids that use the given color id on any corner.
`instance:GetFacesWithNormal`
Returns face ids that use the given normal id on any corner.
`instance:GetFacesWithUV`
Returns face ids that use the given UV id on any corner.
`instance:GetVerticesWithColor`
Returns vertex ids that use the given color id on any face corner.
`instance:GetVerticesWithNormal`
Returns vertex ids that use the given normal id on any face corner.
`instance:GetVerticesWithUV`
Returns vertex ids that use the given UV id on any face corner.
`instance:GetFacesWithAttribute`
Placeholder for custom attribute face lookup; currently returns an empty list.
`instance:GetVerticesWithAttribute`
Placeholder for custom attribute vertex lookup; currently returns an empty list.
`instance:RaycastLocal`
Raycasts against mesh triangles in local space.
`instance:FindClosestPointOnSurface`
Returns the closest surface point, distance, and face id for a local-space point.
`bary`
buildRawGeometry
Arguments
selfReturns
notifyLinkedMeshParts
Arguments
Returns
instance:AddVertex
Adds a vertex position to the mesh and returns its vertex id.
Arguments
p: Vector3Returns
numberinstance:AddNormal
Adds a normal vector to the mesh and returns its normal id.
Arguments
normal: Vector3?Returns
numberinstance:AddUV
Adds a UV coordinate to the mesh and returns its UV id.
Arguments
uv: Vector2Returns
numberinstance:AddColor
Adds a vertex color and alpha value to the mesh and returns its color id.
Arguments
color: Color3, alpha: number?Returns
numberinstance:AddTriangle
Adds a triangular face from three vertex ids and returns its face id.
Arguments
vertexId0: number, vertexId1: number, vertexId2: numberReturns
numberinstance:SetPosition
Updates the stored position for an existing vertex.
Arguments
vertexId: number, p: Vector3Returns
instance:GetPosition
Returns the stored position for a vertex, or the zero vector when missing.
Arguments
vertexId: numberReturns
Vector3instance:SetNormal
Updates an existing normal vector and marks the mesh dirty.
Arguments
normalId: number, normal: Vector3Returns
instance:GetNormal
Returns a normal vector by id, or nil when missing.
Arguments
normalId: numberReturns
Vector3?instance:SetUV
Updates an existing UV coordinate and marks the mesh dirty.
Arguments
uvId: number, uv: Vector2Returns
instance:GetUV
Returns a UV coordinate by id, or nil when missing.
Arguments
uvId: numberReturns
Vector2?instance:SetColor
Updates an existing color entry.
Arguments
colorId: number, color: Color3Returns
instance:SetColorAlpha
Updates the alpha value for an existing color entry.
Arguments
colorId: number, alpha: numberReturns
instance:GetColor
Returns a color by id, or nil when missing.
Arguments
colorId: numberReturns
Color3?instance:GetColorAlpha
Returns a color alpha value by id, or nil when missing.
Arguments
colorId: numberReturns
number?instance:SetVertexFaceColor
Assigns a color id to a vertex corner on a specific face.
Arguments
vertexId: number, faceId: number, colorId: numberReturns
instance:SetVertexFaceNormal
Assigns a normal id to a vertex corner on a specific face.
Arguments
vertexId: number, faceId: number, normalId: numberReturns
instance:SetVertexFaceUV
Assigns a UV id to a vertex corner on a specific face.
Arguments
vertexId: number, faceId: number, uvId: numberReturns
instance:GetVertexFaceColor
Returns the color id assigned to a vertex corner on a face, or 0 when unset.
Arguments
vertexId: number, faceId: numberReturns
numberinstance:GetVertexFaceNormal
Returns the normal id assigned to a vertex corner on a face, or 0 when unset.
Arguments
vertexId: number, faceId: numberReturns
numberinstance:GetVertexFaceUV
Returns the UV id assigned to a vertex corner on a face, or 0 when unset.
Arguments
vertexId: number, faceId: numberReturns
numberinstance:GetVertices
Returns all vertex ids currently stored in the mesh.
Arguments
Returns
{ number }instance:GetNormals
Returns all normal ids currently stored in the mesh.
Arguments
Returns
{ number }instance:GetUVs
Returns all UV ids currently stored in the mesh.
Arguments
Returns
{ number }instance:GetColors
Returns all color ids currently stored in the mesh.
Arguments
Returns
{ number }instance:GetFaces
Returns all face ids currently stored in the mesh.
Arguments
Returns
{ number }instance:GetFaceVertices
Returns the three vertex ids used by a face.
Arguments
faceId: numberReturns
{ number }instance:SetFaceColors
Assigns color ids to the three corners of a face.
Arguments
faceId: number, ids: { number }Returns
instance:SetFaceNormals
Assigns normal ids to the three corners of a face.
Arguments
faceId: number, ids: { number }Returns
instance:SetFaceUVs
Assigns UV ids to the three corners of a face.
Arguments
faceId: number, ids: { number }Returns
instance:GetFaceColors
Returns the three color ids assigned to a face.
Arguments
faceId: numberReturns
{ number }instance:GetFaceNormals
Returns the three normal ids assigned to a face.
Arguments
faceId: numberReturns
{ number }instance:GetFaceUVs
Returns the three UV ids assigned to a face.
Arguments
faceId: numberReturns
{ number }instance:RemoveFace
Removes a face from the mesh and marks geometry dirty.
Arguments
faceId: numberReturns
instance:RemoveUnused
Placeholder for removing unused mesh data; currently returns an empty list.
Arguments
Returns
{ any }instance:IdDebugString
Returns a debug string for an internal mesh id.
Arguments
id: numberReturns
stringinstance:FindClosestVertex
Returns the id of the vertex nearest to the given point.
Arguments
toThisPoint: Vector3Returns
numberinstance:FindVerticesWithinSphere
Returns vertex ids whose positions are inside or on a sphere.
Arguments
center: Vector3, radius: numberReturns
{ number }instance:GetCenter
Returns the average position of all vertices.
Arguments
Returns
Vector3instance:GetSize
Returns the axis-aligned bounding box size of the mesh vertices.
Arguments
Returns
Vector3instance:GetAdjacentFaces
Returns faces that share an edge with the given face.
Arguments
faceId: numberReturns
{ number }instance:GetAdjacentVertices
Returns vertices connected to the given vertex by any face.
Arguments
vertexId: numberReturns
{ number }instance:GetVertexFaces
Returns face ids that reference the given vertex.
Arguments
vertexId: numberReturns
{ number }instance:AddBone
Adds a bone definition and returns its bone id.
Arguments
boneProperties: { Name: string?, CFrame: CFrame?, ParentId: number?, IsVirtual: boolean? }Returns
numberinstance:GetBones
Returns all bone ids currently stored in the mesh.
Arguments
Returns
{ number }instance:GetBoneName
Returns the name assigned to a bone, or an empty string when missing.
Arguments
boneId: numberReturns
stringinstance:GetBoneCFrame
Returns the local CFrame assigned to a bone.
Arguments
boneId: numberReturns
CFrameinstance:GetBoneIsVirtual
Returns whether a bone is marked as virtual.
Arguments
boneId: numberReturns
booleaninstance:GetBoneParent
Returns the parent bone id for a bone, or 0 when none is set.
Arguments
boneId: numberReturns
numberinstance:GetBoneByName
Returns the first bone id matching the given name, or 0 when not found.
Arguments
boneName: stringReturns
numberinstance:SetBoneName
Updates the name assigned to an existing bone.
Arguments
boneId: number, name: stringReturns
instance:SetBoneCFrame
Updates the local CFrame assigned to an existing bone.
Arguments
boneId: number, cframe: CFrameReturns
instance:SetBoneIsVirtual
Marks an existing bone as virtual or non-virtual.
Arguments
boneId: number, virtual: booleanReturns
instance:SetBoneParent
Updates the parent bone id assigned to an existing bone.
Arguments
boneId: number, parentId: numberReturns
instance:RemoveBone
Removes a bone definition by id.
Arguments
boneId: numberReturns
instance:SetVertexBones
Assigns influencing bone ids to a vertex.
Arguments
vertexId: number, boneIDs: { number }Returns
instance:SetVertexBoneWeights
Assigns bone weights to a vertex.
Arguments
vertexId: number, boneWeights: { number }Returns
instance:GetVertexBones
Returns the influencing bone ids assigned to a vertex.
Arguments
vertexId: numberReturns
{ number }instance:GetVertexBoneWeights
Returns the bone weights assigned to a vertex.
Arguments
vertexId: numberReturns
{ number }instance:Triangulate
Builds renderable mesh data from the current faces, vertices, and attributes.
Arguments
opts: { smooth: boolean?, flat: boolean?, generateTangents: boolean?, weld: boolean?, weldTolerance: number? }?Returns
instance:FlushIfDirty
Rebuilds mesh data only when geometry has changed.
Arguments
opts: { smooth: boolean?, flat: boolean?, generateTangents: boolean?, weld: boolean?, weldTolerance: number? }?Returns
instance:ApplyUVProjection
Creates planar UVs for vertices along an axis and assigns them to each face corner.
Arguments
axis: string?, scale: { number }?, offset: { number }?Returns
instance:RecalculateNormals
Recomputes face corner normals from the current geometry.
Arguments
smooth: booleanReturns
instance:MergeVertices
Computes a welded vertex remap using the given merge tolerance.
Arguments
mergeTolerance: numberReturns
{ [number]: number }instance:GetFacesWithColor
Returns face ids that use the given color id on any corner.
Arguments
colorId: numberReturns
{ number }instance:GetFacesWithNormal
Returns face ids that use the given normal id on any corner.
Arguments
normalId: numberReturns
{ number }instance:GetFacesWithUV
Returns face ids that use the given UV id on any corner.
Arguments
uvId: numberReturns
{ number }instance:GetVerticesWithColor
Returns vertex ids that use the given color id on any face corner.
Arguments
colorId: numberReturns
{ number }instance:GetVerticesWithNormal
Returns vertex ids that use the given normal id on any face corner.
Arguments
normalId: numberReturns
{ number }instance:GetVerticesWithUV
Returns vertex ids that use the given UV id on any face corner.
Arguments
uvId: numberReturns
{ number }instance:GetFacesWithAttribute
Placeholder for custom attribute face lookup; currently returns an empty list.
Arguments
_id: numberReturns
{ number }instance:GetVerticesWithAttribute
Placeholder for custom attribute vertex lookup; currently returns an empty list.
Arguments
_id: numberReturns
{ number }instance:RaycastLocal
Raycasts against mesh triangles in local space.
Arguments
origin: Vector3, direction: Vector3Returns
Vector3?, Vector3?, number?, number?instance:FindClosestPointOnSurface
Returns the closest surface point, distance, and face id for a local-space point.
Arguments
point: Vector3Returns
Vector3, number, numberbary
Arguments
p, a, b, cReturns
API
instance:buildRawGeometry(self)
instance:notifyLinkedMeshParts()
instance:AddVertex(p: Vector3): number
instance:AddNormal(normal: Vector3?): number
instance:AddUV(uv: Vector2): number
instance:AddColor(color: Color3, alpha: number?): number
instance:AddTriangle(vertexId0: number, vertexId1: number, vertexId2: number): number
instance:SetPosition(vertexId: number, p: Vector3)
instance:GetPosition(vertexId: number): Vector3
instance:SetNormal(normalId: number, normal: Vector3)
instance:GetNormal(normalId: number): Vector3?
instance:SetUV(uvId: number, uv: Vector2)
instance:GetUV(uvId: number): Vector2?
instance:SetColor(colorId: number, color: Color3)
instance:SetColorAlpha(colorId: number, alpha: number)
instance:GetColor(colorId: number): Color3?
instance:GetColorAlpha(colorId: number): number?
instance:SetVertexFaceColor(vertexId: number, faceId: number, colorId: number)
instance:SetVertexFaceNormal(vertexId: number, faceId: number, normalId: number)
instance:SetVertexFaceUV(vertexId: number, faceId: number, uvId: number)
instance:GetVertexFaceColor(vertexId: number, faceId: number): number
instance:GetVertexFaceNormal(vertexId: number, faceId: number): number
instance:GetVertexFaceUV(vertexId: number, faceId: number): number
instance:GetVertices(): { number }
instance:GetNormals(): { number }
instance:GetUVs(): { number }
instance:GetColors(): { number }
instance:GetFaces(): { number }
instance:GetFaceVertices(faceId: number): { number }
instance:SetFaceColors(faceId: number, ids: { number })
instance:SetFaceNormals(faceId: number, ids: { number })
instance:SetFaceUVs(faceId: number, ids: { number })
instance:GetFaceColors(faceId: number): { number }
instance:GetFaceNormals(faceId: number): { number }
instance:GetFaceUVs(faceId: number): { number }
instance:RemoveFace(faceId: number)
instance:RemoveUnused(): { any }
instance:IdDebugString(id: number): string
instance:FindClosestVertex(toThisPoint: Vector3): number
instance:FindVerticesWithinSphere(center: Vector3, radius: number): { number }
instance:GetCenter(): Vector3
instance:GetSize(): Vector3
instance:GetAdjacentFaces(faceId: number): { number }
instance:GetAdjacentVertices(vertexId: number): { number }
instance:GetVertexFaces(vertexId: number): { number }
instance:AddBone(boneProperties: { Name: string?, CFrame: CFrame?, ParentId: number?, IsVirtual: boolean? }): number
instance:GetBones(): { number }
instance:GetBoneName(boneId: number): string
instance:GetBoneCFrame(boneId: number): CFrame
instance:GetBoneIsVirtual(boneId: number): boolean
instance:GetBoneParent(boneId: number): number
instance:GetBoneByName(boneName: string): number
instance:SetBoneName(boneId: number, name: string)
instance:SetBoneCFrame(boneId: number, cframe: CFrame)
instance:SetBoneIsVirtual(boneId: number, virtual: boolean)
instance:SetBoneParent(boneId: number, parentId: number)
instance:RemoveBone(boneId: number)
instance:SetVertexBones(vertexId: number, boneIDs: { number })
instance:SetVertexBoneWeights(vertexId: number, boneWeights: { number })
instance:GetVertexBones(vertexId: number): { number }
instance:GetVertexBoneWeights(vertexId: number): { number }
instance:Triangulate(opts: { smooth: boolean?, flat: boolean?, generateTangents: boolean?, weld: boolean?, weldTolerance: number? }?)
instance:FlushIfDirty(opts: { smooth: boolean?, flat: boolean?, generateTangents: boolean?, weld: boolean?, weldTolerance: number? }?)
instance:ApplyUVProjection(axis: string?, scale: { number }?, offset: { number }?)
instance:RecalculateNormals(smooth: boolean)
instance:MergeVertices(mergeTolerance: number): { [number]: number }
instance:GetFacesWithColor(colorId: number): { number }
instance:GetFacesWithNormal(normalId: number): { number }
instance:GetFacesWithUV(uvId: number): { number }
instance:GetVerticesWithColor(colorId: number): { number }
instance:GetVerticesWithNormal(normalId: number): { number }
instance:GetVerticesWithUV(uvId: number): { number }
instance:GetFacesWithAttribute(_id: number): { number }
instance:GetVerticesWithAttribute(_id: number): { number }
instance:RaycastLocal(origin: Vector3, direction: Vector3): Vector3?, Vector3?, number?, number?
instance:FindClosestPointOnSurface(point: Vector3): Vector3, number, number
instance:bary(p, a, b, c)