Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
149
GameTools/Zallad3D SceneClass/WBLightMap.h
Normal file
149
GameTools/Zallad3D SceneClass/WBLightMap.h
Normal file
@@ -0,0 +1,149 @@
|
||||
// WBLightMap.h: interface for the WBLightMap class.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#if !defined(AFX_WBLIGHTMAP_H__4F1BB2A4_C09E_11D7_8C7F_0040F41B957B__INCLUDED_)
|
||||
#define AFX_WBLIGHTMAP_H__4F1BB2A4_C09E_11D7_8C7F_0040F41B957B__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
#include "WBValue.h"
|
||||
#include "WBLightMapTex.h"
|
||||
|
||||
#define WB_FPBITS(fp) (*(int *)&(fp))
|
||||
//! returns the absolute value of a floating point number in bitwise form
|
||||
#define WB_FPABSBITS(fp) (WB_FPBITS(fp)&0x7FFFFFFF)
|
||||
//! returns the signal bit of a floating point number
|
||||
#define WB_FPSIGNBIT(fp) (WB_FPBITS(fp)&0x80000000)
|
||||
//! returns the absolute value of a floating point number
|
||||
#define WB_FPABS(fp) (*((int *)&fp)=WB_FPABSBITS(fp))
|
||||
#define WBSMALL 1.0e-4f
|
||||
|
||||
class WBLightVertex {
|
||||
public:
|
||||
D3DXVECTOR3 m_vecPos;
|
||||
D3DXVECTOR3 m_vecColor;
|
||||
D3DXVECTOR2 m_vecTexcoord;
|
||||
|
||||
WBLightVertex() {
|
||||
m_vecPos = D3DXVECTOR3(0.0f,0.0f,0.0f);
|
||||
m_vecColor = D3DXVECTOR3(0.0f,0.0f,0.0f);
|
||||
m_vecTexcoord = D3DXVECTOR2(0.0f,0.0f);
|
||||
}
|
||||
};
|
||||
class WBLightMapPlane {
|
||||
public:
|
||||
float m_fDist;
|
||||
D3DXVECTOR3 m_vecNormal;
|
||||
D3DXVECTOR3 m_vecVertex;
|
||||
|
||||
};
|
||||
|
||||
class WBLightMapFace {
|
||||
public:
|
||||
bool m_bSetArea;
|
||||
float m_fArea;
|
||||
|
||||
int m_iObject;
|
||||
|
||||
int m_iVerts;
|
||||
int m_iStartIndex;
|
||||
|
||||
int m_iIndex[3];
|
||||
|
||||
int m_iLightMapId;
|
||||
|
||||
int m_iPlaneVertex;
|
||||
D3DXVECTOR3 *m_pPlaneVertex;
|
||||
D3DXVECTOR3 *m_pEdge;
|
||||
float *m_pEdgeValue;
|
||||
|
||||
float d0;
|
||||
float m_fDist;
|
||||
|
||||
WBLightVertex *m_pVerts;
|
||||
D3DXVECTOR3 m_vecNormal;
|
||||
D3DXVECTOR3 m_vecMin;
|
||||
D3DXVECTOR3 m_vecMax;
|
||||
unsigned char m_ucColor[3];
|
||||
|
||||
WBLightMapFace() {
|
||||
m_bSetArea = false;
|
||||
|
||||
m_iVerts = 0;
|
||||
m_iStartIndex = 0;
|
||||
|
||||
m_iLightMapId = -1;
|
||||
m_pVerts = NULL;
|
||||
m_pEdgeValue = NULL;
|
||||
m_pEdge = NULL;
|
||||
m_pPlaneVertex = NULL;
|
||||
m_iPlaneVertex = 0;
|
||||
|
||||
|
||||
|
||||
}
|
||||
~WBLightMapFace() {
|
||||
if(m_pVerts != NULL)
|
||||
delete[] m_pVerts;
|
||||
if(m_pEdge != NULL)
|
||||
delete[] m_pEdge;
|
||||
if(m_pEdgeValue != NULL)
|
||||
delete[] m_pEdgeValue;
|
||||
if(m_pPlaneVertex != NULL)
|
||||
delete[] m_pPlaneVertex;
|
||||
|
||||
}
|
||||
float area();
|
||||
void GetMinMax();
|
||||
int RayCollision(D3DXVECTOR3 vecStart,D3DXVECTOR3 vecDir,float fLength);
|
||||
int RayCollision(D3DXVECTOR3 vecStart,D3DXVECTOR3 vecEnd);
|
||||
int InsidePolygon(D3DXVECTOR3 vecPoint);
|
||||
void CalcNormal();
|
||||
|
||||
};
|
||||
|
||||
class WBLightMap
|
||||
{
|
||||
public:
|
||||
WBLightMap(int f,int p,int x,int y,int sx,int sy,int bp=3);
|
||||
~WBLightMap();
|
||||
int m_iFaceId;
|
||||
D3DXVECTOR3 v0,
|
||||
v1,
|
||||
v2,
|
||||
normal;
|
||||
float det;
|
||||
float uv[3][2];
|
||||
|
||||
int pic; //!< flyLightMapPic index
|
||||
int offsetx, //!< x offset into the light map picture
|
||||
offsety; //!< y offset into the light map picture
|
||||
int sizex, //!< x size of the light map (no need for being power of 2)
|
||||
sizey; //!< y size of the light map (no need for being power of 2)
|
||||
unsigned char *bmp; //!< light map bitmap
|
||||
int bytespixel, //!< number of bytes per pixel (3: RGB, 4: RGBA)
|
||||
bytesx, //!< number of bytes per line (sizex*bytespixel)
|
||||
bytesxy; //!< total bytes of the bitmap (bytesx*sizey)
|
||||
D3DXVECTOR3 d0, //!< base value used for illumination calculations
|
||||
d1, //!< base value used for illumination calculations
|
||||
d2; //!< base value used for illumination calculations
|
||||
|
||||
|
||||
void set_base(WBLightMapFace *f,WBLightMapTex *lmp,D3DXVECTOR3& pos=D3DXVECTOR3(0,0,0));
|
||||
|
||||
void map_point(float u, float v, D3DXVECTOR3 &point);
|
||||
|
||||
void map_point_local(float u, float v, D3DXVECTOR3 &p,D3DXVECTOR3 &n);
|
||||
virtual void illum(D3DXVECTOR3& pos,D3DXVECTOR3& color,float radius,int shadows);
|
||||
|
||||
void load(WBLightMapTex *lmp);
|
||||
//! Save the light map to flyLightMapPic
|
||||
void save(WBLightMapTex *lmp);
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
#endif // !defined(AFX_WBLIGHTMAP_H__4F1BB2A4_C09E_11D7_8C7F_0040F41B957B__INCLUDED_)
|
||||
Reference in New Issue
Block a user