1
\$\begingroup\$

I am trying to do AABB vs AABB collision and the code is never finding a collision.

 private static boolean checkFullCollision(Entity entity, Entity entity1) { float[] amin = entity.getMin(); float[] amax = entity.getMax(); float[] bmin = entity1.getMin(); float[] bmax = entity1.getMax(); return (amin[0] <= bmax[0] && amax[0] >= bmin[0]) && (amin[1] <= bmax[1] && amax[1] >= bmin[1]) && (amin[2] <= bmax[2] && amax[2] >= bmin[2]); } 

where I calculate my min and max.

 public float[] getMax() { final float[] max = new float[3]; max[0] = position.x + this.max.x; max[1] = position.y + this.max.y; max[2] = position.z + this.max.z; //System.out.println(position); return max; } public float[] getMin() { final float[] min = new float[3]; min[0] = position.x - this.min.x; min[1] = position.y - this.min.y; min[2] = position.z - this.min.z; return min; } 

Can someone help me please.

Thanks in advance

\$\endgroup\$
1
  • \$\begingroup\$ What do you mean by "not working"? \$\endgroup\$ Commented May 16, 2018 at 16:47

1 Answer 1

1
\$\begingroup\$

I figured out the answer.

For people trying to implement an aabb vs aabb collision here is the code.

private static boolean checkFullCollision(Entity entity, Entity id1) { // VERY INPORTANY. The max and min are centered at the origin(0,0) and not at the entities posititon. Vector3f aextents = Vector3f.sub(entity.getModel().getMax(), entity.getModel().getMin(), null); Vector3f bextents = Vector3f.sub(entity.getModel().getMax(), entity.getModel().getMin(), null); boolean x = (abs(entity.getPosition().x - id1.getPosition().x) <= aextents.x + bextents.x); boolean y = (abs(entity.getPosition().y - id1.getPosition().y) <= aextents.y + bextents.y); boolean z = (abs(entity.getPosition().z - id1.getPosition().z) <= aextents.z + bextents.z); return x && y && z; } 
\$\endgroup\$
2
  • \$\begingroup\$ @AlexandreVaillancourt I will \$\endgroup\$ Commented May 17, 2018 at 11:05
  • \$\begingroup\$ @AlexandreVaillancourt see my other question \$\endgroup\$ Commented May 17, 2018 at 11:07

You must log in to answer this question.