vtkbone
vtkboneApplyTestBase.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Copyright 2010-2016, Numerics88 Solutions Ltd.
4  http://www.numerics88.com/
5 
6  Copyright (c) Eric Nodwell and Steven K. Boyd
7  See Copyright.txt for details.
8 
9  This software is distributed WITHOUT ANY WARRANTY; without even
10  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11  PURPOSE. See the above copyright notice for more information.
12 =========================================================================*/
13 
80 #ifndef __vtkboneApplyTestBase_h
81 #define __vtkboneApplyTestBase_h
82 
84 #include "vtkboneWin32Header.h"
85 
86 #include "vtkboneFiniteElementModel.h" // Needed for enum definitions.
87 #include "vtkboneConstraint.h" // Needed for enum definitions.
88 
89 
91 {
92 public:
93  static vtkboneApplyTestBase *New();
95  void PrintSelf(ostream& os, vtkIndent indent);
96  void PrintParameters(ostream& os, vtkIndent indent);
97 
98  enum TestAxis_t {
99  TEST_AXIS_X = 0,
100  TEST_AXIS_Y = 1,
101  TEST_AXIS_Z = 2
102  };
103 
105 
107  vtkSetMacro(TopConstraintSpecificMaterial, int);
108  vtkGetMacro(TopConstraintSpecificMaterial, int);
110 
112 
114  vtkSetMacro(BottomConstraintSpecificMaterial, int);
115  vtkGetMacro(BottomConstraintSpecificMaterial, int);
117 
119 
124  vtkSetMacro(UnevenTopSurface, int);
125  vtkGetMacro(UnevenTopSurface, int);
126  vtkBooleanMacro(UnevenTopSurface, int);
128 
130 
133  vtkSetMacro(UseTopSurfaceMaximumDepth, int);
134  vtkGetMacro(UseTopSurfaceMaximumDepth, int);
135  vtkBooleanMacro(UseTopSurfaceMaximumDepth, int);
137 
139 
141  vtkSetMacro(TopSurfaceMaximumDepth, double);
142  vtkGetMacro(TopSurfaceMaximumDepth, double);
143  vtkBooleanMacro(TopSurfaceMaximumDepth, double);
145 
147 
152  vtkSetMacro(UnevenBottomSurface, int);
153  vtkGetMacro(UnevenBottomSurface, int);
154  vtkBooleanMacro(UnevenBottomSurface, int);
156 
158 
161  vtkSetMacro(UseBottomSurfaceMaximumDepth, int);
162  vtkGetMacro(UseBottomSurfaceMaximumDepth, int);
163  vtkBooleanMacro(UseBottomSurfaceMaximumDepth, int);
165 
167 
169  vtkSetMacro(BottomSurfaceMaximumDepth, double);
170  vtkGetMacro(BottomSurfaceMaximumDepth, double);
171  vtkBooleanMacro(BottomSurfaceMaximumDepth, double);
173 
175 
176  vtkSetMacro(TestAxis, int);
177  vtkGetMacro(TestAxis, int);
179 
182  int DataFrameSense(int testFrameSense);
183 
186  int TestFrameSense(int dataFrameSense);
187 
191  int DataFramePolarity(int testFrameSense, int polarity);
192 
196  double TestFrameBound(double bounds[6], int testFrameSense, int polarity);
197 
200  int GetVoxelLocalId(int testFrameLocalId);
201 
202 protected:
205 
206  virtual int RequestData(vtkInformation* request,
207  vtkInformationVector** inputVector,
208  vtkInformationVector* outputVector);
209 
218  int TestAxis;
219 
225  virtual int AddSets(vtkboneFiniteElementModel* model);
226 
228 
231  virtual int AddDataFrameZFacesSets(vtkboneFiniteElementModel* model);
232  virtual int AddDataFrameXFacesSets(vtkboneFiniteElementModel* model);
233  virtual int AddDataFrameYFacesSets(vtkboneFiniteElementModel* model);
235 
236 private:
237  vtkboneApplyTestBase(const vtkboneApplyTestBase&); // Not implemented
238  void operator=(const vtkboneApplyTestBase&); // Not implemented
239 };
240 
241 #endif
242 
data model for finite element meshes
Base class for applying a test to create a vtkboneFiniteElementModel.
#define VTKBONE_EXPORT
void PrintSelf(ostream &os, vtkIndent indent)
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
Class for generating a finite element mesh.
static vtkboneFiniteElementModelGenerator * New()