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

Last change on this file since 1704 was 1704, checked in by yushan, 5 years ago

Introducing the new graph functionality. Attribute build_workflow_graph=.TRUE. is used in the field definition section in the xml file to enable the workflow graph of the field and other fields referecing to it. A more detailed document will be available soon on the graph fuctionality.

File size: 2.0 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();
[1704]29
30  virtual StdString getName() {return "Axis Trans. Filter \\n Zoom";}
31
[827]32protected:
33  void computeIndexSourceMapping_(const std::vector<CArray<double,1>* >& dataAuxInputs);
[621]34
[622]35private:
[624]36
[623]37private:
[624]38  //! Global zoom begin on axis
[622]39  StdSize zoomBegin_;
[624]40
41  //! Global zoom end on axis
[622]42  StdSize zoomEnd_;
[624]43
44  //! Global zoom size on axis
[1559]45  StdSize zoomN_;
[933]46
[1201]47  std::vector<int> zoomIndex_;
48
[933]49private:
50
51  static CGenericAlgorithmTransformation* create(CGrid* gridDst, CGrid* gridSrc,
52                                                CTransformation<CAxis>* transformation,
53                                                int elementPositionInGrid,
54                                                std::map<int, int>& elementPositionInGridSrc2ScalarPosition,
55                                                std::map<int, int>& elementPositionInGridSrc2AxisPosition,
56                                                std::map<int, int>& elementPositionInGridSrc2DomainPosition,
57                                                std::map<int, int>& elementPositionInGridDst2ScalarPosition,
58                                                std::map<int, int>& elementPositionInGridDst2AxisPosition,
59                                                std::map<int, int>& elementPositionInGridDst2DomainPosition);
[621]60};
61
62}
63#endif // __XIOS_AXIS_ALGORITHM_ZOOM_HPP__
Note: See TracBrowser for help on using the repository browser.