Alexandria  2.19
Please provide a description of the project.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Static Public Member Functions | List of all members
Euclid::GridContainer::GridToFitsHelper< I, GridCellManager, Axes > Struct Template Reference

Static Public Member Functions

static void addColumnDescriptions (const GridContainer< GridCellManager, Axes...> &grid, std::vector< Table::ColumnDescription > &description)
 
template<typename... Args>
static void unfold (const GridContainer< GridCellManager, Axes...> &grid, const std::shared_ptr< Table::ColumnInfo > &column_info, std::vector< Table::Row > &rows, std::pair< size_t, Args >...axes)
 
static void unfold (const GridContainer< GridCellManager, Axes...> &grid, const std::shared_ptr< Table::ColumnInfo > &column_info, std::vector< Table::Row > &rows)
 

Detailed Description

template<size_t I, typename GridCellManager, typename... Axes>
struct Euclid::GridContainer::GridToFitsHelper< I, GridCellManager, Axes >

Template class to help on the recursive traversal of the grid

Template Parameters
IHandle the axis stored on the (I-1)th position on the GridContainer::AxesTuple

Definition at line 32 of file GridContainerToTable.icpp.

Member Function Documentation

template<size_t I, typename GridCellManager, typename... Axes>
static void Euclid::GridContainer::GridToFitsHelper< I, GridCellManager, Axes >::addColumnDescriptions ( const GridContainer< GridCellManager, Axes...> &  grid,
std::vector< Table::ColumnDescription > &  description 
)
inlinestatic

Generate recursively the column description for each knot on the grid. The order on the tuples is reversed, so the 0th tuple element is inserted on the last position.

Parameters
gridAn instance of a grid
descriptionA vector where to emplace the description

Definition at line 42 of file GridContainerToTable.icpp.

References std::vector< T >::emplace_back().

Here is the call graph for this function:

template<size_t I, typename GridCellManager, typename... Axes>
template<typename... Args>
static void Euclid::GridContainer::GridToFitsHelper< I, GridCellManager, Axes >::unfold ( const GridContainer< GridCellManager, Axes...> &  grid,
const std::shared_ptr< Table::ColumnInfo > &  column_info,
std::vector< Table::Row > &  rows,
std::pair< size_t, Args >...  axes 
)
inlinestatic

Iterate over the elements of the (I-1)th axis, and for each one call recursively unfold on the next axis.

Template Parameters
ArgsUsed to keep track of the types of the knots of the previous axes
Parameters
gridAn instance of a grid
column_infoAs populated by getColumnDescriptions
rowsGrid cells will be inserted on this vector
axesUsed to keep track of the values of the knots of the previous axis

Definition at line 67 of file GridContainerToTable.icpp.

References std::make_pair().

Referenced by Euclid::GridContainer::GridToFitsHelper< I, GridCellManager, Axes >::unfold().

Here is the call graph for this function:

template<size_t I, typename GridCellManager, typename... Axes>
static void Euclid::GridContainer::GridToFitsHelper< I, GridCellManager, Axes >::unfold ( const GridContainer< GridCellManager, Axes...> &  grid,
const std::shared_ptr< Table::ColumnInfo > &  column_info,
std::vector< Table::Row > &  rows 
)
inlinestatic

Same as before, but without the book-keeping data, since this is the entry point

Definition at line 78 of file GridContainerToTable.icpp.

References std::make_pair(), and Euclid::GridContainer::GridToFitsHelper< I, GridCellManager, Axes >::unfold().

Here is the call graph for this function:


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