@@ -1,4 +1,4 @@
# include "infiniti Viewer.h"
# include "DICOMImage Viewer.h"
# include <vector>
# include <vtkCamera.h>
@@ -28,16 +28,16 @@
# include "Interaction/ActorDraggableInteractorStyle.h"
vtkStandardNewMacro ( infiniti Viewer) ;
vtkStandardNewMacro ( DICOMImage Viewer) ;
//-----------------------------------------------------------------------------
infiniti Viewer: : infiniti Viewer( )
DICOMImage Viewer: : DICOMImage Viewer( )
: vtkObject ( ) ,
RenderWindow ( nullptr ) , Renderer ( nullptr ) , ImageStack ( vtkImageStack : : New ( ) ) ,
ImageActor ( vtkImageSlice : : New ( ) ) , ImageMapper ( vtkImageSliceMapper : : New ( ) ) , FusionActor ( nullptr ) ,
FusionMapper ( nullptr ) , Interactor ( nullptr ) , InteractorStyle ( nullptr ) , OpacityActor ( nullptr ) ,
cornerAnnotation ( vtkCornerAnnotation : : New ( ) ) , bar ( nullptr ) ,
SliceOrientation ( infiniti Viewer: : SLICE_ORIENTATION_XY ) , FirstRender ( 1 ) , Slice ( 0 ) , loadedMeasureSlice ( 0 ) ,
SliceOrientation ( DICOMImage Viewer: : SLICE_ORIENTATION_XY ) , FirstRender ( 1 ) , Slice ( 0 ) , loadedMeasureSlice ( 0 ) ,
currentPresetIndex ( 1 ) , Fusion ( false ) , firstFusion ( true ) , FusionOpacity ( 0.5 ) , list ( nullptr ) ,
measureStore ( MeasureStore : : Instance ( ) ) ,
rulerActive ( false ) {
@@ -58,22 +58,22 @@ infinitiViewer::infinitiViewer()
cornerAnnotation - > SetMaximumFontSize ( FontSizeHelper : : font_size ) ;
vtkRenderWindow * renwin = vtkRenderWindow : : New ( ) ;
infiniti Viewer: : SetRenderWindow ( renwin ) ;
DICOMImage Viewer: : SetRenderWindow ( renwin ) ;
renwin - > Delete ( ) ;
vtkRenderer * ren = vtkRenderer : : New ( ) ;
infiniti Viewer: : SetRenderer ( ren ) ;
DICOMImage Viewer: : SetRenderer ( ren ) ;
ren - > Delete ( ) ;
infiniti Viewer: : InstallPipeline ( ) ;
DICOMImage Viewer: : InstallPipeline ( ) ;
uintptr_t handler = reinterpret_cast < uintptr_t > ( this ) ;
sprintf ( SOP_UID , " %llu " , handler ) ;
}
//-----------------------------------------------------------------------------
infiniti Viewer: : ~ infiniti Viewer( ) {
DICOMImage Viewer: : ~ DICOMImage Viewer( ) {
if ( this - > ImageMapper ) {
this - > ImageMapper - > SetInputData ( nullptr ) ;
this - > ImageMapper - > Delete ( ) ;
@@ -122,7 +122,7 @@ infinitiViewer::~infinitiViewer() {
//delete measureStore;
}
void infiniti Viewer: : SetupImageViewer ( ) {
void DICOMImage Viewer: : SetupImageViewer ( ) {
this - > SetColorLevel ( m_cornerInfo . win_level ) ;
this - > SetColorWindow ( m_cornerInfo . win_width ) ;
//this->GetRenderer()->ResetCamera();
@@ -133,19 +133,19 @@ void infinitiViewer::SetupImageViewer() {
}
// Render Pipe line------------------------------------------------------------
vtkImageData * infiniti Viewer: : GetInput ( ) {
vtkImageData * DICOMImage Viewer: : GetInput ( ) {
return this - > ImageMapper - > GetInput ( ) ;
}
vtkInformation * infiniti Viewer: : GetInputInformation ( ) {
vtkInformation * DICOMImage Viewer: : GetInputInformation ( ) {
return this - > ImageMapper - > GetInputInformation ( ) ;
}
vtkAlgorithm * infiniti Viewer: : GetInputAlgorithm ( ) {
vtkAlgorithm * DICOMImage Viewer: : GetInputAlgorithm ( ) {
return this - > ImageMapper - > GetInputAlgorithm ( ) ;
}
void infiniti Viewer: : SetupInteractor ( vtkRenderWindowInteractor * arg ) {
void DICOMImage Viewer: : SetupInteractor ( vtkRenderWindowInteractor * arg ) {
if ( this - > Interactor = = arg ) {
return ;
}
@@ -169,7 +169,7 @@ void infinitiViewer::SetupInteractor(vtkRenderWindowInteractor *arg) {
}
}
void infiniti Viewer: : SetRenderWindow ( vtkRenderWindow * arg ) {
void DICOMImage Viewer: : SetRenderWindow ( vtkRenderWindow * arg ) {
if ( this - > RenderWindow = = arg ) {
return ;
}
@@ -186,11 +186,11 @@ void infinitiViewer::SetRenderWindow(vtkRenderWindow *arg) {
this - > RenderWindow - > Register ( this ) ;
}
//add legend to render
this - > RenderWindow - > AddObserver ( vtkCommand : : EventIds : : RenderEvent , this , & infiniti Viewer: : RenderLegend ) ;
this - > RenderWindow - > AddObserver ( vtkCommand : : EventIds : : RenderEvent , this , & DICOMImage Viewer: : RenderLegend ) ;
this - > InstallPipeline ( ) ;
}
void infiniti Viewer: : SetRenderer ( vtkRenderer * arg ) {
void DICOMImage Viewer: : SetRenderer ( vtkRenderer * arg ) {
if ( this - > Renderer = = arg ) {
return ;
}
@@ -211,7 +211,7 @@ void infinitiViewer::SetRenderer(vtkRenderer *arg) {
this - > UpdateOrientation ( ) ;
}
void infiniti Viewer: : SetInputData ( vtkImageData * in ) {
void DICOMImage Viewer: : SetInputData ( vtkImageData * in ) {
if ( ! in ) return ;
# ifdef _DEBUG
printf ( " fusion imageDataOrigin:%f,%f,%f " , in - > GetOrigin ( ) [ 0 ] , in - > GetOrigin ( ) [ 1 ] , in - > GetOrigin ( ) [ 2 ] ) ;
@@ -226,20 +226,20 @@ void infinitiViewer::SetInputData(vtkImageData *in) {
defaultProjection [ 2 ] [ 2 ] = zVec > 0.0 ? 1.0 : - 1.0 ;
}
void infiniti Viewer: : SetInputConnection ( vtkAlgorithmOutput * input ) {
void DICOMImage Viewer: : SetInputConnection ( vtkAlgorithmOutput * input ) {
this - > ImageMapper - > SetInputConnection ( input ) ;
this - > RemoveFusionData ( ) ;
}
vtkTypeBool infiniti Viewer: : GetOffScreenRendering ( ) {
vtkTypeBool DICOMImage Viewer: : GetOffScreenRendering ( ) {
return this - > RenderWindow - > GetOffScreenRendering ( ) ;
}
void infiniti Viewer: : SetOffScreenRendering ( vtkTypeBool i ) {
void DICOMImage Viewer: : SetOffScreenRendering ( vtkTypeBool i ) {
this - > RenderWindow - > SetOffScreenRendering ( i ) ;
}
void infiniti Viewer: : InstallPipeline ( ) {
void DICOMImage Viewer: : InstallPipeline ( ) {
if ( this - > RenderWindow & & this - > Renderer ) {
this - > RenderWindow - > AddRenderer ( this - > Renderer ) ;
}
@@ -252,20 +252,20 @@ void infinitiViewer::InstallPipeline() {
this - > InteractorStyle - > SetCornerAnnotation ( cornerAnnotation ) ;
this - > InteractorStyle - > AddObserver ( ActorDraggableInteractorStyle : : DraggableStyleEvents : : EndMeasureEvent ,
this , & infiniti Viewer: : AddMeasures ) ;
this , & DICOMImage Viewer: : AddMeasures ) ;
this - > InteractorStyle - > AddObserver ( ActorDraggableInteractorStyle : : DraggableStyleEvents : : DeleteMeasureEvent ,
this , & infiniti Viewer: : RemoveMeasures ) ;
this , & DICOMImage Viewer: : RemoveMeasures ) ;
this - > InteractorStyle - > AddObserver ( ActorDraggableInteractorStyle : : DraggableStyleEvents : : SliceEvent , this ,
& infiniti Viewer: : ChangeSlice ) ;
& DICOMImage Viewer: : ChangeSlice ) ;
//for convert vtkEvent to Qt signal
this - > InteractorStyle - > AddObserver ( ActorDraggableInteractorStyle : : DraggableStyleEvents : : SlicedEvent , this ,
& infiniti Viewer: : raiseEvent ) ;
& DICOMImage Viewer: : raiseEvent ) ;
this - > InteractorStyle - > AddObserver ( ActorDraggableInteractorStyle : : DraggableStyleEvents : : EndDollyEvent , this ,
& infiniti Viewer: : raiseEvent ) ;
& DICOMImage Viewer: : raiseEvent ) ;
this - > InteractorStyle - > AddObserver ( vtkCommand : : EventIds : : EndWindowLevelEvent , this ,
& infiniti Viewer: : raiseEvent ) ;
this - > InteractorStyle - > AddObserver ( vtkCommand : : EventIds : : EndPanEvent , this , & infiniti Viewer: : raiseEvent ) ;
& DICOMImage Viewer: : raiseEvent ) ;
this - > InteractorStyle - > AddObserver ( vtkCommand : : EventIds : : EndPanEvent , this , & DICOMImage Viewer: : raiseEvent ) ;
}
this - > Interactor - > SetInteractorStyle ( this - > InteractorStyle ) ;
@@ -287,7 +287,7 @@ void infinitiViewer::InstallPipeline() {
loadedMeasureSlice = - 1 ;
}
void infiniti Viewer: : UnInstallPipeline ( ) {
void DICOMImage Viewer: : UnInstallPipeline ( ) {
if ( this - > ImageActor & & this - > ImageMapper ) {
// this->ImageActor->SetMapper(nullptr);
}
@@ -308,7 +308,7 @@ void infinitiViewer::UnInstallPipeline() {
}
}
void infiniti Viewer: : Render ( ) {
void DICOMImage Viewer: : Render ( ) {
if ( this - > FirstRender ) {
// // Initialize the size if not set yet
@@ -320,18 +320,18 @@ void infinitiViewer::Render() {
int xs = 0 , ys = 0 ;
switch ( this - > SliceOrientation ) {
case infiniti Viewer: : SLICE_ORIENTATION_XY :
case DICOMImage Viewer: : SLICE_ORIENTATION_XY :
default :
xs = w_ext [ 1 ] - w_ext [ 0 ] + 1 ;
ys = w_ext [ 3 ] - w_ext [ 2 ] + 1 ;
break ;
case infiniti Viewer: : SLICE_ORIENTATION_XZ :
case DICOMImage Viewer: : SLICE_ORIENTATION_XZ :
xs = w_ext [ 1 ] - w_ext [ 0 ] + 1 ;
ys = w_ext [ 5 ] - w_ext [ 4 ] + 1 ;
break ;
case infiniti Viewer: : SLICE_ORIENTATION_YZ :
case DICOMImage Viewer: : SLICE_ORIENTATION_YZ :
xs = w_ext [ 3 ] - w_ext [ 2 ] + 1 ;
ys = w_ext [ 5 ] - w_ext [ 4 ] + 1 ;
break ;
@@ -381,7 +381,7 @@ void infinitiViewer::Render() {
}
// slice about-----------------------------------------------------------------
void infiniti Viewer: : GetSliceRange ( int & min , int & max ) {
void DICOMImage Viewer: : GetSliceRange ( int & min , int & max ) {
vtkAlgorithm * input = this - > GetInputAlgorithm ( ) ;
if ( input ) {
input - > UpdateInformation ( ) ;
@@ -392,7 +392,7 @@ void infinitiViewer::GetSliceRange(int &min, int &max) {
}
}
int * infiniti Viewer: : GetSliceRange ( ) {
int * DICOMImage Viewer: : GetSliceRange ( ) {
vtkAlgorithm * input = this - > GetInputAlgorithm ( ) ;
if ( input ) {
input - > UpdateInformation ( ) ;
@@ -402,7 +402,7 @@ int *infinitiViewer::GetSliceRange() {
return nullptr ;
}
int infiniti Viewer: : GetSliceMin ( ) {
int DICOMImage Viewer: : GetSliceMin ( ) {
int * range = this - > GetSliceRange ( ) ;
if ( range ) {
return range [ 0 ] ;
@@ -410,7 +410,7 @@ int infinitiViewer::GetSliceMin() {
return 0 ;
}
int infiniti Viewer: : GetSliceMax ( ) {
int DICOMImage Viewer: : GetSliceMax ( ) {
int * range = this - > GetSliceRange ( ) ;
if ( range ) {
return range [ 1 ] ;
@@ -418,11 +418,11 @@ int infinitiViewer::GetSliceMax() {
return 0 ;
}
int infiniti Viewer: : GetSlice ( ) {
int DICOMImage Viewer: : GetSlice ( ) {
return this - > ImageMapper - > GetSliceNumber ( ) ;
}
void infiniti Viewer: : SetSlice ( int slice ) {
void DICOMImage Viewer: : SetSlice ( int slice ) {
int * range = this - > GetSliceRange ( ) ;
if ( range ) {
if ( slice < range [ 0 ] ) {
@@ -470,7 +470,7 @@ void infinitiViewer::SetSlice(int slice) {
}
}
void infiniti Viewer: : ChangeSlice ( vtkObject * , unsigned long eventid , void * calldata ) {
void DICOMImage Viewer: : ChangeSlice ( vtkObject * , unsigned long eventid , void * calldata ) {
int lastSlice = GetSlice ( ) ;
int * p = ( int * ) calldata ;
int newSlice = lastSlice + ( * p ) ;
@@ -478,7 +478,7 @@ void infinitiViewer::ChangeSlice(vtkObject *, unsigned long eventid, void *calld
SetSlice ( newSlice ) ;
}
void infiniti Viewer: : GetSlicePoint ( double * point ) {
void DICOMImage Viewer: : GetSlicePoint ( double * point ) {
double focusPoint [ 4 ] = { point [ 0 ] , point [ 1 ] , point [ 2 ] , 1.0 } ;
Renderer - > GetActiveCamera ( ) - > GetFocalPoint ( focusPoint ) ;
ModelToWorldMatrix - > MultiplyPoint ( focusPoint , focusPoint ) ;
@@ -487,7 +487,7 @@ void infinitiViewer::GetSlicePoint(double *point) {
point [ 2 ] = focusPoint [ 2 ] ;
}
void infiniti Viewer: : applySliceOffset ( double offset , double direction ) {
void DICOMImage Viewer: : applySliceOffset ( double offset , double direction ) {
double projV = Renderer - > GetActiveCamera ( ) - > GetDirectionOfProjection ( ) [ SliceOrientation ] ;
double defaultProjV = defaultProjection [ SliceOrientation ] [ SliceOrientation ] ;
// 根据投影向量判断当前镜头方向, innerDirection>0 与默认同向, innerDirection<0 与默认反向
@@ -502,7 +502,7 @@ void infinitiViewer::applySliceOffset(double offset, double direction){
UpdateTopLeftCornerInfo ( ) ;
}
vtkPoints * infiniti Viewer: : GetSliceBoundPoints ( ) {
vtkPoints * DICOMImage Viewer: : GetSliceBoundPoints ( ) {
double bounds [ 6 ] = { .0 , .0 , .0 , .0 , .0 , .0 } ;
ImageMapper - > GetBounds ( bounds ) ;
vtkCamera * camera = this - > Renderer - > GetActiveCamera ( ) ;
@@ -541,7 +541,7 @@ vtkPoints* infinitiViewer::GetSliceBoundPoints() {
return worldPts ;
}
void infiniti Viewer: : updateReferenceLine ( vtkPoints * worldPts ) {
void DICOMImage Viewer: : updateReferenceLine ( vtkPoints * worldPts ) {
//model to world
for ( vtkIdType i = 0 ; i < worldPts - > GetNumberOfPoints ( ) ; + + i ) {
double temp [ 4 ] = { .0 , .0 , .0 , 1. } ;
@@ -552,13 +552,13 @@ void infinitiViewer::updateReferenceLine(vtkPoints* worldPts){
Render ( ) ;
}
void infiniti Viewer: : modifiedReferenceLine ( ) {
void DICOMImage Viewer: : modifiedReferenceLine ( ) {
//model to world
referenceLine - > Modified ( ) ;
Render ( ) ;
}
void infiniti Viewer: : SyncSlicePoint ( double * point ) {
void DICOMImage Viewer: : SyncSlicePoint ( double * point ) {
double focusPoint [ 4 ] = { point [ 0 ] , point [ 1 ] , point [ 2 ] , 1.0 } ;
WorldToModelMatrix - > MultiplyPoint ( focusPoint , focusPoint ) ;
double f [ 3 ] = { .0 , .0 , .0 } ;
@@ -572,20 +572,20 @@ void infinitiViewer::SyncSlicePoint(double *point) {
}
// zoom------------------------------------------------------------------------
void infiniti Viewer: : SetZoomScale ( double scale ) {
void DICOMImage Viewer: : SetZoomScale ( double scale ) {
if ( Renderer ) {
Renderer - > GetActiveCamera ( ) - > SetParallelScale ( scale ) ;
}
}
double infiniti Viewer: : GetZoomScale ( ) {
double DICOMImage Viewer: : GetZoomScale ( ) {
if ( Renderer ) {
return Renderer - > GetActiveCamera ( ) - > GetParallelScale ( ) ;
}
return 0.0 ;
}
void infiniti Viewer: : ResetZoomScaleToFitWindowSize ( ) {
void DICOMImage Viewer: : ResetZoomScaleToFitWindowSize ( ) {
vtkImageData * inputData = nullptr ;
if ( Renderer & & ( inputData = GetInput ( ) ) ) {
double proj [ 4 ] = { 0 , 0 , 0 , 1 } ;
@@ -616,7 +616,7 @@ void infinitiViewer::ResetZoomScaleToFitWindowSize() {
}
// pan-------------------------------------------------------------------------
void infiniti Viewer: : applyPanOffset ( const double * point ) {
void DICOMImage Viewer: : applyPanOffset ( const double * point ) {
double fp [ 3 ] = { 0.0 , 0.0 , 0.0 } ;
Renderer - > GetActiveCamera ( ) - > GetPosition ( fp ) ;
fp [ 0 ] = fp [ 0 ] + point [ 0 ] ;
@@ -631,7 +631,7 @@ void infinitiViewer::applyPanOffset(const double *point) {
}
void infiniti Viewer: : shiftCamera ( const double * point ) {
void DICOMImage Viewer: : shiftCamera ( const double * point ) {
double fp [ 3 ] = { 0.0 , 0.0 , 0.0 } ;
double newP [ 3 ] = { point [ 0 ] , point [ 1 ] , point [ 2 ] } ;
Renderer - > GetActiveCamera ( ) - > GetPosition ( fp ) ;
@@ -644,23 +644,23 @@ void infinitiViewer::shiftCamera(const double *point) {
}
// window----------------------------------------------------------------------
double infiniti Viewer: : GetColorWindow ( ) {
double DICOMImage Viewer: : GetColorWindow ( ) {
return this - > ImageActor - > GetProperty ( ) - > GetColorWindow ( ) ;
}
double infiniti Viewer: : GetColorLevel ( ) {
double DICOMImage Viewer: : GetColorLevel ( ) {
return this - > ImageActor - > GetProperty ( ) - > GetColorLevel ( ) ;
}
void infiniti Viewer: : SetColorWindow ( double s ) {
void DICOMImage Viewer: : SetColorWindow ( double s ) {
this - > ImageActor - > GetProperty ( ) - > SetColorWindow ( s ) ;
}
void infiniti Viewer: : SetColorLevel ( double s ) {
void DICOMImage Viewer: : SetColorLevel ( double s ) {
this - > ImageActor - > GetProperty ( ) - > SetColorLevel ( s ) ;
}
void infiniti Viewer: : SetNegativeMode ( bool negative ) {
void DICOMImage Viewer: : SetNegativeMode ( bool negative ) {
if ( negative ) {
double window = this - > ImageActor - > GetProperty ( ) - > GetColorWindow ( ) ;
double level = this - > ImageActor - > GetProperty ( ) - > GetColorLevel ( ) ;
@@ -680,7 +680,7 @@ void infinitiViewer::SetNegativeMode(bool negative) {
}
}
void infiniti Viewer: : SetLookupTable ( vtkLookupTable * lut ) {
void DICOMImage Viewer: : SetLookupTable ( vtkLookupTable * lut ) {
this - > ImageActor - > GetProperty ( ) - > SetLookupTable ( lut ) ;
}
@@ -691,7 +691,7 @@ bool simpleFusionableCheck(vtkImageData *a, vtkImageData *b) {
return ( origin1 [ 0 ] = = origin2 [ 0 ] ) & & ( origin1 [ 1 ] = = origin2 [ 1 ] ) & & ( origin1 [ 2 ] = = origin2 [ 2 ] ) ;
}
void infiniti Viewer: : SetFusionInputData ( vtkImageData * data , vtkMatrix4x4 * matrix ) {
void DICOMImage Viewer: : SetFusionInputData ( vtkImageData * data , vtkMatrix4x4 * matrix ) {
if ( ! this - > GetInput ( ) ) return ;
if ( ! simpleFusionableCheck ( data , this - > GetInput ( ) ) ) return ;
if ( ! this - > FusionMapper ) {
@@ -770,28 +770,28 @@ void infinitiViewer::SetFusionInputData(vtkImageData *data, vtkMatrix4x4* matrix
}
void infiniti Viewer: : SetFusionColorLeveL ( double level ) {
void DICOMImage Viewer: : SetFusionColorLeveL ( double level ) {
if ( FusionActor ) {
FusionActor - > GetProperty ( ) - > SetColorLevel ( level ) ;
PrepareFusionColorTable ( FusionActor - > GetProperty ( ) - > GetLookupTable ( ) ) ;
}
}
void infiniti Viewer: : SetFusionColorWindow ( double window ) {
void DICOMImage Viewer: : SetFusionColorWindow ( double window ) {
if ( FusionActor ) {
FusionActor - > GetProperty ( ) - > SetColorWindow ( window ) ;
PrepareFusionColorTable ( FusionActor - > GetProperty ( ) - > GetLookupTable ( ) ) ;
}
}
void infiniti Viewer: : SetScalarBarTitle ( double FusionOpa ) {
void DICOMImage Viewer: : SetScalarBarTitle ( double FusionOpa ) {
int opa = int ( FusionOpa * 100 ) ;
std : : string str_opa = std : : to_string ( opa ) ;
str_opa . append ( " % " ) ;
OpacityActor - > SetInput ( str_opa . c_str ( ) ) ;
}
void infiniti Viewer: : IncreFusionOpacity ( double percent ) {
void DICOMImage Viewer: : IncreFusionOpacity ( double percent ) {
if ( FusionActor ) {
FusionOpacity + = percent ;
FusionOpacity = FusionOpacity > 1.0 ? 1.0 : FusionOpacity ;
@@ -802,7 +802,7 @@ void infinitiViewer::IncreFusionOpacity(double percent) {
}
}
void infiniti Viewer: : SetFusionOpacity ( double opacity ) {
void DICOMImage Viewer: : SetFusionOpacity ( double opacity ) {
if ( FusionActor ) {
opacity = opacity > 1.0 ? 1.0 : opacity ;
opacity = opacity < 0.0 ? 0.0 : opacity ;
@@ -842,7 +842,7 @@ void prepareTransferFunction(vtkDiscretizableColorTransferFunction *table, vtkIm
table - > EnableOpacityMappingOn ( ) ;
}
void infiniti Viewer: : SetFusionColorTable ( vtkScalarsToColors * table ) {
void DICOMImage Viewer: : SetFusionColorTable ( vtkScalarsToColors * table ) {
if ( ! FusionActor ) return ;
PrepareFusionColorTable ( table , true ) ;
FusionActor - > GetProperty ( ) - > SetLookupTable ( table ) ;
@@ -851,7 +851,7 @@ void infinitiViewer::SetFusionColorTable(vtkScalarsToColors *table) {
# endif
}
void infiniti Viewer: : SetFusionColorPreset ( const char * preset ) {
void DICOMImage Viewer: : SetFusionColorPreset ( const char * preset ) {
auto values = ColorMapReader : : DefaultPresets ( ) - > GetPresetValues ( preset ) ;
auto PresetType = ColorMapReader : : DefaultPresets ( ) - > GetPresetType ( preset ) ;
@@ -888,7 +888,7 @@ void infinitiViewer::SetFusionColorPreset(const char *preset) {
}
}
void infiniti Viewer: : PrepareFusionColorTable ( vtkScalarsToColors * table , bool reset ) {
void DICOMImage Viewer: : PrepareFusionColorTable ( vtkScalarsToColors * table , bool reset ) {
const auto prop = FusionActor - > GetProperty ( ) ;
table - > SetAlpha ( FusionOpacity ) ;
if ( table - > IsA ( " vtkLookupTable " ) ) {
@@ -913,7 +913,7 @@ void infinitiViewer::PrepareFusionColorTable(vtkScalarsToColors *table, bool res
table - > Build ( ) ;
}
void infiniti Viewer: : RemoveFusionActor ( ) {
void DICOMImage Viewer: : RemoveFusionActor ( ) {
this - > Renderer - > RemoveActor ( bar ) ;
bar - > Delete ( ) ;
bar = nullptr ;
@@ -922,7 +922,7 @@ void infinitiViewer::RemoveFusionActor() {
OpacityActor = nullptr ;
}
void infiniti Viewer: : RemoveFusionData ( ) {
void DICOMImage Viewer: : RemoveFusionData ( ) {
if ( ! FusionMapper ) return ;
if ( ImageStack - > HasImage ( FusionActor ) ) {
ImageStack - > RemoveImage ( FusionActor ) ;
@@ -938,7 +938,7 @@ void infinitiViewer::RemoveFusionData() {
//this->Render();
}
void infiniti Viewer: : SwitchToNextPreset ( ) {
void DICOMImage Viewer: : SwitchToNextPreset ( ) {
if ( ColorMapReader : : DefaultPresets ( ) ) {
//const char* preset3 = ColorMapReader::DefaultPresets()->GetPresetNames().at(currentPresetIndex).data();
@@ -952,40 +952,40 @@ void infinitiViewer::SwitchToNextPreset() {
}
// window about----------------------------------------------------------------
void infiniti Viewer: : SetPosition ( int x , int y ) {
void DICOMImage Viewer: : SetPosition ( int x , int y ) {
this - > RenderWindow - > SetPosition ( x , y ) ;
}
int * infiniti Viewer: : GetPosition ( ) {
int * DICOMImage Viewer: : GetPosition ( ) {
return this - > RenderWindow - > GetPosition ( ) ;
}
void infiniti Viewer: : SetDisplayId ( void * a ) {
void DICOMImage Viewer: : SetDisplayId ( void * a ) {
this - > RenderWindow - > SetDisplayId ( a ) ;
}
void infiniti Viewer: : SetWindowId ( void * a ) {
void DICOMImage Viewer: : SetWindowId ( void * a ) {
this - > RenderWindow - > SetWindowId ( a ) ;
}
const char * infiniti Viewer: : GetWindowName ( ) {
const char * DICOMImage Viewer: : GetWindowName ( ) {
return this - > RenderWindow - > GetWindowName ( ) ;
}
void infiniti Viewer: : SetParentId ( void * a ) {
void DICOMImage Viewer: : SetParentId ( void * a ) {
this - > RenderWindow - > SetParentId ( a ) ;
}
// measure--------------------------------------------------------------------
void infiniti Viewer: : ActiveMeasure ( Measure * m ) {
void DICOMImage Viewer: : ActiveMeasure ( Measure * m ) {
this - > InteractorStyle - > ActiveMeasure ( m ) ;
}
void infiniti Viewer: : UnActiveMeasure ( ) {
void DICOMImage Viewer: : UnActiveMeasure ( ) {
this - > InteractorStyle - > UnActiveMeasure ( ) ;
}
void infiniti Viewer: : LoadMeasures ( bool forceReload ) {
void DICOMImage Viewer: : LoadMeasures ( bool forceReload ) {
if ( ! forceReload & & this - > loadedMeasureSlice = = this - > ImageMapper - > GetSliceNumber ( ) ) return ;
this - > loadedMeasureSlice = this - > ImageMapper - > GetSliceNumber ( ) ;
@@ -993,7 +993,7 @@ void infinitiViewer::LoadMeasures(bool forceReload) {
ReloadCurrentSliceMeasure ( ) ;
}
void infiniti Viewer: : ReloadCurrentSliceMeasure ( ) {
void DICOMImage Viewer: : ReloadCurrentSliceMeasure ( ) {
list = measureStore - > GetMeasures ( SOP_UID , this - > SliceOrientation , ImageMapper - > GetSliceNumber ( ) ) ;
if ( list ) {
@@ -1005,7 +1005,7 @@ void infinitiViewer::ReloadCurrentSliceMeasure() {
}
}
void infiniti Viewer: : ClearCurrentSliceMeasure ( ) const {
void DICOMImage Viewer: : ClearCurrentSliceMeasure ( ) const {
if ( list ) {
for ( int i = 0 ; i < list - > length ( ) ; i + + ) {
auto item = list - > value ( i ) ;
@@ -1015,7 +1015,7 @@ void infinitiViewer::ClearCurrentSliceMeasure() const {
}
}
void infiniti Viewer: : AddMeasures ( vtkObject * , unsigned long eventid , void * calldata ) {
void DICOMImage Viewer: : AddMeasures ( vtkObject * , unsigned long eventid , void * calldata ) {
auto m = static_cast < Measure * > ( calldata ) ;
if ( m - > Valid ( ) ) {
measureStore - > Store ( SOP_UID , this - > SliceOrientation , this - > ImageMapper - > GetSliceNumber ( ) , m ) ;
@@ -1024,7 +1024,7 @@ void infinitiViewer::AddMeasures(vtkObject *, unsigned long eventid, void *calld
this - > Render ( ) ;
}
void infiniti Viewer: : RemoveMeasures ( vtkObject * , unsigned long eventid , void * calldata ) {
void DICOMImage Viewer: : RemoveMeasures ( vtkObject * , unsigned long eventid , void * calldata ) {
auto p = static_cast < vtkProp * > ( calldata ) ;
auto da = DraggableActor : : SafeDownCast ( p ) ;
auto m = dynamic_cast < Measure * > ( da ) ;
@@ -1035,13 +1035,13 @@ void infinitiViewer::RemoveMeasures(vtkObject *, unsigned long eventid, void *ca
this - > Render ( ) ;
}
void infiniti Viewer: : DeleteSelectedMeasure ( ) {
void DICOMImage Viewer: : DeleteSelectedMeasure ( ) {
if ( this - > InteractorStyle - > GetSelectedProp ( ) ) {
RemoveMeasures ( nullptr , 0 , this - > InteractorStyle - > GetSelectedProp ( ) ) ;
}
}
void infiniti Viewer: : DeleteCurrentSliceMeasure ( ) {
void DICOMImage Viewer: : DeleteCurrentSliceMeasure ( ) {
this - > InteractorStyle - > ClearSelectedProp ( ) ;
ClearCurrentSliceMeasure ( ) ;
measureStore - > RemoveAllInSlice ( SOP_UID , this - > SliceOrientation , this - > ImageMapper - > GetSliceNumber ( ) ) ;
@@ -1049,7 +1049,7 @@ void infinitiViewer::DeleteCurrentSliceMeasure() {
this - > Render ( ) ;
}
void infiniti Viewer: : DeleteCurrentSeriesMeasure ( ) {
void DICOMImage Viewer: : DeleteCurrentSeriesMeasure ( ) {
this - > InteractorStyle - > ClearSelectedProp ( ) ;
ClearCurrentSliceMeasure ( ) ;
measureStore - > RemoveAllInSeries ( SOP_UID ) ;
@@ -1075,7 +1075,7 @@ public:
} ;
void infiniti Viewer: : InitCornerInfo ( ExtendMedicalImageProperties * pSeries ) {
void DICOMImage Viewer: : InitCornerInfo ( ExtendMedicalImageProperties * pSeries ) {
// mono and has preset
if ( pSeries - > GetNumberOfWindowLevelPresets ( ) > 0 & & pSeries - > GetSamplePerPixel ( ) = = 1 ) {
double * wwwl = pSeries - > GetNthWindowLevelPreset ( 0 ) ;
@@ -1116,19 +1116,19 @@ void infinitiViewer::InitCornerInfo(ExtendMedicalImageProperties *pSeries) {
m_cornerInfo . ConstAnno [ TOP_RIGHT_PRIVACY ] . append ( " \n " ) ;
}
void infiniti Viewer: : SetCoordsTransformMatrix ( ExtendMedicalImageProperties * pSeries ) const {
void DICOMImage Viewer: : SetCoordsTransformMatrix ( ExtendMedicalImageProperties * pSeries ) const {
OrientationMatrix - > DeepCopy ( pSeries - > GetOrientationMatrix ( ) ) ;
WorldToModelMatrix - > DeepCopy ( pSeries - > GetWorldToModelMatrix ( ) ) ;
ModelToWorldMatrix - > DeepCopy ( pSeries - > GetModelToWorldMatrix ( ) ) ;
}
void infiniti Viewer: : InitTopLeftCornerInfo ( const std : : string & lbl_ser_num , const std : : string & ser_num ) {
void DICOMImage Viewer: : InitTopLeftCornerInfo ( const std : : string & lbl_ser_num , const std : : string & ser_num ) {
m_cornerInfo . ConstAnno [ TOP_LEFT ] . append ( lbl_ser_num ) ;
m_cornerInfo . ConstAnno [ TOP_LEFT ] . append ( " " ) ;
m_cornerInfo . ConstAnno [ TOP_LEFT ] . append ( ser_num ) ;
}
void infiniti Viewer: : UpdateCornerInfo ( int index ) {
void DICOMImage Viewer: : UpdateCornerInfo ( int index ) {
if ( AnnoHelper : : GetVisibility ( ) ) {
if ( index = = TOP_LEFT ) {
@@ -1166,7 +1166,7 @@ void infinitiViewer::UpdateCornerInfo(int index) {
this - > Render ( ) ;
}
void infiniti Viewer: : UpdateCornerInfoAll ( ) {
void DICOMImage Viewer: : UpdateCornerInfoAll ( ) {
if ( AnnoHelper : : GetVisibility ( ) ) {
UpdateCornerInfo ( TOP_LEFT ) ;
UpdateCornerInfo ( BOTTOM_RIGHT ) ;
@@ -1183,7 +1183,7 @@ void infinitiViewer::UpdateCornerInfoAll() {
}
}
void infiniti Viewer: : UpdateTopLeftCornerInfo ( ) {
void DICOMImage Viewer: : UpdateTopLeftCornerInfo ( ) {
if ( AnnoHelper : : GetVisibility ( ) ) {
int maxSlice = this - > GetSliceMax ( ) ;
int currentSlice = this - > GetSlice ( ) ;
@@ -1196,9 +1196,9 @@ void infinitiViewer::UpdateTopLeftCornerInfo() {
}
// SliceOrientation------------------------------------------------------------
void infiniti Viewer: : SetSliceOrientation ( int orientation ) {
if ( orientation < infiniti Viewer: : SLICE_ORIENTATION_YZ | |
orientation > infiniti Viewer: : SLICE_ORIENTATION_XY ) {
void DICOMImage Viewer: : SetSliceOrientation ( int orientation ) {
if ( orientation < DICOMImage Viewer: : SLICE_ORIENTATION_YZ | |
orientation > DICOMImage Viewer: : SLICE_ORIENTATION_XY ) {
vtkErrorMacro ( " Error - invalid slice orientation " < < orientation ) ;
return ;
}
@@ -1231,7 +1231,7 @@ void infinitiViewer::SetSliceOrientation(int orientation) {
}
//TODO: 暂时只有正交数据! ! ! 否则强制转型会有一些问题
int infiniti Viewer: : GetWorldSliceOrientation ( ) {
int DICOMImage Viewer: : GetWorldSliceOrientation ( ) {
double orientations [ 4 ] = { .0 , .0 , .0 , 1.0 } ;
orientations [ SliceOrientation ] = 1.0 ;
OrientationMatrix - > MultiplyPoint ( orientations , orientations ) ;
@@ -1239,13 +1239,13 @@ int infinitiViewer::GetWorldSliceOrientation() {
}
// Orientation (with corner text)----------------------------------------------
void infiniti Viewer: : UpdateOrientation ( ) {
void DICOMImage Viewer: : UpdateOrientation ( ) {
// Set the camera position
vtkCamera * cam = this - > Renderer ? this - > Renderer - > GetActiveCamera ( ) : nullptr ;
if ( cam ) {
switch ( SliceOrientation ) {
case infiniti Viewer: : SLICE_ORIENTATION_XY : {
case DICOMImage Viewer: : SLICE_ORIENTATION_XY : {
cam - > SetFocalPoint ( 0 , 0 , 0 ) ;
cam - > SetPosition ( 0 , 0 , - 1 ) ;
cam - > SetViewUp ( 0 , - 1 , 0 ) ;
@@ -1253,7 +1253,7 @@ void infinitiViewer::UpdateOrientation() {
}
//Z轴负数间隔, 则Z轴的slice为反方向堆叠
//初始的朝向和ViewUp都需要调整
case infiniti Viewer: : SLICE_ORIENTATION_XZ : {
case DICOMImage Viewer: : SLICE_ORIENTATION_XZ : {
double zVec = GetInput ( ) - > GetSpacing ( ) [ 2 ] ;
double upVal = ( zVec > 0.0 ? 1.0 : - 1.0 ) ;
cam - > SetFocalPoint ( 0 , 0 , 0 ) ;
@@ -1261,7 +1261,7 @@ void infinitiViewer::UpdateOrientation() {
cam - > SetViewUp ( 0 , 0 , - 1.0 * upVal ) ;
break ;
}
case infiniti Viewer: : SLICE_ORIENTATION_YZ : {
case DICOMImage Viewer: : SLICE_ORIENTATION_YZ : {
double zVec = GetInput ( ) - > GetSpacing ( ) [ 2 ] ;
double upVal = ( zVec > 0.0 ? 1.0 : - 1.0 ) ;
cam - > SetFocalPoint ( 0 , 0 , 0 ) ;
@@ -1290,7 +1290,7 @@ int getOppositeOrientation(int f) {
return f + 1 - inner_idx * 2 ;
}
void infiniti Viewer: : UpdateOrientationInfo ( ) {
void DICOMImage Viewer: : UpdateOrientationInfo ( ) {
static const char * dds [ 6 ] = { " R " , " L " , " A " , " P " , " F " , " H " } ;
double proj [ 4 ] = { 0 , 0 , 0 , 1 } ;
Renderer - > GetActiveCamera ( ) - > GetDirectionOfProjection ( proj ) ;
@@ -1317,23 +1317,23 @@ void infinitiViewer::UpdateOrientationInfo() {
}
// ruler legend----------------------------------------------------------------
void infiniti Viewer: : ActiveRuler ( ) {
void DICOMImage Viewer: : ActiveRuler ( ) {
rulerActive = true ;
}
void infiniti Viewer: : UnActiveRuler ( ) {
void DICOMImage Viewer: : UnActiveRuler ( ) {
rulerActive = false ;
}
void infiniti Viewer: : ActiveReferenceLine ( ) {
void DICOMImage Viewer: : ActiveReferenceLine ( ) {
referenceLine - > SetVisibility ( true ) ;
}
void infiniti Viewer: : UnActiveReferenceLine ( ) {
void DICOMImage Viewer: : UnActiveReferenceLine ( ) {
referenceLine - > SetVisibility ( false ) ;
}
void infiniti Viewer: : RenderLegend ( ) {
void DICOMImage Viewer: : RenderLegend ( ) {
if ( AnnoHelper : : GetVisibility ( ) ) {
if ( Renderer ) {
if ( rulerActive ) ruler - > RenderOverlay ( Renderer ) ;
@@ -1343,16 +1343,16 @@ void infinitiViewer::RenderLegend() {
}
// size------------------------------------------------------------------------
void infiniti Viewer: : SetSize ( int width , int height ) {
void DICOMImage Viewer: : SetSize ( int width , int height ) {
this - > RenderWindow - > SetSize ( width , height ) ;
}
int * infiniti Viewer: : GetSize ( ) {
int * DICOMImage Viewer: : GetSize ( ) {
return this - > RenderWindow - > GetSize ( ) ;
}
//print self-------------------------------------------------------------------
void infiniti Viewer: : PrintSelf ( ostream & os , vtkIndent indent ) {
void DICOMImage Viewer: : PrintSelf ( ostream & os , vtkIndent indent ) {
this - > Superclass : : PrintSelf ( os , indent ) ;
os < < indent < < " RenderWindow: \n " ;