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

📄 demo_vtk_stl_reader_modificado.cpp

📁 A Stl Reader with VTK
💻 CPP
字号:
 /*
	Author: Chung Kai Lun Peter
	Email: hkpeterpeter@gmail.com
	File:
	    demo_vtk_stl_reader.cpp
	Purpose:
		Ported from stl.tcl
*/

#include "vtkLODActor.h"
#include "vtkPolyDataMapper.h"
#include "vtkRenderWindow.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkRenderer.h"
#include "vtkSTLReader.h"
#include "vtkImplicitPlaneWidget.h"
#include "vtkClipPolyData.h"

#include "vtkProperty.h"
#include "vtkCamera.h"
#include "vtkPlaneSource.h"

#include "vtkPlane.h"
#include "vtkAppendPolyData.h"


// Set VTK data root here..
// #define VTK_DATA_ROOT "D:\\Users\\Peter\\bin\\VTKData\\Data\\"


int main(int argc, char** argv)
{
	double vet[3];
	// This example demonstrates the use of vtkSTLReader to load data into VTK from
	// a file.  This example also uses vtkLODActor which changes its graphical
	// representation of the data to maintain interactive performance.

	//
	// First we include the VTK Tcl packages which will make available
	// all of the vtk commands to Tcl
	//


	// Create the Renderer, RenderWindow, and RenderWindowInteractor
	//
	vtkRenderer *ren1 = vtkRenderer::New();
	vtkRenderWindow *renWin = vtkRenderWindow::New();
	renWin->AddRenderer(ren1);
	vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
	iren->SetRenderWindow(renWin);
	//planoCorte->SetInteractor(iren);

	//vtkConeSource *Cone = vtkConeSource::New();
	


	// Create the reader and read a data file.  Connect the mapper and actor.
	vtkSTLReader *sr = vtkSTLReader::New();
	sr->SetFileName("C:\\Lenilson\\Inicio\\soldado.stl");
	
	//vtkPlaneSource *Plano = vtkPlaneSource::New();
	//Plano->SetXResolution(20);
	//Plano->SetYResolution(20);
	vtkPlane *Planoteste = vtkPlane::New();

	vtkPolyDataMapper *stlMapper = vtkPolyDataMapper::New();
		stlMapper->SetInputConnection(sr->GetOutputPort());

//	vtkPolyData *Cranio = vtkPolyData::New();

 // vtkPolyDataMapper *maceMapper = vtkPolyDataMapper::New();
 //   maceMapper->SetInputConnection(stlMapper->GetOutputPort());

//  vtkLODActor *maceActor = vtkLODActor::New();
//    maceActor->SetMapper(maceMapper);
//	maceActor->VisibilityOn();

/*
	vtkClipPolyData *clipper = vtkClipPolyData::New();
		clipper->SetInputConnection(stlMapper->GetOutputPort());
		clipper->SetClipFunction(Planoteste);
		clipper->InsideOutOn();
	vtkPolyDataMapper *selectMapper = vtkPolyDataMapper::New();
      selectMapper->SetInputConnection(clipper->GetOutputPort());

  vtkLODActor *selectActor = vtkLODActor::New();
    selectActor->SetMapper(selectMapper);
	selectActor->GetProperty()->SetColor(0,1,0);
	selectActor->VisibilityOff();
	selectActor->SetScale(1.01,1.01,1.01);
*/

	vtkLODActor *stlActor = vtkLODActor::New();

	//vtkAppendPolyData *apd = vtkAppendPolyData::New();
	//	apd->AddInput(stlMapper);

	
	//vtkPolyDataMapper *planoMapper = vtkPolyDataMapper::New();            
	//planoMapper->SetInputConnection(Plano->GetOutputPort());
	//vtkLODActor *planoActor = vtkLODActor::New();

	stlActor->SetMapper(stlMapper);
	stlActor->GetProperty()->SetColor(1,0,0);
	stlActor->RotateX(90);
	//planoActor->SetMapper(planoMapper);
    //planoActor->SetScale(300,300,300);
	//planoActor->GetProperty()->SetColor(0,0,0);
	//planoActor->RotateY(90);
	stlActor->SetPosition(0,0,0);
	//planoActor->SetPosition(128,-150,100);
/*

    vtkImplicitPlaneWidget *planeWidget = vtkImplicitPlaneWidget::New();
	planeWidget->SetInteractor(iren);
	planeWidget->SetPlaceFactor(1.25);
	planeWidget->SetInput(sr->GetOutput());
	planeWidget->PlaceWidget();
	//planeWidget->SetNormal(1,1,1);
	//planeWidget->SetOrigin(0,0,-0.5);
	  planeWidget->GetPlane(Planoteste);
	  stlActor->VisibilityOn();
*/
	// Add the actors to the render; set the background and size
	//
    //ren1->AddActor(maceActor);
//	ren1->AddActor(selectActor);
	ren1->AddActor(stlActor);
	ren1->SetBackground(0.1, 0.2, 0.4);
	renWin->SetSize(500, 500);
	//ren1->AddActor(planoActor);
	

	// Zoom in closer
	ren1->ResetCamera();
	vtkCamera* cam1 = (ren1->GetActiveCamera());
	cam1->Zoom(1.4);


	iren->Initialize();
	iren->Start();

	return 0 ;
}

⌨️ 快捷键说明

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