<div>Hi all,</div>
<div> </div>
<div>I implemented an example of vtkPolyDataConnectivityFilter, because vtk wiki do not provide it yet.</div>
<div>You can use it as below codes.</div>
<div> </div>
<div>Thanks,</div>
<div> </div>
<div>Jinyoung</div>
<div> </div>
<div>-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- </div>
<div>#include "vtkSmartPointer.h"<br>#include "vtkStructuredPointsReader.h"<br>#include "vtkMarchingCubes.h"<br>#include "vtkPolyDataConnectivityFilter.h"<br>#include "vtkPolyDataMapper.h"<br>
#include "vtkActor.h"<br>#include "vtkProperty.h"<br>#include "vtkRenderer.h"<br>#include "vtkRenderWindow.h"<br>#include "vtkRenderWindowInteractor.h"</div>
<div> </div>
<div>int main(int argc, char* argv[])<br>{</div>
<div> // data load<br> vtkSmartPointer<vtkStructuredPointsReader> reader = vtkSmartPointer<vtkStructuredPointsReader>::New();<br> reader->SetFileName("test.vtk");<br> reader->Update();</div>
<div> // MC is used to display in 3D<br> vtkSmartPointer<vtkMarchingCubes> cubes = vtkSmartPointer<vtkMarchingCubes>::New();<br> cubes->SetInputConnection(reader->GetOutputPort());<br> cubes->ComputeNormalsOn();<br>
cubes->ComputeGradientsOn();<br> cubes->SetValue(0, 20);<br> cubes->Update();</div>
<div> // this is to use remove other parts of largest region<br> // you can set specific region using 'SetExtractionModeToPointSeededRegions' function<br> vtkSmartPointer<vtkPolyDataConnectivityFilter> cfilter = vtkSmartPointer<vtkPolyDataConnectivityFilter>::New();<br>
cfilter->SetInputConnection(cubes->GetOutputPort());<br> cfilter->SetExtractionModeToLargestRegion(); <br> //cfilter->SetExtractionModeToPointSeededRegions();<br> //cfilter->SetClosestPoint(x,y,z);<br> cfilter->Update();</div>
<div> // create a mapper<br> vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New();<br> mapper->SetInputConnection(cfilter->GetOutputPort());<br> mapper->ScalarVisibilityOn(); <br>
mapper->Update();</div>
<div> // create an actor<br> vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New();<br> actor->GetProperty()->SetColor(1,1,1);<br> actor->SetMapper(mapper);<br> <br> // create a renderer<br>
vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New();<br> renderer->AddActor(actor);</div>
<div> // create a render window<br> vtkSmartPointer<vtkRenderWindow> renwin = vtkSmartPointer<vtkRenderWindow>::New();<br> renwin->AddRenderer(renderer);<br> <br> // create an interactor<br> vtkSmartPointer<vtkRenderWindowInteractor> iren = vtkSmartPointer<vtkRenderWindowInteractor>::New();<br>
iren->SetRenderWindow(renwin);<br> iren->Initialize();<br> iren->Start();</div>
<div> reader->Delete();<br> cubes->Delete();<br> cfilter->Delete();<br> mapper->Delete();<br> actor->Delete();<br> renderer->Delete();<br> renwin->Delete();<br> iren->Delete();<br> <br> return 0;<br>
}</div>