PtLoad.hh 2.25 KB
Newer Older
Will Schroeder's avatar
Will Schroeder committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/*=========================================================================

  Program:   Visualization Library
  Module:    PtLoad.hh
  Language:  C++
  Date:      $Date$
  Version:   $Revision$

This file is part of the Visualization Library. No part of this file
or its contents may be copied, reproduced or altered in any way
without the express written consent of the authors.

Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 1993, 1994 

=========================================================================*/
// .NAME vtkPointLoad - compute stress tensors given point load on semi-inifinite domain
// .SECTION Description
// vtkPointLoad is a source object that computes stress tensors on a volume. 
// The tensors are computed from the application of a point load on a 
20
21
22
23
24
25
// semi-infinite domain. (The analytical results are adapted from Saada - see 
// text). It is also possible to compute effective stress scalars if desired.
// This object serves as a specialized data generator for some of the examples
// in the text.
// .SECTION See Also
// vtkTensorGlyph, vtkHyperStreamline
Will Schroeder's avatar
Will Schroeder committed
26
27
28
29
30
31
32
33
34
35
36
37
38
39

#ifndef __vtkPointLoad_h
#define __vtkPointLoad_h

#include "SPtsSrc.hh"

class vtkPointLoad : public vtkStructuredPointsSource
{
public:
  vtkPointLoad();
  ~vtkPointLoad() {};
  char *GetClassName() {return "vtkPointLoad";};
  void PrintSelf(ostream& os, vtkIndent indent);

Will Schroeder's avatar
Will Schroeder committed
40
41
  // Description:
  // Set/Get value of applied load.
Will Schroeder's avatar
Will Schroeder committed
42
43
44
45
46
47
48
49
50
51
52
  vtkSetMacro(LoadValue,float);
  vtkGetMacro(LoadValue,float);

  void SetSampleDimensions(int i, int j, int k);
  void SetSampleDimensions(int dim[3]);
  vtkGetVectorMacro(SampleDimensions,int,3);

  void SetModelBounds(float xmin, float xmax, float ymin, float ymax, float zmin, float zmax);
  void SetModelBounds(float *bounds);
  vtkGetVectorMacro(ModelBounds,float,6);

Will Schroeder's avatar
Will Schroeder committed
53
54
55
56
57
  // Description:
  // Set/Get Poisson's ratio.
  vtkSetMacro(PoissonsRatio,float);
  vtkGetMacro(PoissonsRatio,float);

58
59
60
61
62
63
  // Description:
  // Turn on/off computation of effective stress scalar.
  vtkSetMacro(ComputeEffectiveStress,int);
  vtkGetMacro(ComputeEffectiveStress,int);
  vtkBooleanMacro(ComputeEffectiveStress,int);

Will Schroeder's avatar
Will Schroeder committed
64
65
66
67
protected:
  void Execute();

  float LoadValue;
Will Schroeder's avatar
Will Schroeder committed
68
  float PoissonsRatio;
Will Schroeder's avatar
Will Schroeder committed
69
70
  int SampleDimensions[3];
  float ModelBounds[6];
71
  int ComputeEffectiveStress;
Will Schroeder's avatar
Will Schroeder committed
72
73
74
75
76
77

};

#endif