From 5a51d06ec8f0210f51e65abfde9f868ab7bfa8ef Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Mon, 25 Aug 2014 13:16:04 +0300 Subject: Add alpha multiplier to QCustom3DVolume api MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I856c4166513f6d6f7b73fd52bc46d52ab1b8fdff Reviewed-by: Tomi Korpipää Reviewed-by: Mika Salmela --- examples/datavisualization/volumetric/main.cpp | 41 +++++++++++++++++++------- 1 file changed, 31 insertions(+), 10 deletions(-) (limited to 'examples/datavisualization/volumetric/main.cpp') diff --git a/examples/datavisualization/volumetric/main.cpp b/examples/datavisualization/volumetric/main.cpp index 5a90070e..84062969 100644 --- a/examples/datavisualization/volumetric/main.cpp +++ b/examples/datavisualization/volumetric/main.cpp @@ -36,16 +36,18 @@ int main(int argc, char **argv) QWidget *container = QWidget::createWindowContainer(graph); QSize screenSize = graph->screen()->size(); - container->setMinimumSize(QSize(screenSize.width() / 2, screenSize.height() / 1.5)); + container->setMinimumSize(QSize(screenSize.width() / 3, screenSize.height() / 3)); container->setMaximumSize(screenSize); container->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); container->setFocusPolicy(Qt::StrongFocus); - QWidget *widget = new QWidget; + QWidget *widget = new QWidget(); QHBoxLayout *hLayout = new QHBoxLayout(widget); QVBoxLayout *vLayout = new QVBoxLayout(); + QVBoxLayout *vLayout2 = new QVBoxLayout(); hLayout->addWidget(container, 1); hLayout->addLayout(vLayout); + hLayout->addLayout(vLayout2); widget->setWindowTitle(QStringLiteral("Volumetric Object Example")); @@ -122,10 +124,17 @@ int main(int argc, char **argv) sliceImageYLabel->setScaledContents(true); sliceImageZLabel->setScaledContents(true); - vLayout->addWidget(fpsCheckBox); - vLayout->addWidget(fpsLabel); - vLayout->addWidget(textureDetailGroupBox); - vLayout->addWidget(colorTableCheckBox); + QSlider *alphaMultiplierSlider = new QSlider(Qt::Horizontal, widget); + alphaMultiplierSlider->setMinimum(0); + alphaMultiplierSlider->setMaximum(139); + alphaMultiplierSlider->setValue(100); + alphaMultiplierSlider->setEnabled(true); + QLabel *alphaMultiplierLabel = new QLabel(QStringLiteral("Alpha multiplier: 1.0")); + + QCheckBox *preserveOpacityCheckBox = new QCheckBox(widget); + preserveOpacityCheckBox->setText(QStringLiteral("Preserve opacity")); + preserveOpacityCheckBox->setChecked(true); + vLayout->addWidget(sliceXCheckBox); vLayout->addWidget(sliceXSlider); vLayout->addWidget(sliceImageXLabel); @@ -135,6 +144,13 @@ int main(int argc, char **argv) vLayout->addWidget(sliceZCheckBox); vLayout->addWidget(sliceZSlider); vLayout->addWidget(sliceImageZLabel, 1, Qt::AlignTop); + vLayout2->addWidget(fpsCheckBox); + vLayout2->addWidget(fpsLabel); + vLayout2->addWidget(textureDetailGroupBox); + vLayout2->addWidget(colorTableCheckBox); + vLayout2->addWidget(alphaMultiplierLabel); + vLayout2->addWidget(alphaMultiplierSlider); + vLayout2->addWidget(preserveOpacityCheckBox, 1, Qt::AlignTop); VolumetricModifier *modifier = new VolumetricModifier(graph); modifier->setFpsLabel(fpsLabel); @@ -142,6 +158,7 @@ int main(int argc, char **argv) modifier->setHighDetailRB(highDetailRB); modifier->setSliceSliders(sliceXSlider, sliceYSlider, sliceZSlider); modifier->setSliceLabels(sliceImageXLabel, sliceImageYLabel, sliceImageZLabel); + modifier->setAlphaMultiplierLabel(alphaMultiplierLabel); QObject::connect(fpsCheckBox, &QCheckBox::stateChanged, modifier, &VolumetricModifier::setFpsMeasurement); @@ -157,14 +174,18 @@ int main(int argc, char **argv) &VolumetricModifier::adjustSliceY); QObject::connect(sliceZSlider, &QSlider::valueChanged, modifier, &VolumetricModifier::adjustSliceZ); - QObject::connect(lowDetailRB, &QRadioButton::toggled, modifier, + QObject::connect(lowDetailRB, &QRadioButton::toggled, modifier, &VolumetricModifier::toggleLowDetail); - QObject::connect(mediumDetailRB, &QRadioButton::toggled, modifier, + QObject::connect(mediumDetailRB, &QRadioButton::toggled, modifier, &VolumetricModifier::toggleMediumDetail); - QObject::connect(highDetailRB, &QRadioButton::toggled, modifier, + QObject::connect(highDetailRB, &QRadioButton::toggled, modifier, &VolumetricModifier::toggleHighDetail); - QObject::connect(colorTableCheckBox, &QCheckBox::stateChanged, modifier, + QObject::connect(colorTableCheckBox, &QCheckBox::stateChanged, modifier, &VolumetricModifier::changeColorTable); + QObject::connect(preserveOpacityCheckBox, &QCheckBox::stateChanged, modifier, + &VolumetricModifier::setPreserveOpacity); + QObject::connect(alphaMultiplierSlider, &QSlider::valueChanged, modifier, + &VolumetricModifier::adjustAlphaMultiplier); widget->show(); return app.exec(); -- cgit v1.2.3