
transform(matID, matrix)
- Moves/rotates the vertices of a material on a game object
matID:
- Type = integer
- -1 = all materials
- 0 = first material on mesh
- 1 = second material on mesh
- 2 = third material on mesh
- etc.
- Type: float list [4x4 matrix]
Note:
- Doesn't move/rotate the object center of the game object.
- matID = -1: Transform all materials on mesh.
- The rotation transform uses the cosine of the angle.
matrix example:
- 4x4 matrix. Example moves but doesn't rotate the material.
- ([ 1.0, 0.0, 0.0, 2.5], [ 0.0, 1.0, 0.0, 0.0], [ 0.0, 0.0, 1.0, 3.1], [ 0.0, 0.0, 0.0, 1.0])
- The first part -- [ 1.0, 0.0, 0.0, 2.5 ]:
Consists of two parts. 3D vector uses the object axis.
1. X-axis 3D vector -- 1.0, 0.0, 0.0 -- which is a rotation transform.
2. X-axis distance -- 2.5 -- which is the movement transform.
- The second part -- [ 0.0, 1.0, 0.0, 0.0]:
Consists of two parts. 3D vector uses the object axis.
1. Y-axis 3D vector -- 0.0, 1.0, 0.0 -- which is a rotation transform.
2. Y-axis distance -- 0.0 -- which is the movement transform.
- The third part--[ 0.0, 0.0, 1.0, 3.1]:
Consists of two parts. 3D vector uses the object axis.
1. Z-axis 3D vector -- 1.0, 0.0, 0.0 -- which is a rotation transform.
2. Z-axis distance -- 3.1 -- which is the movement transform.
- The fourth part--[ 0.0, 0.0, 0.0, 1.0 ]:
Not sure what this is.
Everything I've read says that this is always [ 0.0, 0.0, 0.0, 1.0 ]
- 4x4 matrix. Rotates the material 30 degrees around the game object's X axis.
- ([ 1.0, 0.0, 0.0, 0.0], [ 0.0, 0.866, -0.5, 0.0], [ 0.0, 0.5, 0.866, 0.0], [ 0.0, 0.0, 0.0, 1.0])

Sample Code
############################# transform the vertex of the material
# import bge
import bge
# get the current controller
cont = bge.logic.getCurrentController()
# get object that owns this controller
obj = cont.owner
# Get a list of the mesh
meshList = obj.meshes
# Get the first mesh on the object
mesh = meshList[0]
# transform all materials on mesh
matID = -1
# 4x4 matrix
matrix = ([ 1.0, 0.0, 0.0, -2.5], [ 0.0, 1.0, 0.0, 0.0], [ 0.0, 0.0, 1.0, 3.5], [ 0.0, 0.0, 0.0, 1.0])
# transform material vertex
mesh.transform(matID, matrix)