VTK
vtkYoungsMaterialInterface.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkYoungsMaterialInterface.h
5
6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7 All rights reserved.
8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10 This software is distributed WITHOUT ANY WARRANTY; without even
11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12 PURPOSE. See the above copyright notice for more information.
13
14=========================================================================*/
40#ifndef vtkYoungsMaterialInterface_h
41#define vtkYoungsMaterialInterface_h
42
43#include "vtkFiltersGeneralModule.h" // For export macro
45
46#include "vtkSmartPointer.h" // For SP ivars
47
48class vtkIntArray;
49class vtkInformation;
51class vtkYoungsMaterialInterfaceInternals;
52
53class VTKFILTERSGENERAL_EXPORT vtkYoungsMaterialInterface : public vtkMultiBlockDataSetAlgorithm
54{
55public:
58 void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
59
61
64 vtkSetMacro(InverseNormal,int);
65 vtkGetMacro(InverseNormal,int);
66 vtkBooleanMacro(InverseNormal,int);
68
70
74 vtkSetMacro(ReverseMaterialOrder,int);
75 vtkGetMacro(ReverseMaterialOrder,int);
76 vtkBooleanMacro(ReverseMaterialOrder,int);
78
80
84 vtkSetMacro(OnionPeel,int);
85 vtkGetMacro(OnionPeel,int);
86 vtkBooleanMacro(OnionPeel,int);
88
90
94 vtkSetMacro(AxisSymetric,int);
95 vtkGetMacro(AxisSymetric,int);
96 vtkBooleanMacro(AxisSymetric,int);
98
100
105 vtkSetMacro(UseFractionAsDistance,int);
106 vtkGetMacro(UseFractionAsDistance,int);
107 vtkBooleanMacro(UseFractionAsDistance,int);
109
111
114 vtkSetMacro(FillMaterial,int);
115 vtkGetMacro(FillMaterial,int);
116 vtkBooleanMacro(FillMaterial,int);
118
120
123 vtkSetVector2Macro(VolumeFractionRange,double);
124 vtkGetVectorMacro(VolumeFractionRange,double,2);
126
128
131 virtual void SetNumberOfMaterials(int n);
132 virtual int GetNumberOfMaterials();
134
136
139 vtkSetMacro(UseAllBlocks,bool);
140 vtkGetMacro(UseAllBlocks,bool);
141 vtkBooleanMacro(UseAllBlocks,bool);
143
145
148 vtkGetMacro(NumberOfDomains,int);
150
152
155 virtual void SetMaterialArrays( int i, const char* volume, const char* normalX, const char* normalY, const char* normalZ, const char* ordering );
156 virtual void SetMaterialArrays( int i, const char* volume, const char* normal, const char* ordering );
157 virtual void SetMaterialVolumeFractionArray( int i, const char* volume );
158 virtual void SetMaterialNormalArray( int i, const char* normal );
159 virtual void SetMaterialOrderingArray( int i, const char* ordering );
161
165 virtual void RemoveAllMaterials();
166
168
176 virtual void SetMaterialNormalArray(const char* volume, const char* normal);
177 virtual void SetMaterialOrderingArray(const char* volume, const char* ordering);
179
181
185 virtual void AddMaterialBlockMapping(int b);
187
188 enum
189 {
190 MAX_CELL_POINTS=256
191 };
192
193protected:
196
197 int FillInputPortInformation(int port, vtkInformation *info) VTK_OVERRIDE;
198 int RequestData(vtkInformation *request,
199 vtkInformationVector **inputVector,
200 vtkInformationVector *outputVector) VTK_OVERRIDE;
201
205 virtual void Aggregate ( int, int* );
206
207 void UpdateBlockMapping();
208
209 int CellProduceInterface( int dim, int np, double fraction, double minFrac, double maxFrac );
210
212
215 int FillMaterial;
216 int InverseNormal;
217 int AxisSymetric;
218 int OnionPeel;
219 int ReverseMaterialOrder;
220 int UseFractionAsDistance;
221 double VolumeFractionRange[2];
223
224 vtkSmartPointer<vtkIntArray> MaterialBlockMapping;
225
226 bool UseAllBlocks;
227
231 int NumberOfDomains;
232
233 // Desctiption:
234 // Internal data structures
235 vtkYoungsMaterialInterfaceInternals* Internals;
236
237private:
238 vtkYoungsMaterialInterface(const vtkYoungsMaterialInterface&) VTK_DELETE_FUNCTION;
239 void operator=(const vtkYoungsMaterialInterface&) VTK_DELETE_FUNCTION;
240};
241
242#endif /* VTK_YOUNGS_MATERIAL_INTERFACE_H */
243
a simple class to control print indentation
Definition: vtkIndent.h:40
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
dynamic, self-adjusting array of int
Definition: vtkIntArray.h:46
Superclass for algorithms that produce only vtkMultiBlockDataSet as output.
Hold a reference to a vtkObjectBase instance.
reconstructs material interfaces
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
~vtkYoungsMaterialInterface() override
virtual void SetMaterialOrderingArray(int i, const char *ordering)
virtual void SetMaterialOrderingArray(const char *volume, const char *ordering)
virtual void SetMaterialNormalArray(int i, const char *normal)
virtual void RemoveAllMaterials()
Removes all meterials previously added.
virtual void RemoveAllMaterialBlockMappings()
select blocks to be processed for each described material.
virtual void SetMaterialArrays(int i, const char *volume, const char *normalX, const char *normalY, const char *normalZ, const char *ordering)
Set ith Material arrays to be used as volume fraction, interface normal and material ordering.
virtual void SetNumberOfMaterials(int n)
Sets/Gets the number of materials.
virtual int GetNumberOfMaterials()
virtual void SetMaterialVolumeFractionArray(int i, const char *volume)
static vtkYoungsMaterialInterface * New()
virtual void SetMaterialArrays(int i, const char *volume, const char *normal, const char *ordering)
virtual void AddMaterialBlockMapping(int b)
virtual void SetMaterialNormalArray(const char *volume, const char *normal)
Alternative API for associating Normal and Ordering arrays to materials identified by its volume-frac...
@ info
Definition: vtkX3D.h:376
@ port
Definition: vtkX3D.h:447
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.