Core API

Core data structures and basic operations.

Array Container

Multi-dimensional array template class.

template<typename T>
class Array {
public:
    Array(size_t width, size_t height, size_t depth = 1);

    T& operator()(size_t x, size_t y, size_t z = 0);
    const T& operator()(size_t x, size_t y, size_t z = 0) const;

    size_t width() const;
    size_t height() const;
    size_t depth() const;
    size_t size() const;

    T* data();
    const T* data() const;
};

PolarGrid

Polar coordinate grid for projection geometry.

template<typename T>
class PolarGrid {
public:
    PolarGrid(size_t n_radial, size_t n_angular, T radius);

    size_t n_radial() const;
    size_t n_angular() const;
    T radius() const;

    // Grid coordinates
    T r(size_t i) const;  // Radial coordinate
    T theta(size_t j) const;  // Angular coordinate
};

Data Types

Type aliases for common data types:

namespace tomocam {
    using real_t = float;
    using complex_t = std::complex<float>;

    template<typename T>
    using Array2D = Array<T>;

    template<typename T>
    using Array3D = Array<T>;
}