TransferFunctionEditor::TransferFunctionEditor() { renderer = NULL; //! Load color maps. loadColorMaps(); //! Setup UI elments. QVBoxLayout * layout = new QVBoxLayout(); layout->setSizeConstraint(QLayout::SetMinimumSize); setLayout(layout); //! Form layout. QWidget *formWidget = new QWidget(); QGridLayout *gridLayout = new QGridLayout(); formWidget->setLayout(gridLayout); layout->addWidget(formWidget); //! Color map choice. for(unsigned int i=0; i<colorMaps.size(); i++) { std::string name = cmap_name(colorMaps[i].getName()); colorMapComboBox.addItem(name.c_str()); } gridLayout->addWidget(new QLabel("Colormap"), 0, 0, 1, 1); gridLayout->addWidget(&colorMapComboBox, 0, 1, 1, 3); gridLayout->addWidget(new QLabel("Min"), 1, 0, 1, 1); rangeMin.setValidator(new QDoubleValidator()); connect(&rangeMin, SIGNAL(returnPressed()), this, SLOT(rangeMinChanged())); gridLayout->addWidget(&rangeMin, 1, 1, 1, 1); gridLayout->addWidget(new QLabel("Max"), 1, 2, 1, 1); rangeMax.setValidator(new QDoubleValidator()); connect(&rangeMax, SIGNAL(returnPressed()), this, SLOT(rangeMaxChanged())); gridLayout->addWidget(&rangeMax, 1, 3, 1, 1); //! Widget containing opacity transfer function widget and scaling slider. QWidget * transferFunctionAlphaGroup = new QWidget(); QHBoxLayout * hboxLayout = new QHBoxLayout(); transferFunctionAlphaGroup->setLayout(hboxLayout); //! Opacity transfer function widget. hboxLayout->addWidget(&transferFunctionAlphaWidget); //! Opacity scaling slider, defaults to median value in range. transferFunctionAlphaScalingSlider.setValue(int(transferFunction.GetScale() * (transferFunctionAlphaScalingSlider.minimum() + transferFunctionAlphaScalingSlider.maximum()))); transferFunctionAlphaScalingSlider.setOrientation(Qt::Vertical); hboxLayout->addWidget(&transferFunctionAlphaScalingSlider); gridLayout->addWidget(transferFunctionAlphaGroup, 2, 0, 1, 4); connect(&colorMapComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(setColorMapIndex(int))); connect(&transferFunctionAlphaWidget, SIGNAL(transferFunctionChanged()), this, SLOT(alphaWidgetChanged())); connect(&transferFunctionAlphaScalingSlider, SIGNAL(valueChanged(int)), this, SLOT(alphaWidgetChanged())); setColorMapIndex(0); }
void Colormap_continuous_controller::init_colormap_selector(){ SmartPtr<Named_interface> ni = Root::instance()->interface( colorscale_manager ); Manager* cmap_manager = dynamic_cast<Manager*>( ni.raw_ptr() ); appli_assert( cmap_manager ); for( Manager::interface_iterator cmap_it = cmap_manager->begin_interfaces(); cmap_it != cmap_manager->end_interfaces(); ++cmap_it ) { QString cmap_name( cmap_manager->name( cmap_it->raw_ptr() ).c_str() ); colormap_selector_->addItem( cmap_name ); } int id = colormap_selector_->findText("rainbow"); if(id >= 0 ) { colormap_selector_->setCurrentIndex(id); } }
void TransferFunctionEditor::addColorMap(VColorMap cmap) { colorMaps.push_back(cmap); colorMapComboBox.addItem(cmap_name(colorMaps[colorMaps.size()-1].getName()).c_str()); colorMapComboBox.setCurrentIndex(colorMaps.size()-1); }