That indeed is multiplication, more specifically matrix multiplication. Although keep in mind developers can write their own functionality for the *
operator with metatables, so when looking at someone else's code it may not mean that, even though for the sake of readibility, it should.
CFrames can be thought of as two matrices, the position matrix (x, y, z, a 3x1 matrix) and the rotational matrix (3x3 matrix). When multiplying two matrices together, the resulting position matrix comes like:
30 | 1 * 1 + 1 * 0 + 1 * 0 + 2 * 1 + 2 * 0 + 2 * 0 , |
31 | 1 * 0 + 1 * 1 + 1 * 0 + 2 * 0 + 2 * 1 + 2 * 0 , |
32 | 1 * 0 + 1 * 0 + 1 * 1 + 2 * 0 + 2 * 0 + 2 * 1 |
37 | print (a_by_b, "\t" , c, "\t" , a_by_b = = c) |
Where c
is constructed like the a * b
operation would internally construct it.
So matrix multiplication is utilizing the dot product, which itself is multiplication.
The rotational matrix is similar:
18 | 1 * 1 + 2 * 0 + 3 * 0 + 1 * 0.5 + 2 * 0 + 3 * 0.5 , |
19 | 1 * 0 + 2 * 1 + 3 * 0 + 1 * 0 + 2 * 1 + 3 * 0 , |
20 | 1 * 0 + 2 * 0 + 3 * 1 + 1 * 0 + 2 * 0 + 3 * 1 , |
22 | 0.5 * 1 + 0 * 0 + 0.5 * 0 , 0.5 * 0 + 0 * 1 + 0.5 * 0 , 0.5 * 0 + 0 * 0 + 0.5 * 1 , |
23 | 0 * 1 + 1 * 0 + 0 * 0 , 0 * 0 + 1 * 1 + 0 * 0 , 0 * 0 + 1 * 0 + 0 * 1 , |
24 | 0 * 1 + 0 * 0 + 1 * 0 , 0 * 0 + 0 * 1 + 1 * 0 , 0 * 0 + 0 * 0 + 1 * 1 |
29 | print (a_by_b, "\t" , c, "\t" , a_by_b = = c) |
EgoMoose has written a bunch of great articles regarding different math topics on the wiki. Here's one related to matrices, including their multiplication.