Main Page | Alphabetical List | Compound List | File List | Compound Members | File Members

SURFACE.H File Reference

#include <Assert.h>
#include <Windows.h>
#include "BaseType.h"
#include "PtrTypes.h"
#include "Vec3d.h"
#include "DCommon.h"

Go to the source code of this file.

Compounds

struct  Surf_LVertex
struct  Surf_SurfInfo
struct  Surf_TexVert
struct  Surf_TLVertex

Defines

#define SURFINFO_TRANS   (1<<0)
#define SURFINFO_LTYPED   (1<<1)
#define SURFINFO_LIGHTMAP   (1<<2)
#define SURFINFO_WAVY   (1<<3)

Typedefs

typedef Surf_SurfInfo Surf_SurfInfo
typedef Surf_TexVert Surf_TexVert

Functions

geBoolean Surf_EngineInit (geEngine *Engine)
void Surf_EngineShutdown (geEngine *Engine)
geBoolean Surf_SetEngine (geEngine *Engine)
geBoolean Surf_SetWorld (geWorld *World)
geBoolean Surf_SetGBSP (World_BSP *BSP)
geBoolean Surf_WorldInit (geWorld *World)
void Surf_WorldShutdown (geWorld *World)
BOOL Surf_InSurfBoundingBox (Surf_SurfInfo *Surf, geVec3d *Pos, geFloat Box)


Define Documentation

#define SURFINFO_LIGHTMAP   (1<<2)
 

Definition at line 96 of file SURFACE.H.

Referenced by geEngine_CreateWorldLightmapTHandles(), geEngine_DestroyWorldLightmapTHandles(), GetSurfInfo(), Light_GetLightmapRGB(), and Light_GetLightmapRGBBlended().

#define SURFINFO_LTYPED   (1<<1)
 

Definition at line 95 of file SURFACE.H.

Referenced by GetSurfInfo(), and Light_SetupLightmap().

#define SURFINFO_TRANS   (1<<0)
 

Definition at line 94 of file SURFACE.H.

Referenced by GetSurfInfo(), and RenderFace().

#define SURFINFO_WAVY   (1<<3)
 

Definition at line 97 of file SURFACE.H.

Referenced by RenderFace(), and Vis_MarkWaterFaces().


Typedef Documentation

typedef struct Surf_SurfInfo Surf_SurfInfo
 

typedef struct Surf_TexVert Surf_TexVert
 


Function Documentation

geBoolean Surf_EngineInit geEngine Engine  ) 
 

Definition at line 57 of file Surface.c.

References GE_TRUE, and geBoolean.

00058 {
00059         return GE_TRUE;
00060 }

void Surf_EngineShutdown geEngine Engine  ) 
 

Definition at line 65 of file Surface.c.

References BSPData, CEngine, CWorld, and NULL.

00066 {
00067         CEngine = NULL;
00068         CWorld = NULL;
00069         BSPData = NULL;
00070 }

BOOL Surf_InSurfBoundingBox Surf_SurfInfo Surf,
geVec3d Pos,
geFloat  Box
 

Definition at line 182 of file Surface.c.

References FALSE, NULL, TRUE, Surf_SurfInfo::VMaxs, Surf_SurfInfo::VMins, geVec3d::X, geVec3d::Y, and geVec3d::Z.

Referenced by gePuppet_ComputeAmbientLight(), geSprite_UpdateLighting(), and SetupDynamicLight_r().

00183 {
00184    assert(Surf != NULL);
00185    assert(Pos != NULL);
00186 
00187 /* eaa3 05/31/2000 charlie_x's optimization added */
00188 
00189   if(Pos->Z+Box >= Surf->VMins.Z && Pos->Z-Box <= Surf->VMaxs.Z)
00190           {
00191                 if(Pos->Y+Box >= Surf->VMins.Y && Pos->Y-Box <= Surf->VMaxs.Y)
00192                   {
00193                         if(Pos->X+Box >= Surf->VMins.X && Pos->X-Box <= Surf->VMaxs.X)
00194                           {
00195                                 return TRUE;
00196                                 }
00197                         }
00198                 }
00199 /*
00200    if (Pos->X+Box >= Surf->VMins.X && Pos->X-Box <= Surf->VMaxs.X)
00201    if (Pos->Y+Box >= Surf->VMins.Y && Pos->Y-Box <= Surf->VMaxs.Y)
00202    if (Pos->Z+Box >= Surf->VMins.Z && Pos->Z-Box <= Surf->VMaxs.Z)
00203         return TRUE;
00204 */
00205 
00206    return FALSE;
00207 }

geBoolean Surf_SetEngine geEngine Engine  ) 
 

Definition at line 76 of file Surface.c.

References CEngine, Engine, GE_TRUE, geBoolean, and NULL.

Referenced by World_SetEngine().

00077 {
00078         assert (Engine != NULL);
00079 
00080         CEngine = Engine;
00081 
00082         return GE_TRUE;
00083 }

geBoolean Surf_SetGBSP World_BSP BSP  ) 
 

Definition at line 101 of file Surface.c.

References World_BSP::BSPData, BSPData, GE_TRUE, geBoolean, and NULL.

Referenced by World_SetGBSP().

00102 {
00103         assert(BSP != NULL);
00104 
00105         // Make quick pointer to the world bsp data
00106         BSPData = &BSP->BSPData;
00107 
00108         return GE_TRUE;
00109 }

geBoolean Surf_SetWorld geWorld World  ) 
 

Definition at line 89 of file Surface.c.

References CWorld, GE_TRUE, geBoolean, and NULL.

Referenced by World_SetWorld().

00090 {
00091         assert(World != NULL);
00092         
00093         CWorld = World;
00094 
00095         return GE_TRUE;
00096 }

geBoolean Surf_WorldInit geWorld World  ) 
 

Definition at line 116 of file Surface.c.

References World_BSP::BSPData, CalcSurfVectors(), geWorld::CurrentBSP, GE_FALSE, GE_RAM_ALLOCATE_ARRAY, GE_TRUE, geBoolean, geRam_Free, GetRGBVerts(), GetSurfInfo(), GetTexVerts(), Light_SetGBSP(), Light_SetWorld(), NULL, GBSP_BSPData::NumGFXFaces, GBSP_BSPData::NumGFXVertIndexList, World_BSP::SurfInfo, and World_BSP::TexVerts.

Referenced by geWorld_Create().

00117 {
00118         World_BSP       *BSP;
00119 
00120         assert(World != NULL);
00121         
00122         BSP = World->CurrentBSP;
00123 
00124         assert(BSP != NULL);
00125 
00126         // Make sure we free the old ones...
00127         if (BSP->TexVerts)
00128                 geRam_Free(BSP->TexVerts);
00129         
00130         if (BSP->SurfInfo)
00131                 geRam_Free(BSP->SurfInfo);
00132 
00133         // Create new TexVerts and FaceInfo structure for this bsp
00134         BSP->TexVerts = GE_RAM_ALLOCATE_ARRAY(Surf_TexVert, BSP->BSPData.NumGFXVertIndexList);
00135         BSP->SurfInfo = GE_RAM_ALLOCATE_ARRAY(Surf_SurfInfo, BSP->BSPData.NumGFXFaces);
00136         
00137         // Fill in info needed to render this tree
00138         if (!GetTexVerts(BSP))                  // Calc texture uv's at vertices...
00139                 return GE_FALSE;
00140 
00141         if (!GetSurfInfo(BSP))                  // Get surface info
00142                 return GE_FALSE;
00143 
00144         Light_SetWorld(World);
00145         Light_SetGBSP(BSP);
00146 
00147         if (!GetRGBVerts(BSP))                  // Calc RGB values at vertices
00148                 return GE_FALSE;
00149 
00150         CalcSurfVectors (BSP);
00151 
00152         return GE_TRUE;
00153 }

void Surf_WorldShutdown geWorld World  ) 
 

Definition at line 158 of file Surface.c.

References geWorld::CurrentBSP, geRam_Free, NULL, World_BSP::SurfInfo, and World_BSP::TexVerts.

Referenced by geWorld_Free().

00159 {
00160         World_BSP *BSP;
00161 
00162         assert(World != NULL);
00163 
00164         BSP = World->CurrentBSP;
00165 
00166         if (!BSP)
00167                 return;
00168 
00169         if (BSP->TexVerts)
00170                 geRam_Free(BSP->TexVerts);
00171         if (BSP->SurfInfo)
00172                 geRam_Free(BSP->SurfInfo);
00173 
00174         BSP->TexVerts = NULL;
00175         BSP->SurfInfo = NULL;
00176 }


Generated on Tue Sep 30 12:38:10 2003 for GTestAndEngine by doxygen 1.3.2