diff --git a/CMakeLists.txt b/CMakeLists.txt index 08ed942b73d50e8ebf0a797d85cad7ff5eabee06..6e6fb5d58cfacc95a28db3c14a6a83fd89385ff9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,7 +9,7 @@ cmake_minimum_required( VERSION 3.1 FATAL_ERROR ) # visimpl project and version -project( visimpl VERSION 1.8.5 ) +project( visimpl VERSION 1.8.6 ) set( visimpl_VERSION_ABI 6 ) SET( VISIMPL_LICENSE "GPL") diff --git a/visimpl/DomainManager.cpp b/visimpl/DomainManager.cpp index fb28192bad4cb302e273f08d3dc52a83aafddfb3..f1de16c84853f244bbfaa96446dbac49c4b07887 100644 --- a/visimpl/DomainManager.cpp +++ b/visimpl/DomainManager.cpp @@ -7,6 +7,10 @@ #include <utility> +const visimpl::TSizeFunction DEFAULT_PARTICLE_SIZE{{ 0.0f , 50.0f }, + { 1.0f , 15.0f }}; + + namespace visimpl { @@ -46,12 +50,8 @@ namespace visimpl colors.emplace_back( 0.7f , glm::vec4( 1.0f , 1.0f , 0.0f , 0.5f )); colors.emplace_back( 1.0f , glm::vec4( 0.0f , 0.0f , 1.0f , 0.5f )); - TSizeFunction sizes; - sizes.emplace_back( 0.0f , 6.0f ); - sizes.emplace_back( 1.0f , 18.0f ); - _selectionModel = std::make_shared< StaticGradientModel >( - camera , leftPlane , rightPlane , sizes , colors , + camera , leftPlane , rightPlane , DEFAULT_PARTICLE_SIZE , colors , true , false , 0.0f , _decay ); _defaultProgram.loadFromText( @@ -335,11 +335,9 @@ namespace visimpl _currentRenderer , _selectionModel->isClippingEnabled( )); - const TSizeFunction defaultSizes{{ 0.0f , 50.0f } , - { 1.0f , 15.0f }}; - - group->getModel( )->setParticleSize( defaultSizes ); + group->getModel( )->setParticleSize( DEFAULT_PARTICLE_SIZE ); group->getModel( )->setAccumulativeMode( _accumulativeMode ); + group->sizeFunction(DEFAULT_PARTICLE_SIZE); std::vector <uint32_t> ids; std::vector <NeuronParticle> particles; @@ -373,7 +371,10 @@ namespace visimpl _currentRenderer , _selectionModel->isClippingEnabled( )); + group->getModel( )->setParticleSize( DEFAULT_PARTICLE_SIZE ); group->getModel( )->setAccumulativeMode( _accumulativeMode ); + group->sizeFunction(DEFAULT_PARTICLE_SIZE); + std::vector <NeuronParticle> particles; for ( const auto& gid: _selectionGids ) diff --git a/visimpl/MainWindow.cpp b/visimpl/MainWindow.cpp index 5e5d534c31389281245d0c3c6feb1673d56f0b32..cb9706a57612a31ab6c854127ab4693945b035fa 100644 --- a/visimpl/MainWindow.cpp +++ b/visimpl/MainWindow.cpp @@ -1406,7 +1406,7 @@ namespace visimpl connect( _tfWidget , SIGNAL( colorChanged( void )) , this , SLOT( UpdateSimulationColorMapping( void )) ); - connect( _tfWidget , SIGNAL( colorChanged( void )) , this , + connect( _tfWidget , SIGNAL( sizeChanged( void )) , this , SLOT( UpdateSimulationSizeFunction( void )) ); connect( _tfWidget , SIGNAL( previewColor( void )) , this , SLOT( PreviewSimulationColorMapping( void )) ); @@ -2020,6 +2020,8 @@ namespace visimpl connect( tfWidget , SIGNAL( colorChanged( )) , this , SLOT( onGroupColorChanged( )) ); + connect( tfWidget , SIGNAL( sizeChanged( )) , + this , SLOT( onGroupColorChanged( )) ); connect( tfWidget , SIGNAL( previewColor( )) , this , SLOT( onGroupPreview( )) ); @@ -2426,7 +2428,7 @@ namespace visimpl if ( tfw ) { auto groupName = tfw->property( GROUP_NAME_ ).toString( ); - updateGroupColors( groupName.toStdString( ) , tfw->getColors( ) , + updateGroup( groupName.toStdString( ) , tfw->getColors( ) , tfw->getSizeFunction( )); } } @@ -2440,13 +2442,13 @@ namespace visimpl auto groupName = tfw->property( GROUP_NAME_ ).toString( ); if ( !ok ) return; - updateGroupColors( groupName.toStdString( ) , tfw->getPreviewColors( ) , + updateGroup( groupName.toStdString( ) , tfw->getPreviewColors( ) , tfw->getSizePreview( )); } } void - MainWindow::updateGroupColors( std::string name , const TTransferFunction& t , + MainWindow::updateGroup( std::string name , const TTransferFunction& t , const TSizeFunction& s ) { const auto& groups = _domainManager->getGroups( ); @@ -2850,7 +2852,7 @@ namespace visimpl }; std::for_each( sizePairs.cbegin( ) , sizePairs.cend( ) , addSizes ); - updateGroupColors( name.toStdString( ) , function , sizes ); + updateGroup( name.toStdString( ) , function , sizes ); auto container = std::get< gr_container >( _groupsVisButtons.at( idx )); auto tfw = qobject_cast< TransferFunctionWidget* >( container->layout( )->itemAt( 0 )->widget( )); diff --git a/visimpl/MainWindow.h b/visimpl/MainWindow.h index a3626ed05ac111fb0edb98b15f4e8085747f7f6b..ae8d8548251130dab36f9a64e6479a7b6348d1e9 100644 --- a/visimpl/MainWindow.h +++ b/visimpl/MainWindow.h @@ -355,13 +355,13 @@ namespace visimpl bool _showDialog( QColor& current , const QString& message = "" ); - /** \brief Helper to update a group representations colors. + /** \brief Helper to update a group colors and size. * \param[in] name the name of the group. * \param[in] t Transfer function. * \param[in] s Size function. * */ - void updateGroupColors( std::string name , const TTransferFunction& t , + void updateGroup( std::string name , const TTransferFunction& t , const TSizeFunction& s ); virtual void closeEvent( QCloseEvent* e ) override;