// RawResolution.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<iostream>
using namespace std;
#include "vtkUnsignedCharArray.h"
#include "vtkPiecewiseFunction.h"
#include "vtkColorTransferFunction.h"
#include "vtkVolumeRayCastCompositeFunction.h"
#include "vtkVolumeRayCastMapper.h"
#include "vtkImageData.h"
#include "vtkVolumeProperty.h"
#include "vtkVolume.h"
#include "vtkRenderWindow.h"
#include "vtkRenderer.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkUnsignedShortArray.h"
#include "vtkPointData.h"
#include "vtkVolume16Reader.h"
#include "vtkMarchingCubes.h"
#include "vtkStripper.h"
#include "vtkPolyDataMapper.h"
#include "vtkProperty.h"
#include "vtkCamera.h"
#include "vtkBoxWidget.h"
#include "vtkImageReader.h"
#include "vtkVectorNorm.h"
#include "vtkDataSetMapper.h"
int _tmain(int argc, _TCHAR* argv[])
{
vtkImageData *image = vtkImageData::New();
image->SetDimensions(30, 30, 30);
image->SetSpacing(5, 5, 5);
image->SetOrigin(0, 0, 0);
image->SetScalarTypeToInt();
image->SetNumberOfScalarComponents(1);
image->AllocateScalars();
int *ptr = (int *)image->GetScalarPointer();
for(int i=0; i<30*30*30; i++)
{
if(i%9 == 0)
*ptr++ = 0;
else
*ptr++ = 2;
}
vtkMarchingCubes *iso = vtkMarchingCubes::New();
iso->SetInput(image);
iso->SetNumberOfContours(1);
iso->SetValue(0,1);
iso->ComputeGradientsOn();
iso->ComputeNormalsOff();
iso->ComputeScalarsOff();
vtkVectorNorm *gradiant = vtkVectorNorm::New();
gradiant->SetInputConnection(iso->GetOutputPort());
vtkDataSetMapper *cubeMapper = vtkDataSetMapper::New();
cubeMapper->SetInputConnection(gradiant->GetOutputPort());
vtkActor *cubeActor = vtkActor::New();
cubeActor->SetMapper(cubeMapper);
vtkCamera *camera = vtkCamera::New();
camera->SetPosition(1,1,1);
camera->SetFocalPoint(0,0,0);
vtkRenderer *renderer = vtkRenderer::New();
vtkRenderWindow *renWin = vtkRenderWindow::New();
renWin->AddRenderer(renderer);
vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
iren->SetRenderWindow(renWin);
renderer->AddActor(cubeActor);
renderer->SetActiveCamera(camera);
renderer->ResetCamera();
renderer->SetBackground(1,1,1);
renWin->SetSize(300,300);
renWin->Render();
iren->Start();
image->Delete();
cubeMapper->Delete();
cubeActor->Delete();
camera->Delete();
renderer->Delete();
renWin->Delete();
iren->Delete();
system("pause");
return 0;
}
//
#include "stdafx.h"
#include<iostream>
using namespace std;
#include "vtkUnsignedCharArray.h"
#include "vtkPiecewiseFunction.h"
#include "vtkColorTransferFunction.h"
#include "vtkVolumeRayCastCompositeFunction.h"
#include "vtkVolumeRayCastMapper.h"
#include "vtkImageData.h"
#include "vtkVolumeProperty.h"
#include "vtkVolume.h"
#include "vtkRenderWindow.h"
#include "vtkRenderer.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkUnsignedShortArray.h"
#include "vtkPointData.h"
#include "vtkVolume16Reader.h"
#include "vtkMarchingCubes.h"
#include "vtkStripper.h"
#include "vtkPolyDataMapper.h"
#include "vtkProperty.h"
#include "vtkCamera.h"
#include "vtkBoxWidget.h"
#include "vtkImageReader.h"
#include "vtkVectorNorm.h"
#include "vtkDataSetMapper.h"
int _tmain(int argc, _TCHAR* argv[])
{
vtkImageData *image = vtkImageData::New();
image->SetDimensions(30, 30, 30);
image->SetSpacing(5, 5, 5);
image->SetOrigin(0, 0, 0);
image->SetScalarTypeToInt();
image->SetNumberOfScalarComponents(1);
image->AllocateScalars();
int *ptr = (int *)image->GetScalarPointer();
for(int i=0; i<30*30*30; i++)
{
if(i%9 == 0)
*ptr++ = 0;
else
*ptr++ = 2;
}
vtkMarchingCubes *iso = vtkMarchingCubes::New();
iso->SetInput(image);
iso->SetNumberOfContours(1);
iso->SetValue(0,1);
iso->ComputeGradientsOn();
iso->ComputeNormalsOff();
iso->ComputeScalarsOff();
vtkVectorNorm *gradiant = vtkVectorNorm::New();
gradiant->SetInputConnection(iso->GetOutputPort());
vtkDataSetMapper *cubeMapper = vtkDataSetMapper::New();
cubeMapper->SetInputConnection(gradiant->GetOutputPort());
vtkActor *cubeActor = vtkActor::New();
cubeActor->SetMapper(cubeMapper);
vtkCamera *camera = vtkCamera::New();
camera->SetPosition(1,1,1);
camera->SetFocalPoint(0,0,0);
vtkRenderer *renderer = vtkRenderer::New();
vtkRenderWindow *renWin = vtkRenderWindow::New();
renWin->AddRenderer(renderer);
vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
iren->SetRenderWindow(renWin);
renderer->AddActor(cubeActor);
renderer->SetActiveCamera(camera);
renderer->ResetCamera();
renderer->SetBackground(1,1,1);
renWin->SetSize(300,300);
renWin->Render();
iren->Start();
image->Delete();
cubeMapper->Delete();
cubeActor->Delete();
camera->Delete();
renderer->Delete();
renWin->Delete();
iren->Delete();
system("pause");
return 0;
}