<div dir="ltr">Utkarsh and team,<div>Here I come again with a very similar question.</div><div><br></div><div>I am creating a object using a C++ class in ParaView. I have implemented the RequestData function in the following way but I keep getting the error message :</div><div><br></div><div><font color="#0000ff">Input port 0 of algorithm MyClass(0x4961fc0) has 0 connections but is not optional.</font><br></div><div><br></div><div>What is going wrong here?</div><div><br></div><div>Below is my implementation of RequestData</div><div><br></div><div>Thanks in advance,</div><div><br></div><div>Chiranjib</div><div><br></div><div><br></div><div><div><font color="#0000ff" face="monospace, monospace">int MyClass::RequestData( vtkInformation*        vtkNotUsed( request ),</font></div><div><font color="#0000ff" face="monospace, monospace">                                vtkInformationVector** vtkNotUsed( inputVector ),</font></div><div><font color="#0000ff" face="monospace, monospace">                                vtkInformationVector*  outputVector )</font></div><div><font color="#0000ff" face="monospace, monospace">{</font></div><div><font color="#0000ff" face="monospace, monospace">   // get the info object</font></div><div><font color="#0000ff" face="monospace, monospace">    vtkInformation* outInfo = outputVector->GetInformationObject( 0 );</font></div><div><font color="#0000ff" face="monospace, monospace"><br></font></div><div><font color="#0000ff" face="monospace, monospace">   // get the output</font></div><div><font color="#0000ff" face="monospace, monospace">    vtkPolyData* output = vtkPolyData::SafeDownCast( outInfo->Get( vtkDataObject::DATA_OBJECT()));</font></div></div><div><font color="#0000ff" face="monospace, monospace"><br></font></div><div><font color="#0000ff" face="monospace, monospace"><br></font></div><div><div><font color="#0000ff" face="monospace, monospace"><br></font></div><div><font color="#0000ff" face="monospace, monospace">    vtkSmartPointer<vtkPolyData> polydata = vtkSmartPointer<vtkPolyData>::New();</font></div><div><font color="#0000ff" face="monospace, monospace"><br></font></div><div><font color="#0000ff" face="monospace, monospace">    vtkSmartPointer<vtkPoints> points = vtkSmartPointer<vtkPoints>::New();</font></div><div><font color="#0000ff" face="monospace, monospace">    points->SetDataType( VTK_DOUBLE ); // Set precision for the vtk points</font></div></div><div><font color="#0000ff" face="monospace, monospace"><br></font></div><div><font color="#0000ff" face="monospace, monospace"> // generate my polydata with points etc.</font></div><div><font color="#0000ff" face="monospace, monospace">....</font></div><div><font color="#0000ff" face="monospace, monospace">//  at this stage polydata is generated</font></div><div><font color="#0000ff" face="monospace, monospace"><br></font></div><div><div><font color="#0000ff" face="monospace, monospace">   output->ShallowCopy(polydata);</font></div><div><font color="#0000ff" face="monospace, monospace">   output->Squeeze();</font></div><div><font color="#0000ff" face="monospace, monospace"><br></font></div><div><font color="#0000ff" face="monospace, monospace">   return 1;</font></div></div><div><font color="#0000ff" face="monospace, monospace">}<br></font></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Apr 27, 2015 at 3:37 PM, Chiranjib Sur <span dir="ltr"><<a href="mailto:sur.chiranjib@gmail.com" target="_blank">sur.chiranjib@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Wow, This works like a magic ! <div><br></div><div>Thank you very much for the solution and sorry for my delay in updating about the problem I mentioned.</div><span class="HOEnZb"><font color="#888888"><div><br></div><div>Chiranjib</div></font></span></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Apr 17, 2015 at 5:54 PM, Utkarsh Ayachit <span dir="ltr"><<a href="mailto:utkarsh.ayachit@kitware.com" target="_blank">utkarsh.ayachit@kitware.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">You're missing a call to `transformModel->Update()` before calling<br>
`transformModel->GetOutput()`. The filter never updated, and hence its<br>
output is empty.<br>
<br>
Utkarsh<br>
<div><div><br>
On Fri, Apr 17, 2015 at 6:34 AM, Chiranjib Sur <<a href="mailto:sur.chiranjib@gmail.com" target="_blank">sur.chiranjib@gmail.com</a>> wrote:<br>
> Hi All,<br>
> I want to apply the tranform filter while I create an object in paraview. TO<br>
> try with I have overloaded vtkCubeSource class and can create the object<br>
> which appears in the paraview pipeline and I can visualize the object in the<br>
> PV window.<br>
><br>
> Now I want to apply the transformation filter (vtkTransform) to the objct<br>
> when I create it. To do that I have overloaded the RequestData function like<br>
> the following.<br>
><br>
> The code is compiling and executing but when I create the object and apply<br>
> transform, nothing is appearing in the PV visualization window.<br>
><br>
> Can anybody help me pointing out what is going wrong with my implementation.<br>
><br>
> I cam copying my code below<br>
><br>
> Thanks,<br>
> Chiranjib<br>
><br>
><br>
> ------<br>
><br>
><br>
><br>
> int MyOwnCubeSource::RequestData( vtkInformation *vtkNotUsed(request),<br>
><br>
>                      vtkInformationVector **vtkNotUsed(inputVector),<br>
><br>
>                      vtkInformationVector *outputVector)<br>
><br>
> {<br>
><br>
>   // get the info object<br>
><br>
>   vtkInformation *outInfo = outputVector->GetInformationObject(0);<br>
><br>
><br>
><br>
>   // get the ouptut<br>
><br>
>   vtkPolyData *output = vtkPolyData::SafeDownCast(<br>
><br>
>     outInfo->Get(vtkDataObject::DATA_OBJECT()));<br>
><br>
> ....<br>
><br>
> ....<br>
><br>
><br>
><br>
> // output (type vtkPolyData) is already ready at this stage<br>
><br>
><br>
><br>
> // If I don’t appy transform operation afterwards, I can visualize the<br>
> object in the PV pipeline<br>
><br>
><br>
><br>
><br>
><br>
> // -----------------------------------------------//<br>
><br>
><br>
><br>
> // Implementation of vtkTransform starts here<br>
><br>
><br>
><br>
>     double _rotationZ = 30.0;<br>
><br>
><br>
><br>
> // Define transform<br>
><br>
>     vtkSmartPointer<vtkTransform> transform =<br>
> vtkSmartPointer<vtkTransform>::New();<br>
><br>
><br>
><br>
>     // Define transformModel : transform filter<br>
><br>
>     vtkSmartPointer<vtkTransformFilter> transformModel =<br>
> vtkSmartPointer<vtkTransformFilter>::New();<br>
><br>
>     transformModel->SetTransform(transform);<br>
><br>
><br>
><br>
>     //Decoupling the pipeline and asking the transformfilter to update the<br>
> newpipeline (created out of shallowcopy)<br>
><br>
>     vtkNew<vtkPolyData> cubeCopy;<br>
><br>
>     cubeCopy->ShallowCopy(output);<br>
><br>
>     transformModel->SetInputData(cubeCopy.GetPointer());<br>
><br>
><br>
><br>
>     // Describe all the transform operations<br>
><br>
>      transform->PostMultiply();<br>
><br>
>      transform->RotateZ(10*_rotationZ);<br>
><br>
>      transform->Update();<br>
><br>
><br>
><br>
>      // getting the transformed output<br>
><br>
>      vtkSmartPointer<vtkDataSet> transformedOutput =<br>
> transformModel->GetOutput();<br>
><br>
><br>
><br>
>      // Shallowcopy the transformed output to the old pipeline<br>
><br>
><br>
><br>
>     output->ShallowCopy(transformedOutput);<br>
><br>
><br>
><br>
> // A this stage "output" should be updated and the visualization pipeline<br>
> should show the transformed object<br>
><br>
><br>
</div></div>> _______________________________________________<br>
> Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
><br>
> Visit other Kitware open-source projects at<br>
> <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
><br>
> Search the list archives at:<br>
> <a href="http://markmail.org/search/?q=Paraview-developers" target="_blank">http://markmail.org/search/?q=Paraview-developers</a><br>
><br>
> Follow this link to subscribe/unsubscribe:<br>
> <a href="http://public.kitware.com/mailman/listinfo/paraview-developers" target="_blank">http://public.kitware.com/mailman/listinfo/paraview-developers</a><br>
><br>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>