Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool intersect(ray s, rectangle p)
- {
- bool xcheck = false;
- bool ycheck = false;
- float x, y, vy, vx, eco;
- for (int i = 0;i < 4;i++)
- {
- if ((multiplication(s.getnormx()*-1, p.getnormx(i))) / (multiplication(s.getnormy(), p.getnormy(i)!=0)))
- {
- x = s.getnormx()-p.getnormx(i);
- y = s.getnormy() - p.getnormy(i);
- eco= s.geteco()-p.geteco(i);
- if (x==0) {vy=eco/y; vx=eco-y*vy;}
- else { vx = eco / x; vy = eco - x*vx; };
- //std::cout << vx<<" "<<vy<<std::endl;
- if (s.greatx()==1){
- if(s.getx(1)>vx && vx<s.getx(0)){
- if(p.getx(3)>vx && vx>p.getx(1)) xcheck=true;}}
- else if (s.getx(0)>vx && vx<s.getx(1)) {
- if (p.getx(3)>vx && vx>p.getx(1)) xcheck = true;
- }
- if (s.greaty() == 1) {
- if (s.gety(1)>vy && vy<s.gety(0)) {
- if (p.gety(1)>vy && vy>p.gety(3)) ycheck = true;
- }
- }
- else if (s.gety(0)>vy && vy<s.gety(1)) {
- if (p.gety(1)>vy && vy>p.gety(3)) ycheck = true;
- }
- }
- }
- if (xcheck == true && ycheck == true) return true;
- else return false;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement