[vtkusers] Pipeline Structure Question ?
Sathya Krishnamurthy
skrishna at cscs.ch
Tue Dec 12 05:09:00 EST 2000
Hello Everybody
I have a basic question in the pipeline structure of VTK.
My pipeline is setup like this
Reader .. Reader->GetOutput ()->ReleaseDataFlagOn ();
MarchingCubes
PolyDataMapper
Renderer
So, I assumed that Calls from Renderer Goes to PolyDataMapper.
PolyDataMapper requests data to the filter and filter to the Reader. But,
I realized that the PolyDataMapper bypasses the filter and requests the
data directly from the Reader. So the pipeline gets modified like
Renderer->PolyDataMapper (Requests Reader for data)->Reader-> Once this
returns-> MarchingCubes (activates) (Requests Input for data)-> Reader
So, essentially the data is read twice. I found this after running the
pipeline. Since, the Reader is my own datareader, do I need to have to set
any special flags in it to avoid the first Read. I have added the debug
output from my pipeline, which shows this behaviour.
Another important behaviour I could not understand was
Reader::ExecuteInformation (which reads the header) was executed twice !?
Can someone kindly help me with this problem ?
Thanks a lot
Regards
Sathya
ps: if you need the actual source code of my Reader and the testing
program, I will be very much willing to share with you.
--------Debug Output ---------------
Debug: In vtkImageMarchingCubes.h,
vtkImageMarchingCubes (0x10025fe8):vtkImageMarchingCubes (0x10025fe8): setting InputMemoryLimit to 10000
Debug: In vtkMapper.h, line 136 vtkOpenGLPolyDataMapper (0x10026668):
vtkOpenGLPolyDataMapper (0x10026668): setting ScalarVisibility to 0
Debug:In vtkObject.cxx, line 189 vtkOpenGLPolyDataMapper (0x10026668):
Registered by vtkOpenGLActor (0x10026b88), ReferenceCount = 2
vtkPegasus:ExecuteInformation:-
Reading file Header...../t00025850mo_avs.data
Dimensions of Data...1441 201 221
vtkPegasus:ExecuteInformation:-
Reading file Header...../t00025850mo_avs.data
Dimensions of Data...1441 201 221
vtkPegasus:Execute:-
Pegasus-Data Extents To Read :0 1440 0 200 0 220
Pegasus-Update Extents To Read :0 1440 0 200 0 220
^^^^^^^^^^^^
This part reads the whole dataset !!
Debug: In vtkImageMarchingCubes.cxx, line 139 vtkImageMarchingCubes
(0x10025fe8): Starting Execute Method
Debug: In vtkImageMarchingCubes.cxx, line 212 vtkImageMarchingCubes
(0x10025fe8): Execute: NumberOfSlicesPerChunk = 8
Debug: In vtkImageMarchingCubes.cxx, line 226 vtkImageMarchingCubes
(0x10025fe8): Estimated number of points/triangles: 714752
Debug: In ./../common/vtkProcessObject.h, line 116 vtkImageMarchingCubes
(0x10025fe8): vtkImageMarchingCubes (0x10025fe8): returning AbortExecute
of 0
vtkPegasus:Execute:-
Pegasus-Data Extents To Read :0 1440 0 200 4 11
Pegasus-Update Extents To Read :0 1440 0 200 4 11
^^^^^^^^^^^^^^^^^^^
Funnily, now MarchingCubes now begins to read the data already read once
??
Debug: In ./../common/vtkProcessObject.h, line 116 vtkImageMarchingCubes
(0x10025fe8): vtkImageMarchingCubes (0x10025fe8): returning AbortExecute
of 0
vtkPegasus:Execute:-
Pegasus-Data Extents To Read :0 1440 0 200 9 16
Pegasus-Update Extents To Read :0 1440 0 200 9 16
Debug: In ./../common/vtkProcessObject.h, line 116 vtkImageMarchingCubes
(0x10025fe8): vtkImageMarchingCubes (0x10025fe8): returning AbortExecute
of 0
More information about the vtkusers
mailing list