/* * boxvec.h * * Copyright © 2016 Thomas White * * This file is part of Colloquium. * * Colloquium is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * */ #ifndef BOXVEC_H #define BOXVEC_H #ifdef HAVE_CONFIG_H #include #endif #include #include #include /* A vector of boxes */ struct boxvec { int n_boxes; int max_boxes; struct wrap_box **boxes; }; /* Length of a boxvec */ extern int bv_len(struct boxvec *vec); /* Create a bxvec or boxvec */ extern struct boxvec *bv_new(void); /* Ensure space in a bxvec or boxvec */ extern int bv_ensure_space(struct boxvec *vec, int n); /* Add to a bxvec or boxvec */ extern int bv_add(struct boxvec *vec, struct wrap_box *bx); /* (Find and then) delete a box from a boxvec */ extern void bv_del(struct boxvec *vec, struct wrap_box *bx); /* Get a box from a boxvec or bxvec */ extern struct wrap_box *bv_box(struct boxvec *vec, int i); extern struct wrap_box *bv_last(struct boxvec *vec); /* Free a bxvec or boxvec */ extern void bv_free(struct boxvec *vec); #endif /* BOXVEC_H */