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 =========================================================================*/
32 #ifndef __vtkYoungsMaterialInterface_h
33 #define __vtkYoungsMaterialInterface_h
34 
36 
37 class vtkInformation;
39 class vtkYoungsMaterialInterfaceInternals;
40 
42 {
43 public:
46  void PrintSelf(ostream& os, vtkIndent indent);
47 
49 
50  vtkSetMacro(InverseNormal,int);
51  vtkGetMacro(InverseNormal,int);
52  vtkBooleanMacro(InverseNormal,int);
54 
56 
58  vtkSetMacro(ReverseMaterialOrder,int);
59  vtkGetMacro(ReverseMaterialOrder,int);
60  vtkBooleanMacro(ReverseMaterialOrder,int);
62 
64 
67  vtkSetMacro(OnionPeel,int);
68  vtkGetMacro(OnionPeel,int);
69  vtkBooleanMacro(OnionPeel,int);
71 
73 
75  vtkSetMacro(AxisSymetric,int);
76  vtkGetMacro(AxisSymetric,int);
77  vtkBooleanMacro(AxisSymetric,int);
79 
81 
85  vtkSetMacro(UseFractionAsDistance,int);
86  vtkGetMacro(UseFractionAsDistance,int);
87  vtkBooleanMacro(UseFractionAsDistance,int);
89 
91 
93  vtkSetMacro(FillMaterial,int);
94  vtkGetMacro(FillMaterial,int);
95  vtkBooleanMacro(FillMaterial,int);
97 
99 
102  vtkSetMacro(TwoMaterialsOptimization,int);
103  vtkGetMacro(TwoMaterialsOptimization,int);
104  vtkBooleanMacro(TwoMaterialsOptimization,int);
106 
108 
112  vtkSetVector2Macro(VolumeFractionRange,double);
113  vtkGetVectorMacro(VolumeFractionRange,double,2);
115 
117 
118  virtual void SetNumberOfMaterials(int n);
119  virtual int GetNumberOfMaterials();
121 
123 
125  virtual void SetMaterialArrays( int i, const char* volumeFraction, const char* interfaceNormal, const char* materialOrdering );
126  virtual void SetMaterialVolumeFractionArray( int i, const char* volume );
127  virtual void SetMaterialNormalArray( int i, const char* normal );
128  virtual void SetMaterialOrderingArray( int i, const char* ordering );
130 
132  virtual void RemoveAllMaterials();
133 
134 //BTX
135  enum
136  {
137  MAX_CELL_POINTS=256
138  };
139 //ETX
140 
141 protected:
144 
146  virtual int RequestData(vtkInformation *request,
147  vtkInformationVector **inputVector,
148  vtkInformationVector *outputVector);
149 
150  int CellProduceInterface( int dim, int np, double fraction, double minFrac, double maxFrac );
151 
159  double VolumeFractionRange[2];
160 
161  vtkYoungsMaterialInterfaceInternals* Internals;
162 
163 private:
164  vtkYoungsMaterialInterface(const vtkYoungsMaterialInterface&); // Not implemented
165  void operator=(const vtkYoungsMaterialInterface&); // Not implemented
166 };
167 
168 #endif /* VTK_YOUNGS_MATERIAL_INTERFACE_H */
169