IZColor.hpp
1 #ifndef OPALS_IZCOLOR_HPP_INCLUDED
2 #define OPALS_IZCOLOR_HPP_INCLUDED
3 
4 #include <opals/IModuleBase.hpp>
5 
6 #if !defined(OPALS_EXPORTS) && !defined(OPALS_MODULE_EXPORTS)
7  #if defined _DEBUG && !defined OPALS_NO_DEBUG
8  #pragma comment(lib, "opalsZColor_d.lib")
9  #else
10  #pragma comment(lib, "opalsZColor.lib")
11  #endif
12 #endif
13 
14 #include <opals/String.hpp>
15 #include <opals/ZColorLegend.hpp>
16 #include <opals/ZColorScalePal.hpp>
17 #include <opals/ResamplingMethod.hpp>
18 #include <opals/GridLimit.hpp>
19 #include <opals/Path.hpp>
20 
22 
23 namespace opals {
24 
25  namespace opts
26  {
27  namespace ZColor
28  {
29  /// Options of \ref ModuleZColor
30  typedef IGroup< Names::_, false, Cons<
31  ILeaf< Names::inFile, false, opals::Path >, Cons<
32  ILeaf< Names::outFile, false, opals::Path >, Cons<
33  ILeaf< Names::oFormat, false, opals::String >, Cons<
34  ILeaf< Names::pixelSize, false, float >, Cons<
35  ILeaf< Names::interval, false, opals::Vector<float> >, Cons<
36  ILeaf< Names::nClasses, false, unsigned >, Cons<
37  ILeaf< Names::palFile, false, opals::Path >, Cons<
38  ILeaf< Names::legend, false, opals::ZColorLegend >, Cons<
39  ILeaf< Names::scalePal, false, opals::ZColorScalePal >, Cons<
40  ILeaf< Names::offsetPal, false, float >, Cons<
41  ILeaf< Names::zRange, false, ArrayF2 >, Cons<
42  ILeaf< Names::limit, false, opals::GridLimit >, Cons<
43  ILeaf< Names::resampling, false, opals::ResamplingMethod::Type >, Cons<
44  ILeaf< Names::band, false, unsigned >
45  > > > > > > > > > > > > > > > Options;
46  }
47  }
48 
49  /// Derives color coded visualizations of grid models and stores them as geo-coded raster images.
50  /** TODO:
51  More details on opalsZColor */
52  /// \see \ref ModuleZColor
53  class OPALS_API IZColor : virtual public IModuleBase
54  {
55 
56  public:
57  static IZColor* New();
58  static IZColor* New( IControlObject &controlObject );
59  static IZColor* New( const IModuleBase &parent );
60  static IZColor* New( const IModuleBase &parent, IControlObject &controlObject );
61 
62  virtual ~IZColor() {}
63 
64  /// \name Access to module-specific options.
65  ///@{
67  virtual Options& opts() = 0;
68  virtual const Options& opts() const = 0;
69  ///}@
70 
71  };
72 
73 };
74 
75 #endif