Guest User

sat java

a guest
May 5th, 2011
863
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.88 KB | None | 0 0
  1. public static Vector2f doCollideEx(Box2D a, Box2D b)
  2.     {      
  3.         Vector2f[] edge_normals = a.getEdgeNormals();
  4.         Projection2D p1,p2;
  5.         float overlap = Float.MAX_VALUE;
  6.         Vector2f axis = new Vector2f(0.0f,0.0f);
  7.        
  8.         for(int i=0;i<=3;i++)
  9.         {
  10.             p1 = a.projectOnto(edge_normals[i]);
  11.             p2 = b.projectOnto(edge_normals[i]);
  12.             if(!p1.overlaps(p2))
  13.                 return new Vector2f(0.0f,0.0f);
  14.             else
  15.             {
  16.                 if(p1.getOverlap(p2)<overlap)
  17.                 {
  18.                     overlap = p1.getOverlap(p2);
  19.                     axis = edge_normals[i];
  20.                 }
  21.             }
  22.         }
  23.        
  24.         for(int i=0;i<=3;i++)
  25.         {
  26.             p1 = a.projectOnto(edge_normals[i]);
  27.             p2 = b.projectOnto(edge_normals[i]);
  28.        
  29.             if(!p1.overlaps(p2))
  30.                 return new Vector2f(0.0f,0.0f);
  31.             else
  32.             {
  33.                 if(p1.getOverlap(p2)<overlap)
  34.                 {
  35.                     overlap = p1.getOverlap(p2);
  36.                     axis = edge_normals[i];
  37.                 }
  38.             }
  39.         }
  40.         return Vector2f.multiply(axis,overlap);
  41.     }
Advertisement
Add Comment
Please, Sign In to add comment