3#include <CesiumGeometry/Library.h> 
    4#include <CesiumUtility/Assert.h> 
   16namespace AvailabilityUtilities {
 
   17uint8_t countOnesInByte(uint8_t _byte);
 
   18uint32_t countOnesInBuffer(std::span<const std::byte> buffer);
 
   86  std::vector<std::vector<std::byte>> 
buffers;
 
 
  121      uint32_t maxChildrenSubtrees) noexcept;
 
 
  131  std::unique_ptr<AvailabilityNode> 
pRoot;
 
 
  158    return pBufferView != 
nullptr && bufferAccessor;
 
 
  168  bool isConstant() const noexcept { 
return pConstant != 
nullptr; }
 
  186    CESIUM_ASSERT(bufferAccessor.has_value());
 
  187    return *bufferAccessor;
 
 
  198    CESIUM_ASSERT(bufferAccessor.has_value());
 
  199    return bufferAccessor.value()[i];
 
 
  209  size_t size()
 const { 
return pBufferView->byteLength; }
 
  214  std::optional<std::span<const std::byte>> bufferAccessor;
 
 
const std::span< const std::byte > & getBufferAccessor() const
Obtains an accessor to the buffer used by the AvailabilityView.
size_t size() const
Obtains the size of the buffer used by the AvailabilityView.
bool isBufferView() const noexcept
Is this AvailabilityAccessor accessing a SubtreeBufferView?
const std::byte & operator[](size_t i) const
Obtains the byte at the given index from the buffer used by the AvailabilityView.
AvailabilityAccessor(const AvailabilityView &view, const AvailabilitySubtree &subtree) noexcept
Creates a new AvailabilityAccessor.
bool getConstant() const
Obtains the constant value of the AvailabilityView.
bool isConstant() const noexcept
Is this AvailabilityAccessor accessing a ConstantAvailability?
Basic geometry classes for Cesium.
std::variant< ConstantAvailability, SubtreeBufferView > AvailabilityView
A view into availability information for part of the availability tree. This could be either a consta...
AvailabilityNode() noexcept
Creates an empty instance;.
std::optional< AvailabilitySubtree > subtree
The subtree data for this node.
void setLoadedSubtree(AvailabilitySubtree &&subtree_, uint32_t maxChildrenSubtrees) noexcept
Sets the loaded subtree for this availability node.
std::vector< std::unique_ptr< AvailabilityNode > > childNodes
The child nodes for this subtree node.
The subtree data for an AvailabilityNode, containing information on tile, content,...
AvailabilityView contentAvailability
The availability information corresponding to TileAvailabilityFlags::CONTENT_AVAILABLE.
std::vector< std::vector< std::byte > > buffers
Subtree buffers that may be referenced by a SubtreeBufferView.
AvailabilityView subtreeAvailability
The availability information corresponding to TileAvailabilityFlags::SUBTREE_AVAILABLE and TileAvaila...
AvailabilityView tileAvailability
The availability information corresponding to TileAvailabilityFlags::TILE_AVAILABLE.
A downwardly-traversable tree of AvailabilityNode objects.
std::unique_ptr< AvailabilityNode > pRoot
The root AvailabilityNode of this tree.
An availability value that is a constant boolean value.
bool constant
The constant value.
An availability value that needs to be obtained using an offset into a buffer.
uint32_t byteLength
The number of bytes after the offset to read until.
uint8_t buffer
The index into AvailabilitySubtree::buffers that this SubtreeBufferView corresponds to.
uint32_t byteOffset
The offset into the buffer to read from.