import { Vector2 } from "three";

export function computeArea(data: any, type: "zone" | "rooms" | "aisle"): any {
  if (type === "zone") {
    const points3D = data.map((p: any) => new Vector2(p[0], p[2]));
    let area = 0;
    for (let i = 0; i < points3D.length - 1; i++) {
      const current = points3D[i];
      const next = points3D[i + 1];
      area += current.x * next.y - next.x * current.y;
    }

    return Math.abs(area) / 2;
  }

  if (type === "rooms") {
    const points2D = data.coordinates.map(
      (coordinate: any) =>
        new Vector2(coordinate.position.x, coordinate.position.z)
    );
    let area = 0;
    for (let i = 0; i < points2D.length - 1; i++) {
      const current = points2D[i];
      const next = points2D[i + 1];
      area += current.x * next.y - next.x * current.y;
    }
    return Math.abs(area) / 2;
  }
}
