From f8fd6f85f989688e2fc347dfaa07503575cb1fa6 Mon Sep 17 00:00:00 2001 From: Auburn Date: Sun, 28 Apr 2024 13:16:46 +0100 Subject: [PATCH] TEST hybrid range inputs for ScalableGenerator --- include/FastNoise/Generators/BasicGenerators.h | 9 +++++---- include/FastNoise/Generators/BasicGenerators.inl | 5 ++++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/include/FastNoise/Generators/BasicGenerators.h b/include/FastNoise/Generators/BasicGenerators.h index cd0c13c..07137e9 100644 --- a/include/FastNoise/Generators/BasicGenerators.h +++ b/include/FastNoise/Generators/BasicGenerators.h @@ -34,18 +34,19 @@ namespace FastNoise public: void SetOutputMin( float value ) { - mRangeScale += mRangeMin - value; + //mRangeScale += mRangeMin - value; mRangeMin = value; } void SetOutputMax( float value ) { - mRangeScale = ( value - mRangeMin ); + mRangeScale = value; + //mRangeScale = ( value - mRangeMin ); } protected: - float mRangeMin = -1; - float mRangeScale = 2; + HybridSource mRangeMin = -1; + HybridSource mRangeScale = 2; }; #ifdef FASTNOISE_METADATA diff --git a/include/FastNoise/Generators/BasicGenerators.inl b/include/FastNoise/Generators/BasicGenerators.inl index 604d768..ff0b866 100644 --- a/include/FastNoise/Generators/BasicGenerators.inl +++ b/include/FastNoise/Generators/BasicGenerators.inl @@ -19,7 +19,10 @@ class FastSIMD::DispatchClass, SIMD> : public v protected: FS_FORCEINLINE float32v ScaleOutput( float32v value, float nativeMin, float nativeMax ) const { - return FS::FMulAdd( float32v( 1.0f / ( nativeMax - nativeMin ) ) * float32v( this->mRangeScale ), value - float32v( nativeMin ), float32v( this->mRangeMin ) ); + float32v rangeMin = this->GetSourceValue( this->mRangeMin, int32v(), float32v(), float32v() ); + float32v rangeScale = this->GetSourceValue( this->mRangeScale, int32v(), float32v(), float32v() ) - rangeMin; + + return FS::FMulAdd( float32v( 1.0f / ( nativeMax - nativeMin ) ) * rangeScale, value - float32v( nativeMin ), rangeMin ); } };