From 8e345370c7846bb5592fb639a6ff91a8abbeef00 Mon Sep 17 00:00:00 2001 From: Samo Penic <samo.penic@gmail.com> Date: Sun, 10 Jul 2016 18:44:43 +0000 Subject: [PATCH] Saving all the differences --- src/vertex.c | 55 ++++++++++++++++++++++--------------------------------- 1 files changed, 22 insertions(+), 33 deletions(-) diff --git a/src/vertex.c b/src/vertex.c index 1993856..59a6419 100644 --- a/src/vertex.c +++ b/src/vertex.c @@ -1,3 +1,4 @@ +/* vim: set ts=4 sts=4 sw=4 noet : */ #include<stdlib.h> #include<math.h> #include<string.h> @@ -5,6 +6,14 @@ #include "vertex.h" #include "bond.h" #include<stdio.h> + +ts_bool vertex_list_assign_id(ts_vertex_list *vlist, ts_uint id){ + ts_uint i; + for(i=0;i<vlist->n;i++){ + vlist->vtx[i]->id = id; + } + return TS_SUCCESS; +} ts_vertex_list *init_vertex_list(ts_uint N){ ts_int i; @@ -191,6 +200,19 @@ return TS_SUCCESS; } +/** Calculates the triple product of vectors defined by vertices vtx1, vtx2 and vtx3, ($\mathrm{vtx}_1\cdot(\mathrm{vtx}_2\cross\mathrm{vtx}_3$): + * \begin{vmatrix} + * x_1 & y_1 & z_1 \\ + * x_2-x_1 & y_2-y_1 & z_2-z_1\\ + * x_3-x_1 & y_3-y_1 & z_3-z_1\\ + * \end{vmatrix} + * where the vertices coordinates are denoted by corresponding vertex index number. Function is used to determine the orientation of area formed by triangle formed by the three given vertices. + * + * @param vtx1 is first vertex, according to which the orientation is calculated + * @param vtx2 is the second vertex + * @param vtx3 is the third vertex + * @returns directionality of the area of the triangle formed by vertices vtx1, vtx2 and vtx3. It is positive if vtx1, vtx2 and vtx3 are oriented counter-clockwise. +*/ inline ts_double vtx_direct(ts_vertex *vtx1, ts_vertex *vtx2, ts_vertex *vtx3){ ts_double dX2=vtx2->x-vtx1->x; ts_double dY2=vtx2->y-vtx1->y; @@ -310,37 +332,4 @@ } return vlist; -} - - - -ts_bool vertex_taint(ts_vertex *vtx, ts_uint level){ - if(level==0){ - vtx->locked++; - return TS_SUCCESS; - } - ts_uint i; - for(i=0; i<vtx->neigh_no; i++){ - vertex_taint(vtx->neigh[i], level-1); - } - vtx->locked++; - return TS_SUCCESS; -} - -ts_bool vertex_untaint(ts_vertex *vtx, ts_uint level){ - if(level==0){ - vtx->locked--; - return TS_SUCCESS; - } - ts_uint i; - for(i=0; i<vtx->neigh_no; i++){ - vertex_untaint(vtx->neigh[i], level-1); - } - vtx->locked--; - return TS_SUCCESS; -} - -inline ts_bool vertex_tainted(ts_vertex *vtx, ts_uint level, ts_uint amount){ - if(vtx->locked>amount) return 1; - else return 0; } -- Gitblit v1.9.3