MultiGridLimit.hpp
1 #pragma once
2 
3 //STL
4 #include "opals/GridLimit.hpp"
5 #include "opals/Vector.hpp"
6 
7 namespace opals {
8 
9  /// Class describing xy-limits for grid datasets supporting multiple input datasets
10  class OPALS_API MultiGridLimit : public GridLimit, public CustomOptionType<MultiGridLimit>
11  {
12  public:
14  virtual ~MultiGridLimit();
15 
16  /// returns true if the limit denotes the common area of multiple datasets
17  bool isIntersect() const { return limType==1; };
18  /// returns true if the limit denotes the overall area of multiple datasets
19  bool isUnion() const { return limType==2; };
20  /// returns true if the limit denotes the limits of a specific dataset
21  bool isDataset() const { return limType==3; };
22 
23  /// set limit as intersection of multiple datasets
24  void setIntersect();
25  /// set limit as union of multiple datasets
26  void setUnion();
27  /// set limit as limit of a specific dataset (number)
28  void setDataset( const unsigned char &datasetNr );
29 
30  /// query number of specified dataset (in case isDataset()==true)
31  int getDatasetNr() const { return datasetId; };
32  /// query user defined limits (in case isUserDef()==true)
33  ArrayD4 getLimits ( const Vector<ArrayD4> &inLimits );
34 
35  /// \name CustomOptionType interface
36  ///@{
37  static const char * help(bool);
38  static const char * syntax();
39  static bool exportsPythonType();
40  ///@}
41 
42  private:
43  unsigned /*char*/ datasetId;
44  };
45 }
Base class for all custom parameter types.
Definition: CustomOptionType.hpp:39
int getDatasetNr() const
query number of specified dataset (in case isDataset()==true)
Definition: MultiGridLimit.hpp:31
Class describing xy-limits for grid datasets.
Definition: GridLimit.hpp:11
bool isIntersect() const
returns true if the limit denotes the common area of multiple datasets
Definition: MultiGridLimit.hpp:17
Class describing xy-limits for grid datasets supporting multiple input datasets.
Definition: MultiGridLimit.hpp:10
Contains the public interface of OPALS.
Definition: AbsValueOrQuantile.hpp:8
bool isDataset() const
returns true if the limit denotes the limits of a specific dataset
Definition: MultiGridLimit.hpp:21
bool isUnion() const
returns true if the limit denotes the overall area of multiple datasets
Definition: MultiGridLimit.hpp:19
Mimics std::vector<T>
Definition: fwd.hpp:18