Performs an affine transformation of the normal of a 2D or 3D vector or each vector in an array in a Homogeneous coordinate space.
IppStatus ippmAffineTransformNormal_m4v2_32f (const Ipp32f* pSrc1, const Ipp32f* pSrc2, Ipp32f* pDst);
IppStatus ippmAffineTransformNormal_m4v3_32f (const Ipp32f* pSrc1, const Ipp32f* pSrc2, Ipp32f* pDst);
IppStatus ippmAffineTransformNormal_m4v2a_32f (const Ipp32f* pSrc1, const Ipp32f* pSrc2, int src2Stride0, Ipp32f* pDst, int dstStride0, int count);
IppStatus ippmAffineTransformNormal_m4v3a_32f (const Ipp32f* pSrc1, const Ipp32f* pSrc2, int src2Stride0, Ipp32f* pDst, int dstStride0, int count);
The functions ippmAffineTransformNormal_m4v2_32f, ippmAffineTransformNormal_m4v3_32f, ippmAffineTransformNormal_m4v2a_32f, and ippmAffineTransformNormal_m4v3a_32f are declared in the ippm.h file. These functions perform an affine transformation of the normal of a single vector or each vector in an array in a Homogeneous coordinate space. The transformation is determined by the src1 matrix. The functions whose names contain the v2 or v3 characters in the descriptor, operate on 2D or 3D vectors, respectively. The functions ippmAffineTransformNormal_m4v2a_32f and ippmAffineTransformNormal_m4v3a_32f operate on vector arrays, whereas the other functions operate on vectors.
Because the 4x4 matrix src1 can be represented as a 16-element array, the transformation uses the following formulae, depending on the dimension of the vectors:
For 2D vectors,
dst[0] = src1[0] * src2[0] + src1[4] * src2[1]
dst[1] = src1[1] * src2[0] + src1[5] * src2[1]
For 3D vectors,
dst[0] = src1[0] * src2[0] + src1[4] * src2[1] + src1[ 8] * src2[2]
dst[1] = src1[1] * src2[0] + src1[5] * src2[1] + src1[ 9] * src2[2]
dst[2] = src1[2] * src2[0] + src1[6] * src2[1] + src1[10] * src2[2]
Copyright © 2000 - 2011, Intel Corporation. All rights reserved.