30 #ifndef vtkCompositeDataDisplayAttributes_h
31 #define vtkCompositeDataDisplayAttributes_h
33 #include <unordered_map>
37 #include "vtkRenderingCoreModule.h"
53 bool HasBlockVisibilities()
const;
59 void SetBlockVisibility(
vtkDataObject* data_object,
bool visible);
78 void RemoveBlockVisibilities();
80 VTK_LEGACY(
void RemoveBlockVisibilites());
85 bool HasBlockPickabilities()
const;
91 void SetBlockPickability(
vtkDataObject* data_object,
bool visible);
110 void RemoveBlockPickabilities();
124 bool HasBlockColors()
const;
139 void RemoveBlockColors();
145 void SetBlockOpacity(
vtkDataObject* data_object,
double opacity);
152 bool HasBlockOpacities()
const;
167 void RemoveBlockOpacities();
181 bool HasBlockMaterials()
const;
196 void RemoveBlockMaterials();
204 static void ComputeVisibleBounds(
213 static vtkDataObject* DataObjectFromIndex(
const unsigned int flat_index,
214 vtkDataObject* parent_obj,
unsigned int& current_flat_index);
218 for (
auto entry : this->BlockVisibilities)
220 if (visitor(entry.first, entry.second))
242 static void ComputeVisibleBoundsInternal(
246 bool parentVisible =
true);
248 using BoolMap = std::unordered_map<vtkDataObject*, bool>;
249 using DoubleMap = std::unordered_map<vtkDataObject*, double>;
250 using ColorMap = std::unordered_map<vtkDataObject*, vtkColor3d>;
251 using StringMap = std::unordered_map<vtkDataObject*, std::string>;
253 BoolMap BlockVisibilities;
254 ColorMap BlockColors;
255 DoubleMap BlockOpacities;
256 StringMap BlockMaterials;
257 BoolMap BlockPickabilities;
260 #endif // vtkCompositeDataDisplayAttributes_h