VTK
vtkYoungsMaterialInterface.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: $RCSfile: vtkYoungsMaterialInterface.h,v $
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 =========================================================================*/
39 #ifndef vtkYoungsMaterialInterface_h
40 #define vtkYoungsMaterialInterface_h
41 
42 #include "vtkFiltersGeneralModule.h" // For export macro
44 
45 #include "vtkSmartPointer.h" // For SP ivars
46 
47 class vtkIntArray;
48 class vtkInformation;
50 class vtkYoungsMaterialInterfaceInternals;
51 
53 {
54 public:
57  void PrintSelf(ostream& os, vtkIndent indent);
58 
60 
61  vtkSetMacro(InverseNormal,int);
62  vtkGetMacro(InverseNormal,int);
63  vtkBooleanMacro(InverseNormal,int);
65 
67 
69  vtkSetMacro(ReverseMaterialOrder,int);
70  vtkGetMacro(ReverseMaterialOrder,int);
71  vtkBooleanMacro(ReverseMaterialOrder,int);
73 
75 
78  vtkSetMacro(OnionPeel,int);
79  vtkGetMacro(OnionPeel,int);
80  vtkBooleanMacro(OnionPeel,int);
82 
84 
86  vtkSetMacro(AxisSymetric,int);
87  vtkGetMacro(AxisSymetric,int);
88  vtkBooleanMacro(AxisSymetric,int);
90 
92 
96  vtkSetMacro(UseFractionAsDistance,int);
97  vtkGetMacro(UseFractionAsDistance,int);
98  vtkBooleanMacro(UseFractionAsDistance,int);
100 
102 
104  vtkSetMacro(FillMaterial,int);
105  vtkGetMacro(FillMaterial,int);
106  vtkBooleanMacro(FillMaterial,int);
108 
110 
114  vtkSetVector2Macro(VolumeFractionRange,double);
115  vtkGetVectorMacro(VolumeFractionRange,double,2);
117 
119 
120  virtual void SetNumberOfMaterials(int n);
121  virtual int GetNumberOfMaterials();
123 
125 
127  vtkSetMacro(UseAllBlocks,bool);
128  vtkGetMacro(UseAllBlocks,bool);
129  vtkBooleanMacro(UseAllBlocks,bool);
131 
133 
135  vtkGetMacro(NumberOfDomains,int);
137 
139 
141  virtual void SetMaterialArrays( int i, const char* volume, const char* normalX, const char* normalY, const char* normalZ, const char* ordering );
142  virtual void SetMaterialArrays( int i, const char* volume, const char* normal, const char* ordering );
143  virtual void SetMaterialVolumeFractionArray( int i, const char* volume );
144  virtual void SetMaterialNormalArray( int i, const char* normal );
145  virtual void SetMaterialOrderingArray( int i, const char* ordering );
147 
149  virtual void RemoveAllMaterials();
150 
152 
158  virtual void SetMaterialNormalArray(const char* volume, const char* normal);
159  virtual void SetMaterialOrderingArray(const char* volume, const char* ordering);
161 
163 
164  virtual void RemoveAllMaterialBlockMappings();
165  virtual void AddMaterialBlockMapping(int b);
167 
168 
169 //BTX
170  enum
171  {
172  MAX_CELL_POINTS=256
173  };
174 //ETX
175 
176 protected:
178  virtual ~vtkYoungsMaterialInterface ();
179 
181  virtual int RequestData(vtkInformation *request,
182  vtkInformationVector **inputVector,
183  vtkInformationVector *outputVector);
184 
186  virtual void Aggregate ( int, int* );
187 
188  void UpdateBlockMapping();
189 
190  int CellProduceInterface( int dim, int np, double fraction, double minFrac, double maxFrac );
191 
193 
200  double VolumeFractionRange[2];
201 //BTX
203 //ETX
206 
209 
210  // Desctiption:
211  // Internal data structures
212  vtkYoungsMaterialInterfaceInternals* Internals;
213 
214 private:
215  vtkYoungsMaterialInterface(const vtkYoungsMaterialInterface&); // Not implemented
216  void operator=(const vtkYoungsMaterialInterface&); // Not implemented
217 };
218 
219 #endif /* VTK_YOUNGS_MATERIAL_INTERFACE_H */
220 
Store vtkAlgorithm input/output information.
vtkYoungsMaterialInterfaceInternals * Internals
Superclass for algorithms that produce only vtkMultiBlockDataSet as output.
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
static vtkMultiBlockDataSetAlgorithm * New()
dynamic, self-adjusting array of int
Definition: vtkIntArray.h:49
a simple class to control print indentation
Definition: vtkIndent.h:38
#define VTKFILTERSGENERAL_EXPORT
vtkSmartPointer< vtkIntArray > MaterialBlockMapping
reconstructs material interfaces
virtual int FillInputPortInformation(int port, vtkInformation *info)
void PrintSelf(ostream &os, vtkIndent indent)
Store zero or more vtkInformation instances.