//double getCross(double p1_x, double p1_y, double p2_x, double p2_y, double p_x, double p_y)
//{
// return (p2_x - p1_x) * (p_y - p1_y) - (p_x - p1_x) * (p2_y - p1_y);
//}
//bool Collision::checkTwoBoxCollision(double length, double width, double ori, double rz, std::array<double, 4> moving_box,
// double placed_max_x, double placed_min_x, double placed_max_y, double placed_min_y)
//{
// if(ori > -1){
// double temp = length;
// length = width;
// width = temp;
// }
// rz = rz - ori;
// double vx1 = -length/2, vy1 = -width/2;
// double vx2 = length/2, vy2 = -width/2;
// double vx3 = length/2, vy3 = width/2;
// double vx4 = -length/2, vy4 = width/2;
// double rx1 = vx1 * cos(rz) - vy1 * sin(rz) + moving_box[0];
// double ry1 = vx1 * sin(rz) + vy1 * cos(rz) + moving_box[1];
// double rx2 = vx2 * cos(rz) - vy2 * sin(rz) + moving_box[0];
// double ry2 = vx2 * sin(rz) + vy2 * cos(rz) + moving_box[1];
// double rx3 = vx3 * cos(rz) - vy3 * sin(rz) + moving_box[0];
// double ry3 = vx3 * sin(rz) + vy3 * cos(rz) + moving_box[1];
// double rx4 = vx4 * cos(rz) - vy4 * sin(rz) + moving_box[0];
// double ry4 = vx4 * sin(rz) + vy4 * cos(rz) + moving_box[1];
// bool isPoint1In = getCross(rx1, ry1, rx2, ry2, placed_min_x, placed_min_y) * getCross(rx3, ry3, rx4, ry4, placed_min_x, placed_min_y) >= 0
// && getCross(rx2, ry2, rx3, ry3, placed_min_x, placed_min_y) * getCross(rx4, ry4, rx1, ry1, placed_min_x, placed_min_y) >= 0;
// bool isPoint2In = getCross(rx1, ry1, rx2, ry2, placed_min_x, placed_max_y) * getCross(rx3, ry3, rx4, ry4, placed_min_x, placed_max_y) >= 0
// && getCross(rx2, ry2, rx3, ry3, placed_min_x, placed_max_y) * getCross(rx4, ry4, rx1, ry1, placed_min_x, placed_max_y) >= 0;
// bool isPoint3In = getCross(rx1, ry1, rx2, ry2, placed_max_x, placed_min_y) * getCross(rx3, ry3, rx4, ry4, placed_max_x, placed_min_y) >= 0
// && getCross(rx2, ry2, rx3, ry3, placed_max_x, placed_min_y) * getCross(rx4, ry4, rx1, ry1, placed_max_x, placed_min_y) >= 0;
// bool isPoint4In = getCross(rx1, ry1, rx2, ry2, placed_max_x, placed_max_y) * getCross(rx3, ry3, rx4, ry4, placed_max_x, placed_max_y) >= 0
// && getCross(rx2, ry2, rx3, ry3, placed_max_x, placed_max_y) * getCross(rx4, ry4, rx1, ry1, placed_max_x, placed_max_y) >= 0;
// if (!isPoint1In && !isPoint2In && !isPoint3In && !isPoint4In) {
// return 0;
// }
// return 1;
//}