File: vtkCompositeDataDisplayAttributesLegacy.h

package info (click to toggle)
paraview 5.11.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 497,236 kB
  • sloc: cpp: 3,171,290; ansic: 1,315,072; python: 134,290; xml: 103,324; sql: 65,887; sh: 5,286; javascript: 4,901; yacc: 4,383; java: 3,977; perl: 2,363; lex: 1,909; f90: 1,255; objc: 143; makefile: 119; tcl: 59; pascal: 50; fortran: 29
file content (197 lines) | stat: -rw-r--r-- 6,115 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
/*=========================================================================

  Program:   Visualization Toolkit
  Module:    vtkCompositeDataDisplayAttributesLegacy.h

  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
  All rights reserved.
  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.

     This software is distributed WITHOUT ANY WARRANTY; without even
     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
     PURPOSE.  See the above copyright notice for more information.

=========================================================================*/
/**
 * @class   vtkCompositeDataDisplayAttributesLegacy
 * @brief   rendering attributes for a
 * multi-block dataset.
 *
 * The vtkCompositeDataDisplayAttributesLegacy class stores display attributes
 * for individual blocks in a multi-block dataset. Attributes are mapped to
 * blocks through their flat-index; This is the mechanism used in legacy
 * OpenGL classes.
 */

#ifndef vtkCompositeDataDisplayAttributesLegacy_h
#define vtkCompositeDataDisplayAttributesLegacy_h

#include "vtkColor.h" // for vtkColor3d
#include "vtkObject.h"
#include "vtkRenderingCoreModule.h" // for export macro

#include <map> // for std::map

VTK_ABI_NAMESPACE_BEGIN
class vtkBoundingBox;
class vtkDataObject;

class VTKRENDERINGCORE_EXPORT vtkCompositeDataDisplayAttributesLegacy : public vtkObject
{
public:
  static vtkCompositeDataDisplayAttributesLegacy* New();
  vtkTypeMacro(vtkCompositeDataDisplayAttributesLegacy, vtkObject);
  void PrintSelf(ostream& os, vtkIndent indent) override;

  /**
   * Returns true if any block has any block visibility is set.
   */
  bool HasBlockVisibilities() const;

  ///@{
  /**
   * Set/get the visibility for the block with \p flat_index.
   */
  void SetBlockVisibility(unsigned int flat_index, bool visible);
  bool GetBlockVisibility(unsigned int flat_index) const;
  ///@}

  /**
   * Returns true if the block with the given flat_index has a visibility
   * set.
   */
  bool HasBlockVisibility(unsigned int flat_index) const;

  /**
   * Removes the block visibility flag for the block with flat_index.
   */
  void RemoveBlockVisibility(unsigned int flat_index);

  /**
   * Removes all block visibility flags. The effectively sets the visibility
   * for all blocks to true.
   */
  void RemoveBlockVisibilities();

  /**
   * Returns true if any block has any block visibility is set.
   */
  bool HasBlockPickabilities() const;

  ///@{
  /**
   * Set/get the visibility for the block with \p flat_index.
   */
  void SetBlockPickability(unsigned int flat_index, bool visible);
  bool GetBlockPickability(unsigned int flat_index) const;
  ///@}

  /**
   * Returns true if the block with the given flat_index has a visibility
   * set.
   */
  bool HasBlockPickability(unsigned int flat_index) const;

  /**
   * Removes the block visibility flag for the block with flat_index.
   */
  void RemoveBlockPickability(unsigned int flat_index);

  /**
   * Removes all block visibility flags. The effectively sets the visibility
   * for all blocks to true.
   */
  void RemoveBlockPickabilities();

  ///@{
  /**
   * Set/get the color for the block with \p flat_index.
   */
  void SetBlockColor(unsigned int flat_index, const double color[3]);
  void GetBlockColor(unsigned int flat_index, double color[3]) const;
  vtkColor3d GetBlockColor(unsigned int flat_index) const;
  ///@}

  /**
   * Returns true if any block has any block color is set.
   */
  bool HasBlockColors() const;

  /**
   * Returns true if the block with the given \p flat_index has a color.
   */
  bool HasBlockColor(unsigned int flat_index) const;

  /**
   * Removes the block color for the block with \p flat_index.
   */
  void RemoveBlockColor(unsigned int flat_index);

  /**
   * Removes all block colors.
   */
  void RemoveBlockColors();

  ///@{
  /**
   * Set/get the opacity for the block with flat_index.
   */
  void SetBlockOpacity(unsigned int flat_index, double opacity);
  double GetBlockOpacity(unsigned int flat_index) const;
  ///@}

  /**
   * Returns true if any block has an opacity set.
   */
  bool HasBlockOpacities() const;

  /**
   * Returns true if the block with flat_index has an opacity set.
   */
  bool HasBlockOpacity(unsigned int flat_index) const;

  /**
   * Removes the set opacity for the block with flat_index.
   */
  void RemoveBlockOpacity(unsigned int flat_index);

  /**
   * Removes all block opacities.
   */
  void RemoveBlockOpacities();

  // If the input \a dobj is a vtkCompositeDataSet, we will loop over the
  // hierarchy recursively starting from initial index 0 and use only visible
  // blocks, which is specified in the vtkCompositeDataDisplayAttributesLegacy \a cda,
  // to compute the \a bounds.
  static void ComputeVisibleBounds(
    vtkCompositeDataDisplayAttributesLegacy* cda, vtkDataObject* dobj, double bounds[6]);

protected:
  vtkCompositeDataDisplayAttributesLegacy();
  ~vtkCompositeDataDisplayAttributesLegacy() override;

private:
  vtkCompositeDataDisplayAttributesLegacy(const vtkCompositeDataDisplayAttributesLegacy&) = delete;
  void operator=(const vtkCompositeDataDisplayAttributesLegacy&) = delete;

  /**
   * If the input data \a dobj is a vtkCompositeDataSet, we will
   * loop over the hierarchy recursively starting from initial index
   * \a flat_index and use only visible blocks, which is
   * specified in the vtkCompositeDataDisplayAttributesLegacy \a cda,
   * to compute bounds and the result bounds will be set to
   * the vtkBoundingBox \a bbox. The \a paraentVisible is the
   * visibility for the starting flat_index.
   */
  static void ComputeVisibleBoundsInternal(vtkCompositeDataDisplayAttributesLegacy* cda,
    vtkDataObject* dobj, unsigned int& flat_index, vtkBoundingBox* bbox, bool parentVisible = true);

  std::map<unsigned int, bool> BlockVisibilities;
  std::map<unsigned int, vtkColor3d> BlockColors;
  std::map<unsigned int, double> BlockOpacities;
  std::map<unsigned int, bool> BlockPickabilities;
};

VTK_ABI_NAMESPACE_END
#endif // vtkCompositeDataDisplayAttributesLegacy_h