source: anuga_work/development/anugavis/src/vector.c @ 5330

Last change on this file since 5330 was 5330, checked in by jack, 16 years ago

AnugaVis?: Improved camera control. Added forwards/backwards motion.

File size: 874 bytes
Line 
1#include <math.h>
2#include "vector.h"
3
4void vadd(const vector v1, const vector v2, vector result){
5  int i;
6  for(i = 0 ; i < 3 ; i++) result[i] = v1[i] + v2[i];
7}
8
9float vlen(const vector v){
10  return sqrt(v[0] * v[0] + v[1] * v[1] + v[2] * v[2]);
11}
12
13void vscale(const vector v, const float scale, vector result){
14  int i;
15  for(i = 0 ; i < 3 ; i++) result[i] = scale * v[i];
16}
17
18void vsub(const vector v1, const vector v2, vector result){
19  int i;
20  for(i = 0 ; i < 3 ; i++) result[i] = v1[i] - v2[i];
21}
22
23float vdot(const vector v1, const vector v2){
24  int i;
25  float rv = 0;
26  for(i = 0 ; i < 3 ; i++) rv += v1[i] * v2[i];
27  return rv;
28}
29
30void vcross(const vector v1, const vector v2, vector result){
31  result[0] = v1[1] * v2[2] - v1[2] * v2[1];
32  result[1] = v1[2] * v2[0] - v1[0] * v2[2];
33  result[2] = v1[0] * v2[1] - v1[1] * v2[0];
34}
Note: See TracBrowser for help on using the repository browser.