IShade.hpp
1 #pragma once
2 
3 #include <opals/IModuleBase.hpp>
4 #include <opals/ShadingMethod.hpp>
5 #include <opals/ResamplingMethod.hpp>
6 #include <opals/GridFeature.hpp>
7 #include <opals/GridLimit.hpp>
8 #include <opals/String.hpp>
9 #include <opals/Path.hpp>
10 #include <opals/Array.hpp>
11 #include <opals/Vector.hpp>
12 
13 #if defined(_MSC_VER) && !defined(OPALS_NO_AUTOLINK)
14  #if defined _DEBUG && !defined OPALS_NO_DEBUG
15  #pragma comment(lib, "opalsShade_d.lib")
16  #else
17  #pragma comment(lib, "opalsShade.lib")
18  #endif
19 #endif
20 
21 namespace opals {
22 
23  namespace opts
24  {
25  /// Options of \ref ModuleShade
26  namespace Shade
27  {
28  /// Options of \ref ModuleShade
29  using Options =
30  IGroup< Names::_, false,
40  >;
41  }
42  }
43 
44  /// Derives shaded relief raster maps (geo-coded hill shading) of DEM grids.
45  /** Hill shading is a method to visualize a surface grid model by illuminating it using a light source shining from a certain direction.
46  Artificial shadows are calculated depending on the slope (steepness) and exposition of the surface w.r.t the direction of the light source.
47  Depending on the artificial shadow length, grey values (0=shaded..255=exposed) are assigned to each cell of the output raster. */
48  /// \see \ref ModuleShade
49  class OPALS_API IShade : virtual public IModuleBase
50  {
51 
52  public:
53  static IShade* New();
54  static IShade* New( IControlObject &controlObject );
55  static IShade* New( const IModuleBase &parent );
56  static IShade* New( const IModuleBase &parent, IControlObject &controlObject );
57 
58  virtual ~IShade() {}
59 
60  /// \name Access to module-specific options.
61  ///@{
63  virtual Options& opts() = 0;
64  virtual const Options& opts() const = 0;
65  ///@}
66 
67  };
68 
69 };
Derives shaded relief raster maps (geo-coded hill shading) of DEM grids.
Definition: IShade.hpp:49
Leaf that holds a read-only value.
Definition: IOption.hpp:63
Contains the public interface of OPALS.
Definition: AbsValueOrQuantile.hpp:8
Abstract base class of all opals modules.
Definition: IModuleBase.hpp:13
Interface for retrieving status and progress information from a module run.
Definition: c++_api/inc/opals/IControlObject.hpp:30
A group of options.
Definition: IOption.hpp:108
IGroup< Names::_, false, ILeaf< Names::inFile, false, Vector< Path > >, ILeaf< Names::feature, false, Vector< opals::GridFeature::Enum > >, ILeaf< Names::outFile, false, Path >, ILeaf< Names::oFormat, false, String >, ILeaf< Names::pixelSize, false, float >, ILeaf< Names::limit, false, GridLimit >, ILeaf< Names::shading, false, ShadingMethod >, ILeaf< Names::sunPosition, false, Array< double, 2 > >, ILeaf< Names::createAlpha, false, bool > > Options
Options of Module Shade.
Definition: IShade.hpp:40