Improvement to VolumeResampler.
This commit is contained in:
parent
7afe172244
commit
4957d98518
@ -21,6 +21,8 @@ freely, subject to the following restrictions:
|
|||||||
distribution.
|
distribution.
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
|
||||||
|
#include "PolyVoxImpl\Utility.h"
|
||||||
|
|
||||||
namespace PolyVox
|
namespace PolyVox
|
||||||
{
|
{
|
||||||
template< template<typename> class SrcVolumeType, template<typename> class DestVolumeType, typename VoxelType>
|
template< template<typename> class SrcVolumeType, template<typename> class DestVolumeType, typename VoxelType>
|
||||||
@ -110,14 +112,14 @@ namespace PolyVox
|
|||||||
VoxelType voxel110 = sampler.peekVoxel1px1py0pz();
|
VoxelType voxel110 = sampler.peekVoxel1px1py0pz();
|
||||||
VoxelType voxel111 = sampler.peekVoxel1px1py1pz();
|
VoxelType voxel111 = sampler.peekVoxel1px1py1pz();
|
||||||
|
|
||||||
uint8_t voxel000Den = voxel000.getDensity();
|
VoxelType::DensityType voxel000Den = voxel000.getDensity();
|
||||||
uint8_t voxel001Den = voxel001.getDensity();
|
VoxelType::DensityType voxel001Den = voxel001.getDensity();
|
||||||
uint8_t voxel010Den = voxel010.getDensity();
|
VoxelType::DensityType voxel010Den = voxel010.getDensity();
|
||||||
uint8_t voxel011Den = voxel011.getDensity();
|
VoxelType::DensityType voxel011Den = voxel011.getDensity();
|
||||||
uint8_t voxel100Den = voxel100.getDensity();
|
VoxelType::DensityType voxel100Den = voxel100.getDensity();
|
||||||
uint8_t voxel101Den = voxel101.getDensity();
|
VoxelType::DensityType voxel101Den = voxel101.getDensity();
|
||||||
uint8_t voxel110Den = voxel110.getDensity();
|
VoxelType::DensityType voxel110Den = voxel110.getDensity();
|
||||||
uint8_t voxel111Den = voxel111.getDensity();
|
VoxelType::DensityType voxel111Den = voxel111.getDensity();
|
||||||
|
|
||||||
//FIXME - should accept all float parameters, but GCC complains?
|
//FIXME - should accept all float parameters, but GCC complains?
|
||||||
double dummy;
|
double dummy;
|
||||||
@ -125,7 +127,7 @@ namespace PolyVox
|
|||||||
sy = modf(sy, &dummy);
|
sy = modf(sy, &dummy);
|
||||||
sz = modf(sz, &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;
|
VoxelType result;
|
||||||
result.setDensity(uInterpolatedDensity);
|
result.setDensity(uInterpolatedDensity);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user