1
This commit is contained in:
73
engine/decal_clip.h
Normal file
73
engine/decal_clip.h
Normal file
@ -0,0 +1,73 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//=============================================================================//
|
||||
|
||||
#ifndef DECAL_CLIP_H
|
||||
#define DECAL_CLIP_H
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
|
||||
#include "mathlib/vector.h"
|
||||
#include "mathlib/vector2d.h"
|
||||
#include "mathlib/compressed_vector.h"
|
||||
#include "materialsystem/imaterialsystem.h"
|
||||
#include "materialsystem/imaterial.h"
|
||||
#include "filesystem.h"
|
||||
#include "decal_private.h"
|
||||
#include "gl_model_private.h"
|
||||
|
||||
|
||||
#define MAX_DECALCLIPVERT 48
|
||||
|
||||
|
||||
class CDecalVert
|
||||
{
|
||||
public:
|
||||
Vector m_vPos;
|
||||
int m_decalIndex; // used by the cache code
|
||||
|
||||
// These are the texcoords for the decal itself
|
||||
Vector2D m_ctCoords;
|
||||
// Lightmap texcoords for the decal.
|
||||
Vector2D m_cLMCoords;
|
||||
};
|
||||
|
||||
|
||||
// Clip pOutVerts/nStartVerts into the decal's texture space.
|
||||
CDecalVert* R_DoDecalSHClip(
|
||||
CDecalVert *pInVerts,
|
||||
CDecalVert *pOutVerts,
|
||||
decal_t *pDecal,
|
||||
int nStartVerts,
|
||||
const Vector &vecNormal );
|
||||
|
||||
// Generate clipped vertex list for decal pdecal projected onto polygon psurf
|
||||
CDecalVert* R_DecalVertsClip(
|
||||
CDecalVert *pOutVerts,
|
||||
decal_t *pDecal,
|
||||
SurfaceHandle_t surfID,
|
||||
IMaterial *pMaterial );
|
||||
|
||||
// Compute the unscaled basis for the decal.
|
||||
void R_DecalComputeBasis(
|
||||
Vector const& surfaceNormal,
|
||||
Vector const* pSAxis,
|
||||
Vector* textureSpaceBasis );
|
||||
|
||||
// Compute the basis for the decal and scale the axes so the whole decal fits
|
||||
// into the (0,0) - (1,1) range.
|
||||
void R_SetupDecalTextureSpaceBasis(
|
||||
decal_t *pDecal,
|
||||
Vector &vSurfNormal,
|
||||
IMaterial *pMaterial,
|
||||
Vector textureSpaceBasis[3],
|
||||
float decalWorldScale[2] );
|
||||
|
||||
extern ALIGN16 CDecalVert g_DecalClipVerts[MAX_DECALCLIPVERT] ALIGN16_POST;
|
||||
|
||||
#endif // DECAL_CLIP_H
|
Reference in New Issue
Block a user