Salome HOME
PV 5.4 : Porting to OpenGL2
[modules/paravis.git] / src / Plugins / MEDReader / IO / vtkMEDReader.h
index 3effd17ab1c4d7337ec606ee4314e162fc83e61b..0fe34add71c1b6829b64259eae0648b8de24e795 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2010-2015  CEA/DEN, EDF R&D
+// Copyright (C) 2010-2016  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 #include <string>
 
 #include "vtkMultiBlockDataSetAlgorithm.h"
+#include "vtkInformationGaussDoubleVectorKey.h"
 
+class vtkDataSet;
 class vtkMutableDirectedGraph;
+class vtkInformationDataObjectMetaDataKey;
+class vtkInformationDoubleVectorKey;
+class ExportedTinyInfo;
 
 class VTK_EXPORT vtkMEDReader : public vtkMultiBlockDataSetAlgorithm
 {
@@ -52,22 +57,37 @@ class VTK_EXPORT vtkMEDReader : public vtkMultiBlockDataSetAlgorithm
   virtual const char *GetTimesFlagsArrayName(int index);
   //! Build the graph used to pass information to the client on the supports
   virtual std::string BuildSIL(vtkMutableDirectedGraph*);
-  virtual void Reload(int);
+
+  // Description
+  // Reload will delete the internal reader and recreate it with default properties
+  virtual void Reload();
+
+  virtual int GetServerModifTime();
+  //
   virtual void GenerateVectors(int);
   virtual void ChangeMode(int);
-  virtual const char *GetSeparator();
+  virtual void GhostCellGeneratorCallForPara(int);
+  static const char *GetSeparator();
+
+  // Description
+  // Static information key used to transfer the meta data graph along the pipeline
+  static vtkInformationDataObjectMetaDataKey* META_DATA();
+  static vtkInformationGaussDoubleVectorKey* GAUSS_DATA();
+
  protected:
   vtkMEDReader();
   virtual ~vtkMEDReader();
   virtual int RequestInformation(vtkInformation*, vtkInformationVector**, vtkInformationVector*);
   virtual int RequestData(vtkInformation*, vtkInformationVector**, vtkInformationVector*);
  private:
-  void UpdateSIL(vtkInformation *info);
+  void UpdateSIL(vtkInformation *request, vtkInformation *info);
   virtual double PublishTimeStepsIfNeeded(vtkInformation*, bool& isUpdated);
-  virtual void FillMultiBlockDataSetInstance(vtkMultiBlockDataSet *output, double reqTS);
+  virtual void FillMultiBlockDataSetInstance(vtkMultiBlockDataSet *output, double reqTS, ExportedTinyInfo *internalInfo=0);
+  vtkDataSet *RetrieveDataSetAtTime(double reqTS, ExportedTinyInfo *internalInfo);
  private:
   //BTX
   //ETX
+
   class vtkMEDReaderInternal;
   vtkMEDReaderInternal* Internal;
 };