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