Improvement to VolumeResampler.

This commit is contained in:
unknown 2012-02-10 15:07:54 +01:00
parent 7afe172244
commit 4957d98518

View File

@ -21,6 +21,8 @@ freely, subject to the following restrictions:
distribution.
*******************************************************************************/
#include "PolyVoxImpl\Utility.h"
namespace PolyVox
{
template< template<typename> class SrcVolumeType, template<typename> class DestVolumeType, typename VoxelType>
@ -110,14 +112,14 @@ namespace PolyVox
VoxelType voxel110 = sampler.peekVoxel1px1py0pz();
VoxelType voxel111 = sampler.peekVoxel1px1py1pz();
uint8_t voxel000Den = voxel000.getDensity();
uint8_t voxel001Den = voxel001.getDensity();
uint8_t voxel010Den = voxel010.getDensity();
uint8_t voxel011Den = voxel011.getDensity();
uint8_t voxel100Den = voxel100.getDensity();
uint8_t voxel101Den = voxel101.getDensity();
uint8_t voxel110Den = voxel110.getDensity();
uint8_t voxel111Den = voxel111.getDensity();
VoxelType::DensityType voxel000Den = voxel000.getDensity();
VoxelType::DensityType voxel001Den = voxel001.getDensity();
VoxelType::DensityType voxel010Den = voxel010.getDensity();
VoxelType::DensityType voxel011Den = voxel011.getDensity();
VoxelType::DensityType voxel100Den = voxel100.getDensity();
VoxelType::DensityType voxel101Den = voxel101.getDensity();
VoxelType::DensityType voxel110Den = voxel110.getDensity();
VoxelType::DensityType voxel111Den = voxel111.getDensity();
//FIXME - should accept all float parameters, but GCC complains?
double dummy;
@ -125,7 +127,7 @@ namespace PolyVox
sy = modf(sy, &dummy);
sz = modf(sz, &dummy);
uint8_t uInterpolatedDensity = trilinearlyInterpolate<float>(voxel000Den,voxel100Den,voxel010Den,voxel110Den,voxel001Den,voxel101Den,voxel011Den,voxel111Den,sx,sy,sz);
VoxelType::DensityType uInterpolatedDensity = trilinearlyInterpolate<float>(voxel000Den,voxel100Den,voxel010Den,voxel110Den,voxel001Den,voxel101Den,voxel011Den,voxel111Den,sx,sy,sz);
VoxelType result;
result.setDensity(uInterpolatedDensity);