From c2f3684d2e6d5ab2240a34c33192fe47551e8852 Mon Sep 17 00:00:00 2001
From: ZaOniRinku <zaonirinku@gmail.com>
Date: Mon, 7 Feb 2022 10:22:51 +0100
Subject: [PATCH] reorganization of premade nodes

---
 src/Mara/RadiumPlayer.cpp                     |   2 +-
 src/libRender/CMakeLists.txt                  |  82 ++++++-----
 .../FilterRenderObjectNameModel.hpp           |   2 +-
 .../FilterRenderObjectTypeModel.hpp           |   2 +-
 .../RenderGraphEditor/NodeAdapterModel.hpp    |   4 +-
 .../SourceColorTextureModel.hpp               |   2 +-
 .../SourceDepthTextureModel.hpp               |   2 +-
 .../Gui/RenderGraphEditor/SourceNodeModel.hpp |   2 +-
 src/libRender/RadiumNBR/NodeBasedRenderer.hpp |   2 +-
 .../Compositing/DifferenceNode.cpp            | 112 ++++++++++++++
 .../Compositing/DifferenceNode.hpp            |  34 +++++
 .../PremadeNodes/Compositing/SumNode.cpp      | 113 ++++++++++++++
 .../PremadeNodes/Compositing/SumNode.hpp      |  34 +++++
 .../PremadeNodes/Demo/DifferenceNode.hpp      | 138 ------------------
 .../PremadeNodes/{ => Filters}/FilterNode.hpp |   0
 .../{ => Filters}/FilterROByNameNode.hpp      |   2 +-
 .../{ => Filters}/FilterROByTypeNode.hpp      |   2 +-
 .../PremadeNodes/PremadeNodesIncludes.hpp     |  52 ++++---
 .../AccessibilityBufferNode.cpp               |   2 +-
 .../AccessibilityBufferNode.hpp               |   0
 .../{ => RenderPasses}/ClearColorNode.cpp     |   2 +-
 .../{ => RenderPasses}/ClearColorNode.hpp     |   0
 .../{ => RenderPasses}/EmissivityNode.cpp     |   2 +-
 .../{ => RenderPasses}/EmissivityNode.hpp     |   0
 .../{ => RenderPasses}/EnvLightNode.cpp       |   2 +-
 .../{ => RenderPasses}/EnvLightNode.hpp       |   0
 .../{ => RenderPasses}/LocalLightNode.cpp     |   2 +-
 .../{ => RenderPasses}/LocalLightNode.hpp     |   0
 .../{ => RenderPasses}/TransparencyNode.cpp   |   2 +-
 .../{ => RenderPasses}/TransparencyNode.hpp   |   0
 .../{ => RenderPasses}/UINode.cpp             |   2 +-
 .../{ => RenderPasses}/UINode.hpp             |   0
 .../{ => RenderPasses}/VolumeNode.cpp         |   2 +-
 .../{ => RenderPasses}/VolumeNode.hpp         |   0
 .../VolumeVizualisationNode.cpp               |   2 +-
 .../VolumeVizualisationNode.hpp               |   2 +-
 .../{ => RenderPasses}/WireframeNode.cpp      |   2 +-
 .../{ => RenderPasses}/WireframeNode.hpp      |   0
 .../{ => RenderPasses}/ZGeomPrepassNode.cpp   |   2 +-
 .../{ => RenderPasses}/ZGeomPrepassNode.hpp   |   0
 .../{ => Sinks}/DisplaySinkNode.cpp           |   2 +-
 .../{ => Sinks}/DisplaySinkNode.hpp           |   0
 .../PremadeNodes/{ => Sinks}/SinkNode.hpp     |   0
 .../{ => Sources}/ColorTextureNode.hpp        |   2 +-
 .../PremadeNodes/{ => Sources}/DataNode.hpp   |   0
 .../{ => Sources}/DepthTextureNode.hpp        |   2 +-
 .../PremadeNodes/{ => Sources}/SourceNode.hpp |   0
 .../{ => Sources}/TextureNode.cpp             |   2 +-
 .../{ => Sources}/TextureNode.hpp             |   0
 .../RadiumNBR/NodeGraph/RenderGraph.hpp       |   4 +-
 .../Renderer/NodeGraphController.cpp          |  32 ++--
 51 files changed, 414 insertions(+), 241 deletions(-)
 create mode 100644 src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/DifferenceNode.cpp
 create mode 100644 src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/DifferenceNode.hpp
 create mode 100644 src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/SumNode.cpp
 create mode 100644 src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/SumNode.hpp
 delete mode 100644 src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Demo/DifferenceNode.hpp
 rename src/libRender/RadiumNBR/NodeGraph/PremadeNodes/{ => Filters}/FilterNode.hpp (100%)
 rename src/libRender/RadiumNBR/NodeGraph/PremadeNodes/{ => Filters}/FilterROByNameNode.hpp (90%)
 rename src/libRender/RadiumNBR/NodeGraph/PremadeNodes/{ => Filters}/FilterROByTypeNode.hpp (91%)
 rename src/libRender/RadiumNBR/NodeGraph/PremadeNodes/{ => RenderPasses}/AccessibilityBufferNode.cpp (99%)
 rename src/libRender/RadiumNBR/NodeGraph/PremadeNodes/{ => RenderPasses}/AccessibilityBufferNode.hpp (100%)
 rename src/libRender/RadiumNBR/NodeGraph/PremadeNodes/{ => RenderPasses}/ClearColorNode.cpp (98%)
 rename src/libRender/RadiumNBR/NodeGraph/PremadeNodes/{ => RenderPasses}/ClearColorNode.hpp (100%)
 rename src/libRender/RadiumNBR/NodeGraph/PremadeNodes/{ => RenderPasses}/EmissivityNode.cpp (98%)
 rename src/libRender/RadiumNBR/NodeGraph/PremadeNodes/{ => RenderPasses}/EmissivityNode.hpp (100%)
 rename src/libRender/RadiumNBR/NodeGraph/PremadeNodes/{ => RenderPasses}/EnvLightNode.cpp (99%)
 rename src/libRender/RadiumNBR/NodeGraph/PremadeNodes/{ => RenderPasses}/EnvLightNode.hpp (100%)
 rename src/libRender/RadiumNBR/NodeGraph/PremadeNodes/{ => RenderPasses}/LocalLightNode.cpp (98%)
 rename src/libRender/RadiumNBR/NodeGraph/PremadeNodes/{ => RenderPasses}/LocalLightNode.hpp (100%)
 rename src/libRender/RadiumNBR/NodeGraph/PremadeNodes/{ => RenderPasses}/TransparencyNode.cpp (99%)
 rename src/libRender/RadiumNBR/NodeGraph/PremadeNodes/{ => RenderPasses}/TransparencyNode.hpp (100%)
 rename src/libRender/RadiumNBR/NodeGraph/PremadeNodes/{ => RenderPasses}/UINode.cpp (98%)
 rename src/libRender/RadiumNBR/NodeGraph/PremadeNodes/{ => RenderPasses}/UINode.hpp (100%)
 rename src/libRender/RadiumNBR/NodeGraph/PremadeNodes/{ => RenderPasses}/VolumeNode.cpp (99%)
 rename src/libRender/RadiumNBR/NodeGraph/PremadeNodes/{ => RenderPasses}/VolumeNode.hpp (100%)
 rename src/libRender/RadiumNBR/NodeGraph/PremadeNodes/{ => RenderPasses}/VolumeVizualisationNode.cpp (99%)
 rename src/libRender/RadiumNBR/NodeGraph/PremadeNodes/{ => RenderPasses}/VolumeVizualisationNode.hpp (98%)
 rename src/libRender/RadiumNBR/NodeGraph/PremadeNodes/{ => RenderPasses}/WireframeNode.cpp (99%)
 rename src/libRender/RadiumNBR/NodeGraph/PremadeNodes/{ => RenderPasses}/WireframeNode.hpp (100%)
 rename src/libRender/RadiumNBR/NodeGraph/PremadeNodes/{ => RenderPasses}/ZGeomPrepassNode.cpp (98%)
 rename src/libRender/RadiumNBR/NodeGraph/PremadeNodes/{ => RenderPasses}/ZGeomPrepassNode.hpp (100%)
 rename src/libRender/RadiumNBR/NodeGraph/PremadeNodes/{ => Sinks}/DisplaySinkNode.cpp (95%)
 rename src/libRender/RadiumNBR/NodeGraph/PremadeNodes/{ => Sinks}/DisplaySinkNode.hpp (100%)
 rename src/libRender/RadiumNBR/NodeGraph/PremadeNodes/{ => Sinks}/SinkNode.hpp (100%)
 rename src/libRender/RadiumNBR/NodeGraph/PremadeNodes/{ => Sources}/ColorTextureNode.hpp (89%)
 rename src/libRender/RadiumNBR/NodeGraph/PremadeNodes/{ => Sources}/DataNode.hpp (100%)
 rename src/libRender/RadiumNBR/NodeGraph/PremadeNodes/{ => Sources}/DepthTextureNode.hpp (90%)
 rename src/libRender/RadiumNBR/NodeGraph/PremadeNodes/{ => Sources}/SourceNode.hpp (100%)
 rename src/libRender/RadiumNBR/NodeGraph/PremadeNodes/{ => Sources}/TextureNode.cpp (94%)
 rename src/libRender/RadiumNBR/NodeGraph/PremadeNodes/{ => Sources}/TextureNode.hpp (100%)

diff --git a/src/Mara/RadiumPlayer.cpp b/src/Mara/RadiumPlayer.cpp
index 6d93ff0..eb33a9a 100644
--- a/src/Mara/RadiumPlayer.cpp
+++ b/src/Mara/RadiumPlayer.cpp
@@ -43,7 +43,7 @@ using namespace Ra::Core::Utils; // for LOG( logLEVEL )
 #include <Engine/Data/ShaderConfigFactory.hpp>
 #include <RadiumNBR/Gui/RenderGraphEditor/NodeAdapterModel.hpp>
 #include <RadiumNBR/NodeGraph/PremadeNodes/Demo/SimpleNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/Demo/DifferenceNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Compositing/DifferenceNode.hpp>
 
 template <typename T>
 class NodeCreator
diff --git a/src/libRender/CMakeLists.txt b/src/libRender/CMakeLists.txt
index d8de086..237cc2f 100644
--- a/src/libRender/CMakeLists.txt
+++ b/src/libRender/CMakeLists.txt
@@ -32,19 +32,24 @@ set(sources
     RadiumNBR/Renderer/FakeNBRRenderer.cpp
     RadiumNBR/Renderer/NodeGraphController.cpp
 
-    RadiumNBR/NodeGraph/PremadeNodes/AccessibilityBufferNode.cpp
-    RadiumNBR/NodeGraph/PremadeNodes/DisplaySinkNode.cpp
-    RadiumNBR/NodeGraph/PremadeNodes/EmissivityNode.cpp
-    RadiumNBR/NodeGraph/PremadeNodes/ClearColorNode.cpp
-    RadiumNBR/NodeGraph/PremadeNodes/EnvLightNode.cpp
-    RadiumNBR/NodeGraph/PremadeNodes/LocalLightNode.cpp
-    RadiumNBR/NodeGraph/PremadeNodes/TextureNode.cpp
-    RadiumNBR/NodeGraph/PremadeNodes/TransparencyNode.cpp
-    RadiumNBR/NodeGraph/PremadeNodes/UINode.cpp
-    RadiumNBR/NodeGraph/PremadeNodes/VolumeNode.cpp
-    RadiumNBR/NodeGraph/PremadeNodes/VolumeVizualisationNode.cpp
-    RadiumNBR/NodeGraph/PremadeNodes/WireframeNode.cpp
-    RadiumNBR/NodeGraph/PremadeNodes/ZGeomPrepassNode.cpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/AccessibilityBufferNode.cpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ClearColorNode.cpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EmissivityNode.cpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EnvLightNode.cpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/LocalLightNode.cpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/TransparencyNode.cpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeNode.cpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeVizualisationNode.cpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ZGeomPrepassNode.cpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/UINode.cpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/WireframeNode.cpp
+
+    RadiumNBR/NodeGraph/PremadeNodes/Sources/TextureNode.cpp
+
+    RadiumNBR/NodeGraph/PremadeNodes/Sinks/DisplaySinkNode.cpp
+
+    RadiumNBR/NodeGraph/PremadeNodes/Compositing/DifferenceNode.cpp
+    RadiumNBR/NodeGraph/PremadeNodes/Compositing/SumNode.cpp
 
     RadiumNBR/NodeGraph/RenderGraph.cpp
     RadiumNBR/NodeGraph/NodeFactory.cpp
@@ -84,29 +89,36 @@ set(public_headers
     RadiumNBR/NodeGraph/RenderGraph.hpp
     RadiumNBR/NodeGraph/NodeFactory.hpp
 
-    RadiumNBR/NodeGraph/PremadeNodes/AccessibilityBufferNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/ClearColorNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/EmissivityNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/EnvLightNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/DataNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/LocalLightNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/TransparencyNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/VolumeNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/VolumeVizualisationNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/FilterNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/FilterROByNameNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/FilterROByTypeNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/SinkNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/SourceNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/ColorTextureNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/DepthTextureNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/TextureNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/ZGeomPrepassNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/UINode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/WireframeNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/DisplaySinkNode.hpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/AccessibilityBufferNode.hpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ClearColorNode.hpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EmissivityNode.hpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EnvLightNode.hpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/LocalLightNode.hpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/TransparencyNode.hpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeNode.hpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeVizualisationNode.hpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ZGeomPrepassNode.hpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/UINode.hpp
+    RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/WireframeNode.hpp
+
+    RadiumNBR/NodeGraph/PremadeNodes/Sources/DataNode.hpp
+    RadiumNBR/NodeGraph/PremadeNodes/Sources/SourceNode.hpp
+    RadiumNBR/NodeGraph/PremadeNodes/Sources/ColorTextureNode.hpp
+    RadiumNBR/NodeGraph/PremadeNodes/Sources/DepthTextureNode.hpp
+    RadiumNBR/NodeGraph/PremadeNodes/Sources/TextureNode.hpp
+
+    RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterNode.hpp
+    RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterROByNameNode.hpp
+    RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterROByTypeNode.hpp
+
+    RadiumNBR/NodeGraph/PremadeNodes/Sinks/SinkNode.hpp
+    RadiumNBR/NodeGraph/PremadeNodes/Sinks/DisplaySinkNode.hpp
+
+    RadiumNBR/NodeGraph/PremadeNodes/Compositing/DifferenceNode.hpp
+    RadiumNBR/NodeGraph/PremadeNodes/Compositing/SumNode.hpp
+
     RadiumNBR/NodeGraph/PremadeNodes/Demo/SimpleNode.hpp
-    RadiumNBR/NodeGraph/PremadeNodes/Demo/DifferenceNode.hpp
+
     RadiumNBR/NodeGraph/PremadeNodes/PremadeNodesIncludes.hpp
 	
     # MULTI PASS    
diff --git a/src/libRender/RadiumNBR/Gui/RenderGraphEditor/FilterRenderObjectNameModel.hpp b/src/libRender/RadiumNBR/Gui/RenderGraphEditor/FilterRenderObjectNameModel.hpp
index 1e9e31d..b97626e 100644
--- a/src/libRender/RadiumNBR/Gui/RenderGraphEditor/FilterRenderObjectNameModel.hpp
+++ b/src/libRender/RadiumNBR/Gui/RenderGraphEditor/FilterRenderObjectNameModel.hpp
@@ -7,7 +7,7 @@
 
 #include "ConnectionStatusData.hpp"
 
-#include <RadiumNBR/NodeGraph/PremadeNodes/FilterROByNameNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterROByNameNode.hpp>
 #include <RadiumNBR/NodeGraph/RenderGraph.hpp>
 
 #include <iostream>
diff --git a/src/libRender/RadiumNBR/Gui/RenderGraphEditor/FilterRenderObjectTypeModel.hpp b/src/libRender/RadiumNBR/Gui/RenderGraphEditor/FilterRenderObjectTypeModel.hpp
index 2ff67b8..c74ca91 100644
--- a/src/libRender/RadiumNBR/Gui/RenderGraphEditor/FilterRenderObjectTypeModel.hpp
+++ b/src/libRender/RadiumNBR/Gui/RenderGraphEditor/FilterRenderObjectTypeModel.hpp
@@ -7,7 +7,7 @@
 
 #include "ConnectionStatusData.hpp"
 
-#include <RadiumNBR/NodeGraph/PremadeNodes/FilterROByTypeNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterROByTypeNode.hpp>
 #include <RadiumNBR/NodeGraph/RenderGraph.hpp>
 
 #include <iostream>
diff --git a/src/libRender/RadiumNBR/Gui/RenderGraphEditor/NodeAdapterModel.hpp b/src/libRender/RadiumNBR/Gui/RenderGraphEditor/NodeAdapterModel.hpp
index a8df38c..bf59f68 100644
--- a/src/libRender/RadiumNBR/Gui/RenderGraphEditor/NodeAdapterModel.hpp
+++ b/src/libRender/RadiumNBR/Gui/RenderGraphEditor/NodeAdapterModel.hpp
@@ -10,8 +10,8 @@
 #include <RadiumNBR/Gui/RenderGraphEditor/ConnectionStatusData.hpp>
 
 #include <RadiumNBR/NodeGraph/Node.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/DataNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/DisplaySinkNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sources/DataNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sinks/DisplaySinkNode.hpp>
 
 #include <RadiumNBR/Gui/RendererPanel.hpp>
 
diff --git a/src/libRender/RadiumNBR/Gui/RenderGraphEditor/SourceColorTextureModel.hpp b/src/libRender/RadiumNBR/Gui/RenderGraphEditor/SourceColorTextureModel.hpp
index bdaee18..8cffa69 100644
--- a/src/libRender/RadiumNBR/Gui/RenderGraphEditor/SourceColorTextureModel.hpp
+++ b/src/libRender/RadiumNBR/Gui/RenderGraphEditor/SourceColorTextureModel.hpp
@@ -6,7 +6,7 @@
 
 #include <RadiumNBR/Gui/RenderGraphEditor/ConnectionStatusData.hpp>
 
-#include <RadiumNBR/NodeGraph/PremadeNodes/ColorTextureNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sources/ColorTextureNode.hpp>
 #include <RadiumNBR/NodeGraph/RenderGraph.hpp>
 
 #include <iostream>
diff --git a/src/libRender/RadiumNBR/Gui/RenderGraphEditor/SourceDepthTextureModel.hpp b/src/libRender/RadiumNBR/Gui/RenderGraphEditor/SourceDepthTextureModel.hpp
index 60db7ef..868de22 100644
--- a/src/libRender/RadiumNBR/Gui/RenderGraphEditor/SourceDepthTextureModel.hpp
+++ b/src/libRender/RadiumNBR/Gui/RenderGraphEditor/SourceDepthTextureModel.hpp
@@ -6,7 +6,7 @@
 
 #include "ConnectionStatusData.hpp"
 
-#include <RadiumNBR/NodeGraph/PremadeNodes/DepthTextureNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sources/DepthTextureNode.hpp>
 #include <RadiumNBR/NodeGraph/RenderGraph.hpp>
 
 #include <iostream>
diff --git a/src/libRender/RadiumNBR/Gui/RenderGraphEditor/SourceNodeModel.hpp b/src/libRender/RadiumNBR/Gui/RenderGraphEditor/SourceNodeModel.hpp
index a309e7a..b056e99 100644
--- a/src/libRender/RadiumNBR/Gui/RenderGraphEditor/SourceNodeModel.hpp
+++ b/src/libRender/RadiumNBR/Gui/RenderGraphEditor/SourceNodeModel.hpp
@@ -2,7 +2,7 @@
 #include <nodes/NodeDataModel>
 #include <RadiumNBR/Gui/RenderGraphEditor/ConnectionStatusData.hpp>
 
-#include <RadiumNBR/NodeGraph/PremadeNodes/SourceNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sources/SourceNode.hpp>
 #include <RadiumNBR/NodeGraph/RenderGraph.hpp>
 
 template <typename T>
diff --git a/src/libRender/RadiumNBR/NodeBasedRenderer.hpp b/src/libRender/RadiumNBR/NodeBasedRenderer.hpp
index 45c3be8..af9b439 100644
--- a/src/libRender/RadiumNBR/NodeBasedRenderer.hpp
+++ b/src/libRender/RadiumNBR/NodeBasedRenderer.hpp
@@ -2,7 +2,7 @@
 #include <RadiumNBR/NodeBasedRendererMacro.hpp>
 
 #include <RadiumNBR/NodeGraph/RenderGraph.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/DisplaySinkNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sinks/DisplaySinkNode.hpp>
 
 #include <Core/Resources/Resources.hpp>
 #include <Engine/Rendering/Renderer.hpp>
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/DifferenceNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/DifferenceNode.cpp
new file mode 100644
index 0000000..fd2dc6d
--- /dev/null
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/DifferenceNode.cpp
@@ -0,0 +1,112 @@
+#include <RadiumNBR/NodeGraph/PremadeNodes/Compositing/DifferenceNode.hpp>
+
+DifferenceNode::DifferenceNode( const std::string& name ) : Node( name ) {
+    auto portInColor1 = new PortIn<NodeTypeTexture>( "inColorTexture1", this );
+    addInput( portInColor1 );
+    portInColor1->mustBeLinked();
+    auto portInColor2 = new PortIn<NodeTypeTexture>( "inColorTexture2", this );
+    addInput( portInColor2 );
+    portInColor2->mustBeLinked();
+
+    Ra::Engine::Data::TextureParameters colorTexParams = { "Color Texture",
+                                                           gl::GL_TEXTURE_2D,
+                                                           1,
+                                                           1,
+                                                           1,
+                                                           gl::GL_RGBA,
+                                                           gl::GL_RGBA32F,
+                                                           gl::GL_FLOAT,
+                                                           gl::GL_CLAMP_TO_EDGE,
+                                                           gl::GL_CLAMP_TO_EDGE,
+                                                           gl::GL_CLAMP_TO_EDGE,
+                                                           gl::GL_LINEAR,
+                                                           gl::GL_LINEAR,
+                                                           nullptr };
+    m_colorTexture = new Ra::Engine::Data::Texture( colorTexParams );
+
+    auto portOutColorTex = new PortOut<NodeTypeTexture>( "outColorTexture", this );
+    addOutput( portOutColorTex, m_colorTexture );
+}
+
+void DifferenceNode::init() {
+    m_framebuffer = new globjects::Framebuffer();
+
+    Ra::Core::Geometry::TriangleMesh mesh =
+        Ra::Core::Geometry::makeZNormalQuad( Ra::Core::Vector2( -1.f, 1.f ) );
+    auto qm = std::make_unique<Ra::Engine::Data::Mesh>( "caller" );
+    qm->loadGeometry( std::move( mesh ) );
+    m_quadMesh = std::move( qm );
+    m_quadMesh->updateGL();
+
+    const std::string composeVertexShader{ "layout (location = 0) in vec3 in_position;\n"
+                                           "out vec2 varTexcoord;\n"
+                                           "void main()\n"
+                                           "{\n"
+                                           "  gl_Position = vec4(in_position, 1.0);\n"
+                                           "  varTexcoord = (in_position.xy + 1.0) * 0.5;\n"
+                                           "}\n" };
+    const std::string composeFragmentShader{
+        "layout (location = 0) out vec4 out_tex;\n"
+        "uniform sampler2D tex1_sampler;\n"
+        "uniform sampler2D tex2_sampler;\n"
+        "in vec2 varTexcoord;\n"
+        "void main() {\n"
+        "   out_tex = texture(tex1_sampler, varTexcoord) - texture(tex2_sampler, varTexcoord);\n"
+        "}" };
+
+    Ra::Engine::Data::ShaderConfiguration config{ "ComposeDifference" };
+    config.addShaderSource( Ra::Engine::Data::ShaderType::ShaderType_VERTEX, composeVertexShader );
+    config.addShaderSource( Ra::Engine::Data::ShaderType::ShaderType_FRAGMENT,
+                            composeFragmentShader );
+    auto added = m_shaderMngr->addShaderProgram( config );
+    if ( added ) { m_shader = added.value(); }
+}
+
+void DifferenceNode::update() {}
+
+void DifferenceNode::execute() {
+    Ra::Engine::Data::RenderParameters inPassParams;
+
+    // Texture 1
+    auto inputColor1           = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
+    NodeTypeTexture* texColor1 = &inputColor1->getData();
+
+    // Texture 2
+    auto inputColor2           = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[1].get() );
+    NodeTypeTexture* texColor2 = &inputColor2->getData();
+
+    m_framebuffer->bind();
+    m_framebuffer->attachTexture( gl::GL_COLOR_ATTACHMENT0, m_colorTexture->texture() );
+
+    const gl::GLenum buffers[] = { gl::GL_COLOR_ATTACHMENT0 };
+    gl::glDrawBuffers( 1, buffers );
+    gl::glDisable( gl::GL_DEPTH_TEST );
+    gl::glDepthMask( gl::GL_FALSE );
+    gl::glColorMask( gl::GL_TRUE, gl::GL_TRUE, gl::GL_TRUE, gl::GL_TRUE );
+
+    float clearBlack[4] = { 0.0f, 0.0f, 0.0f, 0.0f };
+    gl::glClearBufferfv( gl::GL_COLOR, 0, clearBlack );
+
+    gl::glDisable( gl::GL_BLEND );
+
+    m_shader->bind();
+    m_shader->setUniform( "tex1_sampler", texColor1, 0 );
+    m_shader->setUniform( "tex2_sampler", texColor2, 1 );
+
+    m_quadMesh->render( m_shader );
+
+    m_framebuffer->detach( gl::GL_COLOR_ATTACHMENT0 );
+    m_framebuffer->unbind();
+}
+
+void DifferenceNode::destroy() {
+    delete m_framebuffer;
+    delete m_colorTexture;
+}
+
+void DifferenceNode::resize( uint32_t width, uint32_t height ) {
+    m_colorTexture->resize( width, height );
+}
+
+void DifferenceNode::buildRenderTechnique( const Ra::Engine::Rendering::RenderObject* ro,
+                           Ra::Engine::Rendering::RenderTechnique& rt ) const {}
\ No newline at end of file
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/DifferenceNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/DifferenceNode.hpp
new file mode 100644
index 0000000..c5aea5c
--- /dev/null
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/DifferenceNode.hpp
@@ -0,0 +1,34 @@
+#pragma once
+#include <RadiumNBR/NodeGraph/Node.hpp>
+
+#include <globjects/Framebuffer.h>
+
+#include <Core/Geometry/MeshPrimitives.hpp>
+#include <Engine/Data/Mesh.hpp>
+#include <Engine/Data/RenderParameters.hpp>
+
+class NodeBasedRenderer_LIBRARY_API DifferenceNode : public Node
+{
+  public:
+    explicit DifferenceNode( const std::string& name );
+
+    void init() override;
+    void update() override;
+    void execute() override;
+    void destroy() override;
+    void resize( uint32_t width, uint32_t height ) override;
+
+    void buildRenderTechnique( const Ra::Engine::Rendering::RenderObject* ro,
+                               Ra::Engine::Rendering::RenderTechnique& rt ) const override;
+
+    static const std::string getTypename() { return "Difference"; }
+
+  private:
+    Ra::Engine::Data::Texture* m_colorTexture{ nullptr };
+
+    std::unique_ptr<Ra::Engine::Data::Displayable> m_quadMesh{ nullptr };
+
+    const Ra::Engine::Data::ShaderProgram* m_shader{ nullptr };
+
+    globjects::Framebuffer* m_framebuffer{ nullptr };
+};
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/SumNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/SumNode.cpp
new file mode 100644
index 0000000..6cdf640
--- /dev/null
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/SumNode.cpp
@@ -0,0 +1,113 @@
+#include <RadiumNBR/NodeGraph/PremadeNodes/Compositing/SumNode.hpp>
+
+SumNode::SumNode( const std::string& name ) : Node( name ) {
+    auto portInColor1 = new PortIn<NodeTypeTexture>( "inColorTexture1", this );
+    addInput( portInColor1 );
+    portInColor1->mustBeLinked();
+    auto portInColor2 = new PortIn<NodeTypeTexture>( "inColorTexture2", this );
+    addInput( portInColor2 );
+    portInColor2->mustBeLinked();
+
+    Ra::Engine::Data::TextureParameters colorTexParams = { "Color Texture",
+                                                           gl::GL_TEXTURE_2D,
+                                                           1,
+                                                           1,
+                                                           1,
+                                                           gl::GL_RGBA,
+                                                           gl::GL_RGBA32F,
+                                                           gl::GL_FLOAT,
+                                                           gl::GL_CLAMP_TO_EDGE,
+                                                           gl::GL_CLAMP_TO_EDGE,
+                                                           gl::GL_CLAMP_TO_EDGE,
+                                                           gl::GL_LINEAR,
+                                                           gl::GL_LINEAR,
+                                                           nullptr };
+    m_colorTexture = new Ra::Engine::Data::Texture( colorTexParams );
+
+    auto portOutColorTex = new PortOut<NodeTypeTexture>( "outColorTexture", this );
+    addOutput( portOutColorTex, m_colorTexture );
+}
+
+void SumNode::init() {
+    m_framebuffer = new globjects::Framebuffer();
+
+    Ra::Core::Geometry::TriangleMesh mesh =
+        Ra::Core::Geometry::makeZNormalQuad( Ra::Core::Vector2( -1.f, 1.f ) );
+    auto qm = std::make_unique<Ra::Engine::Data::Mesh>( "caller" );
+    qm->loadGeometry( std::move( mesh ) );
+    m_quadMesh = std::move( qm );
+    m_quadMesh->updateGL();
+
+    const std::string composeVertexShader{ "layout (location = 0) in vec3 in_position;\n"
+                                           "out vec2 varTexcoord;\n"
+                                           "void main()\n"
+                                           "{\n"
+                                           "  gl_Position = vec4(in_position, 1.0);\n"
+                                           "  varTexcoord = (in_position.xy + 1.0) * 0.5;\n"
+                                           "}\n" };
+    const std::string composeFragmentShader{
+        "layout (location = 0) out vec4 out_tex;\n"
+        "uniform sampler2D tex1_sampler;\n"
+        "uniform sampler2D tex2_sampler;\n"
+        "in vec2 varTexcoord;\n"
+        "void main() {\n"
+        "   out_tex = texture(tex1_sampler, varTexcoord) + texture(tex2_sampler, varTexcoord);\n"
+        "}" };
+
+    Ra::Engine::Data::ShaderConfiguration config{ "ComposeSum" };
+    config.addShaderSource( Ra::Engine::Data::ShaderType::ShaderType_VERTEX, composeVertexShader );
+    config.addShaderSource( Ra::Engine::Data::ShaderType::ShaderType_FRAGMENT,
+                            composeFragmentShader );
+    auto added = m_shaderMngr->addShaderProgram( config );
+    if ( added ) { m_shader = added.value(); }
+}
+
+void SumNode::update() {}
+
+void SumNode::execute() {
+    Ra::Engine::Data::RenderParameters inPassParams;
+
+    // Texture 1
+    auto inputColor1           = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
+    NodeTypeTexture* texColor1 = &inputColor1->getData();
+
+    // Texture 2
+    auto inputColor2           = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[1].get() );
+    NodeTypeTexture* texColor2 = &inputColor2->getData();
+
+    m_framebuffer->bind();
+    m_framebuffer->attachTexture( gl::GL_COLOR_ATTACHMENT0, m_colorTexture->texture() );
+
+    const gl::GLenum buffers[] = { gl::GL_COLOR_ATTACHMENT0 };
+    gl::glDrawBuffers( 1, buffers );
+    gl::glDisable( gl::GL_DEPTH_TEST );
+    gl::glDepthMask( gl::GL_FALSE );
+    gl::glColorMask( gl::GL_TRUE, gl::GL_TRUE, gl::GL_TRUE, gl::GL_TRUE );
+
+    float clearBlack[4] = { 0.0f, 0.0f, 0.0f, 0.0f };
+    gl::glClearBufferfv( gl::GL_COLOR, 0, clearBlack );
+
+    gl::glDisable( gl::GL_BLEND );
+
+    m_shader->bind();
+    m_shader->setUniform( "tex1_sampler", texColor1, 0 );
+    m_shader->setUniform( "tex2_sampler", texColor2, 1 );
+
+    m_quadMesh->render( m_shader );
+
+    m_framebuffer->detach( gl::GL_COLOR_ATTACHMENT0 );
+    m_framebuffer->unbind();
+}
+
+void SumNode::destroy() {
+    delete m_framebuffer;
+    delete m_colorTexture;
+}
+
+void SumNode::resize( uint32_t width, uint32_t height ) {
+    m_colorTexture->resize( width, height );
+}
+
+void SumNode::buildRenderTechnique( const Ra::Engine::Rendering::RenderObject* ro,
+                           Ra::Engine::Rendering::RenderTechnique& rt ) const {}
+
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/SumNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/SumNode.hpp
new file mode 100644
index 0000000..4a1ef66
--- /dev/null
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Compositing/SumNode.hpp
@@ -0,0 +1,34 @@
+#pragma once
+#include <RadiumNBR/NodeGraph/Node.hpp>
+
+#include <globjects/Framebuffer.h>
+
+#include <Core/Geometry/MeshPrimitives.hpp>
+#include <Engine/Data/Mesh.hpp>
+#include <Engine/Data/RenderParameters.hpp>
+
+class NodeBasedRenderer_LIBRARY_API SumNode : public Node
+{
+  public:
+    explicit SumNode( const std::string& name );
+
+    void init() override;
+    void update() override;
+    void execute() override;
+    void destroy() override;
+    void resize( uint32_t width, uint32_t height ) override;
+
+    void buildRenderTechnique( const Ra::Engine::Rendering::RenderObject* ro,
+                               Ra::Engine::Rendering::RenderTechnique& rt ) const override;
+
+    static const std::string getTypename() { return "Sum"; }
+
+  private:
+    Ra::Engine::Data::Texture* m_colorTexture{ nullptr };
+
+    std::unique_ptr<Ra::Engine::Data::Displayable> m_quadMesh{ nullptr };
+
+    const Ra::Engine::Data::ShaderProgram* m_shader{ nullptr };
+
+    globjects::Framebuffer* m_framebuffer{ nullptr };
+};
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Demo/DifferenceNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Demo/DifferenceNode.hpp
deleted file mode 100644
index 3ba4786..0000000
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Demo/DifferenceNode.hpp
+++ /dev/null
@@ -1,138 +0,0 @@
-#pragma once
-#include <RadiumNBR/NodeGraph/Node.hpp>
-
-#include <globjects/Framebuffer.h>
-
-#include <Core/Geometry/MeshPrimitives.hpp>
-#include <Engine/Data/Mesh.hpp>
-#include <Engine/Data/RenderParameters.hpp>
-
-class NodeBasedRenderer_LIBRARY_API DifferenceNode : public Node
-{
-  public:
-    explicit DifferenceNode( const std::string& name ) : Node( name ) {
-        auto portInColor1 = new PortIn<NodeTypeTexture>( "inColorTexture1", this );
-        addInput( portInColor1 );
-        portInColor1->mustBeLinked();
-        auto portInColor2 = new PortIn<NodeTypeTexture>( "inColorTexture2", this );
-        addInput( portInColor2 );
-        portInColor2->mustBeLinked();
-
-        Ra::Engine::Data::TextureParameters colorTexParams = { "Color Texture",
-                                                               gl::GL_TEXTURE_2D,
-                                                               1,
-                                                               1,
-                                                               1,
-                                                               gl::GL_RGBA,
-                                                               gl::GL_RGBA32F,
-                                                               gl::GL_FLOAT,
-                                                               gl::GL_CLAMP_TO_EDGE,
-                                                               gl::GL_CLAMP_TO_EDGE,
-                                                               gl::GL_CLAMP_TO_EDGE,
-                                                               gl::GL_LINEAR,
-                                                               gl::GL_LINEAR,
-                                                               nullptr };
-        m_colorTexture = new Ra::Engine::Data::Texture( colorTexParams );
-
-        auto portOutColorTex = new PortOut<NodeTypeTexture>( "outColorTexture", this );
-        addOutput( portOutColorTex, m_colorTexture );
-    }
-
-    void init() override {
-        m_framebuffer = new globjects::Framebuffer();
-
-        Ra::Core::Geometry::TriangleMesh mesh =
-            Ra::Core::Geometry::makeZNormalQuad( Ra::Core::Vector2( -1.f, 1.f ) );
-        auto qm = std::make_unique<Ra::Engine::Data::Mesh>( "caller" );
-        qm->loadGeometry( std::move( mesh ) );
-        m_quadMesh = std::move( qm );
-        m_quadMesh->updateGL();
-
-        const std::string composeVertexShader{ "layout (location = 0) in vec3 in_position;\n"
-                                               "out vec2 varTexcoord;\n"
-                                               "void main()\n"
-                                               "{\n"
-                                               "  gl_Position = vec4(in_position, 1.0);\n"
-                                               "  varTexcoord = (in_position.xy + 1.0) * 0.5;\n"
-                                               "}\n" };
-        const std::string composeFragmentShader{
-            "layout (location = 0) out vec4 out_diff;\n"
-            "uniform sampler2D tex1_sampler;\n"
-            "uniform sampler2D tex2_sampler;\n"
-            "in vec2 varTexcoord;\n"
-            "void main() {\n"
-            "   out_diff = texture(tex1_sampler, varTexcoord) - texture(tex2_sampler, varTexcoord);\n"
-            "}" };
-
-        Ra::Engine::Data::ShaderConfiguration config{ "ComposeDifference" };
-        config.addShaderSource( Ra::Engine::Data::ShaderType::ShaderType_VERTEX,
-                                composeVertexShader );
-        config.addShaderSource( Ra::Engine::Data::ShaderType::ShaderType_FRAGMENT,
-                                composeFragmentShader );
-        auto added = m_shaderMngr->addShaderProgram( config );
-        if ( added ) { m_shader = added.value(); }
-    }
-
-    void update() override {}
-
-    void execute() override {
-        Ra::Engine::Data::RenderParameters inPassParams;
-
-        // Texture 1
-        auto inputColor1 =
-            dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[0].get() );
-        NodeTypeTexture* texColor1 = &inputColor1->getData();
-
-        // Texture 2
-        auto inputColor2           = dynamic_cast<PortIn<NodeTypeTexture>*>( m_inputs[1].get() );
-        NodeTypeTexture* texColor2 = &inputColor2->getData();
-
-        m_framebuffer->bind();
-        m_framebuffer->attachTexture( gl::GL_COLOR_ATTACHMENT0, m_colorTexture->texture() );
-
-        const gl::GLenum buffers[] = { gl::GL_COLOR_ATTACHMENT0 };
-        gl::glDrawBuffers( 1, buffers );
-        gl::glDisable( gl::GL_DEPTH_TEST );
-        gl::glDepthMask( gl::GL_FALSE );
-        gl::glColorMask( gl::GL_TRUE, gl::GL_TRUE, gl::GL_TRUE, gl::GL_TRUE );
-
-        float clearBlack[4] = { 0.0f, 0.0f, 0.0f, 0.0f };
-        gl::glClearBufferfv( gl::GL_COLOR, 0, clearBlack );
-
-        gl::glDisable( gl::GL_BLEND );
-
-        m_shader->bind();
-        m_shader->setUniform( "tex1_sampler", texColor1, 0 );
-        m_shader->setUniform( "tex2_sampler", texColor2, 1 );
-
-        m_quadMesh->render( m_shader );
-
-        m_framebuffer->detach( gl::GL_COLOR_ATTACHMENT0 );
-        m_framebuffer->unbind();
-    }
-
-    void destroy() override {
-        delete m_framebuffer;
-        delete m_colorTexture;
-    }
-
-    void resize( uint32_t width, uint32_t height ) override {
-        m_colorTexture->resize( width, height );
-    }
-
-    void buildRenderTechnique( const Ra::Engine::Rendering::RenderObject* ro,
-                               Ra::Engine::Rendering::RenderTechnique& rt ) const override {
-        
-    }
-
-    static const std::string getTypename() { return "Difference"; }
-
-  private:
-    Ra::Engine::Data::Texture* m_colorTexture{ nullptr };
-
-    std::unique_ptr<Ra::Engine::Data::Displayable> m_quadMesh{ nullptr };
-
-    const Ra::Engine::Data::ShaderProgram* m_shader{ nullptr };
-
-    globjects::Framebuffer* m_framebuffer{ nullptr };
-};
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/FilterNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterNode.hpp
similarity index 100%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/FilterNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterNode.hpp
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/FilterROByNameNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterROByNameNode.hpp
similarity index 90%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/FilterROByNameNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterROByNameNode.hpp
index 778e6b1..4084edf 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/FilterROByNameNode.hpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterROByNameNode.hpp
@@ -1,5 +1,5 @@
 #pragma once
-#include <RadiumNBR/NodeGraph/PremadeNodes/FilterNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterNode.hpp>
 #include <regex>
 
 class FilterROByNameNode : public FilterNode<NodeTypeRenderObject> {
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/FilterROByTypeNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterROByTypeNode.hpp
similarity index 91%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/FilterROByTypeNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterROByTypeNode.hpp
index fa51dd9..4aa92d7 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/FilterROByTypeNode.hpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterROByTypeNode.hpp
@@ -1,5 +1,5 @@
 #pragma once
-#include <RadiumNBR/NodeGraph/PremadeNodes/FilterNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterNode.hpp>
 #include <Engine/Data/Material.hpp>
 
 class FilterROByTypeNode : public FilterNode<NodeTypeRenderObject>
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/PremadeNodesIncludes.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/PremadeNodesIncludes.hpp
index 9e19262..dd160df 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/PremadeNodesIncludes.hpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/PremadeNodesIncludes.hpp
@@ -1,24 +1,30 @@
 #pragma once
-#include <RadiumNBR/NodeGraph/PremadeNodes/AccessibilityBufferNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/ClearColorNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/DataNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/DisplaySinkNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/EmissivityNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/EnvLightNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/FilterNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/FilterROByNameNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/FilterROByTypeNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/LocalLightNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/SinkNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/SourceNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/ColorTextureNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/DepthTextureNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/TextureNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/TransparencyNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/UINode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/VolumeNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/VolumeVizualisationNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/WireframeNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/ZGeomPrepassNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/Demo/SimpleNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/Demo/DifferenceNode.hpp>
\ No newline at end of file
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/AccessibilityBufferNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ClearColorNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/LocalLightNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EmissivityNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EnvLightNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/TransparencyNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/UINode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeVizualisationNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/WireframeNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ZGeomPrepassNode.hpp>
+
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sources/DataNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sources/SourceNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sources/ColorTextureNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sources/DepthTextureNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sources/TextureNode.hpp>
+
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sinks/DisplaySinkNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sinks/SinkNode.hpp>
+
+#include <RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterROByNameNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterROByTypeNode.hpp>
+
+#include <RadiumNBR/NodeGraph/PremadeNodes/Compositing/DifferenceNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Compositing/SumNode.hpp>
+
+#include <RadiumNBR/NodeGraph/PremadeNodes/Demo/SimpleNode.hpp>
\ No newline at end of file
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/AccessibilityBufferNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/AccessibilityBufferNode.cpp
similarity index 99%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/AccessibilityBufferNode.cpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/AccessibilityBufferNode.cpp
index 4b5b3d3..99b24e5 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/AccessibilityBufferNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/AccessibilityBufferNode.cpp
@@ -1,4 +1,4 @@
-#include <RadiumNBR/NodeGraph/PremadeNodes/AccessibilityBufferNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/AccessibilityBufferNode.hpp>
 
 #include <Core/Geometry/MeshPrimitives.hpp>
 #include <Engine/Data/Mesh.hpp>
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/AccessibilityBufferNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/AccessibilityBufferNode.hpp
similarity index 100%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/AccessibilityBufferNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/AccessibilityBufferNode.hpp
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/ClearColorNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ClearColorNode.cpp
similarity index 98%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/ClearColorNode.cpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ClearColorNode.cpp
index 292d17a..dbb8624 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/ClearColorNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ClearColorNode.cpp
@@ -1,4 +1,4 @@
-#include <RadiumNBR/NodeGraph/PremadeNodes/ClearColorNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ClearColorNode.hpp>
 
 #include <RadiumNBR/EnvMap.hpp>
 
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/ClearColorNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ClearColorNode.hpp
similarity index 100%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/ClearColorNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ClearColorNode.hpp
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/EmissivityNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EmissivityNode.cpp
similarity index 98%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/EmissivityNode.cpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EmissivityNode.cpp
index f2d308e..5e540d5 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/EmissivityNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EmissivityNode.cpp
@@ -1,4 +1,4 @@
-#include <RadiumNBR/NodeGraph/PremadeNodes/EmissivityNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EmissivityNode.hpp>
 
 #include <Engine/Data/Material.hpp>
 #include <Engine/Data/ShaderConfigFactory.hpp>
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/EmissivityNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EmissivityNode.hpp
similarity index 100%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/EmissivityNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EmissivityNode.hpp
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/EnvLightNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EnvLightNode.cpp
similarity index 99%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/EnvLightNode.cpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EnvLightNode.cpp
index 9893ab7..ccb4c49 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/EnvLightNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EnvLightNode.cpp
@@ -1,4 +1,4 @@
-#include <RadiumNBR/NodeGraph/PremadeNodes/EnvLightNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EnvLightNode.hpp>
 
 #include <Engine/Data/Material.hpp>
 #include <Engine/Data/ShaderConfigFactory.hpp>
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/EnvLightNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EnvLightNode.hpp
similarity index 100%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/EnvLightNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EnvLightNode.hpp
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/LocalLightNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/LocalLightNode.cpp
similarity index 98%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/LocalLightNode.cpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/LocalLightNode.cpp
index bfe98da..7aef796 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/LocalLightNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/LocalLightNode.cpp
@@ -1,4 +1,4 @@
-#include <RadiumNBR/NodeGraph/PremadeNodes/LocalLightNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/LocalLightNode.hpp>
 
 #include <Engine/Data/Material.hpp>
 #include <Engine/Data/ShaderConfigFactory.hpp>
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/LocalLightNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/LocalLightNode.hpp
similarity index 100%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/LocalLightNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/LocalLightNode.hpp
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/TransparencyNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/TransparencyNode.cpp
similarity index 99%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/TransparencyNode.cpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/TransparencyNode.cpp
index 7542d34..5c869f4 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/TransparencyNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/TransparencyNode.cpp
@@ -1,4 +1,4 @@
-#include <RadiumNBR/NodeGraph/PremadeNodes/TransparencyNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/TransparencyNode.hpp>
 
 #include <Core/Geometry/MeshPrimitives.hpp>
 
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/TransparencyNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/TransparencyNode.hpp
similarity index 100%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/TransparencyNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/TransparencyNode.hpp
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/UINode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/UINode.cpp
similarity index 98%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/UINode.cpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/UINode.cpp
index 01c26f1..9842d8e 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/UINode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/UINode.cpp
@@ -1,4 +1,4 @@
-#include <RadiumNBR/NodeGraph/PremadeNodes/UINode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/UINode.hpp>
 
 #include <Engine/Data/Material.hpp>
 #include <Engine/Data/Mesh.hpp>
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/UINode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/UINode.hpp
similarity index 100%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/UINode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/UINode.hpp
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/VolumeNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeNode.cpp
similarity index 99%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/VolumeNode.cpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeNode.cpp
index 9814ab7..432e449 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/VolumeNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeNode.cpp
@@ -1,4 +1,4 @@
-#include <RadiumNBR/NodeGraph/PremadeNodes/VolumeNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeNode.hpp>
 
 #include <Core/Geometry/MeshPrimitives.hpp>
 
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/VolumeNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeNode.hpp
similarity index 100%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/VolumeNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeNode.hpp
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/VolumeVizualisationNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeVizualisationNode.cpp
similarity index 99%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/VolumeVizualisationNode.cpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeVizualisationNode.cpp
index 491ff9b..636264d 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/VolumeVizualisationNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeVizualisationNode.cpp
@@ -1,4 +1,4 @@
-#include <RadiumNBR/NodeGraph/PremadeNodes/VolumeVizualisationNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeVizualisationNode.hpp>
 
 VolumeVizualisationNode::VolumeVizualisationNode( const std::string& name ) : Node( name ) {
     auto portInColor = new PortIn<NodeTypeTexture>( "inColorTexture", this );
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/VolumeVizualisationNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeVizualisationNode.hpp
similarity index 98%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/VolumeVizualisationNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeVizualisationNode.hpp
index 2f94508..2a7ae5b 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/VolumeVizualisationNode.hpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeVizualisationNode.hpp
@@ -55,7 +55,7 @@ class VolumeWithGradientParameterProvider : public Ra::Engine::Data::ShaderParam
     Ra::Core::Geometry::VolumeGrid& m_volumeGrid;
 };
 
-class VolumeVizualisationNode : public Node
+class NodeBasedRenderer_LIBRARY_API VolumeVizualisationNode : public Node
 {
   public:
     explicit VolumeVizualisationNode( const std::string& name );
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/WireframeNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/WireframeNode.cpp
similarity index 99%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/WireframeNode.cpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/WireframeNode.cpp
index 8bf8376..ce345ea 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/WireframeNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/WireframeNode.cpp
@@ -1,4 +1,4 @@
-#include <RadiumNBR/NodeGraph/PremadeNodes/WireframeNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/WireframeNode.hpp>
 
 #include <Engine/Data/Material.hpp>
 #include <Engine/Data/Mesh.hpp>
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/WireframeNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/WireframeNode.hpp
similarity index 100%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/WireframeNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/WireframeNode.hpp
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/ZGeomPrepassNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ZGeomPrepassNode.cpp
similarity index 98%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/ZGeomPrepassNode.cpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ZGeomPrepassNode.cpp
index 6d85d9f..a14515f 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/ZGeomPrepassNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ZGeomPrepassNode.cpp
@@ -1,4 +1,4 @@
-#include <RadiumNBR/NodeGraph/PremadeNodes/ZGeomPrepassNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ZGeomPrepassNode.hpp>
 
 #include <Engine/Data/Material.hpp>
 #include <Engine/Data/ShaderConfigFactory.hpp>
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/ZGeomPrepassNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ZGeomPrepassNode.hpp
similarity index 100%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/ZGeomPrepassNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ZGeomPrepassNode.hpp
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/DisplaySinkNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sinks/DisplaySinkNode.cpp
similarity index 95%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/DisplaySinkNode.cpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sinks/DisplaySinkNode.cpp
index b40dfc9..ead6bf5 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/DisplaySinkNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sinks/DisplaySinkNode.cpp
@@ -1,4 +1,4 @@
-#include <RadiumNBR/NodeGraph/PremadeNodes/DisplaySinkNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sinks/DisplaySinkNode.hpp>
 
 #define MAX_DISPLAY_INPUTS 16
 
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/DisplaySinkNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sinks/DisplaySinkNode.hpp
similarity index 100%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/DisplaySinkNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sinks/DisplaySinkNode.hpp
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/SinkNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sinks/SinkNode.hpp
similarity index 100%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/SinkNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sinks/SinkNode.hpp
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/ColorTextureNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sources/ColorTextureNode.hpp
similarity index 89%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/ColorTextureNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sources/ColorTextureNode.hpp
index 95b3857..8974fcb 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/ColorTextureNode.hpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sources/ColorTextureNode.hpp
@@ -1,5 +1,5 @@
 #pragma once
-#include <RadiumNBR/NodeGraph/PremadeNodes/TextureNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sources/TextureNode.hpp>
 
 class NodeBasedRenderer_LIBRARY_API ColorTextureNode : public TextureNode
 {
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/DataNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sources/DataNode.hpp
similarity index 100%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/DataNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sources/DataNode.hpp
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/DepthTextureNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sources/DepthTextureNode.hpp
similarity index 90%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/DepthTextureNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sources/DepthTextureNode.hpp
index 7eff5fe..7cb55f7 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/DepthTextureNode.hpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sources/DepthTextureNode.hpp
@@ -1,5 +1,5 @@
 #pragma once
-#include <RadiumNBR/NodeGraph/PremadeNodes/TextureNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sources/TextureNode.hpp>
 
 class NodeBasedRenderer_LIBRARY_API DepthTextureNode : public TextureNode
 {
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/SourceNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sources/SourceNode.hpp
similarity index 100%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/SourceNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sources/SourceNode.hpp
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/TextureNode.cpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sources/TextureNode.cpp
similarity index 94%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/TextureNode.cpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sources/TextureNode.cpp
index bf8ea43..ac752da 100644
--- a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/TextureNode.cpp
+++ b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sources/TextureNode.cpp
@@ -1,4 +1,4 @@
-#include <RadiumNBR/NodeGraph/PremadeNodes/TextureNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sources/TextureNode.hpp>
 
 TextureNode::TextureNode( const std::string& name,
                           const Ra::Engine::Data::TextureParameters& texParams ) :
diff --git a/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/TextureNode.hpp b/src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sources/TextureNode.hpp
similarity index 100%
rename from src/libRender/RadiumNBR/NodeGraph/PremadeNodes/TextureNode.hpp
rename to src/libRender/RadiumNBR/NodeGraph/PremadeNodes/Sources/TextureNode.hpp
diff --git a/src/libRender/RadiumNBR/NodeGraph/RenderGraph.hpp b/src/libRender/RadiumNBR/NodeGraph/RenderGraph.hpp
index dad855d..d397bfc 100644
--- a/src/libRender/RadiumNBR/NodeGraph/RenderGraph.hpp
+++ b/src/libRender/RadiumNBR/NodeGraph/RenderGraph.hpp
@@ -1,8 +1,8 @@
 #pragma once
 #include <RadiumNBR/NodeBasedRendererMacro.hpp>
 #include <RadiumNBR/NodeGraph/Node.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/DataNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/DisplaySinkNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sources/DataNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sinks/DisplaySinkNode.hpp>
 
 // TODO : Find a new name, it is not a RENDER graph only anymore
 class NodeBasedRenderer_LIBRARY_API RenderGraph : public Node {
diff --git a/src/libRender/RadiumNBR/Renderer/NodeGraphController.cpp b/src/libRender/RadiumNBR/Renderer/NodeGraphController.cpp
index bed6b0d..342006f 100644
--- a/src/libRender/RadiumNBR/Renderer/NodeGraphController.cpp
+++ b/src/libRender/RadiumNBR/Renderer/NodeGraphController.cpp
@@ -3,22 +3,22 @@
 #include <Engine/RadiumEngine.hpp>
 #include <RadiumNBR/Renderer/NodeGraphController.hpp>
 
-#include <RadiumNBR/NodeGraph/PremadeNodes/AccessibilityBufferNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/ClearColorNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/DataNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/DisplaySinkNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/EmissivityNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/EnvLightNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/FilterNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/LocalLightNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/SinkNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/SourceNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/TextureNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/TransparencyNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/UINode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/VolumeNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/WireframeNode.hpp>
-#include <RadiumNBR/NodeGraph/PremadeNodes/ZGeomPrepassNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/AccessibilityBufferNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ClearColorNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sources/DataNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sinks/DisplaySinkNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EmissivityNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/EnvLightNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Filters/FilterNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/LocalLightNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sinks/SinkNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sources/SourceNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/Sources/TextureNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/TransparencyNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/UINode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/VolumeNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/WireframeNode.hpp>
+#include <RadiumNBR/NodeGraph/PremadeNodes/RenderPasses/ZGeomPrepassNode.hpp>
 
 #include <Engine/Data/ViewingParameters.hpp>
 
-- 
GitLab