27 #ifndef vtkCompositeDataDisplayAttributes_h
28 #define vtkCompositeDataDisplayAttributes_h
30 #include <unordered_map>
34 #include "vtkRenderingCoreModule.h"
50 bool HasBlockVisibilities()
const;
56 void SetBlockVisibility(
vtkDataObject* data_object,
bool visible);
75 void RemoveBlockVisibilities();
77 VTK_LEGACY(
void RemoveBlockVisibilites());
82 bool HasBlockPickabilities()
const;
88 void SetBlockPickability(
vtkDataObject* data_object,
bool visible);
107 void RemoveBlockPickabilities();
121 bool HasBlockColors()
const;
136 void RemoveBlockColors();
142 void SetBlockOpacity(
vtkDataObject* data_object,
double opacity);
149 bool HasBlockOpacities()
const;
164 void RemoveBlockOpacities();
178 bool HasBlockMaterials()
const;
193 void RemoveBlockMaterials();
201 static void ComputeVisibleBounds(
210 static vtkDataObject* DataObjectFromIndex(
const unsigned int flat_index,
211 vtkDataObject* parent_obj,
unsigned int& current_flat_index);
215 for (
auto entry : this->BlockVisibilities)
217 if (visitor(entry.first, entry.second))
239 static void ComputeVisibleBoundsInternal(
243 bool parentVisible =
true);
245 using BoolMap = std::unordered_map<vtkDataObject*, bool>;
246 using DoubleMap = std::unordered_map<vtkDataObject*, double>;
247 using ColorMap = std::unordered_map<vtkDataObject*, vtkColor3d>;
248 using StringMap = std::unordered_map<vtkDataObject*, std::string>;
250 BoolMap BlockVisibilities;
251 ColorMap BlockColors;
252 DoubleMap BlockOpacities;
253 StringMap BlockMaterials;
254 BoolMap BlockPickabilities;
257 #endif // vtkCompositeDataDisplayAttributes_h