+ Chunk *RandomChunk(GaloisLFSR &rand) {
+ return rand.From(chunks);
+ }
+ BlockLookup RandomBlock(GaloisLFSR &rand) {
+ return BlockLookup(RandomChunk(rand), Chunk::ToPos(rand.Next<unsigned int>() % Chunk::size));
+ }
+
+ int Extent() const noexcept { return extent; }
+
+ Chunk::Pos CoordsBegin() const noexcept { return base - Chunk::Pos(extent); }
+ Chunk::Pos CoordsEnd() const noexcept { return base + Chunk::Pos(extent + 1); }
+