From 88f45143117f3ae973be6e3ea5dac8063a7b8ece Mon Sep 17 00:00:00 2001 From: Samo Penic <samo@amalthea> Date: Sat, 19 Mar 2011 18:35:08 +0000 Subject: [PATCH] Added spherical harmonics routine.I've got a feeling that some harmonics are not calculated correctly! --- src/vertex.c | 26 ++++++++++++++++++++------ 1 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/vertex.c b/src/vertex.c index 92c5032..b5f8519 100644 --- a/src/vertex.c +++ b/src/vertex.c @@ -52,16 +52,19 @@ ts_uint nn=++vtx->data->neigh_no; vtx->data->neigh=(ts_vertex **)realloc(vtx->data->neigh, nn*sizeof(ts_vertex *)); vtx->data->neigh[nn-1]=nvtx; - +/* This was a bug in creating DIPYRAMID (the neighbours were not in right + * order). + */ /* pa se sosedu dodamo vertex */ /*if it is already a neighbour don't add it to the list */ +/* for(i=0; i<nvtx->data->neigh_no;i++){ if(nvtx->data->neigh[i]==vtx) return TS_FAIL; } nn=++nvtx->data->neigh_no; nvtx->data->neigh=(ts_vertex **)realloc(nvtx->data->neigh, nn*sizeof(ts_vertex *)); nvtx->data->neigh[nn-1]=vtx; - +*/ return TS_SUCCESS; } @@ -108,12 +111,12 @@ bond=bond_add(blist,vtx1,vtx2); if(bond==NULL) return TS_FAIL; vtx1->data->bond_no++; - vtx2->data->bond_no++; + // vtx2->data->bond_no++; vtx1->data->bond=(ts_bond **)realloc(vtx1->data->bond, vtx1->data->bond_no*sizeof(ts_bond *)); - vtx2->data->bond=(ts_bond **)realloc(vtx2->data->bond, vtx2->data->bond_no*sizeof(ts_bond *)); + // vtx2->data->bond=(ts_bond **)realloc(vtx2->data->bond, vtx2->data->bond_no*sizeof(ts_bond *)); vtx1->data->bond[vtx1->data->bond_no-1]=bond; - vtx2->data->bond[vtx2->data->bond_no-1]=bond; + // vtx2->data->bond[vtx2->data->bond_no-1]=bond; return TS_SUCCESS; } @@ -141,7 +144,8 @@ if(data->neigh!=NULL) free(data->neigh); if(data->tristar!=NULL) free(data->tristar); if(data->bond!=NULL) free(data->bond); - if(data->cell!=NULL) free(data->cell); +//Cells are freed separately. + // if(data->cell!=NULL) free(data->cell); free(data); return TS_SUCCESS; } @@ -232,11 +236,21 @@ cvtx->data->cell=NULL; return TS_SUCCESS; } + +ts_bool vtx_duplicate(ts_vertex *cvtx, ts_vertex *ovtx){ + memcpy((void *)cvtx,(void *)ovtx,sizeof(ts_vertex)); + cvtx->data=(ts_vertex_data *)malloc(sizeof(ts_vertex_data)); + memcpy((void *)cvtx->data,(void *)ovtx->data,sizeof(ts_vertex_data)); + return TS_SUCCESS; +} + //TODO: needs to be done ts_vertex **vtx_neigh_copy(ts_vertex_list *vlist,ts_vertex *ovtx){ return NULL; } + + ts_vertex_list *vertex_list_copy(ts_vertex_list *ovlist){ ts_uint i; ts_vertex_list *vlist=(ts_vertex_list *)malloc(sizeof(ts_vertex_list)); -- Gitblit v1.9.3