|
MayaFlux 0.5.0
Digital-First Multimedia Processing Framework
|
A lattice and every field sampled over it, held in host memory. More...
#include <VolumeData.hpp>
Collaboration diagram for MayaFlux::Kakshya::VolumeData:Public Member Functions | |
| size_t | cell_count () const |
| Cells in the lattice, which every field's element_count() must equal. | |
| const VolumeField * | find (const std::string &name) const |
| Resolve a field by name. | |
| bool | is_consistent () const |
| Check that every field is densely populated over the lattice. | |
Public Attributes | |
| std::vector< VolumeField > | fields |
| Kinesis::Lattice3D | lattice |
A lattice and every field sampled over it, held in host memory.
The interchange currency between whatever produced the values and whatever writes them. Parallels ImageData: no Vulkan awareness, no ownership of GPU resources, no knowledge of any file format. A writer receives one of these and nothing else.
All fields share the lattice. A producer wanting fields at differing resolutions emits several VolumeData rather than one, which matches how every target format treats a resolution change anyway.
The lattice carries the world-space bounds and resolution, so a writer derives voxel size from cell_size() and the index-to-world mapping from cell_center() without further arguments. There is no time member: a frame sequence is a sequence of these, numbered by the caller.
Field order is the producer's order and is preserved. Nothing depends on it, but a reader diffing two files will thank you.
Definition at line 109 of file VolumeData.hpp.