IODA Bundle
Variables/Transforms/Transform.h
Go to the documentation of this file.
1 /*
2  * (C) Copyright 2020 NOAA/NWS/NCEP/EMC
3  *
4  * This software is licensed under the terms of the Apache Licence Version 2.0
5  * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
6  */
7 
8 #pragma once
9 
10 #include <memory>
11 #include <vector>
12 
13 #include "IngesterTypes.h"
14 
15 namespace Ingester
16 {
17  /// \brief Base class of all transform classes. Classes are used to transform data.
18  class Transform
19  {
20  public:
21  ~Transform() = default;
22 
23  /// \brief Modify data according to the rules of the transform.
24  /// \param array Array of data to modify.
25  virtual void apply(IngesterArray& array) = 0;
26  };
27 
28  typedef std::vector <std::shared_ptr<Transform>> Transforms;
29 } // namespace Ingester
virtual void apply(IngesterArray &array)=0
Modify data according to the rules of the transform.
Eigen::Array< FloatType, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > IngesterArray
Definition: IngesterTypes.h:19
std::vector< std::shared_ptr< Transform > > Transforms