database mesh data loaded into hashmaps
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
package engine.collision;
|
||||
|
||||
import java.awt.geom.Line2D;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class Mesh {
|
||||
public ArrayList<Triangle> triangles;
|
||||
public ArrayList<Line2D> BoundingLines;
|
||||
public float meshHeight;
|
||||
|
||||
public boolean BoundsCollides(Line2D line){
|
||||
for(Line2D side : BoundingLines)
|
||||
if(side.intersectsLine(line))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean MeshCollides(Line2D line, float charHeight){
|
||||
|
||||
//movement path does not intersect this mesh
|
||||
if(!this.BoundsCollides(line))
|
||||
return false;
|
||||
|
||||
//character moving is higher than the max Y of this mesh
|
||||
if(charHeight < this.meshHeight)
|
||||
return false;
|
||||
|
||||
for(Triangle tri : triangles)
|
||||
if(tri.collides(line))
|
||||
return true;
|
||||
|
||||
//characters movement path did not intersect this triangle
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package engine.collision;
|
||||
|
||||
import java.awt.geom.Line2D;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class Triangle {
|
||||
public ArrayList<Line2D> sides;
|
||||
public boolean collides(Line2D line)
|
||||
{
|
||||
for(Line2D side : sides)
|
||||
if(side.intersectsLine(line))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user