Hi All,<div>Please how can a I fill holes in my Polydata.  I worked through the vtkHoleFillFilter documentation and tried to create ParaView plugin to fill the in my data but it did not work for me as expected. I get back the same input data as my output (no difference). I am doing something wrong. Pardon me if this question has been answered because I am still new using VTK. Here is my code:</div>
<div><br></div><div>#include &quot;vtkHolefill.h&quot;</div><div>#include &quot;vtkInformation.h&quot;</div><div>#include &quot;vtkInformationVector.h&quot;</div><div>#include &quot;vtkObjectFactory.h&quot;</div><div>#include &quot;vtkPolyDataAlgorithm.h&quot;</div>
<div>#include &quot;vtkPolyData.h&quot;</div><div>#include &quot;vtkPolyData.h&quot;</div><div>#include &quot;vtkFillHolesFilter.h&quot;</div><div>#include &lt;vtkSmartPointer.h&gt;</div><div>#include &lt;cassert&gt;</div>
<div><br></div><div>vtkCxxRevisionMacro(vtkHolefill, &quot;$Revision: 1.0 $&quot;);</div><div>vtkStandardNewMacro(vtkHolefill);</div><div><br></div><div>vtkHolefill::vtkHolefill()</div><div>{</div><div>  this-&gt;SetNumberOfInputPorts(1);</div>
<div>  this-&gt;SetNumberOfOutputPorts(1);</div><div>}</div><div><br></div><div>vtkHolefill::~vtkHolefill()</div><div>{</div><div>}</div><div>int vtkHolefill::FillInputPortInformation(int port, vtkInformation *info)</div>
<div>{</div><div>  info-&gt;Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), &quot;vtkPolyData&quot;);</div><div>  return 1;</div><div>}</div><div><br></div><div>int vtkHolefill::FillOutputPortInformation(int port, vtkInformation *info)</div>
<div>{</div><div>  info-&gt;Set(vtkDataObject::DATA_TYPE_NAME(), &quot;vtkPolyData&quot;);</div><div>  return 1;</div><div>}</div><div><br></div><div>int vtkHolefill::RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)</div>
<div>{</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>    assert(inputVector != NULL &amp;&amp; outputVector != NULL);</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>vtkInformation* inInfo = inputVector[0]-&gt;GetInformationObject(0);</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>vtkInformation* outInfo = outputVector-&gt;GetInformationObject(0);</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>assert(inInfo != NULL &amp;&amp; outInfo != NULL);</div>
<div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                </span>vtkPolyData* input = vtkPolyData::SafeDownCast(</div><div>                inInfo-&gt;Get(vtkDataObject::DATA_OBJECT()));</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>vtkPolyData* output = vtkPolyData::SafeDownCast(</div>
<div>                outInfo-&gt;Get(vtkDataObject::DATA_OBJECT()));</div><div><span class="Apple-tab-span" style="white-space:pre">                </span></div><div><span class="Apple-tab-span" style="white-space:pre">                </span>if (input == NULL) {</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>vtkErrorMacro(&lt;&lt; &quot;input == NULL&quot;);</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>return 0;</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>}</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>if (output == NULL) {</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>vtkErrorMacro(&lt;&lt; &quot;output == NULL&quot;);</div><div>
<span class="Apple-tab-span" style="white-space:pre">                        </span>return 0;</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>}</div><div><br></div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                </span>vtkSmartPointer&lt;vtkFillHolesFilter&gt; fillHolesFilter =</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>vtkSmartPointer&lt;vtkFillHolesFilter&gt;::New();</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                </span>fillHolesFilter-&gt;SetInput(input);</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>fillHolesFilter-&gt;SetHoleSize(1.0);</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>fillHolesFilter-&gt;Update();</div><div><br>
</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>output-&gt;ShallowCopy(input);</div><div>  </div><div><span class="Apple-tab-span" style="white-space:pre">                </span>return 1;</div><div>}</div><div>
<br></div><div><br></div><div>void vtkHolefill::PrintSelf(ostream&amp; os, vtkIndent indent)</div><div>{</div><div>  this-&gt;Superclass::PrintSelf(os, indent);</div><div>}</div><div>  </div><div><br></div><div>Thank you.</div>