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 "vtkHolefill.h"</div><div>#include "vtkInformation.h"</div><div>#include "vtkInformationVector.h"</div><div>#include "vtkObjectFactory.h"</div><div>#include "vtkPolyDataAlgorithm.h"</div>
<div>#include "vtkPolyData.h"</div><div>#include "vtkPolyData.h"</div><div>#include "vtkFillHolesFilter.h"</div><div>#include <vtkSmartPointer.h></div><div>#include <cassert></div>
<div><br></div><div>vtkCxxRevisionMacro(vtkHolefill, "$Revision: 1.0 $");</div><div>vtkStandardNewMacro(vtkHolefill);</div><div><br></div><div>vtkHolefill::vtkHolefill()</div><div>{</div><div> this->SetNumberOfInputPorts(1);</div>
<div> this->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->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkPolyData");</div><div> return 1;</div><div>}</div><div><br></div><div>int vtkHolefill::FillOutputPortInformation(int port, vtkInformation *info)</div>
<div>{</div><div> info->Set(vtkDataObject::DATA_TYPE_NAME(), "vtkPolyData");</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 && outputVector != NULL);</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>vtkInformation* inInfo = inputVector[0]->GetInformationObject(0);</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>vtkInformation* outInfo = outputVector->GetInformationObject(0);</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>assert(inInfo != NULL && outInfo != NULL);</div>
<div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                </span>vtkPolyData* input = vtkPolyData::SafeDownCast(</div><div> inInfo->Get(vtkDataObject::DATA_OBJECT()));</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>vtkPolyData* output = vtkPolyData::SafeDownCast(</div>
<div> outInfo->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(<< "input == NULL");</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(<< "output == NULL");</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<vtkFillHolesFilter> fillHolesFilter =</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>vtkSmartPointer<vtkFillHolesFilter>::New();</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                </span>fillHolesFilter->SetInput(input);</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>fillHolesFilter->SetHoleSize(1.0);</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>fillHolesFilter->Update();</div><div><br>
</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>output->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& os, vtkIndent indent)</div><div>{</div><div> this->Superclass::PrintSelf(os, indent);</div><div>}</div><div> </div><div><br></div><div>Thank you.</div>