16.12.2021, 9:00 - 11:00: Due to updates GitLab may be unavailable for some minutes between 09:00 and 11:00.

Commit 75d4690b authored by Christian Schulte zu Berge's avatar Christian Schulte zu Berge
Browse files

Merge branch 'metaproperty' of /mnt/bigone/git/repositories/berge/campvis into development

parents 25b57767 549d6b31
......@@ -51,6 +51,7 @@ SET(CampvisApplicationToBeMocced
gui/properties/floatpropertywidget.h
gui/properties/geometry1dtransferfunctioneditor.h
gui/properties/geometry2dtransferfunctioneditor.h
gui/properties/metapropertywidget.h
gui/properties/optionpropertywidget.h
gui/properties/propertycollectionwidget.h
gui/properties/simpletransferfunctioneditor.h
......
......@@ -46,14 +46,19 @@ namespace campvis {
QBoxLayout* outerLayout = new QBoxLayout(QBoxLayout::LeftToRight, this);
QGroupBox* groupBox = new QGroupBox(QString::fromStdString(_property->getTitle()));
outerLayout->setMargin(4);
outerLayout->addWidget(groupBox);
_layout = new QBoxLayout(QBoxLayout::TopToBottom, groupBox);
_layout->setSpacing(1);
_layout->setMargin(3);
}
else {
_titleLabel = new QLabel(QString::fromStdString(_property->getTitle() + ":"), this);
_layout = new QBoxLayout(QBoxLayout::LeftToRight, this);
_layout->setSpacing(8);
_layout->setMargin(4);
_layout->addWidget(_titleLabel, 0);
}
......
......@@ -35,7 +35,7 @@
namespace campvis {
CameraPropertyWidget::CameraPropertyWidget(CameraProperty* property, QWidget* parent /*= 0*/)
: AbstractPropertyWidget(property, false, parent)
: AbstractPropertyWidget(property, true, parent)
, _lblCameraPosition(0)
, _lblLookDirection(0)
, _lblUpVector(0)
......
......@@ -32,6 +32,7 @@
#include <QCheckBox>
#include <QTimer>
#include <QGridLayout>
#include <QPushButton>
#include <QWidget>
namespace campvis {
......@@ -45,6 +46,8 @@ namespace campvis {
QWidget* widget = new QWidget(this);
QGridLayout* layout = new QGridLayout(widget);
layout->setSpacing(2);
layout->setMargin(0);
widget->setLayout(layout);
_adjuster = new IntAdjusterWidget;
......@@ -54,14 +57,20 @@ namespace campvis {
_adjuster->setValue(property->getValue());
layout->addWidget(_adjuster, 0, 0, 1, 2);
_btnShowHideTimer = new QPushButton(tr("S"));
_btnShowHideTimer->setFixedWidth(16);
layout->addWidget(_btnShowHideTimer, 0, 2);
_cbEnableTimer = new QCheckBox("Enable Timer", widget);
_cbEnableTimer->setVisible(false);
layout->addWidget(_cbEnableTimer, 1, 0);
_sbInterval = new QSpinBox(widget);
_sbInterval->setMinimum(1);
_sbInterval->setMaximum(2000);
_sbInterval->setValue(50);
layout->addWidget(_sbInterval, 1, 1);
_sbInterval->setVisible(false);
layout->addWidget(_sbInterval, 1, 1, 1, 2);
addWidget(widget);
......@@ -69,6 +78,7 @@ namespace campvis {
connect(_adjuster, SIGNAL(valueChanged(int)), this, SLOT(onValueChanged(int)));
connect(_cbEnableTimer, SIGNAL(stateChanged(int)), this, SLOT(onEnableTimerChanged(int)));
connect(_sbInterval, SIGNAL(valueChanged(int)), this, SLOT(onIntervalValueChanged(int)));
connect(_btnShowHideTimer, SIGNAL(clicked()), this, SLOT(onBtnSHTClicked()));
property->s_minMaxChanged.connect(this, &IntPropertyWidget::onPropertyMinMaxChanged);
property->s_stepChanged.connect(this, &IntPropertyWidget::onPropertyStepChanged);
}
......@@ -129,4 +139,10 @@ namespace campvis {
prop->setValue(prop->getMinValue());
}
void IntPropertyWidget::onBtnSHTClicked() {
_cbEnableTimer->setVisible(! _cbEnableTimer->isVisible());
_sbInterval->setVisible(! _sbInterval->isVisible());
_btnShowHideTimer->setText(_sbInterval->isVisible() ? tr("H") : tr("S"));
}
}
\ No newline at end of file
......@@ -35,6 +35,7 @@
#include "core/properties/numericproperty.h"
class QCheckBox;
class QPushButton;
class QTimer;
namespace campvis {
......@@ -68,6 +69,7 @@ namespace campvis {
void onIntervalValueChanged(int value);
void onEnableTimerChanged(int state);
void onTimer();
void onBtnSHTClicked();
private:
/// Slot getting called when the property's min or max value has changed, so that the widget can be updated.
......@@ -78,6 +80,7 @@ namespace campvis {
IntAdjusterWidget* _adjuster;
QPushButton* _btnShowHideTimer;
QTimer* _timer;
QCheckBox* _cbEnableTimer;
QSpinBox* _sbInterval;
......
// ================================================================================================
//
// This file is part of the CAMPVis Software Framework.
//
// If not explicitly stated otherwise: Copyright (C) 2012, all rights reserved,
// Christian Schulte zu Berge <christian.szb@in.tum.de>
// Chair for Computer Aided Medical Procedures
// Technische Universität München
// Boltzmannstr. 3, 85748 Garching b. München, Germany
// For a full list of authors and contributors, please refer to the file "AUTHORS.txt".
//
// The licensing of this softare is not yet resolved. Until then, redistribution in source or
// binary forms outside the CAMP chair is not permitted, unless explicitly stated in legal form.
// However, the names of the original authors and the above copyright notice must retain in its
// original state in any case.
//
// Legal disclaimer provided by the BSD license:
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
// AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.
//
// ================================================================================================
#include "tgt/assert.h"
#include "metapropertywidget.h"
namespace campvis {
MetaPropertyWidget::MetaPropertyWidget(MetaProperty* property, DataContainer* dc, QWidget* parent /*= 0*/)
: AbstractPropertyWidget(property, true, parent)
, _pcw(0)
, _dc(dc)
{
tgtAssert(_dc != 0, "Pointer to DataContainer must not be 0.");
_pcw = new PropertyCollectionWidget(this);
_pcw->updatePropCollection(property, _dc);
addWidget(_pcw);
}
MetaPropertyWidget::~MetaPropertyWidget() {
}
void MetaPropertyWidget::updateWidgetFromProperty() {
}
}
\ No newline at end of file
// ================================================================================================
//
// This file is part of the CAMPVis Software Framework.
//
// If not explicitly stated otherwise: Copyright (C) 2012, all rights reserved,
// Christian Schulte zu Berge <christian.szb@in.tum.de>
// Chair for Computer Aided Medical Procedures
// Technische Universität München
// Boltzmannstr. 3, 85748 Garching b. München, Germany
// For a full list of authors and contributors, please refer to the file "AUTHORS.txt".
//
// The licensing of this softare is not yet resolved. Until then, redistribution in source or
// binary forms outside the CAMP chair is not permitted, unless explicitly stated in legal form.
// However, the names of the original authors and the above copyright notice must retain in its
// original state in any case.
//
// Legal disclaimer provided by the BSD license:
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
// AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.
//
// ================================================================================================
#ifndef METAPROPERTYWIDGET_H__
#define METAPROPERTYWIDGET_H__
#include "application/gui/properties/propertycollectionwidget.h"
#include "application/gui/properties/abstractpropertywidget.h"
#include "core/properties/metaproperty.h"
namespace campvis {
class DataContainer;
/**
* Widget for a Camera.
* For now just offering read-access.
*/
class MetaPropertyWidget : public AbstractPropertyWidget {
Q_OBJECT;
public:
/**
* Creates a new MetaPropertyWidget for the property \a property.
* \param property The property the widget shall handle
* \param parent Parent Qt widget
*/
MetaPropertyWidget(MetaProperty* property, DataContainer* dc, QWidget* parent = 0);
/**
* Destructor
*/
virtual ~MetaPropertyWidget();
protected:
/**
* Gets called when the property has changed, so that widget can update its state.
*/
virtual void updateWidgetFromProperty();
private:
PropertyCollectionWidget* _pcw;
DataContainer* _dc;
};
}
#endif // METAPROPERTYWIDGET_H__
......@@ -73,7 +73,8 @@ namespace campvis {
void PropertyCollectionWidget::setupWidget() {
_layout = new QVBoxLayout();
_layout->setSpacing(0);
_layout->setSpacing(8);
_layout->setMargin(0);
setLayout(_layout);
}
......
......@@ -36,6 +36,7 @@
#include "application/gui/properties/datanamepropertywidget.h"
#include "application/gui/properties/intpropertywidget.h"
#include "application/gui/properties/floatpropertywidget.h"
#include "application/gui/properties/metapropertywidget.h"
#include "application/gui/properties/optionpropertywidget.h"
#include "application/gui/properties/stringpropertywidget.h"
#include "application/gui/properties/transferfunctionpropertywidget.h"
......@@ -108,6 +109,10 @@ namespace campvis {
return new TransferFunctionPropertyWidget(tester);
}
if (MetaProperty* tester = dynamic_cast<MetaProperty*>(property)) {
return new MetaPropertyWidget(tester, dc);
}
return 0;
}
......
......@@ -42,7 +42,7 @@
namespace campvis {
TransferFunctionPropertyWidget::TransferFunctionPropertyWidget(TransferFunctionProperty* property, QWidget* parent /*= 0*/)
: AbstractPropertyWidget(property, false, parent)
: AbstractPropertyWidget(property, true, parent)
, _widget(0)
, _gridLayout(0)
, _lblDomain(0)
......@@ -72,11 +72,11 @@ namespace campvis {
_spinDomainRight->setSingleStep(0.01);
_gridLayout->addWidget(_spinDomainRight, 0, 2);
_btnFitDomainToImage = new QPushButton("Fit Intensity Domain to Image", _widget);
_gridLayout->addWidget(_btnFitDomainToImage, 1, 0, 1, 3);
_btnFitDomainToImage = new QPushButton("Fit", _widget);
_gridLayout->addWidget(_btnFitDomainToImage, 0, 3);
_btnEditTF = new QPushButton("Edit Transfer Function", _widget);
_gridLayout->addWidget(_btnEditTF, 2, 0, 1, 3);
_gridLayout->addWidget(_btnEditTF, 1, 1, 1, 3);
addWidget(_widget);
......
......@@ -42,9 +42,13 @@ namespace campvis {
, _texUnit(0)
, _maskImage(0)
{
_applyMask.s_changed.connect(this, &ProcessorDecoratorMasking::onPropertyChanged);
_maskID.setVisible(false);
_maskColor.setVisible(false);
}
ProcessorDecoratorMasking::~ProcessorDecoratorMasking() {
_applyMask.s_changed.disconnect(this);
delete _texUnit;
delete _maskImage;
}
......@@ -85,4 +89,11 @@ namespace campvis {
return "";
}
void ProcessorDecoratorMasking::onPropertyChanged(const AbstractProperty* p) {
if (p == &_applyMask) {
_maskID.setVisible(_applyMask.getValue());
_maskColor.setVisible(_applyMask.getValue());
}
}
}
......@@ -40,7 +40,7 @@
namespace campvis {
class ProcessorDecoratorMasking : public AbstractProcessorDecorator {
class ProcessorDecoratorMasking : public AbstractProcessorDecorator, public sigslot::has_slots<> {
public:
ProcessorDecoratorMasking();
virtual ~ProcessorDecoratorMasking();
......@@ -60,6 +60,10 @@ namespace campvis {
tgt::TextureUnit* _texUnit;
ScopedTypedData<RenderData>* _maskImage;
private:
void onPropertyChanged(const AbstractProperty* p);
};
}
......
......@@ -38,11 +38,11 @@ namespace campvis {
: AbstractProcessorDecorator()
, _enableShading("EnableShading", "Enable Shading", true, AbstractProcessor::INVALID_SHADER | AbstractProcessor::INVALID_RESULT)
, _centralDifferences("CentralDifferences", "Use Central instead of Forward Differences", false, AbstractProcessor::INVALID_SHADER | AbstractProcessor::INVALID_RESULT)
, _lightPosition("LightPosition", "Light Position", tgt::vec3(-8.f), tgt::vec3(-500.f), tgt::vec3(500.f), tgt::vec3(0.1f))
, _ambientColor("AmbientColor", "Ambient Light Color", tgt::vec3(0.5f), tgt::vec3(0.f), tgt::vec3(1.f))
, _lightPosition("LightPosition", "Light Position", tgt::vec3(-100.f), tgt::vec3(-500.f), tgt::vec3(500.f), tgt::vec3(1.f))
, _ambientColor("AmbientColor", "Ambient Light Color", tgt::vec3(0.4f), tgt::vec3(0.f), tgt::vec3(1.f))
, _diffuseColor("DiffuseColor", "Diffuse Light Color", tgt::vec3(0.75f), tgt::vec3(0.f), tgt::vec3(1.f))
, _specularColor("SpecularColor", "Specular Light Color", tgt::vec3(0.5f), tgt::vec3(0.f), tgt::vec3(1.f))
, _shininess("Shininess", "Specular Shininess", 4.f, 0.f, 64.f, 0.5f)
, _specularColor("SpecularColor", "Specular Light Color", tgt::vec3(0.6f), tgt::vec3(0.f), tgt::vec3(1.f))
, _shininess("Shininess", "Specular Shininess", 24.f, 0.f, 64.f, 0.5f)
, _attenuation("Attenuation", "Attenuation Factors", tgt::vec3(0.f), tgt::vec3(0.f), tgt::vec3(1.f))
, _lightUniformName(lightUniformName)
{
......
......@@ -48,9 +48,8 @@ namespace campvis {
, p_exitImageID("exitImageID", "Input Exit Points Image", "", DataNameProperty::READ)
, p_camera("camera", "Camera")
, p_transferFunction("TransferFunction", "Transfer Function", new SimpleTransferFunction(256))
, p_samplingRate("SamplingRate", "Sampling Rate", 2.f, 0.1f, 10.f, 0.1f)
, p_jitterEntryPoints("jitterEntryPoints", "Jitter Entry Points", true)
, p_jitterStepSizeMultiplier("jitterStepSizeMultiplier", "Jitter Step Size Multiplier", .5f, .1f, 1.f)
, p_samplingRate("SamplingRate", "Sampling Rate", 2.f, 0.1f, 10.f, 0.1f)
, _fragmentShaderFilename(fragmentShaderFileName)
, _shader(0)
, _bindEntryExitDepthTextures(bindEntryExitDepthTextures)
......@@ -61,9 +60,8 @@ namespace campvis {
addProperty(&p_exitImageID);
addProperty(&p_camera);
addProperty(&p_transferFunction);
addProperty(&p_samplingRate);
addProperty(&p_jitterEntryPoints);
addProperty(&p_jitterStepSizeMultiplier);
addProperty(&p_samplingRate);
}
RaycastingProcessor::~RaycastingProcessor() {
......@@ -107,7 +105,6 @@ namespace campvis {
_shader->setIgnoreUniformLocationError(true);
decorateRenderProlog(data, _shader);
_shader->setUniform("_viewportSizeRCP", 1.f / tgt::vec2(getEffectiveViewportSize()));
_shader->setUniform("_jitterEntryPoints", p_jitterEntryPoints.getValue());
_shader->setUniform("_jitterStepSizeMultiplier", p_jitterStepSizeMultiplier.getValue());
float samplingStepSize = 1.f / (p_samplingRate.getValue() * tgt::max(img->getSize()));
......
......@@ -106,9 +106,8 @@ namespace campvis {
CameraProperty p_camera; ///< Camera used for ray casting
TransferFunctionProperty p_transferFunction; ///< Transfer function
FloatProperty p_samplingRate; ///< Ray casting sampling rate
BoolProperty p_jitterEntryPoints; ///< Flag whether to jitter the entry points
FloatProperty p_jitterStepSizeMultiplier; ///< Step size multiplier for entry points jitter
FloatProperty p_samplingRate; ///< Ray casting sampling rate
protected:
/**
......
// ================================================================================================
//
// This file is part of the CAMPVis Software Framework.
//
// If not explicitly stated otherwise: Copyright (C) 2012, all rights reserved,
// Christian Schulte zu Berge <christian.szb@in.tum.de>
// Chair for Computer Aided Medical Procedures
// Technische Universität München
// Boltzmannstr. 3, 85748 Garching b. München, Germany
// For a full list of authors and contributors, please refer to the file "AUTHORS.txt".
//
// The licensing of this softare is not yet resolved. Until then, redistribution in source or
// binary forms outside the CAMP chair is not permitted, unless explicitly stated in legal form.
// However, the names of the original authors and the above copyright notice must retain in its
// original state in any case.
//
// Legal disclaimer provided by the BSD license:
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
// AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.
//
// ================================================================================================
#include "metaproperty.h"
namespace campvis {
const std::string MetaProperty::loggerCat_ = "CAMPVis.core.datastructures.MetaProperty";
MetaProperty::MetaProperty(const std::string& name, const std::string& title, int invalidationLevel /*= AbstractProcessor::INVALID_RESULT*/)
: AbstractProperty(name, title, invalidationLevel)
{
}
MetaProperty::~MetaProperty() {
}
void MetaProperty::onPropertyChanged(const AbstractProperty* prop) {
s_changed(prop);
}
void MetaProperty::addPropertyCollection(HasPropertyCollection& pc) {
PropertyCollection& c = pc.getProperties();
for (std::vector<AbstractProperty*>::const_iterator it = c.begin(); it != c.end(); ++it) {
addProperty(*it);
}
}
}
// ================================================================================================
//
// This file is part of the CAMPVis Software Framework.
//
// If not explicitly stated otherwise: Copyright (C) 2012, all rights reserved,
// Christian Schulte zu Berge <christian.szb@in.tum.de>
// Chair for Computer Aided Medical Procedures
// Technische Universität München
// Boltzmannstr. 3, 85748 Garching b. München, Germany
// For a full list of authors and contributors, please refer to the file "AUTHORS.txt".
//
// The licensing of this softare is not yet resolved. Until then, redistribution in source or
// binary forms outside the CAMP chair is not permitted, unless explicitly stated in legal form.
// However, the names of the original authors and the above copyright notice must retain in its
// original state in any case.
//
// Legal disclaimer provided by the BSD license:
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
// AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.
//
// ================================================================================================
#ifndef METAPROPERTY_H__
#define METAPROPERTY_H__
#include "core/properties/abstractproperty.h"
#include "core/properties/propertycollection.h"
namespace campvis {
/**
* Property wrapping around a bunch of other properties.
* Useful either for grouping properties or for wrapping around entire property collections.
*
* \note ATTENTION: Even though MetaProperty derives from HasPropertyCollection, it does
* neither take ownership of its wrapped properties, nor does is (de)initialize
* or (un)lock them. This has to be done by the owners of the wrapped
* properties.
*/
class MetaProperty : public AbstractProperty, public HasPropertyCollection {
public:
/**
* Creates a new MetaProperty
* \param name Property name (unchangable!)
* \param title Property title (e.g. used for GUI)
* \param invalidationLevel Invalidation level that this property triggers
*/
MetaProperty(const std::string& name, const std::string& title, int invalidationLevel = AbstractProcessor::INVALID_RESULT);
/**
* Virtual Destructor
**/
virtual ~MetaProperty();
/// \see HasPropertyCollection::onPropertyChanged
virtual void onPropertyChanged(const AbstractProperty* prop);
/**
* Adds all properties in \a pc to this meta property.
* \param pc PropertyCollection to add
*/
void addPropertyCollection(HasPropertyCollection& pc);
protected:
static const std::string loggerCat_;
};
}
#endif // METAPROPERTY_H__
......@@ -35,7 +35,6 @@ out vec4 out_Color; ///< outgoing fragment color
#include "tools/transferfunction.frag"
uniform vec2 _viewportSizeRCP;
uniform bool _jitterEntryPoints;
uniform float _jitterStepSizeMultiplier;
// ray entry points
......@@ -73,8 +72,7 @@ vec4 raycastDRR(in vec3 entryPoint, in vec3 exitPoint) {
float tend = length(direction);
direction = normalize(direction);
if (_jitterEntryPoints)
jitterEntryPoint(entryPoint, direction, _samplingStepSize * _jitterStepSizeMultiplier);
jitterEntryPoint(entryPoint, direction, _samplingStepSize * _jitterStepSizeMultiplier);
while (t < tend) {
// compute sample position
......
......@@ -39,7 +39,6 @@ layout(location = 2) out vec4 out_FHN; ///< outgoing fragment first hit no
#include "tools/transferfunction.frag"
uniform vec2 _viewportSizeRCP;
uniform bool _jitterEntryPoints;
uniform float _jitterStepSizeMultiplier;
......@@ -92,8 +91,7 @@ vec4 performRaycasting(in vec3 entryPoint, in vec3 exitPoint, in vec2 texCoords)
float tend = length(direction);
direction = normalize(direction);
if (_jitterEntryPoints)
jitterEntryPoint(entryPoint, direction, _samplingStepSize * _jitterStepSizeMultiplier);
jitterEntryPoint(entryPoint, direction, _samplingStepSize * _jitterStepSizeMultiplier);
while (t < tend) {
// compute sample position
......
......@@ -39,12 +39,9 @@ namespace campvis {
VolumeExplorerDemo::VolumeExplorerDemo(DataContainer* dc)
: AutoEvaluationPipeline(dc)
, _camera("camera", "Camera")
, _imageReader()
, _ve(&_canvasSize)
{
addProperty(&_camera);
addProcessor(&_imageReader);
addProcessor(&_ve);
......@@ -59,7 +56,6 @@ namespace campvis {
_imageReader.s_validated.connect(this, &VolumeExplorerDemo::onProcessorValidated);
_camera.addSharedProperty(&_ve.p_camera);
_ve.p_outputImage.setValue("combine");
_renderTargetID.setValue("combine");
......