Skip to content

Library: Math: Matrix

ᴏᴠ ━ ᴀɴɪꜱᴀ edited this page Mar 3, 2025 · 4 revisions

» Overview

Matrices are collection of variables represented in tabular format (Rows & Columns). Often we've have to deal with multiple coordinates when either dealing with general or complex mathematics; Matrices do help a lot to make the workflow easier in such scenarios. Moreover they are also widely used in games for representing element's positional/rotational matrix.

If you still have no idea how useful they are or where to apply/utilize them in the right way, then make sure to read: https://personalpages.manchester.ac.uk/staff/ctdodson/matrices.pdf

» Importing

It's already imported by default whenever you import assetify. You need to declare the below globally only once:

loadstring(exports.assetify_library:import())()

» Operations

  • Addition

    local cMatrix1, cMatrix2 = math.matrix({1, 1, 1, 1}, {1, 1, 1, 1}), math.matrix({2, 2, 2, 2}, {2, 2, 2, 2})
    local resultant = cMatrix1 + cMatrix2
  • Subtraction

    local cMatrix1, cMatrix2 = math.matrix({1, 1, 1, 1}, {1, 1, 1, 1}), math.matrix({2, 2, 2, 2}, {2, 2, 2, 2})
    local resultant = cMatrix1 - cMatrix2
  • Multiplication

    local cMatrix1, cMatrix2 = math.matrix({1, 1, 1, 1}, {1, 1, 1, 1}), math.matrix({2, 2, 2, 2}, {2, 2, 2, 2})
    local resultant = cMatrix1 * cMatrix2
  • Division

    local cMatrix1, cMatrix2 = math.matrix({1, 1, 1, 1}, {1, 1, 1, 1}), math.matrix({2, 2, 2, 2}, {2, 2, 2, 2})
    local resultant = cMatrix1 / cMatrix2

» APIs

  • math.matrix:getType() - shared

    ✨ Retrieve's instance's type.

    local string: type = self:getType()
  • math.matrix() - shared

    ✨ Creates a matrix instance.

    local matrix: cMatrix = math.matrix(
       ~: ...{~float: ...values}
    )
  • math.matrix:destroy() - shared

    ✨ Destroys an existing matrix.

    local bool: result = self:destroy()
  • math.matrix:scale() - shared

    ✨ Scales matrix w/ specified scale.

    local matrix: self = self:scale(
       float: scale
    )
  • math.matrix:transform() - shared

    ✨ Transforms a valid location matrix.

    --Note: All coordinates must be offsets, i.e, they must be relative
    local matrix: cMatrix = self:transform(
       matrix: rotationMatrix,
       float: x,
       float: y,
       float: z
    )

Clone this wiki locally