Ejemplo n.º 1
0
/**
 * Performs element-wise addition of `offset` and the position of each voxel.
 * 
 * @param offset
 *          offset vector
 */
void Chunk::shiftVoxels(Position offset)
{
    unsigned long long x;
    unsigned long long y;
    unsigned long long z;

    unsigned long long dx = std::get<0>(offset);
    unsigned long long dy = std::get<1>(offset);
    unsigned long long dz = std::get<2>(offset);

    for(unsigned int i=0;i<this->size;i++)
    {
        for(unsigned int j=0;j<this->size;j++)
        {
            for(unsigned int k=0;k<this->size;k++)
            {
                Voxel currVoxel = this->voxels[i][j][k];

                x = std::get<0>(currVoxel.getPosition());
                y = std::get<1>(currVoxel.getPosition());
                z = std::get<2>(currVoxel.getPosition());
                
                this->voxels[i][j][k].setPosition(std::make_tuple(x+dx, y+dy, z+dz));
            }
        }
    }
}