Alexandria 2.31.4
SDC-CH common library for the Euclid project
Loading...
Searching...
No Matches
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

◆ addColumnDescriptions()

template<size_t I, typename GridCellManager, typename... Axes>
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 addColumnDescriptions(), and std::vector< T >::emplace_back().

Referenced by addColumnDescriptions().

Here is the call graph for this function:

◆ unfold() [1/2]

template<size_t I, typename GridCellManager, typename... Axes>
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 unfold().

Here is the call graph for this function:

◆ unfold() [2/2]

template<size_t I, typename GridCellManager, typename... Axes>
template<typename... Args>
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(), and unfold().

Referenced by unfold(), and unfold().

Here is the call graph for this function:

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