[vtkusers] vtkMultiProcessController : BUG ?

Charles Law charles.law at kitware.com
Wed Aug 30 13:24:46 EDT 2000


Thanks Philippe,

I will fix the problem.

I assume you meant:
                 if(p == this->Dummy) p = 0;
and not
                 if(p == this->Dummy) p == 0;


Charles.

At 05:13 PM 8/30/00 +0200, Philippe Guerville wrote:
>I tried to use data parallelism in vtk to cut trough a large unstructured
>grid with a plane.
>As in ParallelIso.cxx example, each process read a subset of the
>unstructured grid and
>compute the cut plane. The resulting polydata from each proces is send over
>an output
>port to process 0 and then render.
>
>I can change interactively the cut plane position with vtkCutter::SetValue.
>
>If for a given value the cut plane intersects one of the subset and for the
>next value it
>does not intersect this subset, I've got a seg fault.
>
>With the help of totalview, I Think that the problem is the following :
>
>     file vtkMultiProcessController.cxx Revision: 1.34
>
>     616    int vtkMultiProcessController::ReadDataSet(vtkDataSet *object)
>              {
>     ....
>     631  output = reader->GetOutput();
>             output->Update();
>
>             object->ShallowCopy(output);
>     ....
>     }
>
>called from vtkMultiProcessController::ReadObject
>                   vtkMultiProcessController::Receive
>                   vtkInputPort::UpdateData
>
>Line 634, the new output is "shallow" copied in the old output of
>vtkInputPort.
>
>But if you look at :
>
>     file vtkPolyData.cxx Revision: 1.121
>
>     1581  void vtkPolyData::ShallowCopy(vtkDataObject *dataObject)
>              {
>     ....
>     1589        this->SetPolys(polyData->GetPolys());
>     ....
>     1615      // Do superclass
>                   this->vtkPointSet::ShallowCopy(dataObject);
>               }
>
>and
>
>     677    void vtkPolyData::SetPolys (vtkCellArray* p)
>              {
>                  if ( p != this->Polys && p != this->Dummy )
>          !!!! DO NOTHING IF p == Dummy
>
>If the Polys array of the new output of vtkInputPort is dummy, you keep the
>old
>one but you change the point set and the resulting vtkPolyData is
>inconsistent.
>
>I've done the following changes :
>
>                void vtkPolyData::SetPolys (vtkCellArray* p)
>               {
>                  if(p == this->Dummy) p == 0;
>                  if ( p != this->Polys)
>                ......
>
>I think that vtkPolyData::SetVerts , vtkPolyData::SetLines and
>vtkPolyData::SetStrips
>should be modified accordingly.
>
>     Philippe Guerville
>     philippe.guerville at cea.fr
>
>
>
>_______________________________________________
>This is the private VTK discussion list.
>Please keep messages on-topic. Check the FAQ at: 
><http://public.kitware.com/cgi-bin/vtkfaq>
>Follow this link to subscribe/unsubscribe:
>http://public.kitware.com/mailman/listinfo/vtkusers





More information about the vtkusers mailing list