Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- std::cout<<r.o<<r.d<<std::endl;
- std::cout<<min<<max<<std::endl;
- double tminX = 0;
- double tminY = 0;
- double tminZ = 0;
- double tmaxX = 0;
- double tmaxY = 0;
- double tmaxZ = 0;
- double tmin = 0;
- double tmax = 0;
- double distX = r.d.x;
- double distY = r.d.y;
- double distZ = r.d.z;
- if (distX == 0.0) {distX = EPS_D;}
- if (distY == 0.0) {distY = EPS_D;}
- if (distZ == 0.0) {distZ = EPS_D;}
- tminX = (min.x - r.o.x) / distX;
- tminY = (min.y - r.o.y) / distY;
- tminZ = (min.z - r.o.z) / distZ;
- tmaxX = (max.x - r.o.x) / distX;
- tmaxY = (max.y - r.o.y) / distY;
- tmaxZ = (max.z - r.o.z) / distZ;
- //Check to make sure they are aligned correctly
- double holder;
- if (tminX > tmaxX) {
- holder = tminX;
- tminX = tmaxX;
- tmaxX = holder;
- }
- if (tminY > tmaxY) {
- holder = tminY;
- tminY = tmaxY;
- tmaxY = holder;
- }
- if (tminZ > tmaxZ) {
- holder = tminZ;
- tminZ = tmaxZ;
- tmaxZ = holder;
- }
- //Check edge cases to make sure there is an intersection
- if (tminX > tmaxY || tminY > tmaxX) {
- printf("\nfail 1\n");
- return false;
- }
- tmin = std::max(tminX, tminY);
- tmax = std::min(tmaxX, tmaxY);
- std::cout<<tmin<<" "<<tmaxZ<<" "<<tminZ<<" "<<tmax<<std::endl;
- if(tmin > tmaxZ || tminZ > tmax) {
- printf("\nfail 2\n");
- return false;
- }
- tmin = std::max(tmin, tminZ);
- tmax = std::min(tmax, tmaxZ);
- if (tmin < r.min_t || tmax < r.min_t || tmin > r.max_t || tmax > r.max_t) {
- printf("\nfail 3\n");
- return false;
- }
- //Updating the range
- //if (t0 < tmin && tmin < t1) {
- t0 = tmin;
- //}
- //if (t0 < tmax && tmax < t1) {
- t1 = tmax;
- //}
- return true;*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement