⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 base.cpp

📁 关于医学图象处理程序的VTK
💻 CPP
字号:
// Base.cpp: implementation of the CBase class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "VTK.h"
#include "Base.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CBase::CBase()
{
	m_Flag=FALSE;
	m_Flag3D=FALSE;
	this->m_ContourFilter=vtkContourFilter::New();
    this->m_DICOMReader=vtkDICOMImageReader::New();
	this->m_Viewer=vtkImageViewer::New();
    this->m_RenWinInteractor=vtkRenderWindowInteractor::New();
	this->m_BMPReader=vtkBMPReader::New();
	this->m_PNGReader=vtkPNGReader::New();
	this->m_TIFFReader=vtkTIFFReader::New();
	this->m_PNMReader=vtkPNMReader::New();
	this->m_DICOMReader3D=vtkDICOMImageReader::New();
    this->m_MarchingCubes3D=vtkMarchingCubes::New();
    this->m_JPEGReader=vtkJPEGReader::New();
	this->m_DataSetReader=vtkDataSetReader::New();
}

CBase::~CBase()
{
    this->m_DICOMReader->Delete();
    this->m_Viewer->Delete();
    this->m_RenWinInteractor->Delete();
    this->m_BMPReader->Delete();
    this->m_PNGReader->Delete();
	this->m_TIFFReader->Delete();
	this->m_PNMReader->Delete();
	this->m_DICOMReader3D->Delete();
	this->m_MarchingCubes3D->Delete();
	this->m_ContourFilter->Delete();
	this->m_JPEGReader->Delete();
	this->m_DataSetReader->Delete();
	//this->m_RenWinInter->Delete();
}

vtkDICOMImageReader* CBase::GetDICOMReader3D()
{
	return m_DICOMReader3D;
}

vtkDICOMImageReader* CBase::GetDICOMReader()
{
	return m_DICOMReader;
}

vtkImageViewer* CBase::GetViewer()
{
	return m_Viewer;
}

BOOL CBase::GetFlag3D()
{
	return m_Flag3D;
}

void CBase::SetFlag3D(BOOL TRUEORFALSE)
{
   m_Flag3D=TRUEORFALSE;
}

vtkMarchingCubes* CBase::GetMarchingCubes()
{
   return m_MarchingCubes3D;
}

vtkContourFilter* CBase::GetContourFilter()
{
	return m_ContourFilter;
}

void CBase::vtkShowImage(vtkImageData *id)
{
	vtkImageViewer* m_Viewer1=vtkImageViewer::New();
	m_Viewer1->SetInput(id);
	m_Viewer1->SetColorWindow(255);
	m_Viewer1->SetColorLevel(128);
	m_Viewer1->SetPosition(0,0);

	m_Viewer1->Render();
}

vtkBMPReader* CBase::GetBMPReader()
{
	return m_BMPReader;
}

vtkJPEGReader* CBase::GetJPEGReader()
{
	return m_JPEGReader;
}

vtkPNGReader* CBase::GetPNGReader()
{
	return m_PNGReader;
}

vtkPNMReader* CBase::GetPNMReader()
{
	return m_PNMReader;
}

vtkTIFFReader* CBase::GetTIFFReader()
{
	return m_TIFFReader;
}

vtkDataSetReader* CBase::GetDataSetReader()
{
	return m_DataSetReader;
}

void CBase::vtkShowGraph(vtkDataSetReader *m_DataSetReader)
{
	vtkDataSetMapper *m_Mapper = vtkDataSetMapper::New();
	m_Mapper->SetInput(m_DataSetReader->GetOutput() );

    vtkActor *m_Actor = vtkActor::New();
    m_Actor->SetMapper(m_Mapper);

	//m_Actor->GetProperty()->SetColor(0.6, 0.6, 0.6);
	m_Actor->RotateX(90);

	vtkRenderer *ren1= vtkRenderer::New();
	ren1->AddActor(m_Actor);
	ren1->SetBackground( 0, 0, 0 );

	vtkRenderWindow *renWin = vtkRenderWindow::New();
	renWin->AddRenderer( ren1 );
	renWin->SetSize( 400, 300 );

	vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
	iren->SetRenderWindow(renWin);
    iren->Initialize();
    iren->Start();
 
    m_Mapper->Delete();
    m_Actor->Delete();
    ren1->Delete();
    renWin->Delete();
    iren->Delete();




}

void CBase::vtkShowDICOMImage(vtkImageData *id)
{
	vtkImageViewer* m_Viewer1=vtkImageViewer::New();
	m_Viewer1->SetInput(id);
	m_Viewer1->SetColorWindow(1000);
	m_Viewer1->SetColorLevel(100);
	m_Viewer1->SetPosition(512,0);
	m_Viewer1->SetSize(512,512);
	//m_Viewer->SetupInteractor(m_RenWinInteractor);
	m_Viewer1->Render();

}

BOOL CBase::GetFlag()
{
	return m_Flag;
}

void CBase::SetFlag(BOOL TORF)
{
	m_Flag=TORF;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -