1
0

Moved noise debugging into the Noise.* files

git-svn-id: http://mc-server.googlecode.com/svn/trunk@1485 0a769ca7-a7f5-676a-18bf-c427514a06d6
This commit is contained in:
madmaxoft@gmail.com 2013-05-15 17:09:38 +00:00
parent 1118ae3033
commit e7238456db
3 changed files with 93 additions and 77 deletions

View File

@ -14,83 +14,6 @@
void Debug3DNoise(NOISE_DATATYPE * a_Noise, int a_SizeX, int a_SizeY, int a_SizeZ, const AString & a_FileNameBase)
{
const int BUF_SIZE = 512;
ASSERT(a_SizeX <= BUF_SIZE); // Just stretch it, if needed
// Save in XY cuts:
cFile f1;
if (f1.Open(Printf("%s_XY (%d).grab", a_FileNameBase.c_str(), a_SizeX), cFile::fmWrite))
{
for (int z = 0; z < a_SizeZ; z++)
{
for (int y = 0; y < a_SizeY; y++)
{
int idx = y * a_SizeX + z * a_SizeX * a_SizeY;
unsigned char buf[BUF_SIZE];
for (int x = 0; x < a_SizeX; x++)
{
buf[x] = (unsigned char)(std::min(255, std::max(0, (int)(128 + 32 * a_Noise[idx++]))));
}
f1.Write(buf, a_SizeX);
} // for y
unsigned char buf[BUF_SIZE];
memset(buf, 0, a_SizeX);
f1.Write(buf, a_SizeX);
} // for z
} // if (XY file open)
cFile f2;
if (f2.Open(Printf("%s_XZ (%d).grab", a_FileNameBase.c_str(), a_SizeX), cFile::fmWrite))
{
for (int y = 0; y < a_SizeY; y++)
{
for (int z = 0; z < a_SizeZ; z++)
{
int idx = y * a_SizeX + z * a_SizeX * a_SizeY;
unsigned char buf[BUF_SIZE];
for (int x = 0; x < a_SizeX; x++)
{
buf[x] = (unsigned char)(std::min(255, std::max(0, (int)(128 + 32 * a_Noise[idx++]))));
}
f2.Write(buf, a_SizeX);
} // for z
unsigned char buf[BUF_SIZE];
memset(buf, 0, a_SizeX);
f2.Write(buf, a_SizeX);
} // for y
} // if (XZ file open)
}
void Debug2DNoise(NOISE_DATATYPE * a_Noise, int a_SizeX, int a_SizeY, const AString & a_FileNameBase)
{
const int BUF_SIZE = 512;
ASSERT(a_SizeX <= BUF_SIZE); // Just stretch it, if needed
cFile f1;
if (f1.Open(Printf("%s (%d).grab", a_FileNameBase.c_str(), a_SizeX), cFile::fmWrite))
{
for (int y = 0; y < a_SizeY; y++)
{
int idx = y * a_SizeX;
unsigned char buf[BUF_SIZE];
for (int x = 0; x < a_SizeX; x++)
{
buf[x] = (unsigned char)(std::min(255, std::max(0, (int)(128 + 32 * a_Noise[idx++]))));
}
f1.Write(buf, a_SizeX);
} // for y
} // if (file open)
}
/*
// Perform an automatic test of upscaling upon program start (use breakpoints to debug):

View File

@ -17,6 +17,87 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Globals:
void Debug3DNoise(const NOISE_DATATYPE * a_Noise, int a_SizeX, int a_SizeY, int a_SizeZ, const AString & a_FileNameBase)
{
const int BUF_SIZE = 512;
ASSERT(a_SizeX <= BUF_SIZE); // Just stretch it, if needed
// Save in XY cuts:
cFile f1;
if (f1.Open(Printf("%s_XY (%d).grab", a_FileNameBase.c_str(), a_SizeX), cFile::fmWrite))
{
for (int z = 0; z < a_SizeZ; z++)
{
for (int y = 0; y < a_SizeY; y++)
{
int idx = y * a_SizeX + z * a_SizeX * a_SizeY;
unsigned char buf[BUF_SIZE];
for (int x = 0; x < a_SizeX; x++)
{
buf[x] = (unsigned char)(std::min(255, std::max(0, (int)(128 + 32 * a_Noise[idx++]))));
}
f1.Write(buf, a_SizeX);
} // for y
unsigned char buf[BUF_SIZE];
memset(buf, 0, a_SizeX);
f1.Write(buf, a_SizeX);
} // for z
} // if (XY file open)
cFile f2;
if (f2.Open(Printf("%s_XZ (%d).grab", a_FileNameBase.c_str(), a_SizeX), cFile::fmWrite))
{
for (int y = 0; y < a_SizeY; y++)
{
for (int z = 0; z < a_SizeZ; z++)
{
int idx = y * a_SizeX + z * a_SizeX * a_SizeY;
unsigned char buf[BUF_SIZE];
for (int x = 0; x < a_SizeX; x++)
{
buf[x] = (unsigned char)(std::min(255, std::max(0, (int)(128 + 32 * a_Noise[idx++]))));
}
f2.Write(buf, a_SizeX);
} // for z
unsigned char buf[BUF_SIZE];
memset(buf, 0, a_SizeX);
f2.Write(buf, a_SizeX);
} // for y
} // if (XZ file open)
}
void Debug2DNoise(const NOISE_DATATYPE * a_Noise, int a_SizeX, int a_SizeY, const AString & a_FileNameBase)
{
const int BUF_SIZE = 512;
ASSERT(a_SizeX <= BUF_SIZE); // Just stretch it, if needed
cFile f1;
if (f1.Open(Printf("%s (%d).grab", a_FileNameBase.c_str(), a_SizeX), cFile::fmWrite))
{
for (int y = 0; y < a_SizeY; y++)
{
int idx = y * a_SizeX;
unsigned char buf[BUF_SIZE];
for (int x = 0; x < a_SizeX; x++)
{
buf[x] = (unsigned char)(std::min(255, std::max(0, (int)(128 + 32 * a_Noise[idx++]))));
}
f1.Write(buf, a_SizeX);
} // for y
} // if (file open)
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// cCubicCell2D:
@ -755,6 +836,7 @@ void cPerlinNoise::Generate2D(
if (m_Octaves.empty())
{
// No work to be done
ASSERT(!"Perlin: No octaves to generate!");
return;
}
@ -816,6 +898,7 @@ void cPerlinNoise::Generate3D(
if (m_Octaves.empty())
{
// No work to be done
ASSERT(!"Perlin: No octaves to generate!");
return;
}

View File

@ -296,3 +296,13 @@ NOISE_DATATYPE cNoise::LinearInterpolate(NOISE_DATATYPE a_A, NOISE_DATATYPE a_B,
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Global functions:
extern void Debug2DNoise(const NOISE_DATATYPE * a_Noise, int a_SizeX, int a_SizeY, const AString & a_FileNameBase);
extern void Debug3DNoise(const NOISE_DATATYPE * a_Noise, int a_SizeX, int a_SizeY, int a_SizeZ, const AString & a_FileNameBase);