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

Mike Jackson mike.jackson at bluequartz.net
Wed Jan 27 11:16:09 EST 2010


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


More information about the ParaView mailing list