Hello all,

I am still struggling with this problem, so I figured I would re-post the 
question to the general list in hopes of getting a wider audience!

Thanks in advance for any help you may provide!

For Completeness, I have verified that I am setting the number of output ports 
in my constructor.

Thanks again for any help!

-Joshua Murphy

Laboratory for Atmospheric and Space Physics

University of Colorado, Boulder


Hello,

I am attempting to write a reader that handles both structured grids and 
meta-data.  It was recommended to me that I use multiple ports, and populate a 
vtkTable with the meta-data.

I think I am having some conceptual problems with how this is supposed to work.

I have written a dummy reader in an attempt to get the meta-data working prior 
to porting it to my real reader, but I am having trouble…

My understanding is that I need to


 1.  specify the number of output ports with this->SetNumberOfOutputPorts(2)
 2.  Populate the output port information
int vtkGenericReader::FillOutputPortInformation(int port, vtkInformation* info)

{

  switch(port)

    {

    case 0:

      info->Set(vtkDataObject::DATA_TYPE_NAME(), "vtkStructuredGrid");

      break;

    case 1:

      info->Set(vtkDataObject::DATA_TYPE_NAME(), "vtkTable");

      break;

    }

  return 1;

}



3. Get the informationObject from the outputVector

   outputvector->GetInformationObject(1);



4. Get the table data

     this->MetaData = dynamic_cast<vtkTable*>

      (this->MetaDataOutInfo->Get(vtkDataObject::DATA_OBJECT()));



5. Add string to the table



  vtkStringArray *MetaString = vtkStringArray::New();

  MetaString->SetName("Meta Data");

  MetaString->SetNumberOfComponents(1);

  MetaString->InsertNextValue("This is a Test");

  MetaString->InsertNextValue("Test 2");

  MetaString->InsertNextValue("Test 3");

  this->MetaData->AddColumn(MetaString);





It is my understanding that this information should then be available in the 
ParaView GUI.





The problems I am having are this:



1.  When attempting to get both port information objects on the first call to 
RequestInformation(), port 1 returns a NULL object.  On the SECOND call to 
GetInformation(), both ports are available.



2.  All calls to RequestData() only provide access to port 0 in the Output 
information Vector.  I can access port 1 if I utilize 
this->getExecutive()->getOutputInformation(1)



3.  When using #2 to get the information, I populate, but I am unsure where/how 
things are supposed to be accessible in the GUI.





What I am trying to do is be able to access the meta-data values from within 
ParaView so that I can utilize data values, units, model run data, etc.



If anyone can help me understand what is supposed to be going on, or if I am 
completely doing something wrong, I would be grateful!  Am I missing some 
steps? Do I need to have XML code to access the vtkTable?





Thanks,



Joshua Murphy

Laboratory for Atmospheric and Space Physics

University of Colorado, Boulder


_______________________________________________
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

Reply via email to