public void drawModel(Graphics2D graphics, GameObject obj, Color color) {
        Model model = obj.getModel();
        if (model == null || !model.isValid()) {
            return;
        }

        Vec3[][] vectors = model.getVectors();

        if (obj.getType() == Type.BOUNDARY) {
            graphics.setColor(color);
        } else if (obj.getType() == Type.FLOOR_DECORATION) {
            graphics.setColor(Color.RED);
        } else if (obj.getType() == Type.INTERACTABLE) {
            graphics.setColor(Color.BLUE);
        } else {
            graphics.setColor(Color.MAGENTA);
        }

        int gx = obj.getLocation().getGx();
        int gy = obj.getLocation().getGy();

        for (Vec3[] points : vectors) {
            Vec3 pa = points[0];
            Vec3 pb = points[1];
            Vec3 pc = points[2];

            Point a = Perspective.trans_tile_cam(getContext().getClient(), gx + (int) pa.x, gy + (int) pc.x, 0 - (int) pb.x);
            Point b = Perspective.trans_tile_cam(getContext().getClient(), gx + (int) pa.y, gy + (int) pc.y, 0 - (int) pb.y);
            Point c = Perspective.trans_tile_cam(getContext().getClient(), gx + (int) pa.z, gy + (int) pc.z, 0 - (int) pb.z);

            if (a.x >= 0 && b.x >= 0 && c.x >= 0) {
                Polygon poly = new Polygon(new int[]{a.x, b.x, c.x}, new int[]{a.y, b.y, c.y}, 3);

                graphics.drawPolygon(poly);
            }
        }
    }