1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
#ifndef MATHUTIL_H
#define MATHUTIL_H
#include "objects.h"
extern double RADTODEG(double radians);
extern double DEGTORAD(double degrees);
extern double SANITIZERADIANS(double radians);
extern double SANITIZEDEGREES(double degrees);
extern double MuPolarRotX(double theta, double r);
extern double MuPolarRotY(double theta, double r);
extern void MuSetUnitVector2D(
xsw_vector_compoent_struct *v,
double bearing
);
extern void MuSetUnitVector3D(
xsw_vector_compoent_struct *v,
double bearing, double pitch
);
extern void MuVectorAdd(
double v1_dir, double v1_mag,
double v2_dir, double v2_mag,
double *v_dir_rtn, double *v_mag_rtn
);
extern double MuCoordinateDeltaVector(double dx, double dy);
extern double Mu3DDistance(double dx, double dy, double dz);
extern int Mu3DInSector(
long object_num,
long sect_x,
long sect_y,
long sect_z
);
extern int Mu3DInSameSector(long object_num1, long object_num2);
extern int Mu3DInSameSectorPtr(
xsw_object_struct *obj1_ptr,
xsw_object_struct *obj2_ptr
);
extern int Mu3DInContact(long object_num1, long object_num2);
extern int Mu3DInContactPtr(
xsw_object_struct *obj1_ptr,
xsw_object_struct *obj2_ptr
);
extern int Mu3DInVectorContact(
long object_num1,
long object_num2,
double heading,
double heading_variance,
double range
);
extern int Mu3DInRange(long object_num1, long object_num2, double distance);
extern int Mu3DInRangePtr(
xsw_object_struct *obj1_ptr,
xsw_object_struct *obj2_ptr,
double distance
);
extern double MuMaxRangeByVelocity(double v_max, long t);
#endif /* MATHUTIL_H */
|