1 /*
2 ===========================================================================
3 Copyright (C) 1999-2005 Id Software, Inc.
4 
5 This file is part of Quake III Arena source code.
6 
7 Quake III Arena source code is free software; you can redistribute it
8 and/or modify it under the terms of the GNU General Public License as
9 published by the Free Software Foundation; either version 2 of the License,
10 or (at your option) any later version.
11 
12 Quake III Arena source code is distributed in the hope that it will be
13 useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 GNU General Public License for more details.
16 
17 You should have received a copy of the GNU General Public License
18 along with Quake III Arena source code; if not, write to the Free Software
19 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
20 ===========================================================================
21 */
22 
23 /*****************************************************************************
24  * name:		be_aas_sample.h
25  *
26  * desc:		AAS
27  *
28  * $Archive: /source/code/botlib/be_aas_sample.h $
29  *
30  *****************************************************************************/
31 
32 #ifdef AASINTERN
33 void AAS_InitAASLinkHeap(void);
34 void AAS_InitAASLinkedEntities(void);
35 void AAS_FreeAASLinkHeap(void);
36 void AAS_FreeAASLinkedEntities(void);
37 aas_face_t *AAS_AreaGroundFace(int areanum, vec3_t point);
38 aas_face_t *AAS_TraceEndFace(aas_trace_t *trace);
39 aas_plane_t *AAS_PlaneFromNum(int planenum);
40 aas_link_t *AAS_AASLinkEntity(vec3_t absmins, vec3_t absmaxs, int entnum);
41 aas_link_t *AAS_LinkEntityClientBBox(vec3_t absmins, vec3_t absmaxs, int entnum, int presencetype);
42 qboolean AAS_PointInsideFace(int facenum, vec3_t point, float epsilon);
43 qboolean AAS_InsideFace(aas_face_t *face, vec3_t pnormal, vec3_t point, float epsilon);
44 void AAS_UnlinkFromAreas(aas_link_t *areas);
45 #endif //AASINTERN
46 
47 //returns the mins and maxs of the bounding box for the given presence type
48 void AAS_PresenceTypeBoundingBox(int presencetype, vec3_t mins, vec3_t maxs);
49 //returns the cluster the area is in (negative portal number if the area is a portal)
50 int AAS_AreaCluster(int areanum);
51 //returns the presence type(s) of the area
52 int AAS_AreaPresenceType(int areanum);
53 //returns the presence type(s) at the given point
54 int AAS_PointPresenceType(vec3_t point);
55 //returns the result of the trace of a client bbox
56 aas_trace_t AAS_TraceClientBBox(vec3_t start, vec3_t end, int presencetype, int passent);
57 //stores the areas the trace went through and returns the number of passed areas
58 int AAS_TraceAreas(vec3_t start, vec3_t end, int *areas, vec3_t *points, int maxareas);
59 //returns the areas the bounding box is in
60 int AAS_BBoxAreas(vec3_t absmins, vec3_t absmaxs, int *areas, int maxareas);
61 //return area information
62 int AAS_AreaInfo( int areanum, aas_areainfo_t *info );
63 //returns the area the point is in
64 int AAS_PointAreaNum(vec3_t point);
65 //
66 int AAS_PointReachabilityAreaIndex( vec3_t point );
67 //returns the plane the given face is in
68 void AAS_FacePlane(int facenum, vec3_t normal, float *dist);
69 
70