10 #ifndef smtk_vtk_ResourceMultiBlockSource_h
11 #define smtk_vtk_ResourceMultiBlockSource_h
13 #include "smtk/extension/vtk/source/vtkSMTKSourceExtModule.h"
15 #include "smtk/geometry/Geometry.h"
17 #include "smtk/resource/Component.h"
18 #include "smtk/resource/Resource.h"
20 #include "vtkMultiBlockDataSetAlgorithm.h"
60 void PrintSelf(ostream& os, vtkIndent indent)
override;
73 enum Value :
unsigned int
99 static vtkInformationStringKey* COMPONENT_ID();
102 static void SetDataObjectUUID(vtkInformation*,
const UUID&);
105 static UUID GetDataObjectUUID(vtkInformation*);
108 static void SetResourceId(vtkMultiBlockDataSet* dataset,
const UUID&);
111 static UUID GetResourceId(vtkMultiBlockDataSet* dataset);
123 vtkMTimeType GetMTime()
override;
130 DumpBlockStructureWithUUIDsInternal(dataset, counter, indent);
133 DumpBlockStructureWithUUIDsInternal(vtkMultiBlockDataSet* dataset,
int& counter,
int indent = 0);
141 bool SetCachedData(
const UUID& uid, vtkDataObject* data, SequenceType sequenceNumber);
143 SequenceType GetCachedDataSequenceNumber(
const UUID& uid)
const;
145 vtkDataObject* GetCachedDataObject(
const UUID& uid);
149 bool RemoveCacheEntry(
const UUID& uid);
151 bool RemoveCacheEntriesExcept(
const std::set<UUID>& exceptions);
156 vtkInformation* request,
157 vtkInformationVector** inInfo,
158 vtkInformationVector* outInfo)
override;
167 int RequestDataFromGeometry(
168 vtkInformation* request,
169 vtkInformationVector* outputData,
172 std::weak_ptr<smtk::resource::Resource> Resource;
173 std::map<UUID, CacheEntry> Cache;