- function vec_cross(const a,b:TVector):TVector;
- begin
- result:=vector(a.y*b.z-a.z*b.y,b.x*a.z-a.x*b.z,a.x*b.y-a.y*b.x);
- end;
- function vec_normalize(const v:TVector):TVector;
- var
- l:single;
- begin
- l:=sqrt(sqr(v.x)+sqr(v.y)+sqr(v.z));
- vec_normalize:=vec_scale(v,1/l);
- end;
- function vec_scale(const v:TVector;const scale:single):TVector;
- begin
- result.x:=v.x*scale;
- result.y:=v.y*scale;
- result.z:=v.z*scale;
- end;
- function Vector(const x,y,z:single):TVector;
- begin
- result.x:=x;result.y:=y;result.z:=z;
- end;