vrecko
virtual reality framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
MidpointDisplacementProperties.h
Go to the documentation of this file.
1 
10 #ifndef VRECKO_NATURE_TERRAIN_MIDPOINTDISPLACEMENTPROPERTIES_H
11 #define VRECKO_NATURE_TERRAIN_MIDPOINTDISPLACEMENTPROPERTIES_H
12 
13 #include <vrecko/ReaderWriter.h>
14 #include <osg/Vec2>
15 
17 
18 namespace APNature
19 {
20  static class MidpointDisplacementProperties : public GeneratedTerrainProperties
21  {
22  private:
23 
24  // Midpoint displacement
25  static float _fractalDimension;
26  static float _cornerValueFrom, _cornerValueTo;
27 
28  public:
29 
30  // Midpoint displacement specific methods
31  // ######################################
32 
38  static inline float FractalDimension() { return _fractalDimension; }
39  static inline void FractalDimension(float fractalDimension) { _fractalDimension = (fractalDimension > 3.0f ? 3.0f :
40  (fractalDimension < 2.0f ? 2.0f : fractalDimension) ); }
41 
48  static void CornerValueRange(float cornerValueFrom, float cornerValueTo);
49 
50  static inline float CornerValueFrom() { return _cornerValueFrom; }
51  static inline float CornerValueTo() { return _cornerValueTo; }
52 
53  // Derived properties
54  // ##################
55 
61  static inline float HurstExponent() { return 3 - _fractalDimension; }
62 
68  static void LoadDataSourceNodeParameters(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *parameters);
69 
70  } MidpointDisplacementProperties;
71 
72 }
73 
74 #endif