source: XIOS/trunk/src/transformation/axis_algorithm_zoom.hpp @ 1559

Last change on this file since 1559 was 1559, checked in by oabramkina, 6 years ago

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

File size: 1.9 KB
RevLine 
[624]1/*!
2   \file axis_algorithm_zoom.hpp
[1559]3   \brief Algorithm for zooming an axis.
[624]4 */
[621]5#ifndef __XIOS_AXIS_ALGORITHM_ZOOM_HPP__
6#define __XIOS_AXIS_ALGORITHM_ZOOM_HPP__
7
[622]8#include "axis_algorithm_transformation.hpp"
[933]9#include "transformation.hpp"
[621]10
11namespace xios {
[933]12class CAxis;
13class CZoomAxis;
14
[624]15/*!
16  \class CAxisAlgorithmZoom
17  Implementing zoom on axis
[933]18  A zoomed region can be considered as region that isn't masked.
[1559]19  Only this zoomed region is zoomed to write on Netcdf.
[624]20*/
[623]21class CAxisAlgorithmZoom : public CAxisAlgorithmTransformation
[621]22{
23public:
[623]24  CAxisAlgorithmZoom(CAxis* axisDestination, CAxis* axisSource, CZoomAxis* zoomAxis);
[621]25
[623]26  virtual ~CAxisAlgorithmZoom() {}
[621]27
[933]28  static bool registerTrans();
[827]29protected:
30  void computeIndexSourceMapping_(const std::vector<CArray<double,1>* >& dataAuxInputs);
[621]31
[622]32private:
[624]33
[623]34private:
[624]35  //! Global zoom begin on axis
[622]36  StdSize zoomBegin_;
[624]37
38  //! Global zoom end on axis
[622]39  StdSize zoomEnd_;
[624]40
41  //! Global zoom size on axis
[1559]42  StdSize zoomN_;
[933]43
[1201]44  std::vector<int> zoomIndex_;
45
[933]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);
[621]57};
58
59}
60#endif // __XIOS_AXIS_ALGORITHM_ZOOM_HPP__
Note: See TracBrowser for help on using the repository browser.