Skip to content

Commit dafacae

Browse files
committed
Position Output Node
1 parent 1c7e120 commit dafacae

File tree

7 files changed

+118
-39
lines changed

7 files changed

+118
-39
lines changed

NoiseTool/FastNoiseNodeEditor.cpp

+3-1
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,8 @@ FastNoiseNodeEditor::FastNoiseNodeEditor() :
136136

137137
void FastNoiseNodeEditor::Draw( const Matrix4& transformation, const Matrix4& projection, const Vector3& cameraPosition )
138138
{
139-
ImGui::SetNextWindowSize( ImVec2( 800, 600 ), ImGuiCond_FirstUseEver );
139+
ImGui::SetNextWindowSize( ImVec2( 963, 634 ), ImGuiCond_FirstUseEver );
140+
ImGui::SetNextWindowPos( ImVec2( 8, 439 ), ImGuiCond_FirstUseEver );
140141
if( ImGui::Begin( "FastNoise Node Editor" ) )
141142
{
142143
UpdateSelected();
@@ -195,6 +196,7 @@ void FastNoiseNodeEditor::Draw( const Matrix4& transformation, const Matrix4& pr
195196
ImGui::End();
196197

197198
ImGui::SetNextWindowSize( ImVec2( 768, 768 ), ImGuiCond_FirstUseEver );
199+
ImGui::SetNextWindowPos( ImVec2( 1143, 305 ), ImGuiCond_FirstUseEver );
198200
if( ImGui::Begin( "FastNoise Preview" ) )
199201
{
200202
ImVec2 winSize = ImGui::GetContentRegionAvail();

include/FastNoise/FastNoise_BuildList.inl

+7
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,14 @@ using namespace FastNoise;
1212
#else
1313
#include "Generators/Generator.inl"
1414
#endif
15+
16+
#ifdef FASTSIMD_INCLUDE_HEADER_ONLY
17+
#include "Generators/BasicGenerators.h"
18+
#else
19+
#include "Generators/BasicGenerators.inl"
20+
#endif
1521
FASTSIMD_BUILD_CLASS( Constant )
22+
FASTSIMD_BUILD_CLASS( PositionOutput )
1623

1724
#ifdef FASTSIMD_INCLUDE_HEADER_ONLY
1825
#include "Generators/White.h"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
#pragma once
2+
#include "Generator.h"
3+
4+
namespace FastNoise
5+
{
6+
class Constant : public virtual Generator
7+
{
8+
public:
9+
void SetValue( float value ) { mValue = value; }
10+
11+
protected:
12+
float mValue = 1.0f;
13+
14+
FASTNOISE_METADATA( Generator )
15+
16+
Metadata( const char* className ) : Generator::Metadata( className )
17+
{
18+
this->AddVariable( "Value", 1.0f, &Constant::SetValue );
19+
}
20+
21+
};
22+
};
23+
24+
class PositionOutput : public virtual Generator
25+
{
26+
public:
27+
void SetX( float multiplier, float offset = 0.0f ) { mMultiplierX = multiplier; mOffsetX = offset; }
28+
void SetY( float multiplier, float offset = 0.0f ) { mMultiplierY = multiplier; mOffsetY = offset; }
29+
void SetZ( float multiplier, float offset = 0.0f ) { mMultiplierZ = multiplier; mOffsetZ = offset; }
30+
void SetW( float multiplier, float offset = 0.0f ) { mMultiplierW = multiplier; mOffsetW = offset; }
31+
32+
protected:
33+
float mMultiplierX = 0.0f;
34+
float mOffsetX = 0.0f;
35+
36+
float mMultiplierY = 0.0f;
37+
float mOffsetY = 0.0f;
38+
39+
float mMultiplierZ = 0.0f;
40+
float mOffsetZ = 0.0f;
41+
42+
float mMultiplierW = 0.0f;
43+
float mOffsetW = 0.0f;
44+
45+
FASTNOISE_METADATA( Generator )
46+
47+
Metadata( const char* className ) : Generator::Metadata( className )
48+
{
49+
this->AddVariable( "X Multiplier", 0.0f, []( PositionOutput* p, float f ) { p->mMultiplierX = f; } );
50+
this->AddVariable( "X Offset", 0.0f, []( PositionOutput* p, float f ) { p->mOffsetX = f; } );
51+
this->AddVariable( "Y Multiplier", 0.0f, []( PositionOutput* p, float f ) { p->mMultiplierY = f; } );
52+
this->AddVariable( "Y Offset", 0.0f, []( PositionOutput* p, float f ) { p->mOffsetY = f; } );
53+
this->AddVariable( "Z Multiplier", 0.0f, []( PositionOutput* p, float f ) { p->mMultiplierZ = f; } );
54+
this->AddVariable( "Z Offset", 0.0f, []( PositionOutput* p, float f ) { p->mOffsetZ = f; } );
55+
this->AddVariable( "W Multiplier", 0.0f, []( PositionOutput* p, float f ) { p->mMultiplierW = f; } );
56+
this->AddVariable( "W Offset", 0.0f, []( PositionOutput* p, float f ) { p->mOffsetW = f; } );
57+
}
58+
};
59+
};
60+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
#include <cassert>
2+
#include "FastSIMD/InlInclude.h"
3+
4+
#include "BasicGenerators.h"
5+
6+
template<typename FS>
7+
class FS_T<FastNoise::Constant, FS> : public virtual FastNoise::Constant, public FS_T<FastNoise::Generator, FS>
8+
{
9+
public:
10+
FASTNOISE_IMPL_GEN_T;
11+
12+
template<typename... P>
13+
FS_INLINE float32v GenT( int32v seed, P... pos ) const
14+
{
15+
return float32v( mValue );
16+
}
17+
};
18+
19+
template<typename FS>
20+
class FS_T<FastNoise::PositionOutput, FS> : public virtual FastNoise::PositionOutput, public FS_T<FastNoise::Generator, FS>
21+
{
22+
public:
23+
//FASTNOISE_IMPL_GEN_T;
24+
25+
float32v FS_VECTORCALL Gen( int32v seed, float32v x, float32v y ) const
26+
{
27+
float32v out = (x + float32v( mOffsetX )) * float32v( mMultiplierX );
28+
out += (y + float32v( mOffsetY )) * float32v( mMultiplierY );
29+
30+
return out;
31+
}
32+
33+
float32v FS_VECTORCALL Gen( int32v seed, float32v x, float32v y, float32v z ) const
34+
{
35+
float32v out = (x + float32v( mOffsetX )) * float32v( mMultiplierX );
36+
out += (y + float32v( mOffsetY )) * float32v( mMultiplierY );
37+
out += (y + float32v( mOffsetZ )) * float32v( mMultiplierZ );
38+
39+
return out;
40+
}
41+
};

include/FastNoise/Generators/Generator.h

-17
Original file line numberDiff line numberDiff line change
@@ -77,21 +77,4 @@ namespace FastNoise
7777
using GeneratorSource = GeneratorSourceT<Generator>;
7878
using HybridSource = HybridSourceT<Generator>;
7979

80-
81-
class Constant : public virtual Generator
82-
{
83-
public:
84-
void SetValue( float value ) { mValue = value; }
85-
86-
protected:
87-
float mValue = 1.0f;
88-
89-
FASTNOISE_METADATA( Generator )
90-
91-
Metadata( const char* className ) : Generator::Metadata( className )
92-
{
93-
this->AddVariable( "Value", 1.0f, &Constant::SetValue );
94-
}
95-
};
96-
};
9780
}

include/FastNoise/Generators/Generator.inl

-14
Original file line numberDiff line numberDiff line change
@@ -208,17 +208,3 @@ public:
208208
}
209209
}
210210
};
211-
212-
213-
template<typename FS>
214-
class FS_T<FastNoise::Constant, FS> : public virtual FastNoise::Constant, public FS_T<FastNoise::Generator, FS>
215-
{
216-
public:
217-
FASTNOISE_IMPL_GEN_T;
218-
219-
template<typename... P>
220-
FS_INLINE float32v GenT( int32v seed, P... pos ) const
221-
{
222-
return float32v( mValue );
223-
}
224-
};

include/FastNoise/Generators/Simplex.inl

+7-7
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@ class FS_T<FastNoise::Simplex, FS> : public virtual FastNoise::Simplex, public F
3535
float32v t1 = float32v( 0.5f ) - (x1 * x1) - (y1 * y1);
3636
float32v t2 = float32v( 0.5f ) - (x2 * x2) - (y2 * y2);
3737

38-
t0 = FS_Max_f32( t0, float32v::FS_Zero() );
39-
t1 = FS_Max_f32( t1, float32v::FS_Zero() );
40-
t2 = FS_Max_f32( t2, float32v::FS_Zero() );
38+
t0 = FS_Max_f32( t0, float32v( 0 ) );
39+
t1 = FS_Max_f32( t1, float32v( 0 ) );
40+
t2 = FS_Max_f32( t2, float32v( 0 ) );
4141

4242
t0 *= t0;
4343
t1 *= t1;
@@ -96,10 +96,10 @@ class FS_T<FastNoise::Simplex, FS> : public virtual FastNoise::Simplex, public F
9696
float32v t2 = float32v( 0.6f ) - (x2 * x2) - (y2 * y2) - (z2 * z2);
9797
float32v t3 = float32v( 0.6f ) - (x3 * x3) - (y3 * y3) - (z3 * z3);
9898

99-
t0 = FS_Max_f32( t0, float32v::FS_Zero() );
100-
t1 = FS_Max_f32( t1, float32v::FS_Zero() );
101-
t2 = FS_Max_f32( t2, float32v::FS_Zero() );
102-
t3 = FS_Max_f32( t3, float32v::FS_Zero() );
99+
t0 = FS_Max_f32( t0, float32v( 0 ) );
100+
t1 = FS_Max_f32( t1, float32v( 0 ) );
101+
t2 = FS_Max_f32( t2, float32v( 0 ) );
102+
t3 = FS_Max_f32( t3, float32v( 0 ) );
103103

104104
t0 *= t0;
105105
t1 *= t1;

0 commit comments

Comments
 (0)