Kinemium Docs

EditableMesh

Stores editable mesh geometry, attributes, bones, and generated render data.

Properties

PropertyTypeDefault
FixedSizebooleanfalse
SkinningEnabledbooleanfalse
Namestring"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

self

Returns

This function returns nothing.

notifyLinkedMeshParts

Arguments

This function takes no arguments.

Returns

This function returns nothing.

instance:AddVertex

Adds a vertex position to the mesh and returns its vertex id.

Arguments

p: Vector3

Returns

number

instance:AddNormal

Adds a normal vector to the mesh and returns its normal id.

Arguments

normal: Vector3?

Returns

number

instance:AddUV

Adds a UV coordinate to the mesh and returns its UV id.

Arguments

uv: Vector2

Returns

number

instance:AddColor

Adds a vertex color and alpha value to the mesh and returns its color id.

Arguments

color: Color3, alpha: number?

Returns

number

instance:AddTriangle

Adds a triangular face from three vertex ids and returns its face id.

Arguments

vertexId0: number, vertexId1: number, vertexId2: number

Returns

number

instance:SetPosition

Updates the stored position for an existing vertex.

Arguments

vertexId: number, p: Vector3

Returns

This function returns nothing.

instance:GetPosition

Returns the stored position for a vertex, or the zero vector when missing.

Arguments

vertexId: number

Returns

Vector3

instance:SetNormal

Updates an existing normal vector and marks the mesh dirty.

Arguments

normalId: number, normal: Vector3

Returns

This function returns nothing.

instance:GetNormal

Returns a normal vector by id, or nil when missing.

Arguments

normalId: number

Returns

Vector3?

instance:SetUV

Updates an existing UV coordinate and marks the mesh dirty.

Arguments

uvId: number, uv: Vector2

Returns

This function returns nothing.

instance:GetUV

Returns a UV coordinate by id, or nil when missing.

Arguments

uvId: number

Returns

Vector2?

instance:SetColor

Updates an existing color entry.

Arguments

colorId: number, color: Color3

Returns

This function returns nothing.

instance:SetColorAlpha

Updates the alpha value for an existing color entry.

Arguments

colorId: number, alpha: number

Returns

This function returns nothing.

instance:GetColor

Returns a color by id, or nil when missing.

Arguments

colorId: number

Returns

Color3?

instance:GetColorAlpha

Returns a color alpha value by id, or nil when missing.

Arguments

colorId: number

Returns

number?

instance:SetVertexFaceColor

Assigns a color id to a vertex corner on a specific face.

Arguments

vertexId: number, faceId: number, colorId: number

Returns

This function returns nothing.

instance:SetVertexFaceNormal

Assigns a normal id to a vertex corner on a specific face.

Arguments

vertexId: number, faceId: number, normalId: number

Returns

This function returns nothing.

instance:SetVertexFaceUV

Assigns a UV id to a vertex corner on a specific face.

Arguments

vertexId: number, faceId: number, uvId: number

Returns

This function returns nothing.

instance:GetVertexFaceColor

Returns the color id assigned to a vertex corner on a face, or 0 when unset.

Arguments

vertexId: number, faceId: number

Returns

number

instance:GetVertexFaceNormal

Returns the normal id assigned to a vertex corner on a face, or 0 when unset.

Arguments

vertexId: number, faceId: number

Returns

number

instance:GetVertexFaceUV

Returns the UV id assigned to a vertex corner on a face, or 0 when unset.

Arguments

vertexId: number, faceId: number

Returns

number

instance:GetVertices

Returns all vertex ids currently stored in the mesh.

Arguments

This function takes no arguments.

Returns

{ number }

instance:GetNormals

Returns all normal ids currently stored in the mesh.

Arguments

This function takes no arguments.

Returns

{ number }

instance:GetUVs

Returns all UV ids currently stored in the mesh.

Arguments

This function takes no arguments.

Returns

{ number }

instance:GetColors

Returns all color ids currently stored in the mesh.

Arguments

This function takes no arguments.

Returns

{ number }

instance:GetFaces

Returns all face ids currently stored in the mesh.

Arguments

This function takes no arguments.

Returns

{ number }

instance:GetFaceVertices

Returns the three vertex ids used by a face.

Arguments

faceId: number

Returns

{ number }

instance:SetFaceColors

Assigns color ids to the three corners of a face.

Arguments

faceId: number, ids: { number }

Returns

This function returns nothing.

instance:SetFaceNormals

Assigns normal ids to the three corners of a face.

Arguments

faceId: number, ids: { number }

Returns

This function returns nothing.

instance:SetFaceUVs

Assigns UV ids to the three corners of a face.

Arguments

faceId: number, ids: { number }

Returns

This function returns nothing.

instance:GetFaceColors

Returns the three color ids assigned to a face.

Arguments

faceId: number

Returns

{ number }

instance:GetFaceNormals

Returns the three normal ids assigned to a face.

Arguments

faceId: number

Returns

{ number }

instance:GetFaceUVs

Returns the three UV ids assigned to a face.

Arguments

faceId: number

Returns

{ number }

instance:RemoveFace

Removes a face from the mesh and marks geometry dirty.

Arguments

faceId: number

Returns

This function returns nothing.

instance:RemoveUnused

Placeholder for removing unused mesh data; currently returns an empty list.

Arguments

This function takes no arguments.

Returns

{ any }

instance:IdDebugString

Returns a debug string for an internal mesh id.

Arguments

id: number

Returns

string

instance:FindClosestVertex

Returns the id of the vertex nearest to the given point.

Arguments

toThisPoint: Vector3

Returns

number

instance:FindVerticesWithinSphere

Returns vertex ids whose positions are inside or on a sphere.

Arguments

center: Vector3, radius: number

Returns

{ number }

instance:GetCenter

Returns the average position of all vertices.

Arguments

This function takes no arguments.

Returns

Vector3

instance:GetSize

Returns the axis-aligned bounding box size of the mesh vertices.

Arguments

This function takes no arguments.

Returns

Vector3

instance:GetAdjacentFaces

Returns faces that share an edge with the given face.

Arguments

faceId: number

Returns

{ number }

instance:GetAdjacentVertices

Returns vertices connected to the given vertex by any face.

Arguments

vertexId: number

Returns

{ number }

instance:GetVertexFaces

Returns face ids that reference the given vertex.

Arguments

vertexId: number

Returns

{ number }

instance:AddBone

Adds a bone definition and returns its bone id.

Arguments

boneProperties: { Name: string?, CFrame: CFrame?, ParentId: number?, IsVirtual: boolean? }

Returns

number

instance:GetBones

Returns all bone ids currently stored in the mesh.

Arguments

This function takes no arguments.

Returns

{ number }

instance:GetBoneName

Returns the name assigned to a bone, or an empty string when missing.

Arguments

boneId: number

Returns

string

instance:GetBoneCFrame

Returns the local CFrame assigned to a bone.

Arguments

boneId: number

Returns

CFrame

instance:GetBoneIsVirtual

Returns whether a bone is marked as virtual.

Arguments

boneId: number

Returns

boolean

instance:GetBoneParent

Returns the parent bone id for a bone, or 0 when none is set.

Arguments

boneId: number

Returns

number

instance:GetBoneByName

Returns the first bone id matching the given name, or 0 when not found.

Arguments

boneName: string

Returns

number

instance:SetBoneName

Updates the name assigned to an existing bone.

Arguments

boneId: number, name: string

Returns

This function returns nothing.

instance:SetBoneCFrame

Updates the local CFrame assigned to an existing bone.

Arguments

boneId: number, cframe: CFrame

Returns

This function returns nothing.

instance:SetBoneIsVirtual

Marks an existing bone as virtual or non-virtual.

Arguments

boneId: number, virtual: boolean

Returns

This function returns nothing.

instance:SetBoneParent

Updates the parent bone id assigned to an existing bone.

Arguments

boneId: number, parentId: number

Returns

This function returns nothing.

instance:RemoveBone

Removes a bone definition by id.

Arguments

boneId: number

Returns

This function returns nothing.

instance:SetVertexBones

Assigns influencing bone ids to a vertex.

Arguments

vertexId: number, boneIDs: { number }

Returns

This function returns nothing.

instance:SetVertexBoneWeights

Assigns bone weights to a vertex.

Arguments

vertexId: number, boneWeights: { number }

Returns

This function returns nothing.

instance:GetVertexBones

Returns the influencing bone ids assigned to a vertex.

Arguments

vertexId: number

Returns

{ number }

instance:GetVertexBoneWeights

Returns the bone weights assigned to a vertex.

Arguments

vertexId: number

Returns

{ 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

This function returns nothing.

instance:FlushIfDirty

Rebuilds mesh data only when geometry has changed.

Arguments

opts: { smooth: boolean?, flat: boolean?, generateTangents: boolean?, weld: boolean?, weldTolerance: number? }?

Returns

This function returns nothing.

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

This function returns nothing.

instance:RecalculateNormals

Recomputes face corner normals from the current geometry.

Arguments

smooth: boolean

Returns

This function returns nothing.

instance:MergeVertices

Computes a welded vertex remap using the given merge tolerance.

Arguments

mergeTolerance: number

Returns

{ [number]: number }

instance:GetFacesWithColor

Returns face ids that use the given color id on any corner.

Arguments

colorId: number

Returns

{ number }

instance:GetFacesWithNormal

Returns face ids that use the given normal id on any corner.

Arguments

normalId: number

Returns

{ number }

instance:GetFacesWithUV

Returns face ids that use the given UV id on any corner.

Arguments

uvId: number

Returns

{ number }

instance:GetVerticesWithColor

Returns vertex ids that use the given color id on any face corner.

Arguments

colorId: number

Returns

{ number }

instance:GetVerticesWithNormal

Returns vertex ids that use the given normal id on any face corner.

Arguments

normalId: number

Returns

{ number }

instance:GetVerticesWithUV

Returns vertex ids that use the given UV id on any face corner.

Arguments

uvId: number

Returns

{ number }

instance:GetFacesWithAttribute

Placeholder for custom attribute face lookup; currently returns an empty list.

Arguments

_id: number

Returns

{ number }

instance:GetVerticesWithAttribute

Placeholder for custom attribute vertex lookup; currently returns an empty list.

Arguments

_id: number

Returns

{ number }

instance:RaycastLocal

Raycasts against mesh triangles in local space.

Arguments

origin: Vector3, direction: Vector3

Returns

Vector3?, Vector3?, number?, number?

instance:FindClosestPointOnSurface

Returns the closest surface point, distance, and face id for a local-space point.

Arguments

point: Vector3

Returns

Vector3, number, number

bary

Arguments

p, a, b, c

Returns

This function returns nothing.

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)

On this page

PropertiesFunctionsbuildRawGeometrynotifyLinkedMeshPartsinstance:AddVertexinstance:AddNormalinstance:AddUVinstance:AddColorinstance:AddTriangleinstance:SetPositioninstance:GetPositioninstance:SetNormalinstance:GetNormalinstance:SetUVinstance:GetUVinstance:SetColorinstance:SetColorAlphainstance:GetColorinstance:GetColorAlphainstance:SetVertexFaceColorinstance:SetVertexFaceNormalinstance:SetVertexFaceUVinstance:GetVertexFaceColorinstance:GetVertexFaceNormalinstance:GetVertexFaceUVinstance:GetVerticesinstance:GetNormalsinstance:GetUVsinstance:GetColorsinstance:GetFacesinstance:GetFaceVerticesinstance:SetFaceColorsinstance:SetFaceNormalsinstance:SetFaceUVsinstance:GetFaceColorsinstance:GetFaceNormalsinstance:GetFaceUVsinstance:RemoveFaceinstance:RemoveUnusedinstance:IdDebugStringinstance:FindClosestVertexinstance:FindVerticesWithinSphereinstance:GetCenterinstance:GetSizeinstance:GetAdjacentFacesinstance:GetAdjacentVerticesinstance:GetVertexFacesinstance:AddBoneinstance:GetBonesinstance:GetBoneNameinstance:GetBoneCFrameinstance:GetBoneIsVirtualinstance:GetBoneParentinstance:GetBoneByNameinstance:SetBoneNameinstance:SetBoneCFrameinstance:SetBoneIsVirtualinstance:SetBoneParentinstance:RemoveBoneinstance:SetVertexBonesinstance:SetVertexBoneWeightsinstance:GetVertexBonesinstance:GetVertexBoneWeightsinstance:Triangulateinstance:FlushIfDirtyinstance:ApplyUVProjectioninstance:RecalculateNormalsinstance:MergeVerticesinstance:GetFacesWithColorinstance:GetFacesWithNormalinstance:GetFacesWithUVinstance:GetVerticesWithColorinstance:GetVerticesWithNormalinstance:GetVerticesWithUVinstance:GetFacesWithAttributeinstance:GetVerticesWithAttributeinstance:RaycastLocalinstance:FindClosestPointOnSurfacebaryAPI