Get UV of point in triangle with UVW and bary

On 27/06/2013 at 16:57, xxxxxxxx wrote:

User Information:
Cinema 4D Version:   R13+ 
Platform:   Windows  ;   Mac OSX  ; 
Language(s) :     C++  ;

This is driving me crazy.  Google isn't getting me results based on my inputs.

A ray hits a triangle in a mesh.  My code gets the UVW coordinates for each point of the triangle in question from the UVWTag and UVWStruct (using the GeRayColResult.face_id).  I have the Barycentric coordinates of the hit point relative to the triangle from GeRayCollider/GeRayColResult.  How do I go about interpolating to the UVW coordinate in UVW space (not triangle space, i.e.: not barycentric) of the hit point given the triangle's three UVW coordinates and the hit point's Barycentric coordinate?

To add, I have these two options (the only two so far) :

// GetUVFromBarycentric  
// - Given the Texture vertices of a triangle (UVW space) and the Barycentric coordinate of a point (P) within, return P's Texture coordinate  
Vector GetUVFromBarycentric(const Vector& vAUV, const Vector& vBUV, const Vector& vCUV, const Vector& vPBary)  
  return    vAUV*vPBary.x + vBUV*vPBary.y + vCUV*vPBary.z;  
  //return    Vector(b0 * vA.x + vP.x * vB.x + vP.y * vC.x, b0 * vA.y + vP.x * vB.y + vP.y * vC.y, 0.0);  

I have not tried either yet but will soon.

On 27/06/2013 at 18:14, xxxxxxxx wrote:

The current UV calculation appears to be working.  Nice.