NorMIT-nav  2023.01.05-dev+develop.0da12
An IGT application
cxTransferFunction2DOpacityWidget.cpp
Go to the documentation of this file.
1 /*=========================================================================
2 This file is part of CustusX, an Image Guided Therapy Application.
3 
4 Copyright (c) SINTEF Department of Medical Technology.
5 All rights reserved.
6 
7 CustusX is released under a BSD 3-Clause license.
8 
9 See Lisence.txt (https://github.com/SINTEFMedtek/CustusX/blob/master/License.txt) for details.
10 =========================================================================*/
11 
13 #include "cxDoubleWidgets.h"
14 #include "cxImageLUT2D.h"
15 #include "cxActiveData.h"
16 
17 namespace cx
18 {
19 
21  BaseWidget(parent, "transfer_function_2d_opacity_widget", "2D Opacity"),
22  mActiveData(activeData)
23 {
24  this->setToolTip("Set a 2D opacity transfer function");
25  QVBoxLayout* layout = new QVBoxLayout(this);
26 
29 
32 
34  connect(mActiveImageProxy.get(), &ActiveImageProxy::transferFunctionsChanged, this, &TransferFunction2DOpacityWidget::activeImageChangedSlot);
35  connect(mActiveData.get(), &ActiveData::activeDataChanged, this, &TransferFunction2DOpacityWidget::activeImageChangedSlot);
36 
37  mTransferFunctionAlphaWidget->setSizePolicy(QSizePolicy::MinimumExpanding,
38  QSizePolicy::MinimumExpanding);
39 
40  layout->addWidget(mTransferFunctionAlphaWidget);
41 
42  QGridLayout* gridLayout = new QGridLayout;
43  layout->addLayout(gridLayout);
44  new SliderGroupWidget(this, mDataAlpha, gridLayout, 2);
45  new SliderGroupWidget(this, mDataLLR, gridLayout, 3);
46 
47  this->setLayout(layout);
48  this->activeImageChangedSlot();
49 }
50 
52 {
53  disconnect(mActiveData.get(), &ActiveData::activeDataChanged, this, &TransferFunction2DOpacityWidget::activeImageChangedSlot);
54 }
55 
56 void TransferFunction2DOpacityWidget::activeImageChangedSlot()
57 {
58  ImagePtr image = mActiveData->getDerivedActiveImage();
59  ImageTFDataPtr tf;
60  if (image)
61  tf = image->getLookupTable2D();
62  else
63  image.reset();
64 
66 
67  mDataAlpha->setImageTFData(tf, image);
68  mDataLLR->setImageTFData(tf, image);
69  updateLLR(image);
70 }
71 
73 {
74  if(image && image->getModality() == imUS)
75  mDataLLR->setValue(1);
76 }
77 
78 
79 }//end namespace cx
cx::DoublePropertyImageTFDataAlpha
Definition: cxTransferFunctionWidget.h:105
cxActiveData.h
cx::TransferFunction2DOpacityWidget::mActiveImageProxy
ActiveImageProxyPtr mActiveImageProxy
Definition: cxTransferFunction2DOpacityWidget.h:49
cx::TransferFunction2DOpacityWidget::mDataAlpha
DoublePropertyImageTFDataBasePtr mDataAlpha
Definition: cxTransferFunction2DOpacityWidget.h:48
cx
Namespace for all CustusX production code.
Definition: cx_dev_group_definitions.h:13
cx::BaseWidget
Interface for QWidget which handles widgets uniformly for the system.
Definition: cxBaseWidget.h:88
cx::TransferFunction2DOpacityWidget::updateLLR
void updateLLR(ImagePtr image)
Definition: cxTransferFunction2DOpacityWidget.cpp:72
cx::TransferFunction2DOpacityWidget::mDataLLR
DoublePropertyImageTFDataBasePtr mDataLLR
Definition: cxTransferFunction2DOpacityWidget.h:48
cx::ImageTFDataPtr
boost::shared_ptr< class ImageTFData > ImageTFDataPtr
Definition: cxForwardDeclarations.h:52
cx::ActiveImageProxy::New
static ActiveImageProxyPtr New(ActiveDataPtr activeData)
Definition: cxActiveImageProxy.h:44
cx::ActiveImageProxy::transferFunctionsChanged
void transferFunctionsChanged()
cx::ActiveData::activeDataChanged
void activeDataChanged(const QString &uId)
imUS
imUS
Definition: cxDefinitions.h:154
cx::ImagePtr
boost::shared_ptr< class Image > ImagePtr
Definition: cxDicomWidget.h:27
cx::TransferFunction2DOpacityWidget::~TransferFunction2DOpacityWidget
virtual ~TransferFunction2DOpacityWidget()
Definition: cxTransferFunction2DOpacityWidget.cpp:51
cx::TransferFunction2DOpacityWidget::mTransferFunctionAlphaWidget
TransferFunctionAlphaWidget * mTransferFunctionAlphaWidget
Definition: cxTransferFunction2DOpacityWidget.h:47
cx::TransferFunctionAlphaWidget::setData
void setData(ImagePtr image, ImageTFDataPtr tfData)
Definition: cxTransferFunctionAlphaWidget.cpp:49
cx::TransferFunctionAlphaWidget
Definition: cxTransferFunctionAlphaWidget.h:37
cx::DoublePropertyImageTFDataLLR
Definition: cxTransferFunctionWidget.h:92
cx::TransferFunctionAlphaWidget::setReadOnly
void setReadOnly(bool readOnly)
Set class readonly: Disable mouse interaction.
Definition: cxTransferFunctionAlphaWidget.cpp:59
cxTransferFunction2DOpacityWidget.h
cxDoubleWidgets.h
cx::SliderGroupWidget
Composite widget for scalar data manipulation.
Definition: cxDoubleWidgets.h:173
cx::TransferFunction2DOpacityWidget::mActiveData
ActiveDataPtr mActiveData
Definition: cxTransferFunction2DOpacityWidget.h:50
cx::ActiveDataPtr
boost::shared_ptr< class ActiveData > ActiveDataPtr
Definition: cxColorWidget.h:21
cxImageLUT2D.h
cx::TransferFunction2DOpacityWidget::TransferFunction2DOpacityWidget
TransferFunction2DOpacityWidget(ActiveDataPtr activeData, QWidget *parent)
Definition: cxTransferFunction2DOpacityWidget.cpp:20