libtad  1.0
A library that makes working with multidimensional arrays in C++ easy
libtad Reference

Tagged Array Data (TAD): Overview

TAD manages multidimensional arrays. Each array element consists of a fixed number of components. All components are of the same data type (integer or floating point). For example, an array holding image data could be a two-dimensional array with size 800x600, and each element could consist of three uint8 components representing the R, G, and B channels.

Metadata is managed using tags, which are key/value pairs where both key and value are represented as strings. An array has a global tag lists (typically describing the array data as a whole), dimension-specific tag lists (typically describing the dimensions), and component-specific tag lists (typically describing the interpretation of each component).

The libtad Library

The library works with the following classes: TAD::TagList to manage metadata, TAD::ArrayDescription to handle all metadata describing an array, TAD::ArrayContainer to handle array data of any type, and finally TAD::Array to handle arrays with a specific data type so that convenient operations on the data are possible.

All array data is shared by default when making copies of an array. If you want a copy of the data, use TAD::ArrayContainer::deepCopy() or TAD::Array::deepCopy().

Input and output are managed by the TAD::Importer and TAD::Exporter classes, and there are shortcuts TAD::load() and TAD::save() to read and write arrays in just one line of code.