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:
parent
1118ae3033
commit
e7238456db
@ -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):
|
// Perform an automatic test of upscaling upon program start (use breakpoints to debug):
|
||||||
|
|
||||||
|
@ -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:
|
// cCubicCell2D:
|
||||||
|
|
||||||
@ -755,6 +836,7 @@ void cPerlinNoise::Generate2D(
|
|||||||
if (m_Octaves.empty())
|
if (m_Octaves.empty())
|
||||||
{
|
{
|
||||||
// No work to be done
|
// No work to be done
|
||||||
|
ASSERT(!"Perlin: No octaves to generate!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -816,6 +898,7 @@ void cPerlinNoise::Generate3D(
|
|||||||
if (m_Octaves.empty())
|
if (m_Octaves.empty())
|
||||||
{
|
{
|
||||||
// No work to be done
|
// No work to be done
|
||||||
|
ASSERT(!"Perlin: No octaves to generate!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user