#include "qbsp.h"
#include "../botlib/aasfile.h"
#include "aas_create.h"
Include dependency graph for aas_edgemelting.c:

Go to the source code of this file.
Functions | |
| void | AAS_MeltAreaFaceWindings (void) |
| int | AAS_MeltFaceWinding (tmp_face_t *face1, tmp_face_t *face2) |
| int | AAS_MeltFaceWindingsOfArea (tmp_area_t *tmparea) |
|
|
Definition at line 92 of file aas_edgemelting.c. References AAS_MeltFaceWindingsOfArea(), tmp_aas_s::areas, tmp_area_s::l_next, Log_Write(), qprintf(), tmp_area_t, and tmpaasworld. Referenced by AAS_Create(). 00093 {
00094 tmp_area_t *tmparea;
00095 int num_windingsplits = 0;
00096
00097 Log_Write("AAS_MeltAreaFaceWindings\r\n");
00098 qprintf("%6d edges melted", num_windingsplits);
00099 //NOTE: first convex area (zero) is a dummy
00100 for (tmparea = tmpaasworld.areas; tmparea; tmparea = tmparea->l_next)
00101 {
00102 num_windingsplits += AAS_MeltFaceWindingsOfArea(tmparea);
00103 qprintf("\r%6d", num_windingsplits);
00104 } //end for
00105 qprintf("\n");
00106 Log_Write("%6d edges melted\r\n", num_windingsplits);
00107 } //end of the function AAS_MeltAreaFaceWindings
|
Here is the call graph for this function:

|
||||||||||||
|
Definition at line 35 of file aas_edgemelting.c. References AddWindingPoint(), plane_t::dist, Error(), FreeWinding(), i, mapplanes, n, plane_t::normal, tmp_face_s::num, winding_t::numpoints, winding_t::p, tmp_face_s::planenum, PointOnWinding(), tmp_face_t, and tmp_face_s::winding. Referenced by AAS_MeltFaceWindingsOfArea(). 00036 {
00037 int i, n;
00038 int splits = 0;
00039 winding_t *w2, *neww;
00040 plane_t *plane1;
00041
00042 #ifdef DEBUG
00043 if (!face1->winding) Error("face1 %d without winding", face1->num);
00044 if (!face2->winding) Error("face2 %d without winding", face2->num);
00045 #endif //DEBUG
00046 w2 = face2->winding;
00047 plane1 = &mapplanes[face1->planenum];
00048 for (i = 0; i < w2->numpoints; i++)
00049 {
00050 if (PointOnWinding(face1->winding, plane1->normal, plane1->dist, w2->p[i], &n))
00051 {
00052 neww = AddWindingPoint(face1->winding, w2->p[i], n);
00053 FreeWinding(face1->winding);
00054 face1->winding = neww;
00055
00056 splits++;
00057 } //end if
00058 } //end for
00059 return splits;
00060 } //end of the function AAS_MeltFaceWinding
|
Here is the call graph for this function:

|
|
Definition at line 68 of file aas_edgemelting.c. References AAS_MeltFaceWinding(), tmp_face_s::frontarea, tmp_face_s::next, tmp_area_t, tmp_face_t, and tmp_area_s::tmpfaces. Referenced by AAS_MeltAreaFaceWindings(). 00069 {
00070 int side1, side2, num_windingsplits = 0;
00071 tmp_face_t *face1, *face2;
00072
00073 for (face1 = tmparea->tmpfaces; face1; face1 = face1->next[side1])
00074 {
00075 side1 = face1->frontarea != tmparea;
00076 for (face2 = tmparea->tmpfaces; face2; face2 = face2->next[side2])
00077 {
00078 side2 = face2->frontarea != tmparea;
00079 if (face1 == face2) continue;
00080 num_windingsplits += AAS_MeltFaceWinding(face1, face2);
00081 } //end for
00082 } //end for
00083 return num_windingsplits;
00084 } //end of the function AAS_MeltFaceWindingsOfArea
|
Here is the call graph for this function:

1.3.9.1