Guest User

Untitled

a guest
Apr 25th, 2018
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.48 KB | None | 0 0
  1. fun float tritest_b( vec o, vec d, vec p0, vec p1, vec p2 ) {
  2. vec normal = ( vec edge0 = p1 - p0 ) x ( vec edge1 = p0 - p2 );
  3. float rcp = 1.0 / normal . d;
  4. float toverd = normal . ( vec edge2 = p0 - o ) * rcp;
  5. if ( toverd < epsilon )
  6. return nohit;
  7. float uoverd = ( vec interm = edge2 x d ) . edge1 * rcp;
  8. if ( uoverd < 0.0 )
  9. return nohit;
  10. float voverd = interm . edge0 * rcp;
  11. if ( uoverd + voverd > 1.0 || voverd < 0.0 )
  12. return nohit;
  13. return toverd;
  14. }
Add Comment
Please, Sign In to add comment