#include "getPointAndNormal.h"
void getPointAndNormal(
MDagPath meshDagPath,
int faceIndex,
bool relative,
double parameterU,
double parameterV,
MPoint &point,
MVector &normal,
MObject theMesh)
{
int dummyIndex;
faceIter.
setIndex(faceIndex, dummyIndex);
float u, v;
if (relative)
{
faceIter.
getUVs(uArray, vArray);
float minU=999999, minV=999999, maxU=0, maxV=0;
for (
unsigned i=0; i<uArray.
length(); i++)
{
minU = (uArray[i] < minU) ? uArray[i] : minU;
minV = (vArray[i] < minV) ? vArray[i] : minV;
maxU = (uArray[i] > maxU) ? uArray[i] : maxU;
maxV = (vArray[i] > maxV) ? vArray[i] : maxV;
}
u = minU + (float)parameterU * (maxU - minU);
v = minV + (float)parameterV * (maxV - minV);
}
else
{
u = (float)parameterU;
v = (float)parameterV;
}
float2 UV;
UV[0] = u;
UV[1] = v;
}