📄 hawaii.cxx
字号:
#include "vtkRenderer.h"
#include "vtkRenderWindow.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkPolyDataReader.h"
#include "vtkElevationFilter.h"
#include "vtkDataSetMapper.h"
#include "vtkActor.h"
#include "vtkCamera.h"#include "vtkCommand.h" #include "vtkLineWidget.h" #include "vtkInteractorStyleTrackballCamera.h"vtkElevationFilter *elevation; vtkLineWidget *l;
// Callback for the interactionclass vtkMyCallback : public vtkCommand{public: static vtkMyCallback *New() { return new vtkMyCallback; } virtual void Execute(vtkObject *caller, unsigned long, void*) {vtkLineWidget *j = reinterpret_cast<vtkLineWidget*>(caller); elevation->SetLowPoint( j->GetPoint1()); elevation->SetHighPoint(j->GetPoint2()); }};
int main()
{ l=vtkLineWidget::New(); vtkMyCallback *mo1 = vtkMyCallback::New(); l->AddObserver(vtkCommand::InteractionEvent,mo1);
//Create the RenderWindow, Renderer and both Actors
vtkRenderer *ren1 = vtkRenderer::New();
vtkRenderWindow *renWin = vtkRenderWindow::New();
renWin->AddRenderer(ren1);
vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
iren->SetRenderWindow(renWin);
//read a vtk file
vtkPolyDataReader *hawaii = vtkPolyDataReader::New();
// hawaii->SetFileName("C:/Documents and Settings/ratlis/Desktop/ColorSph/honolulu.vtk");
hawaii->SetFileName("C:/Documents and Settings/ratlis/Desktop/ColorSph/fran_cut.vtk");
hawaii->Update();
elevation = vtkElevationFilter::New();
elevation->SetInput((vtkDataSet *)hawaii->GetOutput());
l->SetPoint1(0.045, -0.122, -0.053);l->SetPoint1(0.11, -0.122, -0.097); elevation->SetLowPoint( l->GetPoint1()); elevation->SetHighPoint(l->GetPoint2());
elevation->SetScalarRange(0, 1);
vtkDataSetMapper *hawaiiMapper = vtkDataSetMapper::New();
hawaiiMapper->SetInput(elevation->GetOutput());
hawaiiMapper->ImmediateModeRenderingOn();
vtkActor *hawaiiActor = vtkActor::New();
hawaiiActor->SetMapper(hawaiiMapper);
l->SetProp3D(hawaiiActor);l->PlaceWidget(); l->SetInteractor(iren);
//Add the actors to the renderer, set the background and size
ren1->AddActor(hawaiiActor);
renWin->SetSize(700, 700);
renWin->DoubleBufferOff();
ren1->SetBackground(0.1, 0.2, 0.4);
//render the image
ren1->GetActiveCamera()->Zoom(2);
renWin->Render();
vtkInteractorStyleTrackballCamera *style = vtkInteractorStyleTrackballCamera::New(); iren->SetInteractorStyle(style);
iren->Initialize();
iren->Start();
//clean up
iren->Delete();
renWin->Delete();
ren1->Delete();
hawaiiActor->Delete();
hawaiiMapper->Delete();
elevation->Delete();
hawaii->Delete();
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -