Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
96 changes: 96 additions & 0 deletions .github/workflows/pull-request-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
name: Compile Radium Plugins

defaults:
run:
shell: bash

on:
pull_request:
branches:
- master
env:
ext-dir: ${GITHUB_WORKSPACE//\\//}/external/install/

jobs:
build:
runs-on: ${{ matrix.config.os }}
strategy:
fail-fast: false
matrix:
config:
- { name: "Windows MSVC", suffix: "Windows", os: windows-latest, cc: "cl.exe", cxx: "cl.exe" }
- { name: "Ubuntu gcc", suffix: "Linux-gcc8", os: ubuntu-18.04, cc: "gcc-8", cxx: "g++-8" }
- { name: "Ubuntu gcc", suffix: "Linux-gcc10", os: ubuntu-20.04, cc: "gcc-10", cxx: "g++-10" }
- { name: "MacOS clang", suffix: "macOS", os: macos-latest, cc: "clang", cxx: "clang++" }

steps:
- uses: seanmiddleditch/gha-setup-ninja@master

- name: Add msbuild to PATH
uses: seanmiddleditch/gha-setup-vsdevenv@master
if: runner.os == 'Windows'

- name: Cache Qt
id: cache-qt
uses: actions/cache@v2
with:
path: ../Qt
key: ${{ runner.os }}-${{ matrix.config.cc }}-QtCache

- name: Install Qt
uses: jurplel/install-qt-action@v2
with:
cached: ${{ steps.cache-qt.outputs.cache-hit }}

- name: Prepare directories
run: |
mkdir -p install/
mkdir -p src/
mkdir -p src/Radium-Plugins
mkdir -p build/Radium-Engine
mkdir -p build/Radium-Plugins
mkdir -p external/install/
mkdir -p external/build/

- name: Clone Radium
run: |
cd src && git clone https://github.com/STORM-IRIT/Radium-Engine.git --single-branch && cd ..

- name: Cache externals
id: cache-external
uses: actions/cache@v2
with:
path: external
key: ${{ runner.os }}-${{ matrix.config.cc }}-external-${{ hashFiles('src/Radium-Engine/external/**/CMakeLists.txt') }}

- name: Configure and build external
if: steps.cache-external.outputs.cache-hit != 'true'
run: |
cd external/build/
cmake ../../src/Radium-Engine/external -GNinja -DCMAKE_CXX_COMPILER=${{ matrix.config.cxx }} -DCMAKE_C_COMPILER=${{ matrix.config.cc }} -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXECUTE_PROCESS_COMMAND_ECHO=STDOUT -DRADIUM_UPDATE_VERSION=OFF -DRADIUM_EXTERNAL_CMAKE_INSTALL_MESSAGE=LAZY -DCMAKE_INSTALL_PREFIX=../install/
cmake --build . --parallel --config Release

- name: Configure Radium
run: |
cd build/Radium-Engine
cmake ../../src/Radium-Engine -GNinja -DCMAKE_CXX_COMPILER=${{ matrix.config.cxx }} -DCMAKE_C_COMPILER=${{ matrix.config.cc }} -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../../install/ -DCMAKE_EXECUTE_PROCESS_COMMAND_ECHO=STDOUT -DRADIUM_UPDATE_VERSION=OFF -DRADIUM_EXTERNAL_CMAKE_INSTALL_MESSAGE=LAZY -DRADIUM_INSTALL_DOC=OFF -DRADIUM_ENABLE_TESTING=ON -DEigen3_DIR=${{env.ext-dir}}/share/eigen3/cmake/ -DOpenMesh_DIR=${{env.ext-dir}}/share/OpenMesh/cmake/ -Dcpplocate_DIR=${{env.ext-dir}}/share/cpplocate/ -Dglm_DIR=${{env.ext-dir}}/lib/cmake/glm/ -Dglbinding_DIR=${{env.ext-dir}}/share/glbinding/ -Dglobjects_DIR=${{env.ext-dir}}/share/globjects/ -Dstb_DIR=${{env.ext-dir}}/include/stb/ -Dassimp_DIR=${{env.ext-dir}}/lib/cmake/assimp-5.0/ -Dtinyply_DIR=${{env.ext-dir}}/lib/cmake/tinyply/

- name: Build Radium
run: |
cd build/Radium-Engine
cmake --build . --parallel --config Release --target install

- name: Clone Radium Plugins
uses: actions/checkout@master
with:
path: src/Radium-Plugins

- name: Configure Radium Plugins
run: |
cd build/Radium-Plugins
cmake ../../src/Radium-Plugins -GNinja -DCMAKE_CXX_COMPILER=${{ matrix.config.cxx }} -DCMAKE_C_COMPILER=${{ matrix.config.cc }} -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../../install/ -DRadium_DIR=../../install/lib/cmake/Radium

- name: Build Radium Plugins
run: |
cd build/Radium-Plugins
cmake --build . --parallel --config Release --target install
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ endif ()

option(INSTALL_IN_RADIUM_BUNDLE "Install plugins in Radium-Bundle dir" OFF)

add_subdirectory(fake-toon)
#add_subdirectory(fake-toon)
add_subdirectory(laplacian-smoothing)
add_subdirectory(CameraManip)
add_subdirectory(Dummy)
Expand Down
7 changes: 3 additions & 4 deletions CameraManip/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ set_property(GLOBAL PROPERTY USE_FOLDERS ON)
project(CameraManip VERSION 1.0.0 LANGUAGES CXX)

# Qt stuff
find_package(Radium REQUIRED Core Engine PluginBase GuiBase IO)
find_package(Radium REQUIRED Core Engine PluginBase Gui IO)
find_package(Qt5 COMPONENTS Core Widgets REQUIRED)
set(Qt5_LIBRARIES Qt5::Core Qt5::Widgets)
set(CMAKE_AUTOMOC ON)
Expand All @@ -28,7 +28,7 @@ set(cm_sources
set(cm_headers
src/CameraManipPlugin.hpp
src/CameraManipPluginMacros.hpp
src/UI/CameraManipUI.h
src/UI/CameraManipUI.hpp
)

set(cm_markdowns
Expand Down Expand Up @@ -61,7 +61,7 @@ target_link_libraries(${PROJECT_NAME} PUBLIC
Radium::Core
Radium::Engine
Radium::PluginBase
Radium::GuiBase
Radium::Gui
${Qt5_LIBRARIES}
)

Expand All @@ -73,6 +73,5 @@ endif(INSTALL_IN_RADIUM_BUNDLE)

configure_radium_plugin(
NAME ${PROJECT_NAME}
RESOURCES ${CMAKE_CURRENT_SOURCE_DIR}/Resources/Shaders
"${ARGS}"
)
30 changes: 15 additions & 15 deletions CameraManip/src/CameraManipPlugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,17 @@
#include <QFileDialog>
#include <QSettings>

#include <Engine/ItemModel/ItemEntry.hpp>
#include <Engine/Managers/CameraManager/CameraManager.hpp>
#include <Engine/Managers/EntityManager/EntityManager.hpp>
#include <Engine/Renderer/Camera/Camera.hpp>
#include <Engine/Scene/ItemEntry.hpp>
#include <Engine/Scene/CameraManager.hpp>
#include <Engine/Scene/EntityManager.hpp>
#include <Engine/Scene/Camera.hpp>

#include <GuiBase/SelectionManager/SelectionManager.hpp>
#include <GuiBase/Viewer/TrackballCameraManipulator.hpp>
#include <GuiBase/Viewer/Viewer.hpp>
#include <Gui/SelectionManager/SelectionManager.hpp>
#include <Gui/Viewer/TrackballCameraManipulator.hpp>
#include <Gui/Viewer/Viewer.hpp>

#include "ui_CameraManipUI.h"
#include <UI/CameraManipUI.h>
#include <UI/CameraManipUI.hpp>

namespace CameraManipPlugin {

Expand All @@ -36,7 +36,7 @@ void CameraManipPluginC::registerPlugin( const Ra::Plugins::Context& context ) {
m_selectionManager = context.m_selectionManager;
m_viewer = context.m_viewer;
connect( m_selectionManager,
&Ra::GuiBase::SelectionManager::currentChanged,
&Ra::Gui::SelectionManager::currentChanged,
this,
&CameraManipPluginC::onCurrentChanged );
connect( this,
Expand Down Expand Up @@ -85,11 +85,11 @@ QAction* CameraManipPluginC::getAction( int id ) {
void CameraManipPluginC::useSelectedCamera() {
if ( m_selectionManager->hasSelection() )
{
const Ra::Engine::ItemEntry& ent = m_selectionManager->currentItem();
const Ra::Engine::Scene::ItemEntry& ent = m_selectionManager->currentItem();
if ( ent.m_component == nullptr ) { return; }
if ( ent.m_component->getName().compare( 0, 7, "CAMERA_" ) == 0 )
{
Ra::Engine::Camera* camera = static_cast<Ra::Engine::Camera*>( ent.m_component );
Ra::Engine::Scene::Camera* camera = static_cast<Ra::Engine::Scene::Camera*>( ent.m_component );
m_viewer->getCameraManipulator()->getCamera()->show(true );
m_viewer->getCameraManipulator()->setCamera(camera );
emit askForUpdate();
Expand Down Expand Up @@ -125,11 +125,11 @@ void CameraManipPluginC::saveCamera() {
void CameraManipPluginC::createCamera() {
// Create new entity with camera component only
auto camMngr =
static_cast<Ra::Engine::CameraManager*>( m_engine->getSystem( "DefaultCameraManager" ) );
static_cast<Ra::Engine::Scene::CameraManager*>( m_engine->getSystem( "DefaultCameraManager" ) );
std::string camName = "CAMERA_" + std::to_string( camMngr->count() );
auto entity = m_engine->getEntityManager()->createEntity( camName );
Ra::Engine::Camera* cam =
new Ra::Engine::Camera( entity, camName, m_viewer->width(), m_viewer->height() );
Ra::Engine::Scene::Camera* cam =
new Ra::Engine::Scene::Camera( entity, camName, m_viewer->width(), m_viewer->height() );
// Copy Camera data
auto manip = static_cast<Ra::Gui::TrackballCameraManipulator*>( m_viewer->getCameraManipulator() );
auto camera = manip->getCamera();
Expand All @@ -150,7 +150,7 @@ void CameraManipPluginC::onCurrentChanged( const QModelIndex& current, const QMo
m_widget->ui->m_useCamera->setEnabled( false );
if ( m_selectionManager->hasSelection() )
{
const Ra::Engine::ItemEntry& ent = m_selectionManager->currentItem();
const Ra::Engine::Scene::ItemEntry& ent = m_selectionManager->currentItem();
if ( ent.m_component == nullptr ) { return; }
if ( ent.m_component->getName().compare( 0, 7, "CAMERA_" ) == 0 )
{ m_widget->ui->m_useCamera->setEnabled( true ); }
Expand Down
4 changes: 2 additions & 2 deletions CameraManip/src/CameraManipPlugin.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#include <PluginBase/RadiumPluginInterface.hpp>
#include <QObject>

#include <UI/CameraManipUI.h>
#include <UI/CameraManipUI.hpp>

#include <CameraManipPluginMacros.hpp>

Expand Down Expand Up @@ -56,7 +56,7 @@ class CameraManipPluginC : public QObject, Ra::Plugins::RadiumPluginInterface
CameraManipUI* m_widget;

Ra::Engine::RadiumEngine* m_engine;
Ra::GuiBase::SelectionManager* m_selectionManager;
Ra::Gui::SelectionManager* m_selectionManager;
Ra::Gui::Viewer* m_viewer;
};

Expand Down
2 changes: 1 addition & 1 deletion CameraManip/src/UI/CameraManipUI.cpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include "CameraManipUI.h"
#include "CameraManipUI.hpp"

#include "ui_CameraManipUI.h"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

#include <QFrame>

#include <GuiBase/Utils/PickingManager.hpp>
#include <Gui/Utils/PickingManager.hpp>

namespace UI {
class CameraManipUI;
Expand Down
1 change: 0 additions & 1 deletion Dummy/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,5 @@ endif(INSTALL_IN_RADIUM_BUNDLE)

configure_radium_plugin(
NAME ${PROJECT_NAME}
RESOURCES ${CMAKE_CURRENT_SOURCE_DIR}/Resources/Shaders
"${ARGS}"
)
14 changes: 7 additions & 7 deletions Dummy/src/DummyComponent.cpp
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
#include "DummyComponent.hpp"

#include <Engine/Renderer/Mesh/Mesh.hpp>
#include <Engine/Renderer/RenderObject/Primitives/DrawPrimitives.hpp>
#include <Engine/Renderer/RenderObject/RenderObjectManager.hpp>
#include <Engine/Renderer/RenderTechnique/RenderTechnique.hpp>
#include <Engine/Renderer/RenderTechnique/ShaderConfiguration.hpp>
#include <Engine/Renderer/RenderTechnique/ShaderProgramManager.hpp>
#include <Engine/Data/Mesh.hpp>
#include <Engine/Data/DrawPrimitives.hpp>
#include <Engine/Rendering/RenderObjectManager.hpp>
#include <Engine/Rendering/RenderTechnique.hpp>
#include <Engine/Data/ShaderConfiguration.hpp>
#include <Engine/Data/ShaderProgramManager.hpp>

namespace DummyPlugin {
DummyComponent::DummyComponent( const std::string& name, Ra::Engine::Entity* entity ) : Ra::Engine::Component( name, entity ) {}
DummyComponent::DummyComponent( const std::string& name, Ra::Engine::Scene::Entity* entity ) : Ra::Engine::Scene::Component( name, entity ) {}

DummyComponent::~DummyComponent() {}

Expand Down
6 changes: 3 additions & 3 deletions Dummy/src/DummyComponent.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

#include <DummyPluginMacros.hpp>

#include <Engine/Component/Component.hpp>
#include <Engine/Scene/Component.hpp>

namespace Ra {
namespace Engine {
Expand All @@ -12,10 +12,10 @@ struct RenderTechnique;
} // namespace Ra

namespace DummyPlugin {
class DUMMY_PLUGIN_API DummyComponent : public Ra::Engine::Component
class DUMMY_PLUGIN_API DummyComponent : public Ra::Engine::Scene::Component
{
public:
DummyComponent( const std::string& name, Ra::Engine::Entity* entity );
DummyComponent( const std::string& name, Ra::Engine::Scene::Entity* entity );
virtual ~DummyComponent();

virtual void initialize() override;
Expand Down
20 changes: 10 additions & 10 deletions Dummy/src/DummyPlugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,19 @@

namespace DummyPlugin {

DummyPlugin::~DummyPlugin() {}
DummyPluginC::~DummyPluginC() {}

void DummyPlugin::registerPlugin( const Ra::Plugins::Context& context ) {
void DummyPluginC::registerPlugin( const Ra::Plugins::Context& context ) {
DummySystem* system = new DummySystem;
context.m_engine->registerSystem( "DummySystem", system );
}

bool DummyPlugin::doAddWidget( QString& name ) {
bool DummyPluginC::doAddWidget( QString& name ) {
name = "Dummy Mesh";
return true;
}

QWidget* DummyPlugin::getWidget() {
QWidget* DummyPluginC::getWidget() {
QWidget* widget = new QWidget;

m_label = new QLabel( "I am a dummy label", widget );
Expand All @@ -37,16 +37,16 @@ QWidget* DummyPlugin::getWidget() {
layout->addWidget( m_label );
layout->addWidget( button );

connect( button, &QPushButton::pressed, this, &DummyPlugin::sayHello );
connect( button, &QPushButton::pressed, this, &DummyPluginC::sayHello );

return widget;
}

bool DummyPlugin::doAddMenu() {
bool DummyPluginC::doAddMenu() {
return true;
}

QMenu* DummyPlugin::getMenu() {
QMenu* DummyPluginC::getMenu() {
QMenu* menu = new QMenu( "Dummy" );

QAction* a1 = menu->addAction( "Hello there" );
Expand All @@ -58,15 +58,15 @@ QMenu* DummyPlugin::getMenu() {
return menu;
}

bool DummyPlugin::doAddAction( int& /*nb*/ ) {
bool DummyPluginC::doAddAction( int& /*nb*/ ) {
return false;
}

QAction* DummyPlugin::getAction( int /*id*/ ) {
QAction* DummyPluginC::getAction( int /*id*/ ) {
return nullptr;
}

void DummyPlugin::sayHello() {
void DummyPluginC::sayHello() {
m_label->setText( "I have been clicked at least once !" );
QMessageBox::warning( nullptr, "Dummy Plugin", "Hello, Radium World !" );
}
Expand Down
6 changes: 3 additions & 3 deletions Dummy/src/DummyPlugin.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,15 @@ class RadiumEngine;
namespace DummyPlugin {
class DummySystem;

class DummyPlugin : public QObject, Ra::Plugins::RadiumPluginInterface
class DummyPluginC : public QObject, Ra::Plugins::RadiumPluginInterface
{
Q_OBJECT
Q_RADIUM_PLUGIN_METADATA
Q_INTERFACES( Ra::Plugins::RadiumPluginInterface )

public:
DummyPlugin() = default;
~DummyPlugin();
DummyPluginC() = default;
~DummyPluginC();

void registerPlugin( const Ra::Plugins::Context& context ) override;

Expand Down
Loading