EleFits  4.0.0
A modern C++ API on top of CFitsIO
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
Euclid::Fits::Position< n > Struct Template Reference

#include <Position.h>

Class Description

template<long n = 2>
struct Euclid::Fits::Position< n >

n-dimensional pixel position or image shape, i.e. set of integer coordinates.

Template Parameters
nA non-negative dimension (0 is allowed), or -1 for variable dimension.

The values are stored in a std::array<long, n> in general (n >= 0), or std::vector<long> for variable dimension (n = -1).

Memory and services are optimized when dimension is fixed at compile-time (n >= 0).

Public Types

using Indices = typename std::conditional<(n==-1), std::vector< long >, std::array< long,(std::size_t) n > >::type
 Storage class for the indices.
 
using value_type = long
 Standad-like alias to the value type for compatibility, e.g. with Boost.
 
using iterator = typename Indices::iterator
 Standad-like alias to the iterator type for compatibility, e.g. with Boost.
 
using const_iterator = typename Indices::const_iterator
 Standad-like alias to the const iterator type for compatibility, e.g. with Boost.
 

Public Member Functions

 Position ()
 Default constructor. More...
 
 Position (long dim)
 Create a position of given dimension.
 
 Position (std::initializer_list< long > posIndices)
 Create a position from a brace-enclosed list of indices.
 
template<typename TIterator >
 Position (TIterator begin, TIterator end)
 Create a position by copying data from some container.
 
bool isZero () const
 Check whether the position is zero.
 
bool isMax () const
 Check whether the position is max.
 
long size () const
 The number of indices.
 
const long * data () const
 Access the underlying array.
 
long * data ()
 
long & operator[] (long i)
 Access the i-th element.
 
const long & operator[] (long i) const
 Access the i-th element. More...
 
iterator begin ()
 Iterator to the first element.
 
const_iterator begin () const
 Iterator to the first element. More...
 
iterator end ()
 Iterator to the past-the-last element.
 
const_iterator end () const
 Iterator to the past-the-last element. More...
 
template<long m>
Position< m > slice () const
 Create a position of lower dimension. More...
 
template<long m>
Position< m > extend (const Position< m > &padding) const
 Create a position of higher dimension. More...
 

Static Public Member Functions

static Position< n > zero ()
 Create position 0.
 
static Position< n > max ()
 Create max position (full of -1's).
 

Public Attributes

Indices indices
 The indices.
 

The documentation for this struct was generated from the following file: