Subversion Repositories gelsvn

Rev

Rev 429 | Rev 438 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 429 Rev 430
Line 627... Line 627...
627
    // Just delay these 
627
    // Just delay these 
628
    Vec3d origin(ray.origin);
628
    Vec3d origin(ray.origin);
629
    Vec3d point0(isecttri.point0);    
629
    Vec3d point0(isecttri.point0);    
630
    double f = 1.0/a;
630
    double f = 1.0/a;
631
    Vec3d s = origin - point0;
631
    Vec3d s = origin - point0;
632
    double u = f*dot(s,p);
632
    double u = f*dot(s, p);
633
    if(u < 0.0 || u > 1.0)
633
    if(u < 0.0 || u > 1.0)
634
      return false;
634
      return false;
635
 
635
 
636
    Vec3d q = cross(s, edge0);
636
    Vec3d q = cross(s, edge0);
637
    double v = f*dot(direction, q);  
637
    double v = f*dot(direction, q);  
638
    if(v < 0.0 || u + v > 1.0)
638
    if(v < 0.0 || u + v > 1.0)
639
      return false;
639
      return false;
640
 
640
 
641
    double t = f*dot(edge1, q);
641
    double t = f*dot(edge1, q);
642
    if(t < 0.0)
642
    if(t < f_eps || t*t < f_eps)
643
      return false;
643
      return false;
644
    if(fabs(t) < f_eps)
-
 
645
      return false;
-
 
646
    if(t_max < t)
644
    if(t > t_max)
647
      return false;
645
      return false;
648
    if(t > ray.dist)
646
    if(t > ray.dist)
649
      return false;
647
      return false;
650
  
648
  
651
    ray.dist = t;
649
    ray.dist = t;