1
0
Fork 0
Univerxel/deps/FastNoise2/include/FastNoise/Generators/DomainWarp.h

38 lines
1.3 KiB
C++

#pragma once
#include "Generator.h"
namespace FastNoise
{
class DomainWarp : public virtual Generator
{
public:
void SetSource( SmartNodeArg<> gen ) { this->SetSourceMemberVariable( mSource, gen ); }
void SetWarpAmplitude( SmartNodeArg<> gen ) { this->SetSourceMemberVariable( mWarpAmplitude, gen ); }
void SetWarpAmplitude( float value ) { mWarpAmplitude = value; }
void SetWarpFrequency( float value ) { mWarpFrequency = value; }
protected:
GeneratorSource mSource;
HybridSource mWarpAmplitude = 1.0f;
float mWarpFrequency = 0.5f;
FASTNOISE_METADATA_ABSTRACT( Generator )
Metadata( const char* className ) : Generator::Metadata( className )
{
groups.push_back( "Domain Warp" );
this->AddGeneratorSource( "Source", &DomainWarp::SetSource );
this->AddHybridSource( "Warp Amplitude", 1.0f, &DomainWarp::SetWarpAmplitude, &DomainWarp::SetWarpAmplitude );
this->AddVariable( "Warp Frequency", 0.5f, &DomainWarp::SetWarpFrequency );
}
};
};
class DomainWarpGradient : public virtual DomainWarp
{
FASTNOISE_METADATA( DomainWarp )
using DomainWarp::Metadata::Metadata;
};
};
}