mirror of
https://github.com/zhenyan121/Cubed.git
synced 2026-06-18 00:27:02 +08:00
feat: add tree generation
This commit is contained in:
34
src/tools/cubed_random.cpp
Normal file
34
src/tools/cubed_random.cpp
Normal file
@@ -0,0 +1,34 @@
|
||||
#include <Cubed/tools/cubed_random.hpp>
|
||||
|
||||
#include <Cubed/tools/log.hpp>
|
||||
|
||||
namespace Cubed {
|
||||
|
||||
Random::Random() {
|
||||
std::random_device d;
|
||||
m_seed = d();
|
||||
Logger::info("Seed: {}", m_seed);
|
||||
m_engine.seed(m_seed);
|
||||
}
|
||||
|
||||
Random& Random::get() {
|
||||
static Random instance;
|
||||
return instance;
|
||||
}
|
||||
|
||||
bool Random::random_bool(double probability) {
|
||||
std::bernoulli_distribution dist(probability);
|
||||
return dist(m_engine);
|
||||
}
|
||||
|
||||
std::mt19937& Random::engine() {
|
||||
return m_engine;
|
||||
}
|
||||
|
||||
unsigned Random::seed() {
|
||||
return m_seed;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -2,17 +2,16 @@
|
||||
|
||||
#include <Cubed/config.hpp>
|
||||
#include <Cubed/tools/cubed_assert.hpp>
|
||||
|
||||
#include <Cubed/tools/cubed_random.hpp>
|
||||
#include <algorithm>
|
||||
#include <numeric>
|
||||
#include <random>
|
||||
|
||||
void PerlinNoise::init(unsigned int seed) {
|
||||
|
||||
void PerlinNoise::init() {
|
||||
p.resize(256);
|
||||
std::iota(p.begin(), p.end(), 0);
|
||||
|
||||
std::mt19937 engine(seed);
|
||||
std::shuffle(p.begin(), p.end(), engine);
|
||||
std::shuffle(p.begin(), p.end(), Cubed::Random::get().engine());
|
||||
|
||||
p.insert(p.end(), p.begin(), p.end());
|
||||
is_init = true;
|
||||
|
||||
Reference in New Issue
Block a user