2 @Copyright Looking Glass Studios, Inc.
3 1996,1997,1998,1999,2000 Unpublished Work.
6 ///////////////////////////////////////////////////////////////////////////////
7 // $Header: r:/t2repos/thief2/src/ai/aidist.h,v 1.4 1998/07/23 13:14:44 TOML Exp $
20 inline float AIDistance(float x1
, float y1
, float x2
, float y2
)
36 inline float AIDistance(const mxs_vector
&p1
, const mxs_vector
&p2
)
48 if (pflt(b
, a
) && pflt(c
, a
))
49 return (a
+ b
/2 + c
/2);
51 if (pflt(a
, b
) && pflt(c
, b
))
52 return (b
+ a
/2 + c
/2);
54 return (c
+ a
/2 + b
/2);
57 inline float AIXYDistance(const mxs_vector
&p1
, const mxs_vector
&p2
)
73 inline float AIXYDistanceSq(const mxs_vector
&p1
, const mxs_vector
&p2
)
75 return ((p1
.x
-p2
.x
)*(p1
.x
-p2
.x
) + (p1
.y
-p2
.y
)*(p1
.y
-p2
.y
));
78 inline float AIDistanceSq(float x1
, float y1
, float x2
, float y2
)
80 return ((x1
-x2
)*(x1
-x2
) + (y1
-y2
)*(y1
-y2
));
83 inline float AIDistanceSq(const mxs_vector
&a
, const mxs_vector
&b
)
85 return ((a
.x
-b
.x
)*(a
.x
-b
.x
) + (a
.y
-b
.y
)*(a
.y
-b
.y
) + (a
.z
-b
.z
)*(a
.z
-b
.z
));
88 ///////////////////////////////////////
90 inline BOOL
AIInsideSphere(const mxs_vector
& loc
, const mxs_vector
& center
, float radiusSq
)
92 return pflt(AIDistanceSq(loc
, center
), radiusSq
);
95 inline BOOL
AIInsideCylinder(const mxs_vector
& loc
, const mxs_vector
& center
, float radiusSq
, float halfHeight
)
97 if (pflt(ffabsf(center
.z
- loc
.z
), halfHeight
))
98 return pflt(AIXYDistanceSq(loc
, center
), radiusSq
);
102 inline BOOL
AIInsideSphere(const mxs_vector
& loc
, const mxs_vector
& center
, float radiusSq
, float * pDistSq
)
104 *pDistSq
= AIDistanceSq(loc
, center
);
105 return pflt(*pDistSq
, radiusSq
);
108 inline BOOL
AIInsideCylinder(const mxs_vector
& loc
, const mxs_vector
& center
, float radiusSq
, float halfHeight
, float * pDistSq
)
110 *pDistSq
= AIDistanceSq(loc
, center
);
111 if (pflt(ffabsf(center
.z
- loc
.z
), halfHeight
))
112 return pflt(AIXYDistanceSq(loc
, center
), radiusSq
);
116 ///////////////////////////////////////
118 #endif /* !__AIDIST_H */