VTK  9.3.20240328
vtkExtractTensorComponents.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
43 #ifndef vtkExtractTensorComponents_h
44 #define vtkExtractTensorComponents_h
45 
46 #include "vtkDataSetAlgorithm.h"
47 #include "vtkFiltersExtractionModule.h" // For export macro
48 
49 #define VTK_EXTRACT_COMPONENT 0
50 #define VTK_EXTRACT_EFFECTIVE_STRESS 1
51 #define VTK_EXTRACT_DETERMINANT 2
52 #define VTK_EXTRACT_NONNEGATIVE_DETERMINANT 3
53 #define VTK_EXTRACT_TRACE 4
54 
55 VTK_ABI_NAMESPACE_BEGIN
56 class VTKFILTERSEXTRACTION_EXPORT vtkExtractTensorComponents : public vtkDataSetAlgorithm
57 {
58 public:
60 
64  void PrintSelf(ostream& os, vtkIndent indent) override;
66 
72 
74 
77  vtkSetMacro(PassTensorsToOutput, vtkTypeBool);
78  vtkGetMacro(PassTensorsToOutput, vtkTypeBool);
79  vtkBooleanMacro(PassTensorsToOutput, vtkTypeBool);
81 
83 
86  vtkSetMacro(ExtractScalars, vtkTypeBool);
87  vtkGetMacro(ExtractScalars, vtkTypeBool);
88  vtkBooleanMacro(ExtractScalars, vtkTypeBool);
90 
92 
95  vtkSetVector2Macro(ScalarComponents, int);
96  vtkGetVectorMacro(ScalarComponents, int, 2);
98 
100 
107  vtkSetMacro(ScalarMode, int);
108  vtkGetMacro(ScalarMode, int);
109  void SetScalarModeToComponent() { this->SetScalarMode(VTK_EXTRACT_COMPONENT); }
111  void SetScalarModeToDeterminant() { this->SetScalarMode(VTK_EXTRACT_DETERMINANT); }
113  {
114  this->SetScalarMode(VTK_EXTRACT_NONNEGATIVE_DETERMINANT);
115  }
116  void SetScalarModeToTrace() { this->SetScalarMode(VTK_EXTRACT_TRACE); }
117  void ScalarIsComponent() { this->SetScalarMode(VTK_EXTRACT_COMPONENT); }
118  void ScalarIsEffectiveStress() { this->SetScalarMode(VTK_EXTRACT_EFFECTIVE_STRESS); }
119  void ScalarIsDeterminant() { this->SetScalarMode(VTK_EXTRACT_DETERMINANT); }
121  {
122  this->SetScalarMode(VTK_EXTRACT_NONNEGATIVE_DETERMINANT);
123  }
124  void ScalarIsTrace() { this->SetScalarMode(VTK_EXTRACT_TRACE); }
126 
128 
131  vtkSetMacro(ExtractVectors, vtkTypeBool);
132  vtkGetMacro(ExtractVectors, vtkTypeBool);
133  vtkBooleanMacro(ExtractVectors, vtkTypeBool);
135 
137 
141  vtkSetVector6Macro(VectorComponents, int);
142  vtkGetVectorMacro(VectorComponents, int, 6);
144 
146 
149  vtkSetMacro(ExtractNormals, vtkTypeBool);
150  vtkGetMacro(ExtractNormals, vtkTypeBool);
151  vtkBooleanMacro(ExtractNormals, vtkTypeBool);
153 
155 
159  vtkSetMacro(NormalizeNormals, vtkTypeBool);
160  vtkGetMacro(NormalizeNormals, vtkTypeBool);
161  vtkBooleanMacro(NormalizeNormals, vtkTypeBool);
163 
165 
169  vtkSetVector6Macro(NormalComponents, int);
170  vtkGetVectorMacro(NormalComponents, int, 6);
172 
174 
177  vtkSetMacro(ExtractTCoords, vtkTypeBool);
178  vtkGetMacro(ExtractTCoords, vtkTypeBool);
179  vtkBooleanMacro(ExtractTCoords, vtkTypeBool);
181 
183 
186  vtkSetClampMacro(NumberOfTCoords, int, 1, 3);
187  vtkGetMacro(NumberOfTCoords, int);
189 
191 
196  vtkSetVector6Macro(TCoordComponents, int);
197  vtkGetVectorMacro(TCoordComponents, int, 6);
199 
201 
209  vtkSetMacro(OutputPrecision, int);
210  vtkGetMacro(OutputPrecision, int);
212 
213 protected:
215  ~vtkExtractTensorComponents() override = default;
216 
218 
220 
225 
227  int ScalarComponents[2];
228 
229  int VectorComponents[6];
230 
232  int NormalComponents[6];
233 
235  int TCoordComponents[6];
236 
238 
239 private:
241  void operator=(const vtkExtractTensorComponents&) = delete;
242 };
243 
244 VTK_ABI_NAMESPACE_END
245 #endif
Superclass for algorithms that produce output of the same type as input.
extract parts of tensor and create a scalar, vector, normal, or texture coordinates.
void SetScalarModeToEffectiveStress()
Specify how to extract the scalar.
void SetScalarModeToDeterminant()
Specify how to extract the scalar.
void ScalarIsTrace()
Specify how to extract the scalar.
void ScalarIsNonNegativeDeterminant()
Specify how to extract the scalar.
void PrintSelf(ostream &os, vtkIndent indent) override
Standard methods for obtaining type information, and printing.
static vtkExtractTensorComponents * New()
Construct object to extract nothing and to not pass tensor data through the pipeline.
void SetScalarModeToNonNegativeDeterminant()
Specify how to extract the scalar.
void ScalarIsComponent()
Specify how to extract the scalar.
void ScalarIsDeterminant()
Specify how to extract the scalar.
void ScalarIsEffectiveStress()
Specify how to extract the scalar.
~vtkExtractTensorComponents() override=default
void SetScalarModeToTrace()
Specify how to extract the scalar.
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called within ProcessRequest when a request asks the algorithm to do its work.
void SetScalarModeToComponent()
Specify how to extract the scalar.
a simple class to control print indentation
Definition: vtkIndent.h:108
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
int vtkTypeBool
Definition: vtkABI.h:64
#define VTK_EXTRACT_EFFECTIVE_STRESS
#define VTK_EXTRACT_DETERMINANT
#define VTK_EXTRACT_NONNEGATIVE_DETERMINANT
#define VTK_EXTRACT_COMPONENT
#define VTK_EXTRACT_TRACE