Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool CBBox::Intersect(const CRay &rRay, float *fMin, float *fMax) const
- {
- float fEnter = 0.0f;
- float fExit = INFINITY;
- for(unsigned int i = 0; i < 3; i++)
- {
- float fNear = (vMin[i] - rRay.vOrigin[i]) * rRay.vInvDirection[i];
- float fFar = (vMax[i] - rRay.vOrigin[i]) * rRay.vInvDirection[i];
- if(fNear > fFar)
- {
- float fTemp = fNear;
- fNear = fFar;
- fFar = fTemp;
- }
- fEnter = fNear > fEnter ? fNear : fEnter;
- fExit = fFar < fExit ? fFar : fExit;
- if(fEnter > fExit)
- {
- return false;
- }
- }
- if(fMin)
- {
- *fMin = fEnter;
- }
- if(fMax)
- {
- *fMax = fExit;
- }
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment