18VoxelIndex::from_path_and_corner (uint8_t level, uint64_t path,
int corner)
22 for (
int l = level - 1; l >= 0; --l)
24 uint64_t index = (path >> (3 * l)) & 7;
25 for (
int i = 0; i < 3; ++i)
27 coords[i] = coords[i] << 1;
28 coords[i] += (index & (1 << i)) >> i;
33 for (
int i = 0; i < 3; ++i)
35 coords[i] += (corner >> i) & 1;
36 coords[i] = coords[i] << (20 - level);
40 this->index = coords[0] | coords[1] << 21 | coords[2] << 42;
VoxelData interpolate_voxel(VoxelData const &d1, float w1, VoxelData const &d2, float w2)
Interpolates between two VoxelData objects for Marching Cubes.