3#include <Infinity/api.h>
5#include <Infinity/Types/Core/Data.hpp>
6#include <Infinity/Types/Core/Value.hpp>
7#include <Infinity/Types/Containers/Array.hpp>
8#include <Infinity/Types/Math/Vector3.hpp>
10#include <FastNoise/FastNoise.h>
11#include <FastNoise/Metadata.h>
128 float frequency = 0.02f;
153 Noise(
const std::string& base64Encoded);
170 std::unique_ptr<Core::Base>
clone()
const override;
207 void generate2D(
float* out,
int xSize,
int ySize,
int seed)
const;
230 void generate3D(
float* out,
int xSize,
int ySize,
int zSize,
int seed)
const;
298 FastNoise::SmartNode<> _gen;
299 FastNoise::NodeData* _data;
300 std::vector<std::unique_ptr<FastNoise::NodeData>> _nodeData;
Dynamic contiguous container for homogeneous elements in the Infinity type system.
Definition Array.hpp:77
Base class for complex data types with memory wrapping and property support.
Definition Data.hpp:49
Configurable procedural noise generator powered by FastNoise2.
Definition Noise.hpp:97
std::unique_ptr< Core::Base > clone() const override
void generate2D(float *out, int xSize, int ySize, int seed) const
Generates 2D noise into a pre-allocated float array.
void generate3D(float *out, int xSize, int ySize, int zSize, int seed) const
Generates 3D noise into a pre-allocated float array.
Noise(const std::string &base64Encoded)
Constructs a noise generator from a base64-encoded node graph.
Noise & operator=(const Noise &other)
Copy assignment operator.
Math::Vector3 position
Offset position for noise sampling.
Definition Noise.hpp:110
const Infinity::Types::TypeID & typeId() const override
Gets the TypeID for Noise.
void setFromBase64Encoded(const std::string &encoded)
Loads a noise configuration from base64-encoded string.
const FastNoise::SmartNode & generator() const
Gets a const reference to the underlying FastNoise2 generator.
FastNoise::SmartNode & generator()
Gets a reference to the underlying FastNoise2 generator.
Noise(const Noise &other)
Copy constructor.
Noise()
Default constructor.
std::string base64Encoded() const
Serializes the noise configuration to base64-encoded string.
Template structure representing a 3-component vector.
Definition Vector3.hpp:82
Runtime type identifier for the Infinity type system.
Definition TypeID.hpp:71