tests ...
[physik/posic.git] / math / math.c
index 9cfaff6..54d79fd 100644 (file)
@@ -66,6 +66,11 @@ int v3_cmp(t_3dvec *a,t_3dvec *b) {
        return(memcmp(a,b,sizeof(t_3dvec)));
 }
 
+double v3_scalar_product(t_3dvec *a,t_3dvec *b) {
+
+       return(a->x*b->x+a->y*b->y+a->z*b->z);
+}
+
 double v3_absolute_square(t_3dvec *a) {
 
        return(a->x*a->x+a->y*a->y+a->z*a->z);
@@ -76,3 +81,20 @@ double v3_norm(t_3dvec *a) {
        return(sqrt(v3_absolute_square(a)));
 }
 
+int v3_per_bound(t_3dvec *a,t_3dvec *dim) {
+
+       double x,y,z;
+
+       x=0.5*dim->x;
+       y=0.5*dim->y;
+       z=0.5*dim->z;
+
+       if(a->x>=x) a->x-=dim->x;
+       else if(-a->x>x) a->x+=dim->x;
+       if(a->y>=y) a->y-=dim->y;
+       else if(-a->y>y) a->y+=dim->y;
+       if(a->z>=z) a->z-=dim->z;
+       else if(-a->z>z) a->z+=dim->z;
+
+       return 0;
+}