struct vec{float a[3];} /* A plain vector */; struct tri {vec A[3];} /* A tensor */; struct vert{vec wh, mom; float mass;} /* All about a vertex */; struct lt{float a,b,c,d,e,f;} /* A lower triangular matrix */; struct simp{lt sh; short v[4]; short mat;} /* All about a zone */; struct link{short a, b;} /* Verticies to draw between */; void rec_seg(int, int); void physics(void); vert cvert(vec, float m); void pr(vec); vec operator*(float, vec); vec operator+(vec, vec); vec operator-(vec, vec); float px(float); void init(void); void force(float); void tent(int,int,int,int,int,int); tri tp(tri); vec operator*(lt, vec); vec cdvec(int, int); vec operator%(vec, vec); float operator*(vec, vec); extern vec zvec; extern int damp; vec cvec(float i, float j, float k); tri ctri(vec, vec, vec); extern link segs[]; extern int n_segs; extern int cycle; extern float dt; extern int xx; /* The guts */ extern vert u[]; extern simp s[]; extern int n_vert, n_seg; /* Table of materials */ extern float mu[], lam[]; /* Material index while calling tent */ extern short material;