7#ifndef PXR_EXEC_VDF_COMPRESSED_INDEX_MAPPING_H
8#define PXR_EXEC_VDF_COMPRESSED_INDEX_MAPPING_H
12#include "pxr/exec/vdf/api.h"
18PXR_NAMESPACE_OPEN_SCOPE
27 size_t logicalStartIndex;
39 return logicalStartIndex < rhs.logicalStartIndex;
78 size_t FindDataIndex(
size_t logicalIdx,
size_t *blockHint)
const;
83 size_t FindBlockIndex(
size_t logicalIdx)
const;
88 bool ComputeDataIndex(
size_t blockIndex,
size_t logicalIndex,
89 size_t *dataIndex)
const;
94 size_t GetBlockFirstIndex(
size_t blockIdx)
const;
98 size_t GetBlockLastIndex(
size_t blockIdx)
const;
101 size_t GetBlockLength(
size_t blockIdx)
const;
106 void FindBlockRange(
size_t first,
size_t last,
107 size_t *firstBlockIdx,
size_t *lastBlockIdx)
const;
110 size_t GetFirstIndex()
const {
111 return GetBlockFirstIndex(0);
115 size_t GetLastIndex()
const {
116 return GetBlockLastIndex(_blockMappings.size() - 1);
122 void ComputeStoredBits(
VdfMask::Bits *bits,
size_t num)
const;
128 typedef std::vector<Vdf_IndexBlockMapping> _BlockMappings;
129 _BlockMappings _blockMappings;
133PXR_NAMESPACE_CLOSE_SCOPE
Fast, compressed bit array which is capable of performing logical operations without first decompress...
This collection of IndexBlockMappings is all the info required to take a logical index into a compres...
Implements a Vdf_VectorData storage that is holds a subset of a vector.
A mapping that relates logical blocks of indices to actual stored data when the data is compressed by...