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){

        //movement path does not intersect this mesh
        //if(line.intersects(boundsRect) == false)
        if(!this.BoundsCollides(line))
            return false;

        //character moving is higher than the max Y of this mesh
        if(charY > this.maxY && charHeight + charY < this.minY)
            return false;

        for(Triangle tri : triangles)
            if(tri.collides(line))
                return true;

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