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 =========================================================================*/
34 #ifndef vtkYoungsMaterialInterface_h
35 #define vtkYoungsMaterialInterface_h
36 
37 #include "vtkFiltersGeneralModule.h" // For export macro
39 
40 #include "vtkSmartPointer.h" // For SP ivars
41 
42 class vtkIntArray;
43 class vtkInformation;
45 class vtkYoungsMaterialInterfaceInternals;
46 
47 class VTKFILTERSGENERAL_EXPORT vtkYoungsMaterialInterface : public vtkMultiBlockDataSetAlgorithm
48 {
49 public:
52  void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
53 
55 
58  vtkSetMacro(InverseNormal,int);
59  vtkGetMacro(InverseNormal,int);
60  vtkBooleanMacro(InverseNormal,int);
62 
64 
68  vtkSetMacro(ReverseMaterialOrder,int);
69  vtkGetMacro(ReverseMaterialOrder,int);
70  vtkBooleanMacro(ReverseMaterialOrder,int);
72 
74 
78  vtkSetMacro(OnionPeel,int);
79  vtkGetMacro(OnionPeel,int);
80  vtkBooleanMacro(OnionPeel,int);
82 
84 
88  vtkSetMacro(AxisSymetric,int);
89  vtkGetMacro(AxisSymetric,int);
90  vtkBooleanMacro(AxisSymetric,int);
92 
94 
99  vtkSetMacro(UseFractionAsDistance,int);
100  vtkGetMacro(UseFractionAsDistance,int);
101  vtkBooleanMacro(UseFractionAsDistance,int);
103 
105 
108  vtkSetMacro(FillMaterial,int);
109  vtkGetMacro(FillMaterial,int);
110  vtkBooleanMacro(FillMaterial,int);
112 
114 
117  vtkSetVector2Macro(VolumeFractionRange,double);
118  vtkGetVectorMacro(VolumeFractionRange,double,2);
120 
122 
125  virtual void SetNumberOfMaterials(int n);
126  virtual int GetNumberOfMaterials();
128 
130 
133  vtkSetMacro(UseAllBlocks,bool);
134  vtkGetMacro(UseAllBlocks,bool);
135  vtkBooleanMacro(UseAllBlocks,bool);
137 
139 
142  vtkGetMacro(NumberOfDomains,int);
144 
146 
149  virtual void SetMaterialArrays( int i, const char* volume, const char* normalX, const char* normalY, const char* normalZ, const char* ordering );
150  virtual void SetMaterialArrays( int i, const char* volume, const char* normal, const char* ordering );
151  virtual void SetMaterialVolumeFractionArray( int i, const char* volume );
152  virtual void SetMaterialNormalArray( int i, const char* normal );
153  virtual void SetMaterialOrderingArray( int i, const char* ordering );
155 
159  virtual void RemoveAllMaterials();
160 
162 
170  virtual void SetMaterialNormalArray(const char* volume, const char* normal);
171  virtual void SetMaterialOrderingArray(const char* volume, const char* ordering);
173 
175 
178  virtual void RemoveAllMaterialBlockMappings();
179  virtual void AddMaterialBlockMapping(int b);
181 
182  enum
183  {
184  MAX_CELL_POINTS=256
185  };
186 
187 protected:
189  ~vtkYoungsMaterialInterface () VTK_OVERRIDE;
190 
191  int FillInputPortInformation(int port, vtkInformation *info) VTK_OVERRIDE;
192  int RequestData(vtkInformation *request,
193  vtkInformationVector **inputVector,
194  vtkInformationVector *outputVector) VTK_OVERRIDE;
195 
199  virtual void Aggregate ( int, int* );
200 
201  void UpdateBlockMapping();
202 
203  int CellProduceInterface( int dim, int np, double fraction, double minFrac, double maxFrac );
204 
206 
209  int FillMaterial;
210  int InverseNormal;
211  int AxisSymetric;
212  int OnionPeel;
213  int ReverseMaterialOrder;
214  int UseFractionAsDistance;
215  double VolumeFractionRange[2];
217 
218  vtkSmartPointer<vtkIntArray> MaterialBlockMapping;
219 
220  bool UseAllBlocks;
221 
225  int NumberOfDomains;
226 
227  // Desctiption:
228  // Internal data structures
229  vtkYoungsMaterialInterfaceInternals* Internals;
230 
231 private:
232  vtkYoungsMaterialInterface(const vtkYoungsMaterialInterface&) VTK_DELETE_FUNCTION;
233  void operator=(const vtkYoungsMaterialInterface&) VTK_DELETE_FUNCTION;
234 };
235 
236 #endif /* VTK_YOUNGS_MATERIAL_INTERFACE_H */
237 
Store vtkAlgorithm input/output information.
Hold a reference to a vtkObjectBase instance.
Superclass for algorithms that produce only vtkMultiBlockDataSet as output.
static vtkMultiBlockDataSetAlgorithm * New()
dynamic, self-adjusting array of int
Definition: vtkIntArray.h:39
a simple class to control print indentation
Definition: vtkIndent.h:33
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
reconstructs material interfaces
Store zero or more vtkInformation instances.
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.