[vtkusers] BUG: polydata deepcopy loses lookup table
Steve Kirstukas
sjk60 at iastate.edu
Mon Jun 30 23:31:24 EDT 2003
Hi all,
We have noticed that when we deepcopy polydata from the reader output, we lose a
predefined lookup table. Code and output follow. I had experienced this
problem with an April version of the 4.3 code and duplicated it with the June 30
nightly release.
CODE...
vtkPolyDataReader *pdReader = vtkPolyDataReader::New();
pdReader->SetFileName( vtkFilename );
pdReader->Update();
if ( pdReader->GetOutput()->GetPointData()->GetScalars() )
{
cout << "pdReader->GetOutput()->GetPointData()->GetScalars()->GetName() =
"
<< pdReader->GetOutput()->GetPointData()->GetScalars()->GetName() <<
endl;
cout <<
"pdReader->GetOutput()->GetPointData()->GetScalars()->GetLookupTable() = "
<<
pdReader->GetOutput()->GetPointData()->GetScalars()->GetLookupTable() <<
endl;
}
vtkPolyData *polyData = vtkPolyData::New();
polyData->DeepCopy( pdReader->GetOutput() );
pdReader->Delete();
if ( polyData->GetPointData()->GetScalars() )
{
cout << "polyData->GetPointData()->GetScalars()->GetName() = "
<< polyData->GetPointData()->GetScalars()->GetName() <<
endl;
cout << "polyData->GetPointData()->GetScalars()->GetLookupTable() = "
<< polyData->GetPointData()->GetScalars()->GetLookupTable() <<
endl;
}
THE OUTPUT FOLLOWS. Note that the pointer to lookup table has gone to null
after the deepcopy. Note that the scalar name is the same in both cases. All
other data seems intact, except for the lookup table.
pdReader->GetOutput()->GetPointData()->GetScalars()->GetName() = liquid-fraction
pdReader->GetOutput()->GetPointData()->GetScalars()->GetLookupTable() =
0x10814978
polyData->GetPointData()->GetScalars()->GetName() = liquid-fraction
polyData->GetPointData()->GetScalars()->GetLookupTable() = 0x0
Has anyone else seen this? Is there a workaround?
Thanks, Steve
More information about the vtkusers
mailing list