/** * 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)); } } } }