SLIDE 11
Decimation, smoothing, normals normals
Implemented in C++
Example Pipeline Example Pipeline
vtkSmoothPolyDataFilter vtkDecimatePro vtkBYUReader vtkPolyDataNormals vtkPolyDataMapper
Note: data objects are not shown they are implied from the output type of the filter
Create Reader & Decimator Create Reader & Decimator
vtkBYUReader vtkBYUReader * *byu byu = = vtkBYUReader::New vtkBYUReader::New(); (); byu byu-
>SetGeometryFileName("../../vtkdata/fran_cut.g SetGeometryFileName("../../vtkdata/fran_cut.g”); ”); vtkDecimatePro vtkDecimatePro * *deci deci = = vtkDecimatePro::New vtkDecimatePro::New(); (); deci deci-
>SetInput SetInput( ( byu byu-
>GetOutput GetOutput() ); () ); deci deci-
>SetTargetReduction SetTargetReduction( 0.9 ); ( 0.9 ); deci deci-
>PreserveTopologyOn PreserveTopologyOn(); (); deci deci-
>SetMaximumError SetMaximumError( 0.0002 ); ( 0.0002 );
Smoother & Graphics Objects Smoother & Graphics Objects
vtkSmoothPolyDataFilter vtkSmoothPolyDataFilter *smooth = *smooth = vtkSmoothPolyDataFilter::New vtkSmoothPolyDataFilter::New(); (); smooth smooth-
>SetInput(deci SetInput(deci-
>GetOutput GetOutput()); ()); smooth smooth-
>SetNumberOfIterations SetNumberOfIterations( 20 ); ( 20 ); smooth smooth-
>SetRelaxationFactor SetRelaxationFactor( 0.05 ); ( 0.05 ); vtkPolyDataNormals vtkPolyDataNormals * *normals normals = = vtkPolyDataNormals::New vtkPolyDataNormals::New(); (); normals normals-
>SetInput SetInput( smooth ( smooth-
>GetOutput GetOutput() ); () ); vtkPolyDataMapper vtkPolyDataMapper * *cyberMapper cyberMapper = = vtkPolyDataMapper::New vtkPolyDataMapper::New(); (); cyberMapper cyberMapper-
>SetInput SetInput( ( normals normals-
>GetOutput GetOutput() ); () ); vtkActor vtkActor * *cyberActor cyberActor = = vtkActor::New vtkActor::New(); (); cyberActor cyberActor-
>SetMapper SetMapper ( (cyberMapper cyberMapper); ); cyberActor cyberActor-
>GetProperty GetProperty() ()-
>SetColor SetColor ( 1.0, 0.49, 0.25 ); ( 1.0, 0.49, 0.25 ); cyberActor cyberActor-
>GetProperty GetProperty() ()-
>SetRepresentationToWireframe SetRepresentationToWireframe(); ();
More Graphics Objects More Graphics Objects
vtkRenderer vtkRenderer *ren1 = *ren1 = vtkRenderer::New vtkRenderer::New(); (); vtkRenderWindow vtkRenderWindow * *renWin renWin = = vtkRenderWindow::New vtkRenderWindow::New(); (); renWin renWin-
>AddRenderer AddRenderer( ren1 ); ( ren1 ); vtkRenderWindowInteractor vtkRenderWindowInteractor * *iren iren = = vtkRenderWindowInteractor vtkRenderWindowInteractor ::New(); ::New(); iren iren-
>SetRenderWindow SetRenderWindow( ( renWin renWin ); ); ren1 ren1-
>AddActor AddActor( ( cyberActor cyberActor ); ); ren1 ren1-
>SetBackground SetBackground( 1, 1, 1 ); ( 1, 1, 1 ); renWin renWin-
>SetSize SetSize( 500, 500 ); ( 500, 500 ); iren iren-
>Start();