30 #ifndef vtkCompositeDataDisplayAttributes_h
31 #define vtkCompositeDataDisplayAttributes_h
33 #include <unordered_map>
37 #include "vtkRenderingCoreModule.h"
52 bool HasBlockVisibilities()
const;
58 void SetBlockVisibility(
vtkDataObject* data_object,
bool visible);
77 void RemoveBlockVisibilities();
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(
209 const unsigned int flat_index,
vtkDataObject* parent_obj,
unsigned int current_flat_index = 0);
213 for (
auto entry : this->BlockVisibilities)
215 if (visitor(entry.first, entry.second))
241 using BoolMap = std::unordered_map<vtkDataObject*, bool>;
242 using DoubleMap = std::unordered_map<vtkDataObject*, double>;
243 using ColorMap = std::unordered_map<vtkDataObject*, vtkColor3d>;
244 using StringMap = std::unordered_map<vtkDataObject*, std::string>;
246 BoolMap BlockVisibilities;
247 ColorMap BlockColors;
248 DoubleMap BlockOpacities;
249 StringMap BlockMaterials;
250 BoolMap BlockPickabilities;
253 #endif // vtkCompositeDataDisplayAttributes_h
abstract base class for most VTK objects
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void VisitVisibilities(std::function< bool(vtkDataObject *, bool)> visitor)
Rendering attributes for a multi-block dataset.
a simple class to control print indentation
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
general representation of visualization data
Fast, simple class for representing and operating on 3D bounds.