Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool AABB::rayTest(const float3 &pos, const float3 &tan) const{
- float in = 0.f, out = 1.f;
- for(unsigned char i = 0; i < 3; ++i){
- if(tan[i] == 0){
- if(pos[i] < min[i] || pos[i] > max[i]) return(false);
- }else{
- const float r = 1.f / tan[i];
- float minD = (min[i] - pos[i]) * r;
- float maxD = (max[i] - pos[i]) * r;
- if(minD > maxD) swap(minD, maxD);
- if(minD > in) in = minD;
- if(maxD < out) out = maxD;
- if(in > out) return(false);
- }
- }
- return(true);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement