00001 00002 /* 00003 COPYRIGHT DISCLAIMER 00004 00005 Vincent Le Guilloux, Peter Schmidtke and Pierre Tuffery, hereby 00006 disclaim all copyright interest in the program “fpocket” (which 00007 performs protein cavity detection) written by Vincent Le Guilloux and Peter 00008 Schmidtke. 00009 00010 Vincent Le Guilloux 28 November 2008 00011 Peter Schmidtke 28 November 2008 00012 Pierre Tuffery 28 November 2008 00013 00014 GNU GPL 00015 00016 This file is part of the fpocket package. 00017 00018 fpocket is free software: you can redistribute it and/or modify 00019 it under the terms of the GNU General Public License as published by 00020 the Free Software Foundation, either version 3 of the License, or 00021 (at your option) any later version. 00022 00023 fpocket is distributed in the hope that it will be useful, 00024 but WITHOUT ANY WARRANTY; without even the implied warranty of 00025 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00026 GNU General Public License for more details. 00027 00028 You should have received a copy of the GNU General Public License 00029 along with fpocket. If not, see <http://www.gnu.org/licenses/>. 00030 00031 **/ 00032 00033 #ifndef DH_VORONOI_LST 00034 #define DH_VORONOI_LST 00035 00036 /* --------------------------------INCLUDES---------------------------------- */ 00037 00038 #include <math.h> 00039 #include <stdio.h> 00040 #include <stdlib.h> 00041 #include <string.h> 00042 #include <ctype.h> 00043 00044 #include "voronoi.h" 00045 #include "atom.h" 00046 #include "memhandler.h" 00047 00048 /* ---------------------------------MACROS----------------------------------- */ 00049 00050 00051 /* -------------------------------STRUCTURES-------------------------------- */ 00052 00053 /** Chained list stuff for vertices in a pocket (to enable dynamic modifications) */ 00054 typedef struct node_vertice 00055 { 00056 struct node_vertice *next; /**<pointer to next node*/ 00057 struct node_vertice *prev; /**< pointer to previous node*/ 00058 s_vvertice *vertice ; /**< pointer to current vertice*/ 00059 00060 } node_vertice ; 00061 /** Chained list stuff for vertices in a pocket (to enable dynamic modifications) */ 00062 typedef struct c_lst_vertices 00063 { 00064 struct node_vertice *first ; /**< pointer to first node*/ 00065 struct node_vertice *last ; /**< pointer to last node */ 00066 struct node_vertice *current ; /**< pointer to current node*/ 00067 size_t n_vertices ; /**< number of vertices*/ 00068 00069 } c_lst_vertices ; 00070 00071 /* ---------------------------------PROTOTYPES------------------------------- */ 00072 00073 c_lst_vertices *c_lst_vertices_alloc(void); 00074 node_vertice *node_vertice_alloc(s_vvertice *vertice); 00075 node_vertice *c_lst_vertices_add_first(c_lst_vertices *lst, s_vvertice *vertice); 00076 node_vertice *c_lst_vertices_add_last(c_lst_vertices *lst,s_vvertice *vertice); 00077 void c_lst_vertices_free(c_lst_vertices *lst); 00078 00079 s_atm** get_vert_contacted_atms(c_lst_vertices *v_lst, int *nneigh) ; 00080 00081 #endif 00082 00083