Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/game/terrain/StarDisplacementSelector.hpp
blob: 77e678ca118f10ed429ab081ddeaa35803091c1d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#pragma once

#include "StarTerrainDatabase.hpp"
#include "StarPerlin.hpp"
#include "StarVector.hpp"

namespace Star {

struct DisplacementSelector : TerrainSelector {
  static char const* const Name;

  DisplacementSelector(
      Json const& config, TerrainSelectorParameters const& parameters, TerrainDatabase const* database);

  float get(int x, int y) const override;

  PerlinF xDisplacementFunction;
  PerlinF yDisplacementFunction;

  float xXInfluence;
  float xYInfluence;
  float yXInfluence;
  float yYInfluence;

  bool yClamp;
  Vec2F yClampRange;
  float yClampSmoothing;

  float clampY(float v) const;

  TerrainSelectorConstPtr m_source;
};

}