27 #ifndef vtkCompositeDataDisplayAttributes_h
28 #define vtkCompositeDataDisplayAttributes_h
30 #include <unordered_map>
34 #include "vtkRenderingCoreModule.h"
208 const unsigned int flat_index,
vtkDataObject* parent_obj,
unsigned int& current_flat_index);
212 for (
auto entry : this->BlockVisibilities)
214 if (visitor(entry.first, entry.second))
240 using BoolMap = std::unordered_map<vtkDataObject*, bool>;
241 using DoubleMap = std::unordered_map<vtkDataObject*, double>;
242 using ColorMap = std::unordered_map<vtkDataObject*, vtkColor3d>;
243 using StringMap = std::unordered_map<vtkDataObject*, std::string>;
245 BoolMap BlockVisibilities;
246 ColorMap BlockColors;
247 DoubleMap BlockOpacities;
248 StringMap BlockMaterials;
249 BoolMap BlockPickabilities;
Fast, simple class for dealing with 3D bounds.
Rendering attributes for a multi-block dataset.
bool GetBlockPickability(vtkDataObject *data_object) const
void SetBlockMaterial(vtkDataObject *data_object, const std::string &material)
Set/get the material for the block with data_object.
bool HasBlockOpacities() const
Returns true if any block has an opacity set.
vtkCompositeDataDisplayAttributes()
bool HasBlockVisibilities() const
Returns true if any block has any block visibility is set.
bool HasBlockMaterials() const
Returns true if any block has an material set.
~vtkCompositeDataDisplayAttributes() override
void SetBlockOpacity(vtkDataObject *data_object, double opacity)
Set/get the opacity for the block with data_object.
void SetBlockColor(vtkDataObject *data_object, const double color[3])
Set/get the color for the block with data_object.
void SetBlockVisibility(vtkDataObject *data_object, bool visible)
Set/get the visibility for the block with data_object.
const std::string & GetBlockMaterial(vtkDataObject *data_object) const
static vtkCompositeDataDisplayAttributes * New()
bool GetBlockVisibility(vtkDataObject *data_object) const
void SetBlockPickability(vtkDataObject *data_object, bool visible)
Set/get the pickability for the block with data_object.
void RemoveBlockVisibilities()
Removes all block visibility flags.
bool HasBlockOpacity(vtkDataObject *data_object) const
Returns true if the block with data_object has an opacity set.
bool HasBlockPickability(vtkDataObject *data_object) const
Returns true if the block with the given data_object has a pickability set.
void RemoveBlockOpacities()
Removes all block opacities.
void RemoveBlockColor(vtkDataObject *data_object)
Removes the block color for the block with data_object.
void GetBlockColor(vtkDataObject *data_object, double color[3]) const
void VisitVisibilities(std::function< bool(vtkDataObject *, bool)> visitor)
static vtkDataObject * DataObjectFromIndex(const unsigned int flat_index, vtkDataObject *parent_obj, unsigned int ¤t_flat_index)
Get the DataObject corresponding to the node with index flat_index under parent_obj.
double GetBlockOpacity(vtkDataObject *data_object) const
bool HasBlockColor(vtkDataObject *data_object) const
Returns true if the block with the given data_object has a color.
void RemoveBlockVisibilites()
void RemoveBlockMaterial(vtkDataObject *data_object)
Removes the set material for the block with data_object.
void RemoveBlockOpacity(vtkDataObject *data_object)
Removes the set opacity for the block with data_object.
bool HasBlockVisibility(vtkDataObject *data_object) const
Returns true if the block with the given data_object has a visibility set.
void RemoveBlockMaterials()
Removes all block materialss.
bool HasBlockPickabilities() const
Returns true if any block has any block pickability is set.
bool HasBlockColors() const
Returns true if any block has any block color is set.
void RemoveBlockPickabilities()
Removes all block pickability flags.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void RemoveBlockVisibility(vtkDataObject *data_object)
Removes the block visibility flag for the block with data_object.
static void ComputeVisibleBounds(vtkCompositeDataDisplayAttributes *cda, vtkDataObject *dobj, double bounds[6])
If the input dobj is a vtkCompositeDataSet, we will loop over the hierarchy recursively starting from...
bool HasBlockMaterial(vtkDataObject *data_object) const
Returns true if the block with data_object has an material set.
void RemoveBlockPickability(vtkDataObject *data_object)
Removes the block pickability flag for the block with data_object.
vtkColor3d GetBlockColor(vtkDataObject *data_object) const
void RemoveBlockColors()
Removes all block colors.
general representation of visualization data
a simple class to control print indentation
abstract base class for most VTK objects