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 
48 class vtkIntArray;
49 class vtkInformation;
51 class vtkYoungsMaterialInterfaceInternals;
52 
53 class VTKFILTERSGENERAL_EXPORT vtkYoungsMaterialInterface : public vtkMultiBlockDataSetAlgorithm
54 {
55 public:
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 
184  virtual void RemoveAllMaterialBlockMappings();
185  virtual void AddMaterialBlockMapping(int b);
187 
188  enum
189  {
190  MAX_CELL_POINTS=256
191  };
192 
193 protected:
195  ~vtkYoungsMaterialInterface () VTK_OVERRIDE;
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 
237 private:
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 
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:45
a simple class to control print indentation
Definition: vtkIndent.h:39
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.