A transformation matrix
The number of position components for each input point. (either 2 or 3)
The stride in bytes between input points.
A pointer to the first component of the first input point.
The stride in bytes between output points.
A pointer to the first component of the first output point.
The number of points to transform.
Transforms an array of input points and writes the result to another array of output points. The input points can either have 2 or 3 components each. The output points always have 3 components. The output array can simply point to the input array to do the transform in-place.
Here's an example with differing input/output strides: