source: XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/axis_algorithm/axis_algorithm_zoom.hpp @ 1998

Last change on this file since 1998 was 1998, checked in by ymipsl, 3 years ago

Adapt transformation algorithm to new infrastructure (on going...)

YM

  • Property svn:executable set to *
File size: 1.9 KB
Line 
1/*!
2   \file axis_algorithm_zoom.hpp
3   \brief Algorithm for zooming an axis.
4 */
5#ifndef __XIOS_AXIS_ALGORITHM_ZOOM_HPP__
6#define __XIOS_AXIS_ALGORITHM_ZOOM_HPP__
7
8#include "algorithm_transformation_transfer.hpp"
9#include "transformation.hpp"
10
11namespace xios {
12class CAxis;
13class CZoomAxis;
14
15/*!
16  \class CAxisAlgorithmZoom
17  Implementing zoom on axis
18  A zoomed region can be considered as region that isn't masked.
19  Only this zoomed region is zoomed to write on Netcdf.
20*/
21class CAxisAlgorithmZoom : public CAlgorithmTransformationTransfer
22{
23public:
24  CAxisAlgorithmZoom(bool isSource, CAxis* axisDestination, CAxis* axisSource, CZoomAxis* zoomAxis);
25
26  virtual ~CAxisAlgorithmZoom() {}
27
28  static bool registerTrans();
29
30private:
31
32private:
33  //! Global zoom begin on axis
34  StdSize zoomBegin_;
35
36  //! Global zoom end on axis
37  StdSize zoomEnd_;
38
39  //! Global zoom size on axis
40  StdSize zoomN_;
41
42  std::vector<int> zoomIndex_;
43
44private:
45 
46  CAxis* axisSrc_;
47  CAxis* axisDest_;
48
49  static CGenericAlgorithmTransformation* create(bool isSource, CGrid* gridDst, CGrid* gridSrc,
50                                                CTransformation<CAxis>* transformation,
51                                                int elementPositionInGrid,
52                                                std::map<int, int>& elementPositionInGridSrc2ScalarPosition,
53                                                std::map<int, int>& elementPositionInGridSrc2AxisPosition,
54                                                std::map<int, int>& elementPositionInGridSrc2DomainPosition,
55                                                std::map<int, int>& elementPositionInGridDst2ScalarPosition,
56                                                std::map<int, int>& elementPositionInGridDst2AxisPosition,
57                                                std::map<int, int>& elementPositionInGridDst2DomainPosition);
58  static bool dummyRegistered_;
59};
60
61}
62#endif // __XIOS_AXIS_ALGORITHM_ZOOM_HPP__
Note: See TracBrowser for help on using the repository browser.