30 #ifndef vtkCompositeDataDisplayAttributes_h
31 #define vtkCompositeDataDisplayAttributes_h
33 #include <unordered_map>
37 #include "vtkRenderingCoreModule.h"
48 void PrintSelf(ostream& os,
vtkIndent indent) override;
53 bool HasBlockVisibilities() const;
78 void RemoveBlockVisibilities();
80 VTK_LEGACY(
void RemoveBlockVisibilites());
85 bool HasBlockPickabilities() const;
110 void RemoveBlockPickabilities();
124 bool HasBlockColors() const;
139 void RemoveBlockColors();
152 bool HasBlockOpacities() const;
167 void RemoveBlockOpacities();
174 void SetBlockMaterial(
vtkDataObject* data_object, const std::
string& material);
181 bool HasBlockMaterials() const;
196 void RemoveBlockMaterials();
204 static
void ComputeVisibleBounds(
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