using System.Collections.Generic; using UnityEngine; public static class RoomCentering { // Centre basé sur le bounding box (souvent mieux qu'une moyenne/centroïde pour des pièces) public static Vector2 ComputeBoundsCenter(IList pts) { if (pts == null || pts.Count == 0) return Vector2.zero; float minX = pts[0].x, maxX = pts[0].x; float minY = pts[0].y, maxY = pts[0].y; for (int i = 1; i < pts.Count; i++) { var p = pts[i]; if (p.x < minX) minX = p.x; if (p.x > maxX) maxX = p.x; if (p.y < minY) minY = p.y; if (p.y > maxY) maxY = p.y; } return new Vector2((minX + maxX) * 0.5f, (minY + maxY) * 0.5f); } public static void Offset(List pts, Vector2 delta) { if (pts == null) return; for (int i = 0; i < pts.Count; i++) pts[i] -= delta; } }