};
vtkStandardNewMacro(vtkMEDReader);
-vtkInformationKeyMacro(vtkMEDReader, META_DATA, DataObjectMetaData);
+
+// vtkInformationKeyMacro(vtkMEDReader, META_DATA, DataObjectMetaData); // Here we need to customize vtkMEDReader::META_DATA method
+// start of overload of vtkInformationKeyMacro
+static vtkInformationDataObjectMetaDataKey *vtkMEDReader_META_DATA=new vtkInformationDataObjectMetaDataKey("META_DATA","vtkMEDReader");
+
+vtkInformationDataObjectMetaDataKey *vtkMEDReader::META_DATA()
+{
+ static const char ZE_KEY[]="vtkMEDReader::META_DATA";
+ vtkInformationDataObjectMetaDataKey *ret(vtkMEDReader_META_DATA);
+ MEDCoupling::GlobalDict *gd(MEDCoupling::GlobalDict::GetInstance());
+ if(!gd->hasKey(ZE_KEY))
+ {// here META_DATA is put on global var to be exchanged with other filters without dependancy of MEDReader. Please do not change ZE_KEY !
+ std::ostringstream oss; oss << ret;
+ gd->setKeyValue(ZE_KEY,oss.str());
+ }
+ return ret;
+}
+// end of overload of vtkInformationKeyMacro
vtkMEDReader::vtkMEDReader():Internal(new vtkMEDReaderInternal(this))
{
{
if(!this->Internal)
return;
- vtkMutableDirectedGraph *sil(vtkMutableDirectedGraph::New());
-
- // This Should be more clever, TODO
- std::string meshName(this->BuildSIL(sil));
- if(meshName!=this->Internal->DftMeshName)
+ std::string meshName(this->Internal->Tree.getActiveMeshName());
+ if(!this->Internal->SIL || meshName!=this->Internal->DftMeshName)
{
+ vtkMutableDirectedGraph *sil(vtkMutableDirectedGraph::New());
+ this->BuildSIL(sil);
if(this->Internal->SIL)
this->Internal->SIL->Delete();
this->Internal->SIL=sil;
this->Internal->DftMeshName=meshName;
}
- else
- {
- sil->Delete();
- }
}
/*!