[Paraview] Enabling vtkSplineFilter in ParaView

Jérôme jerome.velut at gmail.com
Fri Jun 4 08:28:10 EDT 2010


After tracing the code, I found that the segfault occurs when ParaView attempts
to sort the DataArray by alphabetic order.

After update the SplineFilter, ParaView tries to create a new representation
(pqDisplayPolicy). For this matter, pqObjectBuilder set the default
property for this
new representation (pqObjectBuilder.cxx, line 513).
etc, etc... Here is the call stack before the sort function that
causes the segfault :

>	vtkPVServerCommon.dll!vtkPVDataSetAttributesInformation::CopyFromDataSetAttributes(vtkDataSetAttributes * da=0x13c8ad80)  Ligne 195	C++
 	vtkPVServerCommon.dll!vtkPVDataInformation::CopyFromDataSet(vtkDataSet
* data=0x13c8aa28)  Ligne 445	C++
 	vtkPVServerCommon.dll!vtkPVDataInformation::CopyFromObject(vtkObject
* object=0x13c8aa28)  Ligne 609 + 0x16 octets	C++
 	vtkPVFilters.dll!vtkPVGeometryInformation::CopyFromObject(vtkObject
* object=0x13c25c10)  Ligne 55	C++
 	vtkPVServerCommon.dll!vtkSelfConnection::GatherInformation(unsigned
int __formal=21, vtkPVInformation * info=0x13c8a158, vtkClientServerID
id={...})  Ligne 149 + 0x13 octets	C++
 	vtkPVServerCommon.dll!vtkProcessModuleConnectionManager::GatherInformation(int
connectionID=5, unsigned int serverFlags=21, vtkPVInformation *
info=0x13c8a158, vtkClientServerID id={...})  Ligne 563 + 0x1b
octets	C++
 	vtkPVServerCommon.dll!vtkProcessModule::GatherInformation(int
connectionID=5, unsigned int serverFlags=21, vtkPVInformation *
info=0x13c8a158, vtkClientServerID id={...})  Ligne 299	C++
 	vtkPVServerManager.dll!vtkSMSimpleStrategy::GatherInformation(vtkPVInformation
* info=0x13c8a158)  Ligne 91 + 0x3e octets	C++
 	vtkPVServerManager.dll!vtkSMRepresentationStrategy::UpdateDataInformation()
 Ligne 218 + 0x16 octets	C++
 	vtkPVServerManager.dll!vtkSMDataRepresentationProxy::GetRepresentedDataInformation(bool
update=true)  Ligne 346 + 0x2d octets	C++
 	vtkPVServerManager.dll!vtkSMPVRepresentationProxy::GetRepresentedDataInformation(bool
update=true)  Ligne 426 + 0x23 octets	C++
 	pqCore.dll!pqPipelineRepresentation::setDefaultPropertyValues()
Ligne 415 + 0x14 octets	C++
 	pqCore.dll!pqObjectBuilder::createDataRepresentation(pqOutputPort *
opPort=0x1150dac0, pqView * view=0x0d5c0f48, const QString &
representationType={...})  Ligne 513 + 0xf octets	C++
 	pqCore.dll!pqDisplayPolicy::newRepresentation(pqOutputPort *
port=0x1150dac0, pqView * view=0x0d5c0f48)  Ligne 346 + 0x48
octets	C++
 	pqCore.dll!pqDisplayPolicy::setRepresentationVisibility(pqOutputPort
* opPort=0x1150dac0, pqView * view=0x0d5c0f48, bool visible=true)
Ligne 279 + 0x17 octets	C++
 	pqCore.dll!pqDisplayPolicy::createPreferredRepresentation(pqOutputPort
* opPort=0x1150dac0, pqView * view=0x0d5c0f48, bool
dont_create_view=false)  Ligne 248 + 0x19 octets	C++


The guilty line is
   vtkPVDataSetAttributesInformation.cxx, line 194
I put a breakpoint here.

the array to sort has the value :
   ({arrayIndx=0 arrayName=0x00000000 <Ptr> incorrect },{arrayIndx=1
arrayName=0x13c8d198 "vtkOriginalPointIds" })
the null pointer for the first array is problematic for the
alphabetical sorting. Thus I tried to simply skip this instruction.
The execution stop one more time at this breakpoint, but now the array
value *concerning the spline filter* is:
   ({arrayIndx=0 arrayName=0x10b21618 "Texture Coordinates"
},{arrayIndx=1 arrayName=0x114d37a0 "vtkOriginalPointIds" })

Then I removed the breakpoint: execution went on and the spline is
correctly computed. However, the information panel does not show the
DataArray !!

I hope that someone can help me to enable the vtkSplineFilter in
ParaView. Recall: my XML file was working with ParaView-3.7.

Thanks a lot, and best regards,
Jerome




2010/6/1 Jérôme <jerome.velut at gmail.com>:
> Hi again !
>
> I tried to replace the SplineFilter with a ProgrammableFilter
> containing the following script :
>
> input = self.GetInput()
> splineFilter = vtk.vtkSplineFilter()
> splineFilter.SetInput( input )
> splineFilter.SetSubdivideToLength()
> splineFilter.SetLength( 1 )
> splineFilter.Update( )
> self.GetOutput().DeepCopy(splineFilter.GetOutput())
>
> This way, I am able to get a spline-based resampling. It means that my
> XML description contains an error, but I cannot find it.
>
> Jerome
>
>
> 2010/6/1 Jérôme <jerome.velut at gmail.com>:
>> Hi,
>>
>> I was able to enable the vtkSplineFilter in ParaView-3.7 with the
>> attached ServerManager XML. But with the current 3.9, I am having a
>> segfault after the filter updates. Here is the WinXP32 call stack
>> after the segfault :
>>
>>        ntdll.dll!7c91120e()
>>        [Les frames ci-dessous sont peut-être incorrects et/ou manquants,
>> aucun symbole chargé pour ntdll.dll]
>>        msvcr90d.dll!102d528b()
>>        msvcr90d.dll!102d5ef9()
>>        msvcr90d.dll!102c103e()
>>        msvcr90d.dll!1023d496()
>>        msvcr90d.dll!102cff17()
>>        msvcr90d.dll!102cff0e()
>>        msvcr90d.dll!102cfb2f()
>>        msvcr90d.dll!102cfadc()
>>        msvcr90d.dll!102db25b()
>>        QtCored4.dll!qMalloc(unsigned int size=48)  Ligne 55 + 0xa octets       C++
>>        QtCored4.dll!QVectorData::allocate(int size=48, int alignment=4)
>> Ligne 67 + 0x28 octets  C++
>>        QtGuid4.dll!QVector<QScriptItem>::malloc(int aalloc=1696132182)
>> Ligne 391 + 0x23 octets C++
>>        00e084c8()
>>        msvcr90d.dll!1023d496()
>>        msvcr90d.dll!102d3261()
>>        msvcr90d.dll!102d3258()
>>        QtGuid4.dll!QSpanData::adjustSpanMethods()  Ligne 5143 + 0xf octets     C++
>>        QtGuid4.dll!QSpanData::setup(const QBrush & brush={...}, int
>> alpha=1697441976, QPainter::CompositionMode compositionMode=284019584)
>>  Ligne 5095     C++
>>        10edcb80()
>>        QtGuid4.dll!blend_color_argb(int count=-1, const QT_FT_Span_ *
>> spans=0x00e08ae8, void * userData=0x10edcb88)  Ligne 3082       C++
>>        QtGuid4.dll!qt_span_fill_clipRect(int count=14715600, const
>> QT_FT_Span_ * spans=0x00e10b34, void * userData=0x652d84e8)  Ligne
>> 4714 + 0x14 octets      C++
>>        00e08ac8()
>>
>> Note that I also get this segfault in Fedora 12.
>>
>> I certainly missed something in the XML that was not fatal with the
>> previous PV version. Please, could someone take a look at my XML, try
>> it and tell if this is reproducible?
>>
>> Thanks a lot!
>> Jerome
>>
>


More information about the ParaView mailing list