From 36607da1cfa886d6bcc39b1daf6392bf136b7c90 Mon Sep 17 00:00:00 2001 From: Mathias Paulin <mathias.paulin@irit.fr> Date: Mon, 14 Feb 2022 14:06:28 +0100 Subject: [PATCH] [librender] begin simplification of nodes management (not yet finalized) --- src/libRender/CMakeLists.txt | 2 - .../RenderGraphEditor/EnvMapSourceModel.cpp | 110 ------------------ .../RenderGraphEditor/EnvMapSourceModel.hpp | 8 -- .../RenderGraphEditor/NodeAdapterModel.hpp | 4 +- .../RenderGraphEditor/NodeAdapterModel.inl | 10 -- 5 files changed, 2 insertions(+), 132 deletions(-) delete mode 100644 src/libRender/RadiumNBR/Gui/RenderGraphEditor/EnvMapSourceModel.cpp delete mode 100644 src/libRender/RadiumNBR/Gui/RenderGraphEditor/EnvMapSourceModel.hpp diff --git a/src/libRender/CMakeLists.txt b/src/libRender/CMakeLists.txt index 69f7d35..b680987 100644 --- a/src/libRender/CMakeLists.txt +++ b/src/libRender/CMakeLists.txt @@ -267,7 +267,6 @@ set(gui_sources RadiumNBR/Gui/RenderGraphEditor/SourceColorTextureModel.cpp RadiumNBR/Gui/RenderGraphEditor/SourceDepthTextureModel.cpp RadiumNBR/Gui/RenderGraphEditor/SourceNodeModel.cpp - RadiumNBR/Gui/RenderGraphEditor/EnvMapSourceModel.cpp RadiumNBR/VolumeVisualization/Gui/VolumeVisualizationGui.cpp RadiumNBR/Gui/MultiPassControllerGui.cpp RadiumNBR/Gui/NodeGraphControllerGui.cpp @@ -295,7 +294,6 @@ set(gui_public_headers RadiumNBR/Gui/RenderGraphEditor/NodeAdapterModel.hpp RadiumNBR/Gui/RenderGraphEditor/SourceNodeModel.hpp - RadiumNBR/Gui/RenderGraphEditor/EnvMapSourceModel.hpp RadiumNBR/Gui/RenderGraphEditor/ConnectionStatusData.hpp RadiumNBR/Gui/RenderGraphEditor/WidgetFactory.hpp diff --git a/src/libRender/RadiumNBR/Gui/RenderGraphEditor/EnvMapSourceModel.cpp b/src/libRender/RadiumNBR/Gui/RenderGraphEditor/EnvMapSourceModel.cpp deleted file mode 100644 index a8371fd..0000000 --- a/src/libRender/RadiumNBR/Gui/RenderGraphEditor/EnvMapSourceModel.cpp +++ /dev/null @@ -1,110 +0,0 @@ -#if 0 -#include <RadiumNBR/Gui/PowerSlider.hpp> -#include <RadiumNBR/Gui/RenderGraphEditor/EnvMapSourceModel.hpp> -#include <RadiumNBR/Gui/RendererPanel.hpp> - -#include <filesystem> - -using namespace RadiumNBR::Gui; - -template <> -NodeBasedRenderer_LIBRARY_API EnvMapData EnvMapSourceModel::getDefault() { - return nullptr; -} - -template <> -NodeBasedRenderer_LIBRARY_API QWidget* EnvMapSourceModel::getWidget() { - auto controlPanel = new RendererPanel( "EnvMap", false ); - auto envmpClbck = [this, controlPanel]( const std::string& files ) { - if ( files.empty() ) { m_node->setData( nullptr ); } - else - { - auto t = ( files.find( ';' ) != files.npos ) - ? RadiumNBR::EnvMap::EnvMapType::ENVMAP_CUBE - : RadiumNBR::EnvMap::EnvMapType::ENVMAP_PFM; - if ( t == RadiumNBR::EnvMap::EnvMapType::ENVMAP_PFM ) - { - auto ext = files.substr( files.size() - 3 ); - if ( ext != "pfm" ) { t = RadiumNBR::EnvMap::EnvMapType::ENVMAP_LATLON; } - } - // for now, only skyboxes are managed - m_node->setData( std::make_shared<RadiumNBR::EnvMap>( files, t, true ) ); - auto slider = controlPanel->findChild<PowerSlider*>( "Strength" ); - if ( slider ) { m_node->getData()->setEnvStrength( slider->value() / 100. ); } - } - }; - controlPanel->addFileInput( - "Image(s)", envmpClbck, "../", "Images (*.png *.jpg *.pfm *.exr *hdr)" ); - - auto strengthClbk = [this]( double v ) { - if ( m_node ) - { - auto* env = m_node->getData().get(); - if ( env ) { env->setEnvStrength( v / 100. ); } - } - }; - float s_init = 100.; - if ( m_node && m_node->getData() ) { s_init = m_node->getData()->getEnvStrength() * 100.; } - controlPanel->addPowerSliderInput( "Strength", strengthClbk, s_init, 0., 100 ); - controlPanel->setVisible( true ); - return controlPanel; -} - -template <> -NodeBasedRenderer_LIBRARY_API QJsonObject EnvMapSourceModel::save() const { - QJsonObject modelJson = NodeDataModel::save(); - modelJson["files"] = m_node->getData()->getImageName().c_str(); - modelJson["type"] = QString::number( int( m_node->getData()->getImageType() ) ); - modelJson["strength"] = QString::number( float( m_node->getData()->getEnvStrength() ) * 100. ); - return modelJson; -} - -template <> -NodeBasedRenderer_LIBRARY_API void EnvMapSourceModel::restore( QJsonObject const& p ) { - auto controlPanel = dynamic_cast<RendererPanel*>( m_widget ); - - QJsonValue n = p["files"]; - std::string files = n.toString().toStdString(); - if ( files.empty() ) { m_node->setData( nullptr ); } - else - { - std::string type = p["type"].toString().toStdString(); - int t = std::stoi( type ); - RadiumNBR::EnvMap::EnvMapType envType; - switch ( t ) - { - case 0: - envType = RadiumNBR::EnvMap::EnvMapType::ENVMAP_PFM; - break; - case 1: - envType = RadiumNBR::EnvMap::EnvMapType::ENVMAP_CUBE; - break; - case 2: - envType = RadiumNBR::EnvMap::EnvMapType::ENVMAP_LATLON; - break; - } - // check if the file exists - bool envmap_exist; - float s = 100.; - if ( envType == RadiumNBR::EnvMap::EnvMapType::ENVMAP_CUBE ) - { - std::string f1 = files.substr( 0, files.find( ';' ) - 1 ); - envmap_exist = std::filesystem::exists( f1 ); - } - else - { envmap_exist = std::filesystem::exists( files ); } - if ( !envmap_exist ) { m_node->setData( nullptr ); } - else - { - // for now, only skyboxes are managed - m_node->setData( std::make_shared<RadiumNBR::EnvMap>( files, envType, true ) ); - s = std::atof( p["strength"].toString().toStdString().c_str() ); - m_node->getData()->setEnvStrength( s / 100. ); - } - // This assume thereis only one powerslider in the control panel - auto slider = controlPanel->findChild<PowerSlider*>( "Strength" ); - slider->setValue( s ); - } -} - -#endif diff --git a/src/libRender/RadiumNBR/Gui/RenderGraphEditor/EnvMapSourceModel.hpp b/src/libRender/RadiumNBR/Gui/RenderGraphEditor/EnvMapSourceModel.hpp deleted file mode 100644 index d48afe2..0000000 --- a/src/libRender/RadiumNBR/Gui/RenderGraphEditor/EnvMapSourceModel.hpp +++ /dev/null @@ -1,8 +0,0 @@ -#if 0 -#pragma once -#include <RadiumNBR/Gui/RenderGraphEditor/SourceNodeModel.hpp> -#include <RadiumNBR/EnvMap.hpp> - -using EnvMapData = std::shared_ptr<RadiumNBR::EnvMap>; -using EnvMapSourceModel = SourceNodeModel<EnvMapData>; -#endif diff --git a/src/libRender/RadiumNBR/Gui/RenderGraphEditor/NodeAdapterModel.hpp b/src/libRender/RadiumNBR/Gui/RenderGraphEditor/NodeAdapterModel.hpp index 1c5ca10..22550e4 100644 --- a/src/libRender/RadiumNBR/Gui/RenderGraphEditor/NodeAdapterModel.hpp +++ b/src/libRender/RadiumNBR/Gui/RenderGraphEditor/NodeAdapterModel.hpp @@ -202,8 +202,8 @@ class NodeAdapterModel : public QtNodes::NodeDataModel mutable QString m_validationError = QString( "" ); public: - QJsonObject save() const override; - void restore(QJsonObject const & p) override; + QJsonObject save() const override { return QtNodes::NodeDataModel::save(); } + void restore(QJsonObject const & p) override { QtNodes::NodeDataModel::restore(p); } }; #include <RadiumNBR/Gui/RenderGraphEditor/NodeAdapterModel.inl> diff --git a/src/libRender/RadiumNBR/Gui/RenderGraphEditor/NodeAdapterModel.inl b/src/libRender/RadiumNBR/Gui/RenderGraphEditor/NodeAdapterModel.inl index a13f4f4..328bd2b 100644 --- a/src/libRender/RadiumNBR/Gui/RenderGraphEditor/NodeAdapterModel.inl +++ b/src/libRender/RadiumNBR/Gui/RenderGraphEditor/NodeAdapterModel.inl @@ -1,14 +1,4 @@ -template <typename T> -QJsonObject NodeAdapterModel<T>::save() const { - return QtNodes::NodeDataModel::save(); -} - -template <typename T> -void NodeAdapterModel<T>::restore( const QJsonObject& p ) { - QtNodes::NodeDataModel::restore(p); -} - template <> void NodeAdapterModel<DataNode<NodeTypeRenderObject>>::init() { m_node = m_renderGraph->getDataNode<NodeTypeRenderObject>(); -- GitLab