This is vector.h in view mode; [Download] [Up]
#ifndef __VECTOR_H
#define __VECTOR_H
/* vector.h */
typedef struct pointstruct2D {
float px;
float py;
} POINT2D;
typedef struct rpointstruct2D {
float px;
float py;
float pw;
} RPOINT2D;
typedef struct pointstruct {
float px;
float py;
float pz;
} POINT;
typedef struct rpointstruct {
float px;
float py;
float pz;
float pw;
} RPOINT;
typedef struct vecstruct {
float dx;
float dy;
float dz;
} VECTOR;
/* 1/27/89 -- added DOUBLE structs seth */
typedef struct dpointstruct2D {
double px;
double py;
} DPOINT2D;
typedef struct rdpointstruct2D {
double px;
double py;
double pw;
} DRPOINT2D;
typedef struct dpointstruct {
double px;
double py;
double pz;
} DPOINT;
typedef struct drpointstruct {
double px;
double py;
double pz;
double pw;
} DRPOINT;
typedef struct dvecstruct {
double dx;
double dy;
double dz;
} DVECTOR;
float
mag (/*a*/), /* ||a|| */
recip_mag (/*a*/), /* 1.0/||a||*/
dot (/*a, b*/); /* a . b */
VECTOR
*vlerp (/*p, a, b, t*/), /* v = ta + (a-t)b */
*norm (/*a*/), /* a /= ||a|| */
*assign (/*a, b*/), /* a = b */
*vscale (/*a, t*/), /* a *= t */
*diff (/*a, b, c*/), /* a = b - c */
*cross (/*a, b, c*/), /* a = b x c */
*lcross (/*a, b, c*/); /* a = -b x c */
POINT
*plerp (/*p, a, b, t*/), /* p = ta + (a-t)b */
*midpoint (/*a, b, c*/), /* a = (b+c)/2 */
*pminusv (/*a, p, v*/), /* a = p - v */
*pplusv (/*a, p, v*/), /* a = p + v */
*pminustv (/*a, p, t, v*/), /* a = p - tv */
*pplustv (/*a, p, t, v*/); /* a = p + tv */
#endif
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.