/*! \file axis_algorithm_reduce_domain.hpp \author Ha NGUYEN \since 23 June 2016 \date 23 June 2016 \brief Algorithm for reduce an axis to a axis */ #ifndef __XIOS_AXIS_ALGORITHM_TEMPORAL_SPLITTING_HPP__ #define __XIOS_AXIS_ALGORITHM_TEMPORAL_SPLITTING_HPP__ #include "transformation.hpp" #include "algorithm_transformation_no_data_modification.hpp" namespace xios { class CAxis; class CScalar; class CTemporalSplitting; /*! \class CAxisAlgorithmExtractDomain Extract a domain to an axis */ class CAxisAlgorithmTemporalSplitting : public CAlgorithmTransformationNoDataModification { public: CAxisAlgorithmTemporalSplitting(bool isSource, CAxis* axisDestination, CScalar* scalarSource, CTemporalSplitting* algo); virtual ~CAxisAlgorithmTemporalSplitting(); static bool registerTrans(); virtual StdString getAlgoName() {return "\\ntemporal_splitting";} virtual CTransformFilter* createTransformFilter(CGarbageCollector& gc, CGridAlgorithm* algo, bool detectMissingValues, double defaultValue) ; static CGenericAlgorithmTransformation* create(bool isSource, CGrid* gridDst, CGrid* gridSrc, CTransformation* transformation, int elementPositionInGrid, std::map& elementPositionInGridSrc2ScalarPosition, std::map& elementPositionInGridSrc2AxisPosition, std::map& elementPositionInGridSrc2DomainPosition, std::map& elementPositionInGridDst2ScalarPosition, std::map& elementPositionInGridDst2AxisPosition, std::map& elementPositionInGridDst2DomainPosition); private: int nrecords_; static bool dummyRegistered_; }; } #endif // __XIOS_AXIS_ALGORITHM_TEMPORAL_SPLITTING_HPP__