1
0
forked from 0ad/0ad
0ad/source/graphics/Patch.cpp
notpete 97b7efab20 Fixed some assumptions PATCH_SIZE is 16.
This was SVN commit r415.
2004-06-07 19:59:20 +00:00

63 lines
1.3 KiB
C++
Executable File

///////////////////////////////////////////////////////////////////////////////
//
// Name: ModelDef.cpp
// Author: Rich Cross
// Contact: rich@wildfiregames.com
//
///////////////////////////////////////////////////////////////////////////////
#include "precompiled.h"
#include "Patch.h"
#include "Terrain.h"
///////////////////////////////////////////////////////////////////////////////
// CPatch constructor
CPatch::CPatch() : m_Parent(0)
{
}
///////////////////////////////////////////////////////////////////////////////
// CPatch destructor
CPatch::~CPatch()
{
}
///////////////////////////////////////////////////////////////////////////////
// Initialize: setup patch data
void CPatch::Initialize(CTerrain* parent,u32 x,u32 z)
{
delete m_RenderData;
m_RenderData=0;
m_Parent=parent;
m_X=x;
m_Z=z;
// set parent of each patch
for (int j=0;j<PATCH_SIZE;j++) {
for (int i=0;i<PATCH_SIZE;i++) {
m_MiniPatches[j][i].m_Parent=this;
}
}
CalcBounds();
}
///////////////////////////////////////////////////////////////////////////////
// CalcBounds: calculating the bounds of this patch
void CPatch::CalcBounds()
{
m_Bounds.SetEmpty();
for (int j=0;j<PATCH_SIZE+1;j++) {
for (int i=0;i<PATCH_SIZE+1;i++) {
CVector3D pos;
m_Parent->CalcPosition(m_X*PATCH_SIZE+i,m_Z*PATCH_SIZE+j,pos);
m_Bounds+=pos;
}
}
}