[Paraview] Correct Extents for vtkImageData + Crash in ParaView 3.6.2

Utkarsh Ayachit utkarsh.ayachit at kitware.com
Wed Jan 27 15:19:29 EST 2010


Yup, what you noticed is true. ParaView destroys the current view and
then creates a new one if the existing one is empty and I think
there's a bug there. Maybe it's trying to destoy an already destroyed
view :), I will have to look.

Utkarsh

On Wed, Jan 27, 2010 at 2:09 PM, Michael Jackson
<mike.jackson at bluequartz.net> wrote:
> Ok. Thanks. At least I am not going crazy. I was noticing that if I ask for
> a "2D" data set, ParaView will create a new view instead of rendering the
> data into the existing 3D view. 2D is defined as a data set where the z
> extents have a delta of 0.
> ___________________________________________________________
> Mike Jackson                      www.bluequartz.net
>
> On Jan 27, 2010, at 3:01 PM, Utkarsh Ayachit wrote:
>
>> I am tempted to believe it has something to do with the fact that
>> ParaView tried to create 6 views to show the each output port or
>> something like that. I've added a bug
>> http://paraview.org/Bug/view.php?id=10193
>>
>> The view creation logic needs some clean up esp for multiple output ports.
>>
>> Utkarsh
>>
>> On Wed, Jan 27, 2010 at 1:48 PM, Michael Jackson
>> <mike.jackson at bluequartz.net> wrote:
>>>
>>> Good Question.
>>>  I kinda gave up and rewrote it as a MultiBlock Reader with a single
>>> output
>>> which now seems to be working. If you want me to go back and try out the
>>> old
>>> reader with a single output port I can pull from GIT and try it otherwise
>>> I
>>> am moving on..
>>>
>>> ___________________________________________________________
>>> Mike Jackson                      www.bluequartz.net
>>>
>>> On Jan 27, 2010, at 2:38 PM, Utkarsh Ayachit wrote:
>>>
>>>> If you just make the reader produce a single output (change the number
>>>> of output ports to 1) does it work?
>>>>
>>>> Utkarsh
>>>>
>>>> On Wed, Jan 27, 2010 at 10:16 AM, Mike Jackson
>>>> <mike.jackson at bluequartz.net> wrote:
>>>>>
>>>>> I am reading a data file that is a has dimensions 189 x 201 x 1.
>>>>>
>>>>>  During the RequestInformation I set the WHOLE_EXTENT to:
>>>>>  int NumEvenCols = 189;
>>>>>  int NumRows = 201;
>>>>>  extents[0] = 0;
>>>>>  extents[1] = NumEvenCols-1;
>>>>>  extents[2] = 0;
>>>>>  extents[3] = NumRows-1;
>>>>>  extents[4] = 0;
>>>>>  extents[5] = 0;
>>>>>
>>>>> outInfo->Set( vtkStreamingDemandDrivenPipeline::WHOLE_EXTENT(),
>>>>> extents,
>>>>> 6 );
>>>>>
>>>>> Then in the RequestData() method I initialize each vtkImageData object
>>>>> (there are 6 output ports):
>>>>> //------------------
>>>>> output->SetScalarTypeToFloat();
>>>>> int xDim=NumEvenCols;
>>>>> int yDim=NumRows;
>>>>> int zDim=1;
>>>>> output->SetDimensions( xDim, yDim, zDim );
>>>>> output->SetNumberOfScalarComponents( 1 );
>>>>> output->AllocateScalars();
>>>>> output->GetPointData()->GetScalars()->SetName("Data");
>>>>> output->GetPointData()->SetActiveScalars("Data");
>>>>> //------------------
>>>>>
>>>>> The data seems to be read OK but when the GUI tries to finish up the
>>>>> display I get an "Unhandled exception at 0x01462f3f (QtCored4.dll) in
>>>>> paraview.exe: 0xC0000005: Access violation writing location
>>>>> 0xcdcdcdcd."
>>>>>  with the following stack trace (Visual Studio 2008, Qt 4.6.1)
>>>>>
>>>>>      QtCored4.dll!QBasicAtomicInt::ref()  Line 319 + 0x8 bytes
>>>>> C++
>>>>>      QtCored4.dll!QString::QString(const QString & other={...})  Line
>>>>> 715
>>>>> + 0x51 bytes    C++
>>>>>>
>>>>>>     pqCore.dll!pqView::getViewType()  Line 79 + 0x31 bytes  C++
>>>>>
>>>>>      pqCore.dll!pqDisplayPolicy::getPreferredView(pqOutputPort *
>>>>> opPort=0x0709cee0, pqView * currentView=0x06fbb598)  Line 187 + 0x18
>>>>> bytes   C++
>>>>>
>>>>> pqCore.dll!pqDisplayPolicy::createPreferredRepresentation(pqOutputPort
>>>>> * opPort=0x0709cee0, pqView * view=0x06fbb598, bool
>>>>> dont_create_view=false)  Line 240 + 0x17 bytes  C++
>>>>>      pqCore.dll!pqPendingDisplayManager::createPendingDisplays(pqView *
>>>>> activeview=0x06fbb598)  Line 178 + 0x22 bytes   C++
>>>>>      pqCore.dll!pqPendingDisplayManager::createPendingDisplays()  Line
>>>>> 255   C++
>>>>>      pqCore.dll!pqPendingDisplayManager::qt_metacall(QMetaObject::Call
>>>>> _c=InvokeMetaMethod, int _id=5, void * * _a=0x00d4c870)  Line 92
>>>>>  C++
>>>>>      QtCored4.dll!QMetaObject::metacall(QObject * object=0x0638cc30,
>>>>> QMetaObject::Call cl=InvokeMetaMethod, int idx=9, void * *
>>>>> argv=0x00d4c870)  Line 238      C++
>>>>>      QtCored4.dll!QMetaObject::activate(QObject * sender=0x06a952b0,
>>>>> const QMetaObject * m=0x67971f34, int local_signal_index=1, void * *
>>>>> argv=0x00000000)  Line 3264 + 0x27 bytes        C++
>>>>>      pqComponents.dll!pqObjectInspectorWidget::accepted()  Line 141 +
>>>>> 0x15 bytes      C++
>>>>>      pqComponents.dll!pqObjectInspectorWidget::accept()  Line 502
>>>>>  C++
>>>>>
>>>>> pqComponents.dll!pqObjectInspectorWidget::qt_metacall(QMetaObject::Call
>>>>> _c=InvokeMetaMethod, int _id=9, void * * _a=0x00d4c9fc)  Line 114 +
>>>>> 0x8 bytes       C++
>>>>>      QtCored4.dll!QMetaObject::metacall(QObject * object=0x06a952b0,
>>>>> QMetaObject::Call cl=InvokeMetaMethod, int idx=36, void * *
>>>>> argv=0x00d4c9fc)  Line 238      C++
>>>>>      QtCored4.dll!QMetaObject::activate(QObject * sender=0x06a98ac0,
>>>>> const QMetaObject * m=0x65a88ca0, int local_signal_index=2, void * *
>>>>> argv=0x00d4c9fc)  Line 3264 + 0x27 bytes        C++
>>>>>      QtGuid4.dll!QAbstractButton::clicked(bool _t1=false)  Line 204 +
>>>>> 0x15 bytes      C++
>>>>>      QtGuid4.dll!QAbstractButtonPrivate::emitClicked()  Line 548
>>>>> C++
>>>>>      QtGuid4.dll!QAbstractButtonPrivate::click()  Line 540   C++
>>>>>      QtGuid4.dll!QAbstractButton::mouseReleaseEvent(QMouseEvent *
>>>>> e=0x00d4d2d4)  Line 1122        C++
>>>>>      QtGuid4.dll!QWidget::event(QEvent * event=0x00d4d2d4)  Line 7979
>>>>>     C++
>>>>>      QtGuid4.dll!QAbstractButton::event(QEvent * e=0x00d4d2d4)  Line
>>>>> 1081    C++
>>>>>      QtGuid4.dll!QPushButton::event(QEvent * e=0x00d4d2d4)  Line 680
>>>>> C++
>>>>>      QtGuid4.dll!QApplicationPrivate::notify_helper(QObject *
>>>>> receiver=0x06a98ac0, QEvent * e=0x00d4d2d4)  Line 4298 + 0x11
>>>>> bytes   C++
>>>>>      QtGuid4.dll!QApplication::notify(QObject * receiver=0x06a98ac0,
>>>>> QEvent * e=0x00d4d2d4)  Line 3863 + 0x2f bytes  C++
>>>>>      QtCored4.dll!QCoreApplication::notifyInternal(QObject *
>>>>> receiver=0x06a98ac0, QEvent * event=0x00d4d2d4)  Line 704 + 0x15
>>>>> bytes   C++
>>>>>      QtCored4.dll!QCoreApplication::sendSpontaneousEvent(QObject *
>>>>> receiver=0x06a98ac0, QEvent * event=0x00d4d2d4)  Line 218 + 0x38
>>>>> bytes   C++
>>>>>      QtGuid4.dll!QApplicationPrivate::sendMouseEvent(QWidget *
>>>>> receiver=0x06a98ac0, QMouseEvent * event=0x00d4d2d4, QWidget *
>>>>> alienWidget=0x00000000, QWidget * nativeWidget=0x06a98ac0, QWidget * *
>>>>> buttonDown=0x65c8fe9c, QPointer<QWidget> & lastMouseReceiver={...},
>>>>> bool spontaneous=true)  Line 2961 + 0xe bytes   C++
>>>>>      QtGuid4.dll!QETWidget::translateMouseEvent(const tagMSG &
>>>>> msg={...})
>>>>>  Line 3230 + 0x2a bytes C++
>>>>>      QtGuid4.dll!QtWndProc(HWND__ * hwnd=0x001c0348, unsigned int
>>>>> message=514, unsigned int wParam=0, long lParam=1179701)  Line 1623 +
>>>>> 0xc bytes       C++
>>>>>      user32.dll!76836238()
>>>>>      [Frames below may be incorrect and/or missing, no symbols loaded
>>>>> for
>>>>> user32.dll]
>>>>>      user32.dll!768368ea()
>>>>>      user32.dll!76836899()
>>>>>      user32.dll!76837d31()
>>>>>      user32.dll!76837dfa()
>>>>>      QtCored4.dll!QEventDispatcherWin32::processEvents(QFlags<enum
>>>>> QEventLoop::ProcessEventsFlag> flags={...})  Line 770   C++
>>>>>      QtGuid4.dll!QGuiEventDispatcherWin32::processEvents(QFlags<enum
>>>>> QEventLoop::ProcessEventsFlag> flags={...})  Line 1139 + 0x15
>>>>> bytes   C++
>>>>>      QtCored4.dll!QEventLoop::processEvents(QFlags<enum
>>>>> QEventLoop::ProcessEventsFlag> flags={...})  Line 150   C++
>>>>>      QtCored4.dll!QEventLoop::exec(QFlags<enum
>>>>> QEventLoop::ProcessEventsFlag> flags={...})  Line 197 + 0x23 bytes
>>>>>  C++
>>>>>      QtCored4.dll!QCoreApplication::exec()  Line 981 + 0x15 bytes
>>>>>  C++
>>>>>      QtGuid4.dll!QApplication::exec()  Line 3578     C++
>>>>>      paraview.exe!main(int argc=1, char * * argv=0x03a918c8)  Line 71 +
>>>>> 0x8 bytes       C++
>>>>>      paraview.exe!__tmainCRTStartup()  Line 582 + 0x19 bytes C
>>>>>      paraview.exe!mainCRTStartup()  Line 399 C
>>>>>
>>>>> Now, what is odd is that if I set the Z Extent from 0 to 1, then I get
>>>>> a rendering except that the rendering is wrong because there are now 2
>>>>> slices in the z direction. So what am I doing wrong? I can send code
>>>>> and data file if necessary.
>>>>> _________________________________________________________
>>>>> Mike Jackson                  mike.jackson at bluequartz.net
>>>>> BlueQuartz Software                    www.bluequartz.net
>>>>> Principal Software Engineer                  Dayton, Ohio
>>>>> _______________________________________________
>>>>> Powered by www.kitware.com
>>>>>
>>>>> Visit other Kitware open-source projects at
>>>>> http://www.kitware.com/opensource/opensource.html
>>>>>
>>>>> Please keep messages on-topic and check the ParaView Wiki at:
>>>>> http://paraview.org/Wiki/ParaView
>>>>>
>>>>> Follow this link to subscribe/unsubscribe:
>>>>> http://www.paraview.org/mailman/listinfo/paraview
>>>>>
>>>
>>> _______________________________________________
>>> Powered by www.kitware.com
>>>
>>> Visit other Kitware open-source projects at
>>> http://www.kitware.com/opensource/opensource.html
>>>
>>> Please keep messages on-topic and check the ParaView Wiki at:
>>> http://paraview.org/Wiki/ParaView
>>>
>>> Follow this link to subscribe/unsubscribe:
>>> http://www.paraview.org/mailman/listinfo/paraview
>>>
>
>


More information about the ParaView mailing list