pub struct CopcHierarchyVlr { /* private fields */ }Expand description
The hierarchy VLR MUST exist.
Like EPT, COPC stores hierarchy information to allow a reader to locate points that are in a particular octree node. Also like EPT, the hierarchy MAY be arranged in a tree of pages, but SHALL always consist of at least ONE hierarchy page. The VLR data consists of one or more hierarchy pages. Each hierarchy data page is written as follows:
VoxelKey corresponds to the naming of EPT data files. octree hierarchy is arranged in pages. The COPC VLR provides information describing the location and size of root hierarchy page. The root hierarchy page can be used to traverse to child pages. Each entry in a hierarchy page either refers to a child hierarchy page, octree node data chunk, or an empty octree node. The size and file offset of each data chunk is provided in the hierarchy entries, allowing the chunks to be directly read for decoding.
Implementations§
Source§impl CopcHierarchyVlr
impl CopcHierarchyVlr
Sourcepub fn write_to<W: Write>(&self, dst: &mut W) -> Result<()>
pub fn write_to<W: Write>(&self, dst: &mut W) -> Result<()>
Writes the Vlr data to the source.
This only writes the payload data the vlr header should be written before-hand.
Sourcepub fn read_from_with(
vlr: &Vlr,
copc_info: &CopcInfoVlr,
) -> Result<CopcHierarchyVlr>
pub fn read_from_with( vlr: &Vlr, copc_info: &CopcInfoVlr, ) -> Result<CopcHierarchyVlr>
Reads the CopcHierarchyVlr from the Vlr payload with specifications from copc_info.
Sourcepub fn iter_entries(&self) -> EntryIterator<'_> ⓘ
pub fn iter_entries(&self) -> EntryIterator<'_> ⓘ
iterates over all entries merging all referenced pages into root
Trait Implementations§
Auto Trait Implementations§
impl Freeze for CopcHierarchyVlr
impl RefUnwindSafe for CopcHierarchyVlr
impl Send for CopcHierarchyVlr
impl Sync for CopcHierarchyVlr
impl Unpin for CopcHierarchyVlr
impl UnsafeUnpin for CopcHierarchyVlr
impl UnwindSafe for CopcHierarchyVlr
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more