Moved common code into function.
This commit is contained in:
@ -123,18 +123,7 @@ namespace PolyVox
|
||||
const uint16_t yOffset = static_cast<uint16_t>(uYPos & m_iChunkMask);
|
||||
const uint16_t zOffset = static_cast<uint16_t>(uZPos & m_iChunkMask);
|
||||
|
||||
Chunk* pChunk;
|
||||
if ((chunkX == m_v3dLastAccessedChunkX) &&
|
||||
(chunkY == m_v3dLastAccessedChunkY) &&
|
||||
(chunkZ == m_v3dLastAccessedChunkZ) &&
|
||||
(m_pLastAccessedChunk != 0))
|
||||
{
|
||||
pChunk = m_pLastAccessedChunk;
|
||||
}
|
||||
else
|
||||
{
|
||||
pChunk = getChunk(chunkX, chunkY, chunkZ);
|
||||
}
|
||||
auto pChunk = canReuseLastAccessedChunk(chunkX, chunkY, chunkZ) ? m_pLastAccessedChunk : getChunk(chunkX, chunkY, chunkZ);
|
||||
|
||||
return pChunk->getVoxel(xOffset, yOffset, zOffset);
|
||||
}
|
||||
@ -167,18 +156,7 @@ namespace PolyVox
|
||||
const uint16_t yOffset = static_cast<uint16_t>(uYPos - (chunkY << m_uChunkSideLengthPower));
|
||||
const uint16_t zOffset = static_cast<uint16_t>(uZPos - (chunkZ << m_uChunkSideLengthPower));
|
||||
|
||||
Chunk* pChunk;
|
||||
if ((chunkX == m_v3dLastAccessedChunkX) &&
|
||||
(chunkY == m_v3dLastAccessedChunkY) &&
|
||||
(chunkZ == m_v3dLastAccessedChunkZ) &&
|
||||
(m_pLastAccessedChunk != 0))
|
||||
{
|
||||
pChunk = m_pLastAccessedChunk;
|
||||
}
|
||||
else
|
||||
{
|
||||
pChunk = getChunk(chunkX, chunkY, chunkZ);
|
||||
}
|
||||
auto pChunk = canReuseLastAccessedChunk(chunkX, chunkY, chunkZ) ? m_pLastAccessedChunk : getChunk(chunkX, chunkY, chunkZ);
|
||||
|
||||
pChunk->setVoxel(xOffset, yOffset, zOffset, tValue);
|
||||
}
|
||||
@ -280,6 +258,15 @@ namespace PolyVox
|
||||
}
|
||||
}
|
||||
|
||||
template <typename VoxelType>
|
||||
bool PagedVolume<VoxelType>::canReuseLastAccessedChunk(int32_t iChunkX, int32_t iChunkY, int32_t iChunkZ) const
|
||||
{
|
||||
return ((iChunkX == m_v3dLastAccessedChunkX) &&
|
||||
(iChunkY == m_v3dLastAccessedChunkY) &&
|
||||
(iChunkZ == m_v3dLastAccessedChunkZ) &&
|
||||
(m_pLastAccessedChunk));
|
||||
}
|
||||
|
||||
template <typename VoxelType>
|
||||
typename PagedVolume<VoxelType>::Chunk* PagedVolume<VoxelType>::getChunk(int32_t uChunkX, int32_t uChunkY, int32_t uChunkZ) const
|
||||
{
|
||||
|
Reference in New Issue
Block a user