package engine.CollisionEngine;

import java.awt.geom.Line2D;

import java.awt.geom.Rectangle2D;
import java.util.ArrayList;

public class Mesh {
    public ArrayList<Triangle> triangles;
    public ArrayList<Line2D> BoundingLines;
    public Rectangle2D boundsRect;
    public float maxY;
    public float minY;

    public boolean BoundsCollides(Line2D line){
        for(Line2D side : BoundingLines)
            if(side.intersectsLine(line))
                return true;

        return false;
    }

    public boolean MeshCollides(Line2D line, float charHeight, float charY){

        //check if movement path intersects this mesh
        if(!this.BoundsCollides(line))
            return false;

        boolean feetcollides = (charY + charHeight) < this.minY;
        boolean headcollides = charY > this.maxY;
        //check to see if the mesh collides between the characters feet and head locations
        if(feetcollides && headcollides){
            return false;
        }

        //check if any triangles intersect the movement path
        for(Triangle tri : triangles)
            if(tri.collides(line))
                return true;

        //characters movement path did not intersect this mesh
        return false;
    }
}