[Paraview-developers] object not displaying in the paraview window
David E DeMarle
dave.demarle at kitware.com
Thu Apr 14 09:13:28 EDT 2016
If this is a source, not a filter then call
this->SetNumberOfInputPorts(0);
in MyClass's constructor to override the default (likely 1) set by an
ancestor class (vtkPolyDataAlgorithm likely).
David E DeMarle
Kitware, Inc.
R&D Engineer
21 Corporate Drive
Clifton Park, NY 12065-8662
Phone: 518-881-4909
On Thu, Apr 14, 2016 at 5:34 AM, Chiranjib Sur <sur.chiranjib at gmail.com>
wrote:
> Utkarsh and team,
> Here I come again with a very similar question.
>
> 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 :
>
> Input port 0 of algorithm MyClass(0x4961fc0) has 0 connections but is not
> optional.
>
> What is going wrong here?
>
> Below is my implementation of RequestData
>
> Thanks in advance,
>
> Chiranjib
>
>
> int MyClass::RequestData( vtkInformation* vtkNotUsed( request ),
> vtkInformationVector** vtkNotUsed(
> inputVector ),
> vtkInformationVector* outputVector )
> {
> // get the info object
> vtkInformation* outInfo = outputVector->GetInformationObject( 0 );
>
> // get the output
> vtkPolyData* output = vtkPolyData::SafeDownCast( outInfo->Get(
> vtkDataObject::DATA_OBJECT()));
>
>
>
> vtkSmartPointer<vtkPolyData> polydata =
> vtkSmartPointer<vtkPolyData>::New();
>
> vtkSmartPointer<vtkPoints> points = vtkSmartPointer<vtkPoints>::New();
> points->SetDataType( VTK_DOUBLE ); // Set precision for the vtk points
>
> // generate my polydata with points etc.
> ....
> // at this stage polydata is generated
>
> output->ShallowCopy(polydata);
> output->Squeeze();
>
> return 1;
> }
>
> On Mon, Apr 27, 2015 at 3:37 PM, Chiranjib Sur <sur.chiranjib at gmail.com>
> wrote:
>
>> Wow, This works like a magic !
>>
>> Thank you very much for the solution and sorry for my delay in updating
>> about the problem I mentioned.
>>
>> Chiranjib
>>
>> On Fri, Apr 17, 2015 at 5:54 PM, Utkarsh Ayachit <
>> utkarsh.ayachit at kitware.com> wrote:
>>
>>> You're missing a call to `transformModel->Update()` before calling
>>> `transformModel->GetOutput()`. The filter never updated, and hence its
>>> output is empty.
>>>
>>> Utkarsh
>>>
>>> On Fri, Apr 17, 2015 at 6:34 AM, Chiranjib Sur <sur.chiranjib at gmail.com>
>>> wrote:
>>> > Hi All,
>>> > I want to apply the tranform filter while I create an object in
>>> paraview. TO
>>> > try with I have overloaded vtkCubeSource class and can create the
>>> object
>>> > which appears in the paraview pipeline and I can visualize the object
>>> in the
>>> > PV window.
>>> >
>>> > Now I want to apply the transformation filter (vtkTransform) to the
>>> objct
>>> > when I create it. To do that I have overloaded the RequestData
>>> function like
>>> > the following.
>>> >
>>> > The code is compiling and executing but when I create the object and
>>> apply
>>> > transform, nothing is appearing in the PV visualization window.
>>> >
>>> > Can anybody help me pointing out what is going wrong with my
>>> implementation.
>>> >
>>> > I cam copying my code below
>>> >
>>> > Thanks,
>>> > Chiranjib
>>> >
>>> >
>>> > ------
>>> >
>>> >
>>> >
>>> > int MyOwnCubeSource::RequestData( vtkInformation *vtkNotUsed(request),
>>> >
>>> > vtkInformationVector **vtkNotUsed(inputVector),
>>> >
>>> > vtkInformationVector *outputVector)
>>> >
>>> > {
>>> >
>>> > // get the info object
>>> >
>>> > vtkInformation *outInfo = outputVector->GetInformationObject(0);
>>> >
>>> >
>>> >
>>> > // get the ouptut
>>> >
>>> > vtkPolyData *output = vtkPolyData::SafeDownCast(
>>> >
>>> > outInfo->Get(vtkDataObject::DATA_OBJECT()));
>>> >
>>> > ....
>>> >
>>> > ....
>>> >
>>> >
>>> >
>>> > // output (type vtkPolyData) is already ready at this stage
>>> >
>>> >
>>> >
>>> > // If I don’t appy transform operation afterwards, I can visualize the
>>> > object in the PV pipeline
>>> >
>>> >
>>> >
>>> >
>>> >
>>> > // -----------------------------------------------//
>>> >
>>> >
>>> >
>>> > // Implementation of vtkTransform starts here
>>> >
>>> >
>>> >
>>> > double _rotationZ = 30.0;
>>> >
>>> >
>>> >
>>> > // Define transform
>>> >
>>> > vtkSmartPointer<vtkTransform> transform =
>>> > vtkSmartPointer<vtkTransform>::New();
>>> >
>>> >
>>> >
>>> > // Define transformModel : transform filter
>>> >
>>> > vtkSmartPointer<vtkTransformFilter> transformModel =
>>> > vtkSmartPointer<vtkTransformFilter>::New();
>>> >
>>> > transformModel->SetTransform(transform);
>>> >
>>> >
>>> >
>>> > //Decoupling the pipeline and asking the transformfilter to update
>>> the
>>> > newpipeline (created out of shallowcopy)
>>> >
>>> > vtkNew<vtkPolyData> cubeCopy;
>>> >
>>> > cubeCopy->ShallowCopy(output);
>>> >
>>> > transformModel->SetInputData(cubeCopy.GetPointer());
>>> >
>>> >
>>> >
>>> > // Describe all the transform operations
>>> >
>>> > transform->PostMultiply();
>>> >
>>> > transform->RotateZ(10*_rotationZ);
>>> >
>>> > transform->Update();
>>> >
>>> >
>>> >
>>> > // getting the transformed output
>>> >
>>> > vtkSmartPointer<vtkDataSet> transformedOutput =
>>> > transformModel->GetOutput();
>>> >
>>> >
>>> >
>>> > // Shallowcopy the transformed output to the old pipeline
>>> >
>>> >
>>> >
>>> > output->ShallowCopy(transformedOutput);
>>> >
>>> >
>>> >
>>> > // A this stage "output" should be updated and the visualization
>>> pipeline
>>> > should show the transformed object
>>> >
>>> >
>>> > _______________________________________________
>>> > Powered by www.kitware.com
>>> >
>>> > Visit other Kitware open-source projects at
>>> > http://www.kitware.com/opensource/opensource.html
>>> >
>>> > Search the list archives at:
>>> > http://markmail.org/search/?q=Paraview-developers
>>> >
>>> > Follow this link to subscribe/unsubscribe:
>>> > http://public.kitware.com/mailman/listinfo/paraview-developers
>>> >
>>>
>>
>>
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Search the list archives at:
> http://markmail.org/search/?q=Paraview-developers
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/paraview-developers
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/paraview-developers/attachments/20160414/4645cfe1/attachment.html>
More information about the Paraview-developers
mailing list