Quake-III-Arena

Quake III Arena GPL Source Release
Log | Files | Refs

be_aas_sample.h (3112B)


      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 Foobar; 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