Refactor dicomimageview

This commit is contained in:
Krad
2022-03-09 16:07:31 +08:00
parent 03a0b242f0
commit 33fcdc79e3
4 changed files with 386 additions and 405 deletions

View File

@@ -76,42 +76,6 @@ DicomImageView::~DicomImageView()
}
}
bool DicomImageView::isVCRVisible()
{
if (!_vcr_toolbar) return false;
return _vcr_toolbar->isVisible();
}
void DicomImageView::setVCRVisible(bool visible)
{
if (!_vcr_toolbar) return ;
_vcr_toolbar->setVisible(visible);
}
void DicomImageView::cineModeOn()
{
if (!_vcr_toolbar) return;
//updateVCRToolbarPos();
int ax = (this->geometry().bottomLeft().x() + this->geometry().bottomRight().x()) / 2 + VCRHelper::getVCRXOffset();
int ay = (this->geometry().bottomLeft().y() + this->geometry().bottomRight().y()) / 2 + VCRHelper::getVCRYOffset();
_vcr_toolbar->move(ax, ay);
_vcr_toolbar->show();
this->initCineModeThread();
_vcr_toolbar->reConnectController(_vcr_ctrl);
}
void DicomImageView::initCineModeThread()
{
_vcr_ctrl = new pqVCRController(nullptr, this);
_vcr_ctrl->moveToThread(&_thread);
connect(&_thread, &QThread::finished, _vcr_ctrl, &QObject::deleteLater);
_thread.start();
isCine = true;
}
MyTitleBar * DicomImageView::createMyTitleBar()
{
MyTitleBar *titleBar = new MyTitleBar(this);
@@ -120,76 +84,41 @@ MyTitleBar * DicomImageView::createMyTitleBar()
return titleBar;
}
void DicomImageView::AddSlice(int step)
void DicomImageView::ToggleNegativeMode()
{
if (_ImageViewer == nullptr)
{
return;
}
if (HasSeries())
{
int curSlice = _ImageViewer->GetSlice() + step;
_ImageViewer->SetSlice(curSlice);
_scrollBar->setValue(curSlice);
if (isNegative)
{
_ImageViewer->SetNegativeMode(false);
isNegative = false;
}
else
{
_ImageViewer->SetNegativeMode(true);
isNegative = true;
}
}
}
void DicomImageView::onFirstFrame()
void DicomImageView::initScrollbar()
{
if (HasSeries()) {
//_MinSlice = _ImageViewer->GetSliceMin();
//_MaxSlice = _ImageViewer->GetSliceMax();
_scrollBar->setValue(_ImageViewer->GetSliceMin());
}
}
void DicomImageView::onPreviousFrame()
{
if (HasSeries()) {
int slice = _ImageViewer->GetSlice();
slice = slice--;
int min_slice = _ImageViewer->GetSliceMin();
if (slice < min_slice)
{
slice = _ImageViewer->GetSliceMax();
}
_scrollBar->setValue(slice);
}
}
void DicomImageView::onNextFrame()
{
if (HasSeries()) {
int slice = _ImageViewer->GetSlice();
slice = slice++;
int max_slice = _ImageViewer->GetSliceMax();
if (slice > max_slice)
{
slice = _ImageViewer->GetSliceMin();
}
_scrollBar->setValue(slice);
}
}
void DicomImageView::onLastFrame()
{
if (HasSeries()) {
_scrollBar->setValue(_ImageViewer->GetSliceMax());
}
_scrollBar->setMaximum(_ImageViewer->GetSliceMax());
_scrollBar->setSingleStep(1);
_scrollBar->setVisible(true);
}
void DicomImageView::SetSlice(int slice)
{
if (_ImageViewer == nullptr)
{
return;
}
if (HasSeries())
{
//NOTE: not working
void DicomImageView::setHighlight(bool yes) {
_titleBar->SetHighlight(yes);
_ImageViewer->SetSlice(slice);
//_ImageViewer->updateCornerInfo(TOP_LEFT);
_scrollBar->setValue(slice);
}
}
//SLOTS------------------------------------------------------------------------
void DicomImageView::Slot_scrollValueChanged(int slice)
{
//if the scroll bar is activated by user, emit
@@ -224,13 +153,33 @@ void DicomImageView::Slot_scrollValueChanged(int slice)
break;
}
}
void DicomImageView::updateCornerInfoPrivacy()
void DicomImageView::Slot_ViewEmpty()
{
if (HasSeries())
emit Signal_ViewEmpty(this);
}
void DicomImageView::Slot_viewDoubleclicked()
{
_ImageViewer->updateCornerInfo(TOP_RIGHT);
//emit Signal_ViewClicked(this);
emit Signal_viewDoubleclicked(this);
}
void DicomImageView::Slot_WindowLevelEventForFusion(double level, double width)
{
if (IsFusion()) {
_ImageViewer->SetFusionColorLeveL(level);
_ImageViewer->SetFusionColorWindow(width);
_ImageViewer->Render();
}
}
void DicomImageView::Slot_UpdateOrienInfo(TransFormType operation)
{
_ImageViewer->updateOrienInfo(operation);
}
//Widget event----------------------------------------------------------------
void DicomImageView::wheelEvent(QWheelEvent *event)
{
if (HasSeries()) {
@@ -283,26 +232,12 @@ void DicomImageView::wheelEvent(QWheelEvent *event)
}
}
void DicomImageView::Slot_ViewEmpty()
{
emit Signal_ViewEmpty(this);
}
////-----------------------------------------------------------------------------
void DicomImageView::mousePressEvent(QMouseEvent* event)
{
emit Signal_ViewClicked(this);
}
void DicomImageView::Slot_viewDoubleclicked()
{
//emit Signal_ViewClicked(this);
emit Signal_viewDoubleclicked(this);
}
//-------------------------------------------------------
/**
* @brief DicomImageView::dragEnterEvent
* 拖拽进入
@@ -314,7 +249,6 @@ void DicomImageView::dragEnterEvent(QDragEnterEvent *e) {
}
}
//-------------------------------------------------------
/**
* @brief DicomImageView::dragMoveEvent
* 拖拽移动
@@ -326,7 +260,6 @@ void DicomImageView::dragMoveEvent(QDragMoveEvent *e) {
}
}
//-------------------------------------------------------
/**
* @brief DicomImageView::dropEvent
* 拖拽松开
@@ -344,7 +277,7 @@ void DicomImageView::dropEvent(QDropEvent *e) {
}
}
}
//-------------------------------------------------------
/**
* @brief DicomImageView::dragLeaveEvent
* 离开事件
@@ -354,167 +287,31 @@ void DicomImageView::dragLeaveEvent(QDragLeaveEvent *) {
return;
}
void DicomImageView::getWindowLevel(double &level, double &width)
void DicomImageView::resizeEvent(QResizeEvent *event)
{
if (HasSeries()) {
//_Series->getWindowLevel(level, width);
level = _ImageViewer->GetColorLevel();
width = _ImageViewer->GetColorWindow();
//auto size conner info
if (!_ImageViewer) return;
if (_ImageViewer->GetvtkCornerAnnotation()) {
_ImageViewer->GetvtkCornerAnnotation()->SetMaximumFontSize(FontSizeHelper::getSize(frameGeometry().size()));
_ImageViewer->Render();
}
if (isCine) {
int ax = (this->geometry().bottomLeft().x() + this->geometry().bottomRight().x()) / 2 +
VCRHelper::getVCRXOffset();
int ay = (this->geometry().bottomLeft().y() + this->geometry().bottomRight().y()) / 2 +
VCRHelper::getVCRYOffset();;
_vcr_toolbar->move(ax, ay);
}
}
void DicomImageView::ToggleNegativeMode()
{
if (HasSeries())
{
if (isNegative)
{
_ImageViewer->SetNegativeMode(false);
isNegative = false;
}
else
{
_ImageViewer->SetNegativeMode(true);
isNegative = true;
}
}
}
void DicomImageView::setWindowLevel(double level, double width)
{
if (HasSeries())
{
_ImageViewer->SetColorLevel(level);
_ImageViewer->SetColorWindow(width);
//You have to call updateConerInfo manually
//only mouse event can rely on callback
_ImageViewer->updateCornerInfo(BOTTOM_RIGHT);
emit Signal_WindowLevelEventForFusion(level, width);
}
}
void DicomImageView::initScrollbar()
{
//_MinSlice = _ImageViewer->GetSliceMin();
//_MaxSlice = _ImageViewer->GetSliceMax();
_scrollBar->setValue(_ImageViewer->GetSliceMin());
_scrollBar->setMaximum(_ImageViewer->GetSliceMax());
_scrollBar->setSingleStep(1);
_scrollBar->setVisible(true);
}
void DicomImageView::ResetPanZoom()
{
if (HasSeries())
{
//necessary to reset pan
_ImageViewer->GetRenderer()->ResetCamera();
//necessary to reset zoom
_ImageViewer->GetRenderer()->GetActiveCamera()->SetParallelScale(_Series->GetExtent());
}
}
void DicomImageView::ClearTransformations()
{
if (HasSeries())
{
int slice = _ImageViewer->GetSlice();
ResetPanZoom();
double cameraPosition[3];
double vup[3];
_Series->getCameraCfg(vup, cameraPosition);
//necessary to reset flip and rotate
_ImageViewer->GetRenderer()->GetActiveCamera()->SetPosition(cameraPosition);
_ImageViewer->GetRenderer()->GetActiveCamera()->SetViewUp(vup);
//avoid black out problem
_ImageViewer->GetRenderer()->ResetCameraClippingRange();
_ImageViewer->SetSlice(slice);
//Render
_ImageViewer->GetRenderWindow()->Render();
emit Signal_Transformation(CLEAR);
}
}
void DicomImageView::HFlip()
{
if (HasSeries()) {
int slice = _ImageViewer->GetSlice();
ResetPanZoom();
//HFlip
//_ImageViewer->GetRenderer()->GetActiveCamera()->SetViewUp(0, 1, 0);
_ImageViewer->GetRenderer()->GetActiveCamera()->Azimuth(180);
FlipExportHelper::toggleFlip();
//to avoid black out problem during slicing
//slicing is related with rotation, you have to recalculate to get it right
_ImageViewer->GetRenderer()->ResetCameraClippingRange();
_ImageViewer->SetSlice(slice);
_ImageViewer->GetRenderWindow()->Render();
emit Signal_Transformation(H_FLIP);
}
}
void DicomImageView::VFlip()
{
if (HasSeries()) {
//double scale = _ImageViewer->GetRenderer()->GetActiveCamera()->GetParallelScale();
int slice = _ImageViewer->GetSlice();
ResetPanZoom();
//Method 2: Order matters
_ImageViewer->GetRenderer()->GetActiveCamera()->Elevation(-180);
_ImageViewer->GetRenderer()->GetActiveCamera()->Roll(180);
//_ImageViewer->GetRenderer()->GetActiveCamera()->SetViewUp(0,-1,0);
FlipExportHelper::toggleFlip();
//to avoid black out problem during slicing
//slicing is related with rotation, you have to recalculate to get it right
_ImageViewer->GetRenderer()->ResetCameraClippingRange();
_ImageViewer->SetSlice(slice);
_ImageViewer->GetRenderWindow()->Render();
emit Signal_Transformation(V_FLIP);
}
}
void DicomImageView::Rotate(double angle, TransFormType operation)
{
if (HasSeries()) {
int slice = _ImageViewer->GetSlice();
ResetPanZoom();
_ImageViewer->GetRenderer()->GetActiveCamera()->Roll(angle);
//to avoid black out problem during slicing
//slcing is related with rotation, you have to recalculate to get it right
_ImageViewer->GetRenderer()->ResetCameraClippingRange();
_ImageViewer->SetSlice(slice);
_ImageViewer->GetRenderWindow()->Render();
emit Signal_Transformation(operation);
}
}
//NOTE: not working
void DicomImageView::setHighlight(bool yes) {
_titleBar->SetHighlight(yes);
}
//Fusion about -------------------------------------------------------------
bool DicomImageView::IsFusion()
{
return _ImageViewer->GetFusion();
}
void DicomImageView::SetFusionInput(DicomImageView *overlay)
{
_overlay = overlay;
@@ -523,7 +320,7 @@ void DicomImageView::SetFusionInput(DicomImageView *overlay)
double window;
double level;
_overlay->getWindowLevel(level, window);
_overlay->GetWindowLevel(level, window);
_ImageViewer->FusionOn();
_overlay->OverlayOn();
@@ -545,15 +342,6 @@ void DicomImageView::SetFusionInput(DicomImageView *overlay)
}
void DicomImageView::Slot_WindowLevelEventForFusion(double level, double width)
{
if (IsFusion()) {
_ImageViewer->SetFusionColorLeveL(level);
_ImageViewer->SetFusionColorWindow(width);
_ImageViewer->Render();
}
}
void DicomImageView::IncreFusionOpacity(double percent) {
if (IsFusion()) {
_ImageViewer->IncreFusionOpacity(percent);
@@ -561,7 +349,6 @@ void DicomImageView::IncreFusionOpacity(double percent) {
}
}
//@{
/**
* Remove Fusion no matter it is base or overlay
*/
@@ -598,43 +385,6 @@ void DicomImageView::removeFusion()
_overlay->OverlayOff();
}
void DicomImageView::ActiveMeasure(Measure *m)
{
if (nullptr != _Series)
{
_ImageViewer->ActiveMeasure(m);
}
}
void DicomImageView::DeleteSelectedMeasure()
{
if (nullptr != _Series)
{
_ImageViewer->DeleteSelectedMeasure();
}
}
void DicomImageView::DeleteCurrentSliceMeasure()
{
if (nullptr != _Series)
{
_ImageViewer->DeleteCurrentSliceMeasure();
}
}
void DicomImageView::DeleteCurrentSeriesMeasure()
{
if (nullptr != _Series)
{
_ImageViewer->DeleteCurrentSeriesMeasure();
}
}
void DicomImageView::removeViewWithMeasure()
{
_ImageViewer->UnActiveMeasure();
_ImageViewer->DeleteCurrentSeriesMeasure();
}
void DicomImageView::setDicomImageView(SeriesImageSet *series)
{
if (!_ImageViewer){
@@ -644,7 +394,7 @@ void DicomImageView::setDicomImageView(SeriesImageSet *series)
_ImageViewer->SetupInteractor(m_glrenWin->GetInteractor());
}
//series->setVTKOpenGLNativeWidget(this->_glView);
CopyFromSeries(series);
LoadSeries(series);
//whenver change instance,set scroll value to zero
initScrollbar();
@@ -657,29 +407,12 @@ bool DicomImageView::HasSeries()
return _Series ;
}
void DicomImageView::Render()
void DicomImageView::LoadSeries(SeriesImageSet *series)
{
if (HasSeries())
{
if (_ImageViewer->GetvtkCornerAnnotation()) {
_ImageViewer->GetvtkCornerAnnotation()->SetMaximumFontSize(FontSizeHelper::getSize(frameGeometry().size()));
}
_ImageViewer->Render();
}
}
void DicomImageView::CopyFromSeries(SeriesImageSet *series)
{
_Series = series;
_ImageViewer->SetInputData(_Series->GetData());
_ImageViewer->initCornerInfo(series->GetProperty());
_ImageViewer->setUpImageViewer();
//以下是一些转接函数
//TODO: 考虑使用connect 替代 AddObserver,避免出现多种事件机制架构
connect(_ImageViewer->GetSignalRaiser(),&vtkSignalRaiser::raiseEvent, this, &DicomImageView::syncEventFunc);
@@ -698,8 +431,6 @@ void DicomImageView::updateWindowLevelCb(vtkObject*caller, unsigned long eid, vo
emit Signal_WindowLevelEventForFusion(_ImageViewer->GetColorLevel(), _ImageViewer->GetColorWindow());
}
void DicomImageView::scalarEventCb(vtkObject* sender, unsigned long eventId, void* calldata)
{
double* r = (double*)calldata;
@@ -719,6 +450,7 @@ void DicomImageView::scalarEventCb(vtkObject* sender, unsigned long eventId, voi
break;
}
}
void DicomImageView::doubleclickedEventCb(vtkObject* sender, unsigned long eventId, void* calldata) {
emit Signal_viewDoubleclicked(this);
}
@@ -781,14 +513,6 @@ int DicomImageView::getSeriesNumber()
return -1;
}
void DicomImageView::updateCornerInfoAll()
{
if (HasSeries())
{
_ImageViewer->updateCornerInfoAll();
}
}
void DicomImageView::ShowMetaData()
{
@@ -813,25 +537,47 @@ void DicomImageView::ShowMetaData()
}
}
void DicomImageView::resizeEvent(QResizeEvent *event)
//--view about--------------------------------------------------------------------------------------
void DicomImageView::Render()
{
if (HasSeries())
{
//auto size conner info
if (!_ImageViewer) return;
if (_ImageViewer->GetvtkCornerAnnotation()) {
_ImageViewer->GetvtkCornerAnnotation()->SetMaximumFontSize(FontSizeHelper::getSize(frameGeometry().size()));
}
_ImageViewer->Render();
}
if (isCine)
}
void DicomImageView::SetSlice(int slice)
{
//if (_vcr_toolbar->isVisible())
//we see the mountains as moutains,hh
if (_ImageViewer == nullptr)
{
int ax = (this->geometry().bottomLeft().x() + this->geometry().bottomRight().x()) / 2 + VCRHelper::getVCRXOffset();
int ay = (this->geometry().bottomLeft().y() + this->geometry().bottomRight().y()) / 2 + VCRHelper::getVCRYOffset();;
_vcr_toolbar->move(ax, ay);
return;
}
if (HasSeries())
{
_ImageViewer->SetSlice(slice);
//_ImageViewer->updateCornerInfo(TOP_LEFT);
_scrollBar->setValue(slice);
}
}
void DicomImageView::AddSlice(int step)
{
if (_ImageViewer == nullptr)
{
return;
}
if (HasSeries())
{
int curSlice = _ImageViewer->GetSlice() + step;
_ImageViewer->SetSlice(curSlice);
_scrollBar->setValue(curSlice);
}
}
void DicomImageView::SetZoomScale(double scale)
@@ -853,8 +599,243 @@ void DicomImageView::SetPanOffset(double * pan)
}
}
void DicomImageView::Slot_UpdateOrienInfo(TransFormType operation)
void DicomImageView::ResetPanZoom()
{
_ImageViewer->updateOrienInfo(operation);
if (HasSeries())
{
//necessary to reset pan
_ImageViewer->GetRenderer()->ResetCamera();
//necessary to reset zoom
_ImageViewer->GetRenderer()->GetActiveCamera()->SetParallelScale(_Series->GetExtent());
}
}
void DicomImageView::SetWindowLevel(double level, double width)
{
if (HasSeries())
{
_ImageViewer->SetColorLevel(level);
_ImageViewer->SetColorWindow(width);
//You have to call updateConerInfo manually
//only mouse event can rely on callback
_ImageViewer->updateCornerInfo(BOTTOM_RIGHT);
emit Signal_WindowLevelEventForFusion(level, width);
}
}
void DicomImageView::HFlip()
{
if (HasSeries()) {
int slice = _ImageViewer->GetSlice();
ResetPanZoom();
//HFlip
//_ImageViewer->GetRenderer()->GetActiveCamera()->SetViewUp(0, 1, 0);
_ImageViewer->GetRenderer()->GetActiveCamera()->Azimuth(180);
FlipExportHelper::toggleFlip();
//to avoid black out problem during slicing
//slicing is related with rotation, you have to recalculate to get it right
_ImageViewer->GetRenderer()->ResetCameraClippingRange();
_ImageViewer->SetSlice(slice);
_ImageViewer->GetRenderWindow()->Render();
emit Signal_Transformation(H_FLIP);
}
}
void DicomImageView::VFlip()
{
if (HasSeries()) {
//double scale = _ImageViewer->GetRenderer()->GetActiveCamera()->GetParallelScale();
int slice = _ImageViewer->GetSlice();
ResetPanZoom();
//Method 2: Order matters
_ImageViewer->GetRenderer()->GetActiveCamera()->Elevation(-180);
_ImageViewer->GetRenderer()->GetActiveCamera()->Roll(180);
//_ImageViewer->GetRenderer()->GetActiveCamera()->SetViewUp(0,-1,0);
FlipExportHelper::toggleFlip();
//to avoid black out problem during slicing
//slicing is related with rotation, you have to recalculate to get it right
_ImageViewer->GetRenderer()->ResetCameraClippingRange();
_ImageViewer->SetSlice(slice);
_ImageViewer->GetRenderWindow()->Render();
emit Signal_Transformation(V_FLIP);
}
}
void DicomImageView::Rotate(double angle, TransFormType operation)
{
if (HasSeries()) {
int slice = _ImageViewer->GetSlice();
ResetPanZoom();
_ImageViewer->GetRenderer()->GetActiveCamera()->Roll(angle);
//to avoid black out problem during slicing
//slcing is related with rotation, you have to recalculate to get it right
_ImageViewer->GetRenderer()->ResetCameraClippingRange();
_ImageViewer->SetSlice(slice);
_ImageViewer->GetRenderWindow()->Render();
emit Signal_Transformation(operation);
}
}
void DicomImageView::ClearTransformations()
{
if (HasSeries())
{
int slice = _ImageViewer->GetSlice();
ResetPanZoom();
double cameraPosition[3];
double vup[3];
_Series->getCameraCfg(vup, cameraPosition);
//necessary to reset flip and rotate
_ImageViewer->GetRenderer()->GetActiveCamera()->SetPosition(cameraPosition);
_ImageViewer->GetRenderer()->GetActiveCamera()->SetViewUp(vup);
//avoid black out problem
_ImageViewer->GetRenderer()->ResetCameraClippingRange();
_ImageViewer->SetSlice(slice);
//Render
_ImageViewer->GetRenderWindow()->Render();
emit Signal_Transformation(CLEAR);
}
}
void DicomImageView::updateCornerInfoAll()
{
if (HasSeries())
{
_ImageViewer->updateCornerInfoAll();
}
}
void DicomImageView::updateCornerInfoPrivacy()
{
if (HasSeries())
{
_ImageViewer->updateCornerInfo(TOP_RIGHT);
}
}
//--VCR about------------------------------------------------------------------
bool DicomImageView::isVCRVisible()
{
if (!_vcr_toolbar) return false;
return _vcr_toolbar->isVisible();
}
void DicomImageView::setVCRVisible(bool visible)
{
if (!_vcr_toolbar) return ;
_vcr_toolbar->setVisible(visible);
}
void DicomImageView::cineModeOn()
{
if (!_vcr_toolbar) return;
//updateVCRToolbarPos();
int ax = (this->geometry().bottomLeft().x() + this->geometry().bottomRight().x()) / 2 + VCRHelper::getVCRXOffset();
int ay = (this->geometry().bottomLeft().y() + this->geometry().bottomRight().y()) / 2 + VCRHelper::getVCRYOffset();
_vcr_toolbar->move(ax, ay);
_vcr_toolbar->show();
this->initCineModeThread();
_vcr_toolbar->reConnectController(_vcr_ctrl);
}
void DicomImageView::initCineModeThread()
{
_vcr_ctrl = new pqVCRController(nullptr, this);
_vcr_ctrl->moveToThread(&_thread);
connect(&_thread, &QThread::finished, _vcr_ctrl, &QObject::deleteLater);
_thread.start();
isCine = true;
}
void DicomImageView::onFirstFrame()
{
if (HasSeries()) {
_scrollBar->setValue(_ImageViewer->GetSliceMin());
}
}
void DicomImageView::onPreviousFrame()
{
if (HasSeries()) {
int slice = _ImageViewer->GetSlice();
slice = slice--;
int min_slice = _ImageViewer->GetSliceMin();
if (slice < min_slice)
{
slice = _ImageViewer->GetSliceMax();
}
_scrollBar->setValue(slice);
}
}
void DicomImageView::onNextFrame()
{
if (HasSeries()) {
int slice = _ImageViewer->GetSlice();
slice = slice++;
int max_slice = _ImageViewer->GetSliceMax();
if (slice > max_slice)
{
slice = _ImageViewer->GetSliceMin();
}
_scrollBar->setValue(slice);
}
}
void DicomImageView::onLastFrame()
{
if (HasSeries()) {
_scrollBar->setValue(_ImageViewer->GetSliceMax());
}
}
//-- Measure about--------------------------------------------------------------------------------------
void DicomImageView::ActiveMeasure(Measure *m)
{
if (nullptr != _Series)
{
_ImageViewer->ActiveMeasure(m);
}
}
void DicomImageView::DeleteSelectedMeasure()
{
if (nullptr != _Series)
{
_ImageViewer->DeleteSelectedMeasure();
}
}
void DicomImageView::DeleteCurrentSliceMeasure()
{
if (nullptr != _Series)
{
_ImageViewer->DeleteCurrentSliceMeasure();
}
}
void DicomImageView::DeleteCurrentSeriesMeasure()
{
if (nullptr != _Series)
{
_ImageViewer->DeleteCurrentSeriesMeasure();
}
}
void DicomImageView::removeViewWithMeasure()
{
_ImageViewer->UnActiveMeasure();
_ImageViewer->DeleteCurrentSeriesMeasure();
}

View File

@@ -68,8 +68,8 @@ public:
void updateCornerInfoPrivacy();
//Window level
void getWindowLevel(double &level, double &width);
void setWindowLevel(double level, double width);
void GetWindowLevel(double &level, double &width);
void SetWindowLevel(double level, double width);
//Transformation
void ClearTransformations();
@@ -208,7 +208,7 @@ private:
void ResetPanZoom();
void initScrollbar();
void CopyFromSeries(SeriesImageSet *series);
void LoadSeries(SeriesImageSet *series);
vtkSmartPointer <vtkGenericOpenGLRenderWindow> m_glrenWin;

View File

@@ -30,7 +30,7 @@ void Customwindow::setCurrentView(DicomImageView *cur)
}
double width = 0;
double level = 0;
m_curV->getWindowLevel(level, width);
m_curV->GetWindowLevel(level, width);
ui.led_WL->setText(QString("%1").arg(level));
ui.led_WW->setText(QString("%1").arg(width));
}
@@ -38,6 +38,6 @@ void Customwindow::setCurrentView(DicomImageView *cur)
void Customwindow::onBtnOKClicked()
{
m_curV->setWindowLevel(ui.led_WL->text().toDouble(), ui.led_WW->text().toDouble());
m_curV->SetWindowLevel(ui.led_WL->text().toDouble(), ui.led_WW->text().toDouble());
this->close();
}

View File

@@ -164,7 +164,7 @@ void ViewContainerWidget::Slot_SyncEvent(DicomImageView *view, int interactionMo
{
double *d = (double *)calldata;
printf("EndWindowLevel, scale param:%f,%f \r\n", d[0], d[1]);
v->setWindowLevel(d[1], d[0]);
v->SetWindowLevel(d[1], d[0]);
}
}
}