osb/source/game/terrain/StarDisplacementSelector.hpp
2023-06-20 14:33:09 +10:00

38 lines
736 B
C++

#ifndef STAR_DISPLACEMENT_SELECTOR_HPP
#define STAR_DISPLACEMENT_SELECTOR_HPP
#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;
};
}
#endif