source: XIOS/dev/dev_olga/src/transformation/axis_algorithm_zoom.hpp @ 1620

Last change on this file since 1620 was 1559, checked in by oabramkina, 23 months ago

Replacing axis zoom by axis extract.
Zoom private attributes are gone for good.

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 "axis_algorithm_transformation.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 CAxisAlgorithmTransformation
22{
23public:
24  CAxisAlgorithmZoom(CAxis* axisDestination, CAxis* axisSource, CZoomAxis* zoomAxis);
25
26  virtual ~CAxisAlgorithmZoom() {}
27
28  static bool registerTrans();
29protected:
30  void computeIndexSourceMapping_(const std::vector<CArray<double,1>* >& dataAuxInputs);
31
32private:
33
34private:
35  //! Global zoom begin on axis
36  StdSize zoomBegin_;
37
38  //! Global zoom end on axis
39  StdSize zoomEnd_;
40
41  //! Global zoom size on axis
42  StdSize zoomN_;
43
44  std::vector<int> zoomIndex_;
45
46private:
47
48  static CGenericAlgorithmTransformation* create(CGrid* gridDst, CGrid* gridSrc,
49                                                CTransformation<CAxis>* transformation,
50                                                int elementPositionInGrid,
51                                                std::map<int, int>& elementPositionInGridSrc2ScalarPosition,
52                                                std::map<int, int>& elementPositionInGridSrc2AxisPosition,
53                                                std::map<int, int>& elementPositionInGridSrc2DomainPosition,
54                                                std::map<int, int>& elementPositionInGridDst2ScalarPosition,
55                                                std::map<int, int>& elementPositionInGridDst2AxisPosition,
56                                                std::map<int, int>& elementPositionInGridDst2DomainPosition);
57};
58
59}
60#endif // __XIOS_AXIS_ALGORITHM_ZOOM_HPP__
Note: See TracBrowser for help on using the repository browser.