DZone Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world
Multiply A Point By A Transformation Matrix
// Multiply a point by a transformation matrix.
/*!
* Multiply a point by a transformation matrix.
*
* Applies the given transformation matrix to the given point. With some
* transformation matrices, a vector may also be transformed.
*
* \param c Result. (just a float[3])
* \param m Transformation matrix. (just a float[4][4])
* \param a Input point. (just a float[3])
*/
void
lib3ds_vector_transform(Lib3dsVector c, Lib3dsMatrix m, Lib3dsVector a) {
c[0] = m[0][0] * a[0] + m[1][0] * a[1] + m[2][0] * a[2] + m[3][0];
c[1] = m[0][1] * a[0] + m[1][1] * a[1] + m[2][1] * a[2] + m[3][1];
c[2] = m[0][2] * a[0] + m[1][2] * a[1] + m[2][2] * a[2] + m[3][2];
}





